Created
June 28, 2018 19:35
-
-
Save TheFausap/3fa98794a0af631a2cfd475ea007b847 to your computer and use it in GitHub Desktop.
SAIL - HEL.49
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
COMMENT ⊗ VALID 00021 PAGES | |
C REC PAGE DESCRIPTION | |
C00001 00001 | |
C00003 00002 β Definition of Terms | |
C00008 00003 MUMBLE Classes | |
C00015 00004 MUMBLE Declarations | |
C00021 00005 | |
C00024 00006 MUMBLE Statements | |
C00031 00007 MUMBLE Expression Parsers | |
C00033 00008 MUMBLE Main Expression Parser | |
C00041 00009 MUMBLE Compile-time type checking productions | |
C00043 00010 MUMBLE Boolean Expressions | |
C00045 00011 MUMBLE Leap constructs | |
C00049 00012 | |
C00054 00013 MUMBLE Loop Statements, array calcs, proc names, etc | |
C00058 00014 MUMBLE backtracking, memory and loc, record fields | |
C00062 00015 MUMBLE In-line code | |
C00065 00016 MUMBLE Conditional Compilation Statements | |
C00071 00017 MUMBLE Macro DEFINE handling | |
C00074 00018 MUMBLE print statement | |
C00075 00019 MUMBLE dynamic procedure binding, etc. | |
C00080 00020 MUMBLE Error productions | |
C00085 00021 MUMBLE More error productions | |
C00093 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 IRC | |
<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 PRESET_WITH BIND BUCKETS | |
STRING_SPACE SYSTEM_PDL STRING_PDL ARRAY_PDL LIBRARY | |
SOURCE_FILE LOAD_MODULE NEW_ITEMS REQUIRE NEXT NEEDNEXT VERSION | |
ALLGLOBAL OVERLAP_OK VERIFY_DATUMS 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 REDEFINE EVALDEFINE EVALREDEFINE ASSIGNC NOMAC CVPS LET | |
EQV SUCH THAT DELETE PHI NIL ISTRIPLE MAKE ERASE FOREACH | |
TRUE FALSE NULL LSH ROT LAND LOR LNOT ENTRY ASH | |
MAX MIN SHORT LIST AFTER BEFORE CVSET CVLIST DELIMITERS REPLACE_DELIMITERS | |
UNSTACK_DELIMITERS NULL_DELIMITERS | |
IFC IFCR THENC ELSEC ENDC WHILEC CASEC FORC FORLC DOC OFC STEPC UNTILC CVMS | |
ALL PROTECT_ACS ASSIGN APPLY | |
NOW_SAFE NOW_UNSAFE ITEM_START | |
DECLARATION EXPR_TYPE | |
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 SETCP SETIP SPROUT_DEFAULTS ERROR_MODES ARG_LIST | |
RECORD_POINTER RECORD_CLASS NEW_RECORD | |
NULL_RECORD ANY_CLASS | |
COMPILER_SWITCHES | |
PRINT CPRINT CONOK LONG | |
<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 GLOBAL MESSAGE CONOK LONG | |
@VAL REFERENCE VALUE QUES | |
@UNOPE LNOT ABS + - | |
@PM + - EQV LAND LOR ⊗ | |
@ASOP ⊗ ' ≡ * | |
@TD * % / LSH ROT DIV MOD ASH & | |
@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 | |
REDEFINE EVALDEFINE EVALREDEFINE NOMAC | |
RECURSIVE FORWARD FORTRAN REQUIRE PRELOAD_WITH PRESET_WITH SHORT | |
LET MATCHING | |
GLOBAL MESSAGE | |
PROTECT_ACS SIMPLE CLEANUP SPROUT_DEFAULTS | |
RECORD_CLASS RECORD_POINTER LONG | |
@E E BE AE | |
@IRCC IRC ANY_CLASS IPR | |
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 SEGMENT_NAME SEGMENT_FILE | |
PROCESSES POLLING_INTERVAL BUCKETS ITEM_START ERROR_MODES | |
COMPILER_SWITCHES OVERLAP_OK VERIFY_DATUMS | |
@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 IRC ICTXT | |
@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 IRC | |
@EXS ( LNOT ABS + - NOT [ | |
@STCO START_CODE QUICK_CODE | |
@BEG BEGIN START_CODE QUICK_CODE | |
@EDN AFTER ARDEC ARID ASSIGNC 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 IFCR 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 ARG_LIST IRC REFERENCE PRINT CPRINT | |
@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 } @REQ MESSAGE | |
@RCON @EDR AND CASE EQV OR > < = ≠ ≥ ≤ - + | |
@LOWER + - * % ⊗ / & = < > ≤ ≥ ≠ LNOT ABS EQV LAND LOR LSH ROT DIV ASH | |
MOD MAX MIN | |
@MKSU NOW_SAFE NOW_UNSAFE | |
@TERMINAL | |
MUMBLE JFR 7-4-76 SO CHECK_TYPE(LEAP_ARRAY) WORKS; | |
@RSTDC RESERVED BUILT_IN LEAP_ARRAY | |
@RESERVED | |
@CONS ICN STC | |
@IDQ IVB ISV IAR ILB IST ITV IPR ICTXT | |
@IDD @RESERVED @IDQ IIT I IRC | |
@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 REDEFINE EVALDEFINE EVALREDFINE NOMAC NEXT NEEDNEXT | |
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 | |
PRINT CPRINT | |
; | |
@SIP LIP SIP | |
@THT THEN THENC | |
@CONBG IFC IFCR WHILEC CASEC FORC FORLC | |
@DOCA DO DOC | |
MUMBLE #XJ JFR 7-4-76 ADD IRC SO DECLARATION(record!class name) WORKS; | |
@LDC IVB ISV IAR ILB IST ITV IPR I IRC | |
@STEPCA STEP STEPC | |
@UNTLCA UNTIL UNTILC | |
MUMBLE | |
@OFCA OF OFC | |
; | |
@CTRUE CTRU1 CTRU2 | |
@CFALSE CFLS1 CFLS2 | |
@EQC LARW EQU | |
@QEND END ; | |
@QBEG BEGIN START_CODE QUICK_CODE CASEX | |
@REFXX REFERENCE REF_ITEM ARG_LIST | |
MUMBLE Declarations; | |
<PRODUCTIONS> | |
BB0: ENTRY →→ EXEC ENTENT SCAN ¬ENT | |
BEGIN →→ BLAT BEGIN EXEC ENTOUT LPNAME DWN SCAN ¬BDS #Q1 | |
ENT: ; →→ SCAN ¬BB0 | |
ENT0: SG →→ EXEC ENTMAK SCAN ¬ENT1 | |
ENT1: , →→ SCAN ¬ENT0 | |
ENT2: ; →→ SCAN ¬BB0 #Q2 | |
MUMBLE OUTER BEGIN-END PAIR IS ALWAYS A BLOCK! ; | |
BDS: @BEG STC →→ @BEG EXEC BLNAME SCAN ¬BDS1 | |
BDS1: @BEG SG EXEC BLOCK KLSTG CLRSET ¬DS0 #TRAP | |
DS: @BEG STC →→ @BEG EXEC BLNAME SCAN ¬DS2 | |
DS2: @BEG @DCL EXEC BLOCK CLRSET ¬DS0 #DS3 | |
DS3: SG EXEC OFFDEF ¬S0 | |
DS0: | |
@ALGLP EXEC @ALGLP TYPSET SCAN ¬D1 | |
PDEC @VAL →→ PDEC EXEC @VAL VALSET SCAN ¬DS0 | |
@XO SCAN ¬ZDS2 | |
PROCEDURE SCAN ¬TYP | |
DEFINE →→ EXEC MACOFF DLMPSH DPSHBT ∞∞ | |
SCAN ^DFR ¬ZDS1 | |
REDEFINE →→ EXEC SETRDF MACOFF DLMPSH DPSHBT ∞∞ | |
SCAN ^DFR ¬ZDS1 | |
EVALDEFINE →→ EXEC SETEDF DLMPSH DPSHBT SCAN ^DFR ¬ZDS1 | |
EVALREDEFINE →→ EVALDEFINE EXEC SETRDF ^EDF ¬ZDS1 | |
NOMAC →→ EXEC MACOFF SCAN ^NM1 ¬ZDS1 | |
LET →→ EXEC MACOFF TRIGOF SCAN ^LTR ¬DS0 | |
REQUIRE SCAN ^RQQ ¬DS0 | |
PRELOAD_WITH →→ EXEC LDYBEG SCAN ^CONX ¬LW1 | |
PRESET_WITH →→ EXEC LDYSET SCAN ^CONX ¬LW1 | |
CLEANUP →→ SCAN 2 ¬CLN | |
PROTECT_ACS →→ SCAN ^CONX ¬PACL | |
SPROUT_DEFAULTS →→ SCAN ^CONX ¬SDSS | |
BEGIN RECORD_CLASS SCAN ¬RCD | |
RECORD_POINTER →→ INTEGER SCAN 2 ¬RPD | |
; →→ SCAN ¬DS0 | |
STC →→ EXEC SCOMM SCAN ¬DS0 | |
@BEG SG EXEC ENDDEC ¬S0 #XXQQ | |
RCD: @IDD →→ PDEC EXEC RCBIT0 PRDEC RCCREM ∞∞ | |
SCAN ¬PD0 #QRC1 | |
ZDS1: SG SCAN ¬DS0 | |
ZDS2: @XO @DCL →→ @DCL EXEC @XO XOWSET ¬DS0 | |
GLOBAL SG →→ SG EXEC ENDDEC GLBSET ¬S01 #XXQQ | |
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: | |
RECORD_CLASS PDEC SG →→ PDEC SG ¬RCD1 | |
RECORD_CLASS PDNO SG →→ PDEC SG ¬RCD1 | |
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 | |
RCD1: PDEC [ →→ PDEC SCAN 2 ¬RCD2 #RCD3 | |
RCD2: PDEC IPR ] →→ PDEC EXEC URCHLR SCAN ¬RCD3 #QRC2 | |
RCD3: PDEC ; →→ EXEC ENDRC SCAN ¬DS0 #QRC2 | |
RPD: ( @IRCC →→ EXEC SETIRP @IRCC TWDIRC ∞∞ | |
SCAN 2 ¬RPD1 #QRP1 | |
RPD1: , @IRCC →→ EXEC @IRCC TWDIRC SCAN 2 ¬RPD1 | |
) SG →→ SG ¬D1 #QRP1 | |
PACL: SG , →→ EXEC PACDO SCAN ^CONX ¬PACL | |
SG ; →→ EXEC PACDO SCAN ¬DS0 #Q8 | |
SDSS: E ; →→ EXEC SDFLTS SCAN ¬DS0 #XXQQ | |
RQQ: | |
REQUIRE @REQ →→ REQUIRE ∞∞ | |
EXEC DEFZRO @REQ RQSET SCAN ¬RQ1 | |
IPR SCAN ¬RQ5 | |
SG ^CONX ¬RQQQ #TRAP | |
RQQQ: | |
E SOURCE_FILE SCAN ¬RQ3 | |
E @REQ →→ EXEC @REQ RQSET SCAN ¬RQ1 #RQQ2 | |
RQQ2: | |
E MESSAGE →→ EXEC TYPMSG SCAN ¬RQ1 #Q10 | |
RQ1: REQUIRE ; →→ EXEC CLRSET SCAN ↓↓ | |
REQUIRE , →→ REQUIRE SCAN ¬RQQ #Q10 | |
RQ3: REQUIRE E SOURCE_FILE , →→ REQUIRE ∞∞ | |
EXEC REQERR SCAN ¬RQQ | |
REQUIRE E SOURCE_FILE ; →→ ∞∞ | |
EXEC SRCSWT SCAN ¬RQ4 #Q11 | |
RQ4: SG EXEC SRCCHK ↓↓ | |
RQ5: IPR INITIALIZATION →→ IPR SCAN ¬RQ6 | |
IPR SG →→ IPR EXEC SCNBAK ^CONX ¬RQQQ #XXQQ | |
RQ6: [ SCAN ^CONX ¬RQ7 | |
IPR SG →→ SG EXEC REQINI ¬RQ1 #XXQQ | |
RQ7: IPR [ E ] →→ EXEC RQINIX SCAN ¬RQ1 #XXQQ | |
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 | |
; →→ EXEC TRIGON SCAN ↓↓ #Q23 | |
MUMBLE Statements; | |
S0: BLAT BEGIN SG EXEC UINCLL ¬S1 | |
@STCO SG EXEC @STCO CODNIT ¬COD | |
S1: SG EXEC CAPOLL LSTKCK ¬S01 | |
S01: @IDQ SCAN ¬SID | |
@STA ¬S1Q | |
@BEG EXEC DWN SCAN ¬DS | |
IF SCAN ^BEX ¬IFQ | |
CASEX ELSE →→ CASEX EXEC CASEME SCAN ¬S01 #S02 | |
S02: @END →→ S @END ¬S9 | |
GO SCAN ¬G1 | |
GOTO →→ GO SCAN ¬G2 | |
FOREACH →→ BLKFRC FOREACH ∞∞ | |
EXEC DWN1 ¬FRC0 | |
GLOBAL →→ EXEC GLBSET SCAN ¬S01 | |
@PRO1 SCAN ^EXD ¬PROS | |
CASE SCAN ^EX ¬CSES | |
DO →→ DOL EXEC DOLOOP KOUNT1 SCAN ¬S1 | |
PRINT SCAN ¬%PRT | |
CPRINT SCAN ¬%CPRT | |
RETURN →→ SCAN ¬RT0 | |
NEEDNEXT →→ EXEC NEXTR SCAN ¬S1 | |
NEXT SCAN ¬NXTX | |
CONTINUE SCAN ¬CTUX | |
STC →→ EXEC SCOMM SCAN ¬S1 | |
REQUIRE SCAN ^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 | |
SETCP SCAN ¬SIC | |
SETIP SCAN ¬SIC | |
ASSIGNC →→ ASSIGNC ^ASG ¬SS1 | |
I EXEC UNDEC SCAN ¬USID #Q24 | |
SS1: SG SCAN ¬S01 #TRAP | |
S1Q: FOR SCAN ¬S1 | |
WHILE EXEC WHIL1 KOUNT1 SCAN ^BEX ¬WHG | |
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 | |
IRC SCAN ^RCF ¬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 | |
ICTXT COL SCAN ^EX1 ¬LCEL | |
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 EXEC CNFXP SCAN ^BEX ¬DOLS | |
CASEX S ; →→ CASEX EXEC CASEMT KOUNT1 SCAN ¬S1 | |
CASEX S END →→ CASEX EXEC CASEMT CASEND SCAN ¬S7 | |
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 ¬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 | |
@FUNCL EXEC GLBST2 SCAN ^EXD ¬RTN | |
@FUNC SCAN ^EXD ¬RTN | |
IF EXEC CHKLEP SCAN ^BEX ¬EIF | |
@TFAL →→ P EXEC @TFAL TCON SCAN ¬P2 | |
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 SCAN ¬BRK2 | |
? 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 | |
REFERENCE SCAN 2 ¬RFI | |
GLOBAL →→ EXEC GLBSET SCAN ¬EX1 | |
MESSAGE →→ EXEC MESCL SCAN ¬EX1 | |
MEMORY SCAN ^MEMX ¬XID | |
IRC SCAN ^RCF ¬XID | |
LOCATION SCAN ¬LOCX | |
APPLY →→ FCALL APPLY SCAN ¬%EV1 | |
INTERROGATE →→ FCALL SCAN ^EXD ¬%IR2 | |
ARG_LIST →→ SCAN ¬AGL | |
I EXEC UNDEC SCAN ¬UXID | |
CASE EXEC CHKLEP SCAN ^EX ¬CSEX | |
@SUCCEED →→ ITV EXEC @SUCCEED SUCCEX ONEITV SCAN ¬XIF | |
ICTXT SCAN ¬ECEL | |
NULL_CONTEXT EXEC NLCNXT SCAN ↓↓ | |
IN_CONTEXT SCAN ^EXD ¬NCXT | |
CVMS →→ SCAN ^CV1 ¬CV2 | |
CVPS →→ SCAN ^CVP1 ¬XID | |
NEW_RECORD →→ SCAN 3 ¬NRCD | |
NULL_RECORD →→ IVB EXEC NLLREC SCAN ¬XID | |
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 | |
MUMBLE %DS% 2! JFR 8-21-76 added DL1A; | |
DL1: @LDC →→ ICN EXEC DCLNT2 SCAN ¬DL2 | |
@RESERVED →→ ICN EXEC @RESERVED DCLNT3 SCAN ¬DL2 #Q107 | |
DL2: ) →→ SCAN ¬XID #XXQQ | |
CV1: ( →→ EXEC MACOFF SCAN ↓↓ | |
CV2: I →→ STC EXEC STCAT SCAN ¬CV3 #XXQQ | |
CV3: ) →→ SCAN ¬XID #Q106 | |
CVP1: ( →→ EXEC INTSCN SCAN ¬CVP2 #Q119 | |
CVP2: ICN →→ STC EXEC CVPFRM SCAN ¬CVP3 #Q120 | |
CVP3: ) →→ SCAN ↓↓ #XXQQ | |
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 | |
XIF: | |
@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 ¬PAM2 | |
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: SG ( VALUE →→ SG EXEC RFVAL SCAN ^EX ¬RF0 | |
SG1 ( SG2 →→ SG1 SG2 EXEC RFZERO ^EX ¬RF0 #Q36 | |
RF0: REF_ITEM @E ) →→ IP EXEC @E ECHK RFIMAK SCAN ¬IP2 | |
REFERENCE @E ) →→ IVB EXEC @E ECHK RFNCDO SCAN ¬XID | |
ARG_LIST @E @EDR →→ @EDR IP ∞∞ | |
EXEC @E ECHK RFTEMP RFIMAK ¬AGL4 #QRFI | |
AGL: ( →→ LIP SCAN ¬AGL1 #XXQQ | |
AGL1: LIP ) →→ SP EXEC STKNIL SCAN ¬SF1 | |
AGL2: LIP SG EXEC LIPGO ¬AGL3 #XXQQ | |
AGL3: SG →→ ARG_LIST ( SG EXEC GLBST2 ¬RFI #XXQQ | |
AGL4: LIP @EDR IP →→ LIP AE @EDR ¬AGL5 #XXQQ | |
AGL5: LIP AE @EDR →→ LIP @EDR EXEC SIP1 ¬AGL6 | |
AGL6: LIP ) →→ SP EXEC STPRIM SCAN ¬SF1 | |
AGL7: , →→ ARG_LIST ( EXEC GLBST2 SCAN ¬RFI #XXQQ | |
NRCD: ( IRC ) →→ E EXEC NRCDO SCAN ↓↓ #XXQQ | |
MUMBLE Compile-time type checking productions; | |
CK0: ( →→ SCAN ¬CK1 | |
CK1: ) →→ ICN EXEC MKINT SCAN ¬XID | |
CK2: | |
@ALGLP EXEC @ALGLP TYPST1 SCAN ¬CK4 | |
@XO →→ EXEC @XO XOWST1 SCAN ¬CK1 | |
DEFINE →→ EXEC @4 RSTST1 SCAN ¬CK1 | |
REDEFINE →→ EXEC @4 RSTST1 SCAN ¬CK1 | |
EVALDEFINE →→ EXEC @4 RSTST1 SCAN ¬CK1 | |
EVALREDEFINE →→ EXEC @4 RSTST1 SCAN ¬CK1 | |
RECORD_POINTER →→ EXEC @6 RSTST1 SCAN ¬CK1 | |
RECORD_CLASS →→ EXEC @7 RSTST1 SCAN ¬CK1 | |
@VAL →→ EXEC @VAL VALST1 SCAN ¬CK1 | |
ARRAY SCAN ¬CK5 | |
PROCEDURE →→ EXEC @5 RSTST1 SCAN ¬CK1 | |
@RSTDC →→ EXEC @RSTDC RSTST1 SCAN ¬CK1 #Q108 | |
CK3: ARRAY →→ EXEC @3 RSTST1 SCAN ¬CK1 | |
CKP: PROCEDURE →→ EXEC @5 RSTST1 SCAN ¬CK1 #CK1 | |
CK4: @XO →→ EXEC @XO XOWST1 SCAN ¬CK4 | |
@ALG @HEL →→ EXEC @HEL HELST1 SCAN ¬CK3 | |
@ALG ARRAY →→ARRAY SCAN ¬CK5 | |
ARRAY SCAN ¬CK5 | |
@ALGLP SG →→ SG ¬CK3 | |
CK5: SG ITEMVAR →→ EXEC @0 HELAR3 SCAN ¬CK3 | |
SG ITEM →→ EXEC @1 HELAR3 SCAN ¬CK1 | |
ARRAY SG →→ SG EXEC @3 RSTST1 ¬CK1 #CKP | |
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; | |
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 | |
@IARY [ →→ ARID EXEC ARYIDX SCAN ^ARY ¬IPQ | |
@REFXX ? @IDC SG →→ @REFXX @IDC SG ∞∞ | |
EXEC RFQKLG ¬XID #Q109 | |
IP0: BIND ITV SG →→ IP SG EXEC STITM FRESET ¬IP2 | |
@IARY [ →→ ARID EXEC ARYIDX SCAN ^ARY ¬IP0 | |
@REFXX BIND @IDC SG →→ @REFXX @IDC SG ∞∞ | |
EXEC RFBKLG ¬XID #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 LISTC →→ SP EXEC STKNIL SCAN ¬SF1 #BRK5 | |
BRK5: 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 | |
| →→ EXEC DUMITV FRCHGO SCAN ¬FRE | |
SUCH →→ EXEC DUMITV FRCHGO SCAN ¬FRD #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 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 | |
MUMBLE JFR 4-17-76 separate entries for statement (CSES) and expression (CSEX). | |
Under old (combined) method, a CASE expression used as a statement caused parser | |
to POPJ at E2 (via ETYP), quitting compilation in the middle of the file without | |
telling anyone.; | |
CSES: CASE E OF →→ CASEX EXEC CASSTR SCAN ¬CAS1 #Q65 | |
CAS1: BEGIN →→ EXEC KOUNT1 SCAN ¬CAS2 #Q24 | |
CAS2: CASEX STC →→ CASEX EXEC CSNAME SCAN ¬S1 #S1 | |
CSEX: CASE E OF →→ CASEX EXEC CASSTR SCAN ¬CAS9 #Q65 | |
CAS9: CASEX ( →→ CASEX EXEC CASE1 KOUNT5 SCAN ^EX ¬CAS3 #Q66 | |
CAS3: CASEX @E ) →→ @E EXEC @E CASE2 CASE3 SCAN ¬ETYP | |
CASEX @E , →→ CASEX EXEC @E CASE2 KOUNT6 SCAN ^EX ¬CAS3 #Q67 | |
CASD: CASEX [ E ] →→ CASEX EXEC CASEMM SCAN ¬S1 | |
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, record fields; | |
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: | |
LONG →→ EXEC @15 XOWSET SCAN ¬MMX6 | |
MMX6: @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 | |
IRC SCAN ¬LCX3 | |
LCXY: SG →→ FCALL SG ^EX ¬LCXX #XXQQ | |
LCX2: IPR ) →→ P EXEC LOCN SCAN ¬XID #LCX4 | |
LCX3: IRC ) →→ P EXEC LOCN SCAN ¬XID | |
LCX4: SG →→ EXEC SCNBAK ¬LCXY #XXQQ | |
LCXX: FCALL @E ) →→ P EXEC @E ECHK LOCN SCAN ¬XID #XXQQ | |
RCF: IRC : SCAN 2 ¬RCF1 #RCF3 | |
RCF3: IRC @EDR →→ IPR EXEC LOCN SCNBAK SCAN ↓↓ #XXQQ | |
RCF1: IRC : SG [ →→ IRC : EXEC RCFPIK SCAN ^EX ¬RCF2 #XXQQ | |
RCF2: IRC : E ] →→ I EXEC RCFREF SCAN ↓↓ #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 →→ EXEC CESSGO 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 | |
IRC →→ IRC 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 CNDRCN PSHLST ∞∞ | |
SCAN ^CONX ¬IF1 | |
IF1: IFC E @THT →→ CTRU1 EXEC TWCOND CPOPBT POPLST ¬IF2 #XXQQ | |
IF2: CTRU1 EXEC TOMACN PRESUME ¬IF3 | |
CFLS1 EXEC SWPOFF CPOPET PSHLST ∞∞ | |
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 CNDRCP PRESUME ↓↓ | |
CTRU1 ELSEC →→ CFLS2 EXEC SWPOFF CPOPET FRMACN PSHLST ∞∞ | |
SCAN ¬IF4 #XXQQ | |
IF4: WDPL CFLS1 ENDC →→ EXEC FREMBW SWPON POPLST ∞∞ | |
PRESUME ↓↓ | |
@CFALSE ENDC →→ EXEC SWPON TOMACN CNDRCP POPLST ∞∞ | |
PRESUME ↓↓ | |
CFLS1 ELSEC →→ CTRU2 EXEC SWPON CPSHEY TOMACN POPLST ∞∞ | |
PRESUME ¬IF3 | |
NOCOND ENDC →→ SCAN ¬IF4 | |
@CONBG →→ NOCOND SCAN ¬IF4 | |
SG →→ SCAN ¬IF4 #XXQQ | |
IF5: IFCR →→ IFC EXEC CPSHBT CPSHEY CNDRCY PSHLST ∞∞ | |
SCAN ^CONX ¬IF1 #XXQQ | |
WH0: WHILEC →→ EXEC SETDLM CPSHBT CPSHEN PSHLST ∞∞ | |
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 POPLST ∞∞ | |
PRESUME ↓↓ | |
CS0: CASEC EXEC CPSHBT CPSHEN PSHLST ∞∞ | |
SCAN ^CONX ¬CS1 | |
CS1: CASEC E OFC →→ CDPL CTRU1 ∞∞ | |
EXEC SETDLM SWPOFF CPOPET DCPREP ∞∞ | |
¬CSB | |
CASEC E OF →→ 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 POPLST ∞∞ | |
PRESUME ↓↓ | |
CDPL CTRU1 SG , →→ CDPL CTRU1 ∞∞ | |
EXEC DFENT1 OFFDLM SETCSE CPOPBT CPOPET POPLST ∞∞ | |
PRESUME ¬CS3 | |
CDPL CTRU1 SG ENDC →→ CDPL NOMORE ∞∞ | |
EXEC DFENT1 OFFDLM SETCSE CPOPBT CPOPET POPLST ∞∞ | |
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 PSHLST ∞∞ | |
SCAN 2 ¬CS2 #XXQQ | |
CS4: CDPL NOMORE ENDC →→ EXEC FREMBW OFFDLM SWPON ∞∞ | |
PRESUME ↓↓ #XXQQ | |
FR0: FORC →→ FRDPL EXEC DWPREP CPSHBT CPSHEN PSHLST MACOFF ∞∞ | |
SCAN ^FM0 ¬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 SCAN ^CONX ¬FR41 | |
FR41: CTRU1 SG SG1 SG2 ¬FR5 | |
CFLS1 SG SG1 SG2 EXEC SWPOFF CPOPET ¬FR51 | |
FR5: CTRU1 FRDPL SG ENDC →→ FRDPL ∞∞ | |
EXEC DFENT FFPOP OFFDLM SETFR CPOPBT CPOPET POPLST ∞∞ | |
PRESUME ¬FR6 | |
FR51: CFLS1 FRDPL SG ENDC →→ ∞∞ | |
EXEC OFFDLM FREMBN SWPON CPOPBT POPLST ∞∞ | |
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 PSHLST MACOFF ∞∞ | |
SCAN ^FM0 ¬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 POPLST ∞∞ | |
PRESUME ¬FL4 | |
FL4: FLDPL ENDC →→ CTRU1 FLDPL ∞∞ | |
EXEC TWACT ¬FL5 | |
FL5: CTRU1 FLDPL →→ FLDPL EXEC SWCHFL PRESUME ¬FL4 | |
CFLS1 FLDPL →→ EXEC FREMBF PRESUME ↓↓ | |
FM0: SG EXEC MACON SCAN ↓↓ | |
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 DFPINS SCAN 2 ¬DPA | |
SG @IDD ) →→ SG EXEC MDFPNS SCAN ¬LEQ #Q4 | |
LEQ: STC →→ EXEC SPDMBD SCAN ¬LEQ1 | |
LEQ1: SG @EQC →→ SG EXEC KLSTOF DLMPOP DFSET SETDLM ∞∞ | |
SCAN ^CONX ¬DEQ #XXQQ | |
DEQ: DPL SG1 , →→ EXEC DFENT FFPOP ENDMAC EVMCOF OFFDLM DLMPSH KLSTOC ∞∞ | |
SCAN ¬DFR | |
SG SG1 ; →→ EXEC DEFOFF DFENT FFPOP ENDMAC SWDLM OFFDLM DPOPBT KLSTON ∞∞ | |
↓↓ #Q20 | |
RDF: REDEFINE →→ EXEC SETRDF MACOFF DLMPSH DPSHBT SCAN ¬DFR #XXQQ | |
EDF: EVALDEFINE →→ EXEC SETEDF DLMPSH DPSHBT SCAN ¬DFR #XXQQ | |
ERF: EVALREDEFINE →→ EVALDEFINE EXEC SETRDF ¬EDF #XXQQ | |
ASG: ASSIGNC →→ EXEC DLMPSH DPSHBT INTSCN ∞∞ | |
SCAN ¬AS1 | |
AS1: ICN →→ ASSIGNC EXEC ASGOFF SCAN ¬AS2 #Q116 | |
AS2: STC →→ EXEC SPDMBD SCAN ¬AS3 | |
AS3: SG = →→ SG EXEC DLMPOP DFSET SETDLM ∞∞ | |
SCAN ^CONX ¬AS4 #XXQQ | |
AS4: SG SG1 , →→ EXEC ASGENT FFPOP OFFDLM DLMPSH INTSCN ∞∞ | |
SCAN ¬AS1 | |
SG SG1 ; →→ EXEC ASGENT FFPOP SWDLM OFFDLM DPOPBT ∞∞ | |
↓↓ #Q20 | |
NMC: NOMAC →→ EXEC MACOFF SCAN ¬NM1 #XXQQ | |
NM1: I →→ EXEC MACON SCNBAK ↓↓ #Q118 | |
MUMBLE print statement; | |
%PRT: PRINT ( →→ PRINT EXEC STRTPT SCAN ^EX ¬%PR1 | |
%PR1: PRINT @E ) →→ S EXEC @E ECHK DOPRT ENDPRT SCAN ¬S9 | |
PRINT @E , →→ PRINT EXEC @E ECHK DOPRT SCAN ^EX ¬%PR1 | |
%CPRT: CPRINT ( →→ CPRINT SCAN ^EX ¬%CPR1 | |
%CPR1: CPRINT @E , →→ PRINT EXEC @E ECHK STCPRT SCAN ^EX ¬%PR1 | |
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 | |
SPROUT APPLY ) →→ SPROUT ∞∞ | |
EXEC SAPPN SCAN ¬FK3 #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 | |
SPROUT APPLY @E ) →→ SPROUT ∞∞ | |
EXEC SAPPL SCAN ¬FK3 #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 | |
SPROUT APPLY ( →→ SPROUT APPLY ∞∞ | |
EXEC SAPPL1 SCAN 2 ¬%EV2 #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 SETIP & STECP; | |
SIC: ( →→ SCAN ^EX ¬SIC1 #XXQQ | |
SIC1: @E , →→ EXEC BNDITM SCAN 2 ^SCX ¬SIC2 #XXQQ | |
SIC2: SETCP →→ S EXEC SCPCLL SCAN ¬S9 | |
SIC3: SETIP →→ S EXEC SIPCLL SCAN ¬S9 #XXQQ | |
SCX: IPR ) →→ EXEC PDASTK ↓↓ | |
DATUM ( →→ ( SCAN ^EXD ¬SCX1 #XXQQ | |
SCX1: @E ) →→ EXEC BNDITM PITSTK ↓↓ | |
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; | |
QRC2: PDEC SG EXEC RCCERR ENDRC ¬DS0 | |
QRC1: SG EXEC RCCERR ¬FUSH | |
QRP1: SG EXEC RCPERR ¬FUSH | |
MUMBLE More error productions; | |
Q34: S ) →→ S EXEC ER37 SCAN ¬S9 | |
DOL S SG →→ EXEC ER33 SCAN ¬S9 | |
S ELSE →→ S ; EXEC ERR125 ¬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 | |
Q116: SG EXEC ERR120 ¬XXQQ | |
Q117: SG →→ EXEC ERR121 PRESUME ¬Q117 | |
Q118: SG EXEC ERR122 MACON ¬XXQQ | |
Q119: SG EXEC ERR123 ASGOFF ¬XXQQ | |
Q120: SG EXEC ERR124 ASGOFF ¬XXQQ | |
Z1: STC ( ) →→ STC SCAN ↓↓ | |
( ) →→ SCAN ¬Z1 | |
( SCAN ¬Z1 | |
SG →→ SCAN ¬Z1 | |
TRAP: SG EXEC ERTRAP ¬FUSH | |
<END> | |
β | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment