perm filename HEL[S,AIL]14 blob sn#041443 filedate 1973-05-16 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00020 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002	β  Definition of Terms
C00007 00003	MUMBLE Classes 
C00013 00004	MUMBLE Declarations
C00017 00005	
C00020 00006	MUMBLE Statements
C00026 00007	MUMBLE Expression Parsers
C00028 00008	MUMBLE Main Expression Parser
C00034 00009	MUMBLE Compile-time type checking productions
C00036 00010	MUMBLE Boolean Expressions
C00038 00011	MUMBLE Leap constructs
C00042 00012	
C00047 00013	MUMBLE Loop Statements, array calcs, proc names, etc
C00051 00014	MUMBLE backtracking, memory and loc
C00054 00015	MUMBLE In-line code
C00057 00016	MUMBLE Conditional Compilation Statements
C00063 00017	MUMBLE Macro DEFINE handling
C00064 00018	MUMBLE dynamic procedure binding, etc.
C00068 00019	MUMBLE  Error productions
C00073 00020	MUMBLE  More error productions
C00080 ENDMK
C⊗;
COMMENT	β  Definition of Terms

MUMBLE

You shall be sent where no son of man
  Or god shall see you again,
With earth behind you, on an eagle's mound,
  Facing Hel, for ever sit.

			Skirnir's Ride
;


∞ASG LEAPSW 1
∞ASG GLOBSW 1
<SYMBOLS>

; SEMI ← LARW , COMA ) RPRN ( LPRN ∩ INTER ∪ UNION - MINUS { SETO } SETC
[ LBR ] RBR & ANDD ↑ UPRW : COL + PLUS * TIMS / SLSH . DOT ' ASSOC
| VERT ⊗ XOR ≡ EQV < LES > GRE = EQU ≠ NEQ ≥ GEQ ≤ LEQ
∞ INF ε IN  ↔ SWAP % PRC @ INDR ? QUES



<TERMINALS>

| I < > = + - [ ] & ↑ : * / . ; ← , ) ( % @ ?
IVB ISV IAR ILB ICN IIT IST ITV IPR STC ICTXT

<RESERVED-WORDS>

RETURN ELSE IN DATUM WHILE DO THEN CASE OF STEP SIMPLE
MUMBLE FOLLOWING WERE INSTALLED FOR EXPORTATION PUPOSES;
NEQ GEQ LEQ SETO SETC SWAP UNION INTER ASSOC LISTO LISTC
LOP COP CVI CVN LENGTH PNAMES PRELOAD_WITH BIND BUCKETS
STRING_SPACE SYSTEM_PDL STRING_PDL ARRAY_PDL LIBRARY
SOURCE_FILE LOAD_MODULE NEW_ITEMS REQUIRE NEXT NEEDNEXT VERSION
ALLGLOBAL ILDB IDPB LDB DPB IBP BBPP
UNTIL BEGIN START_CODE QUICK_CODE IF GO TO GOTO COMMENT PROCEDURE ARRAY
REAL SET EXTERNAL OWN VALUE FORTRAN FORWARD END FOR NEW MATCHING
SUCCEED FAIL CONTEXT DONE DIV MOD FIRST SECOND THIRD PUT REMOVE
REMEMBER FORGET RESTORE KILL_SET NULL_CONTEXT SAMEIV IN_CONTEXT
INTEGER BOOLEAN  ITEM ITEMVAR STRING INF
SAFE FROM NOT XOR AND OR ABS LABEL INTERNAL REFERENCE
RECURSIVE DEFINE LET EQV SUCH THAT 
DELETE PHI NIL ISTRIPLE MAKE ERASE FOREACH
TRUE FALSE NULL LSH ROT LAND LOR LNOT ENTRY
MAX MIN SHORT LIST AFTER BEFORE  CVSET CVLIST DELIMITERS REPLACE_DELIMITERS
UNSTACK_DELIMITERS NULL_DELIMITERS
IFC THENC ELSEC ENDC WHILEC CASEC FORC FORLC DOC OFC STEPC UNTILC CVMS
ALL PROTECT_ACS ASSIGN APPLY  
NOW_SAFE NOW_UNSAFE
DECLARATION EXPR_TYPE
∞IFN GLOBSW ∀ GLOBAL SEGMENT_NAME SEGMENT_FILE ∀
MESSAGE
CONTINUE MEMORY LOCATION
SPROUT PROCESSES DEPENDENTS
INITIALIZATION INTERROGATE CAUSE
CHECK_TYPE RESERVED BUILT_IN LEAP_ARRAY
PROPS CLEANUP POLL POLLING_INTERVAL ACCESS
REF_ITEM

<NON-TERMINAL-SYMBOLS>

PDEC BLAT S SICL LHS FCALL PCALL SE ST BE SF
STID LDAT TR BP SP  P SIP IP SIFC EIFC LIP
DS AE PDNO ARDEC E ARID EN CASEX T 
DPL ASSDO WHILC ELHS BT FORCA
DOL CRAP OPC LSP BLKFRC
CTRU1 CTRU2 CFLS1 CFLS2 DUMMY NOCOND EOFILE NOMORE
WDPL CDPL FRDPL FLDPL OPPS MPRO

MUMBLE Classes ;

<CLASSES>

@ALGLP	ITEM ITEMVAR SET LABEL REAL INTEGER 
	 STRING BOOLEAN LIST KILL_SET CONTEXT
@HEL	ITEM ITEMVAR  MUMBLE NEW DATA TYPES;
@XO	INTERNAL SAFE EXTERNAL OWN RECURSIVE FORTRAN FORWARD SHORT SIMPLE
	MATCHING ∞IFN GLOBSW ∀ GLOBAL MESSAGE ∀
@VAL	REFERENCE VALUE QUES
@UNOPE	LNOT ABS + -
@PM	+ - EQV LAND LOR ⊗
@ASOP	⊗ ' ≡ *
@TD	* % / LSH ROT  DIV MOD &
@RL	< > = ≠ ≤ ≥ MUMBLE RELATIONS;
@MX MAX MIN
@ALG	STRING REAL INTEGER BOOLEAN SET LIST CONTEXT 
@DCL	SET ITEM ITEMVAR LABEL REAL INTEGER STRING LIST CONTEXT
	 BOOLEAN PROCEDURE INTERNAL SAFE EXTERNAL OWN DEFINE
	 RECURSIVE FORWARD FORTRAN REQUIRE PRELOAD_WITH SHORT
	 LET MATCHING
	 ∞IFN GLOBSW ∀ GLOBAL MESSAGE ∀
	PROTECT_ACS SIMPLE CLEANUP
@E	E BE AE
MUMBLE
@SETOP	∩ ∪
;
@REQ	PNAMES SYSTEM_PDL STRING_PDL STRING_SPACE ARRAY_PDL
	 NEW_ITEMS VERSION LIBRARY LOAD_MODULE SOURCE_FILE DELIMITERS
	REPLACE_DELIMITERS UNSTACK_DELIMITERS NULL_DELIMITERS
	ALLGLOBAL ∞IFN GLOBSW ∀ SEGMENT_NAME SEGMENT_FILE ∀
	PROCESSES POLLING_INTERVAL BUCKETS
@CALL	PCALL FCALL
@LOOP	ASSDO FORCA  WHILC
@NXT	STEP UNTIL WHILE : TO FOR 
@END	UNTIL END ELSE ;
@IN	IN FROM
@OTH	; DO  , ) END ELSE UNTIL
@MAKER	MAKE ERASE
@PUT	PUT REMOVE
@SUCCEED SUCCEED FAIL
@REMEMB REMEMBER FORGET RESTORE
@BEAFT  AFTER BEFORE
@TFAL	INF NULL TRUE FALSE 
@FUNC1	ISTRIPLE LOP CVN LENGTH ILDB LDB
@FUNC2	FIRST SECOND THIRD COP CVI
@FUNCL	FIRST SECOND THIRD ISTRIPLE
@CVSET	CVSET	CVLIST
@PRO1	IDPB DPB IBP
@AR	T P BP BT BE
@DC	DO ,
@I	I IVB ISV IAR ILB ICN IIT IST ITV IPR STC
@IARY	IAR ILB
@ISTO	IVB ISV IST ITV
@IASS	IIT ITV
@IALG	IVB ISV ICN STC
@FUNC	ISTRIPLE FIRST SECOND THIRD LOP COP CVI CVN LENGTH ILDB LDB BBPP
	CVSET CVLIST
@IDC	IVB ISV IAR ILB ICTXT ICN IIT IST ITV IPR STC
@STA	FOR WHILE DATUM MAKE ERASE DONE PUT REMOVE DELETE REMEMBER FORGET RESTORE
	MEMORY SUCCEED FAIL PROPS
@EXS	( LNOT ABS + - NOT [

@STCO  START_CODE QUICK_CODE
@BEG	BEGIN START_CODE QUICK_CODE

@EDN	AFTER ARDEC ARID BBPP BEFORE BEGIN CASE CASEC CASEX CDPL COL COP CVI
	CVLIST CVN CVSET DATUM DELETE DOC DPB DPL EIFC ELHS ELSE FCALL FIRST
	FLDPL FOR FOREACH FORGET FROM FRDPL IBP IDPB IFC CTRU1 CFLS1 CTRU2
	IN_CONTEXT
	CFLS2 IN ILDB ISTRIPLE LARW LDAT LDB LENGTH LHS LIP LOP LSP NEW OF OFC PCALL
	PROPS QUICK_CODE REMEMBER REMOVE REQUIRE RESTORE RETURN SECOND SIP
	START_CODE STEP STID THEN THENC THIRD TO UNTIL WDPL WHILE WHILEC  : [ ↔ ,
	PROTECT_ACS ASSIGN APPLY MEMORY SPROUT CAUSE INTERROGATE EXPR_TYPE
	PDEC REF_ITEM
@LCON	@EDN AND DATUM IF IN MAX MIN NOT OR 
	( < > = ≠ ≤ ≥

@EDR	DO DOC ELSE ELSEC END ENDC FOR FROM IN OF OFC STEP STEPC THEN THENC TO UNTIL
	UNTILC WHILE , ) ] ; @ ( : LISTC }
@RCON	@EDR AND CASE EQV OR > < = ≠ ≥ ≤ - +

@LOWER	+ - * % ⊗ / & = < > ≤ ≥ ≠ LNOT ABS EQV LAND LOR LSH ROT DIV
        MOD MAX MIN
@MKSU	NOW_SAFE NOW_UNSAFE
@TERMINAL
@RESERVED
@CONS	ICN STC
@IDQ	IVB ISV IAR ILB IST ITV IPR 
@IDD	@RESERVED @IDQ IIT I
@C1	, ; ) [ ]
MUMBLE
@C2	UNTIL WHILE IF CRAP
@STM	SIFC BEGIN START_CODE QUICK_CODE CASEX PDEC ASSDO FORCA WHILC
;
MUMBLE
@GAR	GO GOTO FOR WHILE DATUM MAKE ERASE PUT DELETE DONE SUCCEED FAIL
	 BEGIN IF FOREACH IDPB DPB CASE DO RETURN REMEMBER FORGET RESTORE
	 DEFINE NEXT NEEDNEXT ∞IFN GLOBSW ∀ GLOBAL ∀
	 LET
;
@SEND	END ELSE ; UNTIL
MUMBLE
@LPR	NEW RETURN CASEX DELETE ISTRIPLE FIRST SECOND THIRD
	 LOP COP CVI CVN  LENGTH ILDB LDB , PCALL FCALL CVSET CVLIST
;

@SIP	LIP SIP
@THT	THEN THENC
@CONBG	IFC WHILEC CASEC FORC FORLC
@DOCA	DO DOC
@LDC	IVB ISV IAR ILB IST ITV IPR I
@STEPCA	STEP STEPC
@UNTLCA	UNTIL UNTILC
@OFCA	OF OFC
@CTRUE  CTRU1 CTRU2
@CFALSE CFLS1 CFLS2
@EQC	LARW EQU
@QEND	END ;
@QBEG	BEGIN START_CODE QUICK_CODE CASEX
@RSTDC	RESERVED BUILT_IN ∞IFN LEAPSW ∀ LEAP_ARRAY ∀

MUMBLE Declarations;


<PRODUCTIONS>

BB0:	 ENTRY →→		EXEC ENTENT		SCAN 		¬ENT
	 BEGIN →→ BLAT BEGIN	EXEC ENTOUT LPNAME DWN	SCAN 		¬DS   #Q1

ENT:	 ; →→						SCAN 		¬BB0  
ENT0:	 SG →→			EXEC ENTMAK		SCAN 		¬ENT1  
ENT1:	 , →→						SCAN 		¬ENT0  
ENT2:	 ; →→						SCAN		¬BB0   #Q2

DS:	 @BEG STC →→ @BEG	EXEC BLNAME		SCAN 		¬DS2
DS2:	 @BEG @DCL		EXEC BLOCK CLRSET			¬DS0  #DS3
DS3:	 SG			EXEC OFFDEF				¬S0

DS0:	 
∞IFN LEAPSW ∀
	 @ALGLP			EXEC @ALGLP TYPSET	SCAN 		¬D1
∀ ∞IFE LEAPSW ∀
	 @ALGLP →→		EXEC @ALGLP TYPSET	SCAN 		¬TYP
∀

	 PDEC @VAL →→ PDEC	EXEC @VAL VALSET	SCAN 		¬DS0
∞IFN GLOBSW ∀
	 @XO   						SCAN 		¬ZDS2
∀ ∞IFE GLOBSW ∀
	 @XO →→			EXEC @XO XOWSET		SCAN		¬DS0
∀
	 DEFINE →→		EXEC MACOFF DLMPSH DPSHBT ∞∞
							SCAN	↑DFR	¬ZDS1
	 LET →→			EXEC MACOFF		SCAN 	↑LTR 	¬DS0
	 REQUIRE →→		EXEC RQ00		SCAN 2 	↑RQQ 	¬DS0
	 PRELOAD_WITH →→	EXEC LDYBEG		SCAN 	↑CONX 	¬LW1
	 PROCEDURE					SCAN 		¬TYP
	 CLEANUP →→					SCAN 2		¬CLN
	 PROTECT_ACS →→					SCAN 	↑CONX 	¬PACL
	 ; →→ 						SCAN		¬DS0
	 STC →→			EXEC SCOMM		SCAN		¬DS0
	 @BEG SG		EXEC ENDDEC 				¬S0   #XXQQ

ZDS1:	 SG						SCAN		¬DS0

∞IFN GLOBSW ∀
ZDS2:	 @XO @DCL →→ @DCL	EXEC @XO XOWSET				¬DS0
	 GLOBAL SG →→ SG    	EXEC ENDDEC GLBSET			¬S1   #XXQQ
∀
∞IFN LEAPSW ∀
D1:	 @XO →→			EXEC @XO XOWSET		SCAN 		¬D1
	 @ALG @HEL →→		EXEC @HEL HELSET	SCAN 		¬TYP
	 @ALG ARRAY →→ ARRAY				SCAN 		¬D2
	 @ALGLP SG →→ SG 						¬TYP
D2:	 SG ITEMVAR →→		EXEC HELAR1		SCAN 		¬TYP
	 SG ITEM →→ ARDEC	EXEC HELAR2		SCAN 		¬DA1 
∀

TYP:	 ARRAY						SCAN 		¬TYP1
	 PROCEDURE					SCAN		¬TYP1
TYP1:	 BEGIN PROCEDURE @IDD →→ BEGIN PDEC ∞∞
				EXEC KLSET PRDEC	SCAN 		¬PD0
	 ARRAY @IDD →→ ARDEC @IDD ∞∞
				EXEC STARY 				¬DA1
	 PDEC PROCEDURE @IDD →→ PDEC @IDD ∞∞
				EXEC PRSET 				¬IDL

IDL:	@DCL      					SCAN		¬QIDC  
    	 @IDD →→		EXEC ENTID		SCAN 		¬IDL1 #Q4
IDL1:	 , →→						SCAN 		¬IDL
	 ; →→			EXEC CLRSET		SCAN 		¬DS0
	 PDEC ( →→ PDEC		EXEC DFVPV0		SCAN	↑CONX	¬DFVP
	 PDEC ) →→ PDEC		EXEC TWPR2		SCAN 		¬PD1  #Q5

PD0:	 ( →→			EXEC CLRSET		SCAN 		¬DS0
	 PDEC SG		EXEC TWPR1 				¬PD1  #TRAP

PD1:	 PDEC ; →→ PDEC		EXEC ENDPR KOUNT1	SCAN 		¬S1
	 PDNO ; →→		EXEC ENDPR FWUNDO	SCAN 		¬DS0  #Q7

CLN:	 IPR , →→		EXEC CLNSET		SCAN 2		¬CLN
	 IPR ; →→		EXEC CLNSET		SCAN		¬DS0

DFVP:	SG ) →→			EXEC DFVPV		SCAN		¬IDL1 #Q4


PACL:	 SG , →→		EXEC PACDO		SCAN 	↑CONX 	¬PACL
	 SG ; →→		EXEC PACDO		SCAN 		¬DS0  #Q8

RQQ:	 @PM ICN					SCAN 		¬RQQ1 # RQQQ
RQQ1:	 @UNOPE ICN SG →→ ICN SG ∞∞
				EXEC @UNOPE UNARY 			¬RQQQ
RQQQ:	 STC SOURCE_FILE				SCAN 		¬RQ3
	 STC MESSAGE →→		EXEC TYPMSG		SCAN		¬RQ1
	 IPR INITIALIZATION →→ 	EXEC REQINI		SCAN		¬RQ1
	 @CONS @REQ →→		EXEC @REQ RQSET		SCAN 		¬RQ1
	 @REQ SG →→ SG		EXEC @REQ RQSET 			¬RQ1  #XXQQ
RQ1:	 ; →→						SCAN 	↓↓
	 , →→						SCAN 2 		¬RQQ  #Q10

RQ3:	 STC SOURCE_FILE , →→	EXEC REQERR		SCAN 2 		¬RQQ
	 STC SOURCE_FILE ; →→	EXEC SRCSWT		SCAN		¬RQ4  #Q11
RQ4:	 SG			EXEC SRCCHK			↓↓

LW1:	 [ E ] →→		EXEC LDYREP		SCAN 	↑CONX 	¬LW1
LW:	 E , →→			EXEC LDYNO		SCAN 	↑CONX 	¬LW1
	 E ; →→			EXEC LDYNO CLRSET	SCAN 		¬DS0  #Q12


DA0:	 ARDEC ; SG →→ SG	EXEC CLRSET 				¬DS0
	 ARDEC , SG →→ ARDEC SG 					¬DA1  #Q13
DA1:	 PDEC ARDEC SG →→ PDEC SG 					¬IDL
DA2:	 @IDD →→		EXEC ENTARY		SCAN 		¬DA3  #Q4
DA3:	 , →→						SCAN 		¬DA2
	 [ →→						SCAN 	↑NEX 	¬AR0  #Q15

AR0:	 ARDEC E : E , →→ ARDEC	EXEC ARRSUB		SCAN 	↑NEX 	¬AR0
	 ARDEC E : E ] →→ ARDEC	EXEC ARRSUB ARRDEC	SCAN 2 		¬DA0  #Q16

LTR:	 @IDD			EXEC LETSET		SCAN 2 		¬LT1  #Q4 
LT1:	 SG = @RESERVED →→	EXEC LETENT		SCAN 		¬LTR1 #XXQQ
LTR1:	 , →→			EXEC MACOFF		SCAN 		¬LTR
	 ; →→						SCAN 	↓↓ 	      #Q23
MUMBLE Statements;

S0:	 BLAT BEGIN SG		EXEC UINCLL				¬S1
	 @STCO SG		EXEC @STCO CODNIT 			¬COD
S1:	 SG			EXEC CAPOLL				¬S01
S01:	 @IDQ						SCAN		¬SID
	 @STA 								¬S1Q
	 @BEG			EXEC DWN		SCAN 		¬DS
	 IF						SCAN 	↑BEX 	¬IFQ
	 @END →→ S @END 						¬S9
	 GO						SCAN 		¬G1
	 GOTO →→ GO					SCAN 		¬G2
∞IFN LEAPSW ∀
	 FOREACH →→ BLKFRC FOREACH ∞∞
				EXEC DWN1				¬FRC0
∞IFN GLOBSW ⊗
	 GLOBAL →→		EXEC GLBSET		SCAN 		¬S1
⊗
∀
	 @PRO1						SCAN 	↑EXD 	¬PROS
	 CASE						SCAN 	↑EX 	¬CSES
	 DO →→ DOL		EXEC DOLOOP KOUNT1	SCAN 		¬S1
	 RETURN →→					SCAN 		¬RT0
	 NEEDNEXT →→		EXEC NEXTR		SCAN 		¬S1
	 NEXT						SCAN		¬NXTX
	 CONTINUE					SCAN		¬CTUX
	 STC →→			EXEC SCOMM		SCAN 		¬S1
	 REQUIRE →→		EXEC RQ00		SCAN 2 	↑RQQ 	¬S1
	 CASEX [					SCAN 	↑CONX 	¬CASD
	OPPS BEGIN [					SCAN 	↑CONX	¬CASD
	 @MKSU						SCAN 2 		¬MS
 	 APPLY	→→ PCALL APPLY				SCAN		¬%EV1
	 ASSIGN   					SCAN		¬%BP1
	 SPROUT						SCAN 		¬FK
	 CAUSE						SCAN	↑EXD	¬%CS2
	 INTERROGATE →→ PCALL				SCAN	↑EXD	¬%IR2
	 POLL →→ S		EXEC INMAIN EPOLL	SCAN		¬S9
	 ICTXT 						SCAN 2	↑EX1	¬LCEL
	 I       		EXEC UNDEC		SCAN 		¬USID  #Q24    

S1Q:	 FOR						SCAN  		¬S1 
	 WHILE			EXEC WHIL1 KOUNT1	SCAN 	↑BEX 	¬WHG
∞IFN LEAPSW ∀
	 DATUM →→ LDAT		EXEC GLBST2		SCAN 	 	¬LDA
	 @MAKER			EXEC @MAKER MKSET	SCAN 	↑EX1	¬FRG
	 @PUT						SCAN 	↑EX1	¬PT0
	 DELETE			EXEC GLBST2		SCAN 	↑EXD 	¬DEL
	 @REMEMB					SCAN		¬RFR
	 PROPS			EXEC GLBST2		SCAN	↑EXD	¬SPRP
	 @SUCCEED →→ S		EXEC @SUCCEED SUCCEX	SCAN		¬S9
∀
	 MEMORY						SCAN	↑MEMX	¬SID
	 DONE 			          		SCAN 		¬DNEX  #XXQQ

NXTX:	 NEXT STC →→ S		EXEC NEXTBN		SCAN		¬S9
	 NEXT SG →→ S SG	EXEC DNEXT				¬S9 #XXQQ
DNEX:	 DONE STC →→ S		EXEC DONEBN		SCAN		¬S9
	 DONE SG →→ S SG	EXEC DDONE		    		¬S9 #XXQQ
CTUX:	 CONTINUE STC →→ S	EXEC CONTBN		SCAN		¬S9
	 CONTINUE SG →→ S SG	EXEC CNTNUE				¬S9 #XXQQ

RT0:	 @OTH →→ S @OTH		EXEC RESLT1 				¬S9
	 ( →→ RETURN					SCAN 	↑EX 	¬RESL #XXQQ
RESL:	 RETURN @E ) →→ S	EXEC @E ECHK RESULTS	SCAN 		¬S9   #Q30

G1:	 GO TO →→ GO					SCAN 		¬G2
G2:	 GO ILB →→ S		EXEC TRA		SCAN 		¬S9   #Q32

SID:	 FOR @ISTO ← →→ FORCA LHS ∞∞
				EXEC FORBG TWID10	SCAN 	↑NEX 	¬FOR1
	 @ISTO ← →→ LHS		EXEC TWID10		SCAN 	↑EX 	¬STO
	 @IARY [ →→ ARID	EXEC ARYIDX		SCAN 	↑ARY 	¬SID
	 IPR ( →→ PCALL		EXEC RDYCAL		SCAN 	↑EX 	¬PARM
	 IPR SG →→ S SG		EXEC RDYCL1 ISUCL1 PRST 		¬S9
	 ILB : →→		EXEC ENTLAB APOLL KOUNT2 ∞∞
							SCAN 		¬S1
	 IST [			EXEC REFINF		SCAN 	↑EX 	¬REP0
	 @ISTO ↔					SCAN 	↑EX 	¬STO       
	 I SG								¬USID  #XXQQ


S9:	 SIFC S ELSE		EXEC IFLS1		SCAN 		¬S1
	OPPS S SG →→ SG		EXEC ERR105				¬FUSH
S8:	 BEGIN S ; →→ BEGIN				SCAN 		¬S1
	 SIFC S ELSE S @SEND →→ S @SEND ∞∞
				EXEC IFLS2 				¬S9
	 SIFC S @SEND →→ S @SEND  EXEC IFNLS 				¬S9
	 BLAT BEGIN S END →→ S	EXEC QREM2 UP2 DONES OKEOF ∞∞
							SCAN		¬FIN
	 BEGIN S END →→ S	EXEC QREM2 UP2		SCAN 		¬S7
	 @LOOP S @SEND →→ S @SEND  EXEC LOPPS KOUNT1 			¬FR9
	 DOL S UNTIL					SCAN 	↑BEX 	¬DOLS
	 CASEX S ; →→ CASEX	EXEC CASEMT KOUNT1	SCAN 		¬S1
	 CASEX S END →→ CASEX	EXEC CASEMT CASEND	SCAN		¬S7
	 CASEX [ E ] S END →→ CASEX ∞∞
				EXEC CASEM1 CASEN1	SCAN 		¬S7
	 CASEX [ E ] S ; →→ CASEX ∞∞
				EXEC CASEM1 KOUNT1	SCAN 		¬S1
	 PDEC S ; →→		EXEC PRUP		SCAN 		¬DS0  #Q34

S7:	 S STC →→ S		EXEC NAMCHK		SCAN 		¬S9
	 CASEX STC →→ S		EXEC NAMCHK		SCAN 		¬S9
	 CASEX SG →→ S SG 						¬S9   #S9
FR9:	 BLKFRC S SG →→ S SG	EXEC UP2 				¬S9   #S9

FIN:	 S STC →→		EXEC NAMCHK OKEOF	SCAN 		¬FIN1
	 S SG →→ SG 							¬FIN1 #FIN1
FIN1:	 EOFILE →→ 						↓↓	           
	 SG →→			EXEC OKEOF		SCAN		¬FIN1  #FIN1

MS:	 @MKSU IAR , →→ @MKSU	EXEC @MKSU DOSFTY	SCAN 2 		¬MS
	 @MKSU IAR SG →→ S SG	EXEC @MKSU DOSFTY	SCAN 		¬S9   #Q35

MUMBLE Expression Parsers;

EXD:	 ( →→						SCAN 		¬EX   #Q36
EX:	 SG 							↑EX1 	¬EX22
EX22:    TR SG →→ P SG		EXEC ISIT			↑P2	¬EX22
	 BE SG →→ E SG		EXEC EXPOP 			↓↓
	 SG 							↓↓ 	      #TRAP

BEX:	 SG 							↑EX1 	¬BX2
BX2:	 BE SG 							↓↓
	 E SG →→ BE SG		EXEC BOOP 			↓↓
	 TR SG →→ P SG		EXEC ISIT			↑P2	¬BX2  #Q38

CONX:	 SG 							↑EX 	¬CX1
CX1:	 CFLS1 E SG						↓↓
	 E SG			EXEC CHKCON 			↓↓ 	      #Q39

NEX:	 SG 							↑EX 	¬NEX1 #TRAP
NEX1:	( E @NXT →→ P @NXT	EXEC ER40   TWID10		↑P2	¬NEX1
	( BE @NXT →→ ( BE ) @NXT ∞∞
				EXEC ER40   TWID10		↑BP4	¬NEX1
     	 SG @E @NXT		EXEC @NXT WAIT		SCAN 		¬NEX2 #NXQ
NEX2:	 WHILE SG 						↑BEX 	¬NEX1 #NEX
NXQ:	 SG 							↓↓
MUMBLE Main Expression Parser;

EX1:	 @IDC						SCAN 		¬XID
	 @EXS						SCAN 		¬EX1
∞IFN LEAPSW ∀
	 @FUNCL			EXEC GLBST2		SCAN	↑EXD	¬RTN
∀
	 @FUNC						SCAN 	↑EXD 	¬RTN
	 IF						SCAN 	↑BEX 	¬EIF
	 @TFAL →→ P		EXEC @TFAL TCON		SCAN 		¬P2
∞IFN LEAPSW ∀
	 DATUM			EXEC GLBST2		SCAN	↑EDAT   ¬XID
	 { →→ SIP					SCAN 		¬BRK1
	 PHI →→ SP		EXEC LPPHI		SCAN 		¬SF1
	 NIL →→ SP		EXEC STKNIL		SCAN		¬SF1
	 DEPENDENTS →→					SCAN 3		¬DPS1
	 NEW			EXEC GLBST2		SCAN 		¬NW1
	 LISTO →→ LIP		EXEC LIPGO		SCAN 		¬EX1
	 ?						SCAN 2		¬IPQ
	 BIND						SCAN 2		¬IP0
	 REMOVE ALL →→ REMOVE	EXEC REMAST		SCAN 		¬EX1
	 PROPS 			EXEC GLBST2		SCAN	↑EXD	¬PRP
	 SAMEIV	→→					SCAN 6		¬SIV
	 REF_ITEM 		EXEC GLBST2		SCAN 2		¬RFI
∞IFN GLOBSW ⊗
	 GLOBAL →→		EXEC GLBSET		SCAN 		¬EX1
	 MESSAGE →→		EXEC MESCL		SCAN 		¬EX1
⊗
∀
	 MEMORY						SCAN 	↑MEMX	¬XID
	 LOCATION					SCAN		¬LOCX
	 APPLY →→ FCALL APPLY				SCAN		¬%EV1
	 INTERROGATE →→ FCALL				SCAN	↑EXD	¬%IR2
	 I 			EXEC UNDEC		SCAN 		¬UXID
	 CASE						SCAN 	↑EX 	¬CSES 
	 ICTXT						SCAN 		¬ECEL
	 NULL_CONTEXT		EXEC NLCNXT		SCAN	↓↓
	 IN_CONTEXT					SCAN	↑EXD	¬NCXT
	 CVMS →→					SCAN	↑CV1	¬CV2
	 DECLARATION →→					SCAN	↑CV1	¬DL1
	 EXPR_TYPE					SCAN		¬DE1
	 CHECK_TYPE →→		EXEC SPRZER		SCAN		¬CK0	#Q41


DE1:	 ( →→			EXEC DCLBEG		SCAN	↑EX1	¬DE2
DE2:	 EXPR_TYPE @E ) →→ ICN	EXEC @E ECHK DCLEND DCLNT1 ∞∞
							SCAN		¬XID	#Q114

DL1:	 @LDC →→ ICN		EXEC DCLNT2		SCAN		¬DL2	#Q107
DL2:	 ) →→						SCAN		¬XID	#XXQQ

CV1:	 ( →→			EXEC MACOFF		SCAN	↓↓
CV2:	 I →→ STC		EXEC STCAT		SCAN		¬CV3	#XXQQ
CV3:	 ) →→ 						SCAN		¬XID	#Q106




XID:	 @EDN @IALG @EDR →→ @EDN E @EDR 			↓↓
	 @ISTO ← 							¬XSTO  #XIE
XSTO:	 ICTXT COL @ISTO ←						¬XST1  #XST2
XST1:	 @IALG SG →→ E SG						↓↓
	 @IASS SG →→ AE SG	EXEC STITM			↓↓
	 IST SG →→ AE SG	EXEC STSET			↓↓	       #Q115

XST2:	 @ISTO ← →→ ELHS	EXEC TWID10		SCAN 	↑EX 	¬ESTO
XIE:
	 @IARY [ →→ ARID	EXEC ARYIDX		SCAN 	↑ARY 	¬XID
	 ICTXT COL @I SG						¬XST1
	 @IALG SG →→ P SG 						¬P2
∞IFN LEAPSW ∀
	 @IASS SG →→ IP SG	EXEC STITM 				¬IP2
	 IST SG →→ SP SG	 					¬SF0
∀
	 IPR ( →→ FCALL		EXEC RDYCAL		SCAN 	↑EX 	¬PARM
	 @CALL @IDC @OTH →→ @CALL E @OTH 			↓↓
	 IPR SG →→ P SG		EXEC RDYCL1 ISUCL1 TYPR1 		¬XID
	 ICTXT SG					 	  	¬ECEL
	 @REMEMB	IAR @EDR →→ @REMEMB E @EDR			↓↓	
	 IN_CONTEXT IAR @EDR →→ IN_CONTEXT IAR @EDR			↓↓
	 NEW @IARY ) 						↓↓ 	             
	 REF_ITEM @IARY )					↓↓
	 I SG								¬UXID   #Q42



NW1:	 ( →→						SCAN 	↑EX 	¬NW2
	 NEW SG →→ IP SG	EXEC NEWNOT 				¬IP2
NW2:	 NEW SG ) →→ IP		EXEC NEWART		SCAN 		¬IP2  #Q43


P2:	 @LCON P @RCON →→ @LCON E @RCON 				¬E2
	 P ↑ 						SCAN 		¬EX1
	 P [ →→ STID		EXEC SVSTR TWID10	SCAN 	↑NEX 	¬BSTR
	 E @PM P SG →→ E @PM T SG 					¬T2
	 @UNOPE P SG →→ P SG	EXEC @UNOPE UNARY 			¬P2
	 P ↑ P SG →→ P SG 	EXEC EXPON 				¬P2


T1:	 T @TD P SG →→ T SG	EXEC @TD TIMDIV 			¬T2

T2:	 @AR @TD →→ T @TD				SCAN 		¬EX1
EN1:	 E @PM @AR SG →→ E SG	EXEC @PM PLUSM 				¬E2
	 @AR SG →→ E SG 						¬E2   #XXQQ
E2:	 E @PM						SCAN 		¬EX1
	 @EDN E @EDR 						↓↓
	 @EDN E @I 						↓↓
MUMBLE PREVIOUS FOR BENEFIT OF START_CODE, WHICH IS ONLY CONSTRUCT
 IN SAIL WHICH IS NOT OPERATOR GRAMMAR-LIKE (THEREFORE
 I'M SAFE?) (DCS -- 8/19/70);

	 ( E ) →→ P		EXEC TWID10		SCAN 		¬P2
	 E @MX E SG →→ E SG	EXEC @MX MAXMIN 			¬E2
	 E @MX						SCAN 		¬EX1 #BX1

RFI:	( VALUE →→		EXEC RFVAL		SCAN	↑EX	¬RF0
	( SG →→ SG		EXEC RFZERO			↑EX	¬RF0 #Q36
RF0:	REF_ITEM @E ) →→ IP	EXEC @E ECHK RFIMAK	SCAN		¬IP2 #QRFI
MUMBLE Compile-time type checking productions;

CK0:	( →→						SCAN		¬CK1
CK1:	) →→ ICN		EXEC MKINT		SCAN		¬XID
CK2:
∞IFN LEAPSW ∀
	@ALGLP			EXEC @ALGLP TYPST1	SCAN		¬CK4
∀ ∞IFE LEAPSW ∀
	@ALGLP →→		EXEC @ALGLP TYPST1	SCAN		¬CK3
∀
	@XO →→			EXEC @XO XOWST1		SCAN		¬CK1
	DEFINE →→		EXEC @4 RSTST1		SCAN		¬CK1
	@VAL →→			EXEC @VAL VALST1	SCAN		¬CK1
	@RSTDC →→		EXEC @RSTDC RSTST1	SCAN		¬CK1	#Q108
CK3:	ARRAY →→		EXEC @3 RSTST1		SCAN		¬CK1
	PROCEDURE →→		EXEC @5 RSTST1		SCAN		¬CK1	#CK1

∞IFN LEAPSW ∀
CK4:	@XO →→			EXEC @XO XOWST1		SCAN		¬CK4
	@ALG @HEL →→		EXEC @HEL HELST1	SCAN		¬CK3
	@ALG ARRAY →→ARRAY				SCAN		¬CK5
	@ALGLP SG →→ SG							¬CK3
CK5:	SG ITEMVAR →→		EXEC @0 HELAR3		SCAN		¬CK3
	SG ITEM →→		EXEC @1 HELAR3		SCAN		¬CK1	#CK3
∀

MUMBLE Boolean Expressions;

BX1:	 @E @RL @E @RL →→ BT AND @E @RL ∞∞
				EXEC @E ESET @RL BOREL1	SCAN 		¬EX1
	 @E @RL @E SG →→ BP SG	EXEC @E ESET @RL BOREL 			¬BP2
	 @RL						SCAN 		¬EX1
	 @E SG →→ BP SG		EXEC BOOP 				¬BP2 

BP2:	 NOT BP SG →→ BP SG	EXEC BONOT 				¬BP2
BP3:	 BT AND BP SG →→ BP SG	EXEC BOAND 				¬BP2
BT2:	 @AR AND →→ BT AND				SCAN 		¬EX1
BT3:	 BE OR @AR SG →→ BE SG	EXEC BOOR 				¬BE2
BE2:	 @AR OR →→ BE OR				SCAN 		¬EX1
	 ( @AR )		EXEC TWID10		SCAN 		¬BP4
	 @AR SG →→ BE SG 					↓↓ 	      #XXQQ

BP4:	 @LOWER SG @AR SG1 SG2 →→ @LOWER P SG2 ∞∞
				EXEC EXPOP1 				¬P2
	 SG @AR SG1 @LOWER →→ P @LOWER ∞∞
				EXEC EXPOP1 				¬P2
	 SG @AR SG1 SG2 →→ BP SG2 ∞∞
				EXEC TWID21 				¬BP2  #XXQQ
MUMBLE Leap constructs;

∞IFN LEAPSW ∀
SPRP:	 PROPS AE ) →→ AE	EXEC PPROP		SCAN 2		¬SPP2 #Q110
SPP2:	 ← SG							↑EX	¬SPP3 #Q111
SPP3:	 AE ← E SG →→ S SG	EXEC PPSTO				¬S9   #Q111

PRP:	 PROPS AE ) →→ AE	EXEC PPROP		SCAN		¬PRP2 #Q110
PRP2:	 SG ←						SCAN	↑EX	¬PRP3
	 AE SG →→ P SG		EXEC GTPROP				¬P2
PRP3:	 AE ← E SG →→ E SG	EXEC EPPSTO				¬E2   #Q111

EDAT:	 DATUM ( →→ DATUM				SCAN	↑EX1	¬EDA1 #XXQQ
EDA1:	 SG			EXEC CLRSET				¬EDA2
EDA2:	 DATUM AE , →→ DATUM AE				SCAN	↑DTTP	¬EDA3 #EDA3
EDA3:	 DATUM AE ) →→ I	EXEC DDATA		SCAN	↓↓	      #XXQQ

LDA:	 LDAT ( →→ LDAT					SCAN	↑EX1	¬LDA1 #XXQQ
LDA1:	 SG			EXEC CLRSET				¬LDA2
LDA2:	 LDAT AE , →→ LDAT AE				SCAN	↑DTTP	¬LDA3 #LDA3
LDA3:	 LDAT AE ) →→ I		EXEC LDATA		SCAN		¬SID  #XXQQ

DTTP:	 @ALGLP →→		EXEC @ALGLP TYPSET	SCAN		¬DTTP #DTT3
DTT3:	 SAFE →→		EXEC SAFSET		SCAN		¬DTTP #DTT4
DTT4:	 ARRAY →→		EXEC ARYSET		SCAN		¬DTTP #DTT5
DTT5:	 SG							↓↓	      #TRAP

IPQ:	 ? ITV SG →→ IP SG	EXEC STITM QUESET			¬IP2  #Q109
IP0:	 BIND ITV SG →→ IP SG	EXEC STITM FRESET			¬IP2  #Q109
IP2:	 @REMEMB IP @IN →→ @REMEMB E @IN				↓↓
	 IP @IN →→ IP @IN				SCAN		¬EX1
	 @EDN IP @EDR →→ @EDN AE @EDR 				↓↓
	 [ AE ⊗ IP ≡					SCAN 		¬EX1
	 [ AE ⊗ IP ≡ IP ] →→ IP	EXEC BTRIP		SCAN 		¬IP2
	 AE ⊗ IP ≡ →→ AE ⊗ AE ≡						¬IE3
	 IP @ASOP →→ AE @ASOP	EXEC GLBST2		SCAN 		¬EX1
	 @ASOP IP SG →→ @ASOP AE SG					¬IE3
	 IP @RL →→ AE @RL	EXEC ITMREL				¬IE3 
	 IP SG →→ AE SG 						¬IE3  #XXQQ

BRK1:	 SIP { →→ LIP					SCAN 		¬BRK2
	 SIP } →→ SP		EXEC LPPHI     		SCAN		¬SF1
	 SG 			EXEC SIPGO			↑EX1	¬SPP0 #TRAP
BRK2:    LIP }	→→ SP		EXEC STKNIL		SCAN            ¬BRK3 #BRK4
BRK3:	 } →→ 						SCAN		¬SF1  #SF1
BRK4:	 LIP SG			EXEC LIPGO			↑EX1	¬SPP0 #TRAP
SPP0:	 @SIP AE @EDR →→ @SIP @EDR  EXEC SIP1				¬SPP1 #Q48
SPP1:	 @SIP , →→ @SIP					SCAN 	↑EX1	¬SPP0
	 LIP LISTC →→ SP	EXEC STPRIM		SCAN 		¬SF1
	 LIP } →→ SP		EXEC STPRIM		SCAN 		¬LIP2
	 SIP } →→ SP		EXEC STPRIM		SCAN 		¬SF1  #Q48
LIP2:	 SP } →→ SP					SCAN 		¬SF1  #SF1



FRC0:	 BLKFRC FOREACH		EXEC BLOCK EACH4 ENDDEC	SCAN  		¬FRC
FRC:	 ?						SCAN		¬FRD1
    	 ITV						SCAN		¬FRC1 #Q485
FRC1:	 ITV , →→		EXEC ENTITV		SCAN  		¬FRC
	 ITV | →→		EXEC ENTITV FRCHGO	SCAN 		¬FRE
	 ITV SUCH →→		EXEC ENTITV FRCHGO	SCAN 		¬FRD  #XXQQ
FRD:	 THAT →→					SCAN 		¬FRE  #FRE
FRD1:	 ? ITV	→→ ITV		EXEC QLOCAL		SCAN		¬FRC1 #Q486

FRE:	 ( →→ CRAP		EXEC BOPREP		SCAN 	↑BEX 	¬FRF
	 SG 							↑EX1	¬FRG
FRF:	 CRAP BE ) →→ TR	EXEC FRBOL		SCAN 		¬FRG  #Q50
FRG:	 FOREACH MPRO SG →→ FOREACH TR SG ∞∞
				EXEC INMAIN CALMP			¬FRG
FRG2:	 FOREACH TR AND →→ FOREACH ∞∞
				EXEC FRCH1		SCAN 		¬FRE
	 FOREACH TR DO →→ ASSDO	EXEC FRCH2 KOUNT1	SCAN 		¬S1
	 @MAKER TR SG →→ S SG ∞∞
				EXEC @MAKER MAKIT 			¬S9   #Q51

SIV:	 ( ITV , ITV ) SG →→ P SG ∞∞
				EXEC SAMEV				¬P2   #Q112


LSB1:	 SP [ @E ] →→ IP	EXEC ELSSUB SELIP	SCAN 		¬IP2
	 SP [ @E @NXT					SCAN 	↑EX 	¬LSB2 #Q52
LSB2:	 SP [ @E @NXT @E ] →→ SP ∞∞
				EXEC ELSSUB @NXT SELSBL	SCAN 		¬SF1  #Q53

SF0:	 SP @BEAFT		EXEC REFINF				¬SFS  #SFS
SFS:	 SP SG			EXEC STSET				¬SF1  #TRAP
SF1:	@PUT SG @IN SP SG1					↓↓
	@IN SP SG							¬SF1A
    	 @EDN SP @EDR →→ @EDN AE @EDR 				↓↓
SF1A:	 SP [			EXEC LSSUB		SCAN 	↑EX 	¬LSB1
	 SP & SP SG →→ SP SG	EXEC LSTCAT 				¬SF1
	 SP &						SCAN 		¬EX1
	 SF - SP SG →→ SF SG	EXEC STMIN 				¬SF2
	 SP SG →→ SF SG 						¬SF2
SF2:	 SF -						SCAN 		¬EX1
ST1:	 ST ∩ SF SG →→ ST SG	EXEC STINT 				¬ST2
	 SF SG →→ ST SG 						¬ST2
ST2:	 ST ∩						SCAN 		¬EX1
SE1:	 SE ∪ ST SG →→ SE SG	EXEC STUNI 				¬SE2
	 ST SG →→ SE SG 						¬SE2

SE2:	 SE ∪						SCAN 		¬EX1
	 ( SE ) →→ SP		EXEC TWID10		SCAN 		¬SF1
	 FOREACH IP IN SE SG →→ FOREACH TR SG ∞∞
				EXEC STSRC 			↓↓
	 IP IN SE SG →→ P SG	EXEC STIN 				¬P2
	 SE SG →→ AE SG 						¬IE3



IE3:	 @EDN AE @EDR 						↓↓ 
	 AE @ASOP AE SG 						¬IE4
	 DS ≡ AE SG →→ TR SG	EXEC FID1 			↓↓
	 AE @RL 							¬BX1
	 @RL AE SG 							¬BX1 
	 ( AE ) →→ AE					SCAN 		¬ETYP

PT0:	REMOVE E FROM 					SCAN	↑EX1	¬PT1
PT1:	@PUT IP @IN SP @OTH →→ S @OTH ∞∞
				EXEC @PUT PUTIN				¬S9
	REMOVE E FROM SP @OTH →→ S @OTH ∞∞
				EXEC REMXD				¬S9
	PUT IP IN SP @BEAFT	EXEC HLDPNT		SCAN	↑EX	¬PTII  #XXQQ
PTII:	 PUT IP IN SP @BEAFT @E @OTH →→ S @OTH ∞∞
				EXEC @BEAFT PUTINL ELSSUB	   	¬S9   #Q55


IE4:	 AE ⊗ AE ≡ →→ DS ≡				SCAN 		¬EX1
MUMBLE FOLLOWING PRODUCTION BECAUSE EQV CAN'T BE IN TWO CLASSES AT SAME
	TIME AND STILL USE INDEX PROPERTY;
	 AE ≡ AE SG →→ SP SG     ∞∞
				EXEC @3 DERIV				¬SF1
	 AE @ASOP AE SG →→ SP SG ∞∞
				EXEC @ASOP DERIV 			¬SF1  #XXQQ
REP0:	 IST [ E ] →→ IST E				SCAN 		¬REP1 #Q57
REP1:	 IST E ← →→ IST E LSP	EXEC ELSSUB		SCAN 	↑EX 	¬REP2 #XXQQ
REP2:	 IST E LSP AE SG →→ S SG ∞∞
				EXEC REPLCX 				¬S9   #Q59
∀
MUMBLE Loop Statements, array calcs, proc names, etc;

FOR1:	 FORCA LHS E STEP E UNTIL E @DC →→ FORCA LHS @DC ∞∞
				EXEC @DC FRSTE 				¬FOR4
	 FORCA LHS @E @DC →→ FORCA LHS @DC ∞∞
				EXEC @E ESET @DC FRSTO 			¬FOR4
FOR2:	 FORCA LHS E STEP E WHILE BE @DC →→ FORCA LHS @DC ∞∞
				EXEC @DC FRWHILE 			¬FOR4 #Q60
FOR4:	 , →→						SCAN 	↑NEX 	¬FOR1
	 FORCA LHS DO →→ FORCA	EXEC KOUNT1		SCAN 		¬S1
STO:	 LHS @E SG →→ S SG	EXEC @E STORE				¬S9
	 @ISTO ↔ @E SG →→ S SG	EXEC @E SWPR				¬S9   #Q61

ARY:	 SG 							↑EX 	¬ARY1
ARY1:	 ARID E , →→ ARID	EXEC ARRSBY		SCAN 	↑EX 	¬ARY1
	 ARID E ] →→ I		EXEC ARRSB1 SUBSCR TYPAR ∞∞
							SCAN 	↓↓ 	      #Q62

PARM:	 SPROUT PCALL @E ) →→ SPROUT ∞∞
	 			EXEC @E ECHK CALARG SPRPD  SCAN		¬FK3
     	 PCALL @E ) →→ S	EXEC @E ECHK CALARG ISUCAL PRST ∞∞
							SCAN 	      	¬S9
	 FCALL @E ) →→ P	EXEC @E ECHK CALARG ISUCAL TYPPRO ∞∞
							SCAN 	      	¬PAM2
	 @CALL @E , →→ @CALL	EXEC @E ECHK CALARG	SCAN	↑EX	¬PARM  #Q63
PAM2:	 MPRO SG 						↓↓	       #XID

IFQ:	 IF BE THEN →→ SIFC	EXEC STIF KOUNT1	SCAN 		¬S1   #Q64

CSES:	 CASE E OF →→ CASEX	EXEC CASSTR		SCAN 		¬CAS1 #Q65
CAS1:	 BEGIN →→		EXEC KOUNT1		SCAN 		¬CAS2
	 CASEX ( →→ CASEX	EXEC CASE1 KOUNT5	SCAN 	↑EX 	¬CAS3 #Q66

CAS2:	 CASEX STC →→ CASEX	EXEC CSNAME		SCAN 		¬S1   #S1

CAS3:	 CASEX @E ) →→ @E	EXEC @E CASE2 CASE3	SCAN 	      	¬ETYP
	 CASEX @E , →→ CASEX	EXEC @E CASE2 KOUNT6	SCAN	↑EX	¬CAS3  #Q67

CASD:	 CASEX [ E ]					SCAN 		¬S0
	 OPPS BEGIN [ E ] →→ OPPS BEGIN			SCAN		¬S0  #XXQQ

EIF:	 IF BE THEN →→ EIFC	EXEC EXIF KOUNT3	SCAN 	↑EX 	¬EIF1 #Q69
EIF1:	 EIFC @E ELSE		EXEC @E EXIF1 KOUNT4	SCAN 	↑EX 	¬EIF2 #Q70
EIF2:	 EIFC SG ELSE @E SG1 →→ SG SG1 ∞∞
				EXEC @E EXIF2 				¬ETYP #Q71

ETYP:	 E SG 								¬E2
	 AE SG →→ AE SG		EXEC LTYPCK				¬ETY2
	 BE SG →→ E SG 							¬E2   #XXQQ
ETY2:	 IP SG								¬IP2
	 SP SG								¬SF1

WHG:	 WHILE BE DO →→ WHILC	EXEC WHIL KOUNT1	SCAN 		¬S1   #Q73


MUMBLE backtracking, memory and loc;

RFR:	 @REMEMB ALL →→ @REMEMB	EXEC @REMEMB RMASET	SCAN		¬NTXT
	 @REMEMB ( →→ @REMEMB	EXEC @REMEMB RMBSET	SCAN	↑EX1	¬RFR2
	 @REMEMB SG		EXEC @REMEMB RMBSET		↑EX1  	¬RFR2 #TRAP
RFR2:	 @REMEMB @E ) →→ @REMEMB ∞∞
				EXEC RMSTK		SCAN		¬NTXT
	 @REMEMB @E , →→ @REMEMB EXEC RMSTK		SCAN	↑EX1	¬RFR2
	 @REMEMB @E @IN →→ @REMEMB  EXEC RMSTK		SCAN	↑EX1	¬NTX2 #Q72
NTXT:	 @REMEMB @IN →→ @REMEMB				SCAN 	↑EX1	¬NTX2 #Q68
NTX2:	 @REMEMB ICTXT SG   →→ S SG    EXEC CNTXTS			¬S9    #XXQQ

NCXT:	 IN_CONTEXT SG , →→ IN_CONTEXT ∞∞
				EXEC RMSTK		SCAN	↑EX1	¬NCX2 #Q113
NCX2:	 IN_CONTEXT ICTXT ) →→ P ∞∞
				EXEC INCNTX		SCAN		¬P2   #Q113
ECEL:	 ICTXT COL					SCAN	↑EX1	¬CEL2 #CENO
CENO:	 SG						        ↓↓
CEL2:	 ICTXT COL @E SG →→ P SG ∞∞
				EXEC @E ECHK CONELM			¬XID  #Q115
LCEL:	 ICTXT COL @E SG →→ I SG ∞∞
				EXEC @E ECHK CONELM			¬SID  #Q115

DEL:	 DELETE AE ) →→ S	EXEC DELT		SCAN 		¬S9   #Q74

RTN:	 LOP AE ) →→ IP		EXEC STLOP		SCAN 		¬IP2
	 @CVSET AE ) →→ SP	EXEC @CVSET CVLS	SCAN 		¬SF1
	 BBPP @E ,					SCAN 	↑EX 	¬RTP
	 @FUNC1 @E ) →→ P	EXEC @FUNC1 FDO1	SCAN 		¬P2
	 @FUNC2 @E ) →→ IP	EXEC @FUNC2 FDO2	SCAN		¬IP2    #XXQQ
MEMX:	[ →→			EXEC ZBITS		SCAN	↑EX	¬MMX1  #XXQQ
MMX1:	MEMORY E ] →→ IVB	EXEC MEMI		SCAN	↓↓
MMX2:	, →→			EXEC ZBITS		SCAN 		¬MMX3  #Q75
MMX3:
∞IFE LEAPSW ∀
	@ALGLP →→		EXEC @ALGLP TYPSET	SCAN		¬MMX5  #XXQQ
∀  ∞IFN LEAPSW ∀
	@ALGLP →→		EXEC @ALGLP TYPSET	SCAN		¬MMX4  #XXQQ
MMX4:	@HEL →→			EXEC @HEL HELSET	SCAN		¬MMX5
∀
MMX5:	MEMORY E ] →→ I		EXEC MEMS		SCAN	↓↓		#Q75.5

LOCX:	LOCATION ( →→ 	 				SCAN	   	¬LCX1  #XXQQ
LCX1:   IPR 						SCAN		¬LCX2	
	SG →→ FCALL SG						↑EX	¬LCXX #XXQQ
LCX2:	IPR ) →→ P		EXEC LOCN		SCAN		¬XID #XXQQ
LCXX:	FCALL @E ) →→ P		EXEC @E ECHK LOCN	SCAN		¬XID   #XXQQ

MUMBLE In-line code;

RTP:	 BBPP @E , @E ,		EXEC BPTWD		SCAN 	↑EX 	¬RTP1 #Q76
RTP1:	 BBPP @E , @E , @E ) →→ P ∞∞
				EXEC BPNT		SCAN 		¬P2   #XXQQ

ESTO:	 ELHS @E SG →→ @E SG	EXEC @E STOR1 				¬ETYP #Q78

PROS:	 ,						SCAN 	↑EX 	¬PROS
	 IBP @E ) →→ S		EXEC @PRO1 BYPQ		SCAN 		¬S9
	 @PRO1 @E , @E ) →→ S	EXEC @PRO1 BYPS		SCAN 		¬S9   #XXQQ

BSTR:	 STID E @NXT E ] →→ ISV	EXEC @NXT SUBSTR	SCAN 		¬XIE  #Q80

DOLS:	 DOL S UNTIL BE @END →→ S @END ∞∞
				EXEC DOUNT KOUNT1 			¬S9   #Q81

MUMBLE IN-LINE CODE PRODUCTIONS.;

MUMBLE NON-ID LEVEL;

COD:	 @STCO END →→ S		EXEC ONEWRD WRDNIT LITOFF UP1 ∞∞
							SCAN 		¬S7
	 ; →→			EXEC ONEWRD WRDNIT	SCAN 		¬COD
	 @ →→			EXEC CODIND		SCAN 		¬COD
	 ( →→						SCAN 	↑CONX 	¬CDP
	 [ →→			EXEC LITOFF		SCAN 	↑EX 	¬CDB
	 : →→			EXEC ERRCOL		SCAN 		¬COD
	 , →→			EXEC ERRCOM		SCAN 		¬COD
	 ACCESS →→ 					SCAN	↑EXD	¬CDAC
	 SG			EXEC SETSIX 				¬CDI

CDAC:	 @E ) →→		EXEC @E ECHK CESSOK CODID SCAN		¬COD  #XXQQ

CDI:	 OPC →→			EXEC SETOP		SCAN 		¬COD
	 ILB →→ ILB					SCAN 		¬CDI1
	 IAR →→ IAR					SCAN 		¬CODS
	 IPR →→ IPR					SCAN 		¬CODS
	 SG →→ SG 						↑EX 	¬CDI1 #XXQQ

CDI1:	 ILB : →→		EXEC ENTLAB		SCAN 		¬COD
	 ILB SG →→ SG		EXEC CODID 				¬COD
	 @E , →→		EXEC @E ECHK CODREG	SCAN 		¬COD
	 @E SG →→ SG		EXEC @E ECHK CODID 			¬COD  #XXQQ

CODS:	 IAR [ 							↑CDS1 	¬CDI1
	 SG SG1 →→ SG1		EXEC CODID 				¬COD  #XXQQ
CDS1:	 SG 								¬XIE

CDP:	 @E ) →→		EXEC @E ECHK CODX	SCAN 		¬COD  #XXQQ

CDB:	 @E ] →→		EXEC @E ECHK CODLIT	SCAN 		¬COD  #XXQQ


MUMBLE Conditional Compilation Statements;

IF0:	 IFC			EXEC CPSHBT CPSHEY	SCAN 	↑CONX 	¬IF1

IF1:	 IFC E @THT →→ CTRU1	EXEC TWCOND CPOPBT			¬IF2  #XXQQ
IF2:	 CTRU1			EXEC TOMACN		PRESUME		¬IF3
	 CFLS1			EXEC SWPOFF CPOPET	SCAN 		¬IF4  #XXQQ

MUMBLE IF ABOVE LINE BOMBS, SOMETHING'S REALLY WRONG;
IF3:	 WDPL CTRU1 ENDC →→ WDPL ∞∞
				EXEC SWICHM CPOPET	PRESUME	↓↓
	 @CTRUE ENDC →→		EXEC CPOPET		PRESUME	↓↓
	 CTRU1 ELSEC →→ CFLS2	EXEC SWPOFF CPOPET FRMACN ∞∞
							SCAN 		¬IF4  #XXQQ

IF4:	 WDPL CFLS1 ENDC →→	EXEC FREMBW SWPON	PRESUME	↓↓
	 @CFALSE ENDC →→	EXEC SWPON TOMACN	PRESUME	↓↓
	 CFLS1 ELSEC →→ CTRU2	EXEC SWPON CPSHEY TOMACN ∞∞
							PRESUME		¬IF3
	 NOCOND ENDC →→					SCAN 		¬IF4
	 @CONBG →→ NOCOND				SCAN 		¬IF4
	 SG →→						SCAN 		¬IF4  #XXQQ

WH0:	 WHILEC →→		EXEC SETDLM CPSHBT CPSHEN ∞∞
							SCAN 		¬WH1
WH1:	 STC			EXEC OFFDLM		SCAN 		¬WH2
WH2:	 @DOCA →→ WDPL		EXEC SETDLM DWPREP 	SCAN    ↑CONX  ¬WH3
WH3:	 STC WDPL SG ENDC →→ WDPL ∞∞
				EXEC DFENT OFFDLM SETWHL CPOPBT CPOPET ∞∞
							PRESUME ↓↓

CS0:	 CASEC			EXEC CPSHBT CPSHEN	SCAN 	↑CONX 	¬CS1
CS1:	 CASEC E @OFCA →→ CDPL CTRU1 ∞∞
				EXEC SETDLM SWPOFF CPOPET DCPREP ∞∞
								 	¬CSB
CS2:	 CDPL CFLS1 SG , →→ CDPL CFLS1 ∞∞
				EXEC TWCSCN				¬CSB
	 CDPL CFLS1 SG ENDC →→	EXEC FRMBCE OFFDLM SWPON TOMACN CPOPBT ∞∞
							PRESUME	↓↓
	 CDPL CTRU1 SG , →→ CDPL CTRU1 ∞∞
				EXEC DFENT1 OFFDLM SETCSE CPOPBT CPOPET ∞∞
							PRESUME		¬CS3
	 CDPL CTRU1 SG ENDC →→ CDPL NOMORE ∞∞
				EXEC DFENT1 OFFDLM SETCSE CPOPBT CPOPET ∞∞
							PRESUME		¬CS4
	 @CONBG SG →→ SG NOCOND				SCAN	↑CSA    ¬CS2
CSA:	 NOCOND ENDC →→					SCAN	↓↓
	 @CONBG →→ NOCOND				SCAN	↑CSA	¬CSA
	 SG →→						SCAN		¬CSA #XXQQ
CSB:	 CTRU1						SCAN	↑CONX   ¬CS2
	 CFLS1						SCAN 2          ¬CS2   #TRAP
CS3:	 CDPL CTRU1 ENDC →→ CDPL CFLS1 ∞∞
				EXEC FRMBCT SETDLM SWPOFF CPSHBT ∞∞
							SCAN 2		¬CS2  #XXQQ
CS4:	 CDPL NOMORE ENDC →→	EXEC FREMBW OFFDLM SWPON ∞∞
							PRESUME	↓↓	      #XXQQ


FR0:	 FORC →→ FRDPL		EXEC DWPREP CPSHBT CPSHEN ∞∞
							SCAN 2 		¬FR1
FR1:	 SG @IDD @EQC →→ SG	EXEC DFPINS		SCAN 	↑CONX 	¬FR2
FR2:	 FRDPL E @STEPCA →→ FRDPL ∞∞
				EXEC GTSTRT		SCAN 	↑CONX 	¬FR3
FR3:	 FRDPL E @UNTLCA →→ FRDPL ∞∞
				EXEC GTSTEP		SCAN 	↑CONX 	¬FR4
FR4:	 FRDPL E @DOCA →→ CTRU1 FRDPL ∞∞
				EXEC DFSET GETERM SETDLM		¬FR41
FR41:	 CTRU1 SG					SCAN 	↑CONX 	¬FR5
	 CFLS1 SG		EXEC SWPOFF CPOPET	SCAN	↑CONX	¬FR51
FR5:	 CTRU1 FRDPL SG ENDC →→ FRDPL ∞∞
				EXEC DFENT FFPOP OFFDLM SETFR CPOPBT CPOPET ∞∞
							PRESUME		¬FR6
FR51:	 CFLS1 FRDPL SG ENDC →→ ∞∞
				EXEC OFFDLM FREMBN SWPON CPOPBT ∞∞
							PRESUME	↓↓
FR6:	 FRDPL ENDC →→ CTRU1 FRDPL ∞∞
				EXEC TWNUM 				¬FR7
FR7:	 CTRU1 FRDPL →→ FRDPL	EXEC SWCHFR		PRESUME		¬FR6
	 CFLS1 FRDPL →→		EXEC FREMBF		PRESUME	↓↓


FL0:	 FORLC →→ FLDPL		EXEC DWPREP CPSHBT CPSHEN ∞∞
							SCAN 2 		¬FL1
FL1:	 SG @IDD @EQC →→ SG	EXEC DFPINS GETACT	SCAN 		¬FL2
FL2:	 @DOCA →→		EXEC DFSET SETDLM	SCAN	↑CONX	¬FL3
FL3:	 FLDPL SG ENDC →→ FLDPL EXEC DFENT FFPOP OFFDLM SETFL CPOPBT CPOPET ∞∞
							PRESUME		¬FL4
FL4:	 FLDPL ENDC →→ CTRU1 FLDPL ∞∞
				EXEC TWACT 				¬FL5
FL5:	 CTRU1 FLDPL →→ FLDPL	EXEC SWCHFL	   	PRESUME		¬FL4 
	 CFLS1 FLDPL →→		EXEC FREMBF		PRESUME	↓↓

MUMBLE Macro DEFINE handling;

DF0:	 DEFINE →→		EXEC MACOFF DLMPSH DPSHBT ∞∞
							SCAN		¬DFR
DFR:	 @IDD →→ DPL		EXEC DFPREP		SCAN 		¬DFR1 #Q4
DFR1:	 ( →→			EXEC MACOFF		SCAN 2 		¬DPA  #LEQ

DPA:	 SG @IDD , →→ SG	EXEC DFPINS		SCAN 2 		¬DPA
	 SG @IDD ) →→ SG	EXEC MDFPNS		SCAN 		¬LEQ  #Q4
LEQ:	 STC →→			EXEC SPDMBD		SCAN 		¬LEQ1
LEQ1:	 SG = →→ SG		EXEC DLMPOP DFSET SETDLM ∞∞
							SCAN 	↑CONX 	¬DEQ  #XXQQ
DEQ:	 DPL SG1 , →→		EXEC DFENT FFPOP ENDMAC MACOFF OFFDLM DLMPSH ∞∞
							SCAN 		¬DFR
	 SG SG1 ; →→		EXEC DFENT FFPOP ENDMAC SWDLM OFFDLM DPOPBT ∞∞
								↓↓ 	      #Q20

MUMBLE dynamic procedure binding, etc.;

%BP1:	( →→						SCAN	↑EX	¬%BP2 #XXQQ
%BP2:	ASSIGN @E , →→ ASSIGN   EXEC BNDITM		SCAN 2 		¬%BP3 #Q92
%BP3:	ASSIGN IPR ) →→ S	EXEC PDASTK BINCL	SCAN		¬S9
	DATUM ( →→ (						↑EXD	¬%BP4 #XXQQ
%BP4:	ASSIGN @E ) →→ S	EXEC BNDITM COPPIT	SCAN		¬%BP5 #XXQQ
%BP5:	S ) →→ S					SCAN		¬S9   #XXQQ


MUMBLE apply;
%EV1:	( →→						SCAN 2		¬%EV2 #XXQQ
%EV2:	IPR  SG →→ SG		EXEC PDASTK				¬%EV3 
	DATUM ( →→ (						↑EXD  	¬%EV4 #XXQQ
%EV3:	, →→						SCAN 	↑EX	¬%EV5 
	FCALL APPLY ) →→ P	EXEC EVLNLL TYPIRG	SCAN		¬XID
	PCALL APPLY ) →→ S 	EXEC EVLNLL		SCAN 		¬S9   #XXQQ
%EV4:   APPLY @E ) →→ APPLY 	EXEC BNDITM PITSTK	SCAN		¬%EV3 #Q99
%EV5:	PCALL APPLY @E ) →→ S	EXEC EVLLST		SCAN		¬S9   
	FCALL APPLY @E ) →→ P	EXEC EVLLST TYPIRG	SCAN		¬XID  #Q100

MUMBLE sprout;
FK:	SPROUT ( →→ SPROUT	EXEC INMAIN		SCAN	↑EX	¬FK1  #XXQQ
FK1:	SPROUT @E , →→ SPROUT	EXEC BNDITM		SCAN 2		¬FK2  #Q97 
FK2:	SPROUT IPR ( →→ SPROUT PCALL ∞∞
				EXEC FPREM RDYCAL	SCAN	↑EX	¬PARM
	SPROUT IPR SG →→ SPROUT SG ∞∞
				EXEC FPREM PDASTK			¬FK3  #XXQQ
FK3:	, →→						SCAN		¬FK4
	SPROUT ) →→ S 		EXEC STDOPT STDKLL SPRIT ∞∞
							SCAN		¬S9   #XXQQ
FK4:	, →→ 			EXEC STDOPT		SCAN		¬FK7
	SG							↑EX	¬FK5
FK5:	SPROUT E SG →→ SPROUT SG  EXEC STKOPT				¬FK6  #Q98 
FK6:	SPROUT ) →→ S		EXEC STDKLL SPRIT	SCAN		¬S9
	, →→						SCAN		¬FK7 #XXQQ
FK7:	SPROUT STC →→ SPROUT 	EXEC BNKLL		SCAN		¬FK9
FK8:	SPROUT IST →→ SPROUT	EXEC EKLL		SCAN		¬FK9  #XXQQ
FK9:	SPROUT ) →→ S		EXEC SPRIT		SCAN		¬S9  #XXQQ


MUMBLE CAUSE;
%CS2:	@E , →→ 		EXEC BNDITM		SCAN	↑EX	¬%CS3  #Q101
%CS3:	CAUSE @E ) →→ S		EXEC BNDITM STDOPT CSIT SCAN		¬S9
	@E , →→ 		EXEC BNDITM		SCAN	↑EX	¬%CS4  #Q102
%CS4:	CAUSE E ) →→ S		EXEC STKOPT CSIT	SCAN		¬S9    #Q103


MUMBLE INTERROGATE;
%IR2:	PCALL AE ) →→ S		EXEC STKIRG STDOPT IRIT SCAN		¬S9
	FCALL AE ) →→ P		EXEC STKIRG STDOPT IRIT TYPIRG SCAN	¬XID
	AE , →→ 		EXEC STKIRG		SCAN	↑EX	¬%IR3  #Q104
%IR3:	PCALL E ) →→ S		EXEC STKOPT IRIT	SCAN		¬S9
	FCALL E ) →→ P		EXEC STKOPT IRIT TYPIRG SCAN		¬XID   #Q105

MUMBLE DEPENDENTS;
DPS1:	( STC ) →→ SP		EXEC BDEPS		SCAN		¬SF1 #QDPS

MUMBLE  Error productions;
XXQQ:	SG			EXEC ER7				¬FUSH
FUSH:	@QEND								¬FA     #FB
FA:	@QBEG ; →→ @QBEG	EXEC KILPOP ERR101 CLRSET SCAN		¬QDS2
	@QBEG END →→ @QBEG S END ∞∞
				EXEC KILPOP ERR101			¬S9
	SG @QEND →→ @QEND						¬FA
FB:	@BEG →→ OPPS @BEG 	EXEC ERR102		SCAN		¬DS
	SG →→						SCAN		¬FUSH
QDS2:	@BEG @DCL							¬DS0   #S0

RET:	SG							↓↓
QPAR:	@E ) →→ @E		EXEC ERR103		SCAN	↓↓
QPR1:	( E SG →→ P SG	   	EXEC TWID10 ERR104	    	↑P2	¬RET   
	( BE SG →→ ( BE ) SG	EXEC TWID10 ERR104		↑BP4	¬RET   #FUSH

Q1:	SG			EXEC ER1				¬Q1A   
Q1A:	BEGIN								¬BB0
	SG →→						SCAN		¬Q1A
Q2:	@IDD      		EXEC ER5       				¬BB0
	SG			EXEC ER2				¬Q1A   
QIDC:	@DCL @IDD →→ @DCL	EXEC ER3 CLRSET SCNBAK 			¬DS0   #IDL
Q4:	SG			EXEC ER4				¬FUSH 
Q5:	@IDD     		EXEC ER5 CLRSET				¬DS0  
	BEGIN S ELSE →→BEGIN	EXEC ER6		SCAN		¬S1   #XXQQ
Q7:	PDEC SG			EXEC ER5 ENDPR KOUNT1			¬S1
	PDNO @IDD →→ @IDD	EXEC ER5 ENDPR FWUNDO			¬DS0  #XXQQ
Q8:	SG  @IDD →→ @IDD     	EXEC ER5 PACDO				¬DS0  #XXQQ
Q10:	@IDD     		EXEC ER5			↓↓	      #XXQQ
Q11:	STC SOURCE_FILE @IDD →→ @IDD ∞∞
				EXEC ER5 SRCSWT			↓↓	      #XXQQ
Q12:	 E @IDD →→ @IDD		EXEC ER5 LDYNO CLRSET			¬DS0  #XXQQ
Q13:	ARDEC @IDD SG →→ @IDD	EXEC ER5 CLRSET SCNBAK			¬DS0  #XXQQ
Q15:	( →→			EXEC ER15		SCAN	↑NEX	¬AR0  
	SG			EXEC ERR115				¬XXQQ #TRAP
Q16:	ARDEC E ) →→ ARDEC E	EXEC ER37		SCAN		¬QA16
	SG			EXEC ER8			↑QPAR	¬AR0 
QA16:	ARDEC E :					SCAN	↑EX	¬AR0  #XXQQ
Q20:	SG SG1 @IDD →→ @IDD 	EXEC ER5 DFENT FFPOP ENDMAC SWDLM OFFDLM  ↓↓        #XXQQ
Q23:	@IDD			EXEC ER5				¬DS0  #XXQQ
Q24:	SG			EXEC ER24				¬FUSH
Q30:	RETURN @E @SEND →→ S @SEND ∞∞
				EXEC ER40 @E ECHK RESULTS		¬S9   #XXQQ
Q32:	GO I           		EXEC UNDEC            	    		¬QA32 #XXQQ
QA32:	I →→ ILB		EXEC QDEC0				¬G2

USID:	I [ →→ ARID		EXEC QDEC2 		SCAN	↑UARY 	¬SID	
	I : →→ ILB :		EXEC QDEC1       			¬SID
	I ( →→ PCALL 		EXEC QDEC2        	SCAN	↑EX  	¬UCAL        
	I @SEND →→ S @SEND   	EXEC QDEC1 QPRDEC       		¬S9
	I SG →→ IVB SG		EXEC QDEC1        	  		¬SID  #TRAP
UCAL:	PCALL @E ) →→ S		EXEC QPARM QPRDEC	SCAN	      	¬S9
	FCALL @E ) →→ I		EXEC QPARM QPRDEC 	SCAN	      	¬UXID
	@CALL @E , →→ @CALL	EXEC QPARM  		SCAN	↑EX	¬UCAL  #QU63
UARY:	SG							↑EX	¬URY1
URY1:	ARID E , →→ ARID	EXEC QSUBSC           	SCAN	↑EX	¬URY1
	ARID E ] →→ IVB		EXEC QSUBSC QARDEC   	SCAN	↓↓	     #QU62
MUMBLE   I[ at SID implies either a subscripted array variable or a list
replacement statement, which, because this is the first use of the 
list, must have an argument of one.  I[ at SID could be a subscripted
array, set, string, or list.  However, since this is the first use of 
the variable, the programmer must have intended to use its intialized
values.  Thus, he could have only intended the use of an array, since
such use of the others (when declared) leads to runtime errors;
MUMBLE  More error productions;
Q34:	 S )  →→  S 		EXEC ER37       	SCAN		¬S9
	DOL S SG →→		EXEC ER33 		SCAN		¬S9

	S SG →→ S ;		EXEC ER5 SCNBAK				¬S9   #XXQQ
Q35:	I @C1 →→ IAR @C1	EXEC ER35 				¬MS   #XXQQ
Q36:	[ →→			EXEC ER15		SCAN		¬EX     
	SG			EXEC ER36				¬EX
Q38:	SG			EXEC ER38				¬FUSH 
Q39:	SG			EXEC ER39				¬FUSH 
Q41:	) →→			EXEC ER37        	SCAN		¬EX1  
	SG 			EXEC ER41		    		¬FUSH
Q42:	@IARY ( →→ ARID		EXEC ER15 ARYIDX	SCAN	↑ARY	¬XID   #XXQQ

UXID:	IP @IN I @SEND →→ IP @IN IST @SEND ∞∞
				EXEC QDEC1       			¬XID
	LDAT I ) →→ LDAT ITV )	EXEC QDEC1        			¬XID
	DATUM I ) →→ DATUM ITV ) ∞∞
				EXEC QDEC1       			¬XID
	I @ASOP →→ ITV @ASOP	EXEC QDEC1				¬XID
	I ≡ →→ ITV ≡		EXEC QDEC1				¬XID
	≡ I SG →→ ≡ ITV SG	EXEC QDEC1				¬XID
	@SIP I , →→ @SIP ITV ,	EXEC QDEC1				¬XID
	I [ →→ ARID		EXEC QDEC2        	SCAN	↑UARY	¬XID
	I ( →→ FCALL		EXEC QDEC2        	SCAN	↑EX	¬UCAL
	I SG →→ IVB SG		EXEC QDEC1        			¬XID   #TRAP  
Q43:	NEW @E SG →→ IP		EXEC ER40 NEWART SCNBAK SCAN		¬IP2   #XXQQ
QRFI:	REF_ITEM @E SG →→ IP	EXEC ER40 @E ECHK ∞∞
    					RFIMAK SCNBAK	SCAN		¬IP2   #XXQQ
Q48:	@SIP SG →→ @SIP }   	EXEC ER48 SCNBAK			¬SPP1  #XXQQ
Q48:	@SIP SG →→ @SIP }   	EXEC ER48 SCNBAK			¬SPP1  #XXQQ
Q485:	I             		EXEC UNDEC             	     		¬QQA8  #XXQQ
QQA8:	I →→ ITV		EXEC QDEC0		SCAN		¬FRC1  #XXQQ
Q486:	I			EXEC UNDEC				¬QQA6  #XXQQ
QQA6:	I →→ ITV		EXEC QDEC0				¬FRD1  #XXQQ
Q50:	CRAP BE DO →→ TR	EXEC ER40 FRBOL		SCAN	     	¬FRG   #XXQQ 	 	
Q51:	FOREACH TR ) →→ FOREACH TR   EXEC ER37		SCAN		¬FRG   #XXQQ
Q52:	SG			EXEC ER8 			↑QPAR	¬LSB1   
Q53:	SG			EXEC ER8 			↑QPAR	¬LSB2   
Q55:	SG			EXEC ER8 			↑QPAR	¬PTII  
Q57:	SG			EXEC ER8 			↑QPAR	¬REP0   
Q59:	SG			EXEC ER59				¬FUSH 
Q60:	SG			EXEC ER8  			↑QPAR	¬QA60   
QA60:	@E @NXT			EXEC @NXT WAIT		SCAN	↑NEX2	¬FOR1   #FOR1  
Q61:	@E ) →→ @E		EXEC ER37         	SCAN		¬STO
	LHS @E SG →→ S ;	EXEC ER5 @E STORE SCNBAK		¬S9
	@ISTO ↔ @E SG →→ S ;	EXEC ER5 @E SWPR  SCNBAK		¬S9  
	SG			EXEC ER8  			↑QPAR	¬STO
Q62:	SG			EXEC ER8 			↑QPAR	¬QA62   
QA62:	ARID E , 							¬ARY1
	ARID E ]							¬ARY1
	ARID E SG →→ I		EXEC ERR108 SUBSCR TYPAR SCNBAK  SCAN  ↓↓   #FUSH
QU62:	SG			EXEC ER8 			↑QPAR	¬URY1
Q63:	, 			EXEC ER8 			↑QPAR	¬PARM   
	PCALL @E SG →→ S SG	EXEC @E ECHK CALARG ISUCAL PRST ER40    ¬S9
	FCALL @E SG →→ P     	EXEC @E ECHK CALARG ISUCAL TYPR1 ER40 SCNBAK ∞∞
							SCAN		¬PAM2  #XXQQ
QU63:	,			EXEC ER8 			↑QPAR	¬UCAL  #XXQQ
Q64:	SG			EXEC ER8 			↑QPAR	¬IFQ    
Q65:	SG			EXEC ER8 			↑QPAR	¬CSES   
Q66:	SG			EXEC ER66				¬FUSH 
Q67:	, 			EXEC ER8 			↑QPAR	¬CAS3   
	CASEX @E SG →→ @E    	EXEC @E CASE2 CASE3 ER40 SCNBAK  SCAN	¬ETYP  #XXQQ
Q68:	SG			EXEC ER68			     	¬FUSH  
Q69:	SG			EXEC ER8 			↑QPAR 	¬EIF    
Q70:	SG			EXEC ER8 			↑QPAR	¬EIF1   	
Q71:	SG			EXEC ER8 			↑QPR1	¬EIF2   
Q72:	SG			EXEC ER8 			↑QPAR	¬RFR2  
Q73:	SG			EXEC ER8 			↑QPAR	¬WHG    
Q74:	AE SG →→ S SG 		EXEC ER37 DELT 				¬S9    #XXQQ
Q75:	SG			EXEC ER8 			↑QPAR	¬MMX1
Q75.5:	SG			EXEC ER8			↑QPAR	¬MMX5
Q76:	, 			EXEC ER8 			↑QPAR	¬RTP    
	@E ) →→ @E		EXEC ER37       	SCAN		¬RTP   #XXQQ
Q78:	SG			EXEC ER8 			↑QPR1	¬ESTO   
Q80:	SG			EXEC ER8 			↑QPAR	¬QA80   
QA80:	@E @NXT			EXEC @NXT WAIT 		 SCAN	↑NEX2	¬BSTR  #BSTR
Q81:	@E ) →→ @E 		EXEC ER37        	SCAN		¬DOLS
	DOL S UNTIL BE SG →→ S SG ∞∞
				EXEC ER40 DOUNT KOUNT1			¬S9
	SG			EXEC ER8 			↑QPAR	¬DOLS
Q92:	SG			EXEC ER8 			↑QPAR	¬%BP2  
Q97:	SG			EXEC ER8 			↑QPAR	¬FK1   
Q98:	SG			EXEC ER8 			↑QPAR	¬FK5   
Q99:	SG			EXEC ER8 			↑QPAR	¬%EV3  
Q100:	SG			EXEC ER8  			↑QPAR	¬%EV5  
Q101:	SG			EXEC ER8 			↑QPAR	¬%CS2
Q102:	SG			EXEC ER8			↑QPAR	¬%CS3
Q103:	SG			EXEC ER8			↑QPR1	¬%CS4
Q104:	SG			EXEC ER8			↑QPAR	¬%IR2
Q105:	SG			EXEC ER8			↑QPR1	¬%IR3
Q106:	(			EXEC ERR109			↑Z1	¬XID	#XXQQ
Q107:	SG			EXEC ERR110				¬XXQQ
Q108:	SG			EXEC ERR111				¬XXQQ
Q109:	BIND SG1 SG2 →→ SG1 SG2	EXEC ERR112				¬EX1    #TRAP
Q110:	SG			EXEC ERR113				¬XXQQ
Q111:	SG			EXEC ERR114				¬XXQQ
QDPS:	SG								¬XXQQ
Q112:   SG			EXEC ERR116				¬XXQQ
Q113:	SG			EXEC ERR117				¬XXQQ
Q114:	SG			EXEC ERR118				¬XXQQ
Q115:	SG			EXEC ERR119				¬XXQQ

Z1:	STC ( ) →→ STC					SCAN	↓↓	
	( ) →→						SCAN		¬Z1
	(						SCAN		¬Z1
	SG →→						SCAN		¬Z1
TRAP:	SG			EXEC ERTRAP				¬FUSH
<END>
β