648 lines
		
	
	
	
		
			38 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			648 lines
		
	
	
	
		
			38 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
00100 .PR NOLIST .PR
 | 
						|
00110 .PR POINT .PR
 | 
						|
00120     #  COPYRIGHT 1982 C.H.LINDSEY, UNIVERSITY OF MANCHESTER  #
 | 
						|
00140 .COMMENT
 | 
						|
00160 ##
 | 
						|
00180 FLOYD PRODUCTIONS FOR ALGOL68S.
 | 
						|
00200 ##
 | 
						|
00220 ##
 | 
						|
00240 PRODUCTION SYNTAX.
 | 
						|
00260 ##
 | 
						|
00280   LABEL:  STACK!INPUT     => X-ROUTN ,N->NOTION  ! (M) SCAN SUCCESS,FAIL;
 | 
						|
00300 ##
 | 
						|
00320   LABEL:  - PRODUCTION LABEL  (DEFAULT: NONE)
 | 
						|
00340   STACK   - STACK CONFIQUATION TO LOOK FOR  (ANY)
 | 
						|
00360   INPUT   - INPUT LEXEME TO LOOK FOR  (ANY)
 | 
						|
00380   X-      - TYPE OF ROUTN
 | 
						|
00400   ROUTN   - SEMANTIC ROUTINE TO CALL  (NONE)
 | 
						|
00420   N->     - NUMBER OF LEXEMES TO POP FROM THE STACK  (0)
 | 
						|
00440   NOTION  - LEXEME TO PUSH ON THE STACK  (NONE)
 | 
						|
00460   (M)     - NUMBER OF INPUT LEXEMES TO SKIP  (0)
 | 
						|
00480   SCAN    - NUMBER OF INPUT LEXEMES TO PUSH ON STACK  (NONE)
 | 
						|
00500   SUCCESS - SUCCESS LABEL
 | 
						|
00520   ,FAIL   - FAILURE LABEL  (FOLLOWING PRODUCTION)
 | 
						|
00540 ##
 | 
						|
00560 PRODUCTION SEMANTICS.
 | 
						|
00580 ##
 | 
						|
00600 IF STACK AND INPUT MATCH THE CURRENT STACK AND INPUT STATES THEN
 | 
						|
00620 THE ACTIONS SPECIFIED TO THE RIGHT OF THE "=>"  ARE OBEYED;
 | 
						|
00640 OTHERWISE CONTROL PASSES TO THE PRODUCTION SPECIFIED BY FAIL.
 | 
						|
00660 ##
 | 
						|
00680 THE RIGHT SIDE IS INTERPRETED AS FOLLOWS.
 | 
						|
00700 IF THE X OF X-ROUTN IS AN 'S' THEN ROUTN SPECIFIES THE SEMANTIC ROUTINE
 | 
						|
00720 TO BE CALLED (ONLY IF NO SYNTACTIC ERRORS HAVE OCCURRED).
 | 
						|
00740 IF X IS AN 'A' THEN AN ACTION ROUTINE IS INDICATED.
 | 
						|
00760 AN 'E' INDICATES AN ERROR MESSAGE TO BE OUTPUT.
 | 
						|
00780 ACTION ROUTINES ARE INVOKED REGARDLESS OF
 | 
						|
00800 PREVIOUS ERRORS AND HELP MAKE PARSING DECISIONS BY RETURNING A
 | 
						|
00820 BOOLEAN VALUE.  IF THE VALUE IS FALSE, THE PRODUCTION FAILS AND
 | 
						|
00840 THE FAIL EXIT IS TAKEN IMMEDIATELY.
 | 
						|
00860 ##
 | 
						|
00880 NEXT, N LEXEMES ARE POPPED FROM THE STACK.  IF NOTION IS NOT
 | 
						|
00900 BLANK THEN A LEXEME FOR THE NOTION IS PUSHED ON THE STACK.  (NOTE
 | 
						|
00920 THAT IF NOTION IS NON-BLANK, N-> MUST BE NON-BLANK ALSO.) M INPUT
 | 
						|
00940 LEXEMES ARE THEN SKIPPED. THE FIRST ONE SKIPPED IS THE CURRENT
 | 
						|
00960 INPUT LEXEME. THE NUMBER OF PLUSSES IN SCAN INDICATES THE
 | 
						|
00980 NUMBER OF INPUT LEXEMES TO BE PUSHED ON THE STACK. WHEN AN INPUT
 | 
						|
01000 LEXEME IS DISCARDED OR PUSHED, A NEW LEXEME IS READ IN TO REPLACE
 | 
						|
01020 IT.  FINALLY, CONTROL IS TRANSFERED TO THE PRODUCTION INDICATED
 | 
						|
01040 BY SUCCESS.
 | 
						|
01060 ##
 | 
						|
01080 CONVENTIONS USED IN CONSTRUCTION OF PRODUCTION LABELS.
 | 
						|
01100 ##
 | 
						|
01120   NOTIONH  - HEAD SECTION FOR NOTION
 | 
						|
01140   NOTIONT  - TAIL SECTION FOR NOTION
 | 
						|
01160   NOTIONHN - MULTIPLE HEAD SECTIONS FOR NOTION
 | 
						|
01180   NOTIONTN - MULTIPLE TAIL SECTIONS FOR NOTION
 | 
						|
01200   LN       - LOCAL LABEL USED ONLY AS DESTINATION OF PRECEDING PRODUCTION
 | 
						|
01220       (NECESSARY ONLY BECAUSE EVERY PRODUCTION MUST SPECIFY A SUCCESS LABEL)
 | 
						|
01240   TMN      - TERMINAL SECTION
 | 
						|
01260   CMX      - COMBINED SECTION
 | 
						|
01280   OTHERS   - OTHER SELF-EXPLANATORY(?) LABELS
 | 
						|
01300 ##
 | 
						|
01320 SYLLABLES USED IN NOTION ABBREVIATIONS.
 | 
						|
01340 ##
 | 
						|
01360      PREFIX               POSTFIX
 | 
						|
01380   ACT - ACTUAL         CL - CLAUSE
 | 
						|
01400   BR  - BRIEF          DR - DECLARER
 | 
						|
01420   FOR - FORMAL         L  - LIST
 | 
						|
01440                        PL - PARAMETER LIST
 | 
						|
01460     SOME OTHERS        PT - PART
 | 
						|
01480   RL  - ROWER LIST     SR - SERIES
 | 
						|
01500   DEF - DEFINITION     SQ - SEQUENCE
 | 
						|
01520 ##
 | 
						|
01540 SYMBOL CLASSES.
 | 
						|
01560 ##
 | 
						|
01580   CL00 # ALL THE THINGS THAT CAN START A UNIT OR A DECLARATION #
 | 
						|
01600        BEGIN@, BOOLDEN@, BY@, CASE@, DO@, EQUAL@, FOR@, FROM@,
 | 
						|
01620        GO@, GOTO@, HEAP@, IF@, LOC@, LONG@, MDIND@, MODE@, NIL@,
 | 
						|
01640        OP@, OPEN@, OPR@, OTHDR@, PRDEN@, PRDR@, PRIO@, PROC@, REF@, SHORT@,
 | 
						|
01660        SKIP@, START@, STRGDEN@, STRUCT@, SUB@, TAB@, TAG@, TO@, VOID@, WHILE@
 | 
						|
01680 ##
 | 
						|
01700   CL01 # ALL THE THINGS THAT CANNOT START A UNIT OR DECLARATION #
 | 
						|
01720        AGAIN@, AT@, BUS@, CLOSE@, COLON@, COMMA@, ELIF@, ELSE@, END@, ESAC@, EXIT@,
 | 
						|
01740        FI@, IDTY@, IN@, OD@, OUSE@, OUT@, SEMIC@, STICK@, STOP@, THEN@
 | 
						|
01760 ##
 | 
						|
01780   CL11 AT@, BUS@, CLOSE@, COMMA@
 | 
						|
01800   CL12 LONG@, MDIND@, OTHDR@, PRDR@,
 | 
						|
01820        PROC@, REF@, SHORT@, STRUCT@,
 | 
						|
01840        SUB@
 | 
						|
01860   CL13 UNITSR@, AGAIN@, BEGIN@, CASE@,
 | 
						|
01880        DO@, ELIF@, ELSE@, IF@, IN@,
 | 
						|
01900        OPEN@, OUSE@, OUT@, STICK@, CSTICK@,
 | 
						|
01920        THEN@, WHILE@
 | 
						|
01940   CL14 EQUAL@, OPR@, TAB@
 | 
						|
01960 ##
 | 
						|
01980   CL21 FOR@, BY@, FROM@, TO@, WHILE@, DO@
 | 
						|
02000   CL22 BEGIN@, CASE@, IF@, BRTHPT@, BRINPT@
 | 
						|
02020   CL23 OUSE@, OUT@
 | 
						|
02040   CL24 ELIF@, ELSE@
 | 
						|
02060   CL25 AT@, COLON@
 | 
						|
02080   CL26 OPEN@, SUB@
 | 
						|
02100   CL27 FLDSPL@, STRUCT@
 | 
						|
02120   CL28 OTHDR@, PRDR@
 | 
						|
02140   CL29 CSTICK@, AGAIN@, STICK@
 | 
						|
02160   CL2A BOOLDEN@, PRDEN@, STRGDEN@
 | 
						|
02180   CL2B MDIND@, TAB@
 | 
						|
02200   CL2C OP@, PROC@
 | 
						|
02220   CL2D COMMA@, SEMIC@
 | 
						|
02240   CL2E HEAP@ LOC@
 | 
						|
02260   CL2F CLOSE@, END@, ESAC@, F1@, OD@.
 | 
						|
02280 ##
 | 
						|
02300 .COMMENT
 | 
						|
02320 ##
 | 
						|
02340 #INITIAL STACK CONFIGURATION STOP@,STOP@!START@#
 | 
						|
02360            ##
 | 
						|
02380 INIT:      !                    => S-120 ,          !     ++ PROGH;
 | 
						|
02400 PROGH:     TAG@!COLON@          => S-74  ,1->       ! (1) +  PROGH,ENCLCLH;
 | 
						|
02420            ##
 | 
						|
02440 SERCLH:    TAG@!COLON@          => S-74  ,          ! (1)    LABT;
 | 
						|
02460            TAG@!                =>       ,          !        SECDH;
 | 
						|
02480            CL2A!                => S-65  ,1->PRIM   !        PRIMT;
 | 
						|
02500            PROC@!TAG@           => S-31  ,          !     +  CM3;
 | 
						|
02520            SUB@!CL00            => S-24  ,0->ACTRL  !     +  UNITH;
 | 
						|
02540            LOC@!                =>       ,          !     +  CM1;
 | 
						|
02560            OP@!                 =>       ,          !     +  CM2;
 | 
						|
02580            PRIO@!               =>       ,          !     +  PDEFH;
 | 
						|
02600            MODE@!               => S-32  ,          !     +  MDEFH,UNITH1;
 | 
						|
02620            ##
 | 
						|
02640 UNITH:     TAG@!                =>       ,          !        SECDH;
 | 
						|
02660            CL2A!                => S-65  ,1->PRIM   !        PRIMT;
 | 
						|
02680 UNITH1:    SKIP@!               => S-67  ,          !        UNITT;
 | 
						|
02700            GOTO@!               => S-67  ,          !     +  TM2;
 | 
						|
02720            GO@!TO@              => S-67  ,          ! (1) +  TM2;
 | 
						|
02740            GO@!                 =>       ,          !        ERROR01;
 | 
						|
02760            OPEN@!CL12           => A-2+  ,          !        RTEXTH;
 | 
						|
02770            OPEN@!OPEN@          => A-2+  ,          !        RTEXTH;
 | 
						|
02780            ##
 | 
						|
02800 TERTH:     NIL@!                => S-67  ,1->TERT   !        TERTT;
 | 
						|
02820            ##
 | 
						|
02840 OPRANDH:   CL14!                =>       ,          !     +  OPRANDH;
 | 
						|
02860            ##
 | 
						|
02880 SECDH:     TAG@!OF@             =>       ,          !     ++ SECDH;
 | 
						|
02900            TAG@!                => S-64  ,1->PRIM   !        PRIMT;
 | 
						|
02920            CL2A!                => S-65  ,1->PRIM   !        PRIMT;
 | 
						|
02940            CL2E!                =>       ,          !     +  ACTDRH1;
 | 
						|
02960            VOID@!               => S-10  ,1->MOIDDR !        MOIDDRT;
 | 
						|
02980            SUB@!                => S-12  ,0->FORRLB !        FORRLT;
 | 
						|
03000            CL28!                => S-10  ,          !        NONRDRT;
 | 
						|
03020            LONG@!               => S-12  ,          !        LONGST2;
 | 
						|
03040            SHORT@!              => S-13  ,          !        SHORTST2;
 | 
						|
03060            REF@!                =>       ,          !     +  FORDRH;
 | 
						|
03080            STRUCT@!             =>       ,          !     +  TM3;
 | 
						|
03100            CL2B!                =>       ,          !        MDINDDRT;
 | 
						|
03120            PROC@!               =>       ,          !     +  PROCPH;
 | 
						|
03140            ##
 | 
						|
03160 ENCLCLH:   FOR@!                =>       ,          !        TM1;
 | 
						|
03180            WHILE@!              => S-55  ,          !     +  SERCLH;
 | 
						|
03200            DO@!                 => S-59  ,          !     +  SERCLH;
 | 
						|
03220            CL21!                => S-48  ,          !        FROMPTH;
 | 
						|
03222            OPEN@!CL01           =>       ,          !        FORDRH;
 | 
						|
03240            CL22!                => S-34  ,          !     +  SERCLH;
 | 
						|
03250            OPEN@!               => S-34  ,          !     +  SERCLH;
 | 
						|
03260            CL00!                => E-33  ,          !        UNITH,ERROR01;
 | 
						|
03280            ##
 | 
						|
03300 PROCPH:    !                    => S-22  ,          !        L1;
 | 
						|
03320 L1:        OPEN@!               =>       ,          !     +  FORDRH;
 | 
						|
03340            ##
 | 
						|
03360 MOIDDRH:   VOID@!               => S-10  ,1->MOIDDR !        MOIDDRT;
 | 
						|
03380            ##
 | 
						|
03400 FORDRH:    CL26!                => S-12  ,0->FORRLB !        FORRLT;
 | 
						|
03420            ##
 | 
						|
03440 NONRDRH:   CL26!CL00            => E-35  ,          !     +  UNITH;
 | 
						|
03460            CL26!                => E-35  ,0->FORRLB !        FORRLT;
 | 
						|
03480            CL28!                => S-10  ,          !        NONRDRT;
 | 
						|
03500            LONG@!               => S-12  ,          !        LONGST1;
 | 
						|
03520            SHORT@!              => S-13  ,          !        SHORTST1;
 | 
						|
03540            REF@!                =>       ,          !     +  FORDRH;
 | 
						|
03560            STRUCT@!             =>       ,          !     +  TM3;
 | 
						|
03580            CL2B!                =>       ,          !        MDINDDRT;
 | 
						|
03600            PROC@!               =>       ,          !     +  PROCPH,ERROR02;
 | 
						|
03620 #ACTUAL-DECLARER IN GENERATOR#
 | 
						|
03640 ACTDRH1:   CL26!CL00            => S-40  ,0->ACTRL  !     +  UNITH,ACTDRH3;
 | 
						|
03660 #ACTUAL-DECLARER IN MODE-DEFINITION#
 | 
						|
03680 ACTDRH2:   VOID@!               => S-10  ,1->MOIDDR !        MOIDDRT;
 | 
						|
03700            CL26!CL00            => S-69  ,0->ACTRL  !     +  UNITH;
 | 
						|
03720 ACTDRH3:   CL26!                => E-39  ,0->ACTRL  !        FORRLT,NONRDRH;
 | 
						|
03740            ##
 | 
						|
03760 DCLH:      PROC@!TAG@           => S-31  ,          !     +  CM3;
 | 
						|
03780            SUB@!CL00            => S-24  ,          !     +  UNITH;
 | 
						|
03800            LOC@!                =>       ,          !     +  CM1;
 | 
						|
03820            OP@!                 =>       ,          !     +  CM2;
 | 
						|
03840            PRIO@!               =>       ,          !     +  PDEFH;
 | 
						|
03860            MODE@!               => S-32  ,          !     +  MDEFH,FORDRH;
 | 
						|
03880            ##
 | 
						|
03882 TRMSCH:    CL26!                =>       ,0->TRMSCL !        SECTL;
 | 
						|
03884 SECTL:     !CL00                =>       ,          !     +  UNITH;
 | 
						|
03886            !CL25                =>       ,          !     +  SECTM,TRMSCLT;
 | 
						|
03893            ##
 | 
						|
03900 SECTM:     COLON@!AT@           =>       ,1->BOUNDS !     ++ UNITH;
 | 
						|
03920            COLON@!CL11          => S-91  ,          !        TRMSCT;
 | 
						|
03940            !                    =>       ,          !     +  UNITH;
 | 
						|
04120            ##
 | 
						|
04130 #ACTUAL-DECLARER IN VARIABLE-DECLARATION WITH .LOC#
 | 
						|
04140 CM1:       PROC@!TAG@           => S-31  ,1->       !     +  RVDEFH;
 | 
						|
04160            CL26!CL00            => S-24  ,0->ACTRL  !     +  UNITH,ACTDRH3;
 | 
						|
04180            ##
 | 
						|
04200 FROMPTH:   FROM@!               =>       ,          !     +  UNITH;
 | 
						|
04220            !                    => S-50  ,          !        BYPTH;
 | 
						|
04240 BYPTH:     BY@!                 =>       ,          !     +  UNITH;
 | 
						|
04260            !                    => S-53  ,          !        TOPTH;
 | 
						|
04280 TOPTH:     TO@!                 =>       ,          !     +  UNITH;
 | 
						|
04300            !                    => S-52  ,          !        WHILEPTH;
 | 
						|
04320 WHILEPTH:  WHILE@!              => S-54  ,          !     +  SERCLH;
 | 
						|
04340            DO@!                 => S-58  ,          !     +  SERCLH,ERROR04;
 | 
						|
04360            ##
 | 
						|
04380 RTEXTH:    OPEN@!               => S-99  ,0->FORDCL !     +  FORDRH,MOIDDRH;
 | 
						|
04400            ##
 | 
						|
04420 FLDSELLH:  TAG@!                => S-18  ,          !        FLDSELLT,ERROR05;
 | 
						|
04440            ##
 | 
						|
04460 FORPLH:    TAG@!                => S-20  ,          !        FORPLT,ERROR18;
 | 
						|
04480            ##
 | 
						|
04500 ACTPLH:    !                    =>       ,0->ACTPL  !     +  UNITH;
 | 
						|
04520            ##
 | 
						|
04540 BRALTH:    !                    => A-5+  ,          !        BRTHENPTH;
 | 
						|
04560            ##
 | 
						|
04580 BRINPTH:   !                    => S-38  ,1->CSTICK !     +  UNITH;
 | 
						|
04600            ##
 | 
						|
04620 BRTHENPTH: !                    => S-37  ,          !     +  SERCLH;
 | 
						|
04640            ##
 | 
						|
04660 LABH:      TAG@!COLON@          => S-74  ,          ! (1)    LABT,ERROR09;
 | 
						|
04680            ##
 | 
						|
04700 IDEFH2:    !                    => S-29  ,          !        IDEFH1;
 | 
						|
04720 IDEFH1:    !EQUAL@              => S-108 ,1->IDEFL  ! (1) +  UNITH,ERROR10;
 | 
						|
04740            ##
 | 
						|
04760 VDEFH2:    !                    => S-30  ,          !        VDEFH1;
 | 
						|
04780 VDEFH1:    !BECOM@              => S-108 ,1->VDEFL  ! (1)  + UNITH;
 | 
						|
04800            !CL2D                => S-107 ,          !        VDEFT,ERROR11;
 | 
						|
04820            ##
 | 
						|
04840 ODEFH2:    !                    => S-29  ,          !        ODEFH1;
 | 
						|
04860 ODEFH1:    CL14!EQUAL@          => S-109 ,1->ODEFL  ! (1) +  UNITH,ERROR38;
 | 
						|
04880            ##
 | 
						|
04900 CM2:       CL14!                => S-31  ,          !        RODEFH,PROCPH;
 | 
						|
04920 RODEFH:    !EQUAL@              => S-104 ,1->RODEFL ! (1)  + RTEXTH,ERROR38;
 | 
						|
04940            ##
 | 
						|
04960 PDEFH:     CL14!EQUAL@          =>       ,          ! (1) +  TM4,ERROR40;
 | 
						|
04980            ##
 | 
						|
05000 MDEFH:     CL2B!EQUAL@          => S-68  ,          ! (1) +  ACTDRH2,ERROR12;
 | 
						|
05020            ##
 | 
						|
05040 CM3:       !BECOM@              => S-33  ,          !        RVDEFH;
 | 
						|
05060 RIDEFH:    !EQUAL@              => S-102 ,1->RIDEFL ! (1)  + RTEXTH,ERROR41;
 | 
						|
05080            ##
 | 
						|
05100 RVDEFH:    !BECOM@              => S-103 ,1->RVDEFL ! (1)  + RTEXTH,ERROR11;
 | 
						|
05120 #TERMINAL SECTIONS#
 | 
						|
05140 TM1:       !TAG@                => S-47  ,          ! (1) +  FROMPTH,ERROR36;
 | 
						|
05160            ##
 | 
						|
05180 TM2:       TAG@!                => S-63  ,1->       !        UNITT,ERROR13;
 | 
						|
05200            ##
 | 
						|
05220 TM3:       OPEN@!               => S-22  ,1->       !     +  NONRDRH,ERROR14;
 | 
						|
05240            ##
 | 
						|
05260 TM4:       PRIMDEN@!            => S-117 ,1->       !        PDEFT,ERROR43;
 | 
						|
05280 #TAIL SECTIONS#
 | 
						|
05300 SHORTST1:  !SHORT@              => S-15  ,          ! (1)    SHORTST1,LSCM1;
 | 
						|
05320 LONGST1:   !LONG@               => S-14  ,          ! (1)    LONGST1,LSCM1;
 | 
						|
05340            ##
 | 
						|
05360 SHORTST2:  !SHORT@              => S-15  ,          ! (1)    SHORTST2,LSCM2;
 | 
						|
05380 LONGST2:   !LONG@               => S-14  ,          ! (1)    LONGST2;
 | 
						|
05400 LSCM2:     !PRIMDEN@            => S-66  ,1->PRIM   ! (1)    PRIMT;
 | 
						|
05420 LSCM1:     !PRIMDR@             => S-11  ,          ! (1)    NONRDRT,ERROR16;
 | 
						|
05440            ##
 | 
						|
05460 FORRLT:    !COLON@              =>       ,          ! (1)    FORROWT;
 | 
						|
05480 FORROWT:   !COMMA@              => S-14  ,          ! (1)    FORRLT;
 | 
						|
05500            SUB@,ANY!BUS@        =>       ,          ! (1) +  NONRDRH;
 | 
						|
05510            OPEN@,ANY!CLOSE@     =>       ,          ! (1) +  NONRDRH;
 | 
						|
05520            !CL00                => E-17  ,1->FORRLB !     +  UNITH,MISMATCH;
 | 
						|
05540            ##
 | 
						|
05560 FLDSELLT:  !COMMA@              =>       ,          ! (1)    CM4;
 | 
						|
05580            !CLOSE@              =>       ,1->       !        FLDSPT,ERROR05;
 | 
						|
05600            ##
 | 
						|
05620 CM4:       !TAG@                => S-19  ,          ! (1)    FLDSELLT;
 | 
						|
05640            !CL12                =>       ,1->       !        FLDSPT;
 | 
						|
05650            !OPEN@               =>       ,1->       !        FLDSPT,ERROR05;
 | 
						|
05660            ##
 | 
						|
05680 FLDSPT:    FLDSPL,ANY!          =>       ,1->       !        FLDSPLT;
 | 
						|
05700            !                    =>       ,1->FLDSPL !        FLDSPLT;
 | 
						|
05720            ##
 | 
						|
05740 FLDSPLT:   STRUCT@,ANY!CLOSE@  => S-23   ,1->       ! (1)    NONRDRT;
 | 
						|
05760            !                    =>       ,          !     +  NONRDRH;
 | 
						|
05780            ##
 | 
						|
05800 FORPLT:    !COMMA@              =>       ,          ! (1)    CM5;
 | 
						|
05820            !CLOSE@              =>       ,1->       !        FORDCT,ERROR18;
 | 
						|
05840            ##
 | 
						|
05860 CM5:       !TAG@                => S-21  ,          ! (1)    FORPLT;
 | 
						|
05880            !CL12                =>       ,1->       !        FORDCT;
 | 
						|
05890            !OPEN@               =>       ,1->       !        FORDCT,ERROR18;
 | 
						|
05900            ##
 | 
						|
05920 FORDCT:    FORDCL,ANY!          =>       ,1->       !        FORDCLT;
 | 
						|
05940            !                    =>       ,1->FORDCL !        FORDCLT;
 | 
						|
05960            ##
 | 
						|
05980 FORDCLT:   OPEN@,ANY!CLOSE@     =>       ,          !     ++ MOIDDRH;
 | 
						|
06000            !                    =>       ,          !     +  FORDRH;
 | 
						|
06020            ##
 | 
						|
06040 PRMDRLT:   !COMMA@              =>       ,          ! (1) +  FORDRH;
 | 
						|
06060            !CLOSE@              =>       ,          !     ++ MOIDDRH,ERROR19;
 | 
						|
06080            ##
 | 
						|
06100 MOIDDRT:   CL2C,ANY!            =>       ,          !        PROCPT;
 | 
						|
06120            MODE@,CL2B,ANY!      => S-73  ,1->       !        MDEFT;
 | 
						|
06140            PRMDRL,ANY,ANY!      =>       ,3->       !        PROCPT;
 | 
						|
06160            FORDCL,ANY,ANY!      =>       ,4->RSPEC  !        RSPECT1,CM7;
 | 
						|
06180            ##
 | 
						|
06200 NONRDRT:   CL2E,ANY!            =>       ,          !        ACTDRT;
 | 
						|
06220            CL27,ANY!            =>       ,          !     +  FLDSELLH;
 | 
						|
06240            REF@,ANY!            => S-16  ,1->       !        NONRDRT;
 | 
						|
06260            ACTRL,ANY!           => S-27  ,2->       !        NONRDRT;
 | 
						|
06280            CL26!                =>       ,          !        ACTDRT;
 | 
						|
06300            FORRLB,ANY!          => S-25  ,2->       !        FORDRT;
 | 
						|
06320            MODE@,CL2B,ANY!      => S-73  ,1->       !        MDEFT;
 | 
						|
06340            CL2C,ANY!            =>       ,          !        PROCPT;
 | 
						|
06360            CLOSE@,ANY!          =>       ,1->MOIDDR !        MOIDDRT;
 | 
						|
06380            FORDCL,ANY!          =>       ,          !     +  FORPLH;
 | 
						|
06400            CL13,ANY!TAG@        =>       ,          !     +  CM6,FORDRT;
 | 
						|
06420            ##
 | 
						|
06440 CM6:       !EQUAL@              =>       ,          !        IDEFH2,CM8A;
 | 
						|
06460            ##
 | 
						|
06480 FORDRT:    REF@,ANY!            => S-16  ,1->       !        NONRDRT;
 | 
						|
06500            PRMDRL,ANY!          =>       ,1->       !        PRMDRLT;
 | 
						|
06520            FORDCL,ANY!          =>       ,          !     +  FORPLH;
 | 
						|
06540            CL2C,ANY!            =>       ,          !        PROCPT;
 | 
						|
06560            PRMDRL,ANY,ANY!      =>       ,3->       !        PROCPT;
 | 
						|
06580            FORDCL,ANY,ANY!      =>       ,4->RSPEC  !        RSPECT1;
 | 
						|
06600            CL2C,OPEN@,ANY!      =>       ,1->PRMDRL !        PRMDRLT;
 | 
						|
06620            CL13,ANY!TAG@        =>       ,          !     +  IDEFH2;
 | 
						|
06640            ##
 | 
						|
06660 CM7:       !TAG@                =>       ,          !        ERROR31,CM7A;
 | 
						|
06680            ##
 | 
						|
06700 CM7A:      !COLON@              => S-17  ,1->RSPEC  ! (1)    RSPECT2;
 | 
						|
06720            !                    => S-116 ,1->MOIDDR !     +  ENCLCLH; #CAST#
 | 
						|
06740            ##
 | 
						|
06760 MDINDDRT:  !                    => A-3+  ,          !        NONRDRT;
 | 
						|
06780            !                    => A-4+  ,1->MOIDDR !        MOIDDRT;
 | 
						|
06800            FORRLB,ANY!          => E-35  ,          !        NONRDRT;
 | 
						|
06820            ACTRL,ANY!           => E-35  ,          !        NONRDRT;
 | 
						|
06840            CL27,ANY!            => E-35  ,          !        NONRDRT;
 | 
						|
06860            REF@,ANY!            => S-16  ,1->       !        NONRDRT;
 | 
						|
06880            PRMDRL,ANY!          =>       ,1->       !        PRMDRLT;
 | 
						|
06900            FORDCL,ANY!          =>       ,          !     +  FORPLH;
 | 
						|
06920            CL2C,ANY!            =>       ,          !        PROCPT;
 | 
						|
06940            LOC@,ANY!TAG@        => S-71  ,1->       !        VDEFH3;
 | 
						|
06960            CL2E,ANY!            => S-70  ,          !        ACTDRT;
 | 
						|
06980            MODE@,CL2B,ANY!      => S-72  ,1->       !        MDEFT;
 | 
						|
07000            PRMDRL,ANY,ANY!      =>       ,3->       !        PROCPT;
 | 
						|
07020            FORDCL,ANY,ANY!      =>       ,4->RSPEC  !        RSPECT1;
 | 
						|
07040            CL2C,ANY,ANY!        =>       ,1->PRMDRL !        PRMDRLT;
 | 
						|
07060            CL13,ANY!TAG@        =>       ,          !     +  CM8,CM7;
 | 
						|
07080            ##
 | 
						|
07100 CM8:       !EQUAL@              =>       ,          !        IDEFH2;
 | 
						|
07120            !                    => S-71  ,          !        CM8A;
 | 
						|
07140 CM8A:      !                    => S-33  ,          !        VDEFH2;
 | 
						|
07160            ##
 | 
						|
07180 ACTDRT:    LOC@,ANY!TAG@        =>       ,1->       !        VDEFH3;
 | 
						|
07200            CL2E,ANY!            => S-98  ,1->       !        SECDT;
 | 
						|
07220            MODE@,CL2B,ANY!      => S-73  ,1->       !        MDEFT;
 | 
						|
07240            CL13,ANY!TAG@        => S-33  ,          !        VDEFH3;
 | 
						|
07260            ##
 | 
						|
07280 VDEFH3:    CL13,ANY!TAG@        =>       ,          !     +  VDEFH2,ERROR31;
 | 
						|
07300            ##
 | 
						|
07320 RSPECT1:   !COLON@              => S-28  ,          ! (1)    RSPECT2,ERROR23;
 | 
						|
07340 RSPECT2:   RIDEFL,ANY!          => S-105 ,          !     +  UNITH;
 | 
						|
07360            RVDEFL,ANY!          => S-105 ,          !     +  UNITH;
 | 
						|
07380            RODEFL,ANY!          => S-106 ,          !     +  UNITH;
 | 
						|
07400            !                    => S-100 ,          !     +  UNITH;
 | 
						|
07420            ##
 | 
						|
07440 RTEXTT:    RIDEFL,ANY!          => S-111 ,1->       !        RIDEFT;
 | 
						|
07460            RVDEFL,ANY!          => S-111 ,1->       !        RVDEFT;
 | 
						|
07480            RODEFL,ANY!          => S-111 ,1->       !        RODEFT;
 | 
						|
07500            !                    =>       ,          !        UNITT;
 | 
						|
07520            ##
 | 
						|
07540 PROCPT:    PROC@,ANY!           => S-28  ,2->NONRDR !        NONRDRT;
 | 
						|
07560            OP@,ANY!             => S-28  ,1->       !     +  ODEFH2,ERROR15;
 | 
						|
07580            ##
 | 
						|
07600 PRIMT:     !SUB@                => S-85  ,          !     +  TRMSCH;
 | 
						|
07620            !OPEN@               => A-9+  ,          !     +  ACTPLH;
 | 
						|
07630            !OPEN@               => S-85  ,          !     +  TRMSCH;
 | 
						|
07640            ##
 | 
						|
07660 SECDT:     OF@,ANY!             => S-75  ,2->       !        SECDT;
 | 
						|
07680            CL14,ANY!            =>       ,1->OPRAND !        MONOPDT;
 | 
						|
07700            !CL14                => S-77  ,1->OPRAND !        CM9A,TERTT;
 | 
						|
07720            ##
 | 
						|
07740 MONOPDT:   OPRAND,ANY,ANY!      =>       ,          !        DYOPDT;
 | 
						|
07760            OP@,ANY,ANY!         =>       ,          !        DYOPDT;
 | 
						|
07780            CL14,ANY!            => S-78  ,2->OPRAND !        MONOPDT;
 | 
						|
07800            ##
 | 
						|
07820 DYOPDT:    !CL14                => S-77  ,          !        CM9;
 | 
						|
07840            OPRAND,CL14,ANY!     => S-79  ,2->       !        DYOPDT,TERTT;
 | 
						|
07860            ##
 | 
						|
07880 CM9:       OPRAND,CL14,ANY!     => A-1+  ,2->       !        DYOPDT;
 | 
						|
07900 CM9A:      !                    => S-80  ,          !     ++ UNITH;
 | 
						|
07920            ##
 | 
						|
07940 TERTT:     IDTY@,ANY!           => S-82  ,2->       !        TERTT; #RATHER THAN UNITT#
 | 
						|
07960            !BECOM@              => S-83  ,1->TERT   !     ++ UNITH;
 | 
						|
07980            !IDTY@               => S-81  ,1->TERT   !     ++ TERTH;
 | 
						|
08000            ##
 | 
						|
08020 UNITT:     UNITSR,ANY!          =>       ,1->       !        UNITSRT;
 | 
						|
08040            CL13,ANY!            =>       ,          !        UNITCOM;
 | 
						|
08060            TERT,BECOM@,ANY!     => S-84  ,2->       !        UNITT;
 | 
						|
08080            VDEFL,ANY!           => S-110 ,1->       !        VDEFT;
 | 
						|
08100            IDEFL,ANY!           => S-110 ,1->       !        IDEFT;
 | 
						|
08120            ACTPL,ANY!           =>       ,1->       !        ACTPLT;
 | 
						|
08140            FROM@,ANY!           => S-49  ,1->       !     +  BYPTH;
 | 
						|
08160            BY@,ANY!             => S-49  ,1->       !     +  TOPTH;
 | 
						|
08180            TO@,ANY!             => S-49  ,1->       !     +  WHILEPTH;
 | 
						|
08200            UNITLC,ANY!          =>       ,1->       !        UNITLCT;
 | 
						|
08220            UNITLP,ANY!          =>       ,1->       !        UNITLPT;
 | 
						|
08240            RSPEC,ANY!           => S-101 ,1->       !        RTEXTT;
 | 
						|
08260            LABSQ,ANY!           =>       ,1->       !        LABUNITT;
 | 
						|
08280            ODEFL,ANY!           => S-111 ,1->       !        ODEFT;
 | 
						|
08300            COLON@,ANY!          => S-95  ,2->       !        CMB;
 | 
						|
08320            AT@,ANY!             => S-90  ,1->       !        REVLBT;
 | 
						|
08340            !COLON@              => S-94  ,1->TERT   !        LOWBNDT;
 | 
						|
08380            TRMSCL,ANY!          => S-92  ,1->       !        TRMSCLT;
 | 
						|
08400 UNITCOM:   !COMMA@              =>       ,1->TERT   !        UNITLT;
 | 
						|
08420            !                    =>       ,          !        UNITSRT;
 | 
						|
08440            ##
 | 
						|
08460 UNITLT:    OPEN@,ANY!           => S-113 ,1->UNITLC ! (1) +  UNITH;
 | 
						|
08480            BEGIN@,ANY!          => S-113 ,1->UNITLC ! (1) +  UNITH;
 | 
						|
08500            !                    => S-41  ,1->UNITLP ! (1) +  UNITH;
 | 
						|
08520            ##
 | 
						|
08540 LOWBNDT:   ACTRL,ANY!           =>       ,          !     ++ UNITH;
 | 
						|
08600            !                    => S-87  ,          !     +  CMA;
 | 
						|
08620 # LOWER-BOUND IN TRIMMER#
 | 
						|
08640 CMA:       !CL11                =>       ,2->BOUNDS !        BOUNDST;
 | 
						|
08660            !                    =>       ,          !     +  UNITH;
 | 
						|
08680 #COMBINED ACTRLT AND BOUNDST, AFTER COLON#
 | 
						|
08700 CMB:       ACTRL,ANY!           =>       ,1->       !        ACTRLT;
 | 
						|
08720            TRMSCL,ANY!          => S-88  ,1->BOUNDS !        BOUNDST;
 | 
						|
08760            FORRLB,ANY!          =>       ,1->       !        ACTRLT; #ERROR PATH FROM E-17#
 | 
						|
08770            !                    => S-88  ,0->BOUNDS !        BOUNDST; #NO UNIT BEFORE THE COLON#
 | 
						|
08820            ##
 | 
						|
08840 ACTRLT:    !COMMA@              =>       ,          ! (1) +  UNITH;
 | 
						|
08860            SUB@,ANY!BUS@        => S-26  ,          !        ACTRLT2;
 | 
						|
08862            OPEN@,ANY!CLOSE@     => S-26  ,          !        ACTRLT2;
 | 
						|
08866            !CL00                =>       ,          !        ERROR20,MISMATCH;
 | 
						|
08873            ##
 | 
						|
08880 ACTRLT2:   CL2B,ANY,ANY!        => S-101 ,          ! (1) +  NONRDRH; #MODE-DECLARATION#
 | 
						|
08900            !                    =>       ,          ! (1) +  NONRDRH;
 | 
						|
08920            ##
 | 
						|
08940 BOUNDST:   !AT@                 => S-89  ,          !     ++ UNITH,TRMSCT;
 | 
						|
08960            ##
 | 
						|
08980 REVLBT:    BOUNDS,ANY!          =>       ,1->       !        TRMSCT;
 | 
						|
09000 TRMSCT:    TRMSCL,ANY!          =>       ,1->       !        TRMSCLT;
 | 
						|
09020            !                    =>       ,1->TRMSCL !        TRMSCLT;
 | 
						|
09040            ##
 | 
						|
09060 TRMSCLT:   !COMMA@              => S-86  ,          ! (1)    TRMSCH;
 | 
						|
09070            SUB@,ANY!BUS@        => S-93  ,2->       ! (1)    PRIMT;
 | 
						|
09072            OPEN@,ANY!CLOSE@     => S-93  ,2->       ! (1)    PRIMT;
 | 
						|
09080            !CL00                =>       ,          !        ERROR03,MISMATCH;
 | 
						|
09090            ##
 | 
						|
09120 UNITLCT:   !COMMA@              => S-114 ,          ! (1) +  UNITH;
 | 
						|
09140            OPEN@,ANY!CLOSE@     => S-115 ,1->       ! (1)    UNITLCT1;
 | 
						|
09160            BEGIN@,ANY!END@      => S-115 ,1->       ! (1)    UNITLCT1,ERROR37;
 | 
						|
09180            ##
 | 
						|
09200 UNITLCT1:  OPEN@,ANY!           =>       ,1->PRIM   !        UNITLCT2;
 | 
						|
09220            BEGIN@,ANY!          =>       ,1->PRIM   !        UNITLCT2,ENCLCLT;
 | 
						|
09240            ##
 | 
						|
09260 UNITLCT2:  !COMMA@              =>       ,          !        ENCLCLT,ERROR34;
 | 
						|
09280            ##
 | 
						|
09300 UNITLPT:   !                    => S-41  ,          !        UNITLPT1;
 | 
						|
09320 UNITLPT1:  !COMMA@              =>       ,          ! (1) +  UNITH;
 | 
						|
09340            CSTICK@,ANY!         => S-34  ,2->BRINPT !        BRINPTT;
 | 
						|
09360            STICK@,ANY!          => A-7+  ,2->BRINPT !        BRINPTT;
 | 
						|
09380            IN@,ANY!             => S-34  ,2->       !        INPTT,ERROR25;
 | 
						|
09400            ##
 | 
						|
09420 ACTPLT:    !COMMA@              => S-96  ,          ! (1) +  UNITH;
 | 
						|
09440            OPEN@,ANY!CLOSE@     => S-97  ,2->       ! (1)    PRIMT,ERROR22;
 | 
						|
09460            ##
 | 
						|
09480 LABUNITT:  UNITSR,ANY!          =>       ,1->       !        UNITSRT;
 | 
						|
09500            ##
 | 
						|
09520 UNITSRT:   CL13,ANY!SEMIC@      => S-62  ,1->UNITSR ! (1) +  SERCLH;
 | 
						|
09540            CL13,ANY!EXIT@       => S-46  ,1->UNITSR !     ++ LABH;
 | 
						|
09560            ##
 | 
						|
09580 SERCLT:    CL13,ANY!            => S-43  ,1->UNITSR !        L2,ERROR33;
 | 
						|
09600 L2:        OPEN@,ANY!CLOSE@     =>       ,1->       ! (1)    ENCLCLT;
 | 
						|
09620            BEGIN@,ANY!END@      =>       ,1->       ! (1)    ENCLCLT;
 | 
						|
09640            IF@,ANY!THEN@        => S-37  ,1->       !     ++ SERCLH;
 | 
						|
09660            THEN@,ANY!           => S-39  ,2->       !        THENPTT;
 | 
						|
09680            ELSE@,ANY!           =>       ,2->       !        CONDALTT;
 | 
						|
09700            ELIF@,ANY!THEN@      => S-37  ,1->       !     ++ SERCLH;
 | 
						|
09720            OPEN@,ANY!STICK@     =>       ,1->       !     +  BRALTH;
 | 
						|
09740            CASE@,ANY!IN@        => S-38  ,1->       !     ++ SERCLH;
 | 
						|
09760            OUT@,ANY!            =>       ,2->       !        CASEALTT;
 | 
						|
09780            OUSE@,ANY!IN@        => S-38  ,1->       !     ++ SERCLH;
 | 
						|
09800            DO@,ANY!OD@          => S-60  ,1->       ! (1)    DOPTT;
 | 
						|
09820            WHILE@,ANY!DO@       => S-57  ,1->       !     ++ SERCLH;
 | 
						|
09840            BRTHPT,STICK@,ANY!   =>       ,2->       !        BRCONDALTT;
 | 
						|
09860            BRINPT,STICK@,ANY!   =>       ,2->       !        BRCASEALTT;
 | 
						|
09880            CSTICK@,ANY!         => E-42  ,1->UNITLP !        UNITLPT;
 | 
						|
09900            IN@,ANY!             => E-42  ,1->UNITLP !        UNITLPT;
 | 
						|
09920            STICK@,ANY!          => S-39  ,2->BRTHPT !        BRTHENPTT;
 | 
						|
09940            BRTHPT,AGAIN@,ANY!   =>       ,1->       !     +  BRTHENPTH;
 | 
						|
09960            BRINPT,AGAIN@,ANY!   =>       ,1->       !     +  BRINPTH,ERROR24;
 | 
						|
09980            ##
 | 
						|
10000 BRCONDALTT:OPEN@,ANY!CLOSE@     => S-35  ,1->       ! (1)    ENCLCLT;
 | 
						|
10020            AGAIN@,ANY!          => S-35  ,2->       !        BRCONDALTT,ERROR24;
 | 
						|
10040            ##
 | 
						|
10060 CONDALTT:  IF@!FI@              => S-35  ,          ! (1)    ENCLCLT;
 | 
						|
10080            ELIF@!               => S-35  ,1->       !        CONDALTT,ERROR24;
 | 
						|
10100            ##
 | 
						|
10120 BRCASEALTT:OPEN@,ANY!CLOSE@     => S-42  ,1->       ! (1)    ENCLCLT;
 | 
						|
10140            AGAIN@,ANY!          => S-42  ,2->       !        BRCASEALTT,ERROR24;
 | 
						|
10160            ##
 | 
						|
10180 CASEALTT:  CASE@!ESAC@          => S-42  ,          ! (1)    ENCLCLT;
 | 
						|
10200            OUSE@!               => S-42  ,1->       !        CASEALTT,ERROR24;
 | 
						|
10220            ##
 | 
						|
10240 BRTHENPTT: !CL29                =>       ,          !     ++ SERCLH;
 | 
						|
10260            !                    => S-36  ,          !        BRCONDALTT;
 | 
						|
10280            ##
 | 
						|
10300 THENPTT:   !CL24                =>       ,          !     ++ SERCLH;
 | 
						|
10320            !                    => S-36  ,          !        CONDALTT;
 | 
						|
10340            ##
 | 
						|
10360 BRINPTT:   !CL29                =>       ,          !     ++ SERCLH;
 | 
						|
10380            !                    => S-36  ,          !        BRCASEALTT;
 | 
						|
10400            ##
 | 
						|
10420 INPTT:     !CL23                =>       ,          !     ++ SERCLH;
 | 
						|
10440            !                    => S-36  ,          !        CASEALTT;
 | 
						|
10460            ##
 | 
						|
10480 DOPTT:     WHILE@,ANY!          => S-56  ,1->       !        WHILEPTT;
 | 
						|
10500 WHILEPTT:  TO@,ANY!             =>       ,1->       !        TOPTT;
 | 
						|
10520 TOPTT:     BY@,ANY!             =>       ,1->       !        BYPTT;
 | 
						|
10540 BYPTT:     FROM@,ANY!           =>       ,1->       !        FROMPTT;
 | 
						|
10560 FROMPTT:   FOR@,ANY!            =>       ,1->       !        LOOPCLT;
 | 
						|
10580 LOOPCLT:   !                    => S-61  ,          !        ENCLCLT;
 | 
						|
10600            ##
 | 
						|
10620 ENCLCLT:   START@,ANY!          => S-44  ,          !        CMC;
 | 
						|
10640            MOIDDR,ANY!          => S-45  ,2->PRIM   !        PRIMT;
 | 
						|
10660            !                    => S-44  ,1->PRIM   !        PRIMT;
 | 
						|
10680            ##
 | 
						|
10700 CMC:       !STOP@               => S-118 ,          !        QUIT,ERROR21;
 | 
						|
10720            ##
 | 
						|
10740 QUIT:      !                    => S-121 ,          !        QUIT;
 | 
						|
10760 #DCL WAS FOLLOWED BY COMMAS#
 | 
						|
10780 DCLT1:     !                    =>       ,2->       !     +  DCLH;
 | 
						|
10800 #DCL WAS FOLLOWED BY NON-COMMAS#
 | 
						|
10820 DCLT2:     !                    => S-112 ,2->       !        DCLPT;
 | 
						|
10840           ##
 | 
						|
10860 DCLPT:     UNITSR!SEMIC@        =>       ,          ! (1) +  SERCLH;
 | 
						|
10880            !SEMIC@              =>       ,0->UNITSR ! (1) +  SERCLH,ERROR30;
 | 
						|
10900            ##
 | 
						|
10920 LABT:      LABSQ,ANY!           =>       ,1->       !        LABSQT;
 | 
						|
10940            EXIT@,ANY!           =>       ,2->       !     +  SERCLH;
 | 
						|
10960            !                    =>       ,1->LABSQ  !        LABSQT;
 | 
						|
10980            ##
 | 
						|
11000 LABSQT:    !TAG@                =>       ,          !     +  CMD;
 | 
						|
11020            !                    =>       ,          !     +  UNITH;
 | 
						|
11040            ##
 | 
						|
11060 CMD:       !COLON@              => S-74  ,          ! (1)    LABT,UNITH;
 | 
						|
11080            ##
 | 
						|
11100 IDEFT:     !COMMA@              =>       ,          ! (1)    CME,DCLT2;
 | 
						|
11120            ##
 | 
						|
11140 CME:       !TAG@                =>       ,1->       !     +  IDEFH1,DCLT1;
 | 
						|
11160            ##
 | 
						|
11180 RIDEFT:    !COMMA@              =>       ,          ! (1)    CMF,DCLT2;
 | 
						|
11200            ##
 | 
						|
11220 CMF:       !TAG@                =>       ,1->       !     +  RIDEFH,DCLT1;
 | 
						|
11240            ##
 | 
						|
11260 VDEFT:     PROC@,ANY!           =>       ,          !        ERROR32;
 | 
						|
11280            # CAN THIS REALLY HAPPEN? #
 | 
						|
11300            !COMMA@              =>       ,          ! (1)    CMG,DCLT2;
 | 
						|
11320            ##
 | 
						|
11340 CMG:       !TAG@                =>       ,1->       !     +  VDEFH1,DCLT1;
 | 
						|
11360            ##
 | 
						|
11380 RVDEFT:    !COMMA@              =>       ,          ! (1)    CMH,DCLT2;
 | 
						|
11400            ##
 | 
						|
11420 CMH:       !TAG@                =>       ,1->       !     +  RVDEFH,DCLT1;
 | 
						|
11440            ##
 | 
						|
11460 ODEFT:     !COMMA@              =>       ,          ! (1)    CMI,DCLT2;
 | 
						|
11480            ##
 | 
						|
11500 CMI:       !CL14                =>       ,1->       !     +  ODEFH1,DCLT1;
 | 
						|
11520            ##
 | 
						|
11540 RODEFT:    !COMMA@              =>       ,          ! (1)    CMJ,DCLT2;
 | 
						|
11560            ##
 | 
						|
11580 CMJ:       !CL14                =>       ,1->       !     +  RODEFH,DCLT1;
 | 
						|
11600            ##
 | 
						|
11620 PDEFT:     !COMMA@              =>       ,          ! (1)    CMK,DCLT2;
 | 
						|
11640            ##
 | 
						|
11660 CMK:       !CL14                =>       ,1->       !     +  PDEFH,DCLT1;
 | 
						|
11680            ##
 | 
						|
11700 MDEFT:     !COMMA@              =>       ,          ! (1)    CML,DCLT2;
 | 
						|
11720            ##
 | 
						|
11740 CML:       !CL2B                => A-6+  ,1->       !     +  MDEFH,DCLT1;
 | 
						|
11760 #SYNTAX ERROR PROCESSING; ACTIVATED AFTER BRANCH TO ERRORNN #
 | 
						|
11780 PERROR:    CL13!                => S-119 ,          !        PEA1;
 | 
						|
11800            START@!              => S-119 ,          !        PEA2;
 | 
						|
11820            !                    =>       ,1->       !        PERROR;
 | 
						|
11840            ##
 | 
						|
11860 PEA1:      !SEMIC@              => A-8+  ,          ! (1) +  SERCLH;
 | 
						|
11880            !CL23                => A-8+  ,          !        INPTT;
 | 
						|
11900            !CL24                => A-8+  ,          !        THENPTT;
 | 
						|
11920            !CL29                => A-8+  ,          !        BRTHENPTT;
 | 
						|
11940            !CL2F                => A-8+  ,          ! (1)    ENCLCLT;
 | 
						|
11960            !STOP@               => E-08  ,          !        QUIT;
 | 
						|
11980            !CL21                =>       ,          !     +  PEA1;
 | 
						|
12000            !CL22                =>       ,          !     +  PEA1;
 | 
						|
12010            !CL26                =>       ,          !     +  PEA1;
 | 
						|
12020            !                    =>       ,          ! (1)    PEA1;
 | 
						|
12040            ##
 | 
						|
12060 PEA2:      !STOP@               => E-08  ,          !        QUIT;
 | 
						|
12080            !                    =>       ,          ! (1)    PEA2;
 | 
						|
12100            ##
 | 
						|
12120 ERROR01:   !                    => E-01  ,          !        PERROR;
 | 
						|
12140 ERROR02:   !                    => E-02  ,          !        PERROR;
 | 
						|
12160 ERROR03:   !                    => E-03  ,          !        PERROR;
 | 
						|
12180 ERROR04:   !                    => E-04  ,          !        PERROR;
 | 
						|
12200 ERROR05:   !                    => E-05  ,          !        PERROR;
 | 
						|
12220 ERROR09:   !                    => E-09  ,          !        PERROR;
 | 
						|
12240 ERROR10:   !                    => E-10  ,          !        PERROR;
 | 
						|
12260 ERROR11:   !                    => E-11  ,          !        PERROR;
 | 
						|
12280 ERROR12:   !                    => E-12  ,          !        PERROR;
 | 
						|
12300 ERROR13:   !                    => E-13  ,          !        PERROR;
 | 
						|
12320 ERROR14:   !                    => E-14  ,          !        PERROR;
 | 
						|
12340 ERROR15:   !                    => E-15  ,          !        PERROR;
 | 
						|
12360 ERROR16:   !                    => E-16  ,          !        PERROR;
 | 
						|
12380 ERROR18:   !                    => E-18  ,          !        PERROR;
 | 
						|
12400 ERROR19:   !                    => E-19  ,          !        PERROR;
 | 
						|
12420 ERROR20:   !                    => E-20  ,          !        PERROR;
 | 
						|
12440 ERROR21:   !                    => E-21  ,          !        PERROR;
 | 
						|
12460 ERROR22:   !                    => E-22  ,          !        PERROR;
 | 
						|
12480 ERROR23:   !                    => E-23  ,          !        PERROR;
 | 
						|
12500 ERROR24:   !CL00                => E-24  ,          !        PERROR;
 | 
						|
12520 MISMATCH:  CL21!                => E-26  ,          !        PEA3;
 | 
						|
12540            BEGIN@!              => E-27  ,          !        PEA3;
 | 
						|
12560            CASE@!               => E-28  ,          !        PEA3;
 | 
						|
12580            IF@!                 => E-29  ,          !        PEA3;
 | 
						|
12600            CL22!                => E-7   ,          !        PEA3;
 | 
						|
12606            OPEN@!               => E-7   ,          !        PEA3;
 | 
						|
12613            SUB@!                => E-6   ,          !        PEA3;
 | 
						|
12620            !                    =>       ,1->       !        MISMATCH;
 | 
						|
12640 PEA3:      !                    => S-119 ,          !        PEA1;
 | 
						|
12660 ERROR25:   !                    => E-25  ,          !        PERROR;
 | 
						|
12680 ERROR30:   !                    => E-30  ,          !        PERROR;
 | 
						|
12700 ERROR31:   !                    => E-31  ,          !        PERROR;
 | 
						|
12720 ERROR32:   !                    => E-32  ,          !        PERROR;
 | 
						|
12740 ERROR33:   !                    => E-33  ,          !        PERROR;
 | 
						|
12760 ERROR34:   !                    => E-34  ,          !        PERROR;
 | 
						|
12780 ERROR36:   !                    => E-36  ,          !        PERROR;
 | 
						|
12800 ERROR37:   !                    => E-37  ,          !        PERROR;
 | 
						|
12820 ERROR38:   !                    => E-38  ,          !        PERROR;
 | 
						|
12840 ERROR40:   !                    => E-40  ,          !        PERROR;
 | 
						|
12860 ERROR41:   !                    => E-41  ,          !        PERROR;
 | 
						|
12880 ERROR43:   !                    => E-43  ,          !        PERROR,PERROR;
 |