UNPKG

thaw-grammar

Version:

Implementations of the grammars of several programming languages, including LISP, Scheme, Prolog, and the Lambda Calculus.

199 lines (191 loc) 484 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); class t$1 extends Error{constructor(t,n,e=0,r=0){const i=`${t}${e>0&&r>0?` at line ${e}, column ${r}`:""}: ${n}`;super(i),this.str=i,this.line=e,this.column=r;}toString(){return this.str}}class n$2 extends t$1{constructor(t,n,e=0,r=0){super("ArgumentException",t,e,r),this.argumentName=n,this.argumentName=n;}}class e$1 extends t$1{constructor(t,n=0,e=0){super("EvaluationException",t,n,e);}}class r$1 extends t$1{constructor(t,n=0,e=0){super("GrammarException",t,n,e);}}var i$1,a,l$1,o,m;!function(t){t[t.UndefinedSymbol=0]="UndefinedSymbol",t[t.Lambda=1]="Lambda",t[t.Dot=2]="Dot",t[t.terminalBegin=3]="terminalBegin",t[t.terminalEnd=4]="terminalEnd",t[t.terminalAssign=5]="terminalAssign",t[t.terminalSemicolon=6]="terminalSemicolon",t[t.terminalRead=7]="terminalRead",t[t.terminalWrite=8]="terminalWrite",t[t.terminalLeftBracket=9]="terminalLeftBracket",t[t.terminalRightBracket=10]="terminalRightBracket",t[t.terminalLeftSquareBracket=11]="terminalLeftSquareBracket",t[t.terminalRightSquareBracket=12]="terminalRightSquareBracket",t[t.terminalOrBar=13]="terminalOrBar",t[t.terminalComma=14]="terminalComma",t[t.terminalID=15]="terminalID",t[t.terminalVariable=16]="terminalVariable",t[t.terminalIntegerLiteral=17]="terminalIntegerLiteral",t[t.terminalFloatLiteral=18]="terminalFloatLiteral",t[t.terminalStringLiteral=19]="terminalStringLiteral",t[t.terminalPlus=20]="terminalPlus",t[t.terminalMinus=21]="terminalMinus",t[t.terminalCond=22]="terminalCond",t[t.terminalLet=23]="terminalLet",t[t.terminalLetStar=24]="terminalLetStar",t[t.terminalDefine=25]="terminalDefine",t[t.terminalIf=26]="terminalIf",t[t.terminalWhile=27]="terminalWhile",t[t.terminalSet=28]="terminalSet",t[t.terminalMultiply=29]="terminalMultiply",t[t.terminalDivide=30]="terminalDivide",t[t.terminalEquals=31]="terminalEquals",t[t.terminalLessThan=32]="terminalLessThan",t[t.terminalGreaterThan=33]="terminalGreaterThan",t[t.terminalPrint=34]="terminalPrint",t[t.terminalCons=35]="terminalCons",t[t.terminalCar=36]="terminalCar",t[t.terminalCdr=37]="terminalCdr",t[t.terminalNumberPred=38]="terminalNumberPred",t[t.terminalSymbolPred=39]="terminalSymbolPred",t[t.terminalListPred=40]="terminalListPred",t[t.terminalNullPred=41]="terminalNullPred",t[t.terminalStringPred=42]="terminalStringPred",t[t.terminalApostrophe=43]="terminalApostrophe",t[t.terminalDot=44]="terminalDot",t[t.terminalList=45]="terminalList",t[t.terminalRplaca=46]="terminalRplaca",t[t.terminalRplacd=47]="terminalRplacd",t[t.terminalDefineMacro=48]="terminalDefineMacro",t[t.terminalQuoteKeyword=49]="terminalQuoteKeyword",t[t.terminalRandom=50]="terminalRandom",t[t.terminalToString=51]="terminalToString",t[t.terminalListToString=52]="terminalListToString",t[t.terminalStringToList=53]="terminalStringToList",t[t.terminalStringToSymbol=54]="terminalStringToSymbol",t[t.terminalSin=55]="terminalSin",t[t.terminalCos=56]="terminalCos",t[t.terminalTan=57]="terminalTan",t[t.terminalPow=58]="terminalPow",t[t.terminalExp=59]="terminalExp",t[t.terminalLn=60]="terminalLn",t[t.terminalFloor=61]="terminalFloor",t[t.terminalAtan2=62]="terminalAtan2",t[t.terminalThrow=63]="terminalThrow",t[t.terminalStringLessThan=64]="terminalStringLessThan",t[t.terminalPrimOpPred=65]="terminalPrimOpPred",t[t.terminalClosurePred=66]="terminalClosurePred",t[t.terminalLambdaKeyword=67]="terminalLambdaKeyword",t[t.terminalLetRec=68]="terminalLetRec",t[t.terminalCallCC=69]="terminalCallCC",t[t.terminalNameBeginningWithCapital=70]="terminalNameBeginningWithCapital",t[t.terminalNameNotBeginningWithCapital=71]="terminalNameNotBeginningWithCapital",t[t.terminalFrom=72]="terminalFrom",t[t.terminalInferPred=73]="terminalInferPred",t[t.terminalNotSymbol=74]="terminalNotSymbol",t[t.terminalIs=75]="terminalIs",t[t.terminalLessOrEqual=76]="terminalLessOrEqual",t[t.terminalGreaterOrEqual=77]="terminalGreaterOrEqual",t[t.terminalNotEqual=78]="terminalNotEqual",t[t.terminalArithmeticEqual=79]="terminalArithmeticEqual",t[t.terminalArithmeticNotEqual=80]="terminalArithmeticNotEqual",t[t.terminalUnifiable=81]="terminalUnifiable",t[t.terminalNotUnifiable=82]="terminalNotUnifiable",t[t.terminalIfThen=83]="terminalIfThen",t[t.terminalColon=84]="terminalColon",t[t.terminalDCGArrow=85]="terminalDCGArrow",t[t.terminalUniv=86]="terminalUniv",t[t.terminalCaret=87]="terminalCaret",t[t.terminalFn=88]="terminalFn",t[t.terminalThickArrow=89]="terminalThickArrow",t[t.terminalIn=90]="terminalIn",t[t.terminalTrue=91]="terminalTrue",t[t.terminalFalse=92]="terminalFalse",t[t.terminalComb=93]="terminalComb",t[t.terminalInc=94]="terminalInc",t[t.terminalDec=95]="terminalDec",t[t.terminalAnd=96]="terminalAnd",t[t.terminalOr=97]="terminalOr",t[t.terminalIsZero=98]="terminalIsZero",t[t.terminalNil=99]="terminalNil",t[t.terminalOctothorpe=100]="terminalOctothorpe",t[t.terminalDollar=101]="terminalDollar",t[t.terminalClass=102]="terminalClass",t[t.terminalObjectPred=103]="terminalObjectPred",t[t.terminalStrlen=104]="terminalStrlen",t[t.terminalSubstr=105]="terminalSubstr",t[t.terminalTypename=106]="terminalTypename",t[t.terminalStrcat=107]="terminalStrcat",t[t.terminalNewArray=108]="terminalNewArray",t[t.terminalArrayLength=109]="terminalArrayLength",t[t.terminalArrayGet=110]="terminalArrayGet",t[t.terminalArraySet=111]="terminalArraySet",t[t.terminalArrayPred=112]="terminalArrayPred",t[t.terminalCharPred=113]="terminalCharPred",t[t.terminalStringIndex=114]="terminalStringIndex",t[t.terminalVectorConst=115]="terminalVectorConst",t[t.terminalMax=116]="terminalMax",t[t.terminalPlusSlash=117]="terminalPlusSlash",t[t.terminalMinusSlash=118]="terminalMinusSlash",t[t.terminalMultiplySlash=119]="terminalMultiplySlash",t[t.terminalDivideSlash=120]="terminalDivideSlash",t[t.terminalMaxSlash=121]="terminalMaxSlash",t[t.terminalOrSlash=122]="terminalOrSlash",t[t.terminalAndSlash=123]="terminalAndSlash",t[t.terminalCompress=124]="terminalCompress",t[t.terminalShape=125]="terminalShape",t[t.terminalRavel=126]="terminalRavel",t[t.terminalRestruct=127]="terminalRestruct",t[t.terminalCat=128]="terminalCat",t[t.terminalIndx=129]="terminalIndx",t[t.terminalTrans=130]="terminalTrans",t[t.terminalSquareBrackets=131]="terminalSquareBrackets",t[t.terminalDoubleSubscripting=132]="terminalDoubleSubscripting",t[t.terminalCluster=133]="terminalCluster",t[t.terminalRep=134]="terminalRep",t[t.terminalExport=135]="terminalExport",t[t.terminalThen=136]="terminalThen",t[t.terminalElse=137]="terminalElse",t[t.terminalCall=138]="terminalCall",t[t.terminalTypeBoolean=139]="terminalTypeBoolean",t[t.terminalTypeByte=140]="terminalTypeByte",t[t.terminalTypeClosure=141]="terminalTypeClosure",t[t.terminalTypeInteger=142]="terminalTypeInteger",t[t.terminalTypeFloatingPoint=143]="terminalTypeFloatingPoint",t[t.terminalTypeList=144]="terminalTypeList",t[t.terminalTypeMap=145]="terminalTypeMap",t[t.terminalTypeString=146]="terminalTypeString",t[t.terminalModulus=147]="terminalModulus",t[t.terminalMapGet=148]="terminalMapGet",t[t.terminalMapSet=149]="terminalMapSet",t[t.terminalAsync=150]="terminalAsync",t[t.terminalPlusEqual=151]="terminalPlusEqual",t[t.terminalMinusEqual=152]="terminalMinusEqual",t[t.terminalMultiplyEqual=153]="terminalMultiplyEqual",t[t.terminalDivideEqual=154]="terminalDivideEqual",t[t.terminalModulusEqual=155]="terminalModulusEqual",t[t.terminalLeftCurlyBrace=156]="terminalLeftCurlyBrace",t[t.terminalRightCurlyBrace=157]="terminalRightCurlyBrace",t[t.terminalDo=158]="terminalDo",t[t.terminalForEach=159]="terminalForEach",t[t.terminalDeclare=160]="terminalDeclare",t[t.terminalBooleanPred=161]="terminalBooleanPred",t[t.terminalMapPred=162]="terminalMapPred",t[t.terminalPairPred=163]="terminalPairPred",t[t.terminalLogicalNot=164]="terminalLogicalNot",t[t.terminalBitwiseAnd=165]="terminalBitwiseAnd",t[t.terminalBitwiseOr=166]="terminalBitwiseOr",t[t.terminalBitwiseXor=167]="terminalBitwiseXor",t[t.terminalBitwiseNot=168]="terminalBitwiseNot",t[t.terminalBitwiseShiftLeft=169]="terminalBitwiseShiftLeft",t[t.terminalBitwiseShiftRight=170]="terminalBitwiseShiftRight",t[t.terminalBitwiseAndEqual=171]="terminalBitwiseAndEqual",t[t.terminalBitwiseOrEqual=172]="terminalBitwiseOrEqual",t[t.terminalBitwiseXorEqual=173]="terminalBitwiseXorEqual",t[t.terminalBitwiseShiftLeftEqual=174]="terminalBitwiseShiftLeftEqual",t[t.terminalBitwiseShiftRightEqual=175]="terminalBitwiseShiftRightEqual",t[t.terminalIncrement=176]="terminalIncrement",t[t.terminalDecrement=177]="terminalDecrement",t[t.terminalQuestionMark=178]="terminalQuestionMark",t[t.terminalColonColon=179]="terminalColonColon",t[t.terminalEOF=180]="terminalEOF",t[t.nonterminalStart=181]="nonterminalStart",t[t.nonterminalProgram=182]="nonterminalProgram",t[t.nonterminalStatementList=183]="nonterminalStatementList",t[t.nonterminalStatementTail=184]="nonterminalStatementTail",t[t.nonterminalStatement=185]="nonterminalStatement",t[t.nonterminalIDList=186]="nonterminalIDList",t[t.nonterminalIDTail=187]="nonterminalIDTail",t[t.nonterminalExprList=188]="nonterminalExprList",t[t.nonterminalExprTail=189]="nonterminalExprTail",t[t.nonterminalExpression=190]="nonterminalExpression",t[t.nonterminalTerm=191]="nonterminalTerm",t[t.nonterminalPrimaryTail=192]="nonterminalPrimaryTail",t[t.nonterminalPrimary=193]="nonterminalPrimary",t[t.nonterminalAddOp=194]="nonterminalAddOp",t[t.nonterminalBracketedEntity=195]="nonterminalBracketedEntity",t[t.nonterminalInput=196]="nonterminalInput",t[t.nonterminalFunDef=197]="nonterminalFunDef",t[t.nonterminalFunction=198]="nonterminalFunction",t[t.nonterminalArgList=199]="nonterminalArgList",t[t.nonterminalVariableList=200]="nonterminalVariableList",t[t.nonterminalVariable=201]="nonterminalVariable",t[t.nonterminalValue=202]="nonterminalValue",t[t.nonterminalBracketedExpression=203]="nonterminalBracketedExpression",t[t.nonterminalExpressionList=204]="nonterminalExpressionList",t[t.nonterminalOptr=205]="nonterminalOptr",t[t.nonterminalValueOp=206]="nonterminalValueOp",t[t.nonterminalQuotedConst=207]="nonterminalQuotedConst",t[t.nonterminalSExpression=208]="nonterminalSExpression",t[t.nonterminalSExpressionList=209]="nonterminalSExpressionList",t[t.nonterminalSymbol=210]="nonterminalSymbol",t[t.nonterminalMacroDef=211]="nonterminalMacroDef",t[t.nonterminalExprPairList=212]="nonterminalExprPairList",t[t.nonterminalLetKeyword=213]="nonterminalLetKeyword",t[t.nonterminalVarExprList=214]="nonterminalVarExprList",t[t.nonterminalBracketedInput=215]="nonterminalBracketedInput",t[t.nonterminalUnbracketedInput=216]="nonterminalUnbracketedInput",t[t.nonterminalSExpressionListTail=217]="nonterminalSExpressionListTail",t[t.nonterminalClause=218]="nonterminalClause",t[t.nonterminalQuery=219]="nonterminalQuery",t[t.nonterminalGoal=220]="nonterminalGoal",t[t.nonterminalClauseTail=221]="nonterminalClauseTail",t[t.nonterminalGoalList=222]="nonterminalGoalList",t[t.nonterminalGoalListTail=223]="nonterminalGoalListTail",t[t.nonterminalList=224]="nonterminalList",t[t.nonterminalListContents=225]="nonterminalListContents",t[t.nonterminalListContentsTail=226]="nonterminalListContentsTail",t[t.nonterminalFunctorExpression=227]="nonterminalFunctorExpression",t[t.nonterminalTailOfGoalOrFunctorExpression=228]="nonterminalTailOfGoalOrFunctorExpression",t[t.nonterminalExpressionListTail=229]="nonterminalExpressionListTail",t[t.nonterminalGoalTail1=230]="nonterminalGoalTail1",t[t.nonterminalVariableOrNumericLiteral=231]="nonterminalVariableOrNumericLiteral",t[t.nonterminalLambdaExpression=232]="nonterminalLambdaExpression",t[t.nonterminalLetStatement=233]="nonterminalLetStatement",t[t.nonterminalFunctionCall=234]="nonterminalFunctionCall",t[t.nonterminalAfterVariable=235]="nonterminalAfterVariable",t[t.nonterminalClassDef=236]="nonterminalClassDef",t[t.nonterminalClass=237]="nonterminalClass",t[t.nonterminalInstVars=238]="nonterminalInstVars",t[t.nonterminalMethodDef=239]="nonterminalMethodDef",t[t.nonterminalMethodDefList=240]="nonterminalMethodDefList",t[t.nonterminalLiteralList=241]="nonterminalLiteralList",t[t.nonterminalVectorConst=242]="nonterminalVectorConst",t[t.nonterminalIntegerLiteralList=243]="nonterminalIntegerLiteralList",t[t.nonterminalClusterDef=244]="nonterminalClusterDef",t[t.nonterminalRep=245]="nonterminalRep",t[t.nonterminalFunDefList=246]="nonterminalFunDefList",t[t.nonterminalOnePartName=247]="nonterminalOnePartName",t[t.nonterminalOnePartNameTail=248]="nonterminalOnePartNameTail",t[t.nonterminalExportList=249]="nonterminalExportList",t[t.nonterminalOnePartNameList=250]="nonterminalOnePartNameList",t[t.nonterminalArithmeticExpression=251]="nonterminalArithmeticExpression",t[t.nonterminalArithmeticExpression0=252]="nonterminalArithmeticExpression0",t[t.nonterminalArithmeticExpression1=253]="nonterminalArithmeticExpression1",t[t.nonterminalArithmeticExpression2=254]="nonterminalArithmeticExpression2",t[t.nonterminalArithmeticExpression3=255]="nonterminalArithmeticExpression3",t[t.nonterminalArithmeticExpression4=256]="nonterminalArithmeticExpression4",t[t.nonterminalArithmeticExpression5=257]="nonterminalArithmeticExpression5",t[t.nonterminalArithmeticExpression6=258]="nonterminalArithmeticExpression6",t[t.nonterminalArithmeticExpression7=259]="nonterminalArithmeticExpression7",t[t.nonterminalArithmeticExpression8=260]="nonterminalArithmeticExpression8",t[t.nonterminalArithmeticExpression9=261]="nonterminalArithmeticExpression9",t[t.nonterminalArithmeticExpression10=262]="nonterminalArithmeticExpression10",t[t.nonterminalArithmeticExpression11=263]="nonterminalArithmeticExpression11",t[t.nonterminalArithmeticExpression12=264]="nonterminalArithmeticExpression12",t[t.nonterminalArithmeticExpression13=265]="nonterminalArithmeticExpression13",t[t.nonterminalArithmeticExpression14=266]="nonterminalArithmeticExpression14",t[t.nonterminalArithmeticExpression15=267]="nonterminalArithmeticExpression15",t[t.nonterminalArithmeticOperator=268]="nonterminalArithmeticOperator",t[t.nonterminalArithmeticOperator1=269]="nonterminalArithmeticOperator1",t[t.nonterminalArithmeticOperator2=270]="nonterminalArithmeticOperator2",t[t.nonterminalArithmeticOperator3=271]="nonterminalArithmeticOperator3",t[t.nonterminalArithmeticOperator4=272]="nonterminalArithmeticOperator4",t[t.nonterminalArithmeticOperator5=273]="nonterminalArithmeticOperator5",t[t.nonterminalArithmeticOperator6=274]="nonterminalArithmeticOperator6",t[t.nonterminalArithmeticOperator7=275]="nonterminalArithmeticOperator7",t[t.nonterminalArithmeticOperator8=276]="nonterminalArithmeticOperator8",t[t.nonterminalArithmeticOperator9=277]="nonterminalArithmeticOperator9",t[t.nonterminalArithmeticOperator10=278]="nonterminalArithmeticOperator10",t[t.nonterminalArithmeticOperator11=279]="nonterminalArithmeticOperator11",t[t.nonterminalArithmeticOperator12=280]="nonterminalArithmeticOperator12",t[t.nonterminalArithmeticOperator13=281]="nonterminalArithmeticOperator13",t[t.nonterminalArithmeticOperator14=282]="nonterminalArithmeticOperator14",t[t.nonterminalArithmeticOperator15=283]="nonterminalArithmeticOperator15",t[t.nonterminalArithmeticComparisonOperator=284]="nonterminalArithmeticComparisonOperator",t[t.nonterminalActualParameterList=285]="nonterminalActualParameterList",t[t.nonterminalFormalParameterList=286]="nonterminalFormalParameterList",t[t.nonterminalCommaSeparatedVariableList=287]="nonterminalCommaSeparatedVariableList",t[t.nonterminalCommaSeparatedExpressionList=288]="nonterminalCommaSeparatedExpressionList",t[t.nonterminalTypeName=289]="nonterminalTypeName",t[t.nonterminalTypeExpression=290]="nonterminalTypeExpression",t[t.nonterminalTypeParameterized=291]="nonterminalTypeParameterized",t[t.nonterminalOptionalElseBlock=292]="nonterminalOptionalElseBlock",t[t.nonterminalNonEmptyExpressionList=293]="nonterminalNonEmptyExpressionList",t[t.nonterminalLValue=294]="nonterminalLValue",t[t.nonterminalAssignmentOperator=295]="nonterminalAssignmentOperator",t[t.nonterminalBlock=296]="nonterminalBlock",t[t.nonterminalDeclarationPartOfBlock=297]="nonterminalDeclarationPartOfBlock",t[t.nonterminalDeclaration=298]="nonterminalDeclaration",t[t.nonterminalDeclarationList=299]="nonterminalDeclarationList",t[t.nonterminalValueList=300]="nonterminalValueList",t[t.nonterminalValueListTail=301]="nonterminalValueListTail";}(i$1||(i$1={})),function(t){t[t.MinimalLanguage=0]="MinimalLanguage",t[t.Micro=1]="Micro",t[t.Chapter1=2]="Chapter1",t[t.LISP=3]="LISP",t[t.APL=4]="APL",t[t.Scheme=5]="Scheme",t[t.SASL=6]="SASL",t[t.CLU=7]="CLU",t[t.Smalltalk=8]="Smalltalk",t[t.Prolog=9]="Prolog",t[t.Prolog2=10]="Prolog2",t[t.Inference=11]="Inference",t[t.JSON=12]="JSON",t[t.EcstaSKI=13]="EcstaSKI",t[t.Adso=14]="Adso",t[t.LambdaCalculus=15]="LambdaCalculus",t[t.LambdaCalculusWithAugmentedSyntax=16]="LambdaCalculusWithAugmentedSyntax",t[t.LambdaCalculusIntegerExtension=17]="LambdaCalculusIntegerExtension",t[t.C=18]="C",t[t.N1=19]="N1",t[t.Arithmetic=20]="Arithmetic",t[t.Fxx=21]="Fxx",t[t.Protos=22]="Protos";}(a||(a={})),function(t){t[t.MidnightHack=1]="MidnightHack",t[t.FiniteStateMachine=2]="FiniteStateMachine";}(l$1||(l$1={})),function(t){t[t.tokenNone=1]="tokenNone",t[t.tokenIntLit=2]="tokenIntLit",t[t.tokenFltLit=3]="tokenFltLit",t[t.tokenStrLit=4]="tokenStrLit",t[t.tokenStrLit2=5]="tokenStrLit2",t[t.tokenIdent=6]="tokenIdent",t[t.tokenBoolIdent=7]="tokenBoolIdent",t[t.tokenSkolemIdent=8]="tokenSkolemIdent",t[t.tokenVariable=9]="tokenVariable",t[t.tokenPlus=10]="tokenPlus",t[t.tokenMinus=11]="tokenMinus",t[t.tokenMult=12]="tokenMult",t[t.tokenDiv=13]="tokenDiv",t[t.tokenEqual=14]="tokenEqual",t[t.tokenNotEqual=15]="tokenNotEqual",t[t.tokenLess=16]="tokenLess",t[t.tokenLessEqual=17]="tokenLessEqual",t[t.tokenGreater=18]="tokenGreater",t[t.tokenGreaterEqual=19]="tokenGreaterEqual",t[t.tokenSemicolon=20]="tokenSemicolon",t[t.tokenComma=21]="tokenComma",t[t.token2OrBar=22]="token2OrBar",t[t.token2Ampersand=23]="token2Ampersand",t[t.tokenLeftBracket=24]="tokenLeftBracket",t[t.tokenRightBracket=25]="tokenRightBracket",t[t.tokenAssign=26]="tokenAssign",t[t.tokenArrow=27]="tokenArrow",t[t.tokenThickArrow=28]="tokenThickArrow",t[t.tokenExclamation=29]="tokenExclamation",t[t.tokenApostrophe=30]="tokenApostrophe",t[t.tokenOctothorpe=31]="tokenOctothorpe",t[t.tokenDollar=32]="tokenDollar",t[t.tokenDot=33]="tokenDot",t[t.tokenLeftSquareBracket=34]="tokenLeftSquareBracket",t[t.tokenRightSquareBracket=35]="tokenRightSquareBracket",t[t.tokenOrBar=36]="tokenOrBar",t[t.tokenAmpersand=37]="tokenAmpersand",t[t.tokenColon=38]="tokenColon",t[t.tokenLeftCurlyBrace=39]="tokenLeftCurlyBrace",t[t.tokenRightCurlyBrace=40]="tokenRightCurlyBrace",t[t.tokenQuoteKeyword=41]="tokenQuoteKeyword",t[t.tokenQuestionMinus=42]="tokenQuestionMinus",t[t.tokenColonMinus=43]="tokenColonMinus",t[t.tokenEqualLessThan=44]="tokenEqualLessThan",t[t.tokenBackslashPlus=45]="tokenBackslashPlus",t[t.tokenBackslashEqual=46]="tokenBackslashEqual",t[t.tokenEqualEqual=47]="tokenEqualEqual",t[t.tokenBackslashEqualEqual=48]="tokenBackslashEqualEqual",t[t.tokenEqualColonEqual=49]="tokenEqualColonEqual",t[t.tokenEqualBackslashEqual=50]="tokenEqualBackslashEqual",t[t.tokenMinusMinusGreaterThan=51]="tokenMinusMinusGreaterThan",t[t.tokenEqualDotDot=52]="tokenEqualDotDot",t[t.tokenCaret=53]="tokenCaret",t[t.tokenTilde=54]="tokenTilde",t[t.tokenLowercaseGreekLetterLambda=55]="tokenLowercaseGreekLetterLambda",t[t.tokenPercent=56]="tokenPercent",t[t.tokenPlusEqual=57]="tokenPlusEqual",t[t.tokenMinusEqual=58]="tokenMinusEqual",t[t.tokenMultEqual=59]="tokenMultEqual",t[t.tokenDivEqual=60]="tokenDivEqual",t[t.tokenPercentEqual=61]="tokenPercentEqual",t[t.tokenForAll=62]="tokenForAll",t[t.tokenThereExists=63]="tokenThereExists",t[t.tokenThereDoesNotExist=64]="tokenThereDoesNotExist",t[t.tokenEmptySet=65]="tokenEmptySet",t[t.tokenIsAnElementOf=66]="tokenIsAnElementOf",t[t.tokenIntersection=67]="tokenIntersection",t[t.tokenUnion=68]="tokenUnion",t[t.tokenIsASubsetOf=69]="tokenIsASubsetOf",t[t.tokenIsAProperSubsetOf=70]="tokenIsAProperSubsetOf",t[t.tokenBitwiseShiftLeft=71]="tokenBitwiseShiftLeft",t[t.tokenBitwiseShiftRight=72]="tokenBitwiseShiftRight",t[t.tokenBitwiseAndEqual=73]="tokenBitwiseAndEqual",t[t.tokenBitwiseOrEqual=74]="tokenBitwiseOrEqual",t[t.tokenBitwiseXorEqual=75]="tokenBitwiseXorEqual",t[t.tokenBitwiseShiftLeftEqual=76]="tokenBitwiseShiftLeftEqual",t[t.tokenBitwiseShiftRightEqual=77]="tokenBitwiseShiftRightEqual",t[t.tokenPlusPlus=78]="tokenPlusPlus",t[t.tokenMinusMinus=79]="tokenMinusMinus",t[t.tokenQuestionMark=80]="tokenQuestionMark",t[t.tokenColonColon=81]="tokenColonColon",t[t.tokenEOF=82]="tokenEOF",t[t.stateStart=83]="stateStart",t[t.stateError=84]="stateError",t[t.stateStrLitOpen=85]="stateStrLitOpen",t[t.stateStrLit2Open=86]="stateStrLit2Open",t[t.stateIntLitDot=87]="stateIntLitDot",t[t.stateQuestion=88]="stateQuestion",t[t.stateAmpersand=89]="stateAmpersand",t[t.stateAt=90]="stateAt",t[t.stateDollar=91]="stateDollar",t[t.stateBackslash=92]="stateBackslash",t[t.stateEqualColon=93]="stateEqualColon",t[t.stateEqualBackslash=94]="stateEqualBackslash",t[t.stateMinusMinus=95]="stateMinusMinus",t[t.stateEqualDot=96]="stateEqualDot";}(o||(o={})),function(t){t[t.LL1=0]="LL1",t[t.LR0=1]="LR0",t[t.LR1=2]="LR1",t[t.SLR1=3]="SLR1",t[t.LALR1=4]="LALR1";}(m||(m={}));class s{constructor(t,e=0,r=0){if(this.value=t,this.line=e,this.column=r,!t)throw new n$2("Name constructor: A Name cannot have a null or empty value","value")}toString(){return this.value}}function u(t){const n=t,e=n.lhs,r=n.rhs;return void 0!==n&&"Production"===n.typename&&void 0!==e&&"number"==typeof e&&void 0!==r&&r instanceof Array&&r.every((t=>"number"==typeof t||"string"==typeof t))}class c$1{constructor(t,n,e){this.lhs=t,this.rhs=n,this.num=e,this.typename="Production";}toString(){const t=i$1[this.lhs],n=this.rhs.map((t=>"string"==typeof t?t:i$1[t])).join(" ");return `${this.num}: ${t} -> ${n}`}equals(t){return u(t)&&t.lhs===this.lhs&&t.rhs.length===this.rhs.length&&t.rhs.every(((t,n)=>t===this.rhs[n]))}getRHSWithNoSemanticActions(){return this.rhs.filter((t=>"string"!=typeof t)).map((t=>t))}stripOutSemanticActions(){return new c$1(this.lhs,this.getRHSWithNoSemanticActions(),this.num)}containsSymbol(t){return this.lhs===t||void 0!==this.rhs.find((n=>n===t))}}function h(t,n,e=0){return new c$1(t,n,e)}function p(t){return t>i$1.Dot&&t<=i$1.terminalEOF}function k(t){return t>i$1.terminalEOF}class E{constructor(t){this.startSymbol=t,this.terminals=[],this.nonTerminals=[],this.productions=[];}get defaultLexicalAnalyzer(){return l$1.MidnightHack}get defaultParser(){return m.LL1}get selectorsOfCompatibleParsers(){return [this.defaultParser]}tokenToSymbol(t){const n=t.tokenValue;switch(t.tokenType){case o.tokenEOF:return i$1.terminalEOF;case o.tokenIntLit:return i$1.terminalIntegerLiteral;case o.tokenFltLit:return i$1.terminalFloatLiteral;case o.tokenStrLit:return i$1.terminalStringLiteral;case o.tokenPlus:return i$1.terminalPlus;case o.tokenMinus:return i$1.terminalMinus;case o.tokenMult:return i$1.terminalMultiply;case o.tokenDiv:return i$1.terminalDivide;case o.tokenEqual:return i$1.terminalEquals;case o.tokenLess:return i$1.terminalLessThan;case o.tokenGreater:return i$1.terminalGreaterThan;case o.tokenLeftBracket:return i$1.terminalLeftBracket;case o.tokenRightBracket:return i$1.terminalRightBracket;case o.tokenApostrophe:return i$1.terminalApostrophe;case o.tokenComma:return i$1.terminalComma;case o.tokenDollar:return i$1.terminalDollar;case o.tokenOctothorpe:return i$1.terminalOctothorpe;case o.tokenIdent:switch(n){case"define":return i$1.terminalDefine;case"if":return i$1.terminalIf;case"while":return i$1.terminalWhile;case"set":return i$1.terminalSet;case"begin":return i$1.terminalBegin;case"print":return i$1.terminalPrint;case"cond":return i$1.terminalCond;case"let":return i$1.terminalLet;case"let*":return i$1.terminalLetStar;case"random":return i$1.terminalRandom;case"pow":return i$1.terminalPow;case"exp":return i$1.terminalExp;case"ln":return i$1.terminalLn;case"sin":return i$1.terminalSin;case"cos":return i$1.terminalCos;case"tan":return i$1.terminalTan;default:return i$1.terminalID}default:throw new r$1(`GrammarBase.tokenToSymbol() : No grammar symbol matches token ${t.tokenType} ${o[t.tokenType]} (value '${t.tokenValue}')`,t.line,t.column)}}pushTokenOntoSemanticStack(t,n,e){switch(n){case i$1.terminalID:case i$1.terminalPrint:case i$1.terminalPlus:case i$1.terminalMinus:case i$1.terminalMultiply:case i$1.terminalDivide:case i$1.terminalEquals:case i$1.terminalLessThan:case i$1.terminalGreaterThan:case i$1.terminalLet:case i$1.terminalLetStar:case i$1.terminalRandom:case i$1.terminalPow:case i$1.terminalExp:case i$1.terminalLn:case i$1.terminalSin:case i$1.terminalCos:case i$1.terminalTan:case i$1.terminalThrow:t.push(new s(e.tokenValue,e.line,e.column));break;case i$1.terminalLeftBracket:case i$1.terminalRightBracket:case i$1.terminalBegin:case i$1.terminalCond:case i$1.terminalDefine:case i$1.terminalIf:case i$1.terminalSet:case i$1.terminalWhile:case i$1.terminalEOF:break;default:throw new r$1(`pushTokenOntoSemanticStack() : Unexpected tokenAsSymbol ${i$1[n]} (${n})`,e.line,e.column)}}findStartingProduction(){const t=[];for(const n of this.productions)if(n.lhs===this.startSymbol){const e=n.stripOutSemanticActions();if(e.rhs.length>0){e.rhs[e.rhs.length-1]===i$1.terminalEOF&&t.push(e);}}if(1!==t.length)throw new r$1(`GrammarBase.FindStartingProduction() : Expected one starting production; found ${t.length}.`);return t[0]}addProduction(t,n,e=NaN){this.productions.push(h(t,n,Number.isNaN(e)?this.productions.length+1:e));for(const e of [t,...n])"number"==typeof e&&(p(e)&&this.terminals.indexOf(e)<0&&this.terminals.push(e),k(e)&&this.nonTerminals.indexOf(e)<0&&this.nonTerminals.push(e));}} class KeyNotFoundException extends t$1 { constructor(message, line = 0, column = 0) { super('KeyNotFoundException', message, line, column); } } class EnvironmentFrame { constructor(next) { this.dict = new Map(); this.next = next; this.frameNumber = typeof next !== 'undefined' ? next.frameNumber + 1 : 0; } isDefined(key) { return (this.dictionaryContainsKey(key) || (typeof this.next !== 'undefined' && this.next.isDefined(key))); } has(key) { return (this.dictionaryContainsKey(key) || (typeof this.next !== 'undefined' && this.next.has(key))); } lookup(key) { if (this.dictionaryContainsKey(key)) { const lookupResult = this.dict.get(key.name); if (typeof lookupResult === 'undefined') { throw new Error(`EnvironmentFrame<T>.lookup('${key.name}') : Value was found but is undefined.`); } return lookupResult; } if (typeof this.next !== 'undefined') { return this.next.lookup(key); } throw new KeyNotFoundException(`EnvironmentFrame<T>.lookup() : No value found for variable ${key.name}.`); } setInThisFrame(key, value) { this.dict.set(key.name, value); } add(key, value) { this.setInThisFrame(key, value); } addBubbleDown(key, value) { if (!this.dictionaryContainsKey(key) && typeof this.next !== 'undefined') { this.next.addBubbleDown(key, value); } else { this.add(key, value); } } findSetAndReturnBoolean(key, value) { if (this.dictionaryContainsKey(key)) { this.dict.set(key.name, value); return true; } else if (typeof this.next !== 'undefined') { return this.next.findSetAndReturnBoolean(key, value); } else { return false; } } findAndSet(key, value) { if (!this.findSetAndReturnBoolean(key, value)) { throw new KeyNotFoundException(`EnvironmentFrame<T>.findAndSet() : No value found for variable ${key.name}.`); } return value; } upsert(key, value) { if (!this.findSetAndReturnBoolean(key, value)) { this.setInThisFrame(key, value); } return value; } compose(keys, values) { if (keys.length !== values.length) { throw new n$2('EnvironmentFrame<T>.compose() : The keys list and the values list have different lengths.', 'keys, values'); } for (let i = 0; i < keys.length; i++) { this.add(keys[i], values[i]); } } stackDump() { console.log(`**** Environment Frame ${this.frameNumber} ****\n`); for (const [key, value] of this.dict.entries()) { console.log(` ${key} = ${value}`); } console.log('\n'); if (typeof this.next !== 'undefined') { this.next.stackDump(); } } dictionaryContainsKey(key) { return this.dict.has(key.name); } } class GlobalInfoBase { constructor(options = {}) { this.globalEnvironment = new EnvironmentFrame(); this.functionDefinitions = new Map(); this.macroDefinitions = new Map(); this.dynamicScoping = false; this.debug = false; this.printedText = ''; this.tokenizer = options.tokenizer; this.parser = options.parser; } initialize() { this.globalEnvironment.dict.clear(); this.functionDefinitions.clear(); this.macroDefinitions.clear(); this.setScoping(false); this.setDebug(false); this.clearPrintedText(); if (typeof this.tokenizer !== 'undefined' && typeof this.parser !== 'undefined') { this.loadPresets(); } } booleanAsValue(value) { return value ? this.trueValue : this.falseValue; } loadPreset(presetName) { throw new n$2(`GlobalInfoBase<T>.loadPreset() : Unknown preset name '${presetName}'.`, 'presetName'); } loadPresets() { } setScoping(dynamicScoping) { this.dynamicScoping = dynamicScoping; } setDebug(debug) { this.debug = debug; } clearPrintedText() { this.printedText = ''; } print(evaluatedArguments) { this.printedText = this.printedText + evaluatedArguments.map((evaluatedArgument) => `${evaluatedArgument}`).join(', ') + '\n'; } printDirect(str) { this.printedText = this.printedText + str + '\n'; } getPrintedText() { return this.printedText; } evaluate(str) { if (typeof this.tokenizer === 'undefined') { throw new Error('GlobalInfoBase.evaluate() : this.tokenizer is undefined.'); } else if (typeof this.parser === 'undefined') { throw new Error('GlobalInfoBase.evaluate() : this.parser is undefined.'); } const parseResult = this.parser.parse(this.tokenizer.tokenize(str)); const expr = parseResult; return expr.evaluate(this, this.globalEnvironment); } evaluateToString(str) { return `${this.evaluate(str)}`; } } function n$1(t){return void 0!==t&&"function"==typeof t.equals}function S(t,n){return void 0!==t?t:n}const B=(t,n)=>t*n;function F(...t){return nt(t).reduce(B,1)}const J=F;function V(t){return [...Array(t).keys()]}function G(t,n){return V(n-t+1).map((n=>t+n))}function L(t){return G(1,t)}function nt(t){return t.filter((t=>"number"==typeof t)).map((t=>t)).filter((t=>!Number.isNaN(t)))}function Xt(t){if(n$1(t)){const n=t;return t=>n.equals(t)}return n=>n===t}class Zt{constructor(t){if(this.items=[],void 0!==t)for(const n of t)this.protectedAdd(n);}[Symbol.iterator](){return this.items[Symbol.iterator]()}equals(t){const n=t;return void 0!==n&&void 0!==n.items&&n.items.length===this.items.length&&this.items.every(((t,e)=>Xt(t)(n.items[e])))}toString(){return `[${this.items.join(", ")}]`}get size(){return this.items.length}toArray(){return [...this]}isEmpty(){return 0===this.size}clear(){this.items=[];}contains(t){const n=Xt(t);return void 0!==this.items.find(n)}add(t){return this.protectedAdd(t)}find(t){for(const n of this)if(t(n))return n}some(t){for(const n of this)if(t(n))return !0;return !1}every(t){for(const n of this)if(!t(n))return !1;return !0}}this&&this.__awaiter||function(t,n,e,r){return new(e||(e=Promise))((function(i,o){function u(t){try{c(r.next(t));}catch(t){o(t);}}function s(t){try{c(r.throw(t));}catch(t){o(t);}}function c(t){var n;t.done?i(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n);}))).then(u,s);}c((r=r.apply(t,n||[])).next());}))};function xe(t){return void 0!==t&&"ThawSet"===t.typename}class Ee extends Zt{constructor(){super(...arguments),this.typename="ThawSet";}equals(t){const n=t;return xe(n)&&this.isASubsetOf(n)&&n.isASubsetOf(this)}clone(){return He(this)}add(t){return this.protectedAdd(t)}remove(t){const n=this.size,e=Xt(t);return this.items=this.items.filter((t=>!e(t))),this.size<n}isASubsetOf(t){return this.items.every((n=>t.contains(n)))}intersection(t){return He(this.items.filter((n=>t.contains(n))))}intersectionInPlace(t){this.items=this.items.filter((n=>t.contains(n)));}union(t){return He(this.items.concat(...t))}unionInPlace(t){for(const n of t)this.add(n);}getAllSubsets(){const t=[];return this.getAllSubsetsHelper(t),t}protectedAdd(t){return !this.contains(t)&&(this.items.push(t),!0)}getAllSubsetsHelper(t,n=[],e=0){e>=this.items.length?t.push(He(n)):(n.push(this.items[e]),this.getAllSubsetsHelper(t,n,e+1),n.pop(),this.getAllSubsetsHelper(t,n,e+1));}}function He(t){return new Ee(t)} const typenameVariableT = 'Variable<T>'; function isVariableT(obj) { const otherVariable = obj; return typeof otherVariable !== 'undefined' && otherVariable.typename === typenameVariableT; } class Variable { constructor(name, line = 0, column = 0) { this.name = name; this.line = line; this.column = column; this.typename = typenameVariableT; if (!this.name) { throw new n$2('A Variable cannot have an empty name', 'name'); } } toString() { return this.name; } evaluate(globalInfo, localEnvironment, options) { if (this.name === 'stackdump') { if (typeof localEnvironment === 'undefined') { console.log('Variable<T>.evaluate() : On stackdump: localEnvironment is undefined.'); } S(localEnvironment, globalInfo.globalEnvironment).stackDump(); return globalInfo.trueValue; } return S(localEnvironment, globalInfo.globalEnvironment).lookup(this); } } var n,t,e,r,i;!function(n){n[n.UndefinedSymbol=0]="UndefinedSymbol",n[n.Lambda=1]="Lambda",n[n.Dot=2]="Dot",n[n.terminalBegin=3]="terminalBegin",n[n.terminalEnd=4]="terminalEnd",n[n.terminalAssign=5]="terminalAssign",n[n.terminalSemicolon=6]="terminalSemicolon",n[n.terminalRead=7]="terminalRead",n[n.terminalWrite=8]="terminalWrite",n[n.terminalLeftBracket=9]="terminalLeftBracket",n[n.terminalRightBracket=10]="terminalRightBracket",n[n.terminalLeftSquareBracket=11]="terminalLeftSquareBracket",n[n.terminalRightSquareBracket=12]="terminalRightSquareBracket",n[n.terminalOrBar=13]="terminalOrBar",n[n.terminalComma=14]="terminalComma",n[n.terminalID=15]="terminalID",n[n.terminalVariable=16]="terminalVariable",n[n.terminalIntegerLiteral=17]="terminalIntegerLiteral",n[n.terminalFloatLiteral=18]="terminalFloatLiteral",n[n.terminalStringLiteral=19]="terminalStringLiteral",n[n.terminalPlus=20]="terminalPlus",n[n.terminalMinus=21]="terminalMinus",n[n.terminalCond=22]="terminalCond",n[n.terminalLet=23]="terminalLet",n[n.terminalLetStar=24]="terminalLetStar",n[n.terminalDefine=25]="terminalDefine",n[n.terminalIf=26]="terminalIf",n[n.terminalWhile=27]="terminalWhile",n[n.terminalSet=28]="terminalSet",n[n.terminalMultiply=29]="terminalMultiply",n[n.terminalDivide=30]="terminalDivide",n[n.terminalEquals=31]="terminalEquals",n[n.terminalLessThan=32]="terminalLessThan",n[n.terminalGreaterThan=33]="terminalGreaterThan",n[n.terminalPrint=34]="terminalPrint",n[n.terminalCons=35]="terminalCons",n[n.terminalCar=36]="terminalCar",n[n.terminalCdr=37]="terminalCdr",n[n.terminalNumberPred=38]="terminalNumberPred",n[n.terminalSymbolPred=39]="terminalSymbolPred",n[n.terminalListPred=40]="terminalListPred",n[n.terminalNullPred=41]="terminalNullPred",n[n.terminalStringPred=42]="terminalStringPred",n[n.terminalApostrophe=43]="terminalApostrophe",n[n.terminalDot=44]="terminalDot",n[n.terminalList=45]="terminalList",n[n.terminalRplaca=46]="terminalRplaca",n[n.terminalRplacd=47]="terminalRplacd",n[n.terminalDefineMacro=48]="terminalDefineMacro",n[n.terminalQuoteKeyword=49]="terminalQuoteKeyword",n[n.terminalRandom=50]="terminalRandom",n[n.terminalToString=51]="terminalToString",n[n.terminalListToString=52]="terminalListToString",n[n.terminalStringToList=53]="terminalStringToList",n[n.terminalStringToSymbol=54]="terminalStringToSymbol",n[n.terminalSin=55]="terminalSin",n[n.terminalCos=56]="terminalCos",n[n.terminalTan=57]="terminalTan",n[n.terminalPow=58]="terminalPow",n[n.terminalExp=59]="terminalExp",n[n.terminalLn=60]="terminalLn",n[n.terminalFloor=61]="terminalFloor",n[n.terminalAtan2=62]="terminalAtan2",n[n.terminalThrow=63]="terminalThrow",n[n.terminalStringLessThan=64]="terminalStringLessThan",n[n.terminalPrimOpPred=65]="terminalPrimOpPred",n[n.terminalClosurePred=66]="terminalClosurePred",n[n.terminalLambdaKeyword=67]="terminalLambdaKeyword",n[n.terminalLetRec=68]="terminalLetRec",n[n.terminalCallCC=69]="terminalCallCC",n[n.terminalNameBeginningWithCapital=70]="terminalNameBeginningWithCapital",n[n.terminalNameNotBeginningWithCapital=71]="terminalNameNotBeginningWithCapital",n[n.terminalFrom=72]="terminalFrom",n[n.terminalInferPred=73]="terminalInferPred",n[n.terminalNotSymbol=74]="terminalNotSymbol",n[n.terminalIs=75]="terminalIs",n[n.terminalLessOrEqual=76]="terminalLessOrEqual",n[n.terminalGreaterOrEqual=77]="terminalGreaterOrEqual",n[n.terminalNotEqual=78]="terminalNotEqual",n[n.terminalArithmeticEqual=79]="terminalArithmeticEqual",n[n.terminalArithmeticNotEqual=80]="terminalArithmeticNotEqual",n[n.terminalUnifiable=81]="terminalUnifiable",n[n.terminalNotUnifiable=82]="terminalNotUnifiable",n[n.terminalIfThen=83]="terminalIfThen",n[n.terminalColon=84]="terminalColon",n[n.terminalDCGArrow=85]="terminalDCGArrow",n[n.terminalUniv=86]="terminalUniv",n[n.terminalCaret=87]="terminalCaret",n[n.terminalFn=88]="terminalFn",n[n.terminalThickArrow=89]="terminalThickArrow",n[n.terminalIn=90]="terminalIn",n[n.terminalTrue=91]="terminalTrue",n[n.terminalFalse=92]="terminalFalse",n[n.terminalComb=93]="terminalComb",n[n.terminalInc=94]="terminalInc",n[n.terminalDec=95]="terminalDec",n[n.terminalAnd=96]="terminalAnd",n[n.terminalOr=97]="terminalOr",n[n.terminalIsZero=98]="terminalIsZero",n[n.terminalNil=99]="terminalNil",n[n.terminalOctothorpe=100]="terminalOctothorpe",n[n.terminalDollar=101]="terminalDollar",n[n.terminalClass=102]="terminalClass",n[n.terminalObjectPred=103]="terminalObjectPred",n[n.terminalStrlen=104]="terminalStrlen",n[n.terminalSubstr=105]="terminalSubstr",n[n.terminalTypename=106]="terminalTypename",n[n.terminalStrcat=107]="terminalStrcat",n[n.terminalNewArray=108]="terminalNewArray",n[n.terminalArrayLength=109]="terminalArrayLength",n[n.terminalArrayGet=110]="terminalArrayGet",n[n.terminalArraySet=111]="terminalArraySet",n[n.terminalArrayPred=112]="terminalArrayPred",n[n.terminalCharPred=113]="terminalCharPred",n[n.terminalStringIndex=114]="terminalStringIndex",n[n.terminalVectorConst=115]="terminalVectorConst",n[n.terminalMax=116]="terminalMax",n[n.terminalPlusSlash=117]="terminalPlusSlash",n[n.terminalMinusSlash=118]="terminalMinusSlash",n[n.terminalMultiplySlash=119]="terminalMultiplySlash",n[n.terminalDivideSlash=120]="terminalDivideSlash",n[n.terminalMaxSlash=121]="terminalMaxSlash",n[n.terminalOrSlash=122]="terminalOrSlash",n[n.terminalAndSlash=123]="terminalAndSlash",n[n.terminalCompress=124]="terminalCompress",n[n.terminalShape=125]="terminalShape",n[n.terminalRavel=126]="terminalRavel",n[n.terminalRestruct=127]="terminalRestruct",n[n.terminalCat=128]="terminalCat",n[n.terminalIndx=129]="terminalIndx",n[n.terminalTrans=130]="terminalTrans",n[n.terminalSquareBrackets=131]="terminalSquareBrackets",n[n.terminalDoubleSubscripting=132]="terminalDoubleSubscripting",n[n.terminalCluster=133]="terminalCluster",n[n.terminalRep=134]="terminalRep",n[n.terminalExport=135]="terminalExport",n[n.terminalThen=136]="terminalThen",n[n.terminalElse=137]="terminalElse",n[n.terminalCall=138]="terminalCall",n[n.terminalTypeBoolean=139]="terminalTypeBoolean",n[n.terminalTypeByte=140]="terminalTypeByte",n[n.terminalTypeClosure=141]="terminalTypeClosure",n[n.terminalTypeInteger=142]="terminalTypeInteger",n[n.terminalTypeFloatingPoint=143]="terminalTypeFloatingPoint",n[n.terminalTypeList=144]="terminalTypeList",n[n.terminalTypeMap=145]="terminalTypeMap",n[n.terminalTypeString=146]="terminalTypeString",n[n.terminalModulus=147]="terminalModulus",n[n.terminalMapGet=148]="terminalMapGet",n[n.terminalMapSet=149]="terminalMapSet",n[n.terminalAsync=150]="terminalAsync",n[n.terminalPlusEqual=151]="terminalPlusEqual",n[n.terminalMinusEqual=152]="terminalMinusEqual",n[n.terminalMultiplyEqual=153]="terminalMultiplyEqual",n[n.terminalDivideEqual=154]="terminalDivideEqual",n[n.terminalModulusEqual=155]="terminalModulusEqual",n[n.terminalLeftCurlyBrace=156]="terminalLeftCurlyBrace",n[n.terminalRightCurlyBrace=157]="terminalRightCurlyBrace",n[n.terminalDo=158]="terminalDo",n[n.terminalForEach=159]="terminalForEach",n[n.terminalDeclare=160]="terminalDeclare",n[n.terminalBooleanPred=161]="terminalBooleanPred",n[n.terminalMapPred=162]="terminalMapPred",n[n.terminalPairPred=163]="terminalPairPred",n[n.terminalLogicalNot=164]="terminalLogicalNot",n[n.terminalBitwiseAnd=165]="terminalBitwiseAnd",n[n.terminalBitwiseOr=166]="terminalBitwiseOr",n[n.terminalBitwiseXor=167]="terminalBitwiseXor",n[n.terminalBitwiseNot=168]="terminalBitwiseNot",n[n.terminalBitwiseShiftLeft=169]="terminalBitwiseShiftLeft",n[n.terminalBitwiseShiftRight=170]="terminalBitwiseShiftRight",n[n.terminalBitwiseAndEqual=171]="terminalBitwiseAndEqual",n[n.terminalBitwiseOrEqual=172]="terminalBitwiseOrEqual",n[n.terminalBitwiseXorEqual=173]="terminalBitwiseXorEqual",n[n.terminalBitwiseShiftLeftEqual=174]="terminalBitwiseShiftLeftEqual",n[n.terminalBitwiseShiftRightEqual=175]="terminalBitwiseShiftRightEqual",n[n.terminalIncrement=176]="terminalIncrement",n[n.terminalDecrement=177]="terminalDecrement",n[n.terminalQuestionMark=178]="terminalQuestionMark",n[n.terminalColonColon=179]="terminalColonColon",n[n.terminalEOF=180]="terminalEOF",n[n.nonterminalStart=181]="nonterminalStart",n[n.nonterminalProgram=182]="nonterminalProgram",n[n.nonterminalStatementList=183]="nonterminalStatementList",n[n.nonterminalStatementTail=184]="nonterminalStatementTail",n[n.nonterminalStatement=185]="nonterminalStatement",n[n.nonterminalIDList=186]="nonterminalIDList",n[n.nonterminalIDTail=187]="nonterminalIDTail",n[n.nonterminalExprList=188]="nonterminalExprList",n[n.nonterminalExprTail=189]="nonterminalExprTail",n[n.nonterminalExpression=190]="nonterminalExpression",n[n.nonterminalTerm=191]="nonterminalTerm",n[n.nonterminalPrimaryTail=192]="nonterminalPrimaryTail",n[n.nonterminalPrimary=193]="nonterminalPrimary",n[n.nonterminalAddOp=194]="nonterminalAddOp",n[n.nonterminalBracketedEntity=195]="nonterminalBracketedEntity",n[n.nonterminalInput=196]="nonterminalInput",n[n.nonterminalFunDef=197]="nonterminalFunDef",n[n.nonterminalFunction=198]="nonterminalFunction",n[n.nonterminalArgList=199]="nonterminalArgList",n[n.nonterminalVariableList=200]="nonterminalVariableList",n[n.nonterminalVariable=201]="nonterminalVariable",n[n.nonterminalValue=202]="nonterminalValue",n[n.nonterminalBracketedExpression=203]="nonterminalBracketedExpression",n[n.nonterminalExpressionList=204]="nonterminalExpressionList",n[n.nonterminalOptr=205]="nonterminalOptr",n[n.nonterminalValueOp=206]="nonterminalValueOp",n[n.nonterminalQuotedConst=207]="nonterminalQuotedConst",n[n.nonterminalSExpression=208]="nonterminalSExpression",n[n.nonterminalSExpressionList=209]="nonterminalSExpressionList",n[n.nonterminalSymbol=210]="nonterminalSymbol",n[n.nonterminalMacroDef=211]="nonterminalMacroDef",n[n.nonterminalExprPairList=212]="nonterminalExprPairList",n[n.nonterminalLetKeyword=213]="nonterminalLetKeyword",n[n.nonterminalVarExprList=214]="nonterminalVarExprList",n[n.nonterminalBracketedInput=215]="nonterminalBracketedInput",n[n.nonterminalUnbracketedInput=216]="nonterminalUnbracketedInput",n[n.nonterminalSExpressionListTail=217]="nonterminalSExpressionListTail",n[n.nonterminalClause=218]="nonterminalClause",n[n.nonterminalQuery=219]="nonterminalQuery",n[n.nonterminalGoal=220]="nonterminalGoal",n[n.nonterminalClauseTail=221]="nonterminalClauseTail",n[n.nonterminalGoalList=222]="nonterminalGoalList",n[n.nonterminalGoalListTail=223]="nonterminalGoalListTail",n[n.nonterminalList=224]="nonterminalList",n[n.nonterminalListContents=225]="nonterminalListContents",n[n.nonterminalListContentsTail=226]="nonterminalListContentsTail",n[n.nonterminalFunctorExpression=227]="nonterminalFunctorExpression",n[n.nonterminalTailOfGoalOrFunctorExpression=228]="nonterminalTailOfGoalOrFunctorExpression",n[n.nonterminalExpressionListTail=229]="nonterminalExpressionListTail",n[n.nonterminalGoalTail1=230]="nonterminalGoalTail1",n[n.nonterminalVariableOrNumericLiteral=231]="nonterminalVariableOrNumericLiteral",n[n.nonterminalLambdaExpression=232]="nonterminalLambdaExpression",n[n.nonterminalLetStatement=233]="nonterminalLetStatement",n[n.nonterminalFunctionCall=234]="nonterminalFunctionCall",n[n.nonterminalAfterVariable=235]="nonterminalAfterVariable",n[n.nonterminalClassDef=236]="nonterminalClassDef",n[n.nonterminalClass=237]="nonterminalClass",n[n.nonterminalInstVars=238]="nonterminalInstVars",n[n.nonterminalMethodDef=239]="nonterminalMethodDef",n[n.nonterminalMethodDefList=240]="nonterminalMethodDefList",n[n.nonterminalLiteralList=241]="nonterminalLiteralList",n[n.nonterminalVectorConst=242]="nonterminalVectorConst",n[n.nonterminalIntegerLiteralList=243]="nonterminalIntegerLiteralList",n[n.nonterminalClusterDef=244]="nonterminalClusterDef",n[n.nonterminalRep=245]="nonterminalRep",n[n.nonterminalFunDefList=246]="nonterminalFunDefList",n[n.nonterminalOnePartName=247]="nonterminalOnePartName",n[n.nonterminalOnePartNameTail=248]="nonterminalOnePartNameTail",n[n.nonterminalExportList=249]="nonterminalExportList",n[n.nonterminalOnePartNameList=250]="nonterminalOnePartNameList",n[n.nonterminalArithmeticExpression=251]="nonterminalArithmeticExpression",n[n.nonterminalArithmeticExpression0=252]="nonterminalArithmeticExpression0",n[n.nonterminalArithmeticExpression1=253]="nonterminalArithmeticExpression1",n[n.nonterminalArithmeticExpression2=254]="nonterminalArithmeticExpression2",n[n.nonterminalArithmeticExpression3=255]="nonterminalArithmeticExpression3",n[n.nonterminalArithmeticExpression4=256]="nonterminalArithmeticExpression4",n[n.nonterminalArithmeticExpression5=257]="nonterminalArithmeticExpression5",n[n.nonterminalArithmeticExpression6=258]="nonterminalArithmeticExpression6",n[n.nonterminalArithmeticExpression7=259]="nonterminalArithmeticExpression7",n[n.nonterminalArithmeticExpression8=260]="nonterminalArithmeticExpression8",n[n.nonterminalArithmeticExpression9=261]="nonterminalArithmeticExpression9",n[n.nonterminalArithmeticExpression10=262]="nonterminalArithmeticExpression10",n[n.nonterminalArithmeticExpression11=263]="nonterminalArithmeticExpression11",n[n.nonterminalArithmeticExpression12=264]="nonterminalArithmeticExpression12",n[n.nonterminalArithmeticExpression13=265]="nonterminalArithmeticExpression13",n[n.nonterminalArithmeticExpression14=266]="nonterminalArithmeticExpression14",n[n.nonterminalArithmeticExpression15=267]="nonterminalArithmeticExpression15",n[n.nonterminalArithmeticOperator=268]="nonterminalArithmeticOperator",n[n.nonterminalArithmeticOperator1=269]="nonterminalArithmeticOperator1",n[n.nonterminalArithmeticOperator2=270]="nonterminalArithmeticOperator2",n[n.nonterminalArithmeticOperator3=271]="nonterminalArithmeticOperator3",n[n.nonterminalArithmeticOperator4=272]="nonterminalArithmeticOperator4",n[n.nonterminalArithmeticOperator5=273]="nonterminalArithmeticOperator5",n[n.nonterminalArithmeticOperator6=274]="nonterminalArithmeticOperator6",n[n.nonterminalArithmeticOperator7=275]="nonterminalArithmeticOperator7",n[n.nonterminalArithmeticOperator8=276]="nonterminalArithmeticOperator8",n[n.nonterminalArithmeticOperator9=277]="nonterminalArithmeticOperator9",n[n.nonterminalArithmeticOperator10=278]="nonterminalArithmeticOperator10",n[n.nonterminalArithmeticOperator11=279]="nonterminalArithmeticOperator11",n[n.nonterminalArithmeticOperator12=280]="nonterminalArithmeticOperator12",n[n.nonterminalArithmeticOperator13=281]="nonterminalArithmeticOperator13",n[n.nonterminalArithmeticOperator14=282]="nonterminalArithmeticOperator14",n[n.nonterminalArithmeticOperator15=283]="nonterminalArithmeticOperator15",n[n.nonterminalArithmeticComparisonOperator=284]="nonterminalArithmeticComparisonOperator",n[n.nonterminalActualParameterList=285]="nonterminalActualParameterList",n[n.nonterminalFormalParameterList=286]="nonterminalFormalParameterList",n[n.nonterminalCommaSeparatedVariableList=287]="nonterminalCommaSeparatedVariableList",n[n.nonterminalCommaSeparatedExpressionList=288]="nonterminalCommaSeparatedExpressionList",n[n.nonterminalTypeName=289]="nonterminalTypeName",n[n.nonterminalTypeExpression=290]="nonterminalTypeExpression",n[n.nonterminalTypeParameterized=291]="nonterminalTypeParameterized",n[n.nonterminalOptionalElseBlock=292]="nonterminalOptionalElseBlock",n[n.nonterminalNonEmptyExpressionList=293]="nonterminalNonEmptyExpressionList",n[n.nonterminalLValue=294]="nonterminalLValue",n[n.nonterminalAssignmentOperator=295]="nonterminalAssignmentOperator",n[n.nonterminalBlock=296]="nonterminalBlock",n[n.nonterminalDecl