SUBROUTINE LABEL INTEGER ADDR, ADRFLG, CUROP, NEXTOP, CFLAG INTEGER PI, XBBL, XA, XF, XZERO, DPVFLG INTEGER LC, LCI, LODLCI, LODLCV, LDLCVO, MAXLCV INTEGER NEXT, NUMBER, I, IOTYPE INTEGER J, K, L, LABNLX, M, N INTEGER PSYMB, SYMBOL, TOP, VALFLG, QVALUE INTEGER OPTOPX, OPNXTX, TOPX, NEXTX INTEGER DUMMY, OVCHN, PEEKS INTEGER LO, CI, CO, LOGICF, LOCSUP INTEGER VAREF, INPUTJ, LCTS, CRUCNT, FLTCNT INTEGER ICLP05 LOGICAL ENDOK,CONEND COMMON /LOGOS/ ADDR, ADRFLG, CUROP, NEXTOP, CFLAG COMMON /LOGOS/ PI, XBBL, XA, XF, XZERO, DPVFLG COMMON /LOGOS/ LC, LCI, LODLCI, LODLCV, LDLCVO, MAXLCV COMMON /LOGOS/ NEXT, NUMBER, I, IOTYPE COMMON /LOGOS/ J, K, L, LABNLX, M, N COMMON /LOGOS/ PSYMB, SYMBOL, TOP, VALFLG, QVALUE COMMON /LOGOS/ OPTOPX, OPNXTX, TOPX, NEXTX COMMON /LOGOS/ DUMMY, OVCHN, PEEKS COMMON /LOGOS/ LO, CI, CO, LOGICF, LOCSUP COMMON /LOGOS/ VAREF, INPUTJ, LCTS, CRUCNT, FLTCNT COMMON /LOGOS/ ICLP05 COMMON /LOGOS/ ENDOK,CONEND INTEGER NINE INTEGER COMMA, SEMIC, PERIOD, COLON, FOR, DOOP, WHILE INTEGER RBRACE, LBRACE, RETOP, CRUTCH INTEGER LPAREN, RPAREN, LBK, RBK INTEGER EQUAL, NEQUAL, GTR, GEQ, LESS, LESSEQ, ARROW INTEGER PLUS, MINUS, MULT, DIVIDE, MODOP INTEGER OROP, ANDOP, AOROP, XOROP, AANDOP INTEGER LSHIFT, RSHIFT, LCYCLE, RCYCLE, ALSHFT, ARSHFT INTEGER NEG, UPARO, DNARO, COM INTEGER LOC, GIZZY, QUOTE, ZRL, TEMPL INTEGER SP, DP, ST, HEX INTEGER ATSIGN INTEGER ICLP06 COMMON /OPERS/ NINE COMMON /OPERS/ COMMA, SEMIC, PERIOD, COLON, FOR, DOOP, WHILE COMMON /OPERS/ RBRACE, LBRACE, RETOP, CRUTCH COMMON /OPERS/ LPAREN, RPAREN, LBK, RBK COMMON /OPERS/ EQUAL, NEQUAL, GTR, GEQ, LESS, LESSEQ, ARROW COMMON /OPERS/ PLUS, MINUS, MULT, DIVIDE, MODOP COMMON /OPERS/ OROP, ANDOP, AOROP, XOROP, AANDOP COMMON /OPERS/ LSHIFT, RSHIFT, LCYCLE, RCYCLE, ALSHFT, ARSHFT COMMON /OPERS/ NEG, UPARO, DNARO, COM COMMON /OPERS/ LOC, GIZZY, QUOTE, ZRL, TEMPL COMMON /OPERS/ SP, DP, ST, HEX COMMON /OPERS/ ATSIGN COMMON /OPERS/ ICLP06 INTEGER NI, NJ, NK INTEGER NSIZE INTEGER NLX, FNLX, REMNLX, OVNLX, TNAME INTEGER NLSTRT, NLSTOP, NLSIZE, SRCHST INTEGER NTSTRT INTEGER NTSTOP INTEGER NTSIZE INTEGER PARFLG INTEGER SPARFL INTEGER NLWRDS INTEGER TX INTEGER NLENO INTEGER STDMD INTEGER MSHIFT INTEGER REGCNT INTEGER NULLX INTEGER STPTRX INTEGER SPMODE INTEGER DPMODE INTEGER SPECMD INTEGER ENFLAG INTEGER DFINED INTEGER CVALUE INTEGER NLXLCI INTEGER ENEXTD INTEGER NAMAT0 INTEGER NAMCON INTEGER NLMODE INTEGER PARBIT INTEGER OPBIT INTEGER LOCALB INTEGER REGBIT INTEGER EXTBIT INTEGER STRBIT INTEGER DPBIT INTEGER CBIT INTEGER PBIT INTEGER EPBIT INTEGER IOBIT INTEGER ARBIT INTEGER EXDBIT INTEGER TPLBIT INTEGER USEBIT INTEGER LCMASK INTEGER MDMASK INTEGER NAMLOC, REGNUM COMMON /NLIST/ NI COMMON /NLIST/ NJ COMMON /NLIST/ NK COMMON /NLIST/ NSIZE COMMON /NLIST/ NLX COMMON /NLIST/ FNLX COMMON /NLIST/ REMNLX COMMON /NLIST/ OVNLX COMMON /NLIST/ TNAME COMMON /NLIST/ NLSTRT COMMON /NLIST/ NLSTOP COMMON /NLIST/ NLSIZE COMMON /NLIST/ SRCHST COMMON /NLIST/ NTSTRT COMMON /NLIST/ NTSTOP COMMON /NLIST/ NTSIZE COMMON /NLIST/ PARFLG COMMON /NLIST/ SPARFL COMMON /NLIST/ NLWRDS COMMON /NLIST/ TX COMMON /NLIST/ NLENO COMMON /NLIST/ STDMD COMMON /NLIST/ MSHIFT COMMON /NLIST/ REGCNT COMMON /NLIST/ NULLX COMMON /NLIST/ STPTRX COMMON /NLIST/ SPMODE COMMON /NLIST/ DPMODE COMMON /NLIST/ SPECMD COMMON /NLIST/ ENFLAG COMMON /NLIST/ DFINED COMMON /NLIST/ CVALUE COMMON /NLIST/ NLXLCI COMMON /NLIST/ ENEXTD COMMON /NLIST/ NAMAT0 COMMON /NLIST/ NAMCON COMMON /NLIST/ NLMODE COMMON /NLIST/ PARBIT COMMON /NLIST/ OPBIT COMMON /NLIST/ LOCALB COMMON /NLIST/ REGBIT COMMON /NLIST/ EXTBIT COMMON /NLIST/ STRBIT COMMON /NLIST/ DPBIT COMMON /NLIST/ CBIT COMMON /NLIST/ PBIT COMMON /NLIST/ EPBIT COMMON /NLIST/ IOBIT COMMON /NLIST/ ARBIT COMMON /NLIST/ EXDBIT COMMON /NLIST/ TPLBIT COMMON /NLIST/ USEBIT COMMON /NLIST/ LCMASK COMMON /NLIST/ MDMASK COMMON /NLIST/ NAMLOC, REGNUM LOGICAL MSEEN, SMSEEN, ZFLAG INTEGER SMODE, TPFLAG, DEFMOD, LEVEL INTEGER STOAC, OP COMMON /BPO/ MSEEN, SMSEEN, ZFLAG COMMON /BPO/ SMODE, TPFLAG, DEFMOD, LEVEL COMMON /BPO/ STOAC, OP INTEGER BRACEX, SELX, LSX, SELXB INTEGER FUNCNT, FSCNT, FRCNT, FUNVAL INTEGER NRFLS, ARGSIZ, PARCNT INTEGER BSTACK (10), SUBENT (40) INTEGER FLS (6), PARSAV, FLSAVE (6) INTEGER WHSTRT (30), WHLOW (10), WHHIGH (10) INTEGER LOOPT (10), LOOPE (10), LOOPF (10) EQUIVALENCE (WHSTRT, LOOPT) EQUIVALENCE (WHLOW, LOOPE, WHSTRT (11)) EQUIVALENCE (WHHIGH, LOOPF, WHSTRT (21)) COMMON /BRACE/ BRACEX, SELX, LSX, SELXB COMMON /BRACE/ FUNCNT, FSCNT, FRCNT, FUNVAL COMMON /BRACE/ NRFLS, ARGSIZ, PARCNT COMMON /BRACE/ WHSTRT, BSTACK, SUBENT COMMON /BRACE/ FLS, PARSAV, FLSAVE INTEGER CLRACV INTEGER CLRACX INTEGER CLRSTA INTEGER TRAREG INTEGER SAVREG INTEGER CTFREE INTEGER SETREG INTEGER ICLP11 COMMON /RMCODE/ CLRACV, CLRACX, CLRSTA, TRAREG, SAVREG COMMON /RMCODE/ CTFREE, SETREG COMMON /RMCODE/ ICLP11 INTEGER STK (20, 13) INTEGER NAMEX (40) INTEGER OPX, STKSIZ, OCBIT, FUNBIT, SBIAS INTEGER ICLP14 COMMON /SDEFS/ STK, OPX, STKSIZ, OCBIT, FUNBIT, SBIAS COMMON /SDEFS/ ICLP14 EQUIVALENCE (STK (1,1), NAMEX (1)) INTEGER CODE INTEGER NOUNLC INTEGER DATALC INTEGER COMLOC INTEGER FBLOCK INTEGER ZREL INTEGER ABSLC INTEGER CBTAB (15) INTEGER CBX INTEGER LCTAB (15) COMMON /LCFUNC/ CODE COMMON /LCFUNC/ NOUNLC COMMON /LCFUNC/ DATALC COMMON /LCFUNC/ COMLOC COMMON /LCFUNC/ FBLOCK COMMON /LCFUNC/ ZREL COMMON /LCFUNC/ ABSLC COMMON /LCFUNC/ CBTAB COMMON /LCFUNC/ CBX COMMON /LCFUNC/ LCTAB INTEGER LOWWF, LTLNA, LLPOOL, LLNAME, LMOVEP, LBSS INTEGER LEXEQU, LNLEQU COMMON /LCON/ LOWWF, LTLNA, LLPOOL, LLNAME, LMOVEP, LBSS COMMON /LCON/ LEXEQU, LNLEQU INTEGER LTLI, LLX, LOCNLX (10), LOCTLI (10) COMMON /LABCOM/ LTLI, LLX, LOCNLX, LOCTLI INTEGER WOPTR, WO (64), TLI, TL (128) INTEGER BO, SS, SS2, NRFCH COMMON /SCR1/ WOPTR, WO, TLI, TL COMMON /SCR1/ BO, SS, SS2, NRFCH INTEGER APAREN IF (.NOT. (SPARFL .EQ. 0))GO TO 13000 CALL NDEFN GO TO 13001 13000 CONTINUE DO 13002 LLX = LTLI, TLI IF (.NOT. (TL (LLX) .EQ. -NLX))GO TO 13004 TL (LLX) = LC CALL DEFTL (LLX) 13004 CONTINUE 13002 CONTINUE CALL LIST (LLNAME, NLX, 0) LLX = 1 CONTINUE 13006 CONTINUE IF (.NOT. (LOCNLX (LLX) .EQ. NLX))GO TO 13008 CALL FAULTP (18) GO TO 13007 13008 CONTINUE IF (.NOT. (LOCNLX (LLX) .EQ. 0))GO TO 13010 LOCNLX (LLX) = NLX LOCTLI (LLX) = TLI CALL DEFTL (TLI) TLI = TLI + 1 GO TO 13007 13010 CONTINUE LLX = LLX + 1 IF (LLX .GT. 10) CALL FAULTP (55) IF (.NOT.(LLX .LE. 10))GO TO 13007 GO TO 13006 13007 CONTINUE 13001 CONTINUE LABNLX = NLX CALL REGMAN (CLRACV, 0, 0) CALL SET (0, FLSAVE, 6) DEFMOD = STDMD CALL PEEK IF (.NOT. (PEEKS .EQ. COLON))GO TO 13012 CALL FNZS IF (SPARFL .EQ. 0) CALL NLSET (NLX, EPBIT) 13012 CONTINUE IF (.NOT. (STOAC .NE. 0))GO TO 13014 STOAC = 0 CALL FAULTP (8) CALL SCAN (RBRACE, NINE, FOR) RETURN 13014 CONTINUE CALL PEEK IF (.NOT. (PEEKS .EQ. LBRACE))GO TO 13016 SUBENT (SELX) = 0 CALL STSLX (1) CALL PLBR RETURN 13016 CONTINUE IF (.NOT. (PEEKS .EQ. LPAREN))GO TO 13018 CALL PEEKFO IF (PEEKS .GE. SP) CALL PEEKFO IF (PEEKS .EQ. COMMA) GO TO 1000 IF (.NOT. (PEEKS .EQ. RPAREN))GO TO 13020 CALL PEEKA IF (.NOT. (PEEKS .EQ. LBRACE))GO TO 13022 GOTO 1000 13022 CONTINUE 13020 CONTINUE 13018 CONTINUE RETURN 1000 IF (SPARFL .NE. 0) CALL FAULTP (54) CALL STSLX (1) PARFLG = 1 FUNCNT = FUNCNT + 1 PARSAV = -1 CONTINUE 13024 CONTINUE IF (.NOT.(PARFLG .NE. 0 .AND. NEXTOP .NE. RPAREN))GO TO 13025 DEFMOD = STDMD CALL ADVAN ARGSIZ = 2 IF (.NOT. (NEXTOP .GE. SP))GO TO 13026 DEFMOD = NEXTOP - SP CALL ADVAN 13026 CONTINUE NLX = NAMEX (OPX) CALL RBOTH (NOUNLC) CALL NDEFN CALL NLSET (NLX, PBIT) SUBENT (SELX) = NLX IF (PARSAV .EQ. -1) PARSAV = NLX MAXLCV = MAXLCV + ARGSIZ CALL LIST (LBSS, ARGSIZ, 0) CALL SETLCI CALL STSLX (2) GO TO 13024 13025 CONTINUE PARFLG = 0 CALL RBOTH (CODE) SUBENT (SELX) = PARCNT SELX = SELX + 1 SPARFL = PARCNT CALL ADVAN CALL PLBR LTLI = TLI CALL SET (0, LOCNLX, 10) RETURN END