Pascal News
Pascal News
Pascal News
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
337<br />
338<br />
339<br />
3~O<br />
3~1<br />
342<br />
343<br />
344<br />
345<br />
346<br />
347<br />
348<br />
349<br />
350<br />
351<br />
352<br />
353<br />
35q<br />
355<br />
356<br />
357<br />
358<br />
359<br />
360<br />
361<br />
362<br />
363<br />
36q<br />
365<br />
367<br />
368<br />
369<br />
310<br />
311<br />
372<br />
373<br />
374<br />
376<br />
377<br />
378<br />
379<br />
380<br />
381<br />
382<br />
383<br />
384<br />
385<br />
386<br />
387<br />
388<br />
389<br />
390<br />
391<br />
392<br />
case klasa<br />
types<br />
konst<br />
end;<br />
ide lass of<br />
0;<br />
(value:integer);<br />
{for integers the value is<br />
COInputed and stored in this field.<br />
For strings and reals an assembler constant is<br />
defined labeled '.1', '.2' •...<br />
This '.' number is then stored in value.<br />
For reals value may be negated to indicate that<br />
the opposite of the assembleroonstant is needed.<br />
val'S :(vpos:position); {position of' var}<br />
field : (totfset:integer); {offset to begin of record}<br />
carrbnd :0:<br />
lid type pOints to carray)'<br />
proe,func:<br />
(oase pfkind :kindofpf of<br />
standard :(key:standpf): {identifioation}<br />
formal ,actual,forwrd ,E!-xtrn:<br />
(pfpos:position:<br />
{l'i gives declaration level.<br />
labl~record<br />
nextlp:lp;<br />
seen:boolean;<br />
labval : integer;<br />
labname:integer;<br />
labdlb:integer<br />
end;<br />
sg gives instruction segment of this proc and<br />
ad 1s relevant for formal pf's and for<br />
functions (no oonfliot!!).<br />
for funotions: ad is the result address.<br />
for formal pf' s: ad is the address of the<br />
descriptor }<br />
pfRo :integer:<br />
parhead lip;<br />
headle: integer<br />
)<br />
{ohain of labels}<br />
(unique pi number)<br />
{head of par ameter list 1<br />
{le when heading scanned)<br />
{label number given by the progr.ammer}<br />
!label number given by the compiler}<br />
{zero means only locally used,<br />
otherwise dlbno of label information}<br />
{--------------------------------------------------------}<br />
v.... {the most frequent used externals are declared first}<br />
sy:symbol:<br />
!last symbol}<br />
a:attr;<br />
{type,access method,posil;ion,value of expr}<br />
[returned by insyml<br />
;,h:ohar;<br />
chsy:chartype;<br />
val :integer;<br />
1x :integer;<br />
eol :boolean;<br />
zerostr ing :boolean;<br />
Id:alpha;<br />
[some counters}<br />
lino: integer;<br />
dlbno: integer;<br />
lom8x!lnteger:<br />
level:i'nteger;<br />
!last character}<br />
{type of ch, used by insym}<br />
tit last symbol is an constant<br />
{string length}<br />
{true if current oh replaces a newline}<br />
{true for strings in tI tI}<br />
{if last symbol is an identif1er}<br />
{line number on code file (1 •• n)<br />
{number of last global nUlllber}<br />
{keeps track of maximl.lD of Ie)<br />
{current statio level}<br />
393<br />
394<br />
395<br />
396<br />
397<br />
398<br />
399<br />
liOO<br />
401<br />
Q02<br />
403<br />
404<br />
405<br />
406<br />
407<br />
408<br />
409<br />
410<br />
411<br />
412<br />
Q13<br />
41Q<br />
415<br />
416<br />
417<br />
418<br />
419<br />
420<br />
421<br />
422<br />
423<br />
424<br />
425<br />
426<br />
427<br />
428<br />
429<br />
430<br />
431<br />
432<br />
433<br />
434<br />
435<br />
436<br />
437<br />
438<br />
439<br />
440<br />
441<br />
442<br />
443<br />
444<br />
445<br />
446<br />
447<br />
448<br />
ptrsize :integer;<br />
realsize :integer;<br />
fhsize:integer;<br />
argc:integer:<br />
lastpfno:integer;<br />
copt:integer;<br />
dopt ; integer ;<br />
iopt:integer;<br />
(file header size)<br />
{index in argvl<br />
{unique pf number counter}<br />
Ie-type strings allowed if on}<br />
!longs allowed if on}<br />
{number of bits in sets with base integer}<br />
{standard option}<br />
sopt :integer;<br />
{pointers pointing to standard types}<br />
realptr ,intptr ,textptr ,emptyset,boolptr :sp;<br />
charptr ,nilptr ,stringptr,longptr:sp;<br />
{flags}<br />
giveline :boolean;<br />
including:boolean;<br />
eofexpected :boolean:<br />
main !boolean;<br />
intypedec :boolean;<br />
fltused :boolean;<br />
seconddot :boolean;<br />
{pointers}<br />
fwptr:ip;<br />
progp:ip;<br />
curr proc : ip;<br />
top:np;<br />
lastnp:np;<br />
{records)<br />
b:blookinfo;<br />
e :-errec;<br />
fa :attr;<br />
{arrays}<br />
{give source line number at next statement}<br />
{no LIN's for included code}<br />
{quit without error if true (nextch)<br />
{complete programme or a module}<br />
{true if nested in typedefinition}<br />
{true if floating point instructions are used}<br />
{ind~cates the second dot of t •• '}<br />
{head of chain of forward reference pointers}<br />
{program identifier}<br />
{current proc/func Ip (see case statement) }<br />
{pointer to the most recent name space}<br />
{pointer to nameinfo of last searched ident<br />
{all info to be stacked at pfdeolaration}<br />
{all info required for error messages}<br />
{attr for current file name}<br />
source:fntype; {name of pascal scurce file}<br />
strbu1':array[1. .smax] of char;<br />
iop:array[boolean] of ip;<br />
[false :standard input, true :standard output}<br />
rw:array[rwrange] of alpha;<br />
{reserved words}<br />
frw:array[O .. idmax] of integer;<br />
{indices in rw}<br />
rsy:array[rwrange] of symbol;<br />
{symbol for reserved words}<br />
cs :array[ char] of chartype;<br />
{chartype of a character}<br />
csy:array[rparentch •• equal] of symbol;<br />
{symbol for single character symbols}<br />
lmn:array[libmnem) of packed array[1 •• 4} of char;<br />
{mnemonics of pascal library routines}<br />
opt :array[ 1 a' .. t z.'] of integer;<br />
forceopt:array['a' ••'z'} of boolean:<br />
{26 different options}<br />
undefip:array[idclass] of ip;<br />
{used in searehid)<br />
argv:array[O •• maxargc] of<br />
record name:alpha; aa:integer end;<br />
{save here the external heading names}<br />
(riles)<br />
."<br />
»<br />
'"<br />
'"<br />
......