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;
 |