$(1) LIT PREQ . SCAN EQUIVALENCE STATEMENT 109700 . 109800 EQU* S,H2 B11,EQ30 109900 S B4,EQ11 110000 S B5,EQ12 110100 L B4,(2,0) . INITALIZE PRESYM INDEX MTFSYM L A3,(-0103,-1) . EQVT LINK-FLAG MTFSYM S A3,MLINK MTFSYM EQ300 LMJ B11,GX 110300 J EQ301 110400 TE,M A0,'(' 110500 LMJ B11,ERR2 110600 SZ CFLG CLEAR FLAG EQ302 LMJ B11,GIT MTFSYM J EQ301 EOS 110800 TNE,M A2,3 110900 J EQ303 ITEM=VAR NAME 111000 LMJ B11,ERR4 111100 J EQ40 ERROR 111200 EQ303 LMJ B11,GLG GET SYM 111300 J EQ304 NOT IN 111400 L,H1 A2,2,A1 111500 AND,M A2,7 111600 TE,M A3,05 C=05 FOR DUMMY ARG S,H2 R15,CFLG SET FLAG FOR NON-DUMMY ARG J EQ21,A3 BRANCH ON CLASS EQ311 S,H1 R15,CFLG J EQ305 . 111900 EQ301 LMJ B11,PERR 112000 FORM6 0,4,0 112100 J EQ40 112200 . 112300 . 112400 EQ307 LMJ B11,PERR (C=OTHER) 112500 FORM6 031,2,SYMV 112600 EQ304 L,H1 A2,2,A1 NOT IN SYM AND A2,(0770000) 112800 L A2,A3 0 IN DIODE 112900 S,H2 R15,CFLG SET FLAG FOR NON-DUMMY ARG J EQ305 113000 . 113100 EQ306 SLJ DEINTX CHECK TO SEE IF INTRINSIC IS LOCAL EQ306 L A7,A2 . SAVE CURRENT MODE FIELD SLJ DEINTX AND,M A7,070 . EXTRACT TYPE FIELF S,S3 A8,2,A1 . RESTORE ORIGINAL TYPE L,H1 A2,2,A1 . RELOAD WITH CHANGED FIELD AND,M A2,01000 JNZ A3,EQ307 EQ305 AND,M A2,02000 (C=0,5), (C=6,F=0) 113400 TZ A3 DOES CM=0 113500 S R15,FEQ ITEM APPEARED IN COMMON PREVIOUSLY113600 OR,M A2,04000 T=0,1,2,3,4,5-SET EQ BUT 114100 S,H1 A3,2,A1 ENTER MODE 114200 TNZ,H1 3,A1 DP1=0 114300 J EQ308 YES 114400 LMJ B11,PERR NO-SYMV HAS BEEN DEFINED 114500 FORM6 031,92,SYMV 114600 EQ308 S A1,PRESYM,B4 . SYMV MTFSYM LMJ B11,GX 114800 J EQ301 EOS 114900 L,S4 A2,FLD6,A0 115000 SZ PRESYM+1,B4 . 0 F FIELD IN J+1 MTFSYM J *EQ22,A2 BRANCH ON X 115200 . 115300 EQ310 LMJ B11,PERR X=OTHER 115400 FORM6 011,9,GXX 115500 EQ309 SZ,S1 PRESYM,B4 SZ,S2 PRESYM,*B4 J EQ302 115700 . 115800 EQ500 S B5,EQ13 115890 L A1,PRESYM,B4 . SYM POINTER TO VARIABLE L,S3 A2,2,A1 . GET MODE FIELD SSL A2,3 A,M A2,1 S A2,EQTFLG . SET FLAG WITH MODE OF VARIABLE S R15,GEICFL MAKE COMMA A SEPARATOR S R15,FEB S R15,PARFLG LMJ B11,SCAR SZ FEB L A6,EQTFLG . CHARACTER OFFSET SZ EQTFLG SZ GEICFL L FNXT,R8 REMEQT L A0,B5 116100 AN A0,EQ13 =B5 116200 TNE,M A0,3 J EQ502 116400 L A0,PRESYM,B4 MTFSYM S,H2 A0,SYMV 116600 LMJ B11,PERR 116700 FORM6 031,45,SYMV ARRAY $ HAS AN ILLEGAL SUBSCRIPT FORM J EQ501J EQ502 L A0,STRING-2,B5 OFFSET IS IN STRING 117000 TNZ,S2 STRING-2,B5 REMEQT LXM A0,0,A0 GET VAR FROM SYM TABLE REMEQT AND A0,(4,0) 117010 TZ A1 IS OFFSET NEGATIVE 117020 LN A0,STRING-2,B5 -YES 117030 S,H1 A0,PRESYM,*B4 MTFSYM L,H2 A1,PRESYM-2,B4 . SYM LINK OF VARIABLE L,S3 A2,2,A1 . TYPE AND MODE FIELD SSL A2,3 TE,M A2,6 . TEST FOR CHARACTER J EQ501J L,S2 A4,2,A1 . NUMBER OF DIMENSIONS AND,M A4,7 L,H2 A3,3,A1 . POINTER TO SYM EXTENSION A A3,A5 . POINTER TO CHARACTER STORAGE L,H2 A4,1,A3 . LENGTH OF ELEMENT MSI,H1 A4,PRESYM-2,B4 . OFFSET AS WRITTEN TP A6 . TEST IF CHARACTER OFFSET PRESENT AN A4,A6 . ADD CHARACTER OFFSET TP A6 . CORRECT OFFSET BY ONE AN,M A4,1 S,H1 A4,PRESYM-2,B4 . OFFSET IN CHARACTERS EQ501J L A0,PARFLG GENSUB L B5,EQ13 REMEQT SZ PARFLG GENSUB J $+3 GENSUB EQ501 LMJ B11,GX 117200 J EQ503 117300 TNE,M A0,',' 117400 J EQ302 X=COMMA 117500 TNE,M A0,')' 117600 J EQ504 X=RIGHT PAREN 117700 LMJ B11,PERR 117800 FORM6 010,9,GXX 117900 SZ FNXT SET NEXT J EQ302 118100 . 118200 EQ503 LMJ B11,PERR 118300 FORM6 010,4,0 118400 . 118500 EQ504 L,M A2,040 118600 S,S1 A2,PRESYM-1,B4 MTFSYM J EQ602 118800 . 118900 EQ600 SZ,H1 PRESYM,B4 MTFSYM L,M A2,040 119100 S,S1 A2,PRESYM+1,*B4 MTFSYM EQ602 L,H1 A0,CFLG IS THERE A MIXTURE OF ARGS TE,H2 A0,CFLG J EQ601 NO,CONTINUE JZ A0,EQ601 LMJ B11,PERR YES,ERROR FORM6 0,190,0 EQ601 LMJ B11,GX J EQ40 EOS 119400 TNE,M A0,',' 119500 J EQ609 L A2,PRESYM-2,B4 MTFSYM S,H2 A2,SYMV 119800 LMJ B11,PERR 119900 FORM6 030,70,SYMV 120000 TE,M A0,'(' J EQ300 SZ CFLG J EQ302 EQ609 L,M A0,0,B4 TLE,M A0,75 J EQ300 L,M A0,PRESYM LXI,M A0,0,B4 LMJ B11,MTLT SLJ SYMOF L B4,(2,0) J EQ300 . 120400 EQ40 L,M A0,PRESYM . LOC OF TABLE MTFSYM L,M A1,0,B4 . POS LENGTH OF TABLE MTFSYM LXI A0,A1 . H1 GETS NEG LNG MTFSYM LMJ B11,MTLT . MOVE TO LINKED TABLE MTFSYM SLJ SYMOF . ERROR SYM OVERFLOW MTFSYM L B4,EQ11 120600 L B5,EQ12 120700 J *EQ30 . 120900 EQ21 J EQ305 C=0 121600 J EQ307 1 121700 J EQ307 2 121800 J EQ307 3 121900 J EQ307 4 122000 J EQ311 5 J EQ306 6 122200 AND A2,(0777070) 7 S,H1 A3,2,A1 L A2,A3 J EQ305 . 122400 EQ22 J EQ309 X=COMMA 122500 J EQ500 X=( 122600 J EQ600 X=) 122700 J EQ310 X=OTHER 122800 . 122900 . EQU CONSTANTS 121100 . 121200 $(2) EQ30 J $-$ SAVES EXIT EQ11 +0 SAVE B4 EQ12 +0 SAVE B5 EQ13 + 0 SAVE B5 121450 CFLG + 0 H1,C EQ 5 H2,C NEQ 5 (EQU) . 121500 END