> " This file contains the major general codde generators. These include variable access functions (LVAL, SETG etc.), FSUBRs (COND, AND, REPEAT) and a few assorted others." " Main generator, dispatches to specific code generators. " > > .TEMP> " Generate a sequence of nodes flushing all values except the ladt." ) (SINPROG <>) (INCODE-GEN <>) "AUX" K (WSET <>)) #DECL ((K L) (LAST) NODE) ) NX W) #DECL ((N) (ND) NODE) >> > ,CALL-CODE> >> 2> <==? > `ENDIF>> > > > )> >> )>) ( FIX>> > ,DONT-FLUSH-ME> )>) ( ,CALL-CODE> >> 2> <==? > `ENDIF>> ) (ELSE >)>> .L> .WHERE> " The main code generation entry (called from CDRIVE). Sets up initial stack model, calls to generate code for the bindings and generates code for the function's body." ) CD (NO-KILL ()) (KILL-LIST ()) (ATAG ) (RTAG ) (CODE-START .EXTRA-CODE) (CODE-PTR .CODE-START) (EVERY-TEMP ()) ARGS-NEXT TMPS TMPS-NEXT (STK 0) (FREE-TEMPS ()) (ALL-TEMPS-LIST ()) TMP-DEST SPECD BNDTMP STKTMP (STK-CHARS7 0) (STK-CHARS8 0)) #DECL ((STK-CHARS7 STK-CHARS8 STK) (STKTMP) (BASEF) (KILL-LIST NO-KILL CODE-START CODE-PTR TMPS-NEXT ARGS-NEXT EVERY-TEMP ALL-TEMPS-LIST) (TMPS) (K) (ATAG RTAG) ATOM (TMP-DEST) (SPECD) (FREE-TEMPS) >) > FRAME> >> >>>> )> <> T>> ,NO-DATUM>) (ELSE >)> .CD> >>)> )> > )> > > )> ) ( )> ) ( >) ( > > )> FCN-ATOM>> .CODE-START> " Generate code for setting up and binding agruments." ) BNDTMP "AUX" (BST ) (NPRUNE T) (LARG <>) (ANY-ARG <>) (ANY-SPEC <>) (OPTS? <>) (OL ()) T-NAME (TUP? <>)) #DECL ((NOD) NODE (BST B) (NPRUNE) (INAME) (BASEF) NODE (TMPS-NEXT OL) LIST (T-NAME) ) ) (ELSE ,ARGL-TUPLE> >)> )>> .BST>> > 1>> ()> .TUP? !.OL>)> T >> > > > ,ARGL-OPT> ,ARGL-QOPT> >> ,QUOTE-CODE> <==? .NT ,LVAL-CODE>>> ,POP-STACK>) (ELSE )> > >)>)>> .BST> ,FUNCTION-CODE> )>)> ) TMP (A? ) (O? )) #DECL ((SYM) SYMTAB (TMP) TEMP (BS) ) > >) (ELSE >)>)> > )> )> TEMP>> T >>)> > )> > )> > ,TEMP-TYPE ANY) (ELSE )>> ATOM>)>>)> )> > >> > >> )> >> )> )>> .BST> )> > )> > " Generate \"BIND\" binding code." >> > ) (ELSE > >)> T> " Do code generation for normal arguments." > >)> T> " Initialized optional argument binder." >> ,QUOTE-CODE> >> >)>> " Uninitialized optional argument binder." )> T> " Create a binding for either intitialized or unitialized optional." ) (DEF ) DV TMP (SPEC ) BLBL) #DECL ((STK) FIX (SYM) SYMTAB (BASEF DVAL) NODE (GIVE DEF) ATOM) .SPEC> > )> .GIVE> >)> <>>)> )> > > >> )> T> " Do a binding for a named activation." > > ) ( >> > >)> T> " Bind an \"AUX\" variable." ) "AUX" (TMP ) TY PT INIT (NOD )) #DECL ((SYM) SYMTAB (NOD) NODE (STK) FIX) >> > FIX> <==? .PT WORD> <==? .PT LIST>> >>) (ELSE >)> >> > ) ( <==? ,QUOTE-CODE>> .TY] ADECL>) (ELSE )> >)>) (ELSE .TY] ADECL>>)> >)> T> " Do a binding for an uninitialized \"AUX\" " >) (> T) () (ELSE ,TEMP-ALLOC <>>> <>)>> " Do a \"TUPLE\" binding." ) TMP2) #DECL ((SYM) SYMTAB (STK) FIX) >)> T> " Dispatch table for binding generation code." )) #DECL ((SYM) SYMTAB (COD) FIX) ) (,ARGL-IAUX ) (,ARGL-AUX ) (,ARGL-TUPLE ) (,ARGL-ARGS ) (,ARGL-QIOPT ) (,ARGL-IOPT ) (,ARGL-QOPT ) (,ARGL-OPT ) (,ARGL-CALL ) (,ARGL-BIND ) (,ARGL-QUOTE ) (,ARGL-ARG )>> " Appliacation of a form could still be an NTH." ) TY) #DECL ((NOD) NODE) >>> FIX> > ,ALL-REST-CODE> <==? ,NTH-CODE>> <1 .K>)>)> ) (.TY ) (ELSE .NOD>)>> " Generate a call to EVAL for uncompilable FORM." >)> >> .WHERE> " Generate code for LIST/VECTOR etc. evaluation." > ) SEGTYP (SEGLABEL ) (INAME ) SEGTMP COUNTMP RES X (SEGCALLED <>) (STACK? > NODE> ,STACK-CODE> ,CHTYPE-CODE> > NODE> <==? ,STACK-CODE>>>>) (<==? .INAME TUPLE>)>)) #DECL ((GT) (NOD) NODE (ARGS) (I) FIX (SEGCALLED SEGLABEL COUNTMP) (STK) FIX) ,SEGMENT-CODE> 0) (ELSE 1)>> .ARGS>> )> >> ,SEGMENT-CODE> > >> > )> >> .SEGTMP>> >> LIST> > <==? .SEGTYP LIST>> > >) ( )> >) ( > > .SEGLABEL> >) (.SEGCALLED >)>) (ELSE ,POP-STACK>)> >> )>)> >) ( )> .COUNTMP) (ELSE .I)> .WHERE .STACK?>) (<==? .INAME LIST> .COUNTMP) (ELSE .I)> .WHERE>) (<==? .INAME UVECTOR> .COUNTMP) (ELSE .I)> .WHERE .STACK?>) (<==? .INAME TUPLE> .COUNTMP) (ELSE .I)> .WHERE>) (ELSE )> 1> > >)>>)> > ) (ELSE >>)> >) (ELSE .I) (ELSE <* .I 2>)> 2>>)>)>)> .WHERE> "Generate code for a call to a SUBR." > NODE> <==? ,SEGMENT-CODE> >> MULTI> >> .WHERE .COUNTMP .SEGLABEL>) (ELSE .WHERE <> <>>)>> " Compile call to a SUBR that doesn't compile or PUSHJ." ) RES (SUBR ) (SEGCALLED <>) X (SLNT 0) (STACK? > NODE> ,STACK-CODE> ,CHTYPE-CODE> > NODE> <==? ,STACK-CODE>>>>)>)) #DECL ((I) FIX (OBJ) (UNK) (N) NODE (SEGCALLED SEGLABEL COUNTMP) ) ,SEGMENT-CODE> > 0) (ELSE <==? ,QUOTE-CODE>> STRING>>>>) (ELSE >)> 1)>> .OBJ>> > >) (ELSE )>)> ,SEGMENT-CODE> > >> >> )> >> .SEGTMP>> > MULTI>> > > .SEGLABEL>) (.SEGCALLED )> >) (ELSE )>> .OBJ> >)>)> >>) ( >)> .COUNTMP) (ELSE .I)> .W .PARENT-COUNT .PARENT-LABEL>) (ELSE .COUNTMP) (ELSE .I)> .W .STACK? .SLNT>)> .W> " " ) "AUX" (TG2 ) TMP) TYPE VALUE LENGTH) ( VALUE)>) (<==? .SEGTYP LIST> VALUE) ( VALUE)>) (ELSE VALUE LENGTH) ( VALUE)>)> ) (ELSE )> ) (ELSE )> > ) (RES <>) "AUX" (TG1 ) (TG2 ) (TG3 ) (TG4 ) (OTMP )) <>> )> )> .W> ) ,QUOTE-CODE> <>) ( ,ISUBR-CODE> :>> )>> .L>> " Generate code for a COND." ) (BRANCH <>) (DIR <>) "AUX" NW (RW .W) LOCN (COND ) W2 (WSET <>) (KK ) (SDIR .DIR)) #DECL ((NOD) NODE (COND) ATOM (KK) ) >)> ANY>>> )> >) (BR <1 .BRN>) NEXT (PRED-TRUE <>) (K ) (PR ) (NO-SEQ <>) (LEAVE <>) FLG K2 PR2 BR2 PRT2 (BRNCHED <>) (PRT ) CT) #DECL ((BR2 PR2 PR BR) NODE (BRN) (K) ) >>>>> FALSE>> >> > > >>>>>> )> > .PRED-TRUE>> .LAST> >)> FLUSHED) (ELSE .W)>>> > >> )> )>) ( FLUSHED) ( <0? >>> .W) (ELSE >>)> .NOTF>>) (ELSE FLUSHED) (ELSE .W)>>> > >> )>)> ) ( ) (<==? FALSE> ) (<==? .RW FLUSHED> .BRANCH) (ELSE .COND)> .PR T FLUSHED .NOTF>) (ELSE >) (ELSE <0? >>> .W) (ELSE >>)> .NOTF>> )>)>)>) (ELSE > >>> FALSE> > FALSE> >> > > > >> )> ) (ELSE >> > > >> )>) (ELSE >)> )>)> ) ( > .BRANCH> FLUSHED) ( <0? >>> .W) (ELSE >>)> .NOTF>> ) ( FLUSHED>>) (>> FLUSHED) ( <0? >>> .W) (ELSE >>)>>> ) (ELSE FLUSHED>)>) (ELSE >)>)> >>> FALSE>>> '>>> ) (ELSE > .W>> > >> )>)>) (ELSE > FLUSHED) (ELSE .W)>>> > >> )>)> )>) (ELSE FLUSHED) (ELSE .W)> .BRANCH .SDIR .NOTF>> > >> )>)>>) ( FLUSHED) (ELSE .W)> .BRANCH .SDIR .NOTF>> > >> )>)> >> NO-RETURN>> > >)> )> > )> >> .KK> > )> NO-RETURN> ,NO-DATUM) (ELSE )>> .NW> 1>> .LOCN) (<==? .LOCN .W> .LOCN) (ELSE >>)>> ) WW) #DECL ((L) ) ) NX K) #DECL ((N) (ND) NODE) >> > ,CALL-CODE> >> 2> <==? > `ENDIF>> > > > )> >> )>) ( > > ,DONT-FLUSH-ME> )>) ( ,CALL-CODE> >> 2> <==? > `ENDIF>> ) (ELSE ) (ELSE )>>)>> .L> .W> > " Generate code for OR use BOOL-GEN to do work." ) (BR <>) (DIR T)) #DECL ((NOD) NODE) T .WHERE .NF .BR .DIR>> " Generate code for AND use BOOL-GEN to do work." ) (BR <>) (DIR <>)) #DECL ((NOD) NODE) <> .WHERE .NF .BR .DIR>> ) (FLUSH <==? .RW FLUSHED>) (WSET <>) (FLS .FLUSH>) RTF SRES LOCN FIN) #DECL ((PREDS) (NOTF DIR FLUSH FLS RTF) ANY (BOOL) ATOM (BRANCH) (NOD) NODE (LOCN) ANY (SRES RESULT) ANY) ANY>>> )> >)> <==? .SRES .DIR> FALSE>>> >)> .W>>) (ELSE ) (LAST >) (RT ) (RTFL <>) TY) #DECL ((BRN) (BR) NODE) > >>> FALSE> > >>> > > >>>> ) (ELSE )>)> FALSE>>>> >> <0? >>> .W) (ELSE >>)> .NOTF>>) (ELSE .BR .SRES > FLUSHED) ( <0? >>> .W) (ELSE >>)> .NOTF>> )>) (.LAST > > >> )> .LOCN) (ELSE <0? >>> .W) (ELSE >>)> .NOTF>> )>) (>) (ELSE .RTFL)>> .LAST> >)> .W) (ELSE FLUSHED)>>> > >> )> NO-RETURN>> )>) (ELSE > > >> )> .LOCN)> ) (ELSE > > <==? .BRN .PREDS>> " IN AND/OR"> .BR>)> )>> .PREDS>)> > )> >> )> NO-RETURN> ,NO-DATUM) (ELSE )>> .FIN> " Generate code for ASSIGNED?" ) (BR <>) (DIR <>) (SETF <>) "AUX" (A ) (SDIR .DIR) (FLS <==? .W FLUSHED>) B2 TMP (GLOBAL T)) #DECL ((N) NODE) >>)> >)> > .W>>)> > ) (ELSE .DIR)>> >> > > FLUSHED) (.BR > > .W>> .W) (ELSE > > )>) (ELSE -1> >)> >) (ELSE >>>)> FLUSHED) (.BR > .DIR .GLOBAL> .W>> .W) (ELSE > .DIR .GLOBAL> )>)>> ) (BR <>) (DIR <>) (SETF <>) "AUX" (A ) (SDIR .DIR) (NM ) (FLS <==? .W FLUSHED>) B2 TMP) #DECL ((N) NODE) >>)> >)> > .W>>)> > ) (ELSE .DIR)>> >>> FLUSHED) (.BR > .DIR .NM> .W>> .W) (ELSE > .DIR .NM> )>> )) #DECL ((N) NODE (B2 B) ATOM) .W> > .W> > " Generate code for LVAL." ) TT (ADDR <>) REFS (LIVE >> 2> <2 .TT>) (ELSE T)>) TMP) #DECL ((NOD) NODE (SYM) SYMTAB (NO-KILL) LIST (REFS) FIX) NO-RETURN> .NOD>)> -1>> .WHERE) (<==? .WHERE ,POP-STACK> .WHERE) (ELSE >)>> >)> .TMP> .TMP) ( .WHERE) (ELSE >)>> > .TMP) (ELSE > > .SYM> >> .NO-KILL>>>) (<0? >> ) (ELSE >)>)> .ADDR)> .WHERE>> .TT> >]> (SYM) SYMTAB) > )> >> >>> )> >>> " Generate LVAL for free variable." >) (ELSE .WHERE)>> )> > SYMTAB> >) (<==? >> ,QUOTE-CODE> >>>) (ELSE >>>)> > ) T1) #DECL ((NOD) NODE (TEM) ) ,SET> >>)> > SYMTAB> >) (<==? >>> ,QUOTE-CODE> >) (ELSE > >)>)> .WHERE) (ELSE DONT-CARE)>>>) (ELSE )> > .TT) (ELSE .T1)> .WHERE>> " Generate code for an internal SET." ) (BRANCH <>) (DIR <>) "AUX" (SYM ) TY PT TEM (TT <>) REFS (NM <2 MSUBR>>)) #DECL ((NOD) NODE (SYM) SYMTAB) -1>> > .WHERE) (ELSE DONT-CARE)>>> .TEM>) (ELSE ,THE-UNBOUND> >)> ) ( <==? .NM UNASSIGN>> > >>) ( >)> ,NO-DATUM) (ELSE .WHERE)>) ( > > ,POP-STACK> >>) ( >)> ,NO-DATUM) (ELSE .WHERE)>) (ELSE > > >> > FIX> <==? .PT WORD> <==? .PT LIST>>> .TY)>> >)> >)> > .DIR .TEM <> T>) (ELSE > .TEM>>)>) (ELSE )> >> )> >)> )>> >>> >>> > " Compute the address of a local variable using the stack model." > " Generate obscure stuff." > .WHERE>> " Do GVAL using direct locative reference." ) (TYP )) #DECL ((N) NODE) >> >) ( .W) (ELSE .W)> .TYP> .W> " Do SETG using direct locative reference." >>> >> .TEM > 3> > DONT-CARE>) (ELSE <>)> FLUSHED> > " Generate GVAL calls." >>> >>) ( > .W) (ELSE .W)>> .W> " Generate a SETG call." >>> >>> > .W) (ELSE DONT-CARE)>>> > 3> > DONT-CARE>) (ELSE <>)> .W> > >) (N <1 >) N2 TEM TT) #DECL ((NOD N) NODE) NODE> > ,CHTYPE-FOR-FREE> <==? .WHERE DONT-CARE>>> ) (ELSE > > 1> >>> ,QUOTE-CODE>> > >>>)> 1>> > ) (ELSE >>)>) ( )> ,QUOTE-CODE>> > >>>)> > .WHERE> ) (ELSE )> )> .WHERE)>> > " Generate do-nothing piece of code." > .W>> " Generate call to READ etc. with eof condition." 1>> ) (ELSE >>)> > ,EOF-CODE> ) (ELSE )> >> > .I .TMP> > .TMP <> >> > > >> ) (BR ) TMP (LN ) CF) #DECL ((N) NODE (K) (LN) FIX) > ,POP-STACK> ,POP-STACK> )> .LN 1>>> >) (ELSE >)>> > .TMP <> >> ,POP-STACK> >) (ELSE .TMP>>)> )> > ' > ) (B <>) (D <>) "AUX" (K ) (INS >) L RECSPEC (ON-STACK <>) COUNTMP SEGTMP I INS1 (REC? <>)) #DECL ((NOD) NODE (K) ) >)> <==? .INS `SCALL>> >> ,QUOTE-CODE> ATOM>> `FRAME) (ELSE `SFRAME)>
FCN-ATOM>>>> >) (ELSE `FRAME) (ELSE `SFRAME)>> >)> >) (<==? .INS `SYSCALL> >> >)>)> )> ,SEGMENT-CODE> 0) (ELSE 1)>> >> ) TMP) #DECL ((N) NODE (NL) ) ,SEGMENT-CODE> > >> >> )> > .SEGTMP> >>> >>>>) (ELSE >> >> >)> .TMP)>> >> >> .L>)> <==? NO-RETURN>> .COUNTMP) (ELSE .I)>> ) (ELSE .COUNTMP) (ELSE .I)>>)>) (.B .B>) (ELSE )> ) (ELSE > >)> >>) ( >)> .COUNTMP) (ELSE .I)> = .WHERE> ) (ELSE .COUNTMP) (ELSE .I)> = .WHERE>)>) (>> LIST> <==? 2> <=? > "RECORD-TYPE">> 1> ) (ELSE 2>> ()>)> ) (.B .B>) (ELSE )>)> .WHERE> ) (K ) L I) #DECL ((NOD) NODE (K) (L) LIST) 1>> ) TMP) #DECL ((N) NODE (NL) ) ,QUOTE-CODE> > ATOM> ) (ELSE .TMP)>) (ELSE > >> > .TMP)>> .K>> >> .L> <==? NO-RETURN>> <2 .L> <1 .L> !>) (ELSE >>) ( >)> <2 .L> <1 .L> ! = .WHERE>)> .WHERE> ) (SLNT <>) "AUX" (W .STACK? >> ) (ELSE .WHERE)>)) #DECL ((STK STK-CHARS7 STK-CHARS8) FIX) <==? .SUBRC UVECTOR> <==? .SUBRC STRING> <==? .SUBRC BYTES> <==? .SUBRC TUPLE>> .NARGS = .W (`TYPE .SUBRC)> <==? .SUBRC STRING> >>> <==? .SUBRC TUPLE>> ) (<==? .SUBRC BYTES> ) (<==? .SUBRC STRING> )> > ) (ELSE >>)> >) (<==? .SUBRC STRING> 5> .STK-CHARS7>> 4> .STK-CHARS8>> >) (ELSE .NARGS) (<==? .SUBRC BYTES> 4>) (ELSE <* .NARGS 2>)> 2>>)>)> )>) (<==? .SUBRC LIST> ) (ELSE )>> ) COUNTMP SEGTMP (SEGLABEL ) (SEGCALLED <>) I MS) #DECL ((NOD) NODE (K) (COUNTMP SEGCALLED SEGLABEL) ) >> ,SEGMENT-CODE> 0) (ELSE 1)>> >> ) ,SEGMENT-CODE> > >> >> )> >> .SEGTMP>> > MULTI>> > > .SEGLABEL>) (.SEGCALLED )> >) (ELSE )>> > > >)> <==? NO-RETURN>> .COUNTMP) (ELSE .I)>> ) (ELSE >>) ( >)> .COUNTMP) (ELSE .I)> = .WHERE> )> .WHERE> ) (NOUNWIND ) (K1 <1 >) (K2 <2 >) W1 BND LBL) #DECL ((N K1 K2) NODE (BND) TEMP (STK) FIX) >> .LBL > > > .W1> ) > > <==? ,SET-CODE> >>> -1> <==? .TMP>> )>> >>> > >>) (ELSE .TMP)>> >)) > > .W>> "ILIST, IVECTOR, IUVECTOR AND ISTRING." ) (K ) (NT ) (LEN <1 .K>) EL (TY ) NT-M NT-E EL-TMP EV-TMP STRT NSTR STR END STR2 OBJ (CALL-EV <>) (GEN-EACH-TIME <>) X EMP-INS PUT-INS REST-INS (ISTY ) CONS-T1 CONS-T2 CONS-TMP NT-S (STACK? > NODE> ,STACK-CODE> ,CHTYPE-CODE> > NODE> <==? ,STACK-CODE>>>>)>)) #DECL ((N LEN EL) NODE (K) (STK STK-CHARS7 STK-CHARS8) FIX (STR) ) )> 1> > > = .W) (<==? .W DONT-CARE> >>) (ELSE .W)> (`TYPE .ISTY)> )>) (ELSE <==? .NAM ITUPLE>> ) (<==? .NAM IUVECTOR> ) (<==? .NAM ISTRING> ) (<==? .NAM IBYTES> ) (ELSE )> > ) (> ,ISTRUC2-CODE> >> > > > ,COPY-CODE> ; "TAA 11/5/85--otherwise > doesn't generate a new frob each time" >>> >> '>>>> >) (<==? .NT-M ,ISTRUC-CODE> > ) (ELSE )> > .ISTY>) (ELSE >)> ()> 1>> > .STR> )> > ()>) (ELSE .STR = .ISTY>) (ELSE >)>> )> > .OBJ>)> VALUE LENGTH) ! TYPE VALUE LENGTH))) ( > (( TYPE VALUE LENGTH))) (ELSE ())> ! (( VALUE))) (ELSE ())>> >> >>) (ELSE >>)> >>) (.GEN-EACH-TIME >)> >> >> >> ) (ELSE )> )> ) ( )> >)> 1>> >) (ELSE )> <==? .NAM ITUPLE>> ) (<==? .NAM IBYTES> ) (<==? .NAM ISTRING> )> > ) (ELSE >>)> )> >) (<==? .NAM ISTRING> 5> .STK-CHARS7>> 4> .STK-CHARS8>> >) (ELSE .STR) (<==? .NAM IBYTES> 4>) (ELSE <* .STR 2>)> 2>>)>)> .W> ) (SEG? <>) (SIDE-E <>) (MX:FIX 0) (MN:FIX 0) (VARS: ) TL:LIST (VLN:FIX ) NT:FIX SEGTYP LCL (LV: <1 >) (I:FIX 0)) > ,SEG-CODE> <==? .NT ,SEGMENT-CODE>> >>>> .MX> ,MAX-LENGTH>> .MN>>) (ELSE > > ,MAX-LENGTH>>)> > > )>> >> ) COUNTMP (SEGCALLED <>) SEGTMP) #DECL ((SEGLABEL COUNTMP SEGCALLED) ) ) RES) <==? .NT ,SEGMENT-CODE>> > >> > )> >> .SEGTMP>> >> > > .SEGLABEL> >) (.SEGCALLED >)>) (ELSE )>> .K> > )> >>> SYMTAB> > -1>> > T>> ) (ELSE T>>>> ) (ELSE .TSYM)> .TMP -1>>>> )> > 0> )>>>) (.SIDE-E > "AUX" (TY ) PT (SY: <1 .SYP>)) .TY>>)> > > FIX> <==? .PT LIST>>>) (ELSE )> >> .K .VARS>> > TMP:TEMP "AUX" (SY: <1 .SYP>) (LCL <>)) -1> >> .TMP> ) (ELSE >)> > )>> .VARS .TL>) (ELSE > > > <1 .SL>) (LCL <>) TY (N:NODE <1 .NL>) (SY: <1 .SYP>) TMP) >> >>> -1> > >> >> ) (ELSE >)> >)>) (ELSE )>> .VARS .K> >> ) (> >>) !.MUCH-LATER)> )> )> <1 <1 .L>>) (LCL <>) (TMP:TEMP <2 .L>)) -1> >> .TMP> ) (ELSE >)> > )>> .MUCH-LATER>>)> > -1> >> 1>> ) (ELSE >)> >>)> >)>) (ELSE .W)>> L:) ) NN) <==? .NT ,ASSIGNED?-CODE> <==? .NT ,SET-CODE>> .SY> )>) ( <==? .NT ,FSET-CODE>> .SY> >>> ,QUOTE-CODE> <==? .SY>) (ELSE <==? -1> >)>> )>) ( > LIST>> <==? -1>>> ) (ELSE > )> >>> )>)>>> .L>> (,FORM-CODE ) (,PROG-CODE ) (,SUBR-CODE ) (,COND-CODE ) (,LVAL-CODE ) (,SET-CODE ) (,OR-CODE ) (,AND-CODE ) (,RETURN-CODE ) (,COPY-CODE ) (,AGAIN-CODE ) (,ARITH-CODE ) (,RSUBR-CODE ) (,0-TST-CODE <0-TEST .N .W>) (,NOT-CODE ) (,1?-CODE <1?-GEN .N .W>) (,TEST-CODE ) (,EQ-CODE <==-GEN .N .W>) (,TY?-CODE ) (,LNTH-CODE ) (,MT-CODE ) (,REST-CODE ) (,NTH-CODE ) (,PUT-CODE ) (,PUTR-CODE ) (,FLVAL-CODE ) (,FSET-CODE ) (,FGVAL-CODE ) (,FSETG-CODE ) (,MIN-MAX-CODE ) (,CHTYPE-CODE ) (,FIX-CODE ) (,FLOAT-CODE ) (,ABS-CODE ) (,MOD-CODE ) (,ID-CODE ) (,ASSIGNED?-CODE ) (,BITL-CODE ) (,ISUBR-CODE ) (,EOF-CODE ) (,READ-EOF2-CODE ) (,READ-EOF-CODE ) (,GET2-CODE ) (,GET-CODE ) (,IPUT-CODE ) (,MAP-CODE ) (,MARGS-CODE ) (,MAPLEAVE-CODE ) (,MAPRET-STOP-CODE ) (,UNWIND-CODE ) (,GVAL-CODE ) (,SETG-CODE ) (,MEMQ-CODE ) (,LENGTH?-CODE ) (,FORM-F-CODE ) (,ALL-REST-CODE ) (,COPY-LIST-CODE ) (,PUT-SAME-CODE ) (,BACK-CODE ) (,TOP-CODE ) (,ROT-CODE ) (,LSH-CODE ) (,BIT-TEST-CODE ) (,CALL-CODE ) (,MONAD-CODE ) (,GASSIGNED?-CODE ) (,APPLY-CODE ) (,ADECL-CODE ) (,MULTI-RETURN-CODE ) (,VALID-CODE ) (,TYPE-C-CODE ) (,=?-STRING-CODE <=?-STRING-GEN .N .W>) (,CASE-CODE ) (,FGETBITS-CODE ) (,FPUTBITS-CODE ) (,ISTRUC-CODE ) (,ISTRUC2-CODE ) (,STACK-CODE ) (,CHANNEL-OP-CODE ) (,ATOM-PART-CODE ) (,OFFSET-PART-CODE ) (,PUT-GET-DECL-CODE ) (,SUBSTRUC-CODE ) (,MULTI-SET-CODE ) DEFAULT ()>>