FIX>> FIX>> "Type specification for NODE." FIX [REST LIST ANY ANY LIST FIX SYMTAB FIX FIX ATOM ANY LIST LIST ANY ANY ANY ANY ANY ANY ANY FIX FIX LIST LIST LIST LIST LIST]>> "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." > ;"Amount of stack needed by 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." > ;"Offset to 1st special." > ;"Pointer to local symbol table." > ;"Number of specials." > ;"Number of unspecials." > ;"Predicate: any named activation?" > ;"Offset to unamed temps." > ;"Variable slots allocated in advance." > ;"Base of stack at entry." > ;"Base of stack after bindings." > ;"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?" > ;"Predicate: AC call possible? (if not false ac structure)" > ;"Total number of args (including optional)." > ;"Required arguemnts." > "Variables kept in acs thru loop." > "States at agains" > "States at repeats." > "Vars handled in this prog/repeat." ;"Information used for merging states with prog-nodes" 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 LIST ANY ANY FIX LIST 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?" > ;"Predicate: currently in some AC?" > ;"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." SYMTAB>> SYMTAB>> SYMTAB>> "Slot used to store information for variables in loops." ;"Type as figured out by all uses of symbol." ] NODE>> "Create a function node with all its hair." () <> .RSD .BST 0 .VTB 0 0 <> <> () () <> <> <> <> .RES-TYP <> <> .ACS? .TRG .RQRG] NODE>> "Create a PROG/REPEAT node with nearly as much hair." () <> .VL .BST 0 .VTB 0 0 <> <> () () <> <> <> <> .RES-TYP <> <> <> 0 0 () () () ()] NODE>> "Create a COND node." () <>] NODE>> "Create a node for a COND clause." () <>] NODE>> "Create a node for a SUBR call etc." () <> .SUB] NODE>> <> <> T <> () <> ANY 0] SYMTAB>>> "Some specialized decl stuff." ) ) <> <>> <>> <>> .VARTBL>> > > ]>]>> "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 GETBITS-CODE PUTBITS-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 SPARE1-CODE SPARE2-CODE SPARE3-CODE SPARE4-CODE!]>> > "Build a dispatch table based on node types." )) #DECL ((PAIRS) ]> (TT) VECTOR) ) )> >> <2 .PAIR>> >>> > > ![,0-TST-CODE ,1?-CODE ,NOT-CODE ,TEST-CODE ,EQ-CODE ,TY?-CODE ,MT-CODE ,OR-CODE ,AND-CODE ,ASSIGNED?-CODE ,ISUBR-CODE ,NTH-CODE ,MEMQ-CODE ,LENGTH?-CODE ,OBLIST?-CODE ,AS-NXT-CODE ,COND-CODE ,BIT-TEST-CODE!]> "Predicate: does this type have special predicate code?" ]>]>> > >> > [REST ]>]>> > > > > > > > > > > > > > FALSE> FIX FIX >> > >>> FIX DATUM ATOM>> "A TOKEN GIVES INFORMATION TO CUP" FIX>> 0 .N <> .N+1 <> <>] AC>>> > .THISAC> ![`A `B `C `D `E `F `TVP `SP!] ![`A* `B* `C* `D* `E* `F* `TVP* `SP*!] ![1 2 3 4 5 6 7 8!] ![`B* `C* `D* `E* `F* `TVP* `SP* `AB*!] ![AC-A AC-B AC-C AC-D AC-E AC-F AC-G AC-H!]>> > > > > >> ,ALLACS> > (ATIME REGS) FIX (LAST-AC LAST-AC-1 AC0) AC> ,MANIFEST ,CODVEC> 0 0 <> `A* <> <>] AC>> "POINTER TO SYMBOL" "DATUM OF THE SYMBOL" "IS THE SYMBOL STORED" "IS THE SYMBOL POTENTIAL" "MANIFESTS FOR PROG-AC" "MANIFESTED VARIABLES FOR SLOT STORE IN PROG-VARS" "MANIFESTS FOR AGAIN AND RETURN STATES" "OFFSETS FOR STACK:INFO" "SLOTS FOR SAVED-AC-SLOT" "SLOTS FOR LOOP-VARS" 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 >> > > )>> '(ERROR NOTE WARNING INCONSISTANCY INCONSISTENCY) '(ERRS NOTES WARNS INCONS INCONS)> ;"Typically NOTE, WARNING, ERROR, or INCONSISTANCY" ) (<==? > ATOM> >) ( NODE> > )>) (ELSE >)> ;"Space" >> ) ( <==? .SEVERITY INCONSISTENCY>> )> T>