> )> = LBIND > 1>> > ,BQ+1>> WORD> >>) (ELSE >>>)>)> > > ) > ATOM>> ) >) (ELSE .X)>> WORD> 0>> ) ( FIX> >> T ,BQ-RD <>]>)> > ) ,MIM-OBL> .NO-BQ>> )> >) (<==? ,TMP-OBL> >) (ELSE > '[PRINT PPRINT PRIN1 TOPLEV PRINT-MANY FLATSIZE UNPARSE]> >) (<==? PRINC> >) (ELSE > )>>)>> ) ,CTLZ-PRINT> >)> > '[PRINT PPRINT PRIN1 TOPLEVEL FLATSIZE UNPARSE]> >) (<==? PRINC> >) (ELSE > )>>> )> >>> FIX>> FIX>> "Type specification for NODE." FIX ;NODE-TYPE ANY ;PARENT ANY ;RESULT-TYPE ANY ;(NODE-NAME PREDIC) ;(KIDS CLAUSES) ;SEGS [OPTIONAL LIST ;(TYPE-INFO LIVE-VARS) ANY ;SIDE-EFFECTS ANY ;(RSUBR-DECLS NODE-SUBR) LIST ;BINDING-STRUCTURE SYMTAB ;SYMTAB ;ACTIVATED ANY ;SPCS-X ANY ;(DST ACCUM-TYPE) ANY ;(CDST DEAD-VARS) ANY ;(ATAG VSPCD) ANY ;(RTAG INIT-DECL-TYPE) LIST ;ASSUM ;AGND FIX ;TOTARGS FIX ;REQARGS]>> "Offsets into pass 1 structure entities and functions to create same." > ;"Code specifying the node type." > ;"Pointer to parent node." > ;"Type expression for result returned by code generated by this node." > ;"Usually name of SUBR associated with this node." > ;"List of sub-nodes for this node." > ;"Predicate: any segments among kids?" > ;"Points to transient type info for this node." > ;"General info about side effects (format not yet firm.)" > ;"Function only: final rsubr decls." > ;"Partially compiled arg list." > ;"Pointer to local symbol table." > ;"Predicate: any named activation?" > ;"Predicate: any specials bound?" > ;"Destination spec for value of node." > ;"Current destination used." > ;"Label for local againing." > ;"Label for local Returning." > ;"Node type assumptions." > ;"Predicate: Again possible?" > ;"Total number of args (including optional)." > ;"Required arguemnts." NODE>> ;"For COND clauses." NODE>> ;"For many nodes, the SUBR (not its name)." NODE>> ;"For cond clause nodes, the predicate." NODE>> ;"Accumulated type from all returns etc." NODE>> NODE>> NODE>> NODE>> " Definitions associated with compiler symbol tables." "Offsets for variable description blocks" ATOM FIX ANY ANY ANY>> ATOM FIX ANY ANY ANY FIX LIST ANY ANY ANY>> > ;"Pointer to next symbol table entry." > ;"Name of variable." > ;"Predicate: special?" > ;"Code specifying whether AUX, OPTIONAL etc." > ;"If an argument, which one." > ;"Predicate: unchanged in function?" > ;"Decl for this variable." > ;"Where do I live?" > ;"Predicate: initial value? if so what." > ;"ID of my frame." > ;"Predicate: used only in AGAIN/RETURN?" > ;"Predicate: used in ASSIGNED?" > ;"Number of uses of this symbol." '> ;"Predicate: stored in slot?" > ;"Predicate: symbolused at all." > ;"List of info associated with life time." > ;"Current decl determined by analysis" > > "How a variable is used in a loop." ;"Type as figured out by all uses of symbol." ] NODE>> "Create a function node with all its hair." () <> .RSD .BST .VTB <> <> <> () <> .RES-TYP () <> .TRG .RQRG] NODE>> "Create a PROG/REPEAT node with nearly as much hair." () <> .VL .BST .VTB <> <> <> () <> .RES-TYP () <>] NODE>> "Create a COND node." () <>] NODE>> "Create a node for a COND clause." () <>] NODE>> "Create a node for a SUBR call etc." () <> .SUB] NODE>> <> 0 T <> () <> ANY FOO!-IPASS1!-PASS1!-PACKAGE] SYMTAB>>> "Some specialized decl stuff." ) <> <>> <>> <>> .VARTBL>> >)> [REST CHARACTER]>>) (ELSE [REST CHARACTER]>>)> "Codes for the node types in the tree built by pass1 and modified by other passes." "Give symbolic codes arbitrary increasing values." > .ATM> '[FUNCTION-CODE QUOTE-CODE SEGMENT-CODE FORM-CODE PROG-CODE SUBR-CODE COND-CODE BRANCH-CODE RSUBR-CODE LVAL-CODE SET-CODE OR-CODE AND-CODE RETURN-CODE COPY-CODE GO-CODE AGAIN-CODE ARITH-CODE 0-TST-CODE NOT-CODE 1?-CODE TEST-CODE EQ-CODE TY?-CODE LNTH-CODE MT-CODE NTH-CODE REST-CODE PUT-CODE PUTR-CODE FLVAL-CODE FSET-CODE FGVAL-CODE FSETG-CODE MIN-MAX-CODE STACKFORM-CODE CHTYPE-CODE ABS-CODE FIX-CODE FLOAT-CODE MOD-CODE ID-CODE ASSIGNED?-CODE ISTRUC-CODE ISTRUC2-CODE BITS-CODE BITL-CODE FGETBITS-CODE FPUTBITS-CODE MAP-CODE MFCN-CODE ISUBR-CODE READ-EOF-CODE READ-EOF2-CODE EOF-CODE GET-CODE GET2-CODE IPUT-CODE IREMAS-CODE IRSUBR-CODE MARGS-CODE MPSBR-CODE MAPLEAVE-CODE MAPRET-STOP-CODE UNWIND-CODE GVAL-CODE SETG-CODE SEG-CODE LENGTH?-CODE TAG-CODE MFIRST-CODE PRINT-CODE MEMQ-CODE FORM-F-CODE INFO-CODE OBLIST?-CODE AS-NXT-CODE AS-IT-IND-VAL-CODE ALL-REST-CODE CASE-CODE SUBSTRUC-CODE BACK-CODE TOP-CODE COPY-LIST-CODE PUT-SAME-CODE ROT-CODE LSH-CODE BIT-TEST-CODE ADECL-CODE CALL-CODE MONAD-CODE GASSIGNED?-CODE APPLY-CODE MULTI-RETURN-CODE =?-STRING-CODE TYPE-C-CODE VALID-CODE STACK-CODE CHANNEL-OP-CODE ATOM-PART-CODE OFFSET-PART-CODE PUT-GET-DECL-CODE MULTI-SET-CODE SPARE1-CODE SPARE2-CODE SPARE3-CODE SPARE4-CODE]>> > "Build a dispatch table based on node types." )) #DECL ((PAIRS) < [REST ]> (TT) VECTOR) ) )> >> <2 .PAIR>> >>> > > [,0-TST-CODE ,1?-CODE ,NOT-CODE ,TEST-CODE ,EQ-CODE ,TY?-CODE ,MT-CODE ,ASSIGNED?-CODE ,MEMQ-CODE ,LENGTH?-CODE ,OBLIST?-CODE ,AS-NXT-CODE ,BIT-TEST-CODE ,GASSIGNED?-CODE ,VALID-CODE ,=?-STRING-CODE]> > [,OR-CODE ,AND-CODE ,COND-CODE]> "Predicate: does this type have special predicate code?" " Assign codes to differen types of argument in argument list" >> '(ARGL-ACT ARGL-IAUX ARGL-AUX ARGL-TUPLE ARGL-ARGS ARGL-QIOPT ARGL-IOPT ARGL-QOPT ARGL-OPT ARGL-CALL ARGL-BIND ARGL-QUOTE ARGL-ARG)>> ]>]>>) (ELSE ]>]>>)> >) (ELSE >)> > > > >>> FIX DATUM ATOM>> ,MANIFEST ,CODVEC> ATOM FIX ANY >> > "TYPE OF COMMON (ATOM)" > "POINTER TO OR COMMON SYMTAB" > "3RD ARGUMENT TO NTH,REST,PUT ETC." > "PRIMTYPE OF OBJECT IN COMMON" > "DATUM FOR THIS COMMON" NODE >> > > > > > > FIX> POPWR2.FBIN">)>