. THIS SECTION CONTAINS ALL THE CODE TO TRANSMIT ITEMS FROM F31 . TO F50 AND/OR F40 EXCEPT FOR THE ACTUAL FILING ROUTINES . THIS SECTION OF CODE IS ENTERED FROM THE INITIAL TRANSFER VECTOR 15480 . WHENEVER A STATEMENT TYPE ITEM IS ENCOUNTERED AND THE PREVIOUS 15490 . STATEMENT WAS THE TYPE THAT CAN GENERATE EXPRESSIONS. THIS SUBROUTINE 15500 . THEN CHECKS THE INFORMATION IN F31 A STATEMENT AT A TIME. WHEN 15510 . A STATEMENT IS FOUND THAT CAN NOT BE TRANSFERED. THE REMAINING 15520 . ITEMS IN F31 ARE SHIFTED TO THE BOTTOM IF ANY ITEMS WERE MOVED 15530 $(1) LIT . RGS . REGISTER DEFINITIONS IDX EQU 1 . DIAGNOSTICS PERMITTED F50 EQU 2 F40 EQU 1 SEND* SZ SEFL FLAG TO TELL IF ANY ITEMS HAVE BEE15540 SX,H2 B11,SENDX SZ B8 DO IDX=1 , TZ DX6 DO IDX=1 , SLJ XD6B SENDA LA,014 A0,F31,B8 LOADS TYPE 15580 LA,015 A15,F31,B8 LOADS ID 15590 TNE,016 A15,10 15630 J SENDE 15640 TG,M A15,11 J SENDD SEND NEXT ITEM 15660 XER 12 . 156610 SENDE L,M A15,250 TG A15,CSUBXD S A15,MEL LA,H2 A15,NOI JZ A15,SENDQQ A A15,NSEQN TG,M A15,LF31-25 . LEAVE SPACE FOR ITEMS GENERATED FOR LOOPS SR R4,MEL A,H2 A15,CTF51 TG,M A15,LTF51 SR R4,MEL TZ MEL J SENDT SENDQQ L,S2 A0,STTYA L,T1 A1,F31,B8 TNE,M A1,01204 . MONITOR INFORMATION J SENDJ TE,M A1,01202 TNE,M A1,01251 J SENDJ TNE,M A0,025 J SENDS L,M A1,0,NSEQN AN,M A1,75 L,S1 A4,FL30 TNE,M A4,035 J $+3 TE,M A4,027 . TEST FOR TOP OF PROGRAM JN A1,SENDC SENDS LMJ B9,B3A J SENDC NO ITEMS CAN BE MOVED 15720 SENDJ SR R4,SEFL SZ MEL LMJ B11,T35 SENDS ALL ITEMS IN NEXT STATEMENT 15740 LMJ B11,EXX CHECKS TF51 FOR ITEMS TO INSERT 15750 J SENDA 15760 SENDC* TNZ SEFL J SENDXX LMJ B11,EXX LX B2,(1,F31) . INDEX FOR MOVING 15830 LX B1,(1,0) 15840 ANX NSEQN,B8 TP NSEQN SLJ XERV AX,M B1,F31,B8 . INDEX FOR MOVING FROM LR,M R1,0,NSEQN . NUMBER ITEMS TO MOVE 15870 BT B2,0,*B1 15880 J SENDXX SENDT L,M A15,0,NSEQN TG,M A15,2 J SENDS XER 150 . TABLES CAN NOT BE EMPTIED SENDD SR R4,SEFL LMJ B11,XT35 LMJ B11,EXX J SENDA SENDXX . TNZ GABCLX J SENGAB L,H2 A3,SEQNX TE,M A3,2 . INSURE ZERO LEVEL OUTPUT J SENDX NEXW EQU NEXA+3 NEXB EQU NEXA+1 L,M A3,NEXW-4 SENGA L A3,SXLNK . POINTER TO NEXT EXPRESSION JZ A3,SENGAQ . FINISHED WITH CHAIN L,H1 A4,3,A3 . SEQUENCE NUMBER OF LAST USR AND,M A4,077777 TLE A5,GABCLX J SENGA L,S4 A4,1,A3 TOP,M A4,2 . TEST J=2 BIT J SENGA L,S4 A4,3,A3 . TEST TAKE TO DP BIT TEP,M A4,010 J SENGA L,H1 A0,1,A3 . EXPRESSION NUMBER SSL A0,6 AAL SUBEXD,NEXD,A0 SLJ DLINK . REMOVE EXPRESSION FROM CHAIN J SENGA SENGAQ L,M A3,NEXB-4 SENGA2 L A3,SXLNK . POINTER TO NEXT EXPRESSION JZ A3,SENGAB . FINISHED WITH CHAIN L,H1 A4,3,A3 . SEQUENCE NUMBER OF LAST USR AND,M A4,077777 TLE A5,GABCLX J SENGA2 L,S4 A4,1,A3 TOP,M A4,2 . TEST J=2 BIT J SENGA2 L,S4 A4,3,A3 . TEST TAKE TO DP BIT TEP,M A4,010 J SENGA2 L,H1 A4,2,A3 . FORWARD DEFINITION POINT AND,M A4,077777 JZ A5,SENGA2 L,H1 A0,1,A3 . EXPRESSION NUMBER SSL A0,6 AAL SUBEXD,NEXD,A0 SLJ DLINK . REMOVE EXPRESSION FROM CHAIN J SENGA2 SENGAB . SZ GABCLX J SENDX . AS EACH STATEMENT TYPE IS PICKED UP TO SEND TO F50, THIS ROUTINE 15950 . CHECKS THE EXPRESSION TABLES TO SEE IF BOT 32 CAN BE ADVANCED. 15960 . IF IT CAN THE RETURN IS TO (ALPHA+2). EXPRESSIONS IN WHICH 15970 . J2=1 ARE NOT CONSIDERED SINCE THEY HAVE TO STAY IN PLACE 15980 XMSG* PROC 2 15990 L,H1 A3,NEXA J $+2 XSMGL L A3,SXLNK FOLLOW LINK JZ A3,XMSG(2,1),XMSG(2,2) L A10,3,A3 AND A10,R2 TG A4,A11 J XSMGL AND,S4 A6,1,A3 160400 JNZ A7,XSMGL IF J1 ON NOT HOLDING TP,XH2 1,A3 J XSMGL IF R3 ON HOLDING IS OFF L,H2 B2,LOOPNU TNZ B2 J $+12 L,H1 A10,IVSQ,B2 . SEQUENCE AT BEGINNING OF LOOP AN,M A10,1 ADJUST SEQUENCE TO TOP OF LOOP L,H2 A11,IVSQ,B2 . SEQUENCE AT END OF LOOP L,H1 A12,2,A3 . FORWARD COMPUTE POINT AND,M A12,077777 . AN EXPRESSION WHICH IS LOOP TNW A10,A13 . INDEPENDENT SINCE IT CAN MOVE J XSMGL PAST ONE OR MORE LABELS L,H2 A12,2,A3 . NOT BE CONSIDERED AS HOLDING AND,M A12,077777 . WITHIN THE LOOP FOR IF IT IS TNW A10,A13 . KICKED OUT ON A TABLE OVERFLOW J XSMGL THE LOGIC FLOW MAY BE VIOLATED TE A5,SXCNT J XSMGL L,S4 A8,3,A3 TEP,M A8,010 EVALUATE ONLY AT D. P. J XSMGL END 16060 B3A L A15,EMPZZZ DO IDX=1 , TZ DX10 DO IDX=1 , SLJ XD103A S,H1 A15,MEL B3AK L,H2 A4,F31,B8 JE A15,STTYA,0,T1 01225 $+4 AN,M A4,1 . SET SO SEARCH GREATER WILL WORK TP,XH2 TLOC J B3S . EXPRESSION IN TLOC NO LONGER VALID SXLOC A14 TLOC,0,T3 L B1,A14 DO IDX=1 , TZ DX6 DO IDX=1 , SLJ XD6A TP,XH2 1,B1 J B3S . EXPRESSION BECAME COMMON AFTER GOING INTO TLOC B3AQQ LA,M A14,077777 AND,H1 A14,3,B1 TG A4,A15 16110 J B3S 16120 TNZ MEL . TEST TO SEE IF EXPRESSIONS MUST BE ELIMINATED J 0,B9 . THERE IS STILL ROOM IN FILES B3RA L A3,B1 . THIS SECTION IS USED TO REMOVE AS MANY CURRENT HOLDING . EXPRESSIONS AS NECESSARY IN ORDER TO PERMIT PROCESSING TO . CONTINUE, WHICH IT COULD NOT NOT IF TABLES BECAME FULL TNZ,H2 LGLNST . DO NOT FORCE EVALUATE IN MIDST OF LOOP TZ,H2 LOOPNU AT ZER LEVEL TABLES MAY BE EMPTI ED J B3R S,H2 B9,B3SSB9 REENT LX B2,(1,F31) LX B1,(1,0) ANX NSEQN,B8 TP NSEQN SLJ XERV AX,M B1,F31,B8 LR,M R1,0,NSEQN BT B2,0,*B1 SZ B8 MVW 03600,0,M F31,NSEQN,T1 LMJ B11,LBB1 L B9,B3SSB9 REENT SZ MEL J B3AK B3R SBT A6,1,A3,S4,1 SET J=1 SO EXPRESSION WILL SEPARATE B3S L,M A6,3 TEST FOR J=2 AND J=1 . OR HAS BEEN USED DIRECTLY IN POLISH SSC A4,18 LR R2,(077777,0) . MASK TO LOAD LLLLL L,M A5,1 XMSG SUBEXA,NEXA 1,B9 . LOOK FOR HOLDING EXPRESSIONS B3A7 LA,H1 A6,1,A3 161900 DO IDX=1 , TZ DX6 161905 DO IDX=1 , SLJ XD6 161906 TNZ MEL . TEST TO SEE IF EXPRESSIONS MUST BE ELIMINATED J $+4 B3RA1 SSC A4,18 L B1,A3 J B3AQQ SSL A6,6 . STORE NUMBER OF EXPRESSION 161910 SA A6,TLOC 162000 J 0,B9 EXIT 16210 . THIS SECTION CONVERTS A SUBEXPRESSION BACK TO FILE ITEMS SO IT CAN BE SE18060 . F50. AT THE BEGINNING OF THE ROUTINE THE LOCATION WHERE THE OPERATOR 18070 . ITEM SHOULD BE PLACED IS IN B1 AND THE LOCATION OF THE SUBEXPRESSION 18080 . IS IN A3 (SUBLOC) ENTRANCE LMJ B8 18090 SXT* LA,011 A0,0,A3 18100 SX B2,TC DSC A0,3 A PRIME TO A0 B PRIME TO A1 18120 LA,2 A2,0,A3 18130 SSL A2,6 AAAA TO A2 18140 SZ TA . CLEAR LOCATION USED TO FORM FILE ITEM 18150 LMJ B11,SXTB,A0 18160 SA A15,2,B1 18170 SZ A0 18180 DSC A0,69 B PRIME TO A0 18190 LA,6 A1,0,A3 18200 AND,016 A1,07777 BBBB TO A2 18210 SZ TA . CLEAR LOCATION USED TO FORM FILE ITEM 18220 LMJ B11,SXTB,A0 18230 SA A15,1,B1 18250 SZ 0,B1 . CLEAR WORD TO FORM OPERATOR 182510 MVW 010,0,M 0,B1,S1 . STORE ID FOR OPERATOR L,S6 A14,1,A3 LOAD OPERATOR SUBTYPE ZZ BVER1 L,T2 A2,1,A3 BVER2 TEP,M A2,01000 TEST FOR AUTO MATH FUNC BVER2 TEP,M A2,2 AUTO MATH IF G1 SET AND J2 RESET BVER2 J SXTWW OPERATOR SUBTYPE IS STORED BVER1 S,S5 A14,0,B1 IN S5 IF AUTO MATH OR S6 IF INTRINSIC BVER1 J SXTWW+1 TO ENABLE PHASE 5 TO DISTINGUISH BVER1 SXTWW S,S6 A14,0,B1 BETWEEN THE TWO CASES BVER1 L,S6 A2,0,A3 LOAD OPERATOR TYPE BVER1 S,S2 A2,0,B1 BVER1 TZ DX8 SLJ XD8 TG,M A2,12 J SXT5-12,A2 SXT1 LA A10,(0400000) 18330 LA,013 A12,1,A3 G TO A12 18340 TZ CHTFLG NON ZERO IF REFORMED FOR SUBSCRIPTS J SXTDL AND,016 A12,040 18350 JNZ A13,SXT9 UNARY MINUS ON AAAA 18360 SXT2 AND,016 A12,020 18370 JNZ A13,SXT8 UNARY MINUS ON BBBB 18380 SXT7 LA,2 A0,1,A3 18410 SSL A0,6 LOADS EXPRESSION NUMBER 18420 NOP 0,0 184300 LA,H1 A14,SUBEXD,A0 . LOADS MODES OF OPERANDS AND OPERATOR 184810 AND,016 A14,7 18490 SA,013 A15,0,B1 STORES MODE OF OPERATOR 18500 SSL A14,3 18510 AND,016 A14,7 18520 TNZ,S3 1,B1 . MODE ALREADY SET FOR VARIABLES SA,013 A15,1,B1 STORES MODE OF SECOND OPERAND 18530 SSL A14,3 18540 AND,016 A14,7 18550 TNZ,S3 2,B1 . MODE ALREADY SET SA,S3 A15,2,B1 . STORES MODE OF FIRST OPERAND 18560 LX B2,TC J 0,B10 . EXIT SXT8 TZ,014 1,B1 18670 J SXT8A COULD BE IMMEDIATE CONSTANT 18680 OR A10,1,B1 18690 SA A11,1,B1 SET UNARY MINUS FOR BBBB 18700 J SXT7 SXT9 TZ,014 2,B1 18720 J SXT9A 18730 OR A10,2,B1 18740 SA A11,2,B1 SET UNARY MINUS FOR AAAA 18750 J SXT2 18760 SXT8A LA,015 A15,1,B1 18770 TNE,M A15,9 18780 J SXT8+2 WAS SUBSCRIPT CODE 18790 LNA,1 A15,1,B1 18800 SA,1 A15,1,B1 COMPLEMENT IMMEDIATE CONSTANT IF M18810 J SXT7 SXT9A LA,015 A15,2,B1 18830 TNE,M A15,9 18840 J SXT9+2 WAS SUBSCRIPT CODE 18850 LNA,1 A15,2,B1 SA,1 A15,2,B1 J SXT2 18880 SXT5 J SXT1 ASTERISK J SXT1 J SXT1 J SXTSC . SUBSCRIPT CONNECTOR J SXTA1 . FUNCTION J SXTA1 , 18900 J SXT1 SPECIAL + FOR SUBSCRIPTS 18910 J SXTOF . OFFSET + SLJ XERV . 024 UNKNOWN SLJ XERV . 025 UNKNOWN SLJ XERV . 026 UNKNOWN SLJ XERV . 027 UNKNOWN J SXT1 . 030 CONCATENATION SXTOF L,M R15,4 S,S1 R15,1,B1 IID FOR OFFSET TZ 1,B1,S2 J SXT1 LA,H2 A0,1,B1 LOADS SYM REF OF STORED LARGE OFFSET SR,S2 R4,1,B1 . FIX FOR CORRECT HANDLING OF SIGN MVW 0,A0 1,B1,H2 . REPLACE STORED OFFSET J SXT1 SXTSC JNE A1,0,B1,S6 023 SXT1 MVW 0,B1,S6 0,B1,S2 . SET OPERATOR TO OFFSET J SXTOF SXTA1 LA,016 A14,07 MASK TO LOAD CLASS 18940 LX,1 B2,2,B1 SYM REFERENCE OF AAAA 18950 LA,015 A0,2,B1 1D OF ITEM 18960 LMJ B11,SXTA2 18970 SA,S1 A15,2,B1 . STORE CORRECTED ID 18980 LX,1 B2,1,B1 18990 LA,015 A0,1,B1 1D OF ITEM 19000 LMJ B11,SXTA2 19010 SA,015 A15,1,B1 STORE CORRECTED 1D 19020 J SXT1 19030 SXTA2 TE,M A0,2 19040 J 1,B11 . OPERAND WAS NOT VARIABLE 19050 AND,013 A14,2,B2 CHECK FOR CLASS = 7 19060 TE,016 A15,7 19070 J 1,B11 19080 LA,014 A0,2,B2 19090 AND,M A0,7 TYPE IS NOW READY TO INDEX WITH 19100 NOP 0,0 19110 EX $+1,A1 J 0,B11 19130 LA,016 A15,13 STATEMENT LABEL 19140 LA,016 A15,14 FORMAT 19150 LA,016 A15,03 HOLLERITH AUGUMENT 19160 J SXTB7 UNASSIGNED 19170 J SXTB7 5 UNASSIGNED L,M A15,2 . NAMELIST TABLE TREAT AS ARRAY SXTB J SXTB1 CONSTANT IN SYMBOL TABLE 19180 J SXTB2 VARIABLE ITEM 19190 J SXTB4 EXPRESSION ITEM 19200 J SXTB6 INDUCTION VARIABLE 19210 J SXTB8 CONSTANT IN ITEM 19220 J SXTB9 LOGICAL CONSTANT 19230 J SXTC1 DROPOUT 19240 LA,016 A15,9 SUBSCRIPT CODE ITEM 19250 LA,T2 A14,0,A3 . NUMBER OF EQUIVALENT SUBEX 192600 SA,5 A14,TA ADD NUMBER TO FILE ITEM 19270 SA,015 A15,TA 19280 LA,010 A14,1,A3 TRANSFER TYPE FROM ZZ 19290 SA,014 A14,TA 19300 LA A15,TA 19310 J 0,B11 19320 SXTB1 LA,016 A15,3 1D FOR CONSTANT 19330 SXTB3 SSC A2,34 LEFT SHIFT OF 2 19340 A,H2 A2,CRISYM L,S3 A6,2,A2 SSL A6,3 . SET MODE OF VARIABLES FROM SYMBOL TABLE TNE,M A15,2 S,S3 A6,TA SXTB5 SA,1 A2,TA 19360 SA,015 A15,TA 19370 LA A15,TA 19380 J 0,B11 EXIT 19390 SXTB2 LA,016 A15,2 ID FOR VARIABLE 19400 J SXTB3 19410 SXTB4 LA,016 A15,5 ID FOR EXPRESSION 19420 J SXTB5 19430 SXTB6 LA,016 A15,1 ID FOR INDUCTION VARIABLE 19440 TNZ CHTFLG IF ITEM TO BE LOOKED AT AGAIN LEAVE PLATEAU LA,1 A2,LOOP+1,A2 REPLACE PLATEAU WITH SYMBOL TABLE 19450 J SXTB5 19460 SXTB8 LA,M A15,3 . CONST. ID 19470 SR,014 R4,TA STORE TYPE FOR CONSTANT IN ITEM 19480 J SXTB5 19490 SXTC1 LA,M A15,7 . DROP OUT ID 19500 J SXTB5 19510 SXTB7 XER 29 . XPRIME IS INVALID 19520 SXTB9 LA,M A15,3 . ID FOR CONSTANT 19530 SR,014 R6,TA TYPE FOR LOGICAL CONSTANT 19540 J SXTB5 19550 SXTDL LA A10,(04,0) AND,M A12,040 JNZ A13,SXTDL1 SXTDL2 AND,M A12,020 JNZ A13,SXTDL3 J 0,B10 SXTDL1 OR A10,2,B1 SA A11,2,B1 J SXTDL2 SXTDL3 OR A10,1,B1 SA A11,1,B1 J 0,B10 . THIS SUBROUTINE IS ENTERED EVERYTIME A STATEMENT WHICH CONTAINED POLISH 19570 . OR A BEGIN DO ARE SENT TO F50. THIS SUBROUTINE SEARCHES THE TABLE 19580 . TF51 FOR EXPRESSIONS TO EVALUATE 19590 EXX* S,H2 B11,EX1X TZ DELF J $+3 TZ LIFFLG EXPRESSIONS WERE PUT OUT AT LOGICAL IF SEPAT J 0,B11 DO IDX=1 , TZ DX9 195910 DO IDX=1 , SLJ XD9 195920 MVW CTF51 EXS . SAVES COUNT FOR REPEATED SEARCHES MVW SEQNX FLST . STATEMENT TYPE FOR INSERTED EXPRESSIONS LX B9,(1,0) TZ DELF LX B9,NSTRS IN DELETE MODE ADD ON TO EXS EX1A LA,H2 A10,SEQNX . SEQUENCE TO SEARCH FOR 196100 SSC A10,15 A POSISTION WHERE IT CAN BE USED T19620 LR,H2 R1,EXS LX B1,EXS LR R2,(0777770,0) . SEQ. NO. CH. MASK 196400 EX3EA MSE A10,TF51-1,*B1 J EX4E SX B1,EXS DO IDX=1 , TZ DX9 196710 DO IDX=1 , SLJ XD9A 196720 LA,S3 A0,TF51,B1 AND,M A0,3 J $+1,A1 J EX3E . TYPE = 0 J EX2S . TYPE = 0, ONLY REMOVE ON SECOND SEARCH J EX1B . SEND ITEMS TO FILE 40 J EX2B SEND ITEMS TO FILE 50 EX2S AND,M A0,070 SA,S3 A1,TF51,B1 J EX3EA EX3E LR R15,TF51,B1 SR R15,SORT+60,*B9 SXLOC A0 SORT+59,B9,T3 GET EXPRESSION LOCATION LN,T3 A1,3,A0 COMPLEXITY COUNT S,H1 A1,SORT+59,B9 SZ,S1 SORT+59,B9 MOVE COMPLEXITY COUNT J EX1F EX1B LX,T3 B2,TF51,B1 . LOC IN XF51 WHERE ITEMS ARE L,M A15,5 FXX XF51,B2 F40 FXX XF51+1,B2 F40 EX1BC . COMMON FOR F40 AND F50 DO IDX=1 , TZ DX9 DO IDX=1 , SLJ XD9J LX,T3 B6,TF51,B1 TNE,S1 A15,XF51,B2 J EX1CX . PUT USAGE MARK INTO FILE EX1D AAL XF51,CXF51,B6 . MAKE THIS LOCATION AVAILABLE J EX1F 19860 EX2B LX,T3 B2,TF51,B1 . LOC IN XF51 WHERE ITEMS ARE L,M A15,5 FXX XF51,B2 F50 FXX XF51+1,B2 F40 J EX1BC EX1CX SZ INSERT . SET UP INITIAL CONDITIONS SZ INSERT+1 . FOR USAGE INDICATORS MVW XF51,B2 INSERT+2 DO IDX=1 , TZ DX9 DO IDX=1 , SLJ XD9K LX,M B1,2 SR,H2 R6,INSNO LMJ B10,USA . PUT USAGE INDICATOR INTO FILE S,H2 B6,EXC1X SBXLNK SXLOC A3 INSERT+2,0,T3 NKSBX LMJ B11,ITVSY FORCE COMMON BIT AND MOVE BACK TO L B6,EXC1X REENT J EX1D EX1E LA,016 A1,07777 MASK TO LOAD EXPRESSION NUMBER 19930 EX1EQ1 SR R4,SXDF SXLOC A3 SORT+60,B9,T3 NKSBX AX,M B9,1 NKSBX S B9,EXS NKSBX L,T1 A2,1,A3 EXPRESSION NUMBER NKSBX DO IDX=1 , TZ DX9 199810 DO IDX=1 , SLJ XD9B 199920 SZ SXCT LX B4,0 199910 LX B5,0 199920 LA,010 A10,0,A3 20000 TNE,M A10,14 TREAT SUBSCRPT DEFINERS DIFFEREN 20010 J EX1J IN THAT NO = IS DEFINED 20020 L,T1 A1,1,A3 NKSBX L,H2 A1,SUBEXD,A1 NUMBER OF USES NKSBX SA A1,SXCT . FOR CODE GENERATION LX,016 B4,3 EXPRESSION IS FORMED STARTING AT I20050 LX,016 B5,1 EXPRESSION IS FORMED AT FIRST TRIA20060 L,S4 A14,2,A3 SSL A14,3 JNB A14,EX1EJ EXPRESSION DID NOT CONTAIN INDUCTION VARIABLE LA A14,3,A3,S4 SSL A14,3 TNE,M A14,3 J EX1EK . SUBEXPRESSION FROM IND VAR SUBSCRIPTS EX1EJ SA A2,INSERT+2 LMJ B11,RSB THIS SECTION CHANGES SUBEXPRESSION20080 ANX,M B5,2 20090 MVW INSERT+3,0,S3 INSERT+2,0,S3 . TRANSFER MODE SR,S3 R15,INSERT+1 SR,S3 R15,INSERT . MODE TO OPERATOR SX,1 B5,INSERT+1 STORES TRIAD NUMBER 20100 LA,M A0,EQM . ID AND TYPE FOR EQUALS 20110 SA,7 A0,INSERT 20120 L,M R15,5 S,S1 R15,INSERT+2 . ID FOR EXPRESSION L,M R15,6 S,S1 R15,INSERT+1 ID FOR TRIAD EX1H SX,1 B4,INSNO 20160 TNZ DELF GO THRU USA TO REFERENCE EXPRESSIONS TZ SXCT . DO NOT PUT OUT CODE IF ZERO OCCURRENCE LMJ B11,TI5 TNZ DELF SBXLNK TZ SXCT SBXLNK J EXE3B SXLOC A3 SORT+59,B9,T3 REMOVE SO IT CAN NOT BE FOUNDSBXLNK SLJ DLINK SBXLNK L A0,SORT+59,B9,T3 SBXLNK AAL SUBEXD,NEXD,A0 SBXLNK IFL CSUBXD 1 SBXLNK J EXE3B SBXLNK EX1EK TNZ,H2 LOOPNU J EX1EJ . CLEAN OUT TABLES AT LEVEL ZERO LA,M A0,1 SZ SXDF . CLEAR FLAG IF EXPRESSION WAS NOT REMOVED J EX1J2 EX1F LA A0,CTF51 202200 LX B1,EXS AN,M A0,1 202300 SA A0,CTF51 202400 LA A15,TF51,A0 . AND LAST ITEM IN TABLE IS STORED ON. 20250 SA A15,TF51,B1 20260 J EX1A 20270 EX1G LMJ B11,RSB 20280 J EX1H 20290 EX2J MV INSERT+2,INSERT+1 202910 J EX3J 202920 EX1J LA A14,3,A3,S4 203000 SSL A14,3 203010 TP 2,A3 REFERENCE BY DELETED EXPRESSION TZ SXCNT SXLNK SR,H2 R4,SXCT . CODE FOR SUBSCRIPTS IS ALWAYS GENERATED L,S4 A12,2,A3 SSL A12,3 EXPRESSION DID NOT CONTAIN INDUCTION VARIABLES TNZ,S6 1,A3 TEST FOR DESTROYED EXPRESSION ITEM JNB A12,$+3 TNE,M A14,3 203020 J EX1J1 . AN INDUCTION VARIABLE CONTO SUBSCRIPT 203030 EX1JJ LX,M B4,0 203020 LXM,M B5,0 20310 SA A2,TX TEMPORARILY SAVE A2 20320 LMJ B11,RSB CONVERT LINKED TRIADS TO SUBEXPR 20330 JE A15,INSERT+1,0,S1 7 EX2J . INVERT IF DUMMY 203310 EX3J LR,S2 R15,INSERT+2 SR,S6 R15,INSERT L,M R15,5 S,S1 R15,INSERT+2 . ID FOR EXPRESSION LA A15,TX 20370 SA,1 A15,INSERT+2 J EX1H 20390 EX1J1 LA,H1 A0,1,A3 203904 SSL A0,6 203912 SA A0,EXPN DO IDX=1 , TZ DX10 203914 DO IDX=1 , SLJ XD10 203915 SX NSEQN,SV7 203914 SX B8,SV8 203915 JE A15,1,A3,S6 074 EX1JJ SPECIAL EXPRESSIONS TO EVALUATE J JNE A15,STTYA,0,S2 025 PSEX LMJ B11,PSE . CONSULT DON ABOUT SUBSCRIPT 203916 SZ LADEF CLEAR DEF PT FOR LOOP ITEMS DO IDX=1 , TZ DX10 203917 DO IDX=1 , SLJ XD10A 203919 LX B8,SV8 203917 LX NSEQN,SV7 203918 SXLOC A3 EXPN,0,T3 SXLNK JNZ A0,EX1J2 LX,M B4,0 LX,M B5,0 LMJ B11,RSB . REMOVE SUBSCRIPT FROM TABLES LA A0,EXPN AU,M A0,01000 SBXLNK TG,M A1,LEXD SBXLNK J EXE3B AAL SUBEXD,NEXD,A1 SBXLNK SXLOC A3 EXPN,0,T3 SBXLNK IFL CSUBXD 1 . ADD IN NEW EXPRESSION NUMBER SBXLNK SLJ DLINK REMOVE FROM LINKING SBXLNK L A0,EXPN SBXLNK J EXE3B SBXLNK PSEX SXLOC A0 0,A3,T1 . SPECIAL CASE FOR EXPRESSIONS SXLNK L,S4 A12,1,A0 ADDED TO DEFINE AN EXPRESSION WITH AND,M A12,2 JNZ A13,EX1JJ XER 75 J EXE3B EX1J2 LX B1,EXS SBT A14,3,A3,S4,010 MARK AS INDUCTION VARIABLE SUBSCRIPT SSC A0,15 L,M A1,07777 SBXLNK AND A1,SORT+59,B1 LX B1,CTF51 A A2,A0 . ADD NEW SEQUENCE NUMBER FOR NEXT SA A2,TF51,B1 AX,M B1,1 SX B1,CTF51 SZ SXDF J EXE3B EX4E TNZ,M 0,B9 J *EX1X REENT TZ DELF J EX1XDL SPECIAL DELETE MODE SX B9,NSTRS MVW (1,0) EXS SET UP COUNT LMJ B11, N3SRT1 + SORT+60 + NSTRS EXE3B LX B9,EXS NOP 0,0 LA,M A15,0,B9 TE,H2 A15,NSTRS J EX1E GO EVALUATE EXPRESSION J *EX1X . EXIT EX1XDL MVW NSTRS EXS SX B9,NSTRS L,H2 A0,NSTRS AN,H2 A0,EXS J E2XDL $(2) . E2XDL . S,H2 A0,EX1XDM L,M A0,SORT+60 A,H2 A0,EXS S,H2 A0,$+2 LMJ B11,N3SRT1 +$-$ +EX1XDM J EXE3B EX1XDM +0 $(1) . . THIS SECTION PUTS OCCURRENCE MARKS FOR AN EXPRESSION INTO F50. AS EAC 21600 . H ITEM IS PICKED UP TO BE SENT TO F50, A TEST IS MADE TO SEE IF THE 21610 . ITEM IS AN EXPRESSION, IF IT IS A BRANCH IS MADE TO THIS SECTION. 21620 . THE LOCATION OF THE ITEM RELATIVE TO INSERT IS B1 UPON ENTERING 21630 . THIS SECTION STORES THE ITEM IN A0 INTO THE NEXT AVAILABLE LOCATION 21650 USA* L,T3 A2,INSERT,B1 LNKSBX SA,5 A2,LSOC STORES EXPRESSION NO. IN LAST OCCUREN 21670 SA A2,B3 . SAVE EXPRESSSION NUMBER DO IDX=1 , TP,XH2 SUBEXD,A2 DO IDX=1 , J $+3 . SUBEXD REFERENCE IS GARBAGE DO IDX=1 , TZ DX5 DO IDX=1 , SLJ XD5 L,T1 A11,INSERT-2,B1 . IF EXP IS BEING DEFINED = TWO BACK LA,7 A13,INSERT-1,B1 TEST TO SEE IF PREV OPER IS SUB DEFIN 21690 TNE,M A11,01001 . TEST FOR EQUALS J USA1 ITEM WAS = 21730 TNE,M A11,01016 . TEST FOR SUBSCRIPT DEFINER J USA1 . SUBSCRIPT DEFINER SAME AS EQUALS 217310 TNE,M A13,01017 J USA2 LA,M A12,7 USAS6 SA,S2 A12,LSOC . STORES TYPE OF EXPRESSION SXLOC A14 A2 LNKSBX L B4,A14 LNKSBX TE,M A12,5 J USA62 . COUNT UP NUMBER OF USES USA61 LA,H1 A2,SUBEXD,A2 SSL A2,9 JNZ A2,USA5 . THIS IS NOT THE LAST OCCURRENCE TNE,M A12,5 J USAX . AN EXPRESSION IS BEING DEFINED WITHOUT USE SZ,6 LSOC OCC IN LSOC IS SET TO ZERO ON LAST US 21810 TZ,T3 4,B4 . TEST USE FIELD J $+3 TZ DELF J 0,B10 SKIP OCC ENTRY IN DELETE MODE IF NO USES FAL OCC,USEL,B2 . FIND NEXT LOCN IN OCC LA A1,B2 SSC A1,27 AA,H1 A1,SUBEXD,B3 SA,H1 A1,SUBEXD,B3 LA A15,CF50 SN A15,OCC,B2,H1 LA A15,CF40 SN A15,OCC,B2,H2 TNZ DELF SR,H2 R4,SUBEXD,B3 SET USAGE COUNT TO ONE SBXLNK USAS5 FXX LSOC F50 . FILE LAST OCCURRENCE 221400 TE,M A13,01017 ID AND TYPE FOR SUBSCRIPT DEFINER 22170 J 0,B10 EXIT OF ROUTINE 22180 FXX LSOC F40 . FILE FINAL OCCURRENCE L A0,(1,0) INITIALIZE COUNT AT ONE LXM,T3 A0,LSOC L A1,USE3CT NUMBER OF ENTRIES IN USE TABLE S A0,USE3,*A1 . S A1,USE3CT J 0,B10 22210 USA62 . LNKSBX TZ DELF IN DELTE MODE EFFECTIVELY J USA63 DO NOT REFERENCE OTHER EXPRESSIONS IFL SUBEXD,A2,H2 1 . INCREASE NUMBER OF USES LNKSBX J USA61 LNKSBX USA63 SBT A6,2,B4,S1,040 SHOW REFERNECED FROM DELETED EXPRESSION J USA61 USA1 TZ DELF IF EXPRESSION IS BEING DELETED J 0,B10 NO FURTHER PROCESSING REQUIRED TZ USAFZZ AN EXPRESSION IS BEING USED TO LEFT OF EQUALS J USAS6-1 OF THE EQUALS NOT DEFNEDP L,M A12,5 J USAS6 22260 USA5 TNE,M A13,01017 J USAC1 TNE,M A11,01016 J USAC1 . SUBSCRIPTS REQUIRE EXTRA STEPS USA51 LN A6,CF50 ANU,2 A6,OCC,A2 SUBTRACTS PREVIOUS CF50 22340 S,H1 A6,OCC,A2 S,T2 A7,LSOC . STORES DIFFERENCE JE A5,LSOC,0,S2 5 USA52 USAC3 S A2,B2 FXX LSOC F50 . FILE LAST OCCURRENCE USAC31 LA,S2 A6,LSOC AND,M A6,7 TE,M A7,5 J 0,B10 AAL OCC,USEL,B2 . MAKE LOCN AVAILABLE SZ,H1 SUBEXD,B3 . L,M A0,01000,B3 ADD LOCATIOON 1000 HIGHER WHEN DEFINED SBXLNK TG,M A0,LEXD IF WITHIN RANGE OF TOTAL SUBEXD SBXLNK J UJACK . DELINK IF NUMBER CAN NOT BE ADDED SBXLNK AAL SUBEXD,NEXD,A0 SBXLNK IFL CSUBXD 1 . ADD IN NEW EXPRESSION NUMBER SBXLNK UJACK SXLOC A3 B3 SBXLNK SLJ DLINK . REMOVE FROM CHAIN BEFORE REUSING NUMBER SBXLNK J 0,B10 SBXLNK USAC1 LN A6,CF40 ANU,1 A6,OCC,A2 . SUBTRACTS 1REV CF40 224700 SA,1 A6,OCC,A2 . STORES NEW CF40 224800 SA,6 A7,LSOC STORES DIFFERENCE 22490 SA A2,SAVE . PROTECT FROM FILING ROUTINES FXX LSOC F40 FINAL OCC. L,H2 R1,USE3CT NUMBER OF ITEMS IN USE TABLE L A2,(1,0) L,T3 A7,LSOC EXPRESSION NUMBER SE,H2 A7,USE3,*A2 J USAC1J L,H1 A6,USE3-1,A2 A,M A6,1 S,H1 A6,USE3-1,A2 LA A2,SAVE J USA51 225400 USAC1J A A7,(1,0) IF A SUBSCRIPT EXPRESSION IS USED S A7,USE3,A2 ARITMETICALLY ALSO ITS LAST USE MAY NOT . S A2,USE3CT HAVE BEEN WITH AN 01017 L A2,SAVE J USA51 USA2 LA,M A12,1 LA,M A0,0,B5 ANA,M A0,1 AN,H2 A0,INSERT+1,B1 . TRIAD REF OF OFFSET MSI,M A0,3 NOP TP,XH2 INSERT+1,A0 . TEST FOR NEGATIVE OFFSET AA,M A12,040 . BIT FOR NEGATIVE OFFSET SA,S2 A12,LSOC J USAS6 22660 USA52 LA,2 A6,OCC,B2 . LOADS NEXT OCCURRENCE 227210 TG,XH2 A6,FLBG . TESTS TO SEE IF OCCURRENCE AND USE AT SAME LEVEL J USAC3 227230 SBT A6,LSOC,0,S2,040 . FLAG FOR DEF AND USE AT SAME LEVEL 227240 J USAC3 227250 USAX TNZ DELF J USAS5 XER 65 . A NON DEFINED ALREADY ELIMINATED EXPRESSION . THIS SECTION PUTS A USAGE INDICATOR INTO F40 WHENEVER A LABEL, IF SEP 23000 . ARATOR, GO TO, ARITHMETIC IF STATEMENENT TYPE. STATEMENT 23010 . REFERENCE OR BEGIN OR END DO IS MET ON SENDING ITEMS TO 23020 . F50 AND AN INDICATOR OF THIS TYPE HAS NOT BEEN SENT SINCE THE 23030 . LAST END DO WAS MET. 23040 USC* TZ FLND 23050 J 0,B11 AN INDICATOR HAS BEEN SENT SINCE THE 23060 SR R4,FLND SET FLAG TO ONE SO NO MORE WILL BE SE 23070 SX,H2 B11,USCX SAVES EXIT 23080 FXX CLB F40 230810 J *USCX REENT $(2) SENDX* J $-$ REENT GABCLX* +0 . SEQUENCE NUMBER TO CHECK AGAINST FOR GAR COL B3SSB9 +0 REENT EX1X* J $-$ REENT EXC1X +0 REENT USCX J $-$ REENT END