$(1) . RGS . DEFINE THE REGISTERS CONTR . TRIAD DEFINITION LIT . . THIS SUBROUTINE IS ENTERED WHENEVER A COMMA OR COLON IS IN THE CURRENT . TRIAD AND THE FUNCTION LEVEL IMPLIES A STATEMENT FUNCTION. . ON ENTERING B6 CONTAINS THE CURRENT FUNCTION LEVEL . FOR EACH STATEMENT FUNCTION A COMMA COUNT IS KEPT IN S2 OF FNX FOR THE . CURRENT FUNCTION LEVEL. . AS EACH ARGUMENT IS OBTAINED (THE ARGUMENTS ARE THE OPERANDS OF THE COMMA . AND COLON THEY ARE STORED IN A TWO WORD LINKED TABLE (XF51). THE FIRST . WORD OF EACH ENTRY REPRESENTS THE ITEM AND THE SECOND IS A LINK TO . THE NEXT ITEM AT THE SAME FUNCTION LEVEL. . THE TRIADS REPRESENTING THE COLON ARE NOT INSERTED IN THE TABLE BUT AFTER . THE ARGUMENT ASSOCIATED WITH THE COLON HAS BEEN INSERTED IN XF51. THE . LOCATION WHERE THE POLISH MASK IS STORED IS DETERMINED FROM 1+2 OF THE THIRD . WORD OF THE SYMBOL TABLE FOR THE STATEMENT FUNCTION ENTRY . AS THE POLISH MASK IS READ THE ARGUMENTS ARE REPLACED BY THEIR VALUES . GIVING IN LINE CODE . . . TWO NEW F30 ITEMS ARE REQUIRED BY THIS PROCESS . ID OCTAL 43 IS A DUMMY PARAMETER ITEM FOR A STATEMENT FUNCTION . ID OCTAL 44 IS AN END ITEM FOR POLISH MASK. FORMG FORM 5,7,6,1,1,16 ILSF* . THIS SECTION STORES THE ARGUMENTS FOR STATEMENT FUNCTIONS IN XF51 TZ DX2 SLJ XD14 L A2,FNX,B6,S2 . COMMA COUNT L B5,SFMSK,B6 . LAST LOCATION USED IN XF51 JNZ A2,ILSF1 JE A15,COPER,0,S2 16 ILSF1B . TEST FOR FUNCTION WITH NO ARG L R15,COPND1 L A15,COPND2 S A15,COPND1 S R15,COPND2 ILSF1A SLJ ILSFF S,H1 B2,SFMSK,B6 S,T3 B2,SFMSK,B6 MVW COPND2 XF51,B2 . MOVE ITEM JNE A15,COPND2,0,S1 5 ILSF2 SXLOC A3 COPND2,0,T3 LNKSBX LN,M A15,1 JE A14,FNX,B6,S1 1 ILSF2 . TEST CHARACTER FUNCTION SLJ CNTJ ILSF2 SR R4,FNX,B6,S2 . SET COMMA COUNT TO ONE SR R4,XF51+1,B2 . SET TO INDICATE NO MORE LINKS ILSF1 IFL FNX,B6,S2 1 . UP COMMA COUNT JE A15,COPER,0,S2 16 ILSFCL SLJ ILSFF L,H1 B5,SFMSK,B6 . LAST LOCATION AT THIS FUNCTION LEVEL S,H1 B2,SFMSK,B6 S,H1 B2,XF51+1,B5 . LINK ARGUMENTS TOGETHER LX,M B3,0 LA,S2 A15,FNX,B6 . FOR THE THIRD AND HIGHER ARGUMENTS TG,M A15,3 . COPND2 NOT COPND1 MUST BE TRANSFERRED AX,M B3,1 . HERE NOP . CSC24 MVW COPND1,B3 XF51,B2 JNE A15,COPND1,B3,S1 5 ILSF3 SXLOC A3 COPND1,B3,T3 . GET EXPRESSION LOCATION LN,M A15,1 JE A14,FNX,B6,S1 1 ILSF3 . TEST CHARACTER FUNCTION SLJ CNTJ ILSF3 MVW FNX,B6,S2 XF51+1,B2 LA A5,(070000,0) . DUMMY TO REPRESENT COLLAPSED TRIAD S A5,CONRD J HC ILSF1B JNE A15,COPND2,0,S1 7 ILSF1A ILSFCL L A0,COPND1 . SYM TABLE LOCATION OF STATEMENT FUNCTION MVW GETF SFMSK,B6,S4 . SAVE GET CONTROL SA,H2 A0,FDPX NAME OF ACTUAL COMPUTE POINT S A0,DEFNAM MVW COPER,0,S3 F31CT,0,S1 L A12,0,A0 . NAME OF FUNCTION MVW SFGT SFMSK,B6,H1 . SAVE CURRENT INDEX L,H2 A0,2,A0 . START OF STATEMENT FUNCTION CSC23 A A0,(1,SYM+1) S A0,SFGT L,M R15,4 S R15,GETF . SET TO READ POLISH MASKS SLJ SETF31 . SET F31 TO GO FOR ITEM AT END OF DFUNCTION CSC23 J GET ILSFFR LX,H1 B2,CXF51 REENT NOP TNZ,M 0,B2 J $+6 L,H1 A15,XF51,B2 S,H1 A15,CXF51 TG,H2 A15,CXF51 S,H2 A15,CXF51 . SET SO DIAGNOSTIC CAN PRINT FULL TABLE J *ILSFF XERF ERRAX+24 . PARAMETER STORAGE EXCEEDED XER 105 SFDP* . THIS ROUTINE LOCATES AN ARGUMENT OF A STATEMENT FUNCTION L,M B11,ITV SFDP1* L B6,FNC . CURRENT FUNCTION LEVEL AN,S4 B6,FL30 L,T3 A1,SFMSK,B6 JZ A1,SFDP5 SFDP3 L,H2 A2,XF51+1,A1 TE,T3 A2,FL30 J SFDP2 . NOT CORRECT ARGUMENT L A0,XF51,A1 SR,S1 R4,XF51+1,A1 L,S3 A2,FL30 SIGN S A0,FL30 XOR,S3 A2,XF51,A1 S,S3 A3,FL30 TZ DX1 SLJ SFDXX CSC16 L A4,FL30 J 0,B11 SFDP2 L,H1 A1,XF51+1,A1 SSC A1,12 SSL A1,24 JNZ A1,SFDP3 SFDP5 . S,H2 B11,SFDP4 XERF ERRAX+22 . PARAMETER COUNT OFF L A1,(030100,0) S A1,FL30 J *SFDP4 $(1) . REENT SFND* DFL FNC 1 . COUNT DOWN FUNCTION LEVEL CSC24 L B6,FNC NOP MVW SFMSK+1,B6,H1 SFGT,0,H2 MVW SFMSK+1,B6,S4 GETF . RESTORE FOR THIS FUNCTION LEVEL SFNDC* . ENTRY POINT FOR CHARACTER OPERATIONS L,T3 A2,SFMSK+1,B6 L A11,A2 JZ A2,SFND2A SFND1 L,H1 A10,XF51+1,A2 . LOCATION OF NEXT ARGUMENT SSC A10,12 SSL A10,24 TZ,S1 XF51+1,A2 . TEST FOR REFERENCED ARGUMENT J SFND1J SN,H2 A11,FL30 . FLAG FOR NOT REFERENCING ARGUMENT L,S1 A3,XF51,A2 . TEST IF ARG IS EXPRESSION TE,M A3,5 J SFND1J SXLOC A3 XF51,A2,H2 SBT A14,2,A3,S1,040 . REFERENCED FROM DELETED EXPRESSIO SFND1J L,T3 A11,XF51+1,A2 AAL XF51,CXF51,A2 . ADD LOCATION TO LINKED LIST TP,XH2 XF51+1,A2 SLJ XERV SN,H2 A2,XF51+1,A2 L A15,SEQNO S,H1 A15,XF51+1,A2 JZ A10,SFND2A L A2,A10 J SFND1 SFND2A TNE,H2 A11,FL30 NUMBER ARGUMENTS CALLED AGAINST NUMBER DEFINED J SFND2 XERF ERRAX+26 UNREFERENCED DEFINE ARG SFND2* TNZ,H1 FL30 . TEST FOR CHARACTER ENTRANCE J 0,B11 . RETURN TO CHARACTER PROCESSING TNZ F31F J $+3 CSC24 SZ F31F . OUT OF STACK WITHOUT GOING TO GET CSC23 J TRZZ CSC23 L A0,F31C ANU,M A0,1 CSC23 MVW F31PD-1,A0 F31CT CSC24 MVW SFDPX-1,A0 FDPX . RESTORE COMPUTE POINT LINKING TNZ A1 SZ FDPX S,H2 A1,F31C L,S1 A14,F31CT SIGN SAVED FOR THIS LEVEL XOR,S3 A14,F31-1,NSEQN. IS PUT ON TO COLLAPSED CSC27 S,S3 A15,F31-1,NSEQN. REFERANCE CSC27 L A5,F31,NSEQN L,M A15,0,NSEQN . SUBSCRIPT LEVEL L B6,SUBLV . SUBSCRIPT NESTING LEVEL AN,M A15,1 TE,H1 A15,SUBXT,B6 J $+4 L,H2 A0,SUBXT,B6 . RETURN TO SUBSCRIPT PROCESSOR AN,M NSEQN,1 J 0,A0 TNZ GESUFL TEST IF DEFINE TERMINATED WITHIN A SUBSCRIPT J GET CSC23 J *GESUFL YES IT DID . THE FOLLOWING SECTION MAINTAINS A PUSHDOWN LIST OF LOCATIONS BELOW CSC23 . WHICH F31 CAN NOT DROP WITHOUT BEING CSC23 STF31R SZ,H1 FDPX INITIALIZE REENT TNZ SFGT . IF NO POLISH MASK, J STF31A . AVOID FOLLOWING L B10,SFGT . LOCATION OF POLISH MASK ANX,M B10,1 MVW 0,B10,H2 FDPX,0,H1 . NAME OF ACTUAL VARIABLE STF31A L,H2 A2,FDPX L A0,F31C . SAVE CURRENT FLAG L,H1 A14,2,A2 MVW F31CT F31PD,A0 AND,M A14,04001 TEST FOR STATEMENT FUNCTION TE,M A15,04001 WHICH CAN APPEAR TO THE LEFT OF AN EQUALS SZ FDPX MVW FDPX SFDPX,A0 . SAVE DEFINITION POINT INFO CSC24 MVW DEFNAM DFNMX,A0 A,M A0,1 CSC23 S,H2 A0,F31C S,H2 NSEQN,F31CT . NEW VALUE TO ACT AS STACK MARKER J *SETF31 USF31* L A0,F31C CSC24 ANU,M A0,1 CSC23 MVW F31PD-1,A0 F31CT. CSC27 MVW SFDPX-1,A0 FDPX. CSC27 MVW DFNMX-1,A0 DEFNAM L,S1 A14,F31CT SIGN SAVED FOR THIS LEVEL XOR,S3 A14,COPND1 S,S3 A15,COPND1 S,H2 A1,F31C TNZ A1 SZ FDPX S R4,F31F CSC23 J GET . THIS SHOULD READ AN END OF MASK MARK CSC23 $(2) ILSFF J $-$ REENT J ILSFFR REENT SFDP4 J $-$ SETF31* J $-$ REENT J STF31R REENT END