! File of externals followed by a main program.
recordformat rf ( integer i, real r, integer rf) ; ! Are record format vars in a sub-scope? Or is it just that formats are in a different name space?
! owns and externals are simpler declarations
externalinteger xi1
externalintegername xin1
externalreal xr1
externalinteger xi2,xi3
externalreal xcr1 = 3.1415
externalrealarray xra1(0:9)
externalrealarrayname xran1
externallongreal xclr1 = 3.1415
externallongrealarray xlra1(0:9)
externallongrealarrayname xlran1
externalintegernamearray xina1(0:9)
externalintegernamearrayname xinan1
externalstring(82) xs1
externalstring(82)name xsn1
externalstring(82)array xsa1(4:7)
externalstring(82)arrayname xsan1
externalstring(82)namearray xsna1(4:7)
externalstring(82)namearrayname xsnan1
externalrecord (rf) xrec1
externalrecord (rf) name xrecn1
externalrecord (rf) array xreca1(2:3)
externalrecord (rf) array name xrecan1
externalrecord (rf) name array xrecna1(2:3)
externalrecord (rf) name array name xrecnan1
externalintegerfn ifn1
result = xi1
end
externalintegermap imap1
result == xi1
end
externalroutine rt1
integer i1
routine rt1
end
end
externalpredicate test1
true
end
begin
integermapspec imap1
integer i1
integername in1
shortinteger si1
shortintegername sin1
byteinteger bi1
byteintegername bin1
real r1
realslong
real qr1
realsnormal
constreal cr1 = 3.1415
longreal lr1
constlongreal clr1 = 3.1415
integerfn ifn1
result = i1
end
integermap imap1
result == i1
end
routine rt1
integer i1
integer local1
routine rt1
integer local1
local1 = 1
i1 = 1
end
local1 = 2
i1 = 2
end
predicate test1
false
end
realarray ra1, ra1b(0:9), ra2, ra2b(10:19)
realarrayname ran1, ran2
longrealarray lra1, lra1b(0:9), lra2, lra2b(10:19)
longrealarrayname lran1, lran2
integernamearray ina1, ina1b(0:9), ina2, ina2b(10:19)
integernamearrayname inan1, inan2
string(82) s1, s2
string(82)name sn1, sn2
string(82)array sa1, sa1b(4:7), sa2, sa2b(9:10), sa3(1:100)
string(82)arrayname san1, san2, san3
string(82)namearray sna1, sna2(4:7), sna3(1:2)
string(82)namearrayname snan1, snan2
record (rf) rec1, rec2
record (rf) name recn1, recn2
record (rf) array reca1,reca2(2:3),reca3(4:5)
record (rf) array name recan1,recan2
record (rf) name array recna1,recna2(2:3),recna3(1:2)
record (rf) name array name recnan1,recnan2
! owns and externals are simpler declarations
owninteger oi1
ownintegername oin1
ownreal or1
ownlongreal olr1
owninteger oi2,oi3
ownreal ocr1 = 3.1415
ownlongreal oclr1 = 3.1415
ownrealarray ora1(0:9)
ownrealarrayname oran1
ownlongrealarray olra1(0:9)
ownlongrealarrayname olran1
ownintegernamearray oina1(0:9)
ownintegernamearrayname oinan1
ownstring(82) os1
ownstring(82)name osn1
ownstring(82)array osa1(4:7)
ownstring(82)arrayname osan1
ownstring(82)namearray osna1(4:7)
ownstring(82)namearrayname osnan1
ownrecord (rf) orec1
ownrecord (rf) name orecn1
ownrecord (rf) array oreca1(2:3)
ownrecord (rf) array name orecan1
ownrecord (rf) name array orecna1(2:3)
ownrecord (rf) name array name orecnan1
switch sw1(0:255), sw2('a':'z')
integer array ia3, ia4(1:10), ia5(2:11,0:1,0:2)
integernamearray in3a1(2:11,0:1,0:2)
i1 = 1
!!!!!!!!!!!!!!!!!!!
xi1 = 1
xin1 == xi1
xin1 = 1
xr1 = 3.1
xi2 = xi3
xcr1 = 3.1415
xra1(5) = xcr1
xran1 == xra1
xclr1 = 3.1415
xlra1(2) = 3.1
xlran1 == xlra1
xlran1(2) = 3.2
xina1(9) == xi1
xinan1 == xina1
endofprogram