UNPKG

thaw-grammar

Version:

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

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