DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦9cfebabba⟧ TextFile

    Length: 4608 (0x1200)
    Types: TextFile
    Names: »stdvarinp«

Derivation

└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ.  Detaljer om "HC8000" projekt.
    └─⟦0364f57e3⟧ 
        └─⟦8c6b0f8fa⟧ »cdes« 
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
    └─⟦4334b4c0b⟧ 
        └─⟦8c6b0f8fa⟧ »cdes« 
            └─⟦this⟧ 

TextFile


<se *< *pl 297,21,240,13,4*
*pn 0,0**lw 170* *ld 12* *ps*
*qr*
1978-09-27
Anders Lindgård
*nl1*
*ct*
stdvar
*nl*
*rj**np*
Creates standard variables for the ALGOL8 system. The variables
may be regarded as own variables with a specified value.
If a variable already exist in the catalog it is removed.
The variables are given scope temp if no other scope is
specified.
*nl2*
*ns 1,1,Example*
        -------
*nl**np*
The FP-command and program input:
*nl2**sj**lm15*
varproc=stdvar scope.user
Anders Lindgård
1978 09 27
begin
real pi=3.14;
boolean nl=false add 10,ff=false add 12;
integer zero;
end;
*lm0**nl**rj*
will create a no type procedure "varproc" and a
number of filedescriptors having "varproc" as document name.
Theese variables can be used in an algol program
and have initial values:*nl*
*ta 25,20,35*
real	pi	has the value	3.14
boolean	nl	has the value	false add 10 i.e. a NL-character
boolean	ff	has the value	false add 12 i.e. a FF-character
integer	zero	has the value	0
*rj*
*ns 1,2,Call:*
        -----*nl1*
<left side>=stdvar <s> <scope spec> <list spec>
*nl1*
where:*nl1*
<left side> becomes the name of a no type procedure
and will contain the initial values*nl1*
<scope spec>::=scope.<scope>*nl1*
scope::=temp/login/user/project*nl1*
<list spec>::=list.yes/list.no*nl*
*ns 1,2,Function:*
        ---------
*np*
A disc area of one segment with the name specified as <left side>
to the program call is created. Current input is read to a "begin" is
met. The variables are read according to the syntax. "end" terminates
reading. If the syntax check was ok the variables are created as
filedescriptors and if an initial value is specified this is placed
on the discarea.
*np*
On the RC4000 under system 2 <scope spec> is replaced by key.<integer>
where key is the catalog key.
*ns 1,2,Syntax for input*
        ----------------*nl1*
A legal input for stdvar consist of:*nl**lm10*
<anything> begin <variabel list> end*nl2*
*sj*
<variabel list>::=<declarator> <identifierspeclist>;/
                      <variabellist> <variabellist>
<declarator>::=boolean/integer/real/long
<identifierspeclist>::=<identifierspec>/<identifierspec>,<identifierspeclist>
<identifierspec>::=<identifier>/<identifier>=<value spec>
*nl2**rj*
*lm0*
<value spec> must be a <number> for integer,
real and long declarators. For boolean declarator it must be:*nl1*
<value spec>::=true/false/false add <integer>
*nl*
where <integer> must be in the range 0 to 128.
*nl1*
<identifier> has the restriction that it may only consist of
one letter followed by 10 small letters or digits.
*ns 1,2,Storage requirements:*
        ---------------------*nl2*
As for a normal ALGOL program.
*ns 1,2,Warnings*
        --------*nl2*
*se!*
!nl!!lm0!
**declarator <wrong declarator>!nl!
!lm10!an illegal declarator was found. The wrong declarator
is shown.
!nl2!!lm0!
**identifier length <identifier>!nl!
!lm10! more than 11 letters or digits in an identifier. The
name of the identifier is shown.
!nl2!!lm0!
**delimiter <delimiter>!nl!
!lm10! wrong delimiter. Value is shown.
!nl2!!lm0!
**-delimiter!nl!
!lm10! delimiter missing.
!nl2!!lm0!
**create entry <identifier> , result <result>!nl!
!lm10! An entry could not be created. The result of
"create entry" is shown.
!nl2!!lm0!
**scope <identifier> , result <result>!nl!
!lm10! The identifier could not obtain the
desired scope. The result is shown.
!nl2!!lm0!
**changeentry <left side> , result <result>!nl!
!lm10! The tail of <left siede> could not be set.
The result of "change entry" is shown.
!se*!
*lm0*
*ns 1,2,Error messages:*
        ---------------*nl2*
*se!*
***exhausted!nl!
!lm10!the input file was exhausted before an "end" was met.
!nl2!!lm0!
***left side missing!nl!
!lm10!no left side in the call of "stdvar".
!nl2!!lm0!
***connect left side <left side>!nl!
!lm10!the left side in the program call cannot be connected.
!lm0!!nl2!
***create left side <left side> , result <result>!nl!
!lm10! A file of 1 segment with <left side> as name
could not be created. The result of "create entry" is shown.
!nl2!!lm0!
***scope left side <left side>!nl!
!lm10! <left side> could not obtain the required scope.
!nl2!!lm0!
***maxentry!nl!
!lm10!more than 100 identifiers.
!lm0!
!se*!
*ns 1,2,Language: ALGOL*
        ---------*nl*
*ns 1,2,Maintenance level: user*
        ------------------*nl1*
User
*ef*
▶EOF◀