(FILECREATED " 2-Mar-86 18:28:25" ("compiled on " {PHYLUM}PARSER>WINTER86>PARSER.;58) "12-Nov-85 14:59:23" tcompl'd in "INTERLISP-D 7-Feb-86 ..." dated " 7-Feb-86 11:43:05") (FILECREATED " 2-Mar-86 18:27:25" {PHYLUM}PARSER>WINTER86>PARSER.;58 68400 changes to: (FNS CODE.PARSER DISJOINT LLA.READ NONTERMINALP MAKEPARSER CODE.LOOKAHEAD.ALL.TOKENS CODE.LOOKAHEAD.TOKEN CODE.LOOKAHEAD.MATCH CODE.READ.TOKEN CODE.READ.SWITCH CODE.REDUCE.SWITCH INITIALIZE.GRAMMAR AFSMS ROOTPRODUCTION CODE.REDUCE CODE.REDUCE.STACKS LR0FSM DETERMINISTIC CONNECT.AFSMS RABIN.SCOTT LALRKFSM STATES CODE.STATES LLA.REDUCE LLA.LOOKAHEAD LLA RESOLVE LLA.NEXT.STATES SMASH.FSM) (RECORDS PARSERSPEC ALTERNATIVE FSM STATE) (VARS PARSERCOMS) previous date: "28-Feb-86 19:50:02" {PHYLUM}PARSER>WINTER86>PARSER.;44) MAKEPARSER D1 (P 2 M P 1 NAME P 0 GRAMMAR I 1 SORTED? I 0 PARSERSPEC) /@@H H IJ@A J I(53Q SMASH.FSM 46Q PUTD 43Q CODE.PARSER 31Q LALRKFSM 26Q LR0FSM 22Q INITIALIZE.GRAMMAR) (11Q PARSERSPEC 3 PARSERSPEC) () INITIALIZE.GRAMMAR D1 (P 4 SYMBOL P 3 A P 2 P P 1 TABLE P 0 PRODS I 0 G) @@I H*dJJlJdo JgI HRdJCd[K lo K'dLdl o LILgI hggI @(240Q PUTHASH 206Q PUTHASH 171Q ERROR 161Q \TYPEMASK.UFN 137Q ERROR 124Q LENGTH 73Q PUTHASH 61Q ERROR 22Q CLRHASH) (234Q TERMINAL 231Q EOF 202Q TERMINAL 67Q NONTERMINAL 11Q GRAMMAR 3 GRAMMAR) ( 166Q "Improper grammar format" 134Q "Improper grammar format" 56Q "Improper grammar format") LR0FSM D1 (P 1 M P 0 NTSL I 0 G) @ H@ I (32Q RABIN.SCOTT 23Q CONNECT.AFSMS 6 AFSMS 2 BLOCK) (16Q GRAMMAR) () AFSMS D1 (P 14Q A P 13Q S P 5 NAME.TO.START.STATE P 4 START.STATES P 3 FINAL P 2 START P 1 P I 0 G) @ @ `dghhl! H-L\ Oio LgLYMZ``IdNLJ IJM I5d `I_dOO_dOO_dOJK HXm_ huO_e(303Q DETERMINISTIC 262Q AFSM.ADDPROD 174Q PUTHASH 164Q TCONC 123Q SHOULDNT 103Q SHOULDNT 45Q HASHARRAY 6 ROOTPRODUCTION 2 BLOCK) (210Q PRODUCTIONTYPE# 145Q STATETYPE# 137Q STATETYPE# 116Q START 111Q STATE 30Q FINAL 23Q STATETYPE# 12Q GRAMMAR) ( 100Q "Nondeterminism") ROOTPRODUCTION D1 (L (0 G)) g@ghhhhNIL (13Q EOF 6 GRAMMAR 2 START) () AFSM.ADDPROD D1 (P 4 S3 P 3 L P 2 S2 P 1 TOKEN I 2 FIN I 1 S I 0 PROD) A@A B`B @qAH JB@ AJh]h[`K/^INiM`_dOJLI LHX(203Q CONNECT 163Q GENSYM 66Q CONNECT 41Q BLOCK 35Q \ILLEGAL.ARG 21Q \ILLEGAL.ARG) (157Q STATETYPE# 135Q LINK 123Q LINK 114Q LINKTYPE# 76Q STATE 45Q PRODUCTION 27Q STATETYPE# 11Q PRODUCTION 3 STATE) () CONNECT D1 (I 2 TRANSITION.SYMBOL I 1 TO.STATE I 0 FROM.STATE) @@AB HII(21Q ADD.ARC 2 BLOCK) (12Q STATE 6 STATE) () ADD.ARC D1 (P 2 TRANSITION I 2 TRANSITION.SYMBOL I 1 TO.STATE I 0 LINKS) `@HhJ`7AJJ%YBIiHXJAJ@`dBAhdK@NIL (114Q LINKTYPE# 102Q LINK 75Q LINK 51Q LINK 42Q LINK 31Q LINK 21Q LINKTYPE#) () DETERMINISTIC D1 (I 0 S) @`@b@l! (33Q DETERMINISTIC1 30Q HASHARRAY 22Q BLOCK) (12Q FSM 4 FSMTYPE#) () DETERMINISTIC1 D1 (P 2 SYMBOLS P 1 ARC I 1 DONE I 0 S) O@A@iA @!HiYJhIJI IA hHX(105Q DETERMINISTIC1 70Q SINGLETON 12Q PUTHASH) (76Q LINK 63Q LINK 50Q LINK 36Q LINK 16Q STATE) () CONNECT.AFSMS D1 (P 2 S P 0 START I 1 SYMBOL.TABLE I 0 NTSL) h@ @dYIH @ dJdhAH @AH @go `@KdLdA(117Q SHOULDNT 73Q CONNECTED 60Q CONNECT.AFSMS1 41Q STATES 30Q PUTHASH 6 HASHARRAY 3 LENGTH) (123Q FSMTYPE# 106Q START 101Q STATE 21Q STATE) ( 114Q "Start state in wrong place") CONNECT.AFSMS1 D1 (P 5 S2 P 4 TRANSITION2 P 3 AFSM P 2 SYMBOL P 1 TRANSITION I 3 START I 2 SYMBOL.TABLE I 1 PATH I 0 S) b@1HhYZB AJAJ #@J@!BIIiHXJAJ g(126Q DREMOVE 45Q SINGLETON 2 BLOCK) (133Q DISCONNECTED 121Q LINK 114Q LINK 71Q LINK 60Q STATE 53Q STATE 40Q LINK 31Q LINKTYPE# 6 STATE) () NONTERMINALP D1 (L (1 SYMBOL.TABLE 0 SYM)) @AgNIL (5 NONTERMINAL) () TERMINALP D1 (L (1 SYMBOL.TABLE 0 SYM)) @Ag@hNIL (5 TERMINAL) () LALRKFSM D1 (P 4 S P 2 S P 1 SYMBOL.TABLE P 0 STATES I 0 FSM) @ @H HPdJI dgJI JI /dg(dg!dgJgoo @ Kho @\I gLiK[(202Q STATETYPE 172Q SHOULDNT 151Q STATES 137Q SHOULDNT 60Q RESOLVE 52Q PRINT.INADEQUATE 36Q STATETYPE 20Q BUILD.BackLinks 3 STATES) (205Q INADEQUATE 121Q FINAL 114Q STATE 104Q LOOKAHEAD 75Q REDUCE 66Q READ 42Q INADEQUATE 7 FSM) ( 167Q "Inadequate states remaining" 134Q "Queer state type" 127Q "Null state type") BUILD.BackLinks D1 (P 2 L P 1 S2 P 0 S1 I 0 STATES) :@1d!HdZdYHJ hg(45Q CONNECT.BACK) (67Q BACKLINKED 40Q LINK 25Q LINK 13Q STATE) () CONNECT.BACK D1 (I 2 TRANSITION.SYMBOL I 1 TO.STATE I 0 FROM.STATE) @@AB g(21Q ADD.ARC 2 BLOCK) (26Q CONNECTED-BACKWARDS 12Q STATE 6 STATE) () STATETYPE D1 (P 2 TYPE P 1 L I 1 SYMBOL.TABLE I 0 S) @!HJY JJgbgZ_I`$JgJgJdggZ83gZ0IA %JgJgZgJggZHX(200Q SHOULDNT 134Q TERMINALP 23Q LOOKAHEADP) (173Q INADEQUATE 166Q INADEQUATE 160Q REDUCE 152Q READ 142Q READ 126Q LINK 117Q REDUCE 107Q INADEQUATE 101Q INADEQUATE 72Q REDUCE 64Q READ 55Q PRODUCTIONTYPE# 47Q LINK 40Q LOOKAHEAD 32Q LOOKAHEAD 3 STATE) () RESOLVE D1 (P 11Q SYMS P 10Q LLA P 7 DEST P 6 SYMBOL P 5 LINK P 4 EXTRA.STATE P 3 LOOK P 0 LOOKAHEAD I 1 SYMBOL.TABLE I 0 S) l @A HaJg[]M_K_`dI\ON Od @LO L@@ON JZ(144Q DISCONNECT 120Q CONNECT 100Q CONNECT 63Q GENSYM 4 BUILD.LOOKAHEAD.SETS) (131Q STATE 57Q STATETYPE# 41Q LINK 32Q LINK 22Q RESOLVED) () PRINT.INADEQUATE D1 (P 2 THING P 1 SYM P 0 L I 1 SYMBOL.TABLE I 0 S) o @ o h @idHYA o I BI`?o I o IdJ o h h(211Q TERPRI 200Q PRIN1 170Q PRIN1 146Q PRIN1 136Q PRIN1 124Q PRIN1 102Q PRIN1 75Q PRIN1 65Q TERMINALP 35Q TERPRI 30Q PRIN1 20Q PRIN1 6 PRIN1) (153Q PRODUCTION 131Q PRODUCTION 112Q PRODUCTIONTYPE# 56Q LINK 41Q STATE 13Q STATE) ( 175Q " " 143Q " -> " 121Q " Reduce: " 72Q " Read: " 25Q ":" 3 "Adding lookahead to resolve conflict in state ") BUILD.LOOKAHEAD.SETS D1 (P 6 L P 1 LLAS P 0 K I 1 SYMBOL.TABLE I 0 S) qko H o @ h @AJ KY /I^A NH@hNA L Mh\JZM&HkԸ(125Q LLA 111Q NONTERMINALP 72Q DISJOINT 46Q TERPRI 41Q PRIN1 27Q PRIN1 17Q PRIN1 12Q PRIN1) (103Q LINK 53Q STATE 34Q STATE) ( 24Q "-level lookahead from state " 7 " ") DISJOINT D1 (P 4 L2 P 2 L1 P 1 L I 0 LLASET) 0@AHYiI[hhJL LiKI(40Q INTERSECTION) NIL () LLA D1 (I 4 ALREADY I 3 SYMBOL.TABLE I 2 LINK I 1 PATH I 0 K) K@jhhB@ABCD BC @ABCD B`@ABCD B (110Q \ILLEGAL.ARG 103Q LLA.REDUCE 55Q LLA.READ 43Q TERMINALP 30Q LLA.LOOKAHEAD) (70Q PRODUCTIONTYPE# 62Q LINK 35Q LINK 13Q LINK) () LLA.LOOKAHEAD D1 (P 4 NEXT.LOOKAHEAD P 3 L P 0 NEXT.STATE I 4 ALREADY I 3 SYMBOL.TABLE I 2 LINK I 1 PATH I 0 K) BBH!I JLd [C J@AKCD  IY(72Q \NCONC2 67Q LLA 54Q NONTERMINALP 40Q INTERSECTION) (46Q LINK 15Q STATE 3 LINK) () LLA.READ D1 (P 12Q LOOK P 11Q NEXT.LOOKAHEAD P 10Q L P 5 NEXT.STATE I 4 ALREADY I 3 SYMBOL.TABLE I 2 LINK I 1 PATH I 0 K) Bg'@Ak\HgJ KhZLk԰K&IhBM!NO Od _C AO0@kMAOCD !d BO IHhZH&J _N^(236Q \NCONC2 207Q COPY 165Q LLA 140Q NONTERMINALP 123Q INTERSECTION) (200Q LINK 132Q LINK 76Q STATE 64Q LINK 30Q EOF 10Q EOF 3 LINK) () LLA.REDUCE D1 (P 15Q LOOK P 14Q L P 11Q TARGET P 10Q S P 4 SHORTENED.PATH P 3 BACKUP P 2 RHS P 1 LHS P 0 PRODUCTION I 4 ALREADY I 3 SYMBOL.TABLE I 2 LINK I 1 PATH I 0 K) B!HHAJ AJ l 0K7dOI  OdDh! O+O]NM_^O Od  ^M_C O@OOLOCOD  _O_(250Q \NCONC2 245Q LLA 216Q NONTERMINALP 175Q LAST 171Q INTERSECTION 100Q REDUCE.TARGET 54Q FNTH 46Q LENGTH 36Q BACKUP 33Q REVERSE) (210Q LINK 117Q STATE 23Q PRODUCTION 14Q PRODUCTION 3 LINK) () BACKUP D1 (P 12Q PREV P 10Q STATES P 7 S P 3 STATE.SET I 1 SYMBOL.PATH I 0 STATE.PATH) 0@d IHhZH&Jb@d!AK!NKAbHh@bAbYA@IIiHX_h\h O O[N^]AMiL_OOOh _O_K(306Q \NCONC2 115Q SHOULDNT 12Q LOOKAHEAD.SOURCE) (246Q LINK 216Q LINK 202Q STATE 155Q LINK 137Q LINK 76Q STATE) () LOOKAHEAD.SOURCE D1 (L (0 S)) @d`@NIL (21Q STATE 12Q STATETYPE# 4 STATE) () REDUCE.TARGET D1 (L (1 NONTERMINAL 0 STATE)) -@H hAIIiHXNIL (34Q LINK 21Q LINK 3 STATE) () LOOKAHEADP D1 (L (0 L)) @`NIL (17Q STATETYPE# 11Q STATE 3 LINK) () OLD.LLA D1 (P 21Q OLD.LLA P 20Q L P 15Q TARGET P 14Q S P 10Q SHORTENED.PATH P 7 BACKUP P 6 LHS P 5 RHS P 4 PRODUCTION P 3 NEXT.LINK P 0 NEXT.STATE I 5 ALREADY I 4 SYMBOL.TABLE I 3 FIRST.LOOKAHEAD.SYMBOLS I 2 LINK I 1 PATH I 0 K) j@d3 j@ B`BD B Cdd @kC B`c@kBhBCBH!IJ[D J@kHAKCDE  IYB!LLAM AM l 0 O;d ON  OdEh!O4O_OO__OO"d  _O_ D O@OOOO CDOE  _O_(536Q \NCONC2 533Q OLD.LLA 502Q NONTERMINALP 457Q LAST 453Q INTERSECTION 353Q REDUCE.TARGET 326Q FNTH 320Q LENGTH 310Q BACKUP 305Q REVERSE 243Q \NCONC2 240Q OLD.LLA 216Q NONTERMINALP 72Q \ILLEGAL.ARG 61Q LENGTH 47Q \ILLEGAL.ARG 42Q TERMINALP 13Q \ILLEGAL.ARG) (474Q LINK 372Q STATE 275Q PRODUCTION 266Q PRODUCTION 255Q LINK 210Q LINK 164Q STATE 152Q LINK 133Q LINK 120Q LINK 105Q PRODUCTIONTYPE# 77Q LINK 34Q LINK 26Q PRODUCTIONTYPE# 20Q LINK) () SMASH.FSM D1 (I 0 M) @ dh@(3 STATES) (11Q STATE) () PPL D1 (P 0 I I 0 L) dl j o @`@ @ o @dk H o h @(140Q TERPRI 133Q PRIN1 117Q PRIN1 105Q SPACES 64Q PRIN1 54Q PRIN1 42Q PPP 15Q PRIN1 5 TAB) (112Q STATE 70Q LINK 47Q LINK 35Q LINK 27Q PRODUCTIONTYPE# 21Q LINK) ( 130Q ")" 61Q ";" 12Q "(") PPM D1 (I 0 M) @ g d @(27Q TERPRI 17Q PPS 11Q SORT 3 STATES) (6 STATE.ORDER) () PPP D1 (P 0 TOKEN I 0 P) 2@ o @do H @(51Q PRIN1 44Q PRIN1 20Q PRIN1 10Q PRIN1) (24Q PRODUCTION 3 PRODUCTION) ( 41Q " " 15Q " ->") PPS D1 (P 1 L I 0 S) c@ @H1hl o h @-o @Y IiHXd @(132Q PPL 111Q LOOKAHEADP 73Q PRIN1 53Q TERPRI 46Q PRIN1 36Q TAB 10Q PRIN1) (100Q STATE 60Q STATE 14Q STATE 3 STATE) ( 70Q " Out: " 43Q "Lookahead") STATES D1 (P 5 S1 P 1 STATES P 0 DONE I 0 S) Vl! hh@d`1-0@dMIH ZK J\[L [J@IH I(120Q STATES1 105Q LAST 60Q STATES1 7 HASHARRAY 2 BLOCK) (30Q FSM 23Q FSMTYPE#) () STATES1 D1 (P 1 S2 P 0 ARC I 2 DONE I 1 STATES I 0 S) <@B6A@ @iB @dHdYAB hh(55Q STATES1 20Q PUTHASH 11Q TCONC) (42Q LINK 25Q STATE) () STATE.ORDER D1 (P 1 S2-NAME P 0 S1-NAME I 1 S2 I 0 S1) 4@AHgiIghHgIgHI (61Q ALPHORDER) (51Q FINAL 42Q FINAL 32Q START 22Q START 11Q STATE 3 STATE) () CODE.PARSER D1 (I 2 SORTED? I 1 PARSERSPEC I 0 M) ggghgdgAhggA hhgA hhgAgghhhgggghAggghhggh@AB h(215Q CODE.STATES) (204Q START 201Q GO 167Q START 164Q QUOTE 161Q CONTROLSTACK 154Q PARSERSPEC 140Q RHS 135Q LHS 132Q CLASS 127Q TOKEN 113Q STATE 110Q CAR 103Q PARSERSPEC 77Q LOOKAHEAD 65Q PARSERSPEC 61Q USERSTACK 47Q PARSERSPEC 43Q CONTROLSTACK 40Q PROG 26Q PARSERSPEC 22Q Parser 16Q * 10Q STATE 5 EXPECTED 2 LAMBDA) () CODE.STATES D1 (P 3 SYMBOL.TABLE P 2 STATE I 2 SORTED? I 1 SPEC I 0 M) sB@ g @ !HIZgHI@JJK dgJKA dgJA gJKA  HX(153Q \NCONC2 146Q SHOULDNT 142Q CODE.LOOKAHEAD 126Q CODE.REDUCE 110Q CODE.READ 73Q STATETYPE 20Q STATES 13Q SORT 5 STATES) (132Q LOOKAHEAD 116Q REDUCE 77Q READ 64Q STATE 53Q FSM 43Q FINAL 36Q STATE 10Q STATE.ORDER) () CODE.LOOKAHEAD D1 (I 2 PARSERSPEC I 1 SYMBOL.TABLE I 0 STATE) ggh@AB @AB h(24Q CODE.LOOKAHEAD.SWITCH 16Q CODE.LOOKAHEAD.ALL.TOKENS) (5 Lookahead 2 *) () CODE.LOOKAHEAD.ALL.TOKENS D1 (P 16Q L P 7 N P 5 NSYMS P 4 LOOKAHEAD I 2 PARSERSPEC I 1 SYMBOL.TABLE I 0 STATE)  @1H!IL MkQggB0L4dJ KhZYHXK&ZdIHhZH&Jg hggggMk2 ONTB@L!d_O _O Oh_O&_Og _OOh__Ok_O&_OhgggggBgghhh(266Q CODE.LOOKAHEAD.TOKEN 224Q FNTH 150Q CODE.LOOKAHEAD.TOKEN 26Q LENGTH) (371Q TOKEN 366Q LOOKAHEAD 361Q PARSERSPEC 355Q do 352Q CLASS 347Q in 344Q TOKEN 341Q for 263Q TEMP.LOOKAHEAD 171Q LIST 166Q CLASS 163Q SETQ 160Q PROG1 145Q LOOKAHEAD 67Q LINK 60Q LINK 44Q CLASS 41Q SETQ 3 STATE) () CODE.LOOKAHEAD.TOKEN D1 (L (2 QUEUE 1 EXPECTED 0 PARSERSPEC)) ggAddi3 gAhhgg@ghg@ghg@ggghhhhh@Bgh@gghhNIL (173Q EXPECTED.OWN 170Q TOKEN 163Q PARSERSPEC 153Q TOKEN 145Q PARSERSPEC 115Q STATE 112Q CDR 107Q EXPECTED.OWN 102Q PARSERSPEC 76Q else 70Q LOOKAHEAD 63Q PARSERSPEC 57Q then 51Q LOOKAHEAD 44Q PARSERSPEC 40Q if 35Q TOKEN 23Q QUOTE 5 EXPECTED.OWN 2 LET*) () CODE.LOOKAHEAD.SWITCHA0001 D1 (L (1 L2 0 L1)) A@jHIAjHIgIkԹHXgIkԹHXNIL (64Q EOF 45Q EOF 23Q LINK 3 LINK) () CODE.LOOKAHEAD.SWITCH D1 (P 4 L I 2 PARSERSPEC I 1 SYMBOL.TABLE I 0 STATE) hg@ g AHIighhh \*LB gLhhJ KhZHXK&(76Q CODE.LOOKAHEAD.MATCH 50Q \NCONC2 21Q SORT 13Q COPY) (113Q STATE 105Q LINK 101Q GO 70Q LINK 57Q LINK 36Q PARSE.ERROR 16Q CODE.LOOKAHEAD.SWITCHA0001 6 STATE 2 COND) () CODE.LOOKAHEAD.MATCH D1 (P 7 LPLEN P 4 PATH I 1 PARSERSPEC I 0 LOOKAHEAD.PATH) @1H?I!@ L OdM_Mk=1.)) (RPLACA PTR (CDAR PTR) ))))) (DATATYPE PRODUCTION (LHS (* an atom, the name of the nonterminal) RHS (* a list of atoms, the right hand side of this rule) AUGMENT (* name of a semantic action to be performed on reducing to this rule) )) (DATATYPE FSM (START (* Start state of the state machine) SymbolTable (* a hashtable mapping symbols onto {terminal, nonterminal}))) (DATATYPE STATE (NAME (* name of this state; an atom) OUT (* transitions from this state; a list of LINKs) BackLinks (* how you could have got to this state)) NAME _ (GENSYM)) (DATATYPE LINK (SYM (* thing to read or reduction rule for this transition. Either an ATOM or a PRODUCTION) ST (* list of states to which this transition brings you. One element if deterministic))) (/DECLAREDATATYPE (QUOTE PRODUCTION) (QUOTE (POINTER POINTER POINTER)) (QUOTE ((PRODUCTION 0 POINTER) (PRODUCTION 2 POINTER) (PRODUCTION 4 POINTER))) (QUOTE 6)) (/DECLAREDATATYPE (QUOTE FSM) (QUOTE (POINTER POINTER)) (QUOTE ((FSM 0 POINTER) (FSM 2 POINTER))) ( QUOTE 4)) (/DECLAREDATATYPE (QUOTE STATE) (QUOTE (POINTER POINTER POINTER)) (QUOTE ((STATE 0 POINTER) (STATE 2 POINTER) (STATE 4 POINTER))) (QUOTE 6)) (/DECLAREDATATYPE (QUOTE LINK) (QUOTE (POINTER POINTER)) (QUOTE ((LINK 0 POINTER) (LINK 2 POINTER))) ( QUOTE 4)) (PUTPROPS PARSER COPYRIGHT ("Xerox Corporation" 1983 1984 1986)) NIL