home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume10 / ptoc / part10 < prev    next >
SHell self-extracting ARchive  |  1987-07-28  |  55.7 KB

view JSON data     |     view as text     |     open on a Mac     |     open on a PC

This file was processed as: SHell self-extracting ARchive (archive/shar).

You can browse this item here: part10

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Newsgroup Content (archive/news) magic Supported
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file news, ASCII text default
100% checkBytes Printable ASCII default
100% dexmagic PrintFox/Pagefox WEAK default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime message/news default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 50 61 74 68 3a 20 75 75 | 6e 65 74 21 72 73 0a 46 |Path: uu|net!rs.F|
|00000010| 72 6f 6d 3a 20 72 73 40 | 75 75 6e 65 74 2e 55 55 |rom: rs@|uunet.UU|
|00000020| 2e 4e 45 54 20 28 52 69 | 63 68 20 53 61 6c 7a 29 |.NET (Ri|ch Salz)|
|00000030| 0a 4e 65 77 73 67 72 6f | 75 70 73 3a 20 63 6f 6d |.Newsgro|ups: com|
|00000040| 70 2e 73 6f 75 72 63 65 | 73 2e 75 6e 69 78 0a 53 |p.source|s.unix.S|
|00000050| 75 62 6a 65 63 74 3a 20 | 76 31 30 69 30 37 34 3a |ubject: |v10i074:|
|00000060| 20 20 50 61 73 63 61 6c | 20 74 6f 20 43 20 74 72 | Pascal| to C tr|
|00000070| 61 6e 73 6c 61 74 6f 72 | 2c 20 50 61 72 74 31 30 |anslator|, Part10|
|00000080| 2f 31 32 0a 4d 65 73 73 | 61 67 65 2d 49 44 3a 20 |/12.Mess|age-ID: |
|00000090| 3c 37 32 37 40 75 75 6e | 65 74 2e 55 55 2e 4e 45 |<727@uun|et.UU.NE|
|000000a0| 54 3e 0a 44 61 74 65 3a | 20 33 30 20 4a 75 6c 20 |T>.Date:| 30 Jul |
|000000b0| 38 37 20 30 30 3a 33 30 | 3a 35 33 20 47 4d 54 0a |87 00:30|:53 GMT.|
|000000c0| 4f 72 67 61 6e 69 7a 61 | 74 69 6f 6e 3a 20 55 55 |Organiza|tion: UU|
|000000d0| 4e 45 54 20 43 6f 6d 6d | 75 6e 69 63 61 74 69 6f |NET Comm|unicatio|
|000000e0| 6e 73 20 53 65 72 76 69 | 63 65 73 2c 20 41 72 6c |ns Servi|ces, Arl|
|000000f0| 69 6e 67 74 6f 6e 2c 20 | 56 41 0a 4c 69 6e 65 73 |ington, |VA.Lines|
|00000100| 3a 20 32 35 34 38 0a 41 | 70 70 72 6f 76 65 64 3a |: 2548.A|pproved:|
|00000110| 20 72 73 40 75 75 6e 65 | 74 2e 55 55 2e 4e 45 54 | rs@uune|t.UU.NET|
|00000120| 0a 0a 53 75 62 6d 69 74 | 74 65 64 2d 62 79 3a 20 |..Submit|ted-by: |
|00000130| 50 65 72 20 42 65 72 67 | 73 74 65 6e 20 3c 6d 63 |Per Berg|sten <mc|
|00000140| 76 61 78 21 65 6e 65 61 | 21 63 68 61 6c 6d 65 72 |vax!enea|!chalmer|
|00000150| 73 21 68 6f 6c 74 65 63 | 21 70 65 72 62 3e 0a 50 |s!holtec|!perb>.P|
|00000160| 6f 73 74 69 6e 67 2d 6e | 75 6d 62 65 72 3a 20 56 |osting-n|umber: V|
|00000170| 6f 6c 75 6d 65 20 31 30 | 2c 20 49 73 73 75 65 20 |olume 10|, Issue |
|00000180| 37 34 0a 41 72 63 68 69 | 76 65 2d 6e 61 6d 65 3a |74.Archi|ve-name:|
|00000190| 20 70 74 6f 63 2f 50 61 | 72 74 31 30 0a 0a 0a 23 | ptoc/Pa|rt10...#|
|000001a0| 21 20 2f 62 69 6e 2f 73 | 68 0a 23 20 54 68 69 73 |! /bin/s|h.# This|
|000001b0| 20 69 73 20 61 20 73 68 | 65 6c 6c 20 61 72 63 68 | is a sh|ell arch|
|000001c0| 69 76 65 2e 20 20 52 65 | 6d 6f 76 65 20 61 6e 79 |ive. Re|move any|
|000001d0| 74 68 69 6e 67 20 62 65 | 66 6f 72 65 20 74 68 69 |thing be|fore thi|
|000001e0| 73 20 6c 69 6e 65 2c 20 | 74 68 65 6e 20 75 6e 70 |s line, |then unp|
|000001f0| 61 63 6b 0a 23 20 69 74 | 20 62 79 20 73 61 76 69 |ack.# it| by savi|
|00000200| 6e 67 20 69 74 20 69 6e | 74 6f 20 61 20 66 69 6c |ng it in|to a fil|
|00000210| 65 20 61 6e 64 20 74 79 | 70 69 6e 67 20 22 73 68 |e and ty|ping "sh|
|00000220| 20 66 69 6c 65 22 2e 20 | 20 54 6f 20 6f 76 65 72 | file". | To over|
|00000230| 77 72 69 74 65 20 65 78 | 69 73 74 69 6e 67 0a 23 |write ex|isting.#|
|00000240| 20 66 69 6c 65 73 2c 20 | 74 79 70 65 20 22 73 68 | files, |type "sh|
|00000250| 20 66 69 6c 65 20 2d 63 | 22 2e 20 20 59 6f 75 20 | file -c|". You |
|00000260| 63 61 6e 20 61 6c 73 6f | 20 66 65 65 64 20 74 68 |can also| feed th|
|00000270| 69 73 20 61 73 20 73 74 | 61 6e 64 61 72 64 20 69 |is as st|andard i|
|00000280| 6e 70 75 74 20 76 69 61 | 0a 23 20 75 6e 73 68 61 |nput via|.# unsha|
|00000290| 72 2c 20 6f 72 20 62 79 | 20 74 79 70 69 6e 67 20 |r, or by| typing |
|000002a0| 22 73 68 20 3c 66 69 6c | 65 22 2c 20 65 2e 67 2e |"sh <fil|e", e.g.|
|000002b0| 2e 20 20 49 66 20 74 68 | 69 73 20 61 72 63 68 69 |. If th|is archi|
|000002c0| 76 65 20 69 73 20 63 6f | 6d 70 6c 65 74 65 2c 20 |ve is co|mplete, |
|000002d0| 79 6f 75 0a 23 20 77 69 | 6c 6c 20 73 65 65 20 74 |you.# wi|ll see t|
|000002e0| 68 65 20 66 6f 6c 6c 6f | 77 69 6e 67 20 6d 65 73 |he follo|wing mes|
|000002f0| 73 61 67 65 20 61 74 20 | 74 68 65 20 65 6e 64 3a |sage at |the end:|
|00000300| 0a 23 09 09 22 45 6e 64 | 20 6f 66 20 61 72 63 68 |.#.."End| of arch|
|00000310| 69 76 65 20 31 30 20 28 | 6f 66 20 31 32 29 2e 22 |ive 10 (|of 12)."|
|00000320| 0a 23 20 43 6f 6e 74 65 | 6e 74 73 3a 20 20 70 74 |.# Conte|nts: pt|
|00000330| 63 2e 70 2e 32 0a 50 41 | 54 48 3d 2f 62 69 6e 3a |c.p.2.PA|TH=/bin:|
|00000340| 2f 75 73 72 2f 62 69 6e | 3a 2f 75 73 72 2f 75 63 |/usr/bin|:/usr/uc|
|00000350| 62 20 3b 20 65 78 70 6f | 72 74 20 50 41 54 48 0a |b ; expo|rt PATH.|
|00000360| 69 66 20 74 65 73 74 20 | 2d 66 20 27 70 74 63 2e |if test |-f 'ptc.|
|00000370| 70 2e 32 27 20 2d 61 20 | 22 24 7b 31 7d 22 20 21 |p.2' -a |"${1}" !|
|00000380| 3d 20 22 2d 63 22 20 3b | 20 74 68 65 6e 20 0a 20 |= "-c" ;| then . |
|00000390| 20 65 63 68 6f 20 73 68 | 61 72 3a 20 57 69 6c 6c | echo sh|ar: Will|
|000003a0| 20 6e 6f 74 20 63 6c 6f | 62 62 65 72 20 65 78 69 | not clo|bber exi|
|000003b0| 73 74 69 6e 67 20 66 69 | 6c 65 20 5c 22 27 70 74 |sting fi|le \"'pt|
|000003c0| 63 2e 70 2e 32 27 5c 22 | 0a 65 6c 73 65 0a 65 63 |c.p.2'\"|.else.ec|
|000003d0| 68 6f 20 73 68 61 72 3a | 20 45 78 74 72 61 63 74 |ho shar:| Extract|
|000003e0| 69 6e 67 20 5c 22 27 70 | 74 63 2e 70 2e 32 27 5c |ing \"'p|tc.p.2'\|
|000003f0| 22 20 5c 28 35 32 37 37 | 31 20 63 68 61 72 61 63 |" \(5277|1 charac|
|00000400| 74 65 72 73 5c 29 0a 73 | 65 64 20 22 73 2f 5e 58 |ters\).s|ed "s/^X|
|00000410| 2f 2f 22 20 3e 27 70 74 | 63 2e 70 2e 32 27 20 3c |//" >'pt|c.p.2' <|
|00000420| 3c 27 45 4e 44 5f 4f 46 | 5f 46 49 4c 45 27 0a 58 |<'END_OF|_FILE'.X|
|00000430| 09 09 09 69 66 20 73 70 | 5e 2e 6c 74 20 3d 20 6c |...if sp|^.lt = l|
|00000440| 66 6f 72 77 6c 61 62 20 | 74 68 65 6e 0a 58 09 09 |forwlab |then.X..|
|00000450| 09 09 73 70 5e 2e 6c 74 | 20 3a 3d 20 6c 6c 61 62 |..sp^.lt| := llab|
|00000460| 65 6c 0a 58 09 09 09 65 | 6c 73 65 0a 58 09 09 09 |el.X...e|lse.X...|
|00000470| 09 65 72 72 6f 72 28 65 | 6d 75 6c 64 65 66 6c 61 |.error(e|muldefla|
|00000480| 62 29 3b 0a 58 09 09 20 | 20 20 20 65 6e 64 3b 0a |b);.X.. | end;.|
|00000490| 58 09 09 6f 6c 64 6c 62 | 6c 20 3a 3d 20 74 70 0a |X..oldlb|l := tp.|
|000004a0| 58 09 65 6e 64 3b 0a 58 | 0a 58 09 28 2a 09 50 61 |X.end;.X|.X.(*.Pa|
|000004b0| 72 73 65 20 64 65 63 6c | 61 72 61 74 69 6f 6e 20 |rse decl|aration |
|000004c0| 61 6e 64 20 73 74 61 74 | 65 6d 65 6e 74 2d 62 6f |and stat|ement-bo|
|000004d0| 64 79 20 66 6f 72 20 70 | 72 6f 67 2f 73 75 62 73 |dy for p|rog/subs|
|000004e0| 2e 09 2a 29 0a 58 09 70 | 72 6f 63 65 64 75 72 65 |..*).X.p|rocedure|
|000004f0| 20 70 62 6f 64 79 28 74 | 70 20 3a 20 74 72 65 65 | pbody(t|p : tree|
|00000500| 70 74 72 29 3b 0a 58 0a | 58 09 76 61 72 09 74 71 |ptr);.X.|X.var.tq|
|00000510| 09 3a 20 74 72 65 65 70 | 74 72 3b 0a 58 0a 58 09 |.: treep|tr;.X.X.|
|00000520| 62 65 67 69 6e 0a 58 09 | 09 73 74 61 74 6c 76 6c |begin.X.|.statlvl|
|00000530| 20 3a 3d 20 73 74 61 74 | 6c 76 6c 20 2b 20 31 3b | := stat|lvl + 1;|
|00000540| 0a 58 09 09 69 66 20 63 | 75 72 72 73 79 6d 2e 73 |.X..if c|urrsym.s|
|00000550| 74 20 3d 20 73 6c 61 62 | 65 6c 20 74 68 65 6e 0a |t = slab|el then.|
|00000560| 58 09 09 20 20 20 20 62 | 65 67 69 6e 0a 58 09 09 |X.. b|egin.X..|
|00000570| 09 74 70 5e 2e 74 73 75 | 62 6c 61 62 20 3a 3d 20 |.tp^.tsu|blab := |
|00000580| 70 6c 61 62 65 6c 3b 0a | 58 09 09 09 6c 69 6e 6b |plabel;.|X...link|
|00000590| 75 70 28 74 70 2c 20 74 | 70 5e 2e 74 73 75 62 6c |up(tp, t|p^.tsubl|
|000005a0| 61 62 29 0a 58 09 09 20 | 20 20 20 65 6e 64 0a 58 |ab).X.. | end.X|
|000005b0| 09 09 65 6c 73 65 0a 58 | 09 09 09 74 70 5e 2e 74 |..else.X|...tp^.t|
|000005c0| 73 75 62 6c 61 62 20 3a | 3d 20 6e 69 6c 3b 0a 58 |sublab :|= nil;.X|
|000005d0| 09 09 69 66 20 63 75 72 | 72 73 79 6d 2e 73 74 20 |..if cur|rsym.st |
|000005e0| 3d 20 73 63 6f 6e 73 74 | 20 74 68 65 6e 0a 58 09 |= sconst| then.X.|
|000005f0| 09 20 20 20 20 62 65 67 | 69 6e 0a 58 09 09 09 74 |. beg|in.X...t|
|00000600| 70 5e 2e 74 73 75 62 63 | 6f 6e 73 74 20 3a 3d 20 |p^.tsubc|onst := |
|00000610| 70 63 6f 6e 73 74 3b 0a | 58 09 09 09 6c 69 6e 6b |pconst;.|X...link|
|00000620| 75 70 28 74 70 2c 20 74 | 70 5e 2e 74 73 75 62 63 |up(tp, t|p^.tsubc|
|00000630| 6f 6e 73 74 29 0a 58 09 | 09 20 20 20 20 65 6e 64 |onst).X.|. end|
|00000640| 0a 58 09 09 65 6c 73 65 | 0a 58 09 09 09 74 70 5e |.X..else|.X...tp^|
|00000650| 2e 74 73 75 62 63 6f 6e | 73 74 20 3a 3d 20 6e 69 |.tsubcon|st := ni|
|00000660| 6c 3b 0a 58 09 09 69 66 | 20 63 75 72 72 73 79 6d |l;.X..if| currsym|
|00000670| 2e 73 74 20 3d 20 73 74 | 79 70 65 20 74 68 65 6e |.st = st|ype then|
|00000680| 0a 58 09 09 20 20 20 20 | 62 65 67 69 6e 0a 58 09 |.X.. |begin.X.|
|00000690| 09 09 74 70 5e 2e 74 73 | 75 62 74 79 70 65 20 3a |..tp^.ts|ubtype :|
|000006a0| 3d 20 70 74 79 70 65 3b | 0a 58 09 09 09 6c 69 6e |= ptype;|.X...lin|
|000006b0| 6b 75 70 28 74 70 2c 20 | 74 70 5e 2e 74 73 75 62 |kup(tp, |tp^.tsub|
|000006c0| 74 79 70 65 29 0a 58 09 | 09 20 20 20 20 65 6e 64 |type).X.|. end|
|000006d0| 0a 58 09 09 65 6c 73 65 | 0a 58 09 09 09 74 70 5e |.X..else|.X...tp^|
|000006e0| 2e 74 73 75 62 74 79 70 | 65 20 3a 3d 20 6e 69 6c |.tsubtyp|e := nil|
|000006f0| 3b 0a 58 09 09 69 66 20 | 63 75 72 72 73 79 6d 2e |;.X..if |currsym.|
|00000700| 73 74 20 3d 20 73 76 61 | 72 20 74 68 65 6e 0a 58 |st = sva|r then.X|
|00000710| 09 09 20 20 20 20 62 65 | 67 69 6e 0a 58 09 09 09 |.. be|gin.X...|
|00000720| 74 70 5e 2e 74 73 75 62 | 76 61 72 20 3a 3d 20 70 |tp^.tsub|var := p|
|00000730| 76 61 72 3b 0a 58 09 09 | 09 6c 69 6e 6b 75 70 28 |var;.X..|.linkup(|
|00000740| 74 70 2c 20 74 70 5e 2e | 74 73 75 62 76 61 72 29 |tp, tp^.|tsubvar)|
|00000750| 0a 58 09 09 20 20 20 20 | 65 6e 64 0a 58 09 09 65 |.X.. |end.X..e|
|00000760| 6c 73 65 0a 58 09 09 09 | 74 70 5e 2e 74 73 75 62 |lse.X...|tp^.tsub|
|00000770| 76 61 72 20 3a 3d 20 6e | 69 6c 3b 0a 58 09 09 74 |var := n|il;.X..t|
|00000780| 70 5e 2e 74 73 75 62 73 | 75 62 20 3a 3d 20 6e 69 |p^.tsubs|ub := ni|
|00000790| 6c 3b 0a 58 09 09 74 71 | 20 3a 3d 20 6e 69 6c 3b |l;.X..tq| := nil;|
|000007a0| 0a 58 09 09 77 68 69 6c | 65 20 28 63 75 72 72 73 |.X..whil|e (currs|
|000007b0| 79 6d 2e 73 74 20 3d 20 | 73 70 72 6f 63 29 20 6f |ym.st = |sproc) o|
|000007c0| 72 20 28 63 75 72 72 73 | 79 6d 2e 73 74 20 3d 20 |r (currs|ym.st = |
|000007d0| 73 66 75 6e 63 29 20 64 | 6f 0a 58 09 09 20 20 20 |sfunc) d|o.X.. |
|000007e0| 20 62 65 67 69 6e 0a 58 | 09 09 09 69 66 20 74 71 | begin.X|...if tq|
|000007f0| 20 3d 20 6e 69 6c 20 74 | 68 65 6e 0a 58 09 09 09 | = nil t|hen.X...|
|00000800| 20 20 20 20 62 65 67 69 | 6e 0a 58 09 09 09 09 74 | begi|n.X....t|
|00000810| 71 20 3a 3d 20 70 73 75 | 62 73 3b 0a 58 09 09 09 |q := psu|bs;.X...|
|00000820| 09 74 70 5e 2e 74 73 75 | 62 73 75 62 20 3a 3d 20 |.tp^.tsu|bsub := |
|00000830| 74 71 0a 58 09 09 09 20 | 20 20 20 65 6e 64 0a 58 |tq.X... | end.X|
|00000840| 09 09 09 65 6c 73 65 20 | 62 65 67 69 6e 0a 58 09 |...else |begin.X.|
|00000850| 09 09 09 74 71 5e 2e 74 | 6e 65 78 74 20 3a 3d 20 |...tq^.t|next := |
|00000860| 70 73 75 62 73 3b 0a 58 | 09 09 09 09 74 71 20 3a |psubs;.X|....tq :|
|00000870| 3d 20 74 71 5e 2e 74 6e | 65 78 74 0a 58 09 09 09 |= tq^.tn|ext.X...|
|00000880| 20 20 20 20 20 65 6e 64 | 0a 58 09 09 20 20 20 20 | end|.X.. |
|00000890| 65 6e 64 3b 0a 58 09 09 | 6c 69 6e 6b 75 70 28 74 |end;.X..|linkup(t|
|000008a0| 70 2c 20 74 70 5e 2e 74 | 73 75 62 73 75 62 29 3b |p, tp^.t|subsub);|
|000008b0| 0a 58 09 09 63 68 65 63 | 6b 73 79 6d 62 6f 6c 28 |.X..chec|ksymbol(|
|000008c0| 5b 73 62 65 67 69 6e 2c | 20 73 65 6f 66 5d 29 3b |[sbegin,| seof]);|
|000008d0| 0a 58 09 09 69 66 20 63 | 75 72 72 73 79 6d 2e 73 |.X..if c|urrsym.s|
|000008e0| 74 20 3d 20 73 62 65 67 | 69 6e 20 74 68 65 6e 0a |t = sbeg|in then.|
|000008f0| 58 09 09 20 20 20 20 62 | 65 67 69 6e 0a 58 09 09 |X.. b|egin.X..|
|00000900| 09 74 70 5e 2e 74 73 75 | 62 73 74 6d 74 20 3a 3d |.tp^.tsu|bstmt :=|
|00000910| 20 70 62 65 67 69 6e 28 | 66 61 6c 73 65 29 3b 0a | pbegin(|false);.|
|00000920| 58 09 09 09 6c 69 6e 6b | 75 70 28 74 70 2c 20 74 |X...link|up(tp, t|
|00000930| 70 5e 2e 74 73 75 62 73 | 74 6d 74 29 0a 58 09 09 |p^.tsubs|tmt).X..|
|00000940| 20 20 20 20 65 6e 64 3b | 0a 58 09 09 73 74 61 74 | end;|.X..stat|
|00000950| 6c 76 6c 20 3a 3d 20 73 | 74 61 74 6c 76 6c 20 2d |lvl := s|tatlvl -|
|00000960| 20 31 0a 58 09 65 6e 64 | 3b 0a 58 0a 58 09 28 2a | 1.X.end|;.X.X.(*|
|00000970| 09 50 61 72 73 65 20 70 | 72 6f 67 72 61 6d 2d 64 |.Parse p|rogram-d|
|00000980| 65 63 6c 61 72 61 74 69 | 6f 6e 2e 09 09 09 09 2a |eclarati|on.....*|
|00000990| 29 0a 58 09 66 75 6e 63 | 74 69 6f 6e 20 70 70 72 |).X.func|tion ppr|
|000009a0| 6f 67 72 61 6d 20 3a 20 | 74 72 65 65 70 74 72 3b |ogram : |treeptr;|
|000009b0| 0a 58 0a 58 09 76 61 72 | 09 74 70 09 3a 20 74 72 |.X.X.var|.tp.: tr|
|000009c0| 65 65 70 74 72 3b 0a 58 | 0a 58 09 09 28 2a 09 50 |eeptr;.X|.X..(*.P|
|000009d0| 61 72 73 65 20 61 20 70 | 72 6f 67 72 61 6d 20 70 |arse a p|rogram p|
|000009e0| 61 72 61 6d 65 74 65 72 | 20 69 64 2d 6c 69 73 74 |arameter| id-list|
|000009f0| 2e 09 09 2a 29 0a 58 09 | 09 66 75 6e 63 74 69 6f |...*).X.|.functio|
|00000a00| 6e 20 70 70 72 6d 6c 69 | 73 74 20 3a 20 74 72 65 |n pprmli|st : tre|
|00000a10| 65 70 74 72 3b 0a 58 0a | 58 09 09 6c 61 62 65 6c |eptr;.X.|X..label|
|00000a20| 09 39 39 39 3b 0a 58 0a | 58 09 09 76 61 72 09 74 |.999;.X.|X..var.t|
|00000a30| 70 2c 0a 58 09 09 09 74 | 71 09 3a 20 74 72 65 65 |p,.X...t|q.: tree|
|00000a40| 70 74 72 3b 0a 58 09 09 | 09 64 69 6e 2c 0a 58 09 |ptr;.X..|.din,.X.|
|00000a50| 09 09 64 75 74 09 3a 20 | 69 64 70 74 72 3b 0a 58 |..dut.: |idptr;.X|
|00000a60| 0a 58 09 09 62 65 67 69 | 6e 0a 58 09 09 09 74 70 |.X..begi|n.X...tp|
|00000a70| 20 3a 3d 20 6e 69 6c 3b | 0a 58 09 09 09 64 69 6e | := nil;|.X...din|
|00000a80| 20 3a 3d 20 64 65 66 74 | 61 62 5b 64 69 6e 70 75 | := deft|ab[dinpu|
|00000a90| 74 5d 5e 2e 74 69 64 6c | 5e 2e 74 73 79 6d 5e 2e |t]^.tidl|^.tsym^.|
|00000aa0| 6c 69 64 3b 0a 58 09 09 | 09 64 75 74 20 3a 3d 20 |lid;.X..|.dut := |
|00000ab0| 64 65 66 74 61 62 5b 64 | 6f 75 74 70 75 74 5d 5e |deftab[d|output]^|
|00000ac0| 2e 74 69 64 6c 5e 2e 74 | 73 79 6d 5e 2e 6c 69 64 |.tidl^.t|sym^.lid|
|00000ad0| 3b 0a 58 09 09 09 77 68 | 69 6c 65 20 28 63 75 72 |;.X...wh|ile (cur|
|00000ae0| 72 73 79 6d 2e 76 69 64 | 20 3d 20 64 69 6e 29 20 |rsym.vid| = din) |
|00000af0| 6f 72 20 28 63 75 72 72 | 73 79 6d 2e 76 69 64 20 |or (curr|sym.vid |
|00000b00| 3d 20 64 75 74 29 20 64 | 6f 0a 58 09 09 09 20 20 |= dut) d|o.X... |
|00000b10| 20 20 62 65 67 69 6e 0a | 58 09 09 09 09 28 2a 20 | begin.|X....(* |
|00000b20| 69 67 6e 6f 72 65 20 69 | 6e 70 75 74 2f 6f 75 74 |ignore i|nput/out|
|00000b30| 70 75 74 20 61 73 20 70 | 61 72 61 6d 65 74 65 72 |put as p|arameter|
|00000b40| 73 20 73 6f 20 74 68 61 | 74 0a 58 09 09 09 09 20 |s so tha|t.X.... |
|00000b50| 20 20 74 68 65 79 20 77 | 69 6c 6c 20 62 65 20 62 | they w|ill be b|
|00000b60| 6f 75 6e 64 20 74 6f 20 | 73 74 64 69 6e 2f 73 74 |ound to |stdin/st|
|00000b70| 64 6f 75 74 20 75 6e 6c | 65 73 73 0a 58 09 09 09 |dout unl|ess.X...|
|00000b80| 09 20 20 20 64 65 63 6c | 61 72 65 64 20 61 73 20 |. decl|ared as |
|00000b90| 76 61 72 69 61 62 6c 65 | 73 20 2a 29 0a 58 09 09 |variable|s *).X..|
|00000ba0| 09 09 69 66 20 63 75 72 | 72 73 79 6d 2e 76 69 64 |..if cur|rsym.vid|
|00000bb0| 20 3d 20 64 69 6e 20 74 | 68 65 6e 0a 58 09 09 09 | = din t|hen.X...|
|00000bc0| 09 09 64 65 66 6e 61 6d | 73 5b 64 69 6e 70 75 74 |..defnam|s[dinput|
|00000bd0| 5d 5e 2e 6c 75 73 65 64 | 20 3a 3d 20 74 72 75 65 |]^.lused| := true|
|00000be0| 0a 58 09 09 09 09 65 6c | 73 65 0a 58 09 09 09 09 |.X....el|se.X....|
|00000bf0| 09 64 65 66 6e 61 6d 73 | 5b 64 6f 75 74 70 75 74 |.defnams|[doutput|
|00000c00| 5d 5e 2e 6c 75 73 65 64 | 20 3a 3d 20 74 72 75 65 |]^.lused| := true|
|00000c10| 3b 0a 58 09 09 09 09 6e | 65 78 74 73 79 6d 62 6f |;.X....n|extsymbo|
|00000c20| 6c 28 5b 73 63 6f 6d 6d | 61 2c 20 73 72 70 61 72 |l([scomm|a, srpar|
|00000c30| 5d 29 3b 0a 58 09 09 09 | 09 69 66 20 63 75 72 72 |]);.X...|.if curr|
|00000c40| 73 79 6d 2e 73 74 20 3d | 20 73 72 70 61 72 20 74 |sym.st =| srpar t|
|00000c50| 68 65 6e 0a 58 09 09 09 | 09 09 67 6f 74 6f 20 39 |hen.X...|..goto 9|
|00000c60| 39 39 3b 0a 58 09 09 09 | 09 6e 65 78 74 73 79 6d |99;.X...|.nextsym|
|00000c70| 62 6f 6c 28 5b 73 69 64 | 5d 29 0a 58 09 09 09 20 |bol([sid|]).X... |
|00000c80| 20 20 20 65 6e 64 3b 0a | 58 09 09 09 74 71 20 3a | end;.|X...tq :|
|00000c90| 3d 20 6e 65 77 69 64 28 | 63 75 72 72 73 79 6d 2e |= newid(|currsym.|
|00000ca0| 76 69 64 29 3b 0a 58 09 | 09 09 74 71 5e 2e 74 73 |vid);.X.|..tq^.ts|
|00000cb0| 79 6d 5e 2e 6c 74 20 3a | 3d 20 6c 70 6f 69 6e 74 |ym^.lt :|= lpoint|
|00000cc0| 65 72 3b 0a 58 09 09 09 | 74 70 20 3a 3d 20 74 71 |er;.X...|tp := tq|
|00000cd0| 3b 0a 58 09 09 09 6e 65 | 78 74 73 79 6d 62 6f 6c |;.X...ne|xtsymbol|
|00000ce0| 28 5b 73 63 6f 6d 6d 61 | 2c 20 73 72 70 61 72 5d |([scomma|, srpar]|
|00000cf0| 29 3b 0a 58 09 09 09 77 | 68 69 6c 65 20 63 75 72 |);.X...w|hile cur|
|00000d00| 72 73 79 6d 2e 73 74 20 | 3d 20 73 63 6f 6d 6d 61 |rsym.st |= scomma|
|00000d10| 20 64 6f 0a 58 09 09 09 | 20 20 20 20 62 65 67 69 | do.X...| begi|
|00000d20| 6e 0a 58 09 09 09 09 6e | 65 78 74 73 79 6d 62 6f |n.X....n|extsymbo|
|00000d30| 6c 28 5b 73 69 64 5d 29 | 3b 0a 58 09 09 09 09 69 |l([sid])|;.X....i|
|00000d40| 66 20 63 75 72 72 73 79 | 6d 2e 76 69 64 20 3d 20 |f currsy|m.vid = |
|00000d50| 64 69 6e 20 74 68 65 6e | 0a 58 09 09 09 09 09 64 |din then|.X.....d|
|00000d60| 65 66 6e 61 6d 73 5b 64 | 69 6e 70 75 74 5d 5e 2e |efnams[d|input]^.|
|00000d70| 6c 75 73 65 64 20 3a 3d | 20 74 72 75 65 0a 58 09 |lused :=| true.X.|
|00000d80| 09 09 09 65 6c 73 65 20 | 69 66 20 63 75 72 72 73 |...else |if currs|
|00000d90| 79 6d 2e 76 69 64 20 3d | 20 64 75 74 20 74 68 65 |ym.vid =| dut the|
|00000da0| 6e 0a 58 09 09 09 09 09 | 64 65 66 6e 61 6d 73 5b |n.X.....|defnams[|
|00000db0| 64 6f 75 74 70 75 74 5d | 5e 2e 6c 75 73 65 64 20 |doutput]|^.lused |
|00000dc0| 3a 3d 20 74 72 75 65 0a | 58 09 09 09 09 65 6c 73 |:= true.|X....els|
|00000dd0| 65 20 62 65 67 69 6e 0a | 58 09 09 09 09 09 74 71 |e begin.|X.....tq|
|00000de0| 5e 2e 74 6e 65 78 74 20 | 3a 3d 20 6e 65 77 69 64 |^.tnext |:= newid|
|00000df0| 28 63 75 72 72 73 79 6d | 2e 76 69 64 29 3b 0a 58 |(currsym|.vid);.X|
|00000e00| 09 09 09 09 09 74 71 20 | 3a 3d 20 74 71 5e 2e 74 |.....tq |:= tq^.t|
|00000e10| 6e 65 78 74 3b 0a 58 09 | 09 09 09 09 74 71 5e 2e |next;.X.|....tq^.|
|00000e20| 74 73 79 6d 5e 2e 6c 74 | 20 3a 3d 20 6c 70 6f 69 |tsym^.lt| := lpoi|
|00000e30| 6e 74 65 72 3b 0a 58 09 | 09 09 09 20 20 20 20 20 |nter;.X.|... |
|00000e40| 65 6e 64 3b 0a 58 09 09 | 09 09 6e 65 78 74 73 79 |end;.X..|..nextsy|
|00000e50| 6d 62 6f 6c 28 5b 73 63 | 6f 6d 6d 61 2c 20 73 72 |mbol([sc|omma, sr|
|00000e60| 70 61 72 5d 29 0a 58 09 | 09 09 20 20 20 20 65 6e |par]).X.|.. en|
|00000e70| 64 3b 0a 58 09 09 39 39 | 39 3a 0a 58 09 09 09 70 |d;.X..99|9:.X...p|
|00000e80| 70 72 6d 6c 69 73 74 20 | 3a 3d 20 74 70 0a 58 09 |prmlist |:= tp.X.|
|00000e90| 09 65 6e 64 3b 0a 58 0a | 58 09 62 65 67 69 6e 09 |.end;.X.|X.begin.|
|00000ea0| 28 2a 20 70 70 72 6f 67 | 72 61 6d 20 2a 29 0a 58 |(* pprog|ram *).X|
|00000eb0| 09 09 65 6e 74 65 72 73 | 63 6f 70 65 28 6e 69 6c |..enters|cope(nil|
|00000ec0| 29 3b 0a 58 09 09 74 70 | 20 3a 3d 20 6d 6b 6e 6f |);.X..tp| := mkno|
|00000ed0| 64 65 28 6e 70 67 6d 29 | 3b 0a 58 09 09 6e 65 78 |de(npgm)|;.X..nex|
|00000ee0| 74 73 79 6d 62 6f 6c 28 | 5b 73 69 64 5d 29 3b 0a |tsymbol(|[sid]);.|
|00000ef0| 58 09 09 74 70 5e 2e 74 | 73 74 61 74 20 3a 3d 20 |X..tp^.t|stat := |
|00000f00| 73 74 61 74 6c 76 6c 3b | 0a 58 09 09 74 70 5e 2e |statlvl;|.X..tp^.|
|00000f10| 74 73 75 62 69 64 20 3a | 3d 20 6d 6b 6e 6f 64 65 |tsubid :|= mknode|
|00000f20| 28 6e 69 64 29 3b 0a 58 | 09 09 74 70 5e 2e 74 73 |(nid);.X|..tp^.ts|
|00000f30| 75 62 69 64 5e 2e 74 75 | 70 20 3a 3d 20 74 70 3b |ubid^.tu|p := tp;|
|00000f40| 0a 58 09 09 74 70 5e 2e | 74 73 75 62 69 64 5e 2e |.X..tp^.|tsubid^.|
|00000f50| 74 73 79 6d 20 3a 3d 20 | 6d 6b 73 79 6d 28 6c 69 |tsym := |mksym(li|
|00000f60| 64 65 6e 74 69 66 69 65 | 72 29 3b 0a 58 09 09 74 |dentifie|r);.X..t|
|00000f70| 70 5e 2e 74 73 75 62 69 | 64 5e 2e 74 73 79 6d 5e |p^.tsubi|d^.tsym^|
|00000f80| 2e 6c 69 64 20 3a 3d 20 | 63 75 72 72 73 79 6d 2e |.lid := |currsym.|
|00000f90| 76 69 64 3b 0a 58 09 09 | 74 70 5e 2e 74 73 75 62 |vid;.X..|tp^.tsub|
|00000fa0| 69 64 5e 2e 74 73 79 6d | 5e 2e 6c 73 79 6d 64 65 |id^.tsym|^.lsymde|
|00000fb0| 63 6c 20 3a 3d 20 74 70 | 5e 2e 74 73 75 62 69 64 |cl := tp|^.tsubid|
|00000fc0| 3b 0a 58 09 09 6c 69 6e | 6b 75 70 28 74 70 2c 20 |;.X..lin|kup(tp, |
|00000fd0| 74 70 5e 2e 74 73 75 62 | 69 64 29 3b 0a 58 09 09 |tp^.tsub|id);.X..|
|00000fe0| 6e 65 78 74 73 79 6d 62 | 6f 6c 28 5b 73 6c 70 61 |nextsymb|ol([slpa|
|00000ff0| 72 2c 20 73 73 65 6d 69 | 63 5d 29 3b 0a 58 09 09 |r, ssemi|c]);.X..|
|00001000| 69 66 20 63 75 72 72 73 | 79 6d 2e 73 74 20 3d 20 |if currs|ym.st = |
|00001010| 73 6c 70 61 72 20 74 68 | 65 6e 0a 58 09 09 20 20 |slpar th|en.X.. |
|00001020| 20 20 62 65 67 69 6e 0a | 58 09 09 09 6e 65 78 74 | begin.|X...next|
|00001030| 73 79 6d 62 6f 6c 28 5b | 73 69 64 5d 29 3b 0a 58 |symbol([|sid]);.X|
|00001040| 09 09 09 74 70 5e 2e 74 | 73 75 62 70 61 72 20 3a |...tp^.t|subpar :|
|00001050| 3d 20 70 70 72 6d 6c 69 | 73 74 3b 0a 58 09 09 09 |= pprmli|st;.X...|
|00001060| 6c 69 6e 6b 75 70 28 74 | 70 2c 20 74 70 5e 2e 74 |linkup(t|p, tp^.t|
|00001070| 73 75 62 70 61 72 29 3b | 0a 58 09 09 09 6e 65 78 |subpar);|.X...nex|
|00001080| 74 73 79 6d 62 6f 6c 28 | 5b 73 73 65 6d 69 63 5d |tsymbol(|[ssemic]|
|00001090| 29 0a 58 09 09 20 20 20 | 20 65 6e 64 0a 58 09 09 |).X.. | end.X..|
|000010a0| 65 6c 73 65 0a 58 09 09 | 09 74 70 5e 2e 74 73 75 |else.X..|.tp^.tsu|
|000010b0| 62 70 61 72 20 3a 3d 20 | 6e 69 6c 3b 0a 58 09 09 |bpar := |nil;.X..|
|000010c0| 6e 65 78 74 73 79 6d 62 | 6f 6c 28 5b 73 6c 61 62 |nextsymb|ol([slab|
|000010d0| 65 6c 2c 20 73 63 6f 6e | 73 74 2c 20 73 74 79 70 |el, scon|st, styp|
|000010e0| 65 2c 20 73 76 61 72 2c | 0a 58 09 09 09 09 09 09 |e, svar,|.X......|
|000010f0| 73 70 72 6f 63 2c 20 73 | 66 75 6e 63 2c 20 73 62 |sproc, s|func, sb|
|00001100| 65 67 69 6e 5d 29 3b 0a | 58 09 09 70 62 6f 64 79 |egin]);.|X..pbody|
|00001110| 28 74 70 29 3b 0a 58 09 | 09 63 68 65 63 6b 73 79 |(tp);.X.|.checksy|
|00001120| 6d 62 6f 6c 28 5b 73 64 | 6f 74 5d 29 3b 0a 58 09 |mbol([sd|ot]);.X.|
|00001130| 09 74 70 5e 2e 74 73 63 | 6f 70 65 20 3a 3d 20 63 |.tp^.tsc|ope := c|
|00001140| 75 72 72 73 63 6f 70 65 | 3b 0a 58 09 09 6c 65 61 |urrscope|;.X..lea|
|00001150| 76 65 73 63 6f 70 65 3b | 0a 58 09 09 70 70 72 6f |vescope;|.X..ppro|
|00001160| 67 72 61 6d 20 3a 3d 20 | 74 70 0a 58 09 65 6e 64 |gram := |tp.X.end|
|00001170| 3b 09 28 2a 20 70 70 72 | 6f 67 72 61 6d 20 2a 29 |;.(* ppr|ogram *)|
|00001180| 0a 58 0a 58 09 28 2a 09 | 50 61 72 73 65 20 61 20 |.X.X.(*.|Parse a |
|00001190| 6d 6f 64 75 6c 65 2e 09 | 09 09 09 2a 29 0a 58 09 |module..|...*).X.|
|000011a0| 66 75 6e 63 74 69 6f 6e | 20 70 6d 6f 64 75 6c 65 |function| pmodule|
|000011b0| 20 3a 20 74 72 65 65 70 | 74 72 3b 0a 58 0a 58 09 | : treep|tr;.X.X.|
|000011c0| 76 61 72 09 74 70 09 3a | 20 74 72 65 65 70 74 72 |var.tp.:| treeptr|
|000011d0| 3b 0a 58 0a 58 09 62 65 | 67 69 6e 09 28 2a 20 70 |;.X.X.be|gin.(* p|
|000011e0| 6d 6f 64 75 6c 65 20 2a | 29 0a 58 09 09 65 6e 74 |module *|).X..ent|
|000011f0| 65 72 73 63 6f 70 65 28 | 6e 69 6c 29 3b 0a 58 09 |erscope(|nil);.X.|
|00001200| 09 74 70 20 3a 3d 20 6d | 6b 6e 6f 64 65 28 6e 70 |.tp := m|knode(np|
|00001210| 67 6d 29 3b 0a 58 09 09 | 74 70 5e 2e 74 73 74 61 |gm);.X..|tp^.tsta|
|00001220| 74 20 3a 3d 20 73 74 61 | 74 6c 76 6c 3b 0a 58 09 |t := sta|tlvl;.X.|
|00001230| 09 74 70 5e 2e 74 73 75 | 62 69 64 20 3a 3d 20 6e |.tp^.tsu|bid := n|
|00001240| 69 6c 3b 0a 58 09 09 74 | 70 5e 2e 74 73 75 62 70 |il;.X..t|p^.tsubp|
|00001250| 61 72 20 3a 3d 20 6e 69 | 6c 3b 0a 58 09 09 70 62 |ar := ni|l;.X..pb|
|00001260| 6f 64 79 28 74 70 29 3b | 0a 58 09 09 63 68 65 63 |ody(tp);|.X..chec|
|00001270| 6b 73 79 6d 62 6f 6c 28 | 5b 73 73 65 6d 69 63 5d |ksymbol(|[ssemic]|
|00001280| 29 3b 0a 58 09 09 74 70 | 5e 2e 74 73 63 6f 70 65 |);.X..tp|^.tscope|
|00001290| 20 3a 3d 20 63 75 72 72 | 73 63 6f 70 65 3b 0a 58 | := curr|scope;.X|
|000012a0| 09 09 6c 65 61 76 65 73 | 63 6f 70 65 3b 0a 58 09 |..leaves|cope;.X.|
|000012b0| 09 70 6d 6f 64 75 6c 65 | 20 3a 3d 20 74 70 0a 58 |.pmodule| := tp.X|
|000012c0| 09 65 6e 64 3b 09 28 2a | 20 70 6d 6f 64 75 6c 65 |.end;.(*| pmodule|
|000012d0| 20 2a 29 0a 58 0a 58 0a | 58 09 28 2a 09 50 61 72 | *).X.X.|X.(*.Par|
|000012e0| 73 65 20 6c 61 62 65 6c | 2d 63 6c 61 75 73 65 2e |se label|-clause.|
|000012f0| 09 09 09 09 09 2a 29 0a | 58 09 66 75 6e 63 74 69 |.....*).|X.functi|
|00001300| 6f 6e 20 70 6c 61 62 65 | 6c 3b 0a 58 0a 58 09 76 |on plabe|l;.X.X.v|
|00001310| 61 72 09 74 70 2c 0a 58 | 09 09 74 71 09 3a 20 74 |ar.tp,.X|..tq.: t|
|00001320| 72 65 65 70 74 72 3b 0a | 58 0a 58 09 62 65 67 69 |reeptr;.|X.X.begi|
|00001330| 6e 0a 58 09 09 74 71 20 | 3a 3d 20 6e 69 6c 3b 0a |n.X..tq |:= nil;.|
|00001340| 58 09 09 72 65 70 65 61 | 74 0a 58 09 09 09 6e 65 |X..repea|t.X...ne|
|00001350| 78 74 73 79 6d 62 6f 6c | 28 5b 73 69 6e 74 65 67 |xtsymbol|([sinteg|
|00001360| 65 72 5d 29 3b 0a 58 09 | 09 09 69 66 20 74 71 20 |er]);.X.|..if tq |
|00001370| 3d 20 6e 69 6c 20 74 68 | 65 6e 0a 58 09 09 09 20 |= nil th|en.X... |
|00001380| 20 20 20 62 65 67 69 6e | 0a 58 09 09 09 09 74 71 | begin|.X....tq|
|00001390| 20 3a 3d 20 6e 65 77 6c | 62 6c 3b 0a 58 09 09 09 | := newl|bl;.X...|
|000013a0| 09 74 70 20 3a 3d 20 74 | 71 0a 58 09 09 09 20 20 |.tp := t|q.X... |
|000013b0| 20 20 65 6e 64 0a 58 09 | 09 09 65 6c 73 65 20 62 | end.X.|..else b|
|000013c0| 65 67 69 6e 0a 58 09 09 | 09 09 74 71 5e 2e 74 6e |egin.X..|..tq^.tn|
|000013d0| 65 78 74 20 3a 3d 20 6e | 65 77 6c 62 6c 3b 0a 58 |ext := n|ewlbl;.X|
|000013e0| 09 09 09 09 74 71 20 3a | 3d 20 74 71 5e 2e 74 6e |....tq :|= tq^.tn|
|000013f0| 65 78 74 3b 0a 58 09 09 | 09 20 20 20 20 20 65 6e |ext;.X..|. en|
|00001400| 64 3b 0a 58 09 09 09 6e | 65 78 74 73 79 6d 62 6f |d;.X...n|extsymbo|
|00001410| 6c 28 5b 73 63 6f 6d 6d | 61 2c 20 73 73 65 6d 69 |l([scomm|a, ssemi|
|00001420| 63 5d 29 0a 58 09 09 75 | 6e 74 69 6c 09 63 75 72 |c]).X..u|ntil.cur|
|00001430| 72 73 79 6d 2e 73 74 20 | 3d 20 73 73 65 6d 69 63 |rsym.st |= ssemic|
|00001440| 3b 0a 58 09 09 6e 65 78 | 74 73 79 6d 62 6f 6c 28 |;.X..nex|tsymbol(|
|00001450| 5b 73 63 6f 6e 73 74 2c | 20 73 74 79 70 65 2c 20 |[sconst,| stype, |
|00001460| 73 76 61 72 2c 20 73 62 | 65 67 69 6e 2c 20 73 70 |svar, sb|egin, sp|
|00001470| 72 6f 63 2c 20 73 66 75 | 6e 63 5d 29 3b 0a 58 09 |roc, sfu|nc]);.X.|
|00001480| 09 70 6c 61 62 65 6c 20 | 3a 3d 20 74 70 0a 58 09 |.plabel |:= tp.X.|
|00001490| 65 6e 64 3b 0a 58 0a 58 | 09 28 2a 09 50 61 72 73 |end;.X.X|.(*.Pars|
|000014a0| 65 20 61 6e 20 69 64 2d | 6c 69 73 74 2e 09 09 09 |e an id-|list....|
|000014b0| 09 09 2a 29 0a 58 09 66 | 75 6e 63 74 69 6f 6e 20 |..*).X.f|unction |
|000014c0| 70 69 64 6c 69 73 74 3b | 0a 58 0a 58 09 76 61 72 |pidlist;|.X.X.var|
|000014d0| 09 74 70 2c 0a 58 09 09 | 74 71 09 3a 20 74 72 65 |.tp,.X..|tq.: tre|
|000014e0| 65 70 74 72 3b 0a 58 0a | 58 09 62 65 67 69 6e 0a |eptr;.X.|X.begin.|
|000014f0| 58 09 09 74 71 20 3a 3d | 20 6e 65 77 69 64 28 63 |X..tq :=| newid(c|
|00001500| 75 72 72 73 79 6d 2e 76 | 69 64 29 3b 0a 58 09 09 |urrsym.v|id);.X..|
|00001510| 74 71 5e 2e 74 73 79 6d | 5e 2e 6c 74 20 3a 3d 20 |tq^.tsym|^.lt := |
|00001520| 6c 3b 0a 58 09 09 74 70 | 20 3a 3d 20 74 71 3b 0a |l;.X..tp| := tq;.|
|00001530| 58 09 09 6e 65 78 74 73 | 79 6d 62 6f 6c 28 5b 73 |X..nexts|ymbol([s|
|00001540| 63 6f 6d 6d 61 2c 20 73 | 63 6f 6c 6f 6e 2c 20 73 |comma, s|colon, s|
|00001550| 65 71 2c 20 73 72 70 61 | 72 5d 29 3b 0a 58 09 09 |eq, srpa|r]);.X..|
|00001560| 77 68 69 6c 65 20 63 75 | 72 72 73 79 6d 2e 73 74 |while cu|rrsym.st|
|00001570| 20 3d 20 73 63 6f 6d 6d | 61 20 64 6f 0a 58 09 09 | = scomm|a do.X..|
|00001580| 20 20 20 20 62 65 67 69 | 6e 0a 58 09 09 09 6e 65 | begi|n.X...ne|
|00001590| 78 74 73 79 6d 62 6f 6c | 28 5b 73 69 64 5d 29 3b |xtsymbol|([sid]);|
|000015a0| 0a 58 09 09 09 74 71 5e | 2e 74 6e 65 78 74 20 3a |.X...tq^|.tnext :|
|000015b0| 3d 20 6e 65 77 69 64 28 | 63 75 72 72 73 79 6d 2e |= newid(|currsym.|
|000015c0| 76 69 64 29 3b 0a 58 09 | 09 09 74 71 20 3a 3d 20 |vid);.X.|..tq := |
|000015d0| 74 71 5e 2e 74 6e 65 78 | 74 3b 0a 58 09 09 09 74 |tq^.tnex|t;.X...t|
|000015e0| 71 5e 2e 74 73 79 6d 5e | 2e 6c 74 20 3a 3d 20 6c |q^.tsym^|.lt := l|
|000015f0| 3b 0a 58 09 09 09 6e 65 | 78 74 73 79 6d 62 6f 6c |;.X...ne|xtsymbol|
|00001600| 28 5b 73 63 6f 6d 6d 61 | 2c 20 73 63 6f 6c 6f 6e |([scomma|, scolon|
|00001610| 2c 20 73 65 71 2c 20 73 | 72 70 61 72 5d 29 0a 58 |, seq, s|rpar]).X|
|00001620| 09 09 20 20 20 20 65 6e | 64 3b 0a 58 09 09 70 69 |.. en|d;.X..pi|
|00001630| 64 6c 69 73 74 20 3a 3d | 20 74 70 0a 58 09 65 6e |dlist :=| tp.X.en|
|00001640| 64 3b 0a 58 0a 58 09 28 | 2a 09 50 61 72 73 65 20 |d;.X.X.(|*.Parse |
|00001650| 63 6f 6e 73 74 2d 63 6c | 61 75 73 65 2e 09 09 09 |const-cl|ause....|
|00001660| 09 09 2a 29 0a 58 09 66 | 75 6e 63 74 69 6f 6e 20 |..*).X.f|unction |
|00001670| 70 63 6f 6e 73 74 3b 0a | 58 0a 58 09 76 61 72 09 |pconst;.|X.X.var.|
|00001680| 74 70 2c 0a 58 09 09 74 | 71 09 3a 20 74 72 65 65 |tp,.X..t|q.: tree|
|00001690| 70 74 72 3b 0a 58 0a 58 | 09 62 65 67 69 6e 0a 58 |ptr;.X.X|.begin.X|
|000016a0| 09 09 74 71 20 3a 3d 20 | 6e 69 6c 3b 0a 58 09 09 |..tq := |nil;.X..|
|000016b0| 6e 65 78 74 73 79 6d 62 | 6f 6c 28 5b 73 69 64 5d |nextsymb|ol([sid]|
|000016c0| 29 3b 0a 58 09 09 72 65 | 70 65 61 74 0a 58 09 09 |);.X..re|peat.X..|
|000016d0| 09 69 66 20 74 71 20 3d | 20 6e 69 6c 20 74 68 65 |.if tq =| nil the|
|000016e0| 6e 0a 58 09 09 09 20 20 | 20 20 62 65 67 69 6e 0a |n.X... | begin.|
|000016f0| 58 09 09 09 09 74 71 20 | 3a 3d 20 6d 6b 6e 6f 64 |X....tq |:= mknod|
|00001700| 65 28 6e 63 6f 6e 73 74 | 29 3b 0a 58 09 09 09 09 |e(nconst|);.X....|
|00001710| 74 71 5e 2e 74 61 74 74 | 72 20 3a 3d 20 61 6e 6f |tq^.tatt|r := ano|
|00001720| 6e 65 3b 0a 58 09 09 09 | 09 74 70 20 3a 3d 20 74 |ne;.X...|.tp := t|
|00001730| 71 0a 58 09 09 09 20 20 | 20 20 65 6e 64 0a 58 09 |q.X... | end.X.|
|00001740| 09 09 65 6c 73 65 20 62 | 65 67 69 6e 0a 58 09 09 |..else b|egin.X..|
|00001750| 09 09 74 71 5e 2e 74 6e | 65 78 74 20 3a 3d 20 6d |..tq^.tn|ext := m|
|00001760| 6b 6e 6f 64 65 28 6e 63 | 6f 6e 73 74 29 3b 0a 58 |knode(nc|onst);.X|
|00001770| 09 09 09 09 74 71 20 3a | 3d 20 74 71 5e 2e 74 6e |....tq :|= tq^.tn|
|00001780| 65 78 74 3b 0a 58 09 09 | 09 09 74 71 5e 2e 74 61 |ext;.X..|..tq^.ta|
|00001790| 74 74 72 20 3a 3d 20 61 | 6e 6f 6e 65 0a 58 09 09 |ttr := a|none.X..|
|000017a0| 09 20 20 20 20 20 65 6e | 64 3b 0a 58 09 09 09 74 |. en|d;.X...t|
|000017b0| 71 5e 2e 74 69 64 6c 20 | 3a 3d 20 70 69 64 6c 69 |q^.tidl |:= pidli|
|000017c0| 73 74 28 6c 69 64 65 6e | 74 69 66 69 65 72 29 3b |st(liden|tifier);|
|000017d0| 0a 58 09 09 09 63 68 65 | 63 6b 73 79 6d 62 6f 6c |.X...che|cksymbol|
|000017e0| 28 5b 73 65 71 5d 29 3b | 0a 58 09 09 09 6e 65 78 |([seq]);|.X...nex|
|000017f0| 74 73 79 6d 62 6f 6c 28 | 5b 73 69 64 2c 20 73 63 |tsymbol(|[sid, sc|
|00001800| 68 61 72 2c 20 73 73 74 | 72 69 6e 67 2c 20 73 69 |har, sst|ring, si|
|00001810| 6e 74 65 67 65 72 2c 20 | 73 72 65 61 6c 2c 0a 58 |nteger, |sreal,.X|
|00001820| 09 09 09 09 09 09 73 70 | 6c 75 73 2c 20 73 6d 69 |......sp|lus, smi|
|00001830| 6e 75 73 5d 29 3b 0a 58 | 09 09 09 74 71 5e 2e 74 |nus]);.X|...tq^.t|
|00001840| 62 69 6e 64 20 3a 3d 20 | 70 63 6f 6e 73 74 61 6e |bind := |pconstan|
|00001850| 74 28 74 72 75 65 29 3b | 0a 58 09 09 09 6e 65 78 |t(true);|.X...nex|
|00001860| 74 73 79 6d 62 6f 6c 28 | 5b 73 73 65 6d 69 63 5d |tsymbol(|[ssemic]|
|00001870| 29 3b 0a 58 09 09 09 6e | 65 78 74 73 79 6d 62 6f |);.X...n|extsymbo|
|00001880| 6c 28 5b 73 69 64 2c 20 | 73 74 79 70 65 2c 20 73 |l([sid, |stype, s|
|00001890| 76 61 72 2c 20 73 62 65 | 67 69 6e 2c 0a 58 09 09 |var, sbe|gin,.X..|
|000018a0| 09 09 09 09 09 73 66 75 | 6e 63 2c 20 73 70 72 6f |.....sfu|nc, spro|
|000018b0| 63 2c 20 73 65 6f 66 5d | 29 0a 58 09 09 75 6e 74 |c, seof]|).X..unt|
|000018c0| 69 6c 09 63 75 72 72 73 | 79 6d 2e 73 74 20 3c 3e |il.currs|ym.st <>|
|000018d0| 20 73 69 64 3b 0a 58 09 | 09 70 63 6f 6e 73 74 20 | sid;.X.|.pconst |
|000018e0| 3a 3d 20 74 70 0a 58 09 | 65 6e 64 3b 0a 58 0a 58 |:= tp.X.|end;.X.X|
|000018f0| 09 28 2a 09 50 61 72 73 | 65 20 61 20 64 65 63 6c |.(*.Pars|e a decl|
|00001900| 61 72 65 64 20 63 6f 6e | 73 74 61 6e 74 20 6f 72 |ared con|stant or|
|00001910| 20 61 20 63 61 73 65 2d | 73 74 61 74 6d 65 6e 74 | a case-|statment|
|00001920| 20 63 6f 6e 73 74 2e 09 | 2a 29 0a 58 09 66 75 6e | const..|*).X.fun|
|00001930| 63 74 69 6f 6e 20 70 63 | 6f 6e 73 74 61 6e 74 3b |ction pc|onstant;|
|00001940| 0a 58 0a 58 09 76 61 72 | 09 74 70 2c 0a 58 09 09 |.X.X.var|.tp,.X..|
|00001950| 74 71 09 3a 20 74 72 65 | 65 70 74 72 3b 0a 58 09 |tq.: tre|eptr;.X.|
|00001960| 09 6e 65 67 09 3a 20 62 | 6f 6f 6c 65 61 6e 3b 0a |.neg.: b|oolean;.|
|00001970| 58 0a 58 09 62 65 67 69 | 6e 0a 58 09 09 6e 65 67 |X.X.begi|n.X..neg|
|00001980| 20 3a 3d 20 63 75 72 72 | 73 79 6d 2e 73 74 20 3d | := curr|sym.st =|
|00001990| 20 73 6d 69 6e 75 73 3b | 0a 58 09 09 69 66 20 63 | sminus;|.X..if c|
|000019a0| 75 72 72 73 79 6d 2e 73 | 74 20 69 6e 20 5b 73 70 |urrsym.s|t in [sp|
|000019b0| 6c 75 73 2c 20 73 6d 69 | 6e 75 73 5d 20 74 68 65 |lus, smi|nus] the|
|000019c0| 6e 0a 58 09 09 09 69 66 | 20 72 65 61 6c 6f 6b 20 |n.X...if| realok |
|000019d0| 74 68 65 6e 0a 58 09 09 | 09 09 6e 65 78 74 73 79 |then.X..|..nextsy|
|000019e0| 6d 62 6f 6c 28 5b 73 69 | 64 2c 20 73 69 6e 74 65 |mbol([si|d, sinte|
|000019f0| 67 65 72 2c 20 73 72 65 | 61 6c 5d 29 0a 58 09 09 |ger, sre|al]).X..|
|00001a00| 09 65 6c 73 65 0a 58 09 | 09 09 09 6e 65 78 74 73 |.else.X.|...nexts|
|00001a10| 79 6d 62 6f 6c 28 5b 73 | 69 64 2c 20 73 69 6e 74 |ymbol([s|id, sint|
|00001a20| 65 67 65 72 5d 29 3b 0a | 58 09 09 69 66 20 63 75 |eger]);.|X..if cu|
|00001a30| 72 72 73 79 6d 2e 73 74 | 20 3d 20 73 69 64 20 74 |rrsym.st| = sid t|
|00001a40| 68 65 6e 0a 58 09 09 09 | 74 70 20 3a 3d 20 6f 6c |hen.X...|tp := ol|
|00001a50| 64 69 64 28 63 75 72 72 | 73 79 6d 2e 76 69 64 2c |did(curr|sym.vid,|
|00001a60| 20 6c 69 64 65 6e 74 69 | 66 69 65 72 29 0a 58 09 | lidenti|fier).X.|
|00001a70| 09 65 6c 73 65 0a 58 09 | 09 09 74 70 20 3a 3d 20 |.else.X.|..tp := |
|00001a80| 6d 6b 6c 69 74 3b 0a 58 | 09 09 69 66 20 6e 65 67 |mklit;.X|..if neg|
|00001a90| 20 74 68 65 6e 0a 58 09 | 09 20 20 20 20 62 65 67 | then.X.|. beg|
|00001aa0| 69 6e 0a 58 09 09 09 74 | 71 20 3a 3d 20 6d 6b 6e |in.X...t|q := mkn|
|00001ab0| 6f 64 65 28 6e 75 6d 69 | 6e 75 73 29 3b 0a 58 09 |ode(numi|nus);.X.|
|00001ac0| 09 09 74 71 5e 2e 74 65 | 78 70 73 20 3a 3d 20 74 |..tq^.te|xps := t|
|00001ad0| 70 3b 0a 58 09 09 09 74 | 70 20 3a 3d 20 74 71 0a |p;.X...t|p := tq.|
|00001ae0| 58 09 09 20 20 20 20 20 | 65 6e 64 3b 0a 58 09 09 |X.. |end;.X..|
|00001af0| 70 63 6f 6e 73 74 61 6e | 74 20 3a 3d 20 74 70 0a |pconstan|t := tp.|
|00001b00| 58 09 65 6e 64 3b 0a 58 | 0a 58 09 28 2a 09 50 61 |X.end;.X|.X.(*.Pa|
|00001b10| 72 73 65 20 61 20 72 65 | 63 6f 72 64 20 28 6f 72 |rse a re|cord (or|
|00001b20| 20 72 65 63 6f 72 64 2d | 76 61 72 69 61 6e 74 29 | record-|variant)|
|00001b30| 20 64 65 63 6c 61 72 61 | 74 69 6f 6e 2e 09 09 2a | declara|tion...*|
|00001b40| 29 0a 58 09 28 2a 09 43 | 73 20 69 73 20 74 68 65 |).X.(*.C|s is the|
|00001b50| 20 65 78 70 65 63 74 65 | 64 20 63 6c 6f 73 69 6e | expecte|d closin|
|00001b60| 67 20 73 79 6d 62 6f 6c | 2c 20 64 70 20 74 68 65 |g symbol|, dp the|
|00001b70| 20 73 63 6f 70 65 2e 09 | 2a 29 0a 58 09 66 75 6e | scope..|*).X.fun|
|00001b80| 63 74 69 6f 6e 20 70 72 | 65 63 6f 72 64 3b 0a 58 |ction pr|ecord;.X|
|00001b90| 0a 58 09 6c 61 62 65 6c | 09 39 39 39 3b 0a 58 0a |.X.label|.999;.X.|
|00001ba0| 58 09 76 61 72 09 74 70 | 2c 0a 58 09 09 74 71 2c |X.var.tp|,.X..tq,|
|00001bb0| 0a 58 09 09 74 6c 2c 0a | 58 09 09 74 76 09 3a 20 |.X..tl,.|X..tv.: |
|00001bc0| 74 72 65 65 70 74 72 3b | 0a 58 09 09 74 73 79 6d |treeptr;|.X..tsym|
|00001bd0| 09 3a 20 6c 65 78 73 79 | 6d 3b 0a 58 0a 58 09 62 |.: lexsy|m;.X.X.b|
|00001be0| 65 67 69 6e 0a 58 09 09 | 74 70 20 3a 3d 20 6d 6b |egin.X..|tp := mk|
|00001bf0| 6e 6f 64 65 28 6e 72 65 | 63 6f 72 64 29 3b 0a 58 |node(nre|cord);.X|
|00001c00| 09 09 74 70 5e 2e 74 66 | 6c 69 73 74 20 3a 3d 20 |..tp^.tf|list := |
|00001c10| 6e 69 6c 3b 0a 58 09 09 | 74 70 5e 2e 74 76 6c 69 |nil;.X..|tp^.tvli|
|00001c20| 73 74 20 3a 3d 20 6e 69 | 6c 3b 0a 58 09 09 74 70 |st := ni|l;.X..tp|
|00001c30| 5e 2e 74 75 69 64 20 3a | 3d 20 6e 69 6c 3b 0a 58 |^.tuid :|= nil;.X|
|00001c40| 09 09 74 70 5e 2e 74 72 | 73 63 6f 70 65 20 3a 3d |..tp^.tr|scope :=|
|00001c50| 20 6e 69 6c 3b 0a 58 09 | 09 69 66 20 63 73 20 3d | nil;.X.|.if cs =|
|00001c60| 20 73 65 6e 64 20 74 68 | 65 6e 0a 58 09 09 20 20 | send th|en.X.. |
|00001c70| 20 20 62 65 67 69 6e 0a | 58 09 09 09 65 6e 74 65 | begin.|X...ente|
|00001c80| 72 73 63 6f 70 65 28 64 | 70 29 3b 0a 58 09 09 09 |rscope(d|p);.X...|
|00001c90| 64 70 20 3a 3d 20 63 75 | 72 72 73 63 6f 70 65 0a |dp := cu|rrscope.|
|00001ca0| 58 09 09 20 20 20 20 65 | 6e 64 3b 0a 58 09 09 6e |X.. e|nd;.X..n|
|00001cb0| 65 78 74 73 79 6d 62 6f | 6c 28 5b 73 69 64 2c 20 |extsymbo|l([sid, |
|00001cc0| 73 63 61 73 65 5d 20 2b | 20 5b 63 73 5d 29 3b 0a |scase] +| [cs]);.|
|00001cd0| 58 09 09 74 71 20 3a 3d | 20 6e 69 6c 3b 0a 58 09 |X..tq :=| nil;.X.|
|00001ce0| 09 77 68 69 6c 65 20 63 | 75 72 72 73 79 6d 2e 73 |.while c|urrsym.s|
|00001cf0| 74 20 3d 20 73 69 64 20 | 64 6f 0a 58 09 09 20 20 |t = sid |do.X.. |
|00001d00| 20 20 62 65 67 69 6e 0a | 58 09 09 09 69 66 20 74 | begin.|X...if t|
|00001d10| 71 20 3d 20 6e 69 6c 20 | 74 68 65 6e 0a 58 09 09 |q = nil |then.X..|
|00001d20| 09 20 20 20 20 62 65 67 | 69 6e 0a 58 09 09 09 09 |. beg|in.X....|
|00001d30| 74 71 20 3a 3d 20 6d 6b | 6e 6f 64 65 28 6e 66 69 |tq := mk|node(nfi|
|00001d40| 65 6c 64 29 3b 0a 58 09 | 09 09 09 74 71 5e 2e 74 |eld);.X.|...tq^.t|
|00001d50| 61 74 74 72 20 3a 3d 20 | 61 6e 6f 6e 65 3b 0a 58 |attr := |anone;.X|
|00001d60| 09 09 09 09 74 70 5e 2e | 74 66 6c 69 73 74 20 3a |....tp^.|tflist :|
|00001d70| 3d 20 74 71 0a 58 09 09 | 09 20 20 20 20 65 6e 64 |= tq.X..|. end|
|00001d80| 0a 58 09 09 09 65 6c 73 | 65 20 62 65 67 69 6e 0a |.X...els|e begin.|
|00001d90| 58 09 09 09 09 74 71 5e | 2e 74 6e 65 78 74 20 3a |X....tq^|.tnext :|
|00001da0| 3d 20 6d 6b 6e 6f 64 65 | 28 6e 66 69 65 6c 64 29 |= mknode|(nfield)|
|00001db0| 3b 0a 58 09 09 09 09 74 | 71 20 3a 3d 20 74 71 5e |;.X....t|q := tq^|
|00001dc0| 2e 74 6e 65 78 74 3b 0a | 58 09 09 09 09 74 71 5e |.tnext;.|X....tq^|
|00001dd0| 2e 74 61 74 74 72 20 3a | 3d 20 61 6e 6f 6e 65 0a |.tattr :|= anone.|
|00001de0| 58 09 09 09 20 20 20 20 | 20 65 6e 64 3b 0a 58 09 |X... | end;.X.|
|00001df0| 09 09 74 71 5e 2e 74 69 | 64 6c 20 3a 3d 20 70 69 |..tq^.ti|dl := pi|
|00001e00| 64 6c 69 73 74 28 6c 66 | 69 65 6c 64 29 3b 0a 58 |dlist(lf|ield);.X|
|00001e10| 09 09 09 63 68 65 63 6b | 73 79 6d 62 6f 6c 28 5b |...check|symbol([|
|00001e20| 73 63 6f 6c 6f 6e 5d 29 | 3b 0a 58 09 09 09 6c 65 |scolon])|;.X...le|
|00001e30| 61 76 65 73 63 6f 70 65 | 3b 0a 58 09 09 09 74 71 |avescope|;.X...tq|
|00001e40| 5e 2e 74 62 69 6e 64 20 | 3a 3d 20 70 74 79 70 65 |^.tbind |:= ptype|
|00001e50| 64 65 66 3b 0a 58 09 09 | 09 65 6e 74 65 72 73 63 |def;.X..|.entersc|
|00001e60| 6f 70 65 28 64 70 29 3b | 0a 58 09 09 09 69 66 20 |ope(dp);|.X...if |
|00001e70| 63 75 72 72 73 79 6d 2e | 73 74 20 3d 20 73 73 65 |currsym.|st = sse|
|00001e80| 6d 69 63 20 74 68 65 6e | 0a 58 09 09 09 09 6e 65 |mic then|.X....ne|
|00001e90| 78 74 73 79 6d 62 6f 6c | 28 5b 73 69 64 2c 20 73 |xtsymbol|([sid, s|
|00001ea0| 63 61 73 65 5d 20 2b 20 | 5b 63 73 5d 29 0a 58 09 |case] + |[cs]).X.|
|00001eb0| 09 20 20 20 20 65 6e 64 | 3b 0a 58 09 09 69 66 20 |. end|;.X..if |
|00001ec0| 63 75 72 72 73 79 6d 2e | 73 74 20 3d 20 73 63 61 |currsym.|st = sca|
|00001ed0| 73 65 20 74 68 65 6e 0a | 58 09 09 20 20 20 20 62 |se then.|X.. b|
|00001ee0| 65 67 69 6e 0a 58 09 09 | 09 6e 65 78 74 73 79 6d |egin.X..|.nextsym|
|00001ef0| 62 6f 6c 28 5b 73 69 64 | 5d 29 3b 0a 58 09 09 09 |bol([sid|]);.X...|
|00001f00| 74 73 79 6d 20 3a 3d 20 | 63 75 72 72 73 79 6d 3b |tsym := |currsym;|
|00001f10| 0a 58 09 09 09 6e 65 78 | 74 73 79 6d 62 6f 6c 28 |.X...nex|tsymbol(|
|00001f20| 5b 73 63 6f 6c 6f 6e 2c | 20 73 6f 66 5d 29 3b 0a |[scolon,| sof]);.|
|00001f30| 58 09 09 09 69 66 20 63 | 75 72 72 73 79 6d 2e 73 |X...if c|urrsym.s|
|00001f40| 74 20 3d 20 73 63 6f 6c | 6f 6e 20 74 68 65 6e 0a |t = scol|on then.|
|00001f50| 58 09 09 09 20 20 20 20 | 62 65 67 69 6e 0a 58 09 |X... |begin.X.|
|00001f60| 09 09 09 74 76 20 3a 3d | 20 6e 65 77 69 64 28 74 |...tv :=| newid(t|
|00001f70| 73 79 6d 2e 76 69 64 29 | 3b 0a 58 09 09 09 09 69 |sym.vid)|;.X....i|
|00001f80| 66 20 74 71 20 3d 20 6e | 69 6c 20 74 68 65 6e 0a |f tq = n|il then.|
|00001f90| 58 09 09 09 09 20 20 20 | 20 62 65 67 69 6e 0a 58 |X.... | begin.X|
|00001fa0| 09 09 09 09 09 74 71 20 | 3a 3d 20 6d 6b 6e 6f 64 |.....tq |:= mknod|
|00001fb0| 65 28 6e 66 69 65 6c 64 | 29 3b 0a 58 09 09 09 09 |e(nfield|);.X....|
|00001fc0| 09 74 70 5e 2e 74 66 6c | 69 73 74 20 3a 3d 20 74 |.tp^.tfl|ist := t|
|00001fd0| 71 0a 58 09 09 09 09 20 | 20 20 20 65 6e 64 0a 58 |q.X.... | end.X|
|00001fe0| 09 09 09 09 65 6c 73 65 | 20 62 65 67 69 6e 0a 58 |....else| begin.X|
|00001ff0| 09 09 09 09 09 74 71 5e | 2e 74 6e 65 78 74 20 3a |.....tq^|.tnext :|
|00002000| 3d 20 6d 6b 6e 6f 64 65 | 28 6e 66 69 65 6c 64 29 |= mknode|(nfield)|
|00002010| 3b 0a 58 09 09 09 09 09 | 74 71 20 3a 3d 20 74 71 |;.X.....|tq := tq|
|00002020| 5e 2e 74 6e 65 78 74 0a | 58 09 09 09 09 20 20 20 |^.tnext.|X.... |
|00002030| 20 20 65 6e 64 3b 0a 58 | 09 09 09 09 74 71 5e 2e | end;.X|....tq^.|
|00002040| 74 69 64 6c 20 3a 3d 20 | 74 76 3b 0a 58 09 09 09 |tidl := |tv;.X...|
|00002050| 09 74 76 5e 2e 74 73 79 | 6d 5e 2e 6c 74 20 3a 3d |.tv^.tsy|m^.lt :=|
|00002060| 20 6c 66 69 65 6c 64 3b | 0a 58 09 09 09 09 6e 65 | lfield;|.X....ne|
|00002070| 78 74 73 79 6d 62 6f 6c | 28 5b 73 69 64 5d 29 3b |xtsymbol|([sid]);|
|00002080| 0a 58 09 09 09 09 6c 65 | 61 76 65 73 63 6f 70 65 |.X....le|avescope|
|00002090| 3b 0a 58 09 09 09 09 74 | 71 5e 2e 74 62 69 6e 64 |;.X....t|q^.tbind|
|000020a0| 20 3a 3d 20 6f 6c 64 69 | 64 28 63 75 72 72 73 79 | := oldi|d(currsy|
|000020b0| 6d 2e 76 69 64 2c 20 6c | 69 64 65 6e 74 69 66 69 |m.vid, l|identifi|
|000020c0| 65 72 29 3b 0a 58 09 09 | 09 09 65 6e 74 65 72 73 |er);.X..|..enters|
|000020d0| 63 6f 70 65 28 64 70 29 | 3b 0a 58 09 09 09 09 6e |cope(dp)|;.X....n|
|000020e0| 65 78 74 73 79 6d 62 6f | 6c 28 5b 73 6f 66 5d 29 |extsymbo|l([sof])|
|000020f0| 0a 58 09 09 09 20 20 20 | 20 65 6e 64 3b 0a 58 09 |.X... | end;.X.|
|00002100| 09 09 74 71 20 3a 3d 20 | 6e 69 6c 3b 0a 58 09 09 |..tq := |nil;.X..|
|00002110| 09 72 65 70 65 61 74 0a | 58 09 09 09 09 74 76 20 |.repeat.|X....tv |
|00002120| 3a 3d 20 6e 69 6c 3b 0a | 58 09 09 09 09 72 65 70 |:= nil;.|X....rep|
|00002130| 65 61 74 0a 58 09 09 09 | 09 09 6e 65 78 74 73 79 |eat.X...|..nextsy|
|00002140| 6d 62 6f 6c 28 5b 73 69 | 64 2c 20 73 69 6e 74 65 |mbol([si|d, sinte|
|00002150| 67 65 72 2c 20 73 63 68 | 61 72 2c 20 73 70 6c 75 |ger, sch|ar, splu|
|00002160| 73 2c 0a 58 09 09 09 09 | 09 09 09 20 73 6d 69 6e |s,.X....|... smin|
|00002170| 75 73 5d 20 2b 20 5b 63 | 73 5d 29 3b 0a 58 09 09 |us] + [c|s]);.X..|
|00002180| 09 09 09 69 66 20 63 75 | 72 72 73 79 6d 2e 73 74 |...if cu|rrsym.st|
|00002190| 20 3d 20 63 73 20 74 68 | 65 6e 0a 58 09 09 09 09 | = cs th|en.X....|
|000021a0| 09 09 67 6f 74 6f 20 39 | 39 39 3b 0a 58 09 09 09 |..goto 9|99;.X...|
|000021b0| 09 09 69 66 20 74 76 20 | 3d 20 6e 69 6c 20 74 68 |..if tv |= nil th|
|000021c0| 65 6e 0a 58 09 09 09 09 | 09 20 20 20 20 62 65 67 |en.X....|. beg|
|000021d0| 69 6e 0a 58 09 09 09 09 | 09 09 74 76 20 3a 3d 20 |in.X....|..tv := |
|000021e0| 70 63 6f 6e 73 74 61 6e | 74 28 66 61 6c 73 65 29 |pconstan|t(false)|
|000021f0| 3b 0a 58 09 09 09 09 09 | 09 74 6c 20 3a 3d 20 74 |;.X.....|.tl := t|
|00002200| 76 0a 58 09 09 09 09 09 | 20 20 20 20 65 6e 64 0a |v.X.....| end.|
|00002210| 58 09 09 09 09 09 65 6c | 73 65 20 62 65 67 69 6e |X.....el|se begin|
|00002220| 0a 58 09 09 09 09 09 09 | 74 76 5e 2e 74 6e 65 78 |.X......|tv^.tnex|
|00002230| 74 20 3a 3d 20 70 63 6f | 6e 73 74 61 6e 74 28 66 |t := pco|nstant(f|
|00002240| 61 6c 73 65 29 3b 0a 58 | 09 09 09 09 09 09 74 76 |alse);.X|......tv|
|00002250| 20 3a 3d 20 74 76 5e 2e | 74 6e 65 78 74 0a 58 09 | := tv^.|tnext.X.|
|00002260| 09 09 09 09 20 20 20 20 | 20 65 6e 64 3b 0a 58 09 |.... | end;.X.|
|00002270| 09 09 09 09 6e 65 78 74 | 73 79 6d 62 6f 6c 28 5b |....next|symbol([|
|00002280| 73 63 6f 6c 6f 6e 2c 20 | 73 63 6f 6d 6d 61 5d 29 |scolon, |scomma])|
|00002290| 0a 58 09 09 09 09 75 6e | 74 69 6c 20 63 75 72 72 |.X....un|til curr|
|000022a0| 73 79 6d 2e 73 74 20 3d | 20 73 63 6f 6c 6f 6e 3b |sym.st =| scolon;|
|000022b0| 0a 58 09 09 09 09 6e 65 | 78 74 73 79 6d 62 6f 6c |.X....ne|xtsymbol|
|000022c0| 28 5b 73 6c 70 61 72 5d | 29 3b 0a 58 09 09 09 09 |([slpar]|);.X....|
|000022d0| 69 66 20 74 71 20 3d 20 | 6e 69 6c 20 74 68 65 6e |if tq = |nil then|
|000022e0| 0a 58 09 09 09 09 20 20 | 20 20 62 65 67 69 6e 0a |.X.... | begin.|
|000022f0| 58 09 09 09 09 09 74 71 | 20 3a 3d 20 6d 6b 6e 6f |X.....tq| := mkno|
|00002300| 64 65 28 6e 76 61 72 69 | 61 6e 74 29 3b 0a 58 09 |de(nvari|ant);.X.|
|00002310| 09 09 09 09 74 70 5e 2e | 74 76 6c 69 73 74 20 3a |....tp^.|tvlist :|
|00002320| 3d 20 74 71 3b 0a 58 09 | 09 09 09 20 20 20 20 65 |= tq;.X.|... e|
|00002330| 6e 64 0a 58 09 09 09 09 | 65 6c 73 65 20 62 65 67 |nd.X....|else beg|
|00002340| 69 6e 0a 58 09 09 09 09 | 09 74 71 5e 2e 74 6e 65 |in.X....|.tq^.tne|
|00002350| 78 74 20 3a 3d 20 6d 6b | 6e 6f 64 65 28 6e 76 61 |xt := mk|node(nva|
|00002360| 72 69 61 6e 74 29 3b 0a | 58 09 09 09 09 09 74 71 |riant);.|X.....tq|
|00002370| 20 3a 3d 20 74 71 5e 2e | 74 6e 65 78 74 3b 0a 58 | := tq^.|tnext;.X|
|00002380| 09 09 09 09 20 20 20 20 | 20 65 6e 64 3b 0a 58 09 |.... | end;.X.|
|00002390| 09 09 09 74 71 5e 2e 74 | 73 65 6c 63 74 20 3a 3d |...tq^.t|selct :=|
|000023a0| 20 74 6c 3b 0a 58 09 09 | 09 09 74 71 5e 2e 74 76 | tl;.X..|..tq^.tv|
|000023b0| 72 6e 74 20 3a 3d 20 70 | 72 65 63 6f 72 64 28 73 |rnt := p|record(s|
|000023c0| 72 70 61 72 2c 20 64 70 | 29 0a 58 09 09 09 75 6e |rpar, dp|).X...un|
|000023d0| 74 69 6c 09 63 75 72 72 | 73 79 6d 2e 73 74 20 3d |til.curr|sym.st =|
|000023e0| 20 63 73 0a 58 09 09 20 | 20 20 20 65 6e 64 3b 0a | cs.X.. | end;.|
|000023f0| 58 09 39 39 39 3a 0a 58 | 09 09 69 66 20 63 73 20 |X.999:.X|..if cs |
|00002400| 3d 20 73 65 6e 64 20 74 | 68 65 6e 0a 58 09 09 20 |= send t|hen.X.. |
|00002410| 20 20 20 62 65 67 69 6e | 0a 58 09 09 09 74 70 5e | begin|.X...tp^|
|00002420| 2e 74 72 73 63 6f 70 65 | 20 3a 3d 20 64 70 3b 0a |.trscope| := dp;.|
|00002430| 58 09 09 09 6c 65 61 76 | 65 73 63 6f 70 65 0a 58 |X...leav|escope.X|
|00002440| 09 09 20 20 20 20 65 6e | 64 3b 0a 58 09 09 6e 65 |.. en|d;.X..ne|
|00002450| 78 74 73 79 6d 62 6f 6c | 28 5b 73 73 65 6d 69 63 |xtsymbol|([ssemic|
|00002460| 2c 20 73 65 6e 64 2c 20 | 73 72 70 61 72 5d 29 3b |, send, |srpar]);|
|00002470| 0a 58 09 09 28 2a 20 63 | 75 72 72 73 79 6d 20 69 |.X..(* c|urrsym i|
|00002480| 73 20 74 68 65 20 73 79 | 6d 62 6f 6c 20 66 6f 6c |s the sy|mbol fol|
|00002490| 6c 6f 77 69 6e 67 20 72 | 65 63 6f 72 64 20 65 6e |lowing r|ecord en|
|000024a0| 64 2f 72 70 61 72 2c 0a | 58 09 09 09 28 75 73 75 |d/rpar,.|X...(usu|
|000024b0| 61 6c 6c 79 20 73 65 6d | 69 63 6f 6c 6f 6e 2c 20 |ally sem|icolon, |
|000024c0| 73 6f 6d 65 74 69 6d 65 | 73 20 65 6e 63 6c 6f 73 |sometime|s enclos|
|000024d0| 69 6e 67 20 65 6e 64 2f | 72 70 61 72 29 20 2a 29 |ing end/|rpar) *)|
|000024e0| 0a 58 09 09 70 72 65 63 | 6f 72 64 20 3a 3d 20 74 |.X..prec|ord := t|
|000024f0| 70 0a 58 09 65 6e 64 3b | 0a 58 0a 58 09 66 75 6e |p.X.end;|.X.X.fun|
|00002500| 63 74 69 6f 6e 20 70 74 | 79 70 65 64 65 66 3b 0a |ction pt|ypedef;.|
|00002510| 58 0a 58 09 76 61 72 09 | 74 70 2c 0a 58 09 09 74 |X.X.var.|tp,.X..t|
|00002520| 71 09 3a 20 74 72 65 65 | 70 74 72 3b 0a 58 09 09 |q.: tree|ptr;.X..|
|00002530| 73 74 09 3a 20 73 79 6d | 74 79 70 3b 0a 58 09 09 |st.: sym|typ;.X..|
|00002540| 73 73 09 3a 20 73 79 6d | 73 65 74 3b 0a 58 0a 58 |ss.: sym|set;.X.X|
|00002550| 09 62 65 67 69 6e 0a 58 | 09 09 6e 65 78 74 73 79 |.begin.X|..nextsy|
|00002560| 6d 62 6f 6c 28 5b 73 69 | 64 2c 20 73 6c 70 61 72 |mbol([si|d, slpar|
|00002570| 2c 20 73 61 72 72 6f 77 | 2c 20 73 69 6e 74 65 67 |, sarrow|, sinteg|
|00002580| 65 72 2c 20 73 63 68 61 | 72 2c 20 73 70 6c 75 73 |er, scha|r, splus|
|00002590| 2c 20 73 6d 69 6e 75 73 | 2c 0a 58 09 09 09 09 73 |, sminus|,.X....s|
|000025a0| 70 61 63 6b 65 64 2c 20 | 73 61 72 72 61 79 2c 20 |packed, |sarray, |
|000025b0| 73 72 65 63 6f 72 64 2c | 20 73 66 69 6c 65 2c 20 |srecord,| sfile, |
|000025c0| 73 73 65 74 5d 29 3b 0a | 58 0a 58 09 09 28 2a 20 |sset]);.|X.X..(* |
|000025d0| 74 68 65 20 22 70 61 63 | 6b 65 64 22 20 6b 65 79 |the "pac|ked" key|
|000025e0| 77 6f 72 64 20 69 73 20 | 63 6f 6d 70 6c 65 74 65 |word is |complete|
|000025f0| 6c 79 20 69 67 6e 6f 72 | 65 64 20 2a 29 0a 58 09 |ly ignor|ed *).X.|
|00002600| 09 69 66 20 63 75 72 72 | 73 79 6d 2e 73 74 20 3d |.if curr|sym.st =|
|00002610| 20 73 70 61 63 6b 65 64 | 20 74 68 65 6e 0a 58 09 | spacked| then.X.|
|00002620| 09 09 6e 65 78 74 73 79 | 6d 62 6f 6c 28 5b 73 61 |..nextsy|mbol([sa|
|00002630| 72 72 61 79 2c 20 73 72 | 65 63 6f 72 64 2c 20 73 |rray, sr|ecord, s|
|00002640| 66 69 6c 65 2c 20 73 73 | 65 74 5d 29 3b 0a 58 0a |file, ss|et]);.X.|
|00002650| 58 09 09 73 73 20 3a 3d | 20 5b 73 73 65 6d 69 63 |X..ss :=| [ssemic|
|00002660| 2c 20 73 65 6e 64 2c 20 | 73 72 70 61 72 2c 20 73 |, send, |srpar, s|
|00002670| 63 6f 6d 6d 61 2c 20 73 | 72 62 72 61 63 6b 5d 3b |comma, s|rbrack];|
|00002680| 0a 58 09 09 63 61 73 65 | 20 63 75 72 72 73 79 6d |.X..case| currsym|
|00002690| 2e 73 74 20 6f 66 0a 58 | 09 09 20 20 73 70 6c 75 |.st of.X|.. splu|
|000026a0| 73 2c 0a 58 09 09 20 20 | 73 6d 69 6e 75 73 2c 0a |s,.X.. |sminus,.|
|000026b0| 58 09 09 20 20 73 63 68 | 61 72 2c 0a 58 09 09 20 |X.. sch|ar,.X.. |
|000026c0| 20 73 69 6e 74 65 67 65 | 72 2c 0a 58 09 09 20 20 | sintege|r,.X.. |
|000026d0| 73 69 64 3a 0a 58 09 09 | 20 20 20 20 62 65 67 69 |sid:.X..| begi|
|000026e0| 6e 0a 58 09 09 09 73 74 | 20 3a 3d 20 63 75 72 72 |n.X...st| := curr|
|000026f0| 73 79 6d 2e 73 74 3b 0a | 58 09 09 09 74 70 20 3a |sym.st;.|X...tp :|
|00002700| 3d 20 70 63 6f 6e 73 74 | 61 6e 74 28 66 61 6c 73 |= pconst|ant(fals|
|00002710| 65 29 3b 0a 58 09 09 09 | 69 66 20 73 74 20 3d 20 |e);.X...|if st = |
|00002720| 73 69 64 20 74 68 65 6e | 0a 58 09 09 09 09 6e 65 |sid then|.X....ne|
|00002730| 78 74 73 79 6d 62 6f 6c | 28 5b 73 64 6f 74 64 6f |xtsymbol|([sdotdo|
|00002740| 74 5d 20 2b 20 73 73 29 | 0a 58 09 09 09 65 6c 73 |t] + ss)|.X...els|
|00002750| 65 0a 58 09 09 09 09 6e | 65 78 74 73 79 6d 62 6f |e.X....n|extsymbo|
|00002760| 6c 28 5b 73 64 6f 74 64 | 6f 74 5d 29 3b 0a 58 09 |l([sdotd|ot]);.X.|
|00002770| 09 09 69 66 20 63 75 72 | 72 73 79 6d 2e 73 74 20 |..if cur|rsym.st |
|00002780| 3d 20 73 64 6f 74 64 6f | 74 20 74 68 65 6e 0a 58 |= sdotdo|t then.X|
|00002790| 09 09 09 20 20 20 20 62 | 65 67 69 6e 0a 58 09 09 |... b|egin.X..|
|000027a0| 09 09 6e 65 78 74 73 79 | 6d 62 6f 6c 28 5b 73 69 |..nextsy|mbol([si|
|000027b0| 64 2c 20 73 69 6e 74 65 | 67 65 72 2c 20 73 63 68 |d, sinte|ger, sch|
|000027c0| 61 72 2c 0a 58 09 09 09 | 09 09 09 09 09 73 70 6c |ar,.X...|.....spl|
|000027d0| 75 73 2c 20 73 6d 69 6e | 75 73 5d 29 3b 0a 58 09 |us, smin|us]);.X.|
|000027e0| 09 09 09 74 71 20 3a 3d | 20 6d 6b 6e 6f 64 65 28 |...tq :=| mknode(|
|000027f0| 6e 73 75 62 72 61 6e 67 | 65 29 3b 0a 58 09 09 09 |nsubrang|e);.X...|
|00002800| 09 74 71 5e 2e 74 6c 6f | 20 3a 3d 20 74 70 3b 0a |.tq^.tlo| := tp;.|
|00002810| 58 09 09 09 09 74 71 5e | 2e 74 68 69 20 3a 3d 20 |X....tq^|.thi := |
|00002820| 70 63 6f 6e 73 74 61 6e | 74 28 66 61 6c 73 65 29 |pconstan|t(false)|
|00002830| 3b 0a 58 09 09 09 09 74 | 70 20 3a 3d 20 74 71 3b |;.X....t|p := tq;|
|00002840| 0a 58 09 09 09 09 6e 65 | 78 74 73 79 6d 62 6f 6c |.X....ne|xtsymbol|
|00002850| 28 73 73 29 0a 58 09 09 | 09 20 20 20 20 65 6e 64 |(ss).X..|. end|
|00002860| 0a 58 09 09 20 20 20 20 | 65 6e 64 3b 0a 58 09 09 |.X.. |end;.X..|
|00002870| 20 20 73 6c 70 61 72 3a | 0a 58 09 09 20 20 20 20 | slpar:|.X.. |
|00002880| 62 65 67 69 6e 0a 58 09 | 09 09 74 70 20 3a 3d 20 |begin.X.|..tp := |
|00002890| 6d 6b 6e 6f 64 65 28 6e | 73 63 61 6c 61 72 29 3b |mknode(n|scalar);|
|000028a0| 0a 58 09 09 09 6e 65 78 | 74 73 79 6d 62 6f 6c 28 |.X...nex|tsymbol(|
|000028b0| 5b 73 69 64 5d 29 3b 0a | 58 09 09 09 74 70 5e 2e |[sid]);.|X...tp^.|
|000028c0| 74 73 63 61 6c 69 64 20 | 3a 3d 20 70 69 64 6c 69 |tscalid |:= pidli|
|000028d0| 73 74 28 6c 69 64 65 6e | 74 69 66 69 65 72 29 3b |st(liden|tifier);|
|000028e0| 0a 58 09 09 09 63 68 65 | 63 6b 73 79 6d 62 6f 6c |.X...che|cksymbol|
|000028f0| 28 5b 73 72 70 61 72 5d | 29 3b 0a 58 09 09 09 6e |([srpar]|);.X...n|
|00002900| 65 78 74 73 79 6d 62 6f | 6c 28 73 73 29 0a 58 09 |extsymbo|l(ss).X.|
|00002910| 09 20 20 20 20 65 6e 64 | 3b 0a 58 09 09 20 20 73 |. end|;.X.. s|
|00002920| 61 72 72 6f 77 3a 0a 58 | 09 09 20 20 20 20 62 65 |arrow:.X|.. be|
|00002930| 67 69 6e 0a 58 09 09 09 | 74 70 20 3a 3d 20 6d 6b |gin.X...|tp := mk|
|00002940| 6e 6f 64 65 28 6e 70 74 | 72 29 3b 0a 58 09 09 09 |node(npt|r);.X...|
|00002950| 6e 65 78 74 73 79 6d 62 | 6f 6c 28 5b 73 69 64 5d |nextsymb|ol([sid]|
|00002960| 29 3b 0a 58 09 09 09 74 | 70 5e 2e 74 70 74 72 69 |);.X...t|p^.tptri|
|00002970| 64 20 3a 3d 20 6f 6c 64 | 69 64 28 63 75 72 72 73 |d := old|id(currs|
|00002980| 79 6d 2e 76 69 64 2c 20 | 6c 70 6f 69 6e 74 65 72 |ym.vid, |lpointer|
|00002990| 29 3b 0a 58 09 09 09 74 | 70 5e 2e 74 70 74 72 66 |);.X...t|p^.tptrf|
|000029a0| 6c 61 67 20 3a 3d 20 66 | 61 6c 73 65 3b 0a 58 09 |lag := f|alse;.X.|
|000029b0| 09 09 6e 65 78 74 73 79 | 6d 62 6f 6c 28 5b 73 73 |..nextsy|mbol([ss|
|000029c0| 65 6d 69 63 2c 20 73 65 | 6e 64 2c 20 73 72 70 61 |emic, se|nd, srpa|
|000029d0| 72 5d 29 0a 58 09 09 20 | 20 20 20 65 6e 64 3b 0a |r]).X.. | end;.|
|000029e0| 58 09 09 20 20 73 61 72 | 72 61 79 3a 0a 58 09 09 |X.. sar|ray:.X..|
|000029f0| 20 20 20 20 62 65 67 69 | 6e 0a 58 09 09 09 6e 65 | begi|n.X...ne|
|00002a00| 78 74 73 79 6d 62 6f 6c | 28 5b 73 6c 62 72 61 63 |xtsymbol|([slbrac|
|00002a10| 6b 5d 29 3b 0a 58 09 09 | 09 74 70 20 3a 3d 20 6d |k]);.X..|.tp := m|
|00002a20| 6b 6e 6f 64 65 28 6e 61 | 72 72 61 79 29 3b 0a 58 |knode(na|rray);.X|
|00002a30| 09 09 09 74 70 5e 2e 74 | 61 69 6e 64 78 20 3a 3d |...tp^.t|aindx :=|
|00002a40| 20 70 74 79 70 65 64 65 | 66 3b 09 28 2a 20 70 61 | ptypede|f;.(* pa|
|00002a50| 72 73 65 20 73 75 62 72 | 61 6e 67 65 20 2e 2e 2e |rse subr|ange ...|
|00002a60| 09 2a 29 0a 58 09 09 09 | 74 71 20 3a 3d 20 74 70 |.*).X...|tq := tp|
|00002a70| 3b 0a 58 09 09 09 77 68 | 69 6c 65 20 63 75 72 72 |;.X...wh|ile curr|
|00002a80| 73 79 6d 2e 73 74 20 3d | 20 73 63 6f 6d 6d 61 20 |sym.st =| scomma |
|00002a90| 64 6f 0a 58 09 09 09 20 | 20 20 20 62 65 67 69 6e |do.X... | begin|
|00002aa0| 0a 58 09 09 09 09 28 2a | 20 65 78 70 61 6e 64 3a |.X....(*| expand:|
|00002ab0| 20 20 20 61 72 72 61 79 | 20 5b 20 41 20 2c 20 42 | array| [ A , B|
|00002ac0| 20 5d 20 6f 66 20 58 0a | 58 09 09 09 09 20 20 20 | ] of X.|X.... |
|00002ad0| 74 6f 3a 20 20 20 61 72 | 72 61 79 20 5b 20 41 20 |to: ar|ray [ A |
|00002ae0| 5d 20 6f 66 20 61 72 72 | 61 79 20 5b 20 42 20 5d |] of arr|ay [ B ]|
|00002af0| 20 6f 66 20 58 20 20 20 | 2a 29 0a 58 09 09 09 09 | of X |*).X....|
|00002b00| 74 71 5e 2e 74 61 65 6c | 65 6d 20 3a 3d 20 6d 6b |tq^.tael|em := mk|
|00002b10| 6e 6f 64 65 28 6e 61 72 | 72 61 79 29 3b 0a 58 09 |node(nar|ray);.X.|
|00002b20| 09 09 09 74 71 20 3a 3d | 20 74 71 5e 2e 74 61 65 |...tq :=| tq^.tae|
|00002b30| 6c 65 6d 3b 0a 58 09 09 | 09 09 74 71 5e 2e 74 61 |lem;.X..|..tq^.ta|
|00002b40| 69 6e 64 78 20 3a 3d 20 | 70 74 79 70 65 64 65 66 |indx := |ptypedef|
|00002b50| 09 28 2a 20 2e 2e 2e 20 | 61 67 61 69 6e 09 2a 29 |.(* ... |again.*)|
|00002b60| 0a 58 09 09 09 20 20 20 | 20 65 6e 64 3b 0a 58 09 |.X... | end;.X.|
|00002b70| 09 09 63 68 65 63 6b 73 | 79 6d 62 6f 6c 28 5b 73 |..checks|ymbol([s|
|00002b80| 72 62 72 61 63 6b 5d 29 | 3b 0a 58 09 09 09 6e 65 |rbrack])|;.X...ne|
|00002b90| 78 74 73 79 6d 62 6f 6c | 28 5b 73 6f 66 5d 29 3b |xtsymbol|([sof]);|
|00002ba0| 0a 58 09 09 09 74 71 5e | 2e 74 61 65 6c 65 6d 20 |.X...tq^|.taelem |
|00002bb0| 3a 3d 20 70 74 79 70 65 | 64 65 66 0a 58 09 09 20 |:= ptype|def.X.. |
|00002bc0| 20 20 20 65 6e 64 3b 0a | 58 09 09 20 20 73 72 65 | end;.|X.. sre|
|00002bd0| 63 6f 72 64 3a 0a 58 09 | 09 09 74 70 20 3a 3d 20 |cord:.X.|..tp := |
|00002be0| 70 72 65 63 6f 72 64 28 | 73 65 6e 64 2c 20 6e 69 |precord(|send, ni|
|00002bf0| 6c 29 3b 0a 58 09 09 20 | 20 73 66 69 6c 65 2c 0a |l);.X.. | sfile,.|
|00002c00| 58 09 09 20 20 73 73 65 | 74 3a 0a 58 09 09 20 20 |X.. sse|t:.X.. |
|00002c10| 20 20 62 65 67 69 6e 0a | 58 09 09 09 69 66 20 63 | begin.|X...if c|
|00002c20| 75 72 72 73 79 6d 2e 73 | 74 20 3d 20 73 66 69 6c |urrsym.s|t = sfil|
|00002c30| 65 20 74 68 65 6e 0a 58 | 09 09 09 09 74 70 20 3a |e then.X|....tp :|
|00002c40| 3d 20 6d 6b 6e 6f 64 65 | 28 6e 66 69 6c 65 6f 66 |= mknode|(nfileof|
|00002c50| 29 0a 58 09 09 09 65 6c | 73 65 20 62 65 67 69 6e |).X...el|se begin|
|00002c60| 0a 58 09 09 09 09 74 70 | 20 3a 3d 20 6d 6b 6e 6f |.X....tp| := mkno|
|00002c70| 64 65 28 6e 73 65 74 6f | 66 29 3b 0a 58 09 09 09 |de(nseto|f);.X...|
|00002c80| 09 75 73 65 73 65 74 73 | 20 3a 3d 20 74 72 75 65 |.usesets| := true|
|00002c90| 0a 58 09 09 09 20 20 20 | 20 20 65 6e 64 3b 0a 58 |.X... | end;.X|
|00002ca0| 09 09 09 6e 65 78 74 73 | 79 6d 62 6f 6c 28 5b 73 |...nexts|ymbol([s|
|00002cb0| 6f 66 5d 29 3b 0a 58 09 | 09 09 74 70 5e 2e 74 6f |of]);.X.|..tp^.to|
|00002cc0| 66 20 3a 3d 20 70 74 79 | 70 65 64 65 66 0a 58 09 |f := pty|pedef.X.|
|00002cd0| 09 20 20 20 20 65 6e 64 | 0a 58 09 09 65 6e 64 3b |. end|.X..end;|
|00002ce0| 0a 58 09 09 28 2a 20 61 | 74 20 74 68 69 73 20 70 |.X..(* a|t this p|
|00002cf0| 6f 69 6e 74 20 22 63 75 | 72 72 73 79 6d 22 20 68 |oint "cu|rrsym" h|
|00002d00| 6f 6c 64 73 20 74 68 65 | 20 73 79 6d 62 6f 6c 20 |olds the| symbol |
|00002d10| 66 6f 6c 6c 6f 77 69 6e | 67 20 74 68 65 20 74 79 |followin|g the ty|
|00002d20| 70 65 0a 58 09 09 20 20 | 20 28 75 73 75 61 6c 6c |pe.X.. | (usuall|
|00002d30| 79 20 73 65 6d 69 63 6f | 6c 6f 6e 2c 20 73 6f 6d |y semico|lon, som|
|00002d40| 65 74 69 6d 65 73 20 74 | 68 65 20 66 6f 6c 6c 6f |etimes t|he follo|
|00002d50| 77 69 6e 67 20 65 6e 64 | 2f 72 70 61 72 29 20 2a |wing end|/rpar) *|
|00002d60| 29 0a 58 09 09 70 74 79 | 70 65 64 65 66 20 3a 3d |).X..pty|pedef :=|
|00002d70| 20 74 70 0a 58 09 65 6e | 64 3b 0a 58 0a 58 09 28 | tp.X.en|d;.X.X.(|
|00002d80| 2a 09 50 61 72 73 65 20 | 74 79 70 65 2d 63 6c 61 |*.Parse |type-cla|
|00002d90| 75 73 65 2e 09 09 09 09 | 09 2a 29 0a 58 09 66 75 |use.....|.*).X.fu|
|00002da0| 6e 63 74 69 6f 6e 20 70 | 74 79 70 65 3b 0a 58 0a |nction p|type;.X.|
|00002db0| 58 09 76 61 72 09 74 70 | 2c 0a 58 09 09 74 71 09 |X.var.tp|,.X..tq.|
|00002dc0| 3a 20 74 72 65 65 70 74 | 72 3b 0a 58 0a 58 09 62 |: treept|r;.X.X.b|
|00002dd0| 65 67 69 6e 0a 58 09 09 | 74 71 20 3a 3d 20 6e 69 |egin.X..|tq := ni|
|00002de0| 6c 3b 0a 58 09 09 6e 65 | 78 74 73 79 6d 62 6f 6c |l;.X..ne|xtsymbol|
|00002df0| 28 5b 73 69 64 5d 29 3b | 0a 58 09 09 72 65 70 65 |([sid]);|.X..repe|
|00002e00| 61 74 0a 58 09 09 09 69 | 66 20 74 71 20 3d 20 6e |at.X...i|f tq = n|
|00002e10| 69 6c 20 74 68 65 6e 0a | 58 09 09 09 20 20 20 20 |il then.|X... |
|00002e20| 62 65 67 69 6e 0a 58 09 | 09 09 09 74 71 20 3a 3d |begin.X.|...tq :=|
|00002e30| 20 6d 6b 6e 6f 64 65 28 | 6e 74 79 70 65 29 3b 0a | mknode(|ntype);.|
|00002e40| 58 09 09 09 09 74 71 5e | 2e 74 61 74 74 72 20 3a |X....tq^|.tattr :|
|00002e50| 3d 20 61 6e 6f 6e 65 3b | 0a 58 09 09 09 09 74 70 |= anone;|.X....tp|
|00002e60| 20 3a 3d 20 74 71 0a 58 | 09 09 09 20 20 20 20 65 | := tq.X|... e|
|00002e70| 6e 64 0a 58 09 09 09 65 | 6c 73 65 20 62 65 67 69 |nd.X...e|lse begi|
|00002e80| 6e 0a 58 09 09 09 09 74 | 71 5e 2e 74 6e 65 78 74 |n.X....t|q^.tnext|
|00002e90| 20 3a 3d 20 6d 6b 6e 6f | 64 65 28 6e 74 79 70 65 | := mkno|de(ntype|
|00002ea0| 29 3b 0a 58 09 09 09 09 | 74 71 20 3a 3d 20 74 71 |);.X....|tq := tq|
|00002eb0| 5e 2e 74 6e 65 78 74 3b | 0a 58 09 09 09 09 74 71 |^.tnext;|.X....tq|
|00002ec0| 5e 2e 74 61 74 74 72 20 | 3a 3d 20 61 6e 6f 6e 65 |^.tattr |:= anone|
|00002ed0| 0a 58 09 09 09 20 20 20 | 20 20 65 6e 64 3b 0a 58 |.X... | end;.X|
|00002ee0| 09 09 09 74 71 5e 2e 74 | 69 64 6c 20 3a 3d 20 70 |...tq^.t|idl := p|
|00002ef0| 69 64 6c 69 73 74 28 6c | 69 64 65 6e 74 69 66 69 |idlist(l|identifi|
|00002f00| 65 72 29 3b 0a 58 09 09 | 09 63 68 65 63 6b 73 79 |er);.X..|.checksy|
|00002f10| 6d 62 6f 6c 28 5b 73 65 | 71 5d 29 3b 0a 58 09 09 |mbol([se|q]);.X..|
|00002f20| 09 74 71 5e 2e 74 62 69 | 6e 64 20 3a 3d 20 70 74 |.tq^.tbi|nd := pt|
|00002f30| 79 70 65 64 65 66 3b 0a | 58 09 09 09 6e 65 78 74 |ypedef;.|X...next|
|00002f40| 73 79 6d 62 6f 6c 28 5b | 73 69 64 2c 20 73 76 61 |symbol([|sid, sva|
|00002f50| 72 2c 20 73 62 65 67 69 | 6e 2c 20 73 66 75 6e 63 |r, sbegi|n, sfunc|
|00002f60| 2c 20 73 70 72 6f 63 2c | 20 73 65 6f 66 5d 29 0a |, sproc,| seof]).|
|00002f70| 58 09 09 75 6e 74 69 6c | 09 63 75 72 72 73 79 6d |X..until|.currsym|
|00002f80| 2e 73 74 20 3c 3e 20 73 | 69 64 3b 0a 58 09 09 70 |.st <> s|id;.X..p|
|00002f90| 74 79 70 65 20 3a 3d 20 | 74 70 3b 0a 58 09 65 6e |type := |tp;.X.en|
|00002fa0| 64 3b 0a 58 0a 58 09 28 | 2a 09 50 61 72 73 65 20 |d;.X.X.(|*.Parse |
|00002fb0| 76 61 72 2d 63 6c 61 75 | 73 65 2e 09 09 09 09 09 |var-clau|se......|
|00002fc0| 2a 29 0a 58 09 66 75 6e | 63 74 69 6f 6e 20 70 76 |*).X.fun|ction pv|
|00002fd0| 61 72 3b 0a 58 0a 58 09 | 76 61 72 09 74 69 2c 0a |ar;.X.X.|var.ti,.|
|00002fe0| 58 09 09 74 70 2c 0a 58 | 09 09 74 71 09 3a 20 74 |X..tp,.X|..tq.: t|
|00002ff0| 72 65 65 70 74 72 3b 0a | 58 0a 58 09 62 65 67 69 |reeptr;.|X.X.begi|
|00003000| 6e 0a 58 09 09 74 71 20 | 3a 3d 20 6e 69 6c 3b 0a |n.X..tq |:= nil;.|
|00003010| 58 09 09 6e 65 78 74 73 | 79 6d 62 6f 6c 28 5b 73 |X..nexts|ymbol([s|
|00003020| 69 64 5d 29 3b 0a 58 09 | 09 72 65 70 65 61 74 0a |id]);.X.|.repeat.|
|00003030| 58 09 09 09 69 66 20 74 | 71 20 3d 20 6e 69 6c 20 |X...if t|q = nil |
|00003040| 74 68 65 6e 0a 58 09 09 | 09 20 20 20 20 62 65 67 |then.X..|. beg|
|00003050| 69 6e 0a 58 09 09 09 09 | 74 71 20 3a 3d 20 6d 6b |in.X....|tq := mk|
|00003060| 6e 6f 64 65 28 6e 76 61 | 72 29 3b 0a 58 09 09 09 |node(nva|r);.X...|
|00003070| 09 74 71 5e 2e 74 61 74 | 74 72 20 3a 3d 20 61 6e |.tq^.tat|tr := an|
|00003080| 6f 6e 65 3b 0a 58 09 09 | 09 09 74 70 20 3a 3d 20 |one;.X..|..tp := |
|00003090| 74 71 0a 58 09 09 09 20 | 20 20 20 65 6e 64 0a 58 |tq.X... | end.X|
|000030a0| 09 09 09 65 6c 73 65 20 | 62 65 67 69 6e 0a 58 09 |...else |begin.X.|
|000030b0| 09 09 09 74 71 5e 2e 74 | 6e 65 78 74 20 3a 3d 20 |...tq^.t|next := |
|000030c0| 6d 6b 6e 6f 64 65 28 6e | 76 61 72 29 3b 0a 58 09 |mknode(n|var);.X.|
|000030d0| 09 09 09 74 71 20 3a 3d | 20 74 71 5e 2e 74 6e 65 |...tq :=| tq^.tne|
|000030e0| 78 74 3b 0a 58 09 09 09 | 09 74 71 5e 2e 74 61 74 |xt;.X...|.tq^.tat|
|000030f0| 74 72 20 3a 3d 20 61 6e | 6f 6e 65 0a 58 09 09 09 |tr := an|one.X...|
|00003100| 20 20 20 20 20 65 6e 64 | 3b 0a 58 0a 58 09 09 09 | end|;.X.X...|
|00003110| 74 69 20 3a 3d 20 6e 65 | 77 69 64 28 63 75 72 72 |ti := ne|wid(curr|
|00003120| 73 79 6d 2e 76 69 64 29 | 3b 0a 58 09 09 09 74 71 |sym.vid)|;.X...tq|
|00003130| 5e 2e 74 69 64 6c 20 3a | 3d 20 74 69 3b 0a 58 09 |^.tidl :|= ti;.X.|
|00003140| 09 09 6e 65 78 74 73 79 | 6d 62 6f 6c 28 5b 73 63 |..nextsy|mbol([sc|
|00003150| 6f 6d 6d 61 2c 20 73 63 | 6f 6c 6f 6e 5d 29 3b 0a |omma, sc|olon]);.|
|00003160| 58 09 09 09 77 68 69 6c | 65 20 63 75 72 72 73 79 |X...whil|e currsy|
|00003170| 6d 2e 73 74 20 3d 20 73 | 63 6f 6d 6d 61 20 64 6f |m.st = s|comma do|
|00003180| 0a 58 09 09 09 20 20 20 | 20 62 65 67 69 6e 0a 58 |.X... | begin.X|
|00003190| 09 09 09 09 6e 65 78 74 | 73 79 6d 62 6f 6c 28 5b |....next|symbol([|
|000031a0| 73 69 64 5d 29 3b 0a 58 | 09 09 09 09 74 69 5e 2e |sid]);.X|....ti^.|
|000031b0| 74 6e 65 78 74 20 3a 3d | 20 6e 65 77 69 64 28 63 |tnext :=| newid(c|
|000031c0| 75 72 72 73 79 6d 2e 76 | 69 64 29 3b 0a 58 09 09 |urrsym.v|id);.X..|
|000031d0| 09 09 74 69 20 3a 3d 20 | 74 69 5e 2e 74 6e 65 78 |..ti := |ti^.tnex|
|000031e0| 74 3b 0a 58 09 09 09 09 | 6e 65 78 74 73 79 6d 62 |t;.X....|nextsymb|
|000031f0| 6f 6c 28 5b 73 63 6f 6d | 6d 61 2c 20 73 63 6f 6c |ol([scom|ma, scol|
|00003200| 6f 6e 5d 29 0a 58 09 09 | 09 20 20 20 20 65 6e 64 |on]).X..|. end|
|00003210| 3b 0a 58 0a 58 09 09 09 | 74 71 5e 2e 74 62 69 6e |;.X.X...|tq^.tbin|
|00003220| 64 20 3a 3d 20 70 74 79 | 70 65 64 65 66 3b 0a 58 |d := pty|pedef;.X|
|00003230| 09 09 09 6e 65 78 74 73 | 79 6d 62 6f 6c 28 5b 73 |...nexts|ymbol([s|
|00003240| 69 64 2c 20 73 62 65 67 | 69 6e 2c 20 73 66 75 6e |id, sbeg|in, sfun|
|00003250| 63 2c 20 73 70 72 6f 63 | 2c 20 73 65 6f 66 5d 29 |c, sproc|, seof])|
|00003260| 0a 58 09 09 75 6e 74 69 | 6c 09 63 75 72 72 73 79 |.X..unti|l.currsy|
|00003270| 6d 2e 73 74 20 3c 3e 20 | 73 69 64 3b 0a 58 09 09 |m.st <> |sid;.X..|
|00003280| 70 76 61 72 20 3a 3d 20 | 74 70 0a 58 09 65 6e 64 |pvar := |tp.X.end|
|00003290| 3b 0a 58 0a 58 09 28 2a | 09 50 61 72 73 65 20 73 |;.X.X.(*|.Parse s|
|000032a0| 75 62 72 6f 75 74 69 6e | 65 2d 64 65 63 6c 61 72 |ubroutin|e-declar|
|000032b0| 61 74 69 6f 6e 2e 09 09 | 09 09 2a 29 0a 58 09 66 |ation...|..*).X.f|
|000032c0| 75 6e 63 74 69 6f 6e 20 | 70 73 75 62 73 3b 0a 58 |unction |psubs;.X|
|000032d0| 0a 58 09 76 61 72 09 74 | 70 2c 09 09 09 28 2a 20 |.X.var.t|p,...(* |
|000032e0| 72 65 74 75 72 6e 20 76 | 61 6c 75 65 09 09 2a 29 |return v|alue..*)|
|000032f0| 0a 58 09 09 74 76 2c 20 | 74 71 09 3a 20 74 72 65 |.X..tv, |tq.: tre|
|00003300| 65 70 74 72 3b 09 28 2a | 20 74 65 6d 70 6f 72 61 |eptr;.(*| tempora|
|00003310| 72 79 09 09 2a 29 0a 58 | 09 09 66 75 6e 63 09 3a |ry..*).X|..func.:|
|00003320| 20 62 6f 6f 6c 65 61 6e | 3b 09 28 2a 20 74 72 75 | boolean|;.(* tru|
|00003330| 65 20 66 6f 72 20 66 75 | 6e 63 74 69 6f 6e 73 09 |e for fu|nctions.|
|00003340| 2a 29 0a 58 09 09 63 6f | 6c 73 65 6d 09 3a 20 73 |*).X..co|lsem.: s|
|00003350| 79 6d 74 79 70 3b 09 28 | 2a 20 63 6f 6c 6f 6e 2f |ymtyp;.(|* colon/|
|00003360| 73 65 6d 69 63 6f 6c 6f | 6e 09 2a 29 0a 58 0a 58 |semicolo|n.*).X.X|
|00003370| 09 62 65 67 69 6e 0a 58 | 09 09 28 2a 20 70 61 72 |.begin.X|..(* par|
|00003380| 73 69 6e 67 20 66 75 6e | 63 74 69 6f 6e 20 6f 72 |sing fun|ction or|
|00003390| 20 70 72 6f 63 65 64 75 | 72 65 20 2a 29 0a 58 09 | procedu|re *).X.|
|000033a0| 09 66 75 6e 63 20 3a 3d | 20 63 75 72 72 73 79 6d |.func :=| currsym|
|000033b0| 2e 73 74 20 3d 20 73 66 | 75 6e 63 3b 0a 58 09 09 |.st = sf|unc;.X..|
|000033c0| 69 66 20 66 75 6e 63 20 | 74 68 65 6e 0a 58 09 09 |if func |then.X..|
|000033d0| 09 63 6f 6c 73 65 6d 20 | 3a 3d 20 73 63 6f 6c 6f |.colsem |:= scolo|
|000033e0| 6e 0a 58 09 09 65 6c 73 | 65 0a 58 09 09 09 63 6f |n.X..els|e.X...co|
|000033f0| 6c 73 65 6d 20 3a 3d 20 | 73 73 65 6d 69 63 3b 0a |lsem := |ssemic;.|
|00003400| 58 0a 58 09 09 28 2a 20 | 70 61 72 73 65 20 69 64 |X.X..(* |parse id|
|00003410| 2c 20 69 74 20 6d 61 79 | 20 61 6c 72 65 61 64 79 |, it may| already|
|00003420| 20 62 65 20 66 6f 72 77 | 61 72 64 20 64 65 63 6c | be forw|ard decl|
|00003430| 61 72 65 64 20 2a 29 0a | 58 09 09 6e 65 78 74 73 |ared *).|X..nexts|
|00003440| 79 6d 62 6f 6c 28 5b 73 | 69 64 5d 29 3b 0a 58 09 |ymbol([s|id]);.X.|
|00003450| 09 74 71 20 3a 3d 20 6e | 65 77 69 64 28 63 75 72 |.tq := n|ewid(cur|
|00003460| 72 73 79 6d 2e 76 69 64 | 29 3b 0a 58 09 09 69 66 |rsym.vid|);.X..if|
|00003470| 20 74 71 5e 2e 74 75 70 | 20 3d 20 6e 69 6c 20 74 | tq^.tup| = nil t|
|00003480| 68 65 6e 0a 58 09 09 20 | 20 20 62 65 67 69 6e 0a |hen.X.. | begin.|
|00003490| 58 09 09 09 65 6e 74 65 | 72 73 63 6f 70 65 28 6e |X...ente|rscope(n|
|000034a0| 69 6c 29 3b 0a 58 09 09 | 09 28 2a 20 69 64 20 77 |il);.X..|.(* id w|
|000034b0| 61 73 6e 27 74 20 70 72 | 65 76 69 6f 75 73 6c 79 |asn't pr|eviously|
|000034c0| 20 64 65 63 6c 61 72 65 | 64 2c 20 70 61 72 61 6d | declare|d, param|
|000034d0| 73 20 70 6f 73 73 69 62 | 6c 65 20 2a 29 0a 58 09 |s possib|le *).X.|
|000034e0| 09 09 69 66 20 66 75 6e | 63 20 74 68 65 6e 0a 58 |..if fun|c then.X|
|000034f0| 09 09 09 09 74 70 20 3a | 3d 20 6d 6b 6e 6f 64 65 |....tp :|= mknode|
|00003500| 28 6e 66 75 6e 63 29 0a | 58 09 09 09 65 6c 73 65 |(nfunc).|X...else|
|00003510| 0a 58 09 09 09 09 74 70 | 20 3a 3d 20 6d 6b 6e 6f |.X....tp| := mkno|
|00003520| 64 65 28 6e 70 72 6f 63 | 29 3b 0a 58 09 09 09 74 |de(nproc|);.X...t|
|00003530| 70 5e 2e 74 73 74 61 74 | 20 3a 3d 20 73 74 61 74 |p^.tstat| := stat|
|00003540| 6c 76 6c 3b 0a 58 09 09 | 09 74 70 5e 2e 74 73 75 |lvl;.X..|.tp^.tsu|
|00003550| 62 69 64 20 3a 3d 20 74 | 71 3b 0a 58 09 09 09 6c |bid := t|q;.X...l|
|00003560| 69 6e 6b 75 70 28 74 70 | 2c 20 74 71 29 3b 0a 58 |inkup(tp|, tq);.X|
|00003570| 09 09 09 6e 65 78 74 73 | 79 6d 62 6f 6c 28 5b 73 |...nexts|ymbol([s|
|00003580| 6c 70 61 72 2c 20 63 6f | 6c 73 65 6d 5d 29 3b 0a |lpar, co|lsem]);.|
|00003590| 58 09 09 09 69 66 20 63 | 75 72 72 73 79 6d 2e 73 |X...if c|urrsym.s|
|000035a0| 74 20 3d 20 73 6c 70 61 | 72 20 74 68 65 6e 0a 58 |t = slpa|r then.X|
|000035b0| 09 09 09 20 20 20 20 62 | 65 67 69 6e 0a 58 09 09 |... b|egin.X..|
|000035c0| 09 09 74 70 5e 2e 74 73 | 75 62 70 61 72 20 3a 3d |..tp^.ts|ubpar :=|
|000035d0| 20 70 73 75 62 70 61 72 | 3b 0a 58 09 09 09 09 6c | psubpar|;.X....l|
|000035e0| 69 6e 6b 75 70 28 74 70 | 2c 20 74 70 5e 2e 74 73 |inkup(tp|, tp^.ts|
|000035f0| 75 62 70 61 72 29 3b 0a | 58 09 09 09 09 6e 65 78 |ubpar);.|X....nex|
|00003600| 74 73 79 6d 62 6f 6c 28 | 5b 63 6f 6c 73 65 6d 5d |tsymbol(|[colsem]|
|00003610| 29 0a 58 09 09 09 20 20 | 20 20 65 6e 64 0a 58 09 |).X... | end.X.|
|00003620| 09 09 65 6c 73 65 0a 58 | 09 09 09 09 74 70 5e 2e |..else.X|....tp^.|
|00003630| 74 73 75 62 70 61 72 20 | 3a 3d 20 6e 69 6c 3b 0a |tsubpar |:= nil;.|
|00003640| 58 09 09 09 69 66 20 66 | 75 6e 63 20 74 68 65 6e |X...if f|unc then|
|00003650| 0a 58 09 09 09 20 20 20 | 20 62 65 67 69 6e 0a 58 |.X... | begin.X|
|00003660| 09 09 09 09 28 2a 20 70 | 61 72 73 65 20 66 75 6e |....(* p|arse fun|
|00003670| 63 74 69 6f 6e 20 74 79 | 70 65 20 2a 29 0a 58 09 |ction ty|pe *).X.|
|00003680| 09 09 09 6e 65 78 74 73 | 79 6d 62 6f 6c 28 5b 73 |...nexts|ymbol([s|
|00003690| 69 64 5d 29 3b 0a 58 09 | 09 09 09 74 70 5e 2e 74 |id]);.X.|...tp^.t|
|000036a0| 66 75 6e 74 79 70 20 3a | 3d 20 6f 6c 64 69 64 28 |funtyp :|= oldid(|
|000036b0| 63 75 72 72 73 79 6d 2e | 76 69 64 2c 20 6c 69 64 |currsym.|vid, lid|
|000036c0| 65 6e 74 69 66 69 65 72 | 29 3b 0a 58 09 09 09 09 |entifier|);.X....|
|000036d0| 6e 65 78 74 73 79 6d 62 | 6f 6c 28 5b 73 73 65 6d |nextsymb|ol([ssem|
|000036e0| 69 63 5d 29 0a 58 09 09 | 09 20 20 20 20 65 6e 64 |ic]).X..|. end|
|000036f0| 0a 58 09 09 09 65 6c 73 | 65 0a 58 09 09 09 09 74 |.X...els|e.X....t|
|00003700| 70 5e 2e 74 66 75 6e 74 | 79 70 20 3a 3d 20 6d 6b |p^.tfunt|yp := mk|
|00003710| 6e 6f 64 65 28 6e 65 6d | 70 74 79 29 3b 0a 58 09 |node(nem|pty);.X.|
|00003720| 09 09 6c 69 6e 6b 75 70 | 28 74 70 2c 20 74 70 5e |..linkup|(tp, tp^|
|00003730| 2e 74 66 75 6e 74 79 70 | 29 3b 0a 58 09 09 09 6e |.tfuntyp|);.X...n|
|00003740| 65 78 74 73 79 6d 62 6f | 6c 28 5b 73 65 78 74 65 |extsymbo|l([sexte|
|00003750| 72 6e 2c 20 73 66 6f 72 | 77 61 72 64 2c 0a 58 09 |rn, sfor|ward,.X.|
|00003760| 09 09 09 09 73 6c 61 62 | 65 6c 2c 20 73 63 6f 6e |....slab|el, scon|
|00003770| 73 74 2c 20 73 74 79 70 | 65 2c 20 73 76 61 72 2c |st, styp|e, svar,|
|00003780| 0a 58 09 09 09 09 09 09 | 09 73 70 72 6f 63 2c 20 |.X......|.sproc, |
|00003790| 73 66 75 6e 63 2c 20 73 | 62 65 67 69 6e 5d 29 3b |sfunc, s|begin]);|
|000037a0| 0a 58 09 09 20 20 20 65 | 6e 64 0a 58 09 09 65 6c |.X.. e|nd.X..el|
|000037b0| 73 65 20 62 65 67 69 6e | 0a 58 09 09 09 28 2a 20 |se begin|.X...(* |
|000037c0| 69 64 20 77 61 73 20 66 | 6f 72 77 61 72 64 20 64 |id was f|orward d|
|000037d0| 65 63 6c 61 72 65 64 20 | 3d 3e 0a 58 09 09 09 09 |eclared |=>.X....|
|000037e0| 70 69 63 6b 20 75 70 20 | 64 65 63 6c 61 72 61 74 |pick up |declarat|
|000037f0| 69 6f 6e 73 20 66 72 6f | 6d 20 70 61 72 61 6d 65 |ions fro|m parame|
|00003800| 74 65 72 6c 69 73 74 20 | 2a 29 0a 58 09 09 09 65 |terlist |*).X...e|
|00003810| 6e 74 65 72 73 63 6f 70 | 65 28 74 71 5e 2e 74 75 |nterscop|e(tq^.tu|
|00003820| 70 5e 2e 74 73 63 6f 70 | 65 29 3b 0a 58 09 09 09 |p^.tscop|e);.X...|
|00003830| 69 66 20 66 75 6e 63 20 | 74 68 65 6e 0a 58 09 09 |if func |then.X..|
|00003840| 09 09 74 70 20 3a 3d 20 | 6d 6b 6e 6f 64 65 28 6e |..tp := |mknode(n|
|00003850| 66 75 6e 63 29 0a 58 09 | 09 09 65 6c 73 65 0a 58 |func).X.|..else.X|
|00003860| 09 09 09 09 74 70 20 3a | 3d 20 6d 6b 6e 6f 64 65 |....tp :|= mknode|
|00003870| 28 6e 70 72 6f 63 29 3b | 0a 58 09 09 09 74 70 5e |(nproc);|.X...tp^|
|00003880| 2e 74 66 75 6e 74 79 70 | 20 3a 3d 20 74 71 5e 2e |.tfuntyp| := tq^.|
|00003890| 74 75 70 5e 2e 74 66 75 | 6e 74 79 70 3b 0a 58 09 |tup^.tfu|ntyp;.X.|
|000038a0| 09 09 28 2a 20 73 74 65 | 61 6c 20 69 64 20 61 6e |..(* ste|al id an|
|000038b0| 64 20 70 61 72 61 6d 73 | 20 66 72 6f 6d 20 66 6f |d params| from fo|
|000038c0| 72 77 61 72 64 20 64 65 | 63 6c 20 2a 29 0a 58 09 |rward de|cl *).X.|
|000038d0| 09 09 74 76 20 3a 3d 20 | 74 71 5e 2e 74 75 70 5e |..tv := |tq^.tup^|
|000038e0| 2e 74 73 75 62 70 61 72 | 3b 0a 58 09 09 09 74 70 |.tsubpar|;.X...tp|
|000038f0| 5e 2e 74 73 75 62 70 61 | 72 20 3a 3d 20 74 76 3b |^.tsubpa|r := tv;|
|00003900| 0a 58 09 09 09 77 68 69 | 6c 65 20 74 76 20 3c 3e |.X...whi|le tv <>|
|00003910| 20 6e 69 6c 20 64 6f 0a | 58 09 09 09 20 20 20 20 | nil do.|X... |
|00003920| 62 65 67 69 6e 0a 58 09 | 09 09 09 74 76 5e 2e 74 |begin.X.|...tv^.t|
|00003930| 75 70 20 3a 3d 20 74 70 | 3b 0a 58 09 09 09 09 74 |up := tp|;.X....t|
|00003940| 76 20 3a 3d 20 74 76 5e | 2e 74 6e 65 78 74 0a 58 |v := tv^|.tnext.X|
|00003950| 09 09 09 20 20 20 20 65 | 6e 64 3b 0a 58 09 09 09 |... e|nd;.X...|
|00003960| 74 70 5e 2e 74 73 75 62 | 69 64 20 3a 3d 20 74 71 |tp^.tsub|id := tq|
|00003970| 3b 0a 58 09 09 09 74 71 | 5e 2e 74 75 70 20 3a 3d |;.X...tq|^.tup :=|
|00003980| 20 74 70 3b 0a 58 09 09 | 09 28 2a 20 69 64 20 77 | tp;.X..|.(* id w|
|00003990| 61 73 20 66 6f 72 77 61 | 72 64 20 64 65 63 6c 61 |as forwa|rd decla|
|000039a0| 72 65 64 20 3d 3e 0a 58 | 09 09 09 09 6e 6f 20 70 |red =>.X|....no p|
|000039b0| 61 72 61 6d 73 2c 20 6e | 6f 20 66 75 6e 63 74 69 |arams, n|o functi|
|000039c0| 6f 6e 20 74 79 70 65 2c | 20 6e 6f 20 66 6f 72 77 |on type,| no forw|
|000039d0| 61 72 64 20 2a 29 0a 58 | 09 09 09 6e 65 78 74 73 |ard *).X|...nexts|
|000039e0| 79 6d 62 6f 6c 28 5b 73 | 73 65 6d 69 63 5d 29 3b |ymbol([s|semic]);|
|000039f0| 0a 58 09 09 09 6e 65 78 | 74 73 79 6d 62 6f 6c 28 |.X...nex|tsymbol(|
|00003a00| 5b 73 6c 61 62 65 6c 2c | 20 73 63 6f 6e 73 74 2c |[slabel,| sconst,|
|00003a10| 20 73 74 79 70 65 2c 20 | 73 76 61 72 2c 0a 58 09 | stype, |svar,.X.|
|00003a20| 09 09 09 09 09 09 73 70 | 72 6f 63 2c 20 73 66 75 |......sp|roc, sfu|
|00003a30| 6e 63 2c 20 73 62 65 67 | 69 6e 5d 29 3b 0a 58 09 |nc, sbeg|in]);.X.|
|00003a40| 09 20 20 20 20 20 65 6e | 64 3b 0a 58 09 09 69 66 |. en|d;.X..if|
|00003a50| 20 63 75 72 72 73 79 6d | 2e 73 74 20 69 6e 20 5b | currsym|.st in [|
|00003a60| 73 66 6f 72 77 61 72 64 | 2c 20 73 65 78 74 65 72 |sforward|, sexter|
|00003a70| 6e 5d 20 74 68 65 6e 0a | 58 09 09 20 20 20 20 62 |n] then.|X.. b|
|00003a80| 65 67 69 6e 0a 58 09 09 | 09 74 70 5e 2e 74 73 75 |egin.X..|.tp^.tsu|
|00003a90| 62 69 64 5e 2e 74 73 79 | 6d 5e 2e 6c 74 20 3a 3d |bid^.tsy|m^.lt :=|
|00003aa0| 20 6c 66 6f 72 77 61 72 | 64 3b 0a 58 09 09 09 6e | lforwar|d;.X...n|
|00003ab0| 65 78 74 73 79 6d 62 6f | 6c 28 5b 73 73 65 6d 69 |extsymbo|l([ssemi|
|00003ac0| 63 5d 29 3b 0a 58 09 09 | 09 74 70 5e 2e 74 73 75 |c]);.X..|.tp^.tsu|
|00003ad0| 62 6c 61 62 20 3a 3d 20 | 6e 69 6c 3b 0a 58 09 09 |blab := |nil;.X..|
|00003ae0| 09 74 70 5e 2e 74 73 75 | 62 63 6f 6e 73 74 20 3a |.tp^.tsu|bconst :|
|00003af0| 3d 20 6e 69 6c 3b 0a 58 | 09 09 09 74 70 5e 2e 74 |= nil;.X|...tp^.t|
|00003b00| 73 75 62 74 79 70 65 20 | 3a 3d 20 6e 69 6c 3b 0a |subtype |:= nil;.|
|00003b10| 58 09 09 09 74 70 5e 2e | 74 73 75 62 76 61 72 20 |X...tp^.|tsubvar |
|00003b20| 3a 3d 20 6e 69 6c 3b 0a | 58 09 09 09 74 70 5e 2e |:= nil;.|X...tp^.|
|00003b30| 74 73 75 62 73 75 62 20 | 3a 3d 20 6e 69 6c 3b 0a |tsubsub |:= nil;.|
|00003b40| 58 09 09 09 74 70 5e 2e | 74 73 75 62 73 74 6d 74 |X...tp^.|tsubstmt|
|00003b50| 20 3a 3d 20 6e 69 6c 0a | 58 09 09 20 20 20 20 65 | := nil.|X.. e|
|00003b60| 6e 64 0a 58 09 09 65 6c | 73 65 0a 58 09 09 09 70 |nd.X..el|se.X...p|
|00003b70| 62 6f 64 79 28 74 70 29 | 3b 0a 58 09 09 6e 65 78 |body(tp)|;.X..nex|
|00003b80| 74 73 79 6d 62 6f 6c 28 | 5b 73 70 72 6f 63 2c 20 |tsymbol(|[sproc, |
|00003b90| 73 66 75 6e 63 2c 20 73 | 62 65 67 69 6e 2c 20 73 |sfunc, s|begin, s|
|00003ba0| 65 6f 66 5d 29 3b 0a 58 | 09 09 74 70 5e 2e 74 73 |eof]);.X|..tp^.ts|
|00003bb0| 63 6f 70 65 20 3a 3d 20 | 63 75 72 72 73 63 6f 70 |cope := |currscop|
|00003bc0| 65 3b 0a 58 09 09 6c 65 | 61 76 65 73 63 6f 70 65 |e;.X..le|avescope|
|00003bd0| 3b 0a 58 09 09 70 73 75 | 62 73 20 3a 3d 20 74 70 |;.X..psu|bs := tp|
|00003be0| 0a 58 09 65 6e 64 3b 0a | 58 0a 58 09 28 2a 09 50 |.X.end;.|X.X.(*.P|
|00003bf0| 61 72 73 65 20 61 20 63 | 6f 6e 66 6f 72 6d 61 6e |arse a c|onforman|
|00003c00| 74 20 61 72 72 61 79 20 | 69 6e 64 65 78 20 74 79 |t array |index ty|
|00003c10| 70 65 2e 09 09 09 2a 29 | 0a 58 09 66 75 6e 63 74 |pe....*)|.X.funct|
|00003c20| 69 6f 6e 20 70 63 6f 6e | 66 73 75 62 20 3a 20 74 |ion pcon|fsub : t|
|00003c30| 72 65 65 70 74 72 3b 0a | 58 0a 58 09 76 61 72 09 |reeptr;.|X.X.var.|
|00003c40| 74 70 09 3a 20 74 72 65 | 65 70 74 72 3b 0a 58 0a |tp.: tre|eptr;.X.|
|00003c50| 58 09 62 65 67 69 6e 0a | 58 09 09 74 70 20 3a 3d |X.begin.|X..tp :=|
|00003c60| 20 6d 6b 6e 6f 64 65 28 | 6e 73 75 62 72 61 6e 67 | mknode(|nsubrang|
|00003c70| 65 29 3b 0a 58 09 09 6e | 65 78 74 73 79 6d 62 6f |e);.X..n|extsymbo|
|00003c80| 6c 28 5b 73 69 64 5d 29 | 3b 0a 58 09 09 74 70 5e |l([sid])|;.X..tp^|
|00003c90| 2e 74 6c 6f 20 3a 3d 20 | 6e 65 77 69 64 28 63 75 |.tlo := |newid(cu|
|00003ca0| 72 72 73 79 6d 2e 76 69 | 64 29 3b 0a 58 09 09 6e |rrsym.vi|d);.X..n|
|00003cb0| 65 78 74 73 79 6d 62 6f | 6c 28 5b 73 64 6f 74 64 |extsymbo|l([sdotd|
|00003cc0| 6f 74 5d 29 3b 0a 58 09 | 09 6e 65 78 74 73 79 6d |ot]);.X.|.nextsym|
|00003cd0| 62 6f 6c 28 5b 73 69 64 | 5d 29 3b 0a 58 09 09 74 |bol([sid|]);.X..t|
|00003ce0| 70 5e 2e 74 68 69 20 3a | 3d 20 6e 65 77 69 64 28 |p^.thi :|= newid(|
|00003cf0| 63 75 72 72 73 79 6d 2e | 76 69 64 29 3b 0a 58 09 |currsym.|vid);.X.|
|00003d00| 09 6e 65 78 74 73 79 6d | 62 6f 6c 28 5b 73 63 6f |.nextsym|bol([sco|
|00003d10| 6c 6f 6e 5d 29 3b 0a 58 | 09 09 70 63 6f 6e 66 73 |lon]);.X|..pconfs|
|00003d20| 75 62 20 3a 3d 20 74 70 | 0a 58 09 65 6e 64 3b 0a |ub := tp|.X.end;.|
|00003d30| 58 0a 58 09 28 2a 09 50 | 61 72 73 65 20 61 20 63 |X.X.(*.P|arse a c|
|00003d40| 6f 6e 66 6f 72 6d 61 6e | 74 20 61 72 72 61 79 2d |onforman|t array-|
|00003d50| 64 65 63 6c 61 72 61 74 | 69 6f 6e 2e 09 09 09 2a |declarat|ion....*|
|00003d60| 29 0a 58 09 66 75 6e 63 | 74 69 6f 6e 20 70 63 6f |).X.func|tion pco|
|00003d70| 6e 66 6f 72 6d 20 3a 20 | 74 72 65 65 70 74 72 3b |nform : |treeptr;|
|00003d80| 0a 58 0a 58 09 76 61 72 | 09 74 70 2c 20 74 71 09 |.X.X.var|.tp, tq.|
|00003d90| 3a 20 74 72 65 65 70 74 | 72 3b 0a 58 0a 58 09 62 |: treept|r;.X.X.b|
|00003da0| 65 67 69 6e 0a 58 09 09 | 6e 65 78 74 73 79 6d 62 |egin.X..|nextsymb|
|00003db0| 6f 6c 28 5b 73 6c 62 72 | 61 63 6b 5d 29 3b 0a 58 |ol([slbr|ack]);.X|
|00003dc0| 09 09 74 70 20 3a 3d 20 | 6d 6b 6e 6f 64 65 28 6e |..tp := |mknode(n|
|00003dd0| 63 6f 6e 66 61 72 72 29 | 3b 0a 58 09 09 74 70 5e |confarr)|;.X..tp^|
|00003de0| 2e 74 63 75 69 64 20 3a | 3d 20 6d 6b 76 61 72 69 |.tcuid :|= mkvari|
|00003df0| 61 62 6c 65 28 27 53 27 | 29 3b 0a 58 09 09 74 70 |able('S'|);.X..tp|
|00003e00| 5e 2e 74 63 69 6e 64 78 | 20 3a 3d 20 70 63 6f 6e |^.tcindx| := pcon|
|00003e10| 66 73 75 62 3b 09 28 2a | 20 70 61 72 73 65 20 73 |fsub;.(*| parse s|
|00003e20| 75 62 72 61 6e 67 65 20 | 2e 2e 2e 09 2a 29 0a 58 |ubrange |....*).X|
|00003e30| 09 09 6e 65 78 74 73 79 | 6d 62 6f 6c 28 5b 73 69 |..nextsy|mbol([si|
|00003e40| 64 5d 29 3b 0a 58 09 09 | 74 70 5e 2e 74 69 6e 64 |d]);.X..|tp^.tind|
|00003e50| 74 79 70 20 3a 3d 20 6f | 6c 64 69 64 28 63 75 72 |typ := o|ldid(cur|
|00003e60| 72 73 79 6d 2e 76 69 64 | 2c 20 6c 69 64 65 6e 74 |rsym.vid|, lident|
|00003e70| 69 66 69 65 72 29 3b 0a | 58 09 09 6e 65 78 74 73 |ifier);.|X..nexts|
|00003e80| 79 6d 62 6f 6c 28 5b 73 | 73 65 6d 69 63 2c 20 73 |ymbol([s|semic, s|
|00003e90| 72 62 72 61 63 6b 5d 29 | 3b 0a 58 09 09 74 71 20 |rbrack])|;.X..tq |
|00003ea0| 3a 3d 20 74 70 3b 0a 58 | 09 09 77 68 69 6c 65 20 |:= tp;.X|..while |
|00003eb0| 63 75 72 72 73 79 6d 2e | 73 74 20 3d 20 73 73 65 |currsym.|st = sse|
|00003ec0| 6d 69 63 20 64 6f 0a 58 | 09 09 20 20 20 20 62 65 |mic do.X|.. be|
|00003ed0| 67 69 6e 0a 58 09 09 09 | 65 72 72 6f 72 28 65 63 |gin.X...|error(ec|
|00003ee0| 6f 6e 66 63 6f 6e 66 29 | 3b 20 28 2a 20 77 68 61 |onfconf)|; (* wha|
|00003ef0| 74 20 73 69 7a 65 20 64 | 6f 65 73 20 74 70 20 68 |t size d|oes tp h|
|00003f00| 61 76 65 20 2a 29 0a 58 | 0a 58 09 09 09 28 2a 20 |ave *).X|.X...(* |
|00003f10| 65 78 70 61 6e 64 3a 20 | 20 20 61 72 72 61 79 20 |expand: | array |
|00003f20| 5b 20 41 20 3b 20 42 20 | 5d 20 6f 66 20 58 0a 58 |[ A ; B |] of X.X|
|00003f30| 09 09 09 20 20 20 74 6f | 3a 20 20 20 61 72 72 61 |... to|: arra|
|00003f40| 79 20 5b 20 41 20 5d 20 | 6f 66 20 61 72 72 61 79 |y [ A ] |of array|
|00003f50| 20 5b 20 42 20 5d 20 6f | 66 20 58 20 20 20 2a 29 | [ B ] o|f X *)|
|00003f60| 0a 58 09 09 09 74 71 5e | 2e 74 63 65 6c 65 6d 20 |.X...tq^|.tcelem |
|00003f70| 3a 3d 20 6d 6b 6e 6f 64 | 65 28 6e 63 6f 6e 66 61 |:= mknod|e(nconfa|
|00003f80| 72 72 29 3b 0a 58 09 09 | 09 74 71 20 3a 3d 20 74 |rr);.X..|.tq := t|
|00003f90| 71 5e 2e 74 63 65 6c 65 | 6d 3b 0a 58 09 09 09 74 |q^.tcele|m;.X...t|
|00003fa0| 71 5e 2e 74 63 69 6e 64 | 78 20 3a 3d 20 70 63 6f |q^.tcind|x := pco|
|00003fb0| 6e 66 73 75 62 3b 09 28 | 2a 20 2e 2e 2e 20 61 67 |nfsub;.(|* ... ag|
|00003fc0| 61 69 6e 09 2a 29 0a 58 | 09 09 09 6e 65 78 74 73 |ain.*).X|...nexts|
|00003fd0| 79 6d 62 6f 6c 28 5b 73 | 69 64 5d 29 3b 0a 58 09 |ymbol([s|id]);.X.|
|00003fe0| 09 09 74 71 5e 2e 74 69 | 6e 64 74 79 70 20 3a 3d |..tq^.ti|ndtyp :=|
|00003ff0| 20 6f 6c 64 69 64 28 63 | 75 72 72 73 79 6d 2e 76 | oldid(c|urrsym.v|
|00004000| 69 64 2c 20 6c 69 64 65 | 6e 74 69 66 69 65 72 29 |id, lide|ntifier)|
|00004010| 3b 0a 58 09 09 09 6e 65 | 78 74 73 79 6d 62 6f 6c |;.X...ne|xtsymbol|
|00004020| 28 5b 73 73 65 6d 69 63 | 2c 20 73 72 62 72 61 63 |([ssemic|, srbrac|
|00004030| 6b 5d 29 0a 58 09 09 20 | 20 20 20 65 6e 64 3b 0a |k]).X.. | end;.|
|00004040| 58 09 09 6e 65 78 74 73 | 79 6d 62 6f 6c 28 5b 73 |X..nexts|ymbol([s|
|00004050| 6f 66 5d 29 3b 0a 58 09 | 09 6e 65 78 74 73 79 6d |of]);.X.|.nextsym|
|00004060| 62 6f 6c 28 5b 73 69 64 | 2c 20 73 61 72 72 61 79 |bol([sid|, sarray|
|00004070| 5d 29 3b 0a 58 09 09 63 | 61 73 65 20 63 75 72 72 |]);.X..c|ase curr|
|00004080| 73 79 6d 2e 73 74 20 6f | 66 0a 58 09 09 20 20 73 |sym.st o|f.X.. s|
|00004090| 69 64 3a 0a 58 09 09 09 | 74 71 5e 2e 74 63 65 6c |id:.X...|tq^.tcel|
|000040a0| 65 6d 20 3a 3d 20 6f 6c | 64 69 64 28 63 75 72 72 |em := ol|did(curr|
|000040b0| 73 79 6d 2e 76 69 64 2c | 20 6c 69 64 65 6e 74 69 |sym.vid,| lidenti|
|000040c0| 66 69 65 72 29 3b 0a 58 | 09 09 20 20 73 61 72 72 |fier);.X|.. sarr|
|000040d0| 61 79 3a 20 0a 58 09 09 | 20 20 20 20 62 65 67 69 |ay: .X..| begi|
|000040e0| 6e 0a 58 09 09 09 65 72 | 72 6f 72 28 65 63 6f 6e |n.X...er|ror(econ|
|000040f0| 66 63 6f 6e 66 29 3b 20 | 28 2a 20 77 68 61 74 20 |fconf); |(* what |
|00004100| 73 69 7a 65 20 64 6f 65 | 73 20 74 70 20 68 61 76 |size doe|s tp hav|
|00004110| 65 20 2a 29 0a 58 0a 58 | 09 09 09 74 71 5e 2e 74 |e *).X.X|...tq^.t|
|00004120| 63 65 6c 65 6d 20 3a 3d | 20 70 63 6f 6e 66 6f 72 |celem :=| pconfor|
|00004130| 6d 0a 58 09 09 20 20 20 | 20 65 6e 64 3b 0a 58 09 |m.X.. | end;.X.|
|00004140| 09 65 6e 64 3b 28 2a 20 | 63 61 73 65 20 2a 29 0a |.end;(* |case *).|
|00004150| 58 09 09 70 63 6f 6e 66 | 6f 72 6d 20 3a 3d 20 74 |X..pconf|orm := t|
|00004160| 70 0a 58 09 65 6e 64 3b | 0a 58 0a 58 09 28 2a 09 |p.X.end;|.X.X.(*.|
|00004170| 50 61 72 73 65 20 73 75 | 62 72 6f 75 74 69 6e 65 |Parse su|broutine|
|00004180| 20 70 61 72 61 6d 65 74 | 65 72 20 6c 69 73 74 2e | paramet|er list.|
|00004190| 09 09 09 2a 29 0a 58 09 | 66 75 6e 63 74 69 6f 6e |...*).X.|function|
|000041a0| 20 70 73 75 62 70 61 72 | 3b 0a 58 0a 58 09 76 61 | psubpar|;.X.X.va|
|000041b0| 72 09 74 70 2c 0a 58 09 | 09 74 71 09 3a 20 74 72 |r.tp,.X.|.tq.: tr|
|000041c0| 65 65 70 74 72 3b 0a 58 | 09 09 6e 74 09 3a 20 74 |eeptr;.X|..nt.: t|
|000041d0| 72 65 65 74 79 70 3b 0a | 58 0a 58 09 62 65 67 69 |reetyp;.|X.X.begi|
|000041e0| 6e 0a 58 09 09 74 71 20 | 3a 3d 20 6e 69 6c 3b 0a |n.X..tq |:= nil;.|
|000041f0| 58 09 09 72 65 70 65 61 | 74 0a 58 09 09 09 6e 65 |X..repea|t.X...ne|
|00004200| 78 74 73 79 6d 62 6f 6c | 28 5b 73 69 64 2c 20 73 |xtsymbol|([sid, s|
|00004210| 76 61 72 2c 20 73 66 75 | 6e 63 2c 20 73 70 72 6f |var, sfu|nc, spro|
|00004220| 63 5d 29 3b 0a 58 09 09 | 09 63 61 73 65 20 63 75 |c]);.X..|.case cu|
|00004230| 72 72 73 79 6d 2e 73 74 | 20 6f 66 0a 58 09 09 09 |rrsym.st| of.X...|
|00004240| 20 20 73 69 64 3a 0a 58 | 09 09 09 09 6e 74 20 3a | sid:.X|....nt :|
|00004250| 3d 20 6e 76 61 6c 70 61 | 72 3b 0a 58 09 09 09 20 |= nvalpa|r;.X... |
|00004260| 20 73 76 61 72 3a 0a 58 | 09 09 09 09 6e 74 20 3a | svar:.X|....nt :|
|00004270| 3d 20 6e 76 61 72 70 61 | 72 3b 0a 58 09 09 09 20 |= nvarpa|r;.X... |
|00004280| 20 73 66 75 6e 63 3a 0a | 58 09 09 09 09 6e 74 20 | sfunc:.|X....nt |
|00004290| 3a 3d 20 6e 70 61 72 66 | 75 6e 63 3b 0a 58 09 09 |:= nparf|unc;.X..|
|000042a0| 09 20 20 73 70 72 6f 63 | 3a 0a 58 09 09 09 09 6e |. sproc|:.X....n|
|000042b0| 74 20 3a 3d 20 6e 70 61 | 72 70 72 6f 63 3b 0a 58 |t := npa|rproc;.X|
|000042c0| 09 09 09 65 6e 64 3b 0a | 58 09 09 09 69 66 20 6e |...end;.|X...if n|
|000042d0| 74 20 3c 3e 20 6e 76 61 | 6c 70 61 72 20 74 68 65 |t <> nva|lpar the|
|000042e0| 6e 0a 58 09 09 09 09 6e | 65 78 74 73 79 6d 62 6f |n.X....n|extsymbo|
|000042f0| 6c 28 5b 73 69 64 5d 29 | 3b 0a 58 09 09 09 69 66 |l([sid])|;.X...if|
|00004300| 20 74 71 20 3d 20 6e 69 | 6c 20 74 68 65 6e 0a 58 | tq = ni|l then.X|
|00004310| 09 09 09 20 20 20 20 62 | 65 67 69 6e 0a 58 09 09 |... b|egin.X..|
|00004320| 09 09 74 71 20 3a 3d 20 | 6d 6b 6e 6f 64 65 28 6e |..tq := |mknode(n|
|00004330| 74 29 3b 0a 58 09 09 09 | 09 74 70 20 3a 3d 20 74 |t);.X...|.tp := t|
|00004340| 71 0a 58 09 09 09 20 20 | 20 20 65 6e 64 0a 58 09 |q.X... | end.X.|
|00004350| 09 09 65 6c 73 65 20 62 | 65 67 69 6e 0a 58 09 09 |..else b|egin.X..|
|00004360| 09 09 74 71 5e 2e 74 6e | 65 78 74 20 3a 3d 20 6d |..tq^.tn|ext := m|
|00004370| 6b 6e 6f 64 65 28 6e 74 | 29 3b 0a 58 09 09 09 09 |knode(nt|);.X....|
|00004380| 74 71 20 3a 3d 20 74 71 | 5e 2e 74 6e 65 78 74 0a |tq := tq|^.tnext.|
|00004390| 58 09 09 09 20 20 20 20 | 20 65 6e 64 3b 0a 58 09 |X... | end;.X.|
|000043a0| 09 09 63 61 73 65 20 6e | 74 20 6f 66 0a 58 09 09 |..case n|t of.X..|
|000043b0| 09 20 20 6e 76 61 72 70 | 61 72 2c 0a 58 09 09 09 |. nvarp|ar,.X...|
|000043c0| 20 20 6e 76 61 6c 70 61 | 72 3a 0a 58 09 09 09 20 | nvalpa|r:.X... |
|000043d0| 20 20 20 62 65 67 69 6e | 0a 58 09 09 09 09 74 71 | begin|.X....tq|
|000043e0| 5e 2e 74 69 64 6c 20 3a | 3d 20 70 69 64 6c 69 73 |^.tidl :|= pidlis|
|000043f0| 74 28 6c 69 64 65 6e 74 | 69 66 69 65 72 29 3b 0a |t(lident|ifier);.|
|00004400| 58 09 09 09 09 74 71 5e | 2e 74 61 74 74 72 20 3a |X....tq^|.tattr :|
|00004410| 3d 20 61 6e 6f 6e 65 3b | 0a 58 09 09 09 09 63 68 |= anone;|.X....ch|
|00004420| 65 63 6b 73 79 6d 62 6f | 6c 28 5b 73 63 6f 6c 6f |ecksymbo|l([scolo|
|00004430| 6e 5d 29 3b 0a 58 09 09 | 09 09 69 66 20 6e 74 20 |n]);.X..|..if nt |
|00004440| 3d 20 6e 76 61 6c 70 61 | 72 20 74 68 65 6e 0a 58 |= nvalpa|r then.X|
|00004450| 09 09 09 09 09 6e 65 78 | 74 73 79 6d 62 6f 6c 28 |.....nex|tsymbol(|
|00004460| 5b 73 69 64 5d 29 0a 58 | 09 09 09 09 65 6c 73 65 |[sid]).X|....else|
|00004470| 0a 58 09 09 09 09 09 6e | 65 78 74 73 79 6d 62 6f |.X.....n|extsymbo|
|00004480| 6c 28 5b 73 69 64 2c 20 | 73 61 72 72 61 79 5d 29 |l([sid, |sarray])|
|00004490| 3b 0a 58 09 09 09 09 63 | 61 73 65 20 63 75 72 72 |;.X....c|ase curr|
|000044a0| 73 79 6d 2e 73 74 20 6f | 66 0a 58 09 09 09 09 20 |sym.st o|f.X.... |
|000044b0| 20 73 69 64 3a 0a 58 09 | 09 09 09 09 74 71 5e 2e | sid:.X.|....tq^.|
|000044c0| 74 62 69 6e 64 20 3a 3d | 0a 58 09 09 09 09 09 09 |tbind :=|.X......|
|000044d0| 6f 6c 64 69 64 28 63 75 | 72 72 73 79 6d 2e 76 69 |oldid(cu|rrsym.vi|
|000044e0| 64 2c 20 6c 69 64 65 6e | 74 69 66 69 65 72 29 3b |d, liden|tifier);|
|000044f0| 0a 58 09 09 09 09 20 20 | 73 61 72 72 61 79 3a 0a |.X.... |sarray:.|
|00004500| 58 09 09 09 09 09 74 71 | 5e 2e 74 62 69 6e 64 20 |X.....tq|^.tbind |
|00004510| 3a 3d 20 70 63 6f 6e 66 | 6f 72 6d 0a 58 09 09 09 |:= pconf|orm.X...|
|00004520| 09 65 6e 64 3b 28 2a 20 | 63 61 73 65 20 2a 29 0a |.end;(* |case *).|
|00004530| 58 09 09 09 09 6e 65 78 | 74 73 79 6d 62 6f 6c 28 |X....nex|tsymbol(|
|00004540| 5b 73 72 70 61 72 2c 20 | 73 73 65 6d 69 63 5d 29 |[srpar, |ssemic])|
|00004550| 0a 58 09 09 09 20 20 20 | 20 65 6e 64 3b 0a 58 09 |.X... | end;.X.|
|00004560| 09 09 20 20 6e 70 61 72 | 70 72 6f 63 3a 0a 58 09 |.. npar|proc:.X.|
|00004570| 09 09 20 20 20 20 62 65 | 67 69 6e 0a 58 09 09 09 |.. be|gin.X...|
|00004580| 09 74 71 5e 2e 74 70 61 | 72 69 64 20 3a 3d 20 6e |.tq^.tpa|rid := n|
|00004590| 65 77 69 64 28 63 75 72 | 72 73 79 6d 2e 76 69 64 |ewid(cur|rsym.vid|
|000045a0| 29 3b 0a 58 09 09 09 09 | 6e 65 78 74 73 79 6d 62 |);.X....|nextsymb|
|000045b0| 6f 6c 28 5b 73 73 65 6d | 69 63 2c 20 73 6c 70 61 |ol([ssem|ic, slpa|
|000045c0| 72 2c 20 73 72 70 61 72 | 5d 29 3b 0a 58 09 09 09 |r, srpar|]);.X...|
|000045d0| 09 69 66 20 63 75 72 72 | 73 79 6d 2e 73 74 20 3d |.if curr|sym.st =|
|000045e0| 20 73 6c 70 61 72 20 74 | 68 65 6e 0a 58 09 09 09 | slpar t|hen.X...|
|000045f0| 09 20 20 20 20 62 65 67 | 69 6e 0a 58 09 09 09 09 |. beg|in.X....|
|00004600| 09 65 6e 74 65 72 73 63 | 6f 70 65 28 6e 69 6c 29 |.entersc|ope(nil)|
|00004610| 3b 0a 58 09 09 09 09 09 | 74 71 5e 2e 74 70 61 72 |;.X.....|tq^.tpar|
|00004620| 70 61 72 6d 20 3a 3d 20 | 70 73 75 62 70 61 72 3b |parm := |psubpar;|
|00004630| 0a 58 09 09 09 09 09 6e | 65 78 74 73 79 6d 62 6f |.X.....n|extsymbo|
|00004640| 6c 28 5b 73 73 65 6d 69 | 63 2c 20 73 72 70 61 72 |l([ssemi|c, srpar|
|00004650| 5d 29 3b 0a 58 09 09 09 | 09 09 6c 65 61 76 65 73 |]);.X...|..leaves|
|00004660| 63 6f 70 65 0a 58 09 09 | 09 09 20 20 20 20 65 6e |cope.X..|.. en|
|00004670| 64 0a 58 09 09 09 09 65 | 6c 73 65 0a 58 09 09 09 |d.X....e|lse.X...|
|00004680| 09 09 74 71 5e 2e 74 70 | 61 72 70 61 72 6d 20 3a |..tq^.tp|arparm :|
|00004690| 3d 20 6e 69 6c 3b 0a 58 | 09 09 09 09 74 71 5e 2e |= nil;.X|....tq^.|
|000046a0| 74 70 61 72 74 79 70 20 | 3a 3d 20 6e 69 6c 0a 58 |tpartyp |:= nil.X|
|000046b0| 09 09 09 20 20 20 20 65 | 6e 64 3b 0a 58 09 09 09 |... e|nd;.X...|
|000046c0| 20 20 6e 70 61 72 66 75 | 6e 63 3a 0a 58 09 09 09 | nparfu|nc:.X...|
|000046d0| 20 20 20 20 62 65 67 69 | 6e 0a 58 09 09 09 09 74 | begi|n.X....t|
|000046e0| 71 5e 2e 74 70 61 72 69 | 64 20 3a 3d 20 6e 65 77 |q^.tpari|d := new|
|000046f0| 69 64 28 63 75 72 72 73 | 79 6d 2e 76 69 64 29 3b |id(currs|ym.vid);|
|00004700| 0a 58 09 09 09 09 6e 65 | 78 74 73 79 6d 62 6f 6c |.X....ne|xtsymbol|
|00004710| 28 5b 73 63 6f 6c 6f 6e | 2c 20 73 6c 70 61 72 5d |([scolon|, slpar]|
|00004720| 29 3b 0a 58 09 09 09 09 | 69 66 20 63 75 72 72 73 |);.X....|if currs|
|00004730| 79 6d 2e 73 74 20 3d 20 | 73 6c 70 61 72 20 74 68 |ym.st = |slpar th|
|00004740| 65 6e 0a 58 09 09 09 09 | 20 20 20 20 62 65 67 69 |en.X....| begi|
|00004750| 6e 0a 58 09 09 09 09 09 | 65 6e 74 65 72 73 63 6f |n.X.....|entersco|
|00004760| 70 65 28 6e 69 6c 29 3b | 0a 58 09 09 09 09 09 74 |pe(nil);|.X.....t|
|00004770| 71 5e 2e 74 70 61 72 70 | 61 72 6d 20 3a 3d 20 70 |q^.tparp|arm := p|
|00004780| 73 75 62 70 61 72 3b 0a | 58 09 09 09 09 09 6e 65 |subpar;.|X.....ne|
|00004790| 78 74 73 79 6d 62 6f 6c | 28 5b 73 63 6f 6c 6f 6e |xtsymbol|([scolon|
|000047a0| 5d 29 3b 0a 58 09 09 09 | 09 09 6c 65 61 76 65 73 |]);.X...|..leaves|
|000047b0| 63 6f 70 65 0a 58 09 09 | 09 09 20 20 20 20 65 6e |cope.X..|.. en|
|000047c0| 64 0a 58 09 09 09 09 65 | 6c 73 65 0a 58 09 09 09 |d.X....e|lse.X...|
|000047d0| 09 09 74 71 5e 2e 74 70 | 61 72 70 61 72 6d 20 3a |..tq^.tp|arparm :|
|000047e0| 3d 20 6e 69 6c 3b 0a 58 | 09 09 09 09 6e 65 78 74 |= nil;.X|....next|
|000047f0| 73 79 6d 62 6f 6c 28 5b | 73 69 64 5d 29 3b 0a 58 |symbol([|sid]);.X|
|00004800| 09 09 09 09 74 71 5e 2e | 74 70 61 72 74 79 70 20 |....tq^.|tpartyp |
|00004810| 3a 3d 20 6f 6c 64 69 64 | 28 63 75 72 72 73 79 6d |:= oldid|(currsym|
|00004820| 2e 76 69 64 2c 20 6c 69 | 64 65 6e 74 69 66 69 65 |.vid, li|dentifie|
|00004830| 72 29 3b 0a 58 09 09 09 | 09 6e 65 78 74 73 79 6d |r);.X...|.nextsym|
|00004840| 62 6f 6c 28 5b 73 72 70 | 61 72 2c 20 73 73 65 6d |bol([srp|ar, ssem|
|00004850| 69 63 5d 29 0a 58 09 09 | 09 20 20 20 20 65 6e 64 |ic]).X..|. end|
|00004860| 0a 58 09 09 09 65 6e 64 | 20 28 2a 20 63 61 73 65 |.X...end| (* case|
|00004870| 20 2a 29 0a 58 09 09 75 | 6e 74 69 6c 09 63 75 72 | *).X..u|ntil.cur|
|00004880| 72 73 79 6d 2e 73 74 20 | 3d 20 73 72 70 61 72 3b |rsym.st |= srpar;|
|00004890| 0a 58 09 09 70 73 75 62 | 70 61 72 20 3a 3d 20 74 |.X..psub|par := t|
|000048a0| 70 0a 58 09 65 6e 64 3b | 0a 58 0a 58 09 28 2a 09 |p.X.end;|.X.X.(*.|
|000048b0| 50 61 72 73 65 20 61 20 | 28 70 6f 73 73 69 62 6c |Parse a |(possibl|
|000048c0| 79 20 6c 61 62 65 6c 65 | 64 29 20 73 74 61 74 65 |y labele|d) state|
|000048d0| 6d 65 6e 74 2e 09 09 09 | 2a 29 0a 58 09 66 75 6e |ment....|*).X.fun|
|000048e0| 63 74 69 6f 6e 20 70 6c | 61 62 73 74 6d 74 3b 0a |ction pl|abstmt;.|
|000048f0| 58 0a 58 09 76 61 72 09 | 74 70 09 3a 20 74 72 65 |X.X.var.|tp.: tre|
|00004900| 65 70 74 72 3b 0a 58 0a | 58 09 62 65 67 69 6e 0a |eptr;.X.|X.begin.|
|00004910| 58 09 09 6e 65 78 74 73 | 79 6d 62 6f 6c 28 5b 73 |X..nexts|ymbol([s|
|00004920| 69 64 2c 20 73 69 6e 74 | 65 67 65 72 2c 20 73 69 |id, sint|eger, si|
|00004930| 66 2c 20 73 77 68 69 6c | 65 2c 20 73 72 65 70 65 |f, swhil|e, srepe|
|00004940| 61 74 2c 20 73 66 6f 72 | 2c 20 73 63 61 73 65 2c |at, sfor|, scase,|
|00004950| 0a 58 09 09 09 09 20 20 | 73 77 69 74 68 2c 20 73 |.X.... |swith, s|
|00004960| 62 65 67 69 6e 2c 20 73 | 67 6f 74 6f 2c 0a 58 09 |begin, s|goto,.X.|
|00004970| 09 09 09 09 73 65 6c 73 | 65 2c 20 73 73 65 6d 69 |....sels|e, ssemi|
|00004980| 63 2c 20 73 65 6e 64 2c | 20 73 75 6e 74 69 6c 5d |c, send,| suntil]|
|00004990| 29 3b 0a 58 09 09 69 66 | 20 63 75 72 72 73 79 6d |);.X..if| currsym|
|000049a0| 2e 73 74 20 3d 20 73 69 | 6e 74 65 67 65 72 20 74 |.st = si|nteger t|
|000049b0| 68 65 6e 0a 58 09 09 20 | 20 20 20 62 65 67 69 6e |hen.X.. | begin|
|000049c0| 0a 58 09 09 09 74 70 20 | 3a 3d 20 6d 6b 6e 6f 64 |.X...tp |:= mknod|
|000049d0| 65 28 6e 6c 61 62 73 74 | 6d 74 29 3b 0a 58 09 09 |e(nlabst|mt);.X..|
|000049e0| 09 74 70 5e 2e 74 6c 61 | 62 6e 6f 20 3a 3d 20 6f |.tp^.tla|bno := o|
|000049f0| 6c 64 6c 62 6c 28 74 72 | 75 65 29 3b 0a 58 09 09 |ldlbl(tr|ue);.X..|
|00004a00| 09 6e 65 78 74 73 79 6d | 62 6f 6c 28 5b 73 63 6f |.nextsym|bol([sco|
|00004a10| 6c 6f 6e 5d 29 3b 0a 58 | 09 09 09 6e 65 78 74 73 |lon]);.X|...nexts|
|00004a20| 79 6d 62 6f 6c 28 5b 73 | 69 64 2c 20 73 69 66 2c |ymbol([s|id, sif,|
|00004a30| 20 73 77 68 69 6c 65 2c | 20 73 72 65 70 65 61 74 | swhile,| srepeat|
|00004a40| 2c 20 73 66 6f 72 2c 20 | 73 63 61 73 65 2c 0a 58 |, sfor, |scase,.X|
|00004a50| 09 09 09 09 20 20 73 77 | 69 74 68 2c 20 73 62 65 |.... sw|ith, sbe|
|00004a60| 67 69 6e 2c 20 73 67 6f | 74 6f 2c 0a 58 09 09 09 |gin, sgo|to,.X...|
|00004a70| 09 09 73 65 6c 73 65 2c | 20 73 73 65 6d 69 63 2c |..selse,| ssemic,|
|00004a80| 20 73 65 6e 64 2c 20 73 | 75 6e 74 69 6c 5d 29 3b | send, s|until]);|
|00004a90| 0a 58 09 09 09 74 70 5e | 2e 74 73 74 6d 74 20 3a |.X...tp^|.tstmt :|
|00004aa0| 3d 20 70 73 74 6d 74 0a | 58 09 09 20 20 20 20 65 |= pstmt.|X.. e|
|00004ab0| 6e 64 0a 58 09 09 65 6c | 73 65 0a 58 09 09 09 74 |nd.X..el|se.X...t|
|00004ac0| 70 20 3a 3d 20 70 73 74 | 6d 74 3b 0a 58 09 09 70 |p := pst|mt;.X..p|
|00004ad0| 6c 61 62 73 74 6d 74 20 | 3a 3d 20 74 70 0a 58 09 |labstmt |:= tp.X.|
|00004ae0| 65 6e 64 3b 0a 58 0a 58 | 09 28 2a 09 50 61 72 73 |end;.X.X|.(*.Pars|
|00004af0| 65 20 61 6e 20 75 6e 6c | 61 62 65 6c 65 64 20 73 |e an unl|abeled s|
|00004b00| 74 61 74 65 6d 65 6e 74 | 2e 09 09 09 09 2a 29 0a |tatement|.....*).|
|00004b10| 58 09 66 75 6e 63 74 69 | 6f 6e 20 70 73 74 6d 74 |X.functi|on pstmt|
|00004b20| 3b 0a 58 0a 58 09 76 61 | 72 09 74 70 09 3a 20 74 |;.X.X.va|r.tp.: t|
|00004b30| 72 65 65 70 74 72 3b 0a | 58 0a 58 09 62 65 67 69 |reeptr;.|X.X.begi|
|00004b40| 6e 0a 58 09 09 63 61 73 | 65 20 63 75 72 72 73 79 |n.X..cas|e currsy|
|00004b50| 6d 2e 73 74 20 6f 66 0a | 58 09 09 20 20 73 69 64 |m.st of.|X.. sid|
|00004b60| 3a 0a 58 09 09 09 74 70 | 20 3a 3d 20 70 73 69 6d |:.X...tp| := psim|
|00004b70| 70 6c 65 3b 0a 58 09 09 | 20 20 73 69 66 3a 0a 58 |ple;.X..| sif:.X|
|00004b80| 09 09 09 74 70 20 3a 3d | 20 70 69 66 3b 0a 58 09 |...tp :=| pif;.X.|
|00004b90| 09 20 20 73 77 68 69 6c | 65 3a 0a 58 09 09 09 74 |. swhil|e:.X...t|
|00004ba0| 70 20 3a 3d 20 70 77 68 | 69 6c 65 3b 0a 58 09 09 |p := pwh|ile;.X..|
|00004bb0| 20 20 73 72 65 70 65 61 | 74 3a 0a 58 09 09 09 74 | srepea|t:.X...t|
|00004bc0| 70 20 3a 3d 20 70 72 65 | 70 65 61 74 3b 0a 58 09 |p := pre|peat;.X.|
|00004bd0| 09 20 20 73 66 6f 72 3a | 0a 58 09 09 09 74 70 20 |. sfor:|.X...tp |
|00004be0| 3a 3d 20 70 66 6f 72 3b | 0a 58 09 09 20 20 73 63 |:= pfor;|.X.. sc|
|00004bf0| 61 73 65 3a 0a 58 09 09 | 09 74 70 20 3a 3d 20 70 |ase:.X..|.tp := p|
|00004c00| 63 61 73 65 3b 0a 58 09 | 09 20 20 73 77 69 74 68 |case;.X.|. swith|
|00004c10| 3a 0a 58 09 09 09 74 70 | 20 3a 3d 20 70 77 69 74 |:.X...tp| := pwit|
|00004c20| 68 3b 0a 58 09 09 20 20 | 73 62 65 67 69 6e 3a 0a |h;.X.. |sbegin:.|
|00004c30| 58 09 09 09 74 70 20 3a | 3d 20 70 62 65 67 69 6e |X...tp :|= pbegin|
|00004c40| 28 74 72 75 65 29 3b 0a | 58 09 09 20 20 73 67 6f |(true);.|X.. sgo|
|00004c50| 74 6f 3a 0a 58 09 09 09 | 74 70 20 3a 3d 20 70 67 |to:.X...|tp := pg|
|00004c60| 6f 74 6f 3b 0a 58 09 09 | 20 20 73 65 6e 64 2c 0a |oto;.X..| send,.|
|00004c70| 58 09 09 20 20 73 65 6c | 73 65 2c 0a 58 09 09 20 |X.. sel|se,.X.. |
|00004c80| 20 73 75 6e 74 69 6c 2c | 0a 58 09 09 20 20 73 73 | suntil,|.X.. ss|
|00004c90| 65 6d 69 63 3a 0a 58 09 | 09 09 74 70 20 3a 3d 20 |emic:.X.|..tp := |
|00004ca0| 6d 6b 6e 6f 64 65 28 6e | 65 6d 70 74 79 29 3b 0a |mknode(n|empty);.|
|00004cb0| 58 09 09 65 6e 64 3b 0a | 58 09 09 70 73 74 6d 74 |X..end;.|X..pstmt|
|00004cc0| 20 3a 3d 20 74 70 0a 58 | 09 65 6e 64 3b 0a 58 0a | := tp.X|.end;.X.|
|00004cd0| 58 09 28 2a 09 50 61 72 | 73 65 20 61 6e 20 61 73 |X.(*.Par|se an as|
|00004ce0| 73 69 67 6e 6d 65 6e 74 | 20 6f 72 20 61 20 70 72 |signment| or a pr|
|00004cf0| 6f 63 65 64 75 72 65 20 | 63 61 6c 6c 2e 09 09 2a |ocedure |call...*|
|00004d00| 29 0a 58 09 66 75 6e 63 | 74 69 6f 6e 20 70 73 69 |).X.func|tion psi|
|00004d10| 6d 70 6c 65 3b 0a 58 0a | 58 09 76 61 72 09 74 71 |mple;.X.|X.var.tq|
|00004d20| 2c 0a 58 09 09 74 70 09 | 3a 20 74 72 65 65 70 74 |,.X..tp.|: treept|
|00004d30| 72 3b 0a 58 0a 58 09 62 | 65 67 69 6e 0a 58 09 09 |r;.X.X.b|egin.X..|
|00004d40| 74 70 20 3a 3d 20 70 76 | 61 72 69 61 62 6c 65 28 |tp := pv|ariable(|
|00004d50| 6f 6c 64 69 64 28 63 75 | 72 72 73 79 6d 2e 76 69 |oldid(cu|rrsym.vi|
|00004d60| 64 2c 20 6c 69 64 65 6e | 74 69 66 69 65 72 29 29 |d, liden|tifier))|
|00004d70| 3b 0a 58 09 09 69 66 20 | 63 75 72 72 73 79 6d 2e |;.X..if |currsym.|
|00004d80| 73 74 20 3d 20 73 61 73 | 73 69 67 6e 20 74 68 65 |st = sas|sign the|
|00004d90| 6e 0a 58 09 09 20 20 20 | 20 62 65 67 69 6e 0a 58 |n.X.. | begin.X|
|00004da0| 09 09 09 74 71 20 3a 3d | 20 6d 6b 6e 6f 64 65 28 |...tq :=| mknode(|
|00004db0| 6e 61 73 73 69 67 6e 29 | 3b 0a 58 09 09 09 74 71 |nassign)|;.X...tq|
|00004dc0| 5e 2e 74 6c 68 73 20 3a | 3d 20 74 70 3b 0a 58 09 |^.tlhs :|= tp;.X.|
|00004dd0| 09 09 74 71 5e 2e 74 72 | 68 73 20 3a 3d 20 70 65 |..tq^.tr|hs := pe|
|00004de0| 78 70 72 28 6e 69 6c 29 | 3b 0a 58 09 09 09 74 70 |xpr(nil)|;.X...tp|
|00004df0| 20 3a 3d 20 74 71 0a 58 | 09 09 20 20 20 20 65 6e | := tq.X|.. en|
|00004e00| 64 3b 0a 58 09 09 70 73 | 69 6d 70 6c 65 20 3a 3d |d;.X..ps|imple :=|
|00004e10| 20 74 70 0a 58 09 65 6e | 64 3b 0a 58 0a 58 09 28 | tp.X.en|d;.X.X.(|
|00004e20| 2a 09 50 61 72 73 65 20 | 61 20 76 61 72 61 62 6c |*.Parse |a varabl|
|00004e30| 65 2d 72 65 66 65 72 65 | 6e 63 65 20 28 6f 72 20 |e-refere|nce (or |
|00004e40| 61 20 73 75 62 72 6f 75 | 74 69 6e 65 2d 63 61 6c |a subrou|tine-cal|
|00004e50| 6c 29 2e 09 2a 29 0a 58 | 09 66 75 6e 63 74 69 6f |l)..*).X|.functio|
|00004e60| 6e 20 70 76 61 72 69 61 | 62 6c 65 3b 0a 58 0a 58 |n pvaria|ble;.X.X|
|00004e70| 09 76 61 72 09 74 70 2c | 0a 58 09 09 74 71 09 3a |.var.tp,|.X..tq.:|
|00004e80| 20 74 72 65 65 70 74 72 | 3b 0a 58 0a 58 09 62 65 | treeptr|;.X.X.be|
|00004e90| 67 69 6e 0a 58 09 09 6e | 65 78 74 73 79 6d 62 6f |gin.X..n|extsymbo|
|00004ea0| 6c 28 5b 73 6c 70 61 72 | 2c 20 73 6c 62 72 61 63 |l([slpar|, slbrac|
|00004eb0| 6b 2c 20 73 64 6f 74 2c | 20 73 61 72 72 6f 77 2c |k, sdot,| sarrow,|
|00004ec0| 0a 58 09 09 09 73 61 73 | 73 69 67 6e 2c 20 73 73 |.X...sas|sign, ss|
|00004ed0| 65 6d 69 63 2c 20 73 63 | 6f 6d 6d 61 2c 20 73 63 |emic, sc|omma, sc|
|00004ee0| 6f 6c 6f 6e 2c 20 73 64 | 6f 74 64 6f 74 2c 0a 58 |olon, sd|otdot,.X|
|00004ef0| 09 09 09 73 70 6c 75 73 | 2c 20 73 6d 69 6e 75 73 |...splus|, sminus|
|00004f00| 2c 20 73 6d 75 6c 2c 20 | 73 64 69 76 2c 20 73 6d |, smul, |sdiv, sm|
|00004f10| 6f 64 2c 20 73 71 75 6f | 74 2c 0a 58 09 09 09 73 |od, squo|t,.X...s|
|00004f20| 61 6e 64 2c 20 73 6f 72 | 2c 20 73 69 6e 6e 2c 20 |and, sor|, sinn, |
|00004f30| 73 72 70 61 72 2c 20 73 | 72 62 72 61 63 6b 2c 0a |srpar, s|rbrack,.|
|00004f40| 58 09 09 09 73 6c 65 2c | 20 73 6c 74 2c 20 73 65 |X...sle,| slt, se|
|00004f50| 71 2c 20 73 67 65 2c 20 | 73 67 74 2c 20 73 6e 65 |q, sge, |sgt, sne|
|00004f60| 2c 0a 58 09 09 09 73 65 | 6e 64 2c 20 73 75 6e 74 |,.X...se|nd, sunt|
|00004f70| 69 6c 2c 20 73 74 68 65 | 6e 2c 20 73 65 6c 73 65 |il, sthe|n, selse|
|00004f80| 2c 20 73 64 6f 2c 20 73 | 64 6f 77 6e 74 6f 2c 20 |, sdo, s|downto, |
|00004f90| 73 74 6f 2c 20 73 6f 66 | 5d 29 3b 0a 58 09 09 69 |sto, sof|]);.X..i|
|00004fa0| 66 20 63 75 72 72 73 79 | 6d 2e 73 74 20 69 6e 20 |f currsy|m.st in |
|00004fb0| 5b 73 6c 70 61 72 2c 20 | 73 6c 62 72 61 63 6b 2c |[slpar, |slbrack,|
|00004fc0| 20 73 64 6f 74 2c 20 73 | 61 72 72 6f 77 5d 20 74 | sdot, s|arrow] t|
|00004fd0| 68 65 6e 0a 58 09 09 20 | 20 20 20 62 65 67 69 6e |hen.X.. | begin|
|00004fe0| 0a 58 09 09 09 63 61 73 | 65 20 63 75 72 72 73 79 |.X...cas|e currsy|
|00004ff0| 6d 2e 73 74 20 6f 66 0a | 58 09 09 09 20 20 73 6c |m.st of.|X... sl|
|00005000| 70 61 72 3a 0a 58 09 09 | 09 20 20 20 20 62 65 67 |par:.X..|. beg|
|00005010| 69 6e 0a 58 09 09 09 09 | 74 70 20 3a 3d 20 6d 6b |in.X....|tp := mk|
|00005020| 6e 6f 64 65 28 6e 63 61 | 6c 6c 29 3b 0a 58 09 09 |node(nca|ll);.X..|
|00005030| 09 09 74 70 5e 2e 74 63 | 61 6c 6c 20 3a 3d 20 76 |..tp^.tc|all := v|
|00005040| 61 72 70 74 72 3b 0a 58 | 09 09 09 09 74 71 20 3a |arptr;.X|....tq :|
|00005050| 3d 20 6e 69 6c 3b 0a 58 | 09 09 09 09 72 65 70 65 |= nil;.X|....repe|
|00005060| 61 74 0a 58 09 09 09 09 | 09 69 66 20 74 71 20 3d |at.X....|.if tq =|
|00005070| 20 6e 69 6c 20 74 68 65 | 6e 0a 58 09 09 09 09 09 | nil the|n.X.....|
|00005080| 20 20 20 20 62 65 67 69 | 6e 0a 58 09 09 09 09 09 | begi|n.X.....|
|00005090| 09 74 71 20 3a 3d 20 70 | 65 78 70 72 28 6e 69 6c |.tq := p|expr(nil|
|000050a0| 29 3b 0a 58 09 09 09 09 | 09 09 74 70 5e 2e 74 61 |);.X....|..tp^.ta|
|000050b0| 70 61 72 6d 20 20 3a 3d | 20 74 71 0a 58 09 09 09 |parm :=| tq.X...|
|000050c0| 09 09 20 20 20 20 65 6e | 64 0a 58 09 09 09 09 09 |.. en|d.X.....|
|000050d0| 65 6c 73 65 20 62 65 67 | 69 6e 0a 58 09 09 09 09 |else beg|in.X....|
|000050e0| 09 09 74 71 5e 2e 74 6e | 65 78 74 20 3a 3d 20 70 |..tq^.tn|ext := p|
|000050f0| 65 78 70 72 28 6e 69 6c | 29 3b 0a 58 09 09 09 09 |expr(nil|);.X....|
|00005100| 09 09 74 71 20 3a 3d 20 | 74 71 5e 2e 74 6e 65 78 |..tq := |tq^.tnex|
|00005110| 74 0a 58 09 09 09 09 09 | 20 20 20 20 20 65 6e 64 |t.X.....| end|
|00005120| 3b 0a 58 09 09 09 09 75 | 6e 74 69 6c 09 63 75 72 |;.X....u|ntil.cur|
|00005130| 72 73 79 6d 2e 73 74 20 | 3d 20 73 72 70 61 72 0a |rsym.st |= srpar.|
|00005140| 58 09 09 09 20 20 20 20 | 65 6e 64 3b 0a 58 09 09 |X... |end;.X..|
|00005150| 09 20 20 73 6c 62 72 61 | 63 6b 3a 0a 58 09 09 09 |. slbra|ck:.X...|
|00005160| 20 20 20 20 62 65 67 69 | 6e 0a 58 09 09 09 09 74 | begi|n.X....t|
|00005170| 71 20 3a 3d 20 76 61 72 | 70 74 72 3b 0a 58 09 09 |q := var|ptr;.X..|
|00005180| 09 09 72 65 70 65 61 74 | 0a 58 09 09 09 09 09 74 |..repeat|.X.....t|
|00005190| 70 20 3a 3d 20 6d 6b 6e | 6f 64 65 28 6e 69 6e 64 |p := mkn|ode(nind|
|000051a0| 65 78 29 3b 0a 58 09 09 | 09 09 09 74 70 5e 2e 74 |ex);.X..|...tp^.t|
|000051b0| 76 61 72 69 61 62 6c 65 | 20 3a 3d 20 74 71 3b 0a |variable| := tq;.|
|000051c0| 58 09 09 09 09 09 74 70 | 5e 2e 74 6f 66 66 73 65 |X.....tp|^.toffse|
|000051d0| 74 20 3a 3d 20 70 65 78 | 70 72 28 6e 69 6c 29 3b |t := pex|pr(nil);|
|000051e0| 0a 58 09 09 09 09 09 74 | 71 20 3a 3d 20 74 70 0a |.X.....t|q := tp.|
|000051f0| 58 09 09 09 09 75 6e 74 | 69 6c 09 63 75 72 72 73 |X....unt|il.currs|
|00005200| 79 6d 2e 73 74 20 3d 20 | 73 72 62 72 61 63 6b 0a |ym.st = |srbrack.|
|00005210| 58 09 09 09 20 20 20 20 | 65 6e 64 3b 0a 58 09 09 |X... |end;.X..|
|00005220| 09 20 20 73 64 6f 74 3a | 0a 58 09 09 09 20 20 20 |. sdot:|.X... |
|00005230| 20 62 65 67 69 6e 0a 58 | 09 09 09 09 74 70 20 3a | begin.X|....tp :|
|00005240| 3d 20 6d 6b 6e 6f 64 65 | 28 6e 73 65 6c 65 63 74 |= mknode|(nselect|
|00005250| 29 3b 0a 58 09 09 09 09 | 74 70 5e 2e 74 72 65 63 |);.X....|tp^.trec|
|00005260| 6f 72 64 20 3a 3d 20 76 | 61 72 70 74 72 3b 0a 58 |ord := v|arptr;.X|
|00005270| 09 09 09 09 6e 65 78 74 | 73 79 6d 62 6f 6c 28 5b |....next|symbol([|
|00005280| 73 69 64 5d 29 3b 0a 58 | 09 09 09 09 74 71 20 3a |sid]);.X|....tq :|
|00005290| 3d 20 74 79 70 65 6f 66 | 28 76 61 72 70 74 72 29 |= typeof|(varptr)|
|000052a0| 3b 0a 58 09 09 09 09 65 | 6e 74 65 72 73 63 6f 70 |;.X....e|nterscop|
|000052b0| 65 28 74 71 5e 2e 74 72 | 73 63 6f 70 65 29 3b 0a |e(tq^.tr|scope);.|
|000052c0| 58 09 09 09 09 74 70 5e | 2e 74 66 69 65 6c 64 20 |X....tp^|.tfield |
|000052d0| 3a 3d 20 6f 6c 64 69 64 | 28 63 75 72 72 73 79 6d |:= oldid|(currsym|
|000052e0| 2e 76 69 64 2c 20 6c 66 | 69 65 6c 64 29 3b 0a 58 |.vid, lf|ield);.X|
|000052f0| 09 09 09 09 6c 65 61 76 | 65 73 63 6f 70 65 0a 58 |....leav|escope.X|
|00005300| 09 09 09 20 20 20 20 65 | 6e 64 3b 0a 58 09 09 09 |... e|nd;.X...|
|00005310| 20 20 73 61 72 72 6f 77 | 3a 0a 58 09 09 09 20 20 | sarrow|:.X... |
|00005320| 20 20 62 65 67 69 6e 0a | 58 09 09 09 09 74 70 20 | begin.|X....tp |
|00005330| 3a 3d 20 6d 6b 6e 6f 64 | 65 28 6e 64 65 72 65 66 |:= mknod|e(nderef|
|00005340| 29 3b 0a 58 09 09 09 09 | 74 70 5e 2e 74 65 78 70 |);.X....|tp^.texp|
|00005350| 73 20 3a 3d 20 76 61 72 | 70 74 72 0a 58 09 09 09 |s := var|ptr.X...|
|00005360| 20 20 20 20 65 6e 64 0a | 58 09 09 09 65 6e 64 3b | end.|X...end;|
|00005370| 28 2a 20 63 61 73 65 20 | 2a 29 0a 58 09 09 09 74 |(* case |*).X...t|
|00005380| 70 20 3a 3d 20 70 76 61 | 72 69 61 62 6c 65 28 74 |p := pva|riable(t|
|00005390| 70 29 0a 58 09 09 20 20 | 20 20 65 6e 64 0a 58 09 |p).X.. | end.X.|
|000053a0| 09 65 6c 73 65 20 62 65 | 67 69 6e 0a 58 09 09 09 |.else be|gin.X...|
|000053b0| 74 70 20 3a 3d 20 76 61 | 72 70 74 72 3b 0a 58 09 |tp := va|rptr;.X.|
|000053c0| 09 09 69 66 20 74 70 5e | 2e 74 74 20 3d 20 6e 69 |..if tp^|.tt = ni|
|000053d0| 64 20 74 68 65 6e 0a 58 | 09 09 09 20 20 20 20 62 |d then.X|... b|
|000053e0| 65 67 69 6e 0a 58 09 09 | 09 09 74 71 20 3a 3d 20 |egin.X..|..tq := |
|000053f0| 69 64 75 70 28 74 70 29 | 3b 0a 58 09 09 09 09 69 |idup(tp)|;.X....i|
|00005400| 66 20 74 71 20 3c 3e 20 | 6e 69 6c 20 74 68 65 6e |f tq <> |nil then|
|00005410| 0a 58 09 09 09 09 09 69 | 66 20 74 71 5e 2e 74 74 |.X.....i|f tq^.tt|
|00005420| 20 69 6e 20 5b 6e 66 75 | 6e 63 2c 20 6e 70 72 6f | in [nfu|nc, npro|
|00005430| 63 2c 0a 58 09 09 09 09 | 09 09 09 6e 70 61 72 70 |c,.X....|...nparp|
|00005440| 72 6f 63 2c 20 6e 70 61 | 72 66 75 6e 63 5d 20 74 |roc, npa|rfunc] t|
|00005450| 68 65 6e 0a 58 09 09 09 | 09 09 20 20 20 20 62 65 |hen.X...|.. be|
|00005460| 67 69 6e 0a 58 09 09 09 | 09 09 09 28 2a 20 73 75 |gin.X...|...(* su|
|00005470| 62 72 6f 75 74 69 6e 65 | 2d 63 61 6c 6c 20 77 69 |broutine|-call wi|
|00005480| 74 68 6f 75 74 0a 58 09 | 09 09 09 09 09 20 20 20 |thout.X.|..... |
|00005490| 70 61 72 61 6d 65 74 65 | 72 73 20 2a 29 0a 58 09 |paramete|rs *).X.|
|000054a0| 09 09 09 09 09 74 70 20 | 3a 3d 20 6d 6b 6e 6f 64 |.....tp |:= mknod|
|000054b0| 65 28 6e 63 61 6c 6c 29 | 3b 0a 58 09 09 09 09 09 |e(ncall)|;.X.....|
|000054c0| 09 74 70 5e 2e 74 63 61 | 6c 6c 20 3a 3d 20 76 61 |.tp^.tca|ll := va|
|000054d0| 72 70 74 72 3b 0a 58 09 | 09 09 09 09 09 74 70 5e |rptr;.X.|.....tp^|
|000054e0| 2e 74 61 70 61 72 6d 20 | 3a 3d 20 6e 69 6c 0a 58 |.taparm |:= nil.X|
|000054f0| 09 09 09 09 09 20 20 20 | 20 65 6e 64 0a 58 09 09 |..... | end.X..|
|00005500| 09 20 20 20 20 65 6e 64 | 0a 58 09 09 20 20 20 20 |. end|.X.. |
|00005510| 20 65 6e 64 3b 0a 58 09 | 09 70 76 61 72 69 61 62 | end;.X.|.pvariab|
|00005520| 6c 65 20 3a 3d 20 74 70 | 0a 58 09 65 6e 64 3b 0a |le := tp|.X.end;.|
|00005530| 58 0a 58 09 28 2a 09 50 | 61 72 73 65 20 61 6e 20 |X.X.(*.P|arse an |
|00005540| 65 78 70 72 65 73 73 69 | 6f 6e 2e 09 09 09 09 09 |expressi|on......|
|00005550| 2a 29 0a 58 09 66 75 6e | 63 74 69 6f 6e 20 70 65 |*).X.fun|ction pe|
|00005560| 78 70 72 3b 0a 58 0a 58 | 09 76 61 72 09 74 70 2c |xpr;.X.X|.var.tp,|
|00005570| 0a 58 09 09 74 71 09 3a | 20 74 72 65 65 70 74 72 |.X..tq.:| treeptr|
|00005580| 3b 0a 58 09 09 6e 74 09 | 3a 20 74 72 65 65 74 79 |;.X..nt.|: treety|
|00005590| 70 3b 0a 58 09 09 6e 65 | 78 74 09 3a 20 62 6f 6f |p;.X..ne|xt.: boo|
|000055a0| 6c 65 61 6e 3b 0a 58 0a | 58 09 09 66 75 6e 63 74 |lean;.X.|X..funct|
|000055b0| 69 6f 6e 20 70 61 64 6a | 75 73 74 28 74 75 2c 20 |ion padj|ust(tu, |
|000055c0| 74 72 20 3a 20 74 72 65 | 65 70 74 72 29 20 3a 20 |tr : tre|eptr) : |
|000055d0| 74 72 65 65 70 74 72 3b | 0a 58 09 09 62 65 67 69 |treeptr;|.X..begi|
|000055e0| 6e 0a 58 09 09 09 69 66 | 20 70 70 72 69 6f 5b 74 |n.X...if| pprio[t|
|000055f0| 75 5e 2e 74 74 5d 20 3e | 3d 20 70 70 72 69 6f 5b |u^.tt] >|= pprio[|
|00005600| 74 72 5e 2e 74 74 5d 20 | 74 68 65 6e 0a 58 09 09 |tr^.tt] |then.X..|
|00005610| 09 20 20 20 20 62 65 67 | 69 6e 0a 58 09 09 09 09 |. beg|in.X....|
|00005620| 69 66 20 74 72 5e 2e 74 | 74 20 69 6e 20 5b 6e 6e |if tr^.t|t in [nn|
|00005630| 6f 74 2c 20 6e 75 6d 69 | 6e 75 73 2c 20 6e 75 70 |ot, numi|nus, nup|
|00005640| 6c 75 73 2c 0a 58 09 09 | 09 09 09 09 09 6e 73 65 |lus,.X..|.....nse|
|00005650| 74 2c 20 6e 64 65 72 65 | 66 5d 20 74 68 65 6e 0a |t, ndere|f] then.|
|00005660| 58 09 09 09 09 09 74 72 | 5e 2e 74 65 78 70 73 20 |X.....tr|^.texps |
|00005670| 3a 3d 20 70 61 64 6a 75 | 73 74 28 74 75 2c 20 74 |:= padju|st(tu, t|
|00005680| 72 5e 2e 74 65 78 70 73 | 29 0a 58 09 09 09 09 65 |r^.texps|).X....e|
|00005690| 6c 73 65 0a 58 09 09 09 | 09 09 74 72 5e 2e 74 65 |lse.X...|..tr^.te|
|000056a0| 78 70 6c 20 3a 3d 20 70 | 61 64 6a 75 73 74 28 74 |xpl := p|adjust(t|
|000056b0| 75 2c 20 74 72 5e 2e 74 | 65 78 70 6c 29 3b 0a 58 |u, tr^.t|expl);.X|
|000056c0| 09 09 09 09 70 61 64 6a | 75 73 74 20 3a 3d 20 74 |....padj|ust := t|
|000056d0| 72 0a 58 09 09 09 20 20 | 20 20 65 6e 64 0a 58 09 |r.X... | end.X.|
|000056e0| 09 09 65 6c 73 65 20 62 | 65 67 69 6e 0a 58 09 09 |..else b|egin.X..|
|000056f0| 09 09 69 66 20 74 75 5e | 2e 74 74 20 69 6e 20 5b |..if tu^|.tt in [|
|00005700| 6e 6e 6f 74 2c 20 6e 75 | 6d 69 6e 75 73 2c 20 6e |nnot, nu|minus, n|
|00005710| 75 70 6c 75 73 2c 0a 58 | 09 09 09 09 09 09 09 6e |uplus,.X|.......n|
|00005720| 73 65 74 2c 20 6e 64 65 | 72 65 66 5d 20 74 68 65 |set, nde|ref] the|
|00005730| 6e 0a 58 09 09 09 09 09 | 74 75 5e 2e 74 65 78 70 |n.X.....|tu^.texp|
|00005740| 73 20 3a 3d 20 74 72 0a | 58 09 09 09 09 65 6c 73 |s := tr.|X....els|
|00005750| 65 0a 58 09 09 09 09 09 | 74 75 5e 2e 74 65 78 70 |e.X.....|tu^.texp|
|00005760| 72 20 3a 3d 20 74 72 3b | 0a 58 09 09 09 09 70 61 |r := tr;|.X....pa|
|00005770| 64 6a 75 73 74 20 3a 3d | 20 74 75 0a 58 09 09 09 |djust :=| tu.X...|
|00005780| 20 20 20 20 20 65 6e 64 | 0a 58 09 09 65 6e 64 3b | end|.X..end;|
|00005790| 0a 58 0a 58 09 62 65 67 | 69 6e 0a 58 09 09 6e 65 |.X.X.beg|in.X..ne|
|000057a0| 78 74 73 79 6d 62 6f 6c | 28 5b 73 69 64 2c 20 73 |xtsymbol|([sid, s|
|000057b0| 63 68 61 72 2c 20 73 69 | 6e 74 65 67 65 72 2c 20 |char, si|nteger, |
|000057c0| 73 72 65 61 6c 2c 20 73 | 73 74 72 69 6e 67 2c 20 |sreal, s|string, |
|000057d0| 73 6e 69 6c 2c 0a 58 09 | 09 09 09 73 70 6c 75 73 |snil,.X.|...splus|
|000057e0| 2c 20 73 6d 69 6e 75 73 | 2c 20 73 6e 6f 74 2c 20 |, sminus|, snot, |
|000057f0| 73 6c 70 61 72 2c 20 73 | 6c 62 72 61 63 6b 2c 20 |slpar, s|lbrack, |
|00005800| 73 72 62 72 61 63 6b 5d | 29 3b 0a 58 09 09 6e 65 |srbrack]|);.X..ne|
|00005810| 78 74 20 3a 3d 20 74 72 | 75 65 3b 0a 58 09 09 63 |xt := tr|ue;.X..c|
|00005820| 61 73 65 20 63 75 72 72 | 73 79 6d 2e 73 74 20 6f |ase curr|sym.st o|
|00005830| 66 0a 58 09 09 20 20 73 | 70 6c 75 73 3a 0a 58 09 |f.X.. s|plus:.X.|
|00005840| 09 20 20 20 20 62 65 67 | 69 6e 0a 58 09 09 09 74 |. beg|in.X...t|
|00005850| 70 20 3a 3d 20 6d 6b 6e | 6f 64 65 28 6e 75 70 6c |p := mkn|ode(nupl|
|00005860| 75 73 29 3b 0a 58 09 09 | 09 74 70 5e 2e 74 65 78 |us);.X..|.tp^.tex|
|00005870| 70 73 20 3a 3d 20 6e 69 | 6c 3b 0a 58 09 09 09 74 |ps := ni|l;.X...t|
|00005880| 70 20 3a 3d 20 70 65 78 | 70 72 28 74 70 29 3b 0a |p := pex|pr(tp);.|
|00005890| 58 09 09 09 6e 65 78 74 | 20 3a 3d 20 66 61 6c 73 |X...next| := fals|
|000058a0| 65 0a 58 09 09 20 20 20 | 20 65 6e 64 3b 0a 58 09 |e.X.. | end;.X.|
|000058b0| 09 20 20 73 6d 69 6e 75 | 73 3a 0a 58 09 09 20 20 |. sminu|s:.X.. |
|000058c0| 20 20 62 65 67 69 6e 0a | 58 09 09 09 74 70 20 3a | begin.|X...tp :|
|000058d0| 3d 20 6d 6b 6e 6f 64 65 | 28 6e 75 6d 69 6e 75 73 |= mknode|(numinus|
|000058e0| 29 3b 0a 58 09 09 09 74 | 70 5e 2e 74 65 78 70 73 |);.X...t|p^.texps|
|000058f0| 20 3a 3d 20 6e 69 6c 3b | 0a 58 09 09 09 74 70 20 | := nil;|.X...tp |
|00005900| 3a 3d 20 70 65 78 70 72 | 28 74 70 29 3b 0a 58 09 |:= pexpr|(tp);.X.|
|00005910| 09 09 6e 65 78 74 20 3a | 3d 20 66 61 6c 73 65 0a |..next :|= false.|
|00005920| 58 09 09 20 20 20 20 65 | 6e 64 3b 0a 58 09 09 20 |X.. e|nd;.X.. |
|00005930| 20 73 6e 6f 74 3a 0a 58 | 09 09 20 20 20 20 62 65 | snot:.X|.. be|
|00005940| 67 69 6e 0a 58 09 09 09 | 74 70 20 3a 3d 20 6d 6b |gin.X...|tp := mk|
|00005950| 6e 6f 64 65 28 6e 6e 6f | 74 29 3b 0a 58 09 09 09 |node(nno|t);.X...|
|00005960| 74 70 5e 2e 74 65 78 70 | 73 20 3a 3d 20 6e 69 6c |tp^.texp|s := nil|
|00005970| 3b 0a 58 09 09 09 74 70 | 20 3a 3d 20 70 65 78 70 |;.X...tp| := pexp|
|00005980| 72 28 74 70 29 3b 0a 58 | 09 09 09 6e 65 78 74 20 |r(tp);.X|...next |
|00005990| 3a 3d 20 66 61 6c 73 65 | 0a 58 09 09 20 20 20 20 |:= false|.X.. |
|000059a0| 65 6e 64 3b 0a 58 09 09 | 20 20 73 63 68 61 72 2c |end;.X..| schar,|
|000059b0| 0a 58 09 09 20 20 73 69 | 6e 74 65 67 65 72 2c 0a |.X.. si|nteger,.|
|000059c0| 58 09 09 20 20 73 72 65 | 61 6c 2c 0a 58 09 09 20 |X.. sre|al,.X.. |
|000059d0| 20 73 73 74 72 69 6e 67 | 3a 0a 58 09 09 09 74 70 | sstring|:.X...tp|
|000059e0| 20 3a 3d 20 6d 6b 6c 69 | 74 3b 0a 58 09 09 20 20 | := mkli|t;.X.. |
|000059f0| 73 6e 69 6c 3a 0a 58 09 | 09 20 20 20 20 62 65 67 |snil:.X.|. beg|
|00005a00| 69 6e 0a 58 09 09 09 75 | 73 65 6e 69 6c 70 20 3a |in.X...u|senilp :|
|00005a10| 3d 20 74 72 75 65 3b 0a | 58 09 09 09 74 70 20 3a |= true;.|X...tp :|
|00005a20| 3d 20 6d 6b 6e 6f 64 65 | 28 6e 6e 69 6c 29 3b 0a |= mknode|(nnil);.|
|00005a30| 58 09 09 20 20 20 20 65 | 6e 64 3b 0a 58 09 09 20 |X.. e|nd;.X.. |
|00005a40| 20 73 69 64 3a 0a 58 09 | 09 20 20 20 20 62 65 67 | sid:.X.|. beg|
|00005a50| 69 6e 0a 58 09 09 09 74 | 70 20 3a 3d 20 70 76 61 |in.X...t|p := pva|
|00005a60| 72 69 61 62 6c 65 28 6f | 6c 64 69 64 28 63 75 72 |riable(o|ldid(cur|
|00005a70| 72 73 79 6d 2e 76 69 64 | 2c 20 6c 69 64 65 6e 74 |rsym.vid|, lident|
|00005a80| 69 66 69 65 72 29 29 3b | 0a 58 09 09 09 6e 65 78 |ifier));|.X...nex|
|00005a90| 74 20 3a 3d 20 66 61 6c | 73 65 0a 58 09 09 20 20 |t := fal|se.X.. |
|00005aa0| 20 20 65 6e 64 3b 0a 58 | 09 09 20 20 73 6c 70 61 | end;.X|.. slpa|
|00005ab0| 72 3a 0a 58 09 09 20 20 | 20 20 62 65 67 69 6e 0a |r:.X.. | begin.|
|00005ac0| 58 09 09 09 74 70 20 3a | 3d 20 6d 6b 6e 6f 64 65 |X...tp :|= mknode|
|00005ad0| 28 6e 75 70 6c 75 73 29 | 3b 0a 58 09 09 09 74 70 |(nuplus)|;.X...tp|
|00005ae0| 5e 2e 74 65 78 70 73 20 | 3a 3d 20 70 65 78 70 72 |^.texps |:= pexpr|
|00005af0| 28 6e 69 6c 29 0a 58 09 | 09 20 20 20 20 65 6e 64 |(nil).X.|. end|
|00005b00| 3b 0a 58 09 09 20 20 73 | 6c 62 72 61 63 6b 3a 0a |;.X.. s|lbrack:.|
|00005b10| 58 09 09 20 20 20 20 62 | 65 67 69 6e 0a 58 09 09 |X.. b|egin.X..|
|00005b20| 09 75 73 65 73 65 74 73 | 20 3a 3d 20 74 72 75 65 |.usesets| := true|
|00005b30| 3b 0a 58 09 09 09 74 70 | 20 3a 3d 20 6d 6b 6e 6f |;.X...tp| := mkno|
|00005b40| 64 65 28 6e 73 65 74 29 | 3b 0a 58 09 09 09 74 70 |de(nset)|;.X...tp|
|00005b50| 5e 2e 74 65 78 70 73 20 | 3a 3d 20 6e 69 6c 3b 0a |^.texps |:= nil;.|
|00005b60| 58 09 09 09 74 71 20 3a | 3d 20 6e 69 6c 3b 0a 58 |X...tq :|= nil;.X|
|00005b70| 09 09 09 72 65 70 65 61 | 74 0a 58 09 09 09 09 69 |...repea|t.X....i|
|00005b80| 66 20 74 71 20 3d 20 6e | 69 6c 20 74 68 65 6e 0a |f tq = n|il then.|
|00005b90| 58 09 09 09 09 20 20 20 | 20 62 65 67 69 6e 0a 58 |X.... | begin.X|
|00005ba0| 09 09 09 09 09 74 71 20 | 3a 3d 20 70 65 78 70 72 |.....tq |:= pexpr|
|00005bb0| 28 6e 69 6c 29 3b 0a 58 | 09 09 09 09 09 74 70 5e |(nil);.X|.....tp^|
|00005bc0| 2e 74 65 78 70 73 20 3a | 3d 20 74 71 0a 58 09 09 |.texps :|= tq.X..|
|00005bd0| 09 09 20 20 20 20 65 6e | 64 0a 58 09 09 09 09 65 |.. en|d.X....e|
|00005be0| 6c 73 65 20 62 65 67 69 | 6e 0a 58 09 09 09 09 09 |lse begi|n.X.....|
|00005bf0| 74 71 5e 2e 74 6e 65 78 | 74 20 3a 3d 20 70 65 78 |tq^.tnex|t := pex|
|00005c00| 70 72 28 6e 69 6c 29 3b | 0a 58 09 09 09 09 09 74 |pr(nil);|.X.....t|
|00005c10| 71 20 3a 3d 20 74 71 5e | 2e 74 6e 65 78 74 0a 58 |q := tq^|.tnext.X|
|00005c20| 09 09 09 09 20 20 20 20 | 20 65 6e 64 0a 58 09 09 |.... | end.X..|
|00005c30| 09 75 6e 74 69 6c 09 63 | 75 72 72 73 79 6d 2e 73 |.until.c|urrsym.s|
|00005c40| 74 20 3d 20 73 72 62 72 | 61 63 6b 3b 0a 58 09 09 |t = srbr|ack;.X..|
|00005c50| 20 20 20 20 65 6e 64 3b | 0a 58 09 09 20 20 73 72 | end;|.X.. sr|
|00005c60| 62 72 61 63 6b 3a 0a 58 | 09 09 20 20 20 20 62 65 |brack:.X|.. be|
|00005c70| 67 69 6e 0a 58 09 09 09 | 74 70 20 3a 3d 20 6d 6b |gin.X...|tp := mk|
|00005c80| 6e 6f 64 65 28 6e 65 6d | 70 74 79 29 3b 0a 58 09 |node(nem|pty);.X.|
|00005c90| 09 09 6e 65 78 74 20 3a | 3d 20 66 61 6c 73 65 0a |..next :|= false.|
|00005ca0| 58 09 09 20 20 20 20 65 | 6e 64 0a 58 09 09 65 6e |X.. e|nd.X..en|
|00005cb0| 64 3b 0a 58 09 09 69 66 | 20 6e 65 78 74 20 74 68 |d;.X..if| next th|
|00005cc0| 65 6e 0a 58 09 09 09 6e | 65 78 74 73 79 6d 62 6f |en.X...n|extsymbo|
|00005cd0| 6c 28 5b 0a 58 09 09 09 | 09 73 63 6f 6c 6f 6e 2c |l([.X...|.scolon,|
|00005ce0| 20 73 73 65 6d 69 63 2c | 20 73 63 6f 6d 6d 61 2c | ssemic,| scomma,|
|00005cf0| 20 73 64 6f 74 64 6f 74 | 2c 20 73 72 70 61 72 2c | sdotdot|, srpar,|
|00005d00| 20 73 72 62 72 61 63 6b | 2c 0a 58 09 09 09 09 73 | srbrack|,.X....s|
|00005d10| 6c 65 2c 20 73 6c 74 2c | 20 73 65 71 2c 20 73 67 |le, slt,| seq, sg|
|00005d20| 65 2c 20 73 67 74 2c 20 | 73 6e 65 2c 0a 58 09 09 |e, sgt, |sne,.X..|
|00005d30| 09 09 73 70 6c 75 73 2c | 20 73 6d 69 6e 75 73 2c |..splus,| sminus,|
|00005d40| 20 73 6d 75 6c 2c 20 73 | 64 69 76 2c 20 73 6d 6f | smul, s|div, smo|
|00005d50| 64 2c 20 73 71 75 6f 74 | 2c 0a 58 09 09 09 09 73 |d, squot|,.X....s|
|00005d60| 61 6e 64 2c 20 73 6f 72 | 2c 20 73 69 6e 6e 2c 0a |and, sor|, sinn,.|
|00005d70| 58 09 09 09 09 73 65 6e | 64 2c 20 73 75 6e 74 69 |X....sen|d, sunti|
|00005d80| 6c 2c 20 73 74 68 65 6e | 2c 20 73 65 6c 73 65 2c |l, sthen|, selse,|
|00005d90| 20 73 64 6f 2c 20 73 64 | 6f 77 6e 74 6f 2c 20 73 | sdo, sd|ownto, s|
|00005da0| 74 6f 2c 0a 58 09 09 09 | 09 73 6f 66 2c 20 73 6c |to,.X...|.sof, sl|
|00005db0| 70 61 72 2c 20 73 6c 62 | 72 61 63 6b 5d 29 3b 0a |par, slb|rack]);.|
|00005dc0| 58 09 09 63 61 73 65 20 | 63 75 72 72 73 79 6d 2e |X..case |currsym.|
|00005dd0| 73 74 20 6f 66 0a 58 09 | 09 20 20 73 64 6f 74 64 |st of.X.|. sdotd|
|00005de0| 6f 74 3a 0a 58 09 09 09 | 6e 74 20 3a 3d 20 6e 72 |ot:.X...|nt := nr|
|00005df0| 61 6e 67 65 3b 0a 58 09 | 09 20 20 73 70 6c 75 73 |ange;.X.|. splus|
|00005e00| 3a 0a 58 09 09 09 6e 74 | 20 3a 3d 20 6e 70 6c 75 |:.X...nt| := nplu|
|00005e10| 73 3b 0a 58 09 09 20 20 | 73 6d 69 6e 75 73 3a 0a |s;.X.. |sminus:.|
|00005e20| 58 09 09 09 6e 74 20 3a | 3d 20 6e 6d 69 6e 75 73 |X...nt :|= nminus|
|00005e30| 3b 0a 58 09 09 20 20 73 | 6d 75 6c 3a 0a 58 09 09 |;.X.. s|mul:.X..|
|00005e40| 09 6e 74 20 3a 3d 20 6e | 6d 75 6c 3b 0a 58 09 09 |.nt := n|mul;.X..|
|00005e50| 20 20 73 64 69 76 3a 0a | 58 09 09 09 6e 74 20 3a | sdiv:.|X...nt :|
|00005e60| 3d 20 6e 64 69 76 3b 0a | 58 09 09 20 20 73 6d 6f |= ndiv;.|X.. smo|
|00005e70| 64 3a 0a 58 09 09 09 6e | 74 20 3a 3d 20 6e 6d 6f |d:.X...n|t := nmo|
|00005e80| 64 3b 0a 58 09 09 20 20 | 73 71 75 6f 74 3a 0a 58 |d;.X.. |squot:.X|
|00005e90| 09 09 20 20 20 20 62 65 | 67 69 6e 0a 58 09 09 09 |.. be|gin.X...|
|00005ea0| 64 65 66 6e 61 6d 73 5b | 64 72 65 61 6c 5d 5e 2e |defnams[|dreal]^.|
|00005eb0| 6c 75 73 65 64 20 3a 3d | 20 74 72 75 65 3b 0a 58 |lused :=| true;.X|
|00005ec0| 09 09 09 6e 74 20 3a 3d | 20 6e 71 75 6f 74 3b 0a |...nt :=| nquot;.|
|00005ed0| 58 09 09 20 20 20 20 65 | 6e 64 3b 0a 58 09 09 20 |X.. e|nd;.X.. |
|00005ee0| 20 73 61 6e 64 3a 0a 58 | 09 09 09 6e 74 20 3a 3d | sand:.X|...nt :=|
|00005ef0| 20 6e 61 6e 64 3b 0a 58 | 09 09 20 20 73 6f 72 3a | nand;.X|.. sor:|
|00005f00| 0a 58 09 09 09 6e 74 20 | 3a 3d 20 6e 6f 72 3b 0a |.X...nt |:= nor;.|
|00005f10| 58 09 09 20 20 73 69 6e | 6e 3a 0a 58 09 09 20 20 |X.. sin|n:.X.. |
|00005f20| 20 20 62 65 67 69 6e 0a | 58 09 09 09 6e 74 20 3a | begin.|X...nt :|
|00005f30| 3d 20 6e 69 6e 3b 0a 58 | 09 09 09 75 73 65 73 65 |= nin;.X|...usese|
|00005f40| 74 73 20 3a 3d 20 74 72 | 75 65 0a 58 09 09 20 20 |ts := tr|ue.X.. |
|00005f50| 20 20 65 6e 64 3b 0a 58 | 09 09 20 20 73 6c 65 3a | end;.X|.. sle:|
|00005f60| 0a 58 09 09 09 6e 74 20 | 3a 3d 20 6e 6c 65 3b 0a |.X...nt |:= nle;.|
|00005f70| 58 09 09 20 20 73 6c 74 | 3a 0a 58 09 09 09 6e 74 |X.. slt|:.X...nt|
|00005f80| 20 3a 3d 20 6e 6c 74 3b | 0a 58 09 09 20 20 73 65 | := nlt;|.X.. se|
|00005f90| 71 3a 0a 58 09 09 09 6e | 74 20 3a 3d 20 6e 65 71 |q:.X...n|t := neq|
|00005fa0| 3b 0a 58 09 09 20 20 73 | 67 65 3a 0a 58 09 09 09 |;.X.. s|ge:.X...|
|00005fb0| 6e 74 20 3a 3d 20 6e 67 | 65 3b 0a 58 09 09 20 20 |nt := ng|e;.X.. |
|00005fc0| 73 67 74 3a 0a 58 09 09 | 09 6e 74 20 3a 3d 20 6e |sgt:.X..|.nt := n|
|00005fd0| 67 74 3b 0a 58 09 09 20 | 20 73 6e 65 3a 0a 58 09 |gt;.X.. | sne:.X.|
|00005fe0| 09 09 6e 74 20 3a 3d 20 | 6e 6e 65 3b 0a 58 09 09 |..nt := |nne;.X..|
|00005ff0| 20 20 73 63 6f 6c 6f 6e | 3a 0a 58 09 09 09 6e 74 | scolon|:.X...nt|
|00006000| 20 3a 3d 20 6e 66 6f 72 | 6d 61 74 3b 0a 58 09 09 | := nfor|mat;.X..|
|00006010| 20 20 73 69 64 2c 20 73 | 63 68 61 72 2c 20 73 69 | sid, s|char, si|
|00006020| 6e 74 65 67 65 72 2c 20 | 73 72 65 61 6c 2c 20 73 |nteger, |sreal, s|
|00006030| 73 74 72 69 6e 67 2c 20 | 73 6e 69 6c 2c 0a 58 09 |string, |snil,.X.|
|00006040| 09 20 20 73 73 65 6d 69 | 63 2c 20 73 63 6f 6d 6d |. ssemi|c, scomm|
|00006050| 61 2c 20 73 6c 70 61 72 | 2c 20 73 6c 62 72 61 63 |a, slpar|, slbrac|
|00006060| 6b 2c 20 73 72 70 61 72 | 2c 20 73 72 62 72 61 63 |k, srpar|, srbrac|
|00006070| 6b 2c 0a 58 09 09 20 20 | 73 65 6e 64 2c 20 73 75 |k,.X.. |send, su|
|00006080| 6e 74 69 6c 2c 20 73 74 | 68 65 6e 2c 20 73 65 6c |ntil, st|hen, sel|
|00006090| 73 65 2c 20 73 64 6f 2c | 20 73 64 6f 77 6e 74 6f |se, sdo,| sdownto|
|000060a0| 2c 20 73 74 6f 2c 20 73 | 6f 66 3a 0a 58 09 09 09 |, sto, s|of:.X...|
|000060b0| 6e 74 20 3a 3d 20 6e 6e | 69 6c 0a 58 09 09 65 6e |nt := nn|il.X..en|
|000060c0| 64 3b 28 2a 20 63 61 73 | 65 20 2a 29 0a 58 09 09 |d;(* cas|e *).X..|
|000060d0| 69 66 20 6e 74 20 69 6e | 20 5b 6e 69 6e 20 2e 2e |if nt in| [nin ..|
|000060e0| 20 6e 6f 72 2c 20 6e 61 | 6e 64 2c 20 6e 6e 6f 74 | nor, na|nd, nnot|
|000060f0| 5d 20 74 68 65 6e 0a 58 | 09 09 09 64 65 66 6e 61 |] then.X|...defna|
|00006100| 6d 73 5b 64 62 6f 6f 6c | 65 61 6e 5d 5e 2e 6c 75 |ms[dbool|ean]^.lu|
|00006110| 73 65 64 20 3a 3d 20 74 | 72 75 65 3b 0a 58 09 09 |sed := t|rue;.X..|
|00006120| 69 66 20 6e 74 20 3c 3e | 20 6e 6e 69 6c 20 74 68 |if nt <>| nnil th|
|00006130| 65 6e 0a 58 09 09 20 20 | 20 20 62 65 67 69 6e 0a |en.X.. | begin.|
|00006140| 58 09 09 09 28 2a 20 62 | 69 6e 61 72 79 20 6f 70 |X...(* b|inary op|
|00006150| 65 72 61 74 6f 72 20 2a | 29 0a 58 09 09 09 74 71 |erator *|).X...tq|
|00006160| 20 3a 3d 20 6d 6b 6e 6f | 64 65 28 6e 74 29 3b 0a | := mkno|de(nt);.|
|00006170| 58 09 09 09 74 71 5e 2e | 74 65 78 70 6c 20 3a 3d |X...tq^.|texpl :=|
|00006180| 20 74 70 3b 0a 58 09 09 | 09 74 71 5e 2e 74 65 78 | tp;.X..|.tq^.tex|
|00006190| 70 72 20 3a 3d 20 6e 69 | 6c 3b 0a 58 09 09 09 74 |pr := ni|l;.X...t|
|000061a0| 70 20 3a 3d 20 70 65 78 | 70 72 28 74 71 29 0a 58 |p := pex|pr(tq).X|
|000061b0| 09 09 20 20 20 20 65 6e | 64 3b 0a 58 0a 58 09 09 |.. en|d;.X.X..|
|000061c0| 28 2a 20 74 68 69 73 20 | 73 74 61 74 65 6d 65 6e |(* this |statemen|
|000061d0| 74 20 79 69 6c 64 73 20 | 70 72 6f 70 65 72 20 6f |t yilds |proper o|
|000061e0| 70 65 72 61 74 6f 72 20 | 70 72 65 63 65 64 65 6e |perator |preceden|
|000061f0| 63 65 20 2a 29 0a 58 09 | 09 69 66 20 74 6e 70 20 |ce *).X.|.if tnp |
|00006200| 3c 3e 20 6e 69 6c 20 74 | 68 65 6e 0a 58 09 09 09 |<> nil t|hen.X...|
|00006210| 74 70 20 3a 3d 20 70 61 | 64 6a 75 73 74 28 74 6e |tp := pa|djust(tn|
|00006220| 70 2c 20 74 70 29 3b 0a | 58 09 09 70 65 78 70 72 |p, tp);.|X..pexpr|
|00006230| 20 3a 3d 20 74 70 0a 58 | 09 65 6e 64 3b 0a 58 0a | := tp.X|.end;.X.|
|00006240| 58 09 28 2a 09 50 61 72 | 73 65 20 61 20 63 61 73 |X.(*.Par|se a cas|
|00006250| 65 2d 73 74 61 74 65 6d | 65 6e 74 2e 09 09 09 09 |e-statem|ent.....|
|00006260| 09 2a 29 0a 58 09 66 75 | 6e 63 74 69 6f 6e 20 70 |.*).X.fu|nction p|
|00006270| 63 61 73 65 3b 0a 58 0a | 58 09 6c 61 62 65 6c 09 |case;.X.|X.label.|
|00006280| 39 39 39 3b 0a 58 0a 58 | 09 76 61 72 09 74 70 2c |999;.X.X|.var.tp,|
|00006290| 0a 58 09 09 74 71 2c 0a | 58 09 09 74 76 09 3a 20 |.X..tq,.|X..tv.: |
|000062a0| 74 72 65 65 70 74 72 3b | 0a 58 0a 58 09 62 65 67 |treeptr;|.X.X.beg|
|000062b0| 69 6e 0a 58 09 09 74 70 | 20 3a 3d 20 6d 6b 6e 6f |in.X..tp| := mkno|
|000062c0| 64 65 28 6e 63 61 73 65 | 29 3b 0a 58 09 09 74 70 |de(ncase|);.X..tp|
|000062d0| 5e 2e 74 63 61 73 78 70 | 20 3a 3d 20 70 65 78 70 |^.tcasxp| := pexp|
|000062e0| 72 28 6e 69 6c 29 3b 0a | 58 09 09 63 68 65 63 6b |r(nil);.|X..check|
|000062f0| 73 79 6d 62 6f 6c 28 5b | 73 6f 66 5d 29 3b 0a 58 |symbol([|sof]);.X|
|00006300| 09 09 74 71 20 3a 3d 20 | 6e 69 6c 3b 0a 58 09 09 |..tq := |nil;.X..|
|00006310| 72 65 70 65 61 74 0a 58 | 09 09 09 69 66 20 74 71 |repeat.X|...if tq|
|00006320| 20 3d 20 6e 69 6c 20 74 | 68 65 6e 0a 58 09 09 09 | = nil t|hen.X...|
|00006330| 20 20 20 20 62 65 67 69 | 6e 0a 58 09 09 09 09 74 | begi|n.X....t|
|00006340| 71 20 3a 3d 20 6d 6b 6e | 6f 64 65 28 6e 63 68 6f |q := mkn|ode(ncho|
|00006350| 69 73 65 29 3b 0a 58 09 | 09 09 09 74 70 5e 2e 74 |ise);.X.|...tp^.t|
|00006360| 63 61 73 6c 73 74 20 3a | 3d 20 74 71 0a 58 09 09 |caslst :|= tq.X..|
|00006370| 09 20 20 20 20 65 6e 64 | 0a 58 09 09 09 65 6c 73 |. end|.X...els|
|00006380| 65 20 62 65 67 69 6e 0a | 58 09 09 09 09 74 71 5e |e begin.|X....tq^|
|00006390| 2e 74 6e 65 78 74 20 3a | 3d 20 6d 6b 6e 6f 64 65 |.tnext :|= mknode|
|000063a0| 28 6e 63 68 6f 69 73 65 | 29 3b 0a 58 09 09 09 09 |(nchoise|);.X....|
|000063b0| 74 71 20 3a 3d 20 74 71 | 5e 2e 74 6e 65 78 74 0a |tq := tq|^.tnext.|
|000063c0| 58 09 09 09 20 20 20 20 | 20 65 6e 64 3b 0a 58 09 |X... | end;.X.|
|000063d0| 09 09 74 76 20 3a 3d 20 | 6e 69 6c 3b 0a 58 09 09 |..tv := |nil;.X..|
|000063e0| 09 72 65 70 65 61 74 0a | 58 09 09 09 09 6e 65 78 |.repeat.|X....nex|
|000063f0| 74 73 79 6d 62 6f 6c 28 | 5b 73 69 64 2c 20 73 69 |tsymbol(|[sid, si|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.