diff --git a/src/generator/writers/writeFunction.ts b/src/generator/writers/writeFunction.ts index fa00be1da..07adb0426 100644 --- a/src/generator/writers/writeFunction.ts +++ b/src/generator/writers/writeFunction.ts @@ -83,6 +83,9 @@ export function writeStatement( } } return; + } else if (f.kind === "statement_break") { + ctx.append(`break ;`); + return; } else if (f.kind === "statement_let") { // Contract/struct case const t = resolveTypeRef(ctx.ctx, f.type); diff --git a/src/grammar/ast.ts b/src/grammar/ast.ts index 89c3a3c1b..c046bb86f 100644 --- a/src/grammar/ast.ts +++ b/src/grammar/ast.ts @@ -473,6 +473,13 @@ export type ASTStatementRepeat = { ref: ASTRef; }; +export type ASTStatementBreak = { + kind: "statement_break"; + id: number; + ref: ASTRef; +}; + +// // // Unions // @@ -486,7 +493,8 @@ export type ASTStatement = | ASTCondition | ASTStatementWhile | ASTStatementUntil - | ASTStatementRepeat; + | ASTStatementRepeat + | ASTStatementBreak; export type ASTNode = | ASTExpression | ASTStruct @@ -513,6 +521,7 @@ export type ASTNode = | ASTStatementWhile | ASTStatementUntil | ASTStatementRepeat + | ASTStatementBreak | ASTReceive | ASTLvalueRef | ASTString diff --git a/src/grammar/grammar.ohm b/src/grammar/grammar.ohm index b23de569e..6034de2c3 100644 --- a/src/grammar/grammar.ohm +++ b/src/grammar/grammar.ohm @@ -97,10 +97,12 @@ Tact { | StatementWhile | StatementRepeat | StatementUntil + | StatementBreak StatementBlock = "{" Statement* "}" StatementLet = let id ":" Type "=" Expression ";" StatementReturn = return Expression ";" --withExpression - | return ";" --withoutExpression + | return ";" --withoutExpression + StatementBreak = break ";" StatementExpression = Expression ";" StatementAssign = LValue "=" Expression ";" StatementAugmentedAssign = StatementAugmentedAssignAdd @@ -234,6 +236,7 @@ Tact { keyword = fun | let | return + | break | extend | native | public @@ -260,6 +263,7 @@ Tact { let = "let" ~idPart fun = "fun" ~idPart return = "return" ~idPart + break = "break" ~idPart extend = "extend" ~idPart native = "native" ~idPart public = "public" ~idPart diff --git a/src/grammar/grammar.ohm-bundle.d.ts b/src/grammar/grammar.ohm-bundle.d.ts index 88e11d45d..22eaf3bf5 100644 --- a/src/grammar/grammar.ohm-bundle.d.ts +++ b/src/grammar/grammar.ohm-bundle.d.ts @@ -81,6 +81,7 @@ export interface TactActionDict extends ActionDict { StatementReturn_withExpression?: (this: NonterminalNode, arg0: NonterminalNode, arg1: NonterminalNode, arg2: TerminalNode) => T; StatementReturn_withoutExpression?: (this: NonterminalNode, arg0: NonterminalNode, arg1: TerminalNode) => T; StatementReturn?: (this: NonterminalNode, arg0: NonterminalNode) => T; + StatementBreak?: (this: NonterminalNode, arg0: NonterminalNode, arg1: TerminalNode) => T; StatementExpression?: (this: NonterminalNode, arg0: NonterminalNode, arg1: TerminalNode) => T; StatementAssign?: (this: NonterminalNode, arg0: NonterminalNode, arg1: TerminalNode, arg2: NonterminalNode, arg3: TerminalNode) => T; StatementAugmentedAssign?: (this: NonterminalNode, arg0: NonterminalNode) => T; @@ -181,6 +182,7 @@ export interface TactActionDict extends ActionDict { let?: (this: NonterminalNode, arg0: TerminalNode) => T; fun?: (this: NonterminalNode, arg0: TerminalNode) => T; return?: (this: NonterminalNode, arg0: TerminalNode) => T; + break?: (this: NonterminalNode, arg0: TerminalNode) => T; extend?: (this: NonterminalNode, arg0: TerminalNode) => T; native?: (this: NonterminalNode, arg0: TerminalNode) => T; public?: (this: NonterminalNode, arg0: TerminalNode) => T; diff --git a/src/grammar/grammar.ohm-bundle.js b/src/grammar/grammar.ohm-bundle.js index 0d8c58e5f..523b36dd6 100644 --- a/src/grammar/grammar.ohm-bundle.js +++ b/src/grammar/grammar.ohm-bundle.js @@ -1 +1 @@ -'use strict';const ohm=(require('ohm-js').default || require('ohm-js'));const result=ohm.makeRecipe(["grammar",{"source":"Tact {\n\n // Starting point of the program\n Program = ProgramItem*\n ProgramItem = Struct\n | Contract\n | Primitive\n | StaticFunction\n | NativeFunction\n | ProgramImport\n | Trait\n | Constant\n ProgramImport = import stringLiteral \";\"\n\n // Built-in declarations\n Primitive = \"primitive\" Type \";\"\n\n // Static function\n StaticFunction = Function\n NativeFunction = nameAttribute \"(\" funcId \")\" FunctionAttribute* native id \"(\" ListOf \",\"? \")\" \";\" --withVoid\n | nameAttribute \"(\" funcId \")\" FunctionAttribute* native id \"(\" ListOf \",\"? \")\" \":\" Type \";\" --withType\n \n // Field declarations\n Type = typeLiteral \"?\" --optional\n | typeLiteral --required\n | \"map\" \"<\" typeLiteral (as id)? \",\" typeLiteral (as id)? \">\" --map\n | \"bounced\" \"<\" typeLiteral \">\" --bounced\n Field = id \":\" Type \";\" --default\n | id \":\" Type \"=\" Expression \";\" --defaultWithInit\n | id \":\" Type as id \";\" --withSerialization\n | id \":\" Type as id \"=\" Expression \";\" --withSerializationAndInit\n \n // Constant\n ConstantAttribute = virtual --virtual\n | override --override\n | abstract --abstract\n Constant = ConstantAttribute* ~fun const id \":\" Type \"=\" Expression \";\" --withValue\n | ConstantAttribute* ~fun const id \":\" Type \";\" --withEmpty\n\n // Struct\n Struct = \"struct\" typeLiteral \"{\" StructBody* \"}\" --originary\n | \"message\" typeLiteral \"{\" StructBody* \"}\" --message\n | \"message\" \"(\" integerLiteral \")\" typeLiteral \"{\" StructBody* \"}\" --messageWithId\n StructBody = Field\n\n // Contract\n Contract = ContractAttribute* contract id \"{\" ContractBody* \"}\" --simple\n | ContractAttribute* contract id with ListOf \"{\" ContractBody* \"}\" --withTraits\n ContractInit = \"init\" \"(\" ListOf \")\" \"{\" Statement* \"}\"\n ContractBody = Field\n | ContractInit\n | ReceiveFunction\n | Function\n | Constant\n \n // Trait\n Trait = ContractAttribute* trait id \"{\" TraitBody* \"}\" --originary\n | ContractAttribute* trait id with ListOf \"{\" TraitBody* \"}\" --withTraits\n TraitBody = Field\n | ReceiveFunction\n | Function\n | Constant\n\n // Contract attributes\n ContractAttribute = \"@interface\" \"(\" stringLiteral \")\" --interface\n\n // Function\n FunctionAttribute = \"get\" --getter\n | mutates --mutates\n | extends --extends\n | virtual --virtual\n | override --override\n | inline --inline\n | abstract --abstract\n Function = FunctionAttribute* fun id \"(\" ListOf \",\"? \")\" \"{\" Statement* \"}\" --withVoid\n | FunctionAttribute* fun id \"(\" ListOf \",\"? \")\" \":\" Type \"{\" Statement* \"}\" --withType\n | FunctionAttribute* fun id \"(\" ListOf \",\"? \")\" \";\" --abstractVoid\n | FunctionAttribute* fun id \"(\" ListOf \",\"? \")\" \":\" Type \";\" --abstractType\n FunctionArg = id \":\" Type\n \n ReceiveFunction = \"receive\" \"(\" FunctionArg \")\" \"{\" Statement* \"}\" --simple\n | \"receive\" \"(\" \")\" \"{\" Statement* \"}\" --empty\n | \"receive\" \"(\" stringLiteral \")\" \"{\" Statement* \"}\" --comment\n | \"bounced\" \"(\" FunctionArg \")\" \"{\" Statement* \"}\" --bounced\n | \"external\" \"(\" FunctionArg \")\" \"{\" Statement* \"}\" --externalSimple\n | \"external\" \"(\" stringLiteral \")\" \"{\" Statement* \"}\" --externalComment\n | \"external\" \"(\" \")\" \"{\" Statement* \"}\" --externalEmpty\n\n // Statements\n Statement = StatementLet\n | StatementBlock\n | StatementReturn\n | StatementExpression\n | StatementAssign\n | StatementAugmentedAssign\n | StatementCondition\n | StatementWhile\n | StatementRepeat\n | StatementUntil\n StatementBlock = \"{\" Statement* \"}\"\n StatementLet = let id \":\" Type \"=\" Expression \";\"\n StatementReturn = return Expression \";\" --withExpression\n | return \";\" --withoutExpression \n StatementExpression = Expression \";\"\n StatementAssign = LValue \"=\" Expression \";\"\n StatementAugmentedAssign = StatementAugmentedAssignAdd\n | StatementAugmentedAssignSub\n | StatementAugmentedAssignMul\n | StatementAugmentedAssignDiv\n | StatementAugmentedAssignRem\n StatementAugmentedAssignAdd = LValue \"+=\" Expression \";\"\n StatementAugmentedAssignSub = LValue \"-=\" Expression \";\"\n StatementAugmentedAssignMul = LValue \"*=\" Expression \";\"\n StatementAugmentedAssignDiv = LValue \"/=\" Expression \";\"\n StatementAugmentedAssignRem = LValue \"%=\" Expression \";\"\n StatementCondition = if Expression \"{\" Statement* \"}\" ~else --simple\n | if Expression \"{\" Statement* \"}\" else \"{\" Statement* \"}\" --withElse\n | if Expression \"{\" Statement* \"}\" else StatementCondition --withElseIf\n StatementWhile = while \"(\" Expression \")\" \"{\" Statement* \"}\"\n StatementRepeat = repeat \"(\" Expression \")\" \"{\" Statement* \"}\"\n StatementUntil = do \"{\" Statement* \"}\" until \"(\" Expression \")\" \";\"\n\n // L-value\n LValue = id \".\" LValue --more\n | id --single\n\n // Expressions\n Expression = ExpressionConditional\n ExpressionConditional = ExpressionOr \"?\" ExpressionOr \":\" ExpressionConditional --ternary\n | ExpressionOr\n ExpressionOr = ExpressionOr \"||\" ExpressionAnd --or\n | ExpressionAnd\n ExpressionAnd = ExpressionAnd \"&&\" ExpressionCompare --and\n | ExpressionCompare\n ExpressionCompare = ExpressionCompare \"!=\" ExpressionBinary --not\n | ExpressionCompare \"==\" ExpressionBinary --eq\n | ExpressionCompare \">\" ExpressionBinary --gt\n | ExpressionCompare \">=\" ExpressionBinary --gte\n | ExpressionCompare \"<\" ExpressionBinary --lt\n | ExpressionCompare \"<=\" ExpressionBinary --lte\n | ExpressionBinary\n ExpressionBinary = ExpressionBinary \">>\" ExpressionAdd --shr\n | ExpressionBinary \"<<\" ExpressionAdd --shl\n | ExpressionBinary \"&\" ExpressionAdd --bin_and\n | ExpressionBinary \"|\" ExpressionAdd --bin_or\n | ExpressionAdd\n ExpressionAdd = ExpressionAdd \"+\" ~\"+\" ExpressionMul --add\n | ExpressionAdd \"-\" ~\"-\" ExpressionMul --sub\n | ExpressionMul\n ExpressionMul = ExpressionMul \"*\" ExpressionUnary --mul\n | ExpressionMul \"/\" ExpressionUnary --div\n | ExpressionMul \"%\" ExpressionUnary --rem\n | ExpressionUnary\n ExpressionUnary = \"-\" ExpressionUnarySuffix --neg\n | \"+\" ExpressionUnarySuffix --add\n | \"!\" ExpressionUnarySuffix --not\n | ExpressionUnarySuffix\n ExpressionUnarySuffix = ExpressionValue \"!!\" --notNull\n | ExpressionValue\n ExpressionBracket = \"(\" Expression \")\"\n\n // Order is important\n ExpressionValue = ExpressionCall\n | ExpressionField\n | ExpressionStaticCall\n | ExpressionBracket\n | ExpressionNew\n | integerLiteral\n | boolLiteral\n | id\n | null\n | ExpressionInitOf\n | ExpressionString\n ExpressionString = stringLiteral\n ExpressionField = ExpressionValue \".\" id ~\"(\"\n ExpressionCall = ExpressionValue \".\" id \"(\" ListOf \",\"? \")\"\n ExpressionNew = id \"{\" ListOf \",\"? \"}\"\n NewParameter = id \":\" Expression\n ExpressionStaticCall = id \"(\" ListOf \",\"? \")\"\n ExpressionInitOf = initOf id \"(\" ListOf \",\"? \")\"\n\n // Type Literal\n typeLiteral = letterAsciiUC typeLiteralPart*\n typeLiteralPart = letterAscii | digit | \"_\"\n\n // Integer Literal\n // hexDigit defined in Ohm's built-in rules (otherwise: hexDigit = \"0\"..\"9\" | \"a\"..\"f\" | \"A\"..\"F\")\n // digit defined in Ohm's built-in rules (otherwise: digit = \"0\"..\"9\")\n integerLiteral = integerLiteralHex | integerLiteralBin | integerLiteralOct | integerLiteralDec // Order is important\n integerLiteralDec = nonZeroDigit (\"_\"? digit)* --nonZeroIntegerLiteralDec\n | \"0\" digit* --integerLiteralWithLeadingZero\n integerLiteralHex = (\"0x\" | \"0X\") hexDigit (\"_\"? hexDigit)*\n integerLiteralBin = (\"0b\" | \"0B\") binDigit (\"_\"? binDigit)*\n integerLiteralOct = (\"0o\" | \"0O\") octDigit (\"_\"? octDigit)*\n binDigit = \"0\" | \"1\"\n octDigit = \"0\"..\"7\"\n nonZeroDigit = \"1\"..\"9\"\n\n // Letters\n letterAsciiLC = \"a\"..\"z\"\n letterAsciiUC = \"A\"..\"Z\"\n letterAscii = letterAsciiLC | letterAsciiUC\n letterComment = letterAsciiLC | letterAsciiUC | digit | \"_\"\n\n // ID Literal\n idStart = letterAscii | \"_\"\n idPart = letterAscii | digit | \"_\"\n id = ~reservedWord #idStart #(idPart*)\n\n // FunC id\n funcLetter = letterAscii | \"_\" | \"'\" | \"?\" | \"!\" | \"::\" | \"&\"\n funcId = funcLetter #(funcLetter | digit)*\n\n // Bool Literal\n boolLiteral = (\"true\" | \"false\") ~idPart\n\n // String literal\n stringLiteral = \"\\\"\" (nonQuoteOrBackslashChar | escapeSequence)* \"\\\"\"\n nonQuoteOrBackslashChar = ~(\"\\\"\" | \"\\\\\") any\n escapeSequence = \"\\\\\\\\\" -- backslash\n | \"\\\\\\\"\" -- doubleQuote\n | \"\\\\n\" -- newline\n | \"\\\\r\" -- carriageReturn\n | \"\\\\t\" -- tab\n | \"\\\\v\" -- verticalTab\n | \"\\\\b\" -- backspace\n | \"\\\\f\" -- formFeed\n | \"\\\\u{\" hexDigit hexDigit? hexDigit? hexDigit? hexDigit? hexDigit? \"}\" -- unicodeCodePoint\n | \"\\\\u\" hexDigit hexDigit hexDigit hexDigit -- unicodeEscape\n | \"\\\\x\" hexDigit hexDigit -- hexEscape\n\n // Keywords\n // NOTE Order is important\n keyword = fun \n | let\n | return \n | extend \n | native \n | public \n | null \n | if \n | else \n | while \n | repeat \n | do \n | until \n | as \n | mutates\n | extends\n | import\n | with\n | trait\n | initOf\n | override\n | abstract\n | virtual\n | inline\n | const\n contract = \"contract\" ~idPart\n let = \"let\" ~idPart\n fun = \"fun\" ~idPart\n return = \"return\" ~idPart\n extend = \"extend\" ~idPart\n native = \"native\" ~idPart\n public = \"public\" ~idPart\n null = \"null\" ~idPart\n if = \"if\" ~idPart\n else = \"else\" ~idPart\n while = \"while\" ~idPart\n repeat = \"repeat\" ~idPart\n do = \"do\" ~idPart\n until = \"until\" ~idPart\n as = \"as\" ~idPart\n mutates = \"mutates\" ~idPart\n extends = \"extends\" ~idPart\n import = \"import\" ~idPart\n with = \"with\" ~idPart\n trait = \"trait\" ~idPart\n initOf = \"initOf\" ~idPart\n virtual = \"virtual\" ~idPart\n override = \"override\" ~idPart\n inline = \"inline\" ~idPart\n const = \"const\" ~idPart\n abstract = \"abstract\" ~idPart\n\n // Attributes\n nameAttribute = \"@name\"\n\n // Reserved\n reservedWord = keyword\n\n // Comments\n space += comment | lineTerminator\n comment = multiLineComment | singleLineComment\n lineTerminator = \"\\n\" | \"\\r\" | \"\\u2028\" | \"\\u2029\"\n multiLineComment = \"/*\" (~\"*/\" any)* \"*/\"\n singleLineComment = \"//\" (~lineTerminator any)*\n}"},"Tact",null,"Program",{"Program":["define",{"sourceInterval":[49,71]},null,[],["star",{"sourceInterval":[59,71]},["app",{"sourceInterval":[59,70]},"ProgramItem",[]]]],"ProgramItem":["define",{"sourceInterval":[76,300]},null,[],["alt",{"sourceInterval":[90,300]},["app",{"sourceInterval":[90,96]},"Struct",[]],["app",{"sourceInterval":[115,123]},"Contract",[]],["app",{"sourceInterval":[142,151]},"Primitive",[]],["app",{"sourceInterval":[170,184]},"StaticFunction",[]],["app",{"sourceInterval":[203,217]},"NativeFunction",[]],["app",{"sourceInterval":[236,249]},"ProgramImport",[]],["app",{"sourceInterval":[268,273]},"Trait",[]],["app",{"sourceInterval":[292,300]},"Constant",[]]]],"ProgramImport":["define",{"sourceInterval":[305,345]},null,[],["seq",{"sourceInterval":[321,345]},["app",{"sourceInterval":[321,327]},"import",[]],["app",{"sourceInterval":[328,341]},"stringLiteral",[]],["terminal",{"sourceInterval":[342,345]},";"]]],"Primitive":["define",{"sourceInterval":[380,412]},null,[],["seq",{"sourceInterval":[392,412]},["terminal",{"sourceInterval":[392,403]},"primitive"],["app",{"sourceInterval":[404,408]},"Type",[]],["terminal",{"sourceInterval":[409,412]},";"]]],"StaticFunction":["define",{"sourceInterval":[441,466]},null,[],["app",{"sourceInterval":[458,466]},"Function",[]]],"NativeFunction_withVoid":["define",{"sourceInterval":[488,597]},null,[],["seq",{"sourceInterval":[488,586]},["app",{"sourceInterval":[488,501]},"nameAttribute",[]],["terminal",{"sourceInterval":[502,505]},"("],["app",{"sourceInterval":[506,512]},"funcId",[]],["terminal",{"sourceInterval":[513,516]},")"],["star",{"sourceInterval":[517,535]},["app",{"sourceInterval":[517,534]},"FunctionAttribute",[]]],["app",{"sourceInterval":[536,542]},"native",[]],["app",{"sourceInterval":[543,545]},"id",[]],["terminal",{"sourceInterval":[546,549]},"("],["app",{"sourceInterval":[550,573]},"ListOf",[["app",{"sourceInterval":[557,568]},"FunctionArg",[]],["terminal",{"sourceInterval":[569,572]},","]]],["opt",{"sourceInterval":[574,578]},["terminal",{"sourceInterval":[574,577]},","]],["terminal",{"sourceInterval":[579,582]},")"],["terminal",{"sourceInterval":[583,586]},";"]]],"NativeFunction_withType":["define",{"sourceInterval":[619,737]},null,[],["seq",{"sourceInterval":[619,726]},["app",{"sourceInterval":[619,632]},"nameAttribute",[]],["terminal",{"sourceInterval":[633,636]},"("],["app",{"sourceInterval":[637,643]},"funcId",[]],["terminal",{"sourceInterval":[644,647]},")"],["star",{"sourceInterval":[648,666]},["app",{"sourceInterval":[648,665]},"FunctionAttribute",[]]],["app",{"sourceInterval":[667,673]},"native",[]],["app",{"sourceInterval":[674,676]},"id",[]],["terminal",{"sourceInterval":[677,680]},"("],["app",{"sourceInterval":[681,704]},"ListOf",[["app",{"sourceInterval":[688,699]},"FunctionArg",[]],["terminal",{"sourceInterval":[700,703]},","]]],["opt",{"sourceInterval":[705,709]},["terminal",{"sourceInterval":[705,708]},","]],["terminal",{"sourceInterval":[710,713]},")"],["terminal",{"sourceInterval":[714,717]},":"],["app",{"sourceInterval":[718,722]},"Type",[]],["terminal",{"sourceInterval":[723,726]},";"]]],"NativeFunction":["define",{"sourceInterval":[471,737]},null,[],["alt",{"sourceInterval":[488,737]},["app",{"sourceInterval":[488,586]},"NativeFunction_withVoid",[]],["app",{"sourceInterval":[619,726]},"NativeFunction_withType",[]]]],"Type_optional":["define",{"sourceInterval":[780,806]},null,[],["seq",{"sourceInterval":[780,795]},["app",{"sourceInterval":[780,791]},"typeLiteral",[]],["terminal",{"sourceInterval":[792,795]},"?"]]],"Type_required":["define",{"sourceInterval":[818,840]},null,[],["app",{"sourceInterval":[818,829]},"typeLiteral",[]]],"Type_map":["define",{"sourceInterval":[852,917]},null,[],["seq",{"sourceInterval":[852,911]},["terminal",{"sourceInterval":[852,857]},"map"],["terminal",{"sourceInterval":[858,861]},"<"],["app",{"sourceInterval":[862,873]},"typeLiteral",[]],["opt",{"sourceInterval":[874,882]},["seq",{"sourceInterval":[875,880]},["app",{"sourceInterval":[875,877]},"as",[]],["app",{"sourceInterval":[878,880]},"id",[]]]],["terminal",{"sourceInterval":[883,886]},","],["app",{"sourceInterval":[887,898]},"typeLiteral",[]],["opt",{"sourceInterval":[899,907]},["seq",{"sourceInterval":[900,905]},["app",{"sourceInterval":[900,902]},"as",[]],["app",{"sourceInterval":[903,905]},"id",[]]]],["terminal",{"sourceInterval":[908,911]},">"]]],"Type_bounced":["define",{"sourceInterval":[929,968]},null,[],["seq",{"sourceInterval":[929,958]},["terminal",{"sourceInterval":[929,938]},"bounced"],["terminal",{"sourceInterval":[939,942]},"<"],["app",{"sourceInterval":[943,954]},"typeLiteral",[]],["terminal",{"sourceInterval":[955,958]},">"]]],"Type":["define",{"sourceInterval":[773,968]},null,[],["alt",{"sourceInterval":[780,968]},["app",{"sourceInterval":[780,795]},"Type_optional",[]],["app",{"sourceInterval":[818,829]},"Type_required",[]],["app",{"sourceInterval":[852,911]},"Type_map",[]],["app",{"sourceInterval":[929,958]},"Type_bounced",[]]]],"Field_default":["define",{"sourceInterval":[981,1006]},null,[],["seq",{"sourceInterval":[981,996]},["app",{"sourceInterval":[981,983]},"id",[]],["terminal",{"sourceInterval":[984,987]},":"],["app",{"sourceInterval":[988,992]},"Type",[]],["terminal",{"sourceInterval":[993,996]},";"]]],"Field_defaultWithInit":["define",{"sourceInterval":[1019,1067]},null,[],["seq",{"sourceInterval":[1019,1049]},["app",{"sourceInterval":[1019,1021]},"id",[]],["terminal",{"sourceInterval":[1022,1025]},":"],["app",{"sourceInterval":[1026,1030]},"Type",[]],["terminal",{"sourceInterval":[1031,1034]},"="],["app",{"sourceInterval":[1035,1045]},"Expression",[]],["terminal",{"sourceInterval":[1046,1049]},";"]]],"Field_withSerialization":["define",{"sourceInterval":[1080,1121]},null,[],["seq",{"sourceInterval":[1080,1101]},["app",{"sourceInterval":[1080,1082]},"id",[]],["terminal",{"sourceInterval":[1083,1086]},":"],["app",{"sourceInterval":[1087,1091]},"Type",[]],["app",{"sourceInterval":[1092,1094]},"as",[]],["app",{"sourceInterval":[1095,1097]},"id",[]],["terminal",{"sourceInterval":[1098,1101]},";"]]],"Field_withSerializationAndInit":["define",{"sourceInterval":[1134,1197]},null,[],["seq",{"sourceInterval":[1134,1170]},["app",{"sourceInterval":[1134,1136]},"id",[]],["terminal",{"sourceInterval":[1137,1140]},":"],["app",{"sourceInterval":[1141,1145]},"Type",[]],["app",{"sourceInterval":[1146,1148]},"as",[]],["app",{"sourceInterval":[1149,1151]},"id",[]],["terminal",{"sourceInterval":[1152,1155]},"="],["app",{"sourceInterval":[1156,1166]},"Expression",[]],["terminal",{"sourceInterval":[1167,1170]},";"]]],"Field":["define",{"sourceInterval":[973,1197]},null,[],["alt",{"sourceInterval":[981,1197]},["app",{"sourceInterval":[981,996]},"Field_default",[]],["app",{"sourceInterval":[1019,1049]},"Field_defaultWithInit",[]],["app",{"sourceInterval":[1080,1101]},"Field_withSerialization",[]],["app",{"sourceInterval":[1134,1170]},"Field_withSerializationAndInit",[]]]],"ConstantAttribute_virtual":["define",{"sourceInterval":[1243,1263]},null,[],["app",{"sourceInterval":[1243,1250]},"virtual",[]]],"ConstantAttribute_override":["define",{"sourceInterval":[1288,1309]},null,[],["app",{"sourceInterval":[1288,1296]},"override",[]]],"ConstantAttribute_abstract":["define",{"sourceInterval":[1334,1355]},null,[],["app",{"sourceInterval":[1334,1342]},"abstract",[]]],"ConstantAttribute":["define",{"sourceInterval":[1223,1355]},null,[],["alt",{"sourceInterval":[1243,1355]},["app",{"sourceInterval":[1243,1250]},"ConstantAttribute_virtual",[]],["app",{"sourceInterval":[1288,1296]},"ConstantAttribute_override",[]],["app",{"sourceInterval":[1334,1342]},"ConstantAttribute_abstract",[]]]],"Constant_withValue":["define",{"sourceInterval":[1371,1443]},null,[],["seq",{"sourceInterval":[1371,1431]},["star",{"sourceInterval":[1371,1389]},["app",{"sourceInterval":[1371,1388]},"ConstantAttribute",[]]],["not",{"sourceInterval":[1390,1394]},["app",{"sourceInterval":[1391,1394]},"fun",[]]],["app",{"sourceInterval":[1395,1400]},"const",[]],["app",{"sourceInterval":[1401,1403]},"id",[]],["terminal",{"sourceInterval":[1404,1407]},":"],["app",{"sourceInterval":[1408,1412]},"Type",[]],["terminal",{"sourceInterval":[1413,1416]},"="],["app",{"sourceInterval":[1417,1427]},"Expression",[]],["terminal",{"sourceInterval":[1428,1431]},";"]]],"Constant_withEmpty":["define",{"sourceInterval":[1459,1531]},null,[],["seq",{"sourceInterval":[1459,1504]},["star",{"sourceInterval":[1459,1477]},["app",{"sourceInterval":[1459,1476]},"ConstantAttribute",[]]],["not",{"sourceInterval":[1478,1482]},["app",{"sourceInterval":[1479,1482]},"fun",[]]],["app",{"sourceInterval":[1483,1488]},"const",[]],["app",{"sourceInterval":[1489,1491]},"id",[]],["terminal",{"sourceInterval":[1492,1495]},":"],["app",{"sourceInterval":[1496,1500]},"Type",[]],["terminal",{"sourceInterval":[1501,1504]},";"]]],"Constant":["define",{"sourceInterval":[1360,1531]},null,[],["alt",{"sourceInterval":[1371,1531]},["app",{"sourceInterval":[1371,1431]},"Constant_withValue",[]],["app",{"sourceInterval":[1459,1504]},"Constant_withEmpty",[]]]],"Struct_originary":["define",{"sourceInterval":[1560,1612]},null,[],["seq",{"sourceInterval":[1560,1600]},["terminal",{"sourceInterval":[1560,1568]},"struct"],["app",{"sourceInterval":[1569,1580]},"typeLiteral",[]],["terminal",{"sourceInterval":[1581,1584]},"{"],["star",{"sourceInterval":[1585,1596]},["app",{"sourceInterval":[1585,1595]},"StructBody",[]]],["terminal",{"sourceInterval":[1597,1600]},"}"]]],"Struct_message":["define",{"sourceInterval":[1626,1677]},null,[],["seq",{"sourceInterval":[1626,1667]},["terminal",{"sourceInterval":[1626,1635]},"message"],["app",{"sourceInterval":[1636,1647]},"typeLiteral",[]],["terminal",{"sourceInterval":[1648,1651]},"{"],["star",{"sourceInterval":[1652,1663]},["app",{"sourceInterval":[1652,1662]},"StructBody",[]]],["terminal",{"sourceInterval":[1664,1667]},"}"]]],"Struct_messageWithId":["define",{"sourceInterval":[1691,1771]},null,[],["seq",{"sourceInterval":[1691,1755]},["terminal",{"sourceInterval":[1691,1700]},"message"],["terminal",{"sourceInterval":[1701,1704]},"("],["app",{"sourceInterval":[1705,1719]},"integerLiteral",[]],["terminal",{"sourceInterval":[1720,1723]},")"],["app",{"sourceInterval":[1724,1735]},"typeLiteral",[]],["terminal",{"sourceInterval":[1736,1739]},"{"],["star",{"sourceInterval":[1740,1751]},["app",{"sourceInterval":[1740,1750]},"StructBody",[]]],["terminal",{"sourceInterval":[1752,1755]},"}"]]],"Struct":["define",{"sourceInterval":[1551,1771]},null,[],["alt",{"sourceInterval":[1560,1771]},["app",{"sourceInterval":[1560,1600]},"Struct_originary",[]],["app",{"sourceInterval":[1626,1667]},"Struct_message",[]],["app",{"sourceInterval":[1691,1755]},"Struct_messageWithId",[]]]],"StructBody":["define",{"sourceInterval":[1776,1794]},null,[],["app",{"sourceInterval":[1789,1794]},"Field",[]]],"Contract_simple":["define",{"sourceInterval":[1827,1888]},null,[],["seq",{"sourceInterval":[1827,1879]},["star",{"sourceInterval":[1827,1845]},["app",{"sourceInterval":[1827,1844]},"ContractAttribute",[]]],["app",{"sourceInterval":[1846,1854]},"contract",[]],["app",{"sourceInterval":[1855,1857]},"id",[]],["terminal",{"sourceInterval":[1858,1861]},"{"],["star",{"sourceInterval":[1862,1875]},["app",{"sourceInterval":[1862,1874]},"ContractBody",[]]],["terminal",{"sourceInterval":[1876,1879]},"}"]]],"Contract_withTraits":["define",{"sourceInterval":[1904,1989]},null,[],["seq",{"sourceInterval":[1904,1976]},["star",{"sourceInterval":[1904,1922]},["app",{"sourceInterval":[1904,1921]},"ContractAttribute",[]]],["app",{"sourceInterval":[1923,1931]},"contract",[]],["app",{"sourceInterval":[1932,1934]},"id",[]],["app",{"sourceInterval":[1935,1939]},"with",[]],["app",{"sourceInterval":[1940,1954]},"ListOf",[["app",{"sourceInterval":[1947,1949]},"id",[]],["terminal",{"sourceInterval":[1950,1953]},","]]],["terminal",{"sourceInterval":[1955,1958]},"{"],["star",{"sourceInterval":[1959,1972]},["app",{"sourceInterval":[1959,1971]},"ContractBody",[]]],["terminal",{"sourceInterval":[1973,1976]},"}"]]],"Contract":["define",{"sourceInterval":[1816,1989]},null,[],["alt",{"sourceInterval":[1827,1989]},["app",{"sourceInterval":[1827,1879]},"Contract_simple",[]],["app",{"sourceInterval":[1904,1976]},"Contract_withTraits",[]]]],"ContractInit":["define",{"sourceInterval":[1994,2066]},null,[],["seq",{"sourceInterval":[2009,2066]},["terminal",{"sourceInterval":[2009,2015]},"init"],["terminal",{"sourceInterval":[2016,2019]},"("],["app",{"sourceInterval":[2020,2043]},"ListOf",[["app",{"sourceInterval":[2027,2038]},"FunctionArg",[]],["terminal",{"sourceInterval":[2039,2042]},","]]],["terminal",{"sourceInterval":[2044,2047]},")"],["terminal",{"sourceInterval":[2048,2051]},"{"],["star",{"sourceInterval":[2052,2062]},["app",{"sourceInterval":[2052,2061]},"Statement",[]]],["terminal",{"sourceInterval":[2063,2066]},"}"]]],"ContractBody":["define",{"sourceInterval":[2071,2214]},null,[],["alt",{"sourceInterval":[2086,2214]},["app",{"sourceInterval":[2086,2091]},"Field",[]],["app",{"sourceInterval":[2111,2123]},"ContractInit",[]],["app",{"sourceInterval":[2143,2158]},"ReceiveFunction",[]],["app",{"sourceInterval":[2178,2186]},"Function",[]],["app",{"sourceInterval":[2206,2214]},"Constant",[]]]],"Trait_originary":["define",{"sourceInterval":[2245,2303]},null,[],["seq",{"sourceInterval":[2245,2291]},["star",{"sourceInterval":[2245,2263]},["app",{"sourceInterval":[2245,2262]},"ContractAttribute",[]]],["app",{"sourceInterval":[2264,2269]},"trait",[]],["app",{"sourceInterval":[2270,2272]},"id",[]],["terminal",{"sourceInterval":[2273,2276]},"{"],["star",{"sourceInterval":[2277,2287]},["app",{"sourceInterval":[2277,2286]},"TraitBody",[]]],["terminal",{"sourceInterval":[2288,2291]},"}"]]],"Trait_withTraits":["define",{"sourceInterval":[2316,2395]},null,[],["seq",{"sourceInterval":[2316,2382]},["star",{"sourceInterval":[2316,2334]},["app",{"sourceInterval":[2316,2333]},"ContractAttribute",[]]],["app",{"sourceInterval":[2335,2340]},"trait",[]],["app",{"sourceInterval":[2341,2343]},"id",[]],["app",{"sourceInterval":[2344,2348]},"with",[]],["app",{"sourceInterval":[2349,2363]},"ListOf",[["app",{"sourceInterval":[2356,2358]},"id",[]],["terminal",{"sourceInterval":[2359,2362]},","]]],["terminal",{"sourceInterval":[2364,2367]},"{"],["star",{"sourceInterval":[2368,2378]},["app",{"sourceInterval":[2368,2377]},"TraitBody",[]]],["terminal",{"sourceInterval":[2379,2382]},"}"]]],"Trait":["define",{"sourceInterval":[2237,2395]},null,[],["alt",{"sourceInterval":[2245,2395]},["app",{"sourceInterval":[2245,2291]},"Trait_originary",[]],["app",{"sourceInterval":[2316,2382]},"Trait_withTraits",[]]]],"TraitBody":["define",{"sourceInterval":[2400,2499]},null,[],["alt",{"sourceInterval":[2412,2499]},["app",{"sourceInterval":[2412,2417]},"Field",[]],["app",{"sourceInterval":[2434,2449]},"ReceiveFunction",[]],["app",{"sourceInterval":[2466,2474]},"Function",[]],["app",{"sourceInterval":[2491,2499]},"Constant",[]]]],"ContractAttribute_interface":["define",{"sourceInterval":[2552,2598]},null,[],["seq",{"sourceInterval":[2552,2586]},["terminal",{"sourceInterval":[2552,2564]},"@interface"],["terminal",{"sourceInterval":[2565,2568]},"("],["app",{"sourceInterval":[2569,2582]},"stringLiteral",[]],["terminal",{"sourceInterval":[2583,2586]},")"]]],"ContractAttribute":["define",{"sourceInterval":[2532,2598]},null,[],["app",{"sourceInterval":[2552,2598]},"ContractAttribute_interface",[]]],"FunctionAttribute_getter":["define",{"sourceInterval":[2640,2658]},null,[],["terminal",{"sourceInterval":[2640,2645]},"get"]],"FunctionAttribute_mutates":["define",{"sourceInterval":[2683,2702]},null,[],["app",{"sourceInterval":[2683,2690]},"mutates",[]]],"FunctionAttribute_extends":["define",{"sourceInterval":[2727,2746]},null,[],["app",{"sourceInterval":[2727,2734]},"extends",[]]],"FunctionAttribute_virtual":["define",{"sourceInterval":[2771,2790]},null,[],["app",{"sourceInterval":[2771,2778]},"virtual",[]]],"FunctionAttribute_override":["define",{"sourceInterval":[2815,2835]},null,[],["app",{"sourceInterval":[2815,2823]},"override",[]]],"FunctionAttribute_inline":["define",{"sourceInterval":[2860,2878]},null,[],["app",{"sourceInterval":[2860,2866]},"inline",[]]],"FunctionAttribute_abstract":["define",{"sourceInterval":[2903,2923]},null,[],["app",{"sourceInterval":[2903,2911]},"abstract",[]]],"FunctionAttribute":["define",{"sourceInterval":[2620,2923]},null,[],["alt",{"sourceInterval":[2640,2923]},["app",{"sourceInterval":[2640,2645]},"FunctionAttribute_getter",[]],["app",{"sourceInterval":[2683,2690]},"FunctionAttribute_mutates",[]],["app",{"sourceInterval":[2727,2734]},"FunctionAttribute_extends",[]],["app",{"sourceInterval":[2771,2778]},"FunctionAttribute_virtual",[]],["app",{"sourceInterval":[2815,2823]},"FunctionAttribute_override",[]],["app",{"sourceInterval":[2860,2866]},"FunctionAttribute_inline",[]],["app",{"sourceInterval":[2903,2911]},"FunctionAttribute_abstract",[]]]],"Function_withVoid":["define",{"sourceInterval":[2939,3031]},null,[],["seq",{"sourceInterval":[2939,3020]},["star",{"sourceInterval":[2939,2957]},["app",{"sourceInterval":[2939,2956]},"FunctionAttribute",[]]],["app",{"sourceInterval":[2958,2961]},"fun",[]],["app",{"sourceInterval":[2962,2964]},"id",[]],["terminal",{"sourceInterval":[2965,2968]},"("],["app",{"sourceInterval":[2969,2992]},"ListOf",[["app",{"sourceInterval":[2976,2987]},"FunctionArg",[]],["terminal",{"sourceInterval":[2988,2991]},","]]],["opt",{"sourceInterval":[2993,2997]},["terminal",{"sourceInterval":[2993,2996]},","]],["terminal",{"sourceInterval":[2998,3001]},")"],["terminal",{"sourceInterval":[3002,3005]},"{"],["star",{"sourceInterval":[3006,3016]},["app",{"sourceInterval":[3006,3015]},"Statement",[]]],["terminal",{"sourceInterval":[3017,3020]},"}"]]],"Function_withType":["define",{"sourceInterval":[3047,3148]},null,[],["seq",{"sourceInterval":[3047,3137]},["star",{"sourceInterval":[3047,3065]},["app",{"sourceInterval":[3047,3064]},"FunctionAttribute",[]]],["app",{"sourceInterval":[3066,3069]},"fun",[]],["app",{"sourceInterval":[3070,3072]},"id",[]],["terminal",{"sourceInterval":[3073,3076]},"("],["app",{"sourceInterval":[3077,3100]},"ListOf",[["app",{"sourceInterval":[3084,3095]},"FunctionArg",[]],["terminal",{"sourceInterval":[3096,3099]},","]]],["opt",{"sourceInterval":[3101,3105]},["terminal",{"sourceInterval":[3101,3104]},","]],["terminal",{"sourceInterval":[3106,3109]},")"],["terminal",{"sourceInterval":[3110,3113]},":"],["app",{"sourceInterval":[3114,3118]},"Type",[]],["terminal",{"sourceInterval":[3119,3122]},"{"],["star",{"sourceInterval":[3123,3133]},["app",{"sourceInterval":[3123,3132]},"Statement",[]]],["terminal",{"sourceInterval":[3134,3137]},"}"]]],"Function_abstractVoid":["define",{"sourceInterval":[3164,3245]},null,[],["seq",{"sourceInterval":[3164,3230]},["star",{"sourceInterval":[3164,3182]},["app",{"sourceInterval":[3164,3181]},"FunctionAttribute",[]]],["app",{"sourceInterval":[3183,3186]},"fun",[]],["app",{"sourceInterval":[3187,3189]},"id",[]],["terminal",{"sourceInterval":[3190,3193]},"("],["app",{"sourceInterval":[3194,3217]},"ListOf",[["app",{"sourceInterval":[3201,3212]},"FunctionArg",[]],["terminal",{"sourceInterval":[3213,3216]},","]]],["opt",{"sourceInterval":[3218,3222]},["terminal",{"sourceInterval":[3218,3221]},","]],["terminal",{"sourceInterval":[3223,3226]},")"],["terminal",{"sourceInterval":[3227,3230]},";"]]],"Function_abstractType":["define",{"sourceInterval":[3261,3351]},null,[],["seq",{"sourceInterval":[3261,3336]},["star",{"sourceInterval":[3261,3279]},["app",{"sourceInterval":[3261,3278]},"FunctionAttribute",[]]],["app",{"sourceInterval":[3280,3283]},"fun",[]],["app",{"sourceInterval":[3284,3286]},"id",[]],["terminal",{"sourceInterval":[3287,3290]},"("],["app",{"sourceInterval":[3291,3314]},"ListOf",[["app",{"sourceInterval":[3298,3309]},"FunctionArg",[]],["terminal",{"sourceInterval":[3310,3313]},","]]],["opt",{"sourceInterval":[3315,3319]},["terminal",{"sourceInterval":[3315,3318]},","]],["terminal",{"sourceInterval":[3320,3323]},")"],["terminal",{"sourceInterval":[3324,3327]},":"],["app",{"sourceInterval":[3328,3332]},"Type",[]],["terminal",{"sourceInterval":[3333,3336]},";"]]],"Function":["define",{"sourceInterval":[2928,3351]},null,[],["alt",{"sourceInterval":[2939,3351]},["app",{"sourceInterval":[2939,3020]},"Function_withVoid",[]],["app",{"sourceInterval":[3047,3137]},"Function_withType",[]],["app",{"sourceInterval":[3164,3230]},"Function_abstractVoid",[]],["app",{"sourceInterval":[3261,3336]},"Function_abstractType",[]]]],"FunctionArg":["define",{"sourceInterval":[3356,3381]},null,[],["seq",{"sourceInterval":[3370,3381]},["app",{"sourceInterval":[3370,3372]},"id",[]],["terminal",{"sourceInterval":[3373,3376]},":"],["app",{"sourceInterval":[3377,3381]},"Type",[]]]],"ReceiveFunction_simple":["define",{"sourceInterval":[3409,3466]},null,[],["seq",{"sourceInterval":[3409,3457]},["terminal",{"sourceInterval":[3409,3418]},"receive"],["terminal",{"sourceInterval":[3419,3422]},"("],["app",{"sourceInterval":[3423,3434]},"FunctionArg",[]],["terminal",{"sourceInterval":[3435,3438]},")"],["terminal",{"sourceInterval":[3439,3442]},"{"],["star",{"sourceInterval":[3443,3453]},["app",{"sourceInterval":[3443,3452]},"Statement",[]]],["terminal",{"sourceInterval":[3454,3457]},"}"]]],"ReceiveFunction_empty":["define",{"sourceInterval":[3489,3533]},null,[],["seq",{"sourceInterval":[3489,3525]},["terminal",{"sourceInterval":[3489,3498]},"receive"],["terminal",{"sourceInterval":[3499,3502]},"("],["terminal",{"sourceInterval":[3503,3506]},")"],["terminal",{"sourceInterval":[3507,3510]},"{"],["star",{"sourceInterval":[3511,3521]},["app",{"sourceInterval":[3511,3520]},"Statement",[]]],["terminal",{"sourceInterval":[3522,3525]},"}"]]],"ReceiveFunction_comment":["define",{"sourceInterval":[3556,3616]},null,[],["seq",{"sourceInterval":[3556,3606]},["terminal",{"sourceInterval":[3556,3565]},"receive"],["terminal",{"sourceInterval":[3566,3569]},"("],["app",{"sourceInterval":[3570,3583]},"stringLiteral",[]],["terminal",{"sourceInterval":[3584,3587]},")"],["terminal",{"sourceInterval":[3588,3591]},"{"],["star",{"sourceInterval":[3592,3602]},["app",{"sourceInterval":[3592,3601]},"Statement",[]]],["terminal",{"sourceInterval":[3603,3606]},"}"]]],"ReceiveFunction_bounced":["define",{"sourceInterval":[3639,3697]},null,[],["seq",{"sourceInterval":[3639,3687]},["terminal",{"sourceInterval":[3639,3648]},"bounced"],["terminal",{"sourceInterval":[3649,3652]},"("],["app",{"sourceInterval":[3653,3664]},"FunctionArg",[]],["terminal",{"sourceInterval":[3665,3668]},")"],["terminal",{"sourceInterval":[3669,3672]},"{"],["star",{"sourceInterval":[3673,3683]},["app",{"sourceInterval":[3673,3682]},"Statement",[]]],["terminal",{"sourceInterval":[3684,3687]},"}"]]],"ReceiveFunction_externalSimple":["define",{"sourceInterval":[3720,3786]},null,[],["seq",{"sourceInterval":[3720,3769]},["terminal",{"sourceInterval":[3720,3730]},"external"],["terminal",{"sourceInterval":[3731,3734]},"("],["app",{"sourceInterval":[3735,3746]},"FunctionArg",[]],["terminal",{"sourceInterval":[3747,3750]},")"],["terminal",{"sourceInterval":[3751,3754]},"{"],["star",{"sourceInterval":[3755,3765]},["app",{"sourceInterval":[3755,3764]},"Statement",[]]],["terminal",{"sourceInterval":[3766,3769]},"}"]]],"ReceiveFunction_externalComment":["define",{"sourceInterval":[3809,3878]},null,[],["seq",{"sourceInterval":[3809,3860]},["terminal",{"sourceInterval":[3809,3819]},"external"],["terminal",{"sourceInterval":[3820,3823]},"("],["app",{"sourceInterval":[3824,3837]},"stringLiteral",[]],["terminal",{"sourceInterval":[3838,3841]},")"],["terminal",{"sourceInterval":[3842,3845]},"{"],["star",{"sourceInterval":[3846,3856]},["app",{"sourceInterval":[3846,3855]},"Statement",[]]],["terminal",{"sourceInterval":[3857,3860]},"}"]]],"ReceiveFunction_externalEmpty":["define",{"sourceInterval":[3901,3954]},null,[],["seq",{"sourceInterval":[3901,3938]},["terminal",{"sourceInterval":[3901,3911]},"external"],["terminal",{"sourceInterval":[3912,3915]},"("],["terminal",{"sourceInterval":[3916,3919]},")"],["terminal",{"sourceInterval":[3920,3923]},"{"],["star",{"sourceInterval":[3924,3934]},["app",{"sourceInterval":[3924,3933]},"Statement",[]]],["terminal",{"sourceInterval":[3935,3938]},"}"]]],"ReceiveFunction":["define",{"sourceInterval":[3391,3954]},null,[],["alt",{"sourceInterval":[3409,3954]},["app",{"sourceInterval":[3409,3457]},"ReceiveFunction_simple",[]],["app",{"sourceInterval":[3489,3525]},"ReceiveFunction_empty",[]],["app",{"sourceInterval":[3556,3606]},"ReceiveFunction_comment",[]],["app",{"sourceInterval":[3639,3687]},"ReceiveFunction_bounced",[]],["app",{"sourceInterval":[3720,3769]},"ReceiveFunction_externalSimple",[]],["app",{"sourceInterval":[3809,3860]},"ReceiveFunction_externalComment",[]],["app",{"sourceInterval":[3901,3938]},"ReceiveFunction_externalEmpty",[]]]],"Statement":["define",{"sourceInterval":[3978,4303]},null,[],["alt",{"sourceInterval":[3990,4303]},["app",{"sourceInterval":[3990,4002]},"StatementLet",[]],["app",{"sourceInterval":[4019,4033]},"StatementBlock",[]],["app",{"sourceInterval":[4050,4065]},"StatementReturn",[]],["app",{"sourceInterval":[4082,4101]},"StatementExpression",[]],["app",{"sourceInterval":[4118,4133]},"StatementAssign",[]],["app",{"sourceInterval":[4150,4174]},"StatementAugmentedAssign",[]],["app",{"sourceInterval":[4191,4209]},"StatementCondition",[]],["app",{"sourceInterval":[4226,4240]},"StatementWhile",[]],["app",{"sourceInterval":[4257,4272]},"StatementRepeat",[]],["app",{"sourceInterval":[4289,4303]},"StatementUntil",[]]]],"StatementBlock":["define",{"sourceInterval":[4308,4343]},null,[],["seq",{"sourceInterval":[4325,4343]},["terminal",{"sourceInterval":[4325,4328]},"{"],["star",{"sourceInterval":[4329,4339]},["app",{"sourceInterval":[4329,4338]},"Statement",[]]],["terminal",{"sourceInterval":[4340,4343]},"}"]]],"StatementLet":["define",{"sourceInterval":[4348,4397]},null,[],["seq",{"sourceInterval":[4363,4397]},["app",{"sourceInterval":[4363,4366]},"let",[]],["app",{"sourceInterval":[4367,4369]},"id",[]],["terminal",{"sourceInterval":[4370,4373]},":"],["app",{"sourceInterval":[4374,4378]},"Type",[]],["terminal",{"sourceInterval":[4379,4382]},"="],["app",{"sourceInterval":[4383,4393]},"Expression",[]],["terminal",{"sourceInterval":[4394,4397]},";"]]],"StatementReturn_withExpression":["define",{"sourceInterval":[4420,4458]},null,[],["seq",{"sourceInterval":[4420,4441]},["app",{"sourceInterval":[4420,4426]},"return",[]],["app",{"sourceInterval":[4427,4437]},"Expression",[]],["terminal",{"sourceInterval":[4438,4441]},";"]]],"StatementReturn_withoutExpression":["define",{"sourceInterval":[4481,4511]},null,[],["seq",{"sourceInterval":[4481,4491]},["app",{"sourceInterval":[4481,4487]},"return",[]],["terminal",{"sourceInterval":[4488,4491]},";"]]],"StatementReturn":["define",{"sourceInterval":[4402,4511]},null,[],["alt",{"sourceInterval":[4420,4511]},["app",{"sourceInterval":[4420,4441]},"StatementReturn_withExpression",[]],["app",{"sourceInterval":[4481,4491]},"StatementReturn_withoutExpression",[]]]],"StatementExpression":["define",{"sourceInterval":[4520,4556]},null,[],["seq",{"sourceInterval":[4542,4556]},["app",{"sourceInterval":[4542,4552]},"Expression",[]],["terminal",{"sourceInterval":[4553,4556]},";"]]],"StatementAssign":["define",{"sourceInterval":[4561,4604]},null,[],["seq",{"sourceInterval":[4579,4604]},["app",{"sourceInterval":[4579,4585]},"LValue",[]],["terminal",{"sourceInterval":[4586,4589]},"="],["app",{"sourceInterval":[4590,4600]},"Expression",[]],["terminal",{"sourceInterval":[4601,4604]},";"]]],"StatementAugmentedAssign":["define",{"sourceInterval":[4609,4899]},null,[],["alt",{"sourceInterval":[4636,4899]},["app",{"sourceInterval":[4636,4663]},"StatementAugmentedAssignAdd",[]],["app",{"sourceInterval":[4695,4722]},"StatementAugmentedAssignSub",[]],["app",{"sourceInterval":[4754,4781]},"StatementAugmentedAssignMul",[]],["app",{"sourceInterval":[4813,4840]},"StatementAugmentedAssignDiv",[]],["app",{"sourceInterval":[4872,4899]},"StatementAugmentedAssignRem",[]]]],"StatementAugmentedAssignAdd":["define",{"sourceInterval":[4904,4960]},null,[],["seq",{"sourceInterval":[4934,4960]},["app",{"sourceInterval":[4934,4940]},"LValue",[]],["terminal",{"sourceInterval":[4941,4945]},"+="],["app",{"sourceInterval":[4946,4956]},"Expression",[]],["terminal",{"sourceInterval":[4957,4960]},";"]]],"StatementAugmentedAssignSub":["define",{"sourceInterval":[4965,5021]},null,[],["seq",{"sourceInterval":[4995,5021]},["app",{"sourceInterval":[4995,5001]},"LValue",[]],["terminal",{"sourceInterval":[5002,5006]},"-="],["app",{"sourceInterval":[5007,5017]},"Expression",[]],["terminal",{"sourceInterval":[5018,5021]},";"]]],"StatementAugmentedAssignMul":["define",{"sourceInterval":[5026,5082]},null,[],["seq",{"sourceInterval":[5056,5082]},["app",{"sourceInterval":[5056,5062]},"LValue",[]],["terminal",{"sourceInterval":[5063,5067]},"*="],["app",{"sourceInterval":[5068,5078]},"Expression",[]],["terminal",{"sourceInterval":[5079,5082]},";"]]],"StatementAugmentedAssignDiv":["define",{"sourceInterval":[5087,5143]},null,[],["seq",{"sourceInterval":[5117,5143]},["app",{"sourceInterval":[5117,5123]},"LValue",[]],["terminal",{"sourceInterval":[5124,5128]},"/="],["app",{"sourceInterval":[5129,5139]},"Expression",[]],["terminal",{"sourceInterval":[5140,5143]},";"]]],"StatementAugmentedAssignRem":["define",{"sourceInterval":[5148,5204]},null,[],["seq",{"sourceInterval":[5178,5204]},["app",{"sourceInterval":[5178,5184]},"LValue",[]],["terminal",{"sourceInterval":[5185,5189]},"%="],["app",{"sourceInterval":[5190,5200]},"Expression",[]],["terminal",{"sourceInterval":[5201,5204]},";"]]],"StatementCondition_simple":["define",{"sourceInterval":[5230,5277]},null,[],["seq",{"sourceInterval":[5230,5268]},["app",{"sourceInterval":[5230,5232]},"if",[]],["app",{"sourceInterval":[5233,5243]},"Expression",[]],["terminal",{"sourceInterval":[5244,5247]},"{"],["star",{"sourceInterval":[5248,5258]},["app",{"sourceInterval":[5248,5257]},"Statement",[]]],["terminal",{"sourceInterval":[5259,5262]},"}"],["not",{"sourceInterval":[5263,5268]},["app",{"sourceInterval":[5264,5268]},"else",[]]]]],"StatementCondition_withElse":["define",{"sourceInterval":[5303,5370]},null,[],["seq",{"sourceInterval":[5303,5359]},["app",{"sourceInterval":[5303,5305]},"if",[]],["app",{"sourceInterval":[5306,5316]},"Expression",[]],["terminal",{"sourceInterval":[5317,5320]},"{"],["star",{"sourceInterval":[5321,5331]},["app",{"sourceInterval":[5321,5330]},"Statement",[]]],["terminal",{"sourceInterval":[5332,5335]},"}"],["app",{"sourceInterval":[5336,5340]},"else",[]],["terminal",{"sourceInterval":[5341,5344]},"{"],["star",{"sourceInterval":[5345,5355]},["app",{"sourceInterval":[5345,5354]},"Statement",[]]],["terminal",{"sourceInterval":[5356,5359]},"}"]]],"StatementCondition_withElseIf":["define",{"sourceInterval":[5396,5465]},null,[],["seq",{"sourceInterval":[5396,5452]},["app",{"sourceInterval":[5396,5398]},"if",[]],["app",{"sourceInterval":[5399,5409]},"Expression",[]],["terminal",{"sourceInterval":[5410,5413]},"{"],["star",{"sourceInterval":[5414,5424]},["app",{"sourceInterval":[5414,5423]},"Statement",[]]],["terminal",{"sourceInterval":[5425,5428]},"}"],["app",{"sourceInterval":[5429,5433]},"else",[]],["app",{"sourceInterval":[5434,5452]},"StatementCondition",[]]]],"StatementCondition":["define",{"sourceInterval":[5209,5465]},null,[],["alt",{"sourceInterval":[5230,5465]},["app",{"sourceInterval":[5230,5268]},"StatementCondition_simple",[]],["app",{"sourceInterval":[5303,5359]},"StatementCondition_withElse",[]],["app",{"sourceInterval":[5396,5452]},"StatementCondition_withElseIf",[]]]],"StatementWhile":["define",{"sourceInterval":[5470,5530]},null,[],["seq",{"sourceInterval":[5487,5530]},["app",{"sourceInterval":[5487,5492]},"while",[]],["terminal",{"sourceInterval":[5493,5496]},"("],["app",{"sourceInterval":[5497,5507]},"Expression",[]],["terminal",{"sourceInterval":[5508,5511]},")"],["terminal",{"sourceInterval":[5512,5515]},"{"],["star",{"sourceInterval":[5516,5526]},["app",{"sourceInterval":[5516,5525]},"Statement",[]]],["terminal",{"sourceInterval":[5527,5530]},"}"]]],"StatementRepeat":["define",{"sourceInterval":[5535,5597]},null,[],["seq",{"sourceInterval":[5553,5597]},["app",{"sourceInterval":[5553,5559]},"repeat",[]],["terminal",{"sourceInterval":[5560,5563]},"("],["app",{"sourceInterval":[5564,5574]},"Expression",[]],["terminal",{"sourceInterval":[5575,5578]},")"],["terminal",{"sourceInterval":[5579,5582]},"{"],["star",{"sourceInterval":[5583,5593]},["app",{"sourceInterval":[5583,5592]},"Statement",[]]],["terminal",{"sourceInterval":[5594,5597]},"}"]]],"StatementUntil":["define",{"sourceInterval":[5602,5669]},null,[],["seq",{"sourceInterval":[5619,5669]},["app",{"sourceInterval":[5619,5621]},"do",[]],["terminal",{"sourceInterval":[5622,5625]},"{"],["star",{"sourceInterval":[5626,5636]},["app",{"sourceInterval":[5626,5635]},"Statement",[]]],["terminal",{"sourceInterval":[5637,5640]},"}"],["app",{"sourceInterval":[5641,5646]},"until",[]],["terminal",{"sourceInterval":[5647,5650]},"("],["app",{"sourceInterval":[5651,5661]},"Expression",[]],["terminal",{"sourceInterval":[5662,5665]},")"],["terminal",{"sourceInterval":[5666,5669]},";"]]],"LValue_more":["define",{"sourceInterval":[5699,5719]},null,[],["seq",{"sourceInterval":[5699,5712]},["app",{"sourceInterval":[5699,5701]},"id",[]],["terminal",{"sourceInterval":[5702,5705]},"."],["app",{"sourceInterval":[5706,5712]},"LValue",[]]]],"LValue_single":["define",{"sourceInterval":[5733,5744]},null,[],["app",{"sourceInterval":[5733,5735]},"id",[]]],"LValue":["define",{"sourceInterval":[5690,5744]},null,[],["alt",{"sourceInterval":[5699,5744]},["app",{"sourceInterval":[5699,5712]},"LValue_more",[]],["app",{"sourceInterval":[5733,5735]},"LValue_single",[]]]],"Expression":["define",{"sourceInterval":[5769,5803]},null,[],["app",{"sourceInterval":[5782,5803]},"ExpressionConditional",[]]],"ExpressionConditional_ternary":["define",{"sourceInterval":[5832,5897]},null,[],["seq",{"sourceInterval":[5832,5887]},["app",{"sourceInterval":[5832,5844]},"ExpressionOr",[]],["terminal",{"sourceInterval":[5845,5848]},"?"],["app",{"sourceInterval":[5849,5861]},"ExpressionOr",[]],["terminal",{"sourceInterval":[5862,5865]},":"],["app",{"sourceInterval":[5866,5887]},"ExpressionConditional",[]]]],"ExpressionConditional":["define",{"sourceInterval":[5808,5938]},null,[],["alt",{"sourceInterval":[5832,5938]},["app",{"sourceInterval":[5832,5887]},"ExpressionConditional_ternary",[]],["app",{"sourceInterval":[5926,5938]},"ExpressionOr",[]]]],"ExpressionOr_or":["define",{"sourceInterval":[5958,5994]},null,[],["seq",{"sourceInterval":[5958,5989]},["app",{"sourceInterval":[5958,5970]},"ExpressionOr",[]],["terminal",{"sourceInterval":[5971,5975]},"||"],["app",{"sourceInterval":[5976,5989]},"ExpressionAnd",[]]]],"ExpressionOr":["define",{"sourceInterval":[5943,6027]},null,[],["alt",{"sourceInterval":[5958,6027]},["app",{"sourceInterval":[5958,5989]},"ExpressionOr_or",[]],["app",{"sourceInterval":[6014,6027]},"ExpressionAnd",[]]]],"ExpressionAnd_and":["define",{"sourceInterval":[6048,6090]},null,[],["seq",{"sourceInterval":[6048,6084]},["app",{"sourceInterval":[6048,6061]},"ExpressionAnd",[]],["terminal",{"sourceInterval":[6062,6066]},"&&"],["app",{"sourceInterval":[6067,6084]},"ExpressionCompare",[]]]],"ExpressionAnd":["define",{"sourceInterval":[6032,6128]},null,[],["alt",{"sourceInterval":[6048,6128]},["app",{"sourceInterval":[6048,6084]},"ExpressionAnd_and",[]],["app",{"sourceInterval":[6111,6128]},"ExpressionCompare",[]]]],"ExpressionCompare_not":["define",{"sourceInterval":[6153,6198]},null,[],["seq",{"sourceInterval":[6153,6192]},["app",{"sourceInterval":[6153,6170]},"ExpressionCompare",[]],["terminal",{"sourceInterval":[6171,6175]},"!="],["app",{"sourceInterval":[6176,6192]},"ExpressionBinary",[]]]],"ExpressionCompare_eq":["define",{"sourceInterval":[6223,6267]},null,[],["seq",{"sourceInterval":[6223,6262]},["app",{"sourceInterval":[6223,6240]},"ExpressionCompare",[]],["terminal",{"sourceInterval":[6241,6245]},"=="],["app",{"sourceInterval":[6246,6262]},"ExpressionBinary",[]]]],"ExpressionCompare_gt":["define",{"sourceInterval":[6292,6335]},null,[],["seq",{"sourceInterval":[6292,6330]},["app",{"sourceInterval":[6292,6309]},"ExpressionCompare",[]],["terminal",{"sourceInterval":[6310,6313]},">"],["app",{"sourceInterval":[6314,6330]},"ExpressionBinary",[]]]],"ExpressionCompare_gte":["define",{"sourceInterval":[6360,6405]},null,[],["seq",{"sourceInterval":[6360,6399]},["app",{"sourceInterval":[6360,6377]},"ExpressionCompare",[]],["terminal",{"sourceInterval":[6378,6382]},">="],["app",{"sourceInterval":[6383,6399]},"ExpressionBinary",[]]]],"ExpressionCompare_lt":["define",{"sourceInterval":[6430,6473]},null,[],["seq",{"sourceInterval":[6430,6468]},["app",{"sourceInterval":[6430,6447]},"ExpressionCompare",[]],["terminal",{"sourceInterval":[6448,6451]},"<"],["app",{"sourceInterval":[6452,6468]},"ExpressionBinary",[]]]],"ExpressionCompare_lte":["define",{"sourceInterval":[6498,6543]},null,[],["seq",{"sourceInterval":[6498,6537]},["app",{"sourceInterval":[6498,6515]},"ExpressionCompare",[]],["terminal",{"sourceInterval":[6516,6520]},"<="],["app",{"sourceInterval":[6521,6537]},"ExpressionBinary",[]]]],"ExpressionCompare":["define",{"sourceInterval":[6133,6584]},null,[],["alt",{"sourceInterval":[6153,6584]},["app",{"sourceInterval":[6153,6192]},"ExpressionCompare_not",[]],["app",{"sourceInterval":[6223,6262]},"ExpressionCompare_eq",[]],["app",{"sourceInterval":[6292,6330]},"ExpressionCompare_gt",[]],["app",{"sourceInterval":[6360,6399]},"ExpressionCompare_gte",[]],["app",{"sourceInterval":[6430,6468]},"ExpressionCompare_lt",[]],["app",{"sourceInterval":[6498,6537]},"ExpressionCompare_lte",[]],["app",{"sourceInterval":[6568,6584]},"ExpressionBinary",[]]]],"ExpressionBinary_shr":["define",{"sourceInterval":[6608,6649]},null,[],["seq",{"sourceInterval":[6608,6643]},["app",{"sourceInterval":[6608,6624]},"ExpressionBinary",[]],["terminal",{"sourceInterval":[6625,6629]},">>"],["app",{"sourceInterval":[6630,6643]},"ExpressionAdd",[]]]],"ExpressionBinary_shl":["define",{"sourceInterval":[6672,6713]},null,[],["seq",{"sourceInterval":[6672,6707]},["app",{"sourceInterval":[6672,6688]},"ExpressionBinary",[]],["terminal",{"sourceInterval":[6689,6693]},"<<"],["app",{"sourceInterval":[6694,6707]},"ExpressionAdd",[]]]],"ExpressionBinary_bin_and":["define",{"sourceInterval":[6736,6780]},null,[],["seq",{"sourceInterval":[6736,6770]},["app",{"sourceInterval":[6736,6752]},"ExpressionBinary",[]],["terminal",{"sourceInterval":[6753,6756]},"&"],["app",{"sourceInterval":[6757,6770]},"ExpressionAdd",[]]]],"ExpressionBinary_bin_or":["define",{"sourceInterval":[6803,6846]},null,[],["seq",{"sourceInterval":[6803,6837]},["app",{"sourceInterval":[6803,6819]},"ExpressionBinary",[]],["terminal",{"sourceInterval":[6820,6823]},"|"],["app",{"sourceInterval":[6824,6837]},"ExpressionAdd",[]]]],"ExpressionBinary":["define",{"sourceInterval":[6589,6882]},null,[],["alt",{"sourceInterval":[6608,6882]},["app",{"sourceInterval":[6608,6643]},"ExpressionBinary_shr",[]],["app",{"sourceInterval":[6672,6707]},"ExpressionBinary_shl",[]],["app",{"sourceInterval":[6736,6770]},"ExpressionBinary_bin_and",[]],["app",{"sourceInterval":[6803,6837]},"ExpressionBinary_bin_or",[]],["app",{"sourceInterval":[6869,6882]},"ExpressionAdd",[]]]],"ExpressionAdd_add":["define",{"sourceInterval":[6903,6945]},null,[],["seq",{"sourceInterval":[6903,6939]},["app",{"sourceInterval":[6903,6916]},"ExpressionAdd",[]],["terminal",{"sourceInterval":[6917,6920]},"+"],["not",{"sourceInterval":[6921,6925]},["terminal",{"sourceInterval":[6922,6925]},"+"]],["app",{"sourceInterval":[6926,6939]},"ExpressionMul",[]]]],"ExpressionAdd_sub":["define",{"sourceInterval":[6966,7008]},null,[],["seq",{"sourceInterval":[6966,7002]},["app",{"sourceInterval":[6966,6979]},"ExpressionAdd",[]],["terminal",{"sourceInterval":[6980,6983]},"-"],["not",{"sourceInterval":[6984,6988]},["terminal",{"sourceInterval":[6985,6988]},"-"]],["app",{"sourceInterval":[6989,7002]},"ExpressionMul",[]]]],"ExpressionAdd":["define",{"sourceInterval":[6887,7042]},null,[],["alt",{"sourceInterval":[6903,7042]},["app",{"sourceInterval":[6903,6939]},"ExpressionAdd_add",[]],["app",{"sourceInterval":[6966,7002]},"ExpressionAdd_sub",[]],["app",{"sourceInterval":[7029,7042]},"ExpressionMul",[]]]],"ExpressionMul_mul":["define",{"sourceInterval":[7063,7102]},null,[],["seq",{"sourceInterval":[7063,7096]},["app",{"sourceInterval":[7063,7076]},"ExpressionMul",[]],["terminal",{"sourceInterval":[7077,7080]},"*"],["app",{"sourceInterval":[7081,7096]},"ExpressionUnary",[]]]],"ExpressionMul_div":["define",{"sourceInterval":[7123,7162]},null,[],["seq",{"sourceInterval":[7123,7156]},["app",{"sourceInterval":[7123,7136]},"ExpressionMul",[]],["terminal",{"sourceInterval":[7137,7140]},"/"],["app",{"sourceInterval":[7141,7156]},"ExpressionUnary",[]]]],"ExpressionMul_rem":["define",{"sourceInterval":[7183,7222]},null,[],["seq",{"sourceInterval":[7183,7216]},["app",{"sourceInterval":[7183,7196]},"ExpressionMul",[]],["terminal",{"sourceInterval":[7197,7200]},"%"],["app",{"sourceInterval":[7201,7216]},"ExpressionUnary",[]]]],"ExpressionMul":["define",{"sourceInterval":[7047,7258]},null,[],["alt",{"sourceInterval":[7063,7258]},["app",{"sourceInterval":[7063,7096]},"ExpressionMul_mul",[]],["app",{"sourceInterval":[7123,7156]},"ExpressionMul_div",[]],["app",{"sourceInterval":[7183,7216]},"ExpressionMul_rem",[]],["app",{"sourceInterval":[7243,7258]},"ExpressionUnary",[]]]],"ExpressionUnary_neg":["define",{"sourceInterval":[7281,7312]},null,[],["seq",{"sourceInterval":[7281,7306]},["terminal",{"sourceInterval":[7281,7284]},"-"],["app",{"sourceInterval":[7285,7306]},"ExpressionUnarySuffix",[]]]],"ExpressionUnary_add":["define",{"sourceInterval":[7335,7366]},null,[],["seq",{"sourceInterval":[7335,7360]},["terminal",{"sourceInterval":[7335,7338]},"+"],["app",{"sourceInterval":[7339,7360]},"ExpressionUnarySuffix",[]]]],"ExpressionUnary_not":["define",{"sourceInterval":[7389,7420]},null,[],["seq",{"sourceInterval":[7389,7414]},["terminal",{"sourceInterval":[7389,7392]},"!"],["app",{"sourceInterval":[7393,7414]},"ExpressionUnarySuffix",[]]]],"ExpressionUnary":["define",{"sourceInterval":[7263,7464]},null,[],["alt",{"sourceInterval":[7281,7464]},["app",{"sourceInterval":[7281,7306]},"ExpressionUnary_neg",[]],["app",{"sourceInterval":[7335,7360]},"ExpressionUnary_add",[]],["app",{"sourceInterval":[7389,7414]},"ExpressionUnary_not",[]],["app",{"sourceInterval":[7443,7464]},"ExpressionUnarySuffix",[]]]],"ExpressionUnarySuffix_notNull":["define",{"sourceInterval":[7493,7523]},null,[],["seq",{"sourceInterval":[7493,7513]},["app",{"sourceInterval":[7493,7508]},"ExpressionValue",[]],["terminal",{"sourceInterval":[7509,7513]},"!!"]]],"ExpressionUnarySuffix":["define",{"sourceInterval":[7469,7567]},null,[],["alt",{"sourceInterval":[7493,7567]},["app",{"sourceInterval":[7493,7513]},"ExpressionUnarySuffix_notNull",[]],["app",{"sourceInterval":[7552,7567]},"ExpressionValue",[]]]],"ExpressionBracket":["define",{"sourceInterval":[7572,7610]},null,[],["seq",{"sourceInterval":[7592,7610]},["terminal",{"sourceInterval":[7592,7595]},"("],["app",{"sourceInterval":[7596,7606]},"Expression",[]],["terminal",{"sourceInterval":[7607,7610]},")"]]],"ExpressionValue":["define",{"sourceInterval":[7642,8032]},null,[],["alt",{"sourceInterval":[7660,8032]},["app",{"sourceInterval":[7660,7674]},"ExpressionCall",[]],["app",{"sourceInterval":[7697,7712]},"ExpressionField",[]],["app",{"sourceInterval":[7735,7755]},"ExpressionStaticCall",[]],["app",{"sourceInterval":[7778,7795]},"ExpressionBracket",[]],["app",{"sourceInterval":[7818,7831]},"ExpressionNew",[]],["app",{"sourceInterval":[7854,7868]},"integerLiteral",[]],["app",{"sourceInterval":[7891,7902]},"boolLiteral",[]],["app",{"sourceInterval":[7925,7927]},"id",[]],["app",{"sourceInterval":[7950,7954]},"null",[]],["app",{"sourceInterval":[7977,7993]},"ExpressionInitOf",[]],["app",{"sourceInterval":[8016,8032]},"ExpressionString",[]]]],"ExpressionString":["define",{"sourceInterval":[8037,8069]},null,[],["app",{"sourceInterval":[8056,8069]},"stringLiteral",[]]],"ExpressionField":["define",{"sourceInterval":[8074,8119]},null,[],["seq",{"sourceInterval":[8092,8119]},["app",{"sourceInterval":[8092,8107]},"ExpressionValue",[]],["terminal",{"sourceInterval":[8108,8111]},"."],["app",{"sourceInterval":[8112,8114]},"id",[]],["not",{"sourceInterval":[8115,8119]},["terminal",{"sourceInterval":[8116,8119]},"("]]]],"ExpressionCall":["define",{"sourceInterval":[8124,8200]},null,[],["seq",{"sourceInterval":[8141,8200]},["app",{"sourceInterval":[8141,8156]},"ExpressionValue",[]],["terminal",{"sourceInterval":[8157,8160]},"."],["app",{"sourceInterval":[8161,8163]},"id",[]],["terminal",{"sourceInterval":[8164,8167]},"("],["app",{"sourceInterval":[8168,8191]},"ListOf",[["app",{"sourceInterval":[8175,8185]},"Expression",[]],["terminal",{"sourceInterval":[8187,8190]},","]]],["opt",{"sourceInterval":[8192,8196]},["terminal",{"sourceInterval":[8192,8195]},","]],["terminal",{"sourceInterval":[8197,8200]},")"]]],"ExpressionNew":["define",{"sourceInterval":[8205,8262]},null,[],["seq",{"sourceInterval":[8221,8262]},["app",{"sourceInterval":[8221,8223]},"id",[]],["terminal",{"sourceInterval":[8224,8227]},"{"],["app",{"sourceInterval":[8228,8253]},"ListOf",[["app",{"sourceInterval":[8235,8247]},"NewParameter",[]],["terminal",{"sourceInterval":[8249,8252]},","]]],["opt",{"sourceInterval":[8254,8258]},["terminal",{"sourceInterval":[8254,8257]},","]],["terminal",{"sourceInterval":[8259,8262]},"}"]]],"NewParameter":["define",{"sourceInterval":[8267,8299]},null,[],["seq",{"sourceInterval":[8282,8299]},["app",{"sourceInterval":[8282,8284]},"id",[]],["terminal",{"sourceInterval":[8285,8288]},":"],["app",{"sourceInterval":[8289,8299]},"Expression",[]]]],"ExpressionStaticCall":["define",{"sourceInterval":[8304,8366]},null,[],["seq",{"sourceInterval":[8327,8366]},["app",{"sourceInterval":[8327,8329]},"id",[]],["terminal",{"sourceInterval":[8330,8333]},"("],["app",{"sourceInterval":[8334,8357]},"ListOf",[["app",{"sourceInterval":[8341,8351]},"Expression",[]],["terminal",{"sourceInterval":[8353,8356]},","]]],["opt",{"sourceInterval":[8358,8362]},["terminal",{"sourceInterval":[8358,8361]},","]],["terminal",{"sourceInterval":[8363,8366]},")"]]],"ExpressionInitOf":["define",{"sourceInterval":[8371,8436]},null,[],["seq",{"sourceInterval":[8390,8436]},["app",{"sourceInterval":[8390,8396]},"initOf",[]],["app",{"sourceInterval":[8397,8399]},"id",[]],["terminal",{"sourceInterval":[8400,8403]},"("],["app",{"sourceInterval":[8404,8427]},"ListOf",[["app",{"sourceInterval":[8411,8421]},"Expression",[]],["terminal",{"sourceInterval":[8423,8426]},","]]],["opt",{"sourceInterval":[8428,8432]},["terminal",{"sourceInterval":[8428,8431]},","]],["terminal",{"sourceInterval":[8433,8436]},")"]]],"typeLiteral":["define",{"sourceInterval":[8462,8506]},null,[],["seq",{"sourceInterval":[8476,8506]},["app",{"sourceInterval":[8476,8489]},"letterAsciiUC",[]],["star",{"sourceInterval":[8490,8506]},["app",{"sourceInterval":[8490,8505]},"typeLiteralPart",[]]]]],"typeLiteralPart":["define",{"sourceInterval":[8511,8554]},null,[],["alt",{"sourceInterval":[8529,8554]},["app",{"sourceInterval":[8529,8540]},"letterAscii",[]],["app",{"sourceInterval":[8543,8548]},"digit",[]],["terminal",{"sourceInterval":[8551,8554]},"_"]]],"integerLiteral":["define",{"sourceInterval":[8761,8855]},null,[],["alt",{"sourceInterval":[8778,8855]},["app",{"sourceInterval":[8778,8795]},"integerLiteralHex",[]],["app",{"sourceInterval":[8798,8815]},"integerLiteralBin",[]],["app",{"sourceInterval":[8818,8835]},"integerLiteralOct",[]],["app",{"sourceInterval":[8838,8855]},"integerLiteralDec",[]]]],"integerLiteralDec_nonZeroIntegerLiteralDec":["define",{"sourceInterval":[8902,8956]},null,[],["seq",{"sourceInterval":[8902,8928]},["app",{"sourceInterval":[8902,8914]},"nonZeroDigit",[]],["star",{"sourceInterval":[8915,8928]},["seq",{"sourceInterval":[8916,8926]},["opt",{"sourceInterval":[8916,8920]},["terminal",{"sourceInterval":[8916,8919]},"_"]],["app",{"sourceInterval":[8921,8926]},"digit",[]]]]]],"integerLiteralDec_integerLiteralWithLeadingZero":["define",{"sourceInterval":[8981,9040]},null,[],["seq",{"sourceInterval":[8981,8991]},["terminal",{"sourceInterval":[8981,8984]},"0"],["star",{"sourceInterval":[8985,8991]},["app",{"sourceInterval":[8985,8990]},"digit",[]]]]],"integerLiteralDec":["define",{"sourceInterval":[8882,9040]},null,[],["alt",{"sourceInterval":[8902,9040]},["app",{"sourceInterval":[8902,8928]},"integerLiteralDec_nonZeroIntegerLiteralDec",[]],["app",{"sourceInterval":[8981,8991]},"integerLiteralDec_integerLiteralWithLeadingZero",[]]]],"integerLiteralHex":["define",{"sourceInterval":[9045,9104]},null,[],["seq",{"sourceInterval":[9065,9104]},["alt",{"sourceInterval":[9066,9077]},["terminal",{"sourceInterval":[9066,9070]},"0x"],["terminal",{"sourceInterval":[9073,9077]},"0X"]],["app",{"sourceInterval":[9079,9087]},"hexDigit",[]],["star",{"sourceInterval":[9088,9104]},["seq",{"sourceInterval":[9089,9102]},["opt",{"sourceInterval":[9089,9093]},["terminal",{"sourceInterval":[9089,9092]},"_"]],["app",{"sourceInterval":[9094,9102]},"hexDigit",[]]]]]],"integerLiteralBin":["define",{"sourceInterval":[9109,9168]},null,[],["seq",{"sourceInterval":[9129,9168]},["alt",{"sourceInterval":[9130,9141]},["terminal",{"sourceInterval":[9130,9134]},"0b"],["terminal",{"sourceInterval":[9137,9141]},"0B"]],["app",{"sourceInterval":[9143,9151]},"binDigit",[]],["star",{"sourceInterval":[9152,9168]},["seq",{"sourceInterval":[9153,9166]},["opt",{"sourceInterval":[9153,9157]},["terminal",{"sourceInterval":[9153,9156]},"_"]],["app",{"sourceInterval":[9158,9166]},"binDigit",[]]]]]],"integerLiteralOct":["define",{"sourceInterval":[9173,9232]},null,[],["seq",{"sourceInterval":[9193,9232]},["alt",{"sourceInterval":[9194,9205]},["terminal",{"sourceInterval":[9194,9198]},"0o"],["terminal",{"sourceInterval":[9201,9205]},"0O"]],["app",{"sourceInterval":[9207,9215]},"octDigit",[]],["star",{"sourceInterval":[9216,9232]},["seq",{"sourceInterval":[9217,9230]},["opt",{"sourceInterval":[9217,9221]},["terminal",{"sourceInterval":[9217,9220]},"_"]],["app",{"sourceInterval":[9222,9230]},"octDigit",[]]]]]],"binDigit":["define",{"sourceInterval":[9237,9257]},null,[],["alt",{"sourceInterval":[9248,9257]},["terminal",{"sourceInterval":[9248,9251]},"0"],["terminal",{"sourceInterval":[9254,9257]},"1"]]],"octDigit":["define",{"sourceInterval":[9262,9281]},null,[],["range",{"sourceInterval":[9273,9281]},"0","7"]],"nonZeroDigit":["define",{"sourceInterval":[9286,9309]},null,[],["range",{"sourceInterval":[9301,9309]},"1","9"]],"letterAsciiLC":["define",{"sourceInterval":[9330,9354]},null,[],["range",{"sourceInterval":[9346,9354]},"a","z"]],"letterAsciiUC":["define",{"sourceInterval":[9359,9383]},null,[],["range",{"sourceInterval":[9375,9383]},"A","Z"]],"letterAscii":["define",{"sourceInterval":[9388,9431]},null,[],["alt",{"sourceInterval":[9402,9431]},["app",{"sourceInterval":[9402,9415]},"letterAsciiLC",[]],["app",{"sourceInterval":[9418,9431]},"letterAsciiUC",[]]]],"letterComment":["define",{"sourceInterval":[9436,9495]},null,[],["alt",{"sourceInterval":[9452,9495]},["app",{"sourceInterval":[9452,9465]},"letterAsciiLC",[]],["app",{"sourceInterval":[9468,9481]},"letterAsciiUC",[]],["app",{"sourceInterval":[9484,9489]},"digit",[]],["terminal",{"sourceInterval":[9492,9495]},"_"]]],"idStart":["define",{"sourceInterval":[9519,9546]},null,[],["alt",{"sourceInterval":[9529,9546]},["app",{"sourceInterval":[9529,9540]},"letterAscii",[]],["terminal",{"sourceInterval":[9543,9546]},"_"]]],"idPart":["define",{"sourceInterval":[9551,9585]},null,[],["alt",{"sourceInterval":[9560,9585]},["app",{"sourceInterval":[9560,9571]},"letterAscii",[]],["app",{"sourceInterval":[9574,9579]},"digit",[]],["terminal",{"sourceInterval":[9582,9585]},"_"]]],"id":["define",{"sourceInterval":[9590,9628]},null,[],["seq",{"sourceInterval":[9595,9628]},["not",{"sourceInterval":[9595,9608]},["app",{"sourceInterval":[9596,9608]},"reservedWord",[]]],["lex",{"sourceInterval":[9609,9617]},["app",{"sourceInterval":[9610,9617]},"idStart",[]]],["lex",{"sourceInterval":[9618,9628]},["star",{"sourceInterval":[9620,9627]},["app",{"sourceInterval":[9620,9626]},"idPart",[]]]]]],"funcLetter":["define",{"sourceInterval":[9649,9710]},null,[],["alt",{"sourceInterval":[9662,9710]},["app",{"sourceInterval":[9662,9673]},"letterAscii",[]],["terminal",{"sourceInterval":[9676,9679]},"_"],["terminal",{"sourceInterval":[9682,9685]},"'"],["terminal",{"sourceInterval":[9688,9691]},"?"],["terminal",{"sourceInterval":[9694,9697]},"!"],["terminal",{"sourceInterval":[9700,9704]},"::"],["terminal",{"sourceInterval":[9707,9710]},"&"]]],"funcId":["define",{"sourceInterval":[9715,9757]},null,[],["seq",{"sourceInterval":[9724,9757]},["app",{"sourceInterval":[9724,9734]},"funcLetter",[]],["star",{"sourceInterval":[9735,9757]},["lex",{"sourceInterval":[9735,9756]},["alt",{"sourceInterval":[9737,9755]},["app",{"sourceInterval":[9737,9747]},"funcLetter",[]],["app",{"sourceInterval":[9750,9755]},"digit",[]]]]]]],"boolLiteral":["define",{"sourceInterval":[9783,9823]},null,[],["seq",{"sourceInterval":[9797,9823]},["alt",{"sourceInterval":[9798,9814]},["terminal",{"sourceInterval":[9798,9804]},"true"],["terminal",{"sourceInterval":[9807,9814]},"false"]],["not",{"sourceInterval":[9816,9823]},["app",{"sourceInterval":[9817,9823]},"idPart",[]]]]],"stringLiteral":["define",{"sourceInterval":[9851,9920]},null,[],["seq",{"sourceInterval":[9867,9920]},["terminal",{"sourceInterval":[9867,9871]},"\""],["star",{"sourceInterval":[9872,9915]},["alt",{"sourceInterval":[9873,9913]},["app",{"sourceInterval":[9873,9896]},"nonQuoteOrBackslashChar",[]],["app",{"sourceInterval":[9899,9913]},"escapeSequence",[]]]],["terminal",{"sourceInterval":[9916,9920]},"\""]]],"nonQuoteOrBackslashChar":["define",{"sourceInterval":[9925,9969]},null,[],["seq",{"sourceInterval":[9951,9969]},["not",{"sourceInterval":[9951,9965]},["alt",{"sourceInterval":[9953,9964]},["terminal",{"sourceInterval":[9953,9957]},"\""],["terminal",{"sourceInterval":[9960,9964]},"\\"]]],["app",{"sourceInterval":[9966,9969]},"any",[]]]],"escapeSequence_backslash":["define",{"sourceInterval":[9991,10010]},null,[],["terminal",{"sourceInterval":[9991,9997]},"\\\\"]],"escapeSequence_doubleQuote":["define",{"sourceInterval":[10032,10053]},null,[],["terminal",{"sourceInterval":[10032,10038]},"\\\""]],"escapeSequence_newline":["define",{"sourceInterval":[10075,10091]},null,[],["terminal",{"sourceInterval":[10075,10080]},"\\n"]],"escapeSequence_carriageReturn":["define",{"sourceInterval":[10113,10136]},null,[],["terminal",{"sourceInterval":[10113,10118]},"\\r"]],"escapeSequence_tab":["define",{"sourceInterval":[10158,10170]},null,[],["terminal",{"sourceInterval":[10158,10163]},"\\t"]],"escapeSequence_verticalTab":["define",{"sourceInterval":[10192,10212]},null,[],["terminal",{"sourceInterval":[10192,10197]},"\\v"]],"escapeSequence_backspace":["define",{"sourceInterval":[10234,10252]},null,[],["terminal",{"sourceInterval":[10234,10239]},"\\b"]],"escapeSequence_formFeed":["define",{"sourceInterval":[10274,10291]},null,[],["terminal",{"sourceInterval":[10274,10279]},"\\f"]],"escapeSequence_unicodeCodePoint":["define",{"sourceInterval":[10313,10402]},null,[],["seq",{"sourceInterval":[10313,10382]},["terminal",{"sourceInterval":[10313,10319]},"\\u{"],["app",{"sourceInterval":[10320,10328]},"hexDigit",[]],["opt",{"sourceInterval":[10329,10338]},["app",{"sourceInterval":[10329,10337]},"hexDigit",[]]],["opt",{"sourceInterval":[10339,10348]},["app",{"sourceInterval":[10339,10347]},"hexDigit",[]]],["opt",{"sourceInterval":[10349,10358]},["app",{"sourceInterval":[10349,10357]},"hexDigit",[]]],["opt",{"sourceInterval":[10359,10368]},["app",{"sourceInterval":[10359,10367]},"hexDigit",[]]],["opt",{"sourceInterval":[10369,10378]},["app",{"sourceInterval":[10369,10377]},"hexDigit",[]]],["terminal",{"sourceInterval":[10379,10382]},"}"]]],"escapeSequence_unicodeEscape":["define",{"sourceInterval":[10424,10482]},null,[],["seq",{"sourceInterval":[10424,10465]},["terminal",{"sourceInterval":[10424,10429]},"\\u"],["app",{"sourceInterval":[10430,10438]},"hexDigit",[]],["app",{"sourceInterval":[10439,10447]},"hexDigit",[]],["app",{"sourceInterval":[10448,10456]},"hexDigit",[]],["app",{"sourceInterval":[10457,10465]},"hexDigit",[]]]],"escapeSequence_hexEscape":["define",{"sourceInterval":[10504,10540]},null,[],["seq",{"sourceInterval":[10504,10527]},["terminal",{"sourceInterval":[10504,10509]},"\\x"],["app",{"sourceInterval":[10510,10518]},"hexDigit",[]],["app",{"sourceInterval":[10519,10527]},"hexDigit",[]]]],"escapeSequence":["define",{"sourceInterval":[9974,10540]},null,[],["alt",{"sourceInterval":[9991,10540]},["app",{"sourceInterval":[9991,9997]},"escapeSequence_backslash",[]],["app",{"sourceInterval":[10032,10038]},"escapeSequence_doubleQuote",[]],["app",{"sourceInterval":[10075,10080]},"escapeSequence_newline",[]],["app",{"sourceInterval":[10113,10118]},"escapeSequence_carriageReturn",[]],["app",{"sourceInterval":[10158,10163]},"escapeSequence_tab",[]],["app",{"sourceInterval":[10192,10197]},"escapeSequence_verticalTab",[]],["app",{"sourceInterval":[10234,10239]},"escapeSequence_backspace",[]],["app",{"sourceInterval":[10274,10279]},"escapeSequence_formFeed",[]],["app",{"sourceInterval":[10313,10382]},"escapeSequence_unicodeCodePoint",[]],["app",{"sourceInterval":[10424,10465]},"escapeSequence_unicodeEscape",[]],["app",{"sourceInterval":[10504,10527]},"escapeSequence_hexEscape",[]]]],"keyword":["define",{"sourceInterval":[10593,11106]},null,[],["alt",{"sourceInterval":[10603,11106]},["app",{"sourceInterval":[10603,10606]},"fun",[]],["app",{"sourceInterval":[10622,10625]},"let",[]],["app",{"sourceInterval":[10640,10646]},"return",[]],["app",{"sourceInterval":[10662,10668]},"extend",[]],["app",{"sourceInterval":[10684,10690]},"native",[]],["app",{"sourceInterval":[10706,10712]},"public",[]],["app",{"sourceInterval":[10728,10732]},"null",[]],["app",{"sourceInterval":[10748,10750]},"if",[]],["app",{"sourceInterval":[10766,10770]},"else",[]],["app",{"sourceInterval":[10786,10791]},"while",[]],["app",{"sourceInterval":[10807,10813]},"repeat",[]],["app",{"sourceInterval":[10829,10831]},"do",[]],["app",{"sourceInterval":[10847,10852]},"until",[]],["app",{"sourceInterval":[10868,10870]},"as",[]],["app",{"sourceInterval":[10887,10894]},"mutates",[]],["app",{"sourceInterval":[10909,10916]},"extends",[]],["app",{"sourceInterval":[10931,10937]},"import",[]],["app",{"sourceInterval":[10952,10956]},"with",[]],["app",{"sourceInterval":[10971,10976]},"trait",[]],["app",{"sourceInterval":[10991,10997]},"initOf",[]],["app",{"sourceInterval":[11012,11020]},"override",[]],["app",{"sourceInterval":[11035,11043]},"abstract",[]],["app",{"sourceInterval":[11058,11065]},"virtual",[]],["app",{"sourceInterval":[11080,11086]},"inline",[]],["app",{"sourceInterval":[11101,11106]},"const",[]]]],"contract":["define",{"sourceInterval":[11111,11140]},null,[],["seq",{"sourceInterval":[11122,11140]},["terminal",{"sourceInterval":[11122,11132]},"contract"],["not",{"sourceInterval":[11133,11140]},["app",{"sourceInterval":[11134,11140]},"idPart",[]]]]],"let":["define",{"sourceInterval":[11145,11164]},null,[],["seq",{"sourceInterval":[11151,11164]},["terminal",{"sourceInterval":[11151,11156]},"let"],["not",{"sourceInterval":[11157,11164]},["app",{"sourceInterval":[11158,11164]},"idPart",[]]]]],"fun":["define",{"sourceInterval":[11169,11188]},null,[],["seq",{"sourceInterval":[11175,11188]},["terminal",{"sourceInterval":[11175,11180]},"fun"],["not",{"sourceInterval":[11181,11188]},["app",{"sourceInterval":[11182,11188]},"idPart",[]]]]],"return":["define",{"sourceInterval":[11193,11218]},null,[],["seq",{"sourceInterval":[11202,11218]},["terminal",{"sourceInterval":[11202,11210]},"return"],["not",{"sourceInterval":[11211,11218]},["app",{"sourceInterval":[11212,11218]},"idPart",[]]]]],"extend":["define",{"sourceInterval":[11223,11248]},null,[],["seq",{"sourceInterval":[11232,11248]},["terminal",{"sourceInterval":[11232,11240]},"extend"],["not",{"sourceInterval":[11241,11248]},["app",{"sourceInterval":[11242,11248]},"idPart",[]]]]],"native":["define",{"sourceInterval":[11253,11278]},null,[],["seq",{"sourceInterval":[11262,11278]},["terminal",{"sourceInterval":[11262,11270]},"native"],["not",{"sourceInterval":[11271,11278]},["app",{"sourceInterval":[11272,11278]},"idPart",[]]]]],"public":["define",{"sourceInterval":[11283,11308]},null,[],["seq",{"sourceInterval":[11292,11308]},["terminal",{"sourceInterval":[11292,11300]},"public"],["not",{"sourceInterval":[11301,11308]},["app",{"sourceInterval":[11302,11308]},"idPart",[]]]]],"null":["define",{"sourceInterval":[11313,11334]},null,[],["seq",{"sourceInterval":[11320,11334]},["terminal",{"sourceInterval":[11320,11326]},"null"],["not",{"sourceInterval":[11327,11334]},["app",{"sourceInterval":[11328,11334]},"idPart",[]]]]],"if":["define",{"sourceInterval":[11339,11356]},null,[],["seq",{"sourceInterval":[11344,11356]},["terminal",{"sourceInterval":[11344,11348]},"if"],["not",{"sourceInterval":[11349,11356]},["app",{"sourceInterval":[11350,11356]},"idPart",[]]]]],"else":["define",{"sourceInterval":[11361,11382]},null,[],["seq",{"sourceInterval":[11368,11382]},["terminal",{"sourceInterval":[11368,11374]},"else"],["not",{"sourceInterval":[11375,11382]},["app",{"sourceInterval":[11376,11382]},"idPart",[]]]]],"while":["define",{"sourceInterval":[11387,11410]},null,[],["seq",{"sourceInterval":[11395,11410]},["terminal",{"sourceInterval":[11395,11402]},"while"],["not",{"sourceInterval":[11403,11410]},["app",{"sourceInterval":[11404,11410]},"idPart",[]]]]],"repeat":["define",{"sourceInterval":[11415,11440]},null,[],["seq",{"sourceInterval":[11424,11440]},["terminal",{"sourceInterval":[11424,11432]},"repeat"],["not",{"sourceInterval":[11433,11440]},["app",{"sourceInterval":[11434,11440]},"idPart",[]]]]],"do":["define",{"sourceInterval":[11445,11462]},null,[],["seq",{"sourceInterval":[11450,11462]},["terminal",{"sourceInterval":[11450,11454]},"do"],["not",{"sourceInterval":[11455,11462]},["app",{"sourceInterval":[11456,11462]},"idPart",[]]]]],"until":["define",{"sourceInterval":[11467,11490]},null,[],["seq",{"sourceInterval":[11475,11490]},["terminal",{"sourceInterval":[11475,11482]},"until"],["not",{"sourceInterval":[11483,11490]},["app",{"sourceInterval":[11484,11490]},"idPart",[]]]]],"as":["define",{"sourceInterval":[11495,11512]},null,[],["seq",{"sourceInterval":[11500,11512]},["terminal",{"sourceInterval":[11500,11504]},"as"],["not",{"sourceInterval":[11505,11512]},["app",{"sourceInterval":[11506,11512]},"idPart",[]]]]],"mutates":["define",{"sourceInterval":[11517,11544]},null,[],["seq",{"sourceInterval":[11527,11544]},["terminal",{"sourceInterval":[11527,11536]},"mutates"],["not",{"sourceInterval":[11537,11544]},["app",{"sourceInterval":[11538,11544]},"idPart",[]]]]],"extends":["define",{"sourceInterval":[11549,11576]},null,[],["seq",{"sourceInterval":[11559,11576]},["terminal",{"sourceInterval":[11559,11568]},"extends"],["not",{"sourceInterval":[11569,11576]},["app",{"sourceInterval":[11570,11576]},"idPart",[]]]]],"import":["define",{"sourceInterval":[11581,11606]},null,[],["seq",{"sourceInterval":[11590,11606]},["terminal",{"sourceInterval":[11590,11598]},"import"],["not",{"sourceInterval":[11599,11606]},["app",{"sourceInterval":[11600,11606]},"idPart",[]]]]],"with":["define",{"sourceInterval":[11611,11632]},null,[],["seq",{"sourceInterval":[11618,11632]},["terminal",{"sourceInterval":[11618,11624]},"with"],["not",{"sourceInterval":[11625,11632]},["app",{"sourceInterval":[11626,11632]},"idPart",[]]]]],"trait":["define",{"sourceInterval":[11637,11660]},null,[],["seq",{"sourceInterval":[11645,11660]},["terminal",{"sourceInterval":[11645,11652]},"trait"],["not",{"sourceInterval":[11653,11660]},["app",{"sourceInterval":[11654,11660]},"idPart",[]]]]],"initOf":["define",{"sourceInterval":[11665,11690]},null,[],["seq",{"sourceInterval":[11674,11690]},["terminal",{"sourceInterval":[11674,11682]},"initOf"],["not",{"sourceInterval":[11683,11690]},["app",{"sourceInterval":[11684,11690]},"idPart",[]]]]],"virtual":["define",{"sourceInterval":[11695,11722]},null,[],["seq",{"sourceInterval":[11705,11722]},["terminal",{"sourceInterval":[11705,11714]},"virtual"],["not",{"sourceInterval":[11715,11722]},["app",{"sourceInterval":[11716,11722]},"idPart",[]]]]],"override":["define",{"sourceInterval":[11727,11756]},null,[],["seq",{"sourceInterval":[11738,11756]},["terminal",{"sourceInterval":[11738,11748]},"override"],["not",{"sourceInterval":[11749,11756]},["app",{"sourceInterval":[11750,11756]},"idPart",[]]]]],"inline":["define",{"sourceInterval":[11761,11786]},null,[],["seq",{"sourceInterval":[11770,11786]},["terminal",{"sourceInterval":[11770,11778]},"inline"],["not",{"sourceInterval":[11779,11786]},["app",{"sourceInterval":[11780,11786]},"idPart",[]]]]],"const":["define",{"sourceInterval":[11791,11814]},null,[],["seq",{"sourceInterval":[11799,11814]},["terminal",{"sourceInterval":[11799,11806]},"const"],["not",{"sourceInterval":[11807,11814]},["app",{"sourceInterval":[11808,11814]},"idPart",[]]]]],"abstract":["define",{"sourceInterval":[11819,11848]},null,[],["seq",{"sourceInterval":[11830,11848]},["terminal",{"sourceInterval":[11830,11840]},"abstract"],["not",{"sourceInterval":[11841,11848]},["app",{"sourceInterval":[11842,11848]},"idPart",[]]]]],"nameAttribute":["define",{"sourceInterval":[11872,11895]},null,[],["terminal",{"sourceInterval":[11888,11895]},"@name"]],"reservedWord":["define",{"sourceInterval":[11917,11939]},null,[],["app",{"sourceInterval":[11932,11939]},"keyword",[]]],"space":["extend",{"sourceInterval":[11961,11994]},null,[],["alt",{"sourceInterval":[11970,11994]},["app",{"sourceInterval":[11970,11977]},"comment",[]],["app",{"sourceInterval":[11980,11994]},"lineTerminator",[]]]],"comment":["define",{"sourceInterval":[11999,12045]},null,[],["alt",{"sourceInterval":[12009,12045]},["app",{"sourceInterval":[12009,12025]},"multiLineComment",[]],["app",{"sourceInterval":[12028,12045]},"singleLineComment",[]]]],"lineTerminator":["define",{"sourceInterval":[12050,12100]},null,[],["alt",{"sourceInterval":[12067,12100]},["terminal",{"sourceInterval":[12067,12071]},"\n"],["terminal",{"sourceInterval":[12074,12078]},"\r"],["terminal",{"sourceInterval":[12081,12089]},"\u2028"],["terminal",{"sourceInterval":[12092,12100]},"\u2029"]]],"multiLineComment":["define",{"sourceInterval":[12105,12146]},null,[],["seq",{"sourceInterval":[12124,12146]},["terminal",{"sourceInterval":[12124,12128]},"/*"],["star",{"sourceInterval":[12129,12141]},["seq",{"sourceInterval":[12130,12139]},["not",{"sourceInterval":[12130,12135]},["terminal",{"sourceInterval":[12131,12135]},"*/"]],["app",{"sourceInterval":[12136,12139]},"any",[]]]],["terminal",{"sourceInterval":[12142,12146]},"*/"]]],"singleLineComment":["define",{"sourceInterval":[12151,12198]},null,[],["seq",{"sourceInterval":[12171,12198]},["terminal",{"sourceInterval":[12171,12175]},"//"],["star",{"sourceInterval":[12176,12198]},["seq",{"sourceInterval":[12177,12196]},["not",{"sourceInterval":[12177,12192]},["app",{"sourceInterval":[12178,12192]},"lineTerminator",[]]],["app",{"sourceInterval":[12193,12196]},"any",[]]]]]]}]);module.exports=result; \ No newline at end of file +'use strict';const ohm=(require('ohm-js').default || require('ohm-js'));const result=ohm.makeRecipe(["grammar",{"source":"Tact {\n\n // Starting point of the program\n Program = ProgramItem*\n ProgramItem = Struct\n | Contract\n | Primitive\n | StaticFunction\n | NativeFunction\n | ProgramImport\n | Trait\n | Constant\n ProgramImport = import stringLiteral \";\"\n\n // Built-in declarations\n Primitive = \"primitive\" Type \";\"\n\n // Static function\n StaticFunction = Function\n NativeFunction = nameAttribute \"(\" funcId \")\" FunctionAttribute* native id \"(\" ListOf \",\"? \")\" \";\" --withVoid\n | nameAttribute \"(\" funcId \")\" FunctionAttribute* native id \"(\" ListOf \",\"? \")\" \":\" Type \";\" --withType\n \n // Field declarations\n Type = typeLiteral \"?\" --optional\n | typeLiteral --required\n | \"map\" \"<\" typeLiteral (as id)? \",\" typeLiteral (as id)? \">\" --map\n | \"bounced\" \"<\" typeLiteral \">\" --bounced\n Field = id \":\" Type \";\" --default\n | id \":\" Type \"=\" Expression \";\" --defaultWithInit\n | id \":\" Type as id \";\" --withSerialization\n | id \":\" Type as id \"=\" Expression \";\" --withSerializationAndInit\n \n // Constant\n ConstantAttribute = virtual --virtual\n | override --override\n | abstract --abstract\n Constant = ConstantAttribute* ~fun const id \":\" Type \"=\" Expression \";\" --withValue\n | ConstantAttribute* ~fun const id \":\" Type \";\" --withEmpty\n\n // Struct\n Struct = \"struct\" typeLiteral \"{\" StructBody* \"}\" --originary\n | \"message\" typeLiteral \"{\" StructBody* \"}\" --message\n | \"message\" \"(\" integerLiteral \")\" typeLiteral \"{\" StructBody* \"}\" --messageWithId\n StructBody = Field\n\n // Contract\n Contract = ContractAttribute* contract id \"{\" ContractBody* \"}\" --simple\n | ContractAttribute* contract id with ListOf \"{\" ContractBody* \"}\" --withTraits\n ContractInit = \"init\" \"(\" ListOf \")\" \"{\" Statement* \"}\"\n ContractBody = Field\n | ContractInit\n | ReceiveFunction\n | Function\n | Constant\n \n // Trait\n Trait = ContractAttribute* trait id \"{\" TraitBody* \"}\" --originary\n | ContractAttribute* trait id with ListOf \"{\" TraitBody* \"}\" --withTraits\n TraitBody = Field\n | ReceiveFunction\n | Function\n | Constant\n\n // Contract attributes\n ContractAttribute = \"@interface\" \"(\" stringLiteral \")\" --interface\n\n // Function\n FunctionAttribute = \"get\" --getter\n | mutates --mutates\n | extends --extends\n | virtual --virtual\n | override --override\n | inline --inline\n | abstract --abstract\n Function = FunctionAttribute* fun id \"(\" ListOf \",\"? \")\" \"{\" Statement* \"}\" --withVoid\n | FunctionAttribute* fun id \"(\" ListOf \",\"? \")\" \":\" Type \"{\" Statement* \"}\" --withType\n | FunctionAttribute* fun id \"(\" ListOf \",\"? \")\" \";\" --abstractVoid\n | FunctionAttribute* fun id \"(\" ListOf \",\"? \")\" \":\" Type \";\" --abstractType\n FunctionArg = id \":\" Type\n \n ReceiveFunction = \"receive\" \"(\" FunctionArg \")\" \"{\" Statement* \"}\" --simple\n | \"receive\" \"(\" \")\" \"{\" Statement* \"}\" --empty\n | \"receive\" \"(\" stringLiteral \")\" \"{\" Statement* \"}\" --comment\n | \"bounced\" \"(\" FunctionArg \")\" \"{\" Statement* \"}\" --bounced\n | \"external\" \"(\" FunctionArg \")\" \"{\" Statement* \"}\" --externalSimple\n | \"external\" \"(\" stringLiteral \")\" \"{\" Statement* \"}\" --externalComment\n | \"external\" \"(\" \")\" \"{\" Statement* \"}\" --externalEmpty\n\n // Statements\n Statement = StatementLet\n | StatementBlock\n | StatementReturn\n | StatementExpression\n | StatementAssign\n | StatementAugmentedAssign\n | StatementCondition\n | StatementWhile\n | StatementRepeat\n | StatementUntil\n | StatementBreak\n StatementBlock = \"{\" Statement* \"}\"\n StatementLet = let id \":\" Type \"=\" Expression \";\"\n StatementReturn = return Expression \";\" --withExpression\n | return \";\" --withoutExpression\n StatementBreak = break \";\"\n StatementExpression = Expression \";\"\n StatementAssign = LValue \"=\" Expression \";\"\n StatementAugmentedAssign = StatementAugmentedAssignAdd\n | StatementAugmentedAssignSub\n | StatementAugmentedAssignMul\n | StatementAugmentedAssignDiv\n | StatementAugmentedAssignRem\n StatementAugmentedAssignAdd = LValue \"+=\" Expression \";\"\n StatementAugmentedAssignSub = LValue \"-=\" Expression \";\"\n StatementAugmentedAssignMul = LValue \"*=\" Expression \";\"\n StatementAugmentedAssignDiv = LValue \"/=\" Expression \";\"\n StatementAugmentedAssignRem = LValue \"%=\" Expression \";\"\n StatementCondition = if Expression \"{\" Statement* \"}\" ~else --simple\n | if Expression \"{\" Statement* \"}\" else \"{\" Statement* \"}\" --withElse\n | if Expression \"{\" Statement* \"}\" else StatementCondition --withElseIf\n StatementWhile = while \"(\" Expression \")\" \"{\" Statement* \"}\"\n StatementRepeat = repeat \"(\" Expression \")\" \"{\" Statement* \"}\"\n StatementUntil = do \"{\" Statement* \"}\" until \"(\" Expression \")\" \";\"\n\n // L-value\n LValue = id \".\" LValue --more\n | id --single\n\n // Expressions\n Expression = ExpressionConditional\n ExpressionConditional = ExpressionOr \"?\" ExpressionOr \":\" ExpressionConditional --ternary\n | ExpressionOr\n ExpressionOr = ExpressionOr \"||\" ExpressionAnd --or\n | ExpressionAnd\n ExpressionAnd = ExpressionAnd \"&&\" ExpressionCompare --and\n | ExpressionCompare\n ExpressionCompare = ExpressionCompare \"!=\" ExpressionBinary --not\n | ExpressionCompare \"==\" ExpressionBinary --eq\n | ExpressionCompare \">\" ExpressionBinary --gt\n | ExpressionCompare \">=\" ExpressionBinary --gte\n | ExpressionCompare \"<\" ExpressionBinary --lt\n | ExpressionCompare \"<=\" ExpressionBinary --lte\n | ExpressionBinary\n ExpressionBinary = ExpressionBinary \">>\" ExpressionAdd --shr\n | ExpressionBinary \"<<\" ExpressionAdd --shl\n | ExpressionBinary \"&\" ExpressionAdd --bin_and\n | ExpressionBinary \"|\" ExpressionAdd --bin_or\n | ExpressionAdd\n ExpressionAdd = ExpressionAdd \"+\" ~\"+\" ExpressionMul --add\n | ExpressionAdd \"-\" ~\"-\" ExpressionMul --sub\n | ExpressionMul\n ExpressionMul = ExpressionMul \"*\" ExpressionUnary --mul\n | ExpressionMul \"/\" ExpressionUnary --div\n | ExpressionMul \"%\" ExpressionUnary --rem\n | ExpressionUnary\n ExpressionUnary = \"-\" ExpressionUnarySuffix --neg\n | \"+\" ExpressionUnarySuffix --add\n | \"!\" ExpressionUnarySuffix --not\n | ExpressionUnarySuffix\n ExpressionUnarySuffix = ExpressionValue \"!!\" --notNull\n | ExpressionValue\n ExpressionBracket = \"(\" Expression \")\"\n\n // Order is important\n ExpressionValue = ExpressionCall\n | ExpressionField\n | ExpressionStaticCall\n | ExpressionBracket\n | ExpressionNew\n | integerLiteral\n | boolLiteral\n | id\n | null\n | ExpressionInitOf\n | ExpressionString\n ExpressionString = stringLiteral\n ExpressionField = ExpressionValue \".\" id ~\"(\"\n ExpressionCall = ExpressionValue \".\" id \"(\" ListOf \",\"? \")\"\n ExpressionNew = id \"{\" ListOf \",\"? \"}\"\n NewParameter = id \":\" Expression\n ExpressionStaticCall = id \"(\" ListOf \",\"? \")\"\n ExpressionInitOf = initOf id \"(\" ListOf \",\"? \")\"\n\n // Type Literal\n typeLiteral = letterAsciiUC typeLiteralPart*\n typeLiteralPart = letterAscii | digit | \"_\"\n\n // Integer Literal\n // hexDigit defined in Ohm's built-in rules (otherwise: hexDigit = \"0\"..\"9\" | \"a\"..\"f\" | \"A\"..\"F\")\n // digit defined in Ohm's built-in rules (otherwise: digit = \"0\"..\"9\")\n integerLiteral = integerLiteralHex | integerLiteralBin | integerLiteralOct | integerLiteralDec // Order is important\n integerLiteralDec = nonZeroDigit (\"_\"? digit)* --nonZeroIntegerLiteralDec\n | \"0\" digit* --integerLiteralWithLeadingZero\n integerLiteralHex = (\"0x\" | \"0X\") hexDigit (\"_\"? hexDigit)*\n integerLiteralBin = (\"0b\" | \"0B\") binDigit (\"_\"? binDigit)*\n integerLiteralOct = (\"0o\" | \"0O\") octDigit (\"_\"? octDigit)*\n binDigit = \"0\" | \"1\"\n octDigit = \"0\"..\"7\"\n nonZeroDigit = \"1\"..\"9\"\n\n // Letters\n letterAsciiLC = \"a\"..\"z\"\n letterAsciiUC = \"A\"..\"Z\"\n letterAscii = letterAsciiLC | letterAsciiUC\n letterComment = letterAsciiLC | letterAsciiUC | digit | \"_\"\n\n // ID Literal\n idStart = letterAscii | \"_\"\n idPart = letterAscii | digit | \"_\"\n id = ~reservedWord #idStart #(idPart*)\n\n // FunC id\n funcLetter = letterAscii | \"_\" | \"'\" | \"?\" | \"!\" | \"::\" | \"&\"\n funcId = funcLetter #(funcLetter | digit)*\n\n // Bool Literal\n boolLiteral = (\"true\" | \"false\") ~idPart\n\n // String literal\n stringLiteral = \"\\\"\" (nonQuoteOrBackslashChar | escapeSequence)* \"\\\"\"\n nonQuoteOrBackslashChar = ~(\"\\\"\" | \"\\\\\") any\n escapeSequence = \"\\\\\\\\\" -- backslash\n | \"\\\\\\\"\" -- doubleQuote\n | \"\\\\n\" -- newline\n | \"\\\\r\" -- carriageReturn\n | \"\\\\t\" -- tab\n | \"\\\\v\" -- verticalTab\n | \"\\\\b\" -- backspace\n | \"\\\\f\" -- formFeed\n | \"\\\\u{\" hexDigit hexDigit? hexDigit? hexDigit? hexDigit? hexDigit? \"}\" -- unicodeCodePoint\n | \"\\\\u\" hexDigit hexDigit hexDigit hexDigit -- unicodeEscape\n | \"\\\\x\" hexDigit hexDigit -- hexEscape\n\n // Keywords\n // NOTE Order is important\n keyword = fun \n | let\n | return \n | break\n | extend \n | native \n | public \n | null \n | if \n | else \n | while \n | repeat \n | do \n | until \n | as \n | mutates\n | extends\n | import\n | with\n | trait\n | initOf\n | override\n | abstract\n | virtual\n | inline\n | const\n contract = \"contract\" ~idPart\n let = \"let\" ~idPart\n fun = \"fun\" ~idPart\n return = \"return\" ~idPart\n break = \"break\" ~idPart\n extend = \"extend\" ~idPart\n native = \"native\" ~idPart\n public = \"public\" ~idPart\n null = \"null\" ~idPart\n if = \"if\" ~idPart\n else = \"else\" ~idPart\n while = \"while\" ~idPart\n repeat = \"repeat\" ~idPart\n do = \"do\" ~idPart\n until = \"until\" ~idPart\n as = \"as\" ~idPart\n mutates = \"mutates\" ~idPart\n extends = \"extends\" ~idPart\n import = \"import\" ~idPart\n with = \"with\" ~idPart\n trait = \"trait\" ~idPart\n initOf = \"initOf\" ~idPart\n virtual = \"virtual\" ~idPart\n override = \"override\" ~idPart\n inline = \"inline\" ~idPart\n const = \"const\" ~idPart\n abstract = \"abstract\" ~idPart\n\n // Attributes\n nameAttribute = \"@name\"\n\n // Reserved\n reservedWord = keyword\n\n // Comments\n space += comment | lineTerminator\n comment = multiLineComment | singleLineComment\n lineTerminator = \"\\n\" | \"\\r\" | \"\\u2028\" | \"\\u2029\"\n multiLineComment = \"/*\" (~\"*/\" any)* \"*/\"\n singleLineComment = \"//\" (~lineTerminator any)*\n}"},"Tact",null,"Program",{"Program":["define",{"sourceInterval":[49,71]},null,[],["star",{"sourceInterval":[59,71]},["app",{"sourceInterval":[59,70]},"ProgramItem",[]]]],"ProgramItem":["define",{"sourceInterval":[76,300]},null,[],["alt",{"sourceInterval":[90,300]},["app",{"sourceInterval":[90,96]},"Struct",[]],["app",{"sourceInterval":[115,123]},"Contract",[]],["app",{"sourceInterval":[142,151]},"Primitive",[]],["app",{"sourceInterval":[170,184]},"StaticFunction",[]],["app",{"sourceInterval":[203,217]},"NativeFunction",[]],["app",{"sourceInterval":[236,249]},"ProgramImport",[]],["app",{"sourceInterval":[268,273]},"Trait",[]],["app",{"sourceInterval":[292,300]},"Constant",[]]]],"ProgramImport":["define",{"sourceInterval":[305,345]},null,[],["seq",{"sourceInterval":[321,345]},["app",{"sourceInterval":[321,327]},"import",[]],["app",{"sourceInterval":[328,341]},"stringLiteral",[]],["terminal",{"sourceInterval":[342,345]},";"]]],"Primitive":["define",{"sourceInterval":[380,412]},null,[],["seq",{"sourceInterval":[392,412]},["terminal",{"sourceInterval":[392,403]},"primitive"],["app",{"sourceInterval":[404,408]},"Type",[]],["terminal",{"sourceInterval":[409,412]},";"]]],"StaticFunction":["define",{"sourceInterval":[441,466]},null,[],["app",{"sourceInterval":[458,466]},"Function",[]]],"NativeFunction_withVoid":["define",{"sourceInterval":[488,597]},null,[],["seq",{"sourceInterval":[488,586]},["app",{"sourceInterval":[488,501]},"nameAttribute",[]],["terminal",{"sourceInterval":[502,505]},"("],["app",{"sourceInterval":[506,512]},"funcId",[]],["terminal",{"sourceInterval":[513,516]},")"],["star",{"sourceInterval":[517,535]},["app",{"sourceInterval":[517,534]},"FunctionAttribute",[]]],["app",{"sourceInterval":[536,542]},"native",[]],["app",{"sourceInterval":[543,545]},"id",[]],["terminal",{"sourceInterval":[546,549]},"("],["app",{"sourceInterval":[550,573]},"ListOf",[["app",{"sourceInterval":[557,568]},"FunctionArg",[]],["terminal",{"sourceInterval":[569,572]},","]]],["opt",{"sourceInterval":[574,578]},["terminal",{"sourceInterval":[574,577]},","]],["terminal",{"sourceInterval":[579,582]},")"],["terminal",{"sourceInterval":[583,586]},";"]]],"NativeFunction_withType":["define",{"sourceInterval":[619,737]},null,[],["seq",{"sourceInterval":[619,726]},["app",{"sourceInterval":[619,632]},"nameAttribute",[]],["terminal",{"sourceInterval":[633,636]},"("],["app",{"sourceInterval":[637,643]},"funcId",[]],["terminal",{"sourceInterval":[644,647]},")"],["star",{"sourceInterval":[648,666]},["app",{"sourceInterval":[648,665]},"FunctionAttribute",[]]],["app",{"sourceInterval":[667,673]},"native",[]],["app",{"sourceInterval":[674,676]},"id",[]],["terminal",{"sourceInterval":[677,680]},"("],["app",{"sourceInterval":[681,704]},"ListOf",[["app",{"sourceInterval":[688,699]},"FunctionArg",[]],["terminal",{"sourceInterval":[700,703]},","]]],["opt",{"sourceInterval":[705,709]},["terminal",{"sourceInterval":[705,708]},","]],["terminal",{"sourceInterval":[710,713]},")"],["terminal",{"sourceInterval":[714,717]},":"],["app",{"sourceInterval":[718,722]},"Type",[]],["terminal",{"sourceInterval":[723,726]},";"]]],"NativeFunction":["define",{"sourceInterval":[471,737]},null,[],["alt",{"sourceInterval":[488,737]},["app",{"sourceInterval":[488,586]},"NativeFunction_withVoid",[]],["app",{"sourceInterval":[619,726]},"NativeFunction_withType",[]]]],"Type_optional":["define",{"sourceInterval":[780,806]},null,[],["seq",{"sourceInterval":[780,795]},["app",{"sourceInterval":[780,791]},"typeLiteral",[]],["terminal",{"sourceInterval":[792,795]},"?"]]],"Type_required":["define",{"sourceInterval":[818,840]},null,[],["app",{"sourceInterval":[818,829]},"typeLiteral",[]]],"Type_map":["define",{"sourceInterval":[852,917]},null,[],["seq",{"sourceInterval":[852,911]},["terminal",{"sourceInterval":[852,857]},"map"],["terminal",{"sourceInterval":[858,861]},"<"],["app",{"sourceInterval":[862,873]},"typeLiteral",[]],["opt",{"sourceInterval":[874,882]},["seq",{"sourceInterval":[875,880]},["app",{"sourceInterval":[875,877]},"as",[]],["app",{"sourceInterval":[878,880]},"id",[]]]],["terminal",{"sourceInterval":[883,886]},","],["app",{"sourceInterval":[887,898]},"typeLiteral",[]],["opt",{"sourceInterval":[899,907]},["seq",{"sourceInterval":[900,905]},["app",{"sourceInterval":[900,902]},"as",[]],["app",{"sourceInterval":[903,905]},"id",[]]]],["terminal",{"sourceInterval":[908,911]},">"]]],"Type_bounced":["define",{"sourceInterval":[929,968]},null,[],["seq",{"sourceInterval":[929,958]},["terminal",{"sourceInterval":[929,938]},"bounced"],["terminal",{"sourceInterval":[939,942]},"<"],["app",{"sourceInterval":[943,954]},"typeLiteral",[]],["terminal",{"sourceInterval":[955,958]},">"]]],"Type":["define",{"sourceInterval":[773,968]},null,[],["alt",{"sourceInterval":[780,968]},["app",{"sourceInterval":[780,795]},"Type_optional",[]],["app",{"sourceInterval":[818,829]},"Type_required",[]],["app",{"sourceInterval":[852,911]},"Type_map",[]],["app",{"sourceInterval":[929,958]},"Type_bounced",[]]]],"Field_default":["define",{"sourceInterval":[981,1006]},null,[],["seq",{"sourceInterval":[981,996]},["app",{"sourceInterval":[981,983]},"id",[]],["terminal",{"sourceInterval":[984,987]},":"],["app",{"sourceInterval":[988,992]},"Type",[]],["terminal",{"sourceInterval":[993,996]},";"]]],"Field_defaultWithInit":["define",{"sourceInterval":[1019,1067]},null,[],["seq",{"sourceInterval":[1019,1049]},["app",{"sourceInterval":[1019,1021]},"id",[]],["terminal",{"sourceInterval":[1022,1025]},":"],["app",{"sourceInterval":[1026,1030]},"Type",[]],["terminal",{"sourceInterval":[1031,1034]},"="],["app",{"sourceInterval":[1035,1045]},"Expression",[]],["terminal",{"sourceInterval":[1046,1049]},";"]]],"Field_withSerialization":["define",{"sourceInterval":[1080,1121]},null,[],["seq",{"sourceInterval":[1080,1101]},["app",{"sourceInterval":[1080,1082]},"id",[]],["terminal",{"sourceInterval":[1083,1086]},":"],["app",{"sourceInterval":[1087,1091]},"Type",[]],["app",{"sourceInterval":[1092,1094]},"as",[]],["app",{"sourceInterval":[1095,1097]},"id",[]],["terminal",{"sourceInterval":[1098,1101]},";"]]],"Field_withSerializationAndInit":["define",{"sourceInterval":[1134,1197]},null,[],["seq",{"sourceInterval":[1134,1170]},["app",{"sourceInterval":[1134,1136]},"id",[]],["terminal",{"sourceInterval":[1137,1140]},":"],["app",{"sourceInterval":[1141,1145]},"Type",[]],["app",{"sourceInterval":[1146,1148]},"as",[]],["app",{"sourceInterval":[1149,1151]},"id",[]],["terminal",{"sourceInterval":[1152,1155]},"="],["app",{"sourceInterval":[1156,1166]},"Expression",[]],["terminal",{"sourceInterval":[1167,1170]},";"]]],"Field":["define",{"sourceInterval":[973,1197]},null,[],["alt",{"sourceInterval":[981,1197]},["app",{"sourceInterval":[981,996]},"Field_default",[]],["app",{"sourceInterval":[1019,1049]},"Field_defaultWithInit",[]],["app",{"sourceInterval":[1080,1101]},"Field_withSerialization",[]],["app",{"sourceInterval":[1134,1170]},"Field_withSerializationAndInit",[]]]],"ConstantAttribute_virtual":["define",{"sourceInterval":[1243,1263]},null,[],["app",{"sourceInterval":[1243,1250]},"virtual",[]]],"ConstantAttribute_override":["define",{"sourceInterval":[1288,1309]},null,[],["app",{"sourceInterval":[1288,1296]},"override",[]]],"ConstantAttribute_abstract":["define",{"sourceInterval":[1334,1355]},null,[],["app",{"sourceInterval":[1334,1342]},"abstract",[]]],"ConstantAttribute":["define",{"sourceInterval":[1223,1355]},null,[],["alt",{"sourceInterval":[1243,1355]},["app",{"sourceInterval":[1243,1250]},"ConstantAttribute_virtual",[]],["app",{"sourceInterval":[1288,1296]},"ConstantAttribute_override",[]],["app",{"sourceInterval":[1334,1342]},"ConstantAttribute_abstract",[]]]],"Constant_withValue":["define",{"sourceInterval":[1371,1443]},null,[],["seq",{"sourceInterval":[1371,1431]},["star",{"sourceInterval":[1371,1389]},["app",{"sourceInterval":[1371,1388]},"ConstantAttribute",[]]],["not",{"sourceInterval":[1390,1394]},["app",{"sourceInterval":[1391,1394]},"fun",[]]],["app",{"sourceInterval":[1395,1400]},"const",[]],["app",{"sourceInterval":[1401,1403]},"id",[]],["terminal",{"sourceInterval":[1404,1407]},":"],["app",{"sourceInterval":[1408,1412]},"Type",[]],["terminal",{"sourceInterval":[1413,1416]},"="],["app",{"sourceInterval":[1417,1427]},"Expression",[]],["terminal",{"sourceInterval":[1428,1431]},";"]]],"Constant_withEmpty":["define",{"sourceInterval":[1459,1531]},null,[],["seq",{"sourceInterval":[1459,1504]},["star",{"sourceInterval":[1459,1477]},["app",{"sourceInterval":[1459,1476]},"ConstantAttribute",[]]],["not",{"sourceInterval":[1478,1482]},["app",{"sourceInterval":[1479,1482]},"fun",[]]],["app",{"sourceInterval":[1483,1488]},"const",[]],["app",{"sourceInterval":[1489,1491]},"id",[]],["terminal",{"sourceInterval":[1492,1495]},":"],["app",{"sourceInterval":[1496,1500]},"Type",[]],["terminal",{"sourceInterval":[1501,1504]},";"]]],"Constant":["define",{"sourceInterval":[1360,1531]},null,[],["alt",{"sourceInterval":[1371,1531]},["app",{"sourceInterval":[1371,1431]},"Constant_withValue",[]],["app",{"sourceInterval":[1459,1504]},"Constant_withEmpty",[]]]],"Struct_originary":["define",{"sourceInterval":[1560,1612]},null,[],["seq",{"sourceInterval":[1560,1600]},["terminal",{"sourceInterval":[1560,1568]},"struct"],["app",{"sourceInterval":[1569,1580]},"typeLiteral",[]],["terminal",{"sourceInterval":[1581,1584]},"{"],["star",{"sourceInterval":[1585,1596]},["app",{"sourceInterval":[1585,1595]},"StructBody",[]]],["terminal",{"sourceInterval":[1597,1600]},"}"]]],"Struct_message":["define",{"sourceInterval":[1626,1677]},null,[],["seq",{"sourceInterval":[1626,1667]},["terminal",{"sourceInterval":[1626,1635]},"message"],["app",{"sourceInterval":[1636,1647]},"typeLiteral",[]],["terminal",{"sourceInterval":[1648,1651]},"{"],["star",{"sourceInterval":[1652,1663]},["app",{"sourceInterval":[1652,1662]},"StructBody",[]]],["terminal",{"sourceInterval":[1664,1667]},"}"]]],"Struct_messageWithId":["define",{"sourceInterval":[1691,1771]},null,[],["seq",{"sourceInterval":[1691,1755]},["terminal",{"sourceInterval":[1691,1700]},"message"],["terminal",{"sourceInterval":[1701,1704]},"("],["app",{"sourceInterval":[1705,1719]},"integerLiteral",[]],["terminal",{"sourceInterval":[1720,1723]},")"],["app",{"sourceInterval":[1724,1735]},"typeLiteral",[]],["terminal",{"sourceInterval":[1736,1739]},"{"],["star",{"sourceInterval":[1740,1751]},["app",{"sourceInterval":[1740,1750]},"StructBody",[]]],["terminal",{"sourceInterval":[1752,1755]},"}"]]],"Struct":["define",{"sourceInterval":[1551,1771]},null,[],["alt",{"sourceInterval":[1560,1771]},["app",{"sourceInterval":[1560,1600]},"Struct_originary",[]],["app",{"sourceInterval":[1626,1667]},"Struct_message",[]],["app",{"sourceInterval":[1691,1755]},"Struct_messageWithId",[]]]],"StructBody":["define",{"sourceInterval":[1776,1794]},null,[],["app",{"sourceInterval":[1789,1794]},"Field",[]]],"Contract_simple":["define",{"sourceInterval":[1827,1888]},null,[],["seq",{"sourceInterval":[1827,1879]},["star",{"sourceInterval":[1827,1845]},["app",{"sourceInterval":[1827,1844]},"ContractAttribute",[]]],["app",{"sourceInterval":[1846,1854]},"contract",[]],["app",{"sourceInterval":[1855,1857]},"id",[]],["terminal",{"sourceInterval":[1858,1861]},"{"],["star",{"sourceInterval":[1862,1875]},["app",{"sourceInterval":[1862,1874]},"ContractBody",[]]],["terminal",{"sourceInterval":[1876,1879]},"}"]]],"Contract_withTraits":["define",{"sourceInterval":[1904,1989]},null,[],["seq",{"sourceInterval":[1904,1976]},["star",{"sourceInterval":[1904,1922]},["app",{"sourceInterval":[1904,1921]},"ContractAttribute",[]]],["app",{"sourceInterval":[1923,1931]},"contract",[]],["app",{"sourceInterval":[1932,1934]},"id",[]],["app",{"sourceInterval":[1935,1939]},"with",[]],["app",{"sourceInterval":[1940,1954]},"ListOf",[["app",{"sourceInterval":[1947,1949]},"id",[]],["terminal",{"sourceInterval":[1950,1953]},","]]],["terminal",{"sourceInterval":[1955,1958]},"{"],["star",{"sourceInterval":[1959,1972]},["app",{"sourceInterval":[1959,1971]},"ContractBody",[]]],["terminal",{"sourceInterval":[1973,1976]},"}"]]],"Contract":["define",{"sourceInterval":[1816,1989]},null,[],["alt",{"sourceInterval":[1827,1989]},["app",{"sourceInterval":[1827,1879]},"Contract_simple",[]],["app",{"sourceInterval":[1904,1976]},"Contract_withTraits",[]]]],"ContractInit":["define",{"sourceInterval":[1994,2066]},null,[],["seq",{"sourceInterval":[2009,2066]},["terminal",{"sourceInterval":[2009,2015]},"init"],["terminal",{"sourceInterval":[2016,2019]},"("],["app",{"sourceInterval":[2020,2043]},"ListOf",[["app",{"sourceInterval":[2027,2038]},"FunctionArg",[]],["terminal",{"sourceInterval":[2039,2042]},","]]],["terminal",{"sourceInterval":[2044,2047]},")"],["terminal",{"sourceInterval":[2048,2051]},"{"],["star",{"sourceInterval":[2052,2062]},["app",{"sourceInterval":[2052,2061]},"Statement",[]]],["terminal",{"sourceInterval":[2063,2066]},"}"]]],"ContractBody":["define",{"sourceInterval":[2071,2214]},null,[],["alt",{"sourceInterval":[2086,2214]},["app",{"sourceInterval":[2086,2091]},"Field",[]],["app",{"sourceInterval":[2111,2123]},"ContractInit",[]],["app",{"sourceInterval":[2143,2158]},"ReceiveFunction",[]],["app",{"sourceInterval":[2178,2186]},"Function",[]],["app",{"sourceInterval":[2206,2214]},"Constant",[]]]],"Trait_originary":["define",{"sourceInterval":[2245,2303]},null,[],["seq",{"sourceInterval":[2245,2291]},["star",{"sourceInterval":[2245,2263]},["app",{"sourceInterval":[2245,2262]},"ContractAttribute",[]]],["app",{"sourceInterval":[2264,2269]},"trait",[]],["app",{"sourceInterval":[2270,2272]},"id",[]],["terminal",{"sourceInterval":[2273,2276]},"{"],["star",{"sourceInterval":[2277,2287]},["app",{"sourceInterval":[2277,2286]},"TraitBody",[]]],["terminal",{"sourceInterval":[2288,2291]},"}"]]],"Trait_withTraits":["define",{"sourceInterval":[2316,2395]},null,[],["seq",{"sourceInterval":[2316,2382]},["star",{"sourceInterval":[2316,2334]},["app",{"sourceInterval":[2316,2333]},"ContractAttribute",[]]],["app",{"sourceInterval":[2335,2340]},"trait",[]],["app",{"sourceInterval":[2341,2343]},"id",[]],["app",{"sourceInterval":[2344,2348]},"with",[]],["app",{"sourceInterval":[2349,2363]},"ListOf",[["app",{"sourceInterval":[2356,2358]},"id",[]],["terminal",{"sourceInterval":[2359,2362]},","]]],["terminal",{"sourceInterval":[2364,2367]},"{"],["star",{"sourceInterval":[2368,2378]},["app",{"sourceInterval":[2368,2377]},"TraitBody",[]]],["terminal",{"sourceInterval":[2379,2382]},"}"]]],"Trait":["define",{"sourceInterval":[2237,2395]},null,[],["alt",{"sourceInterval":[2245,2395]},["app",{"sourceInterval":[2245,2291]},"Trait_originary",[]],["app",{"sourceInterval":[2316,2382]},"Trait_withTraits",[]]]],"TraitBody":["define",{"sourceInterval":[2400,2499]},null,[],["alt",{"sourceInterval":[2412,2499]},["app",{"sourceInterval":[2412,2417]},"Field",[]],["app",{"sourceInterval":[2434,2449]},"ReceiveFunction",[]],["app",{"sourceInterval":[2466,2474]},"Function",[]],["app",{"sourceInterval":[2491,2499]},"Constant",[]]]],"ContractAttribute_interface":["define",{"sourceInterval":[2552,2598]},null,[],["seq",{"sourceInterval":[2552,2586]},["terminal",{"sourceInterval":[2552,2564]},"@interface"],["terminal",{"sourceInterval":[2565,2568]},"("],["app",{"sourceInterval":[2569,2582]},"stringLiteral",[]],["terminal",{"sourceInterval":[2583,2586]},")"]]],"ContractAttribute":["define",{"sourceInterval":[2532,2598]},null,[],["app",{"sourceInterval":[2552,2598]},"ContractAttribute_interface",[]]],"FunctionAttribute_getter":["define",{"sourceInterval":[2640,2658]},null,[],["terminal",{"sourceInterval":[2640,2645]},"get"]],"FunctionAttribute_mutates":["define",{"sourceInterval":[2683,2702]},null,[],["app",{"sourceInterval":[2683,2690]},"mutates",[]]],"FunctionAttribute_extends":["define",{"sourceInterval":[2727,2746]},null,[],["app",{"sourceInterval":[2727,2734]},"extends",[]]],"FunctionAttribute_virtual":["define",{"sourceInterval":[2771,2790]},null,[],["app",{"sourceInterval":[2771,2778]},"virtual",[]]],"FunctionAttribute_override":["define",{"sourceInterval":[2815,2835]},null,[],["app",{"sourceInterval":[2815,2823]},"override",[]]],"FunctionAttribute_inline":["define",{"sourceInterval":[2860,2878]},null,[],["app",{"sourceInterval":[2860,2866]},"inline",[]]],"FunctionAttribute_abstract":["define",{"sourceInterval":[2903,2923]},null,[],["app",{"sourceInterval":[2903,2911]},"abstract",[]]],"FunctionAttribute":["define",{"sourceInterval":[2620,2923]},null,[],["alt",{"sourceInterval":[2640,2923]},["app",{"sourceInterval":[2640,2645]},"FunctionAttribute_getter",[]],["app",{"sourceInterval":[2683,2690]},"FunctionAttribute_mutates",[]],["app",{"sourceInterval":[2727,2734]},"FunctionAttribute_extends",[]],["app",{"sourceInterval":[2771,2778]},"FunctionAttribute_virtual",[]],["app",{"sourceInterval":[2815,2823]},"FunctionAttribute_override",[]],["app",{"sourceInterval":[2860,2866]},"FunctionAttribute_inline",[]],["app",{"sourceInterval":[2903,2911]},"FunctionAttribute_abstract",[]]]],"Function_withVoid":["define",{"sourceInterval":[2939,3031]},null,[],["seq",{"sourceInterval":[2939,3020]},["star",{"sourceInterval":[2939,2957]},["app",{"sourceInterval":[2939,2956]},"FunctionAttribute",[]]],["app",{"sourceInterval":[2958,2961]},"fun",[]],["app",{"sourceInterval":[2962,2964]},"id",[]],["terminal",{"sourceInterval":[2965,2968]},"("],["app",{"sourceInterval":[2969,2992]},"ListOf",[["app",{"sourceInterval":[2976,2987]},"FunctionArg",[]],["terminal",{"sourceInterval":[2988,2991]},","]]],["opt",{"sourceInterval":[2993,2997]},["terminal",{"sourceInterval":[2993,2996]},","]],["terminal",{"sourceInterval":[2998,3001]},")"],["terminal",{"sourceInterval":[3002,3005]},"{"],["star",{"sourceInterval":[3006,3016]},["app",{"sourceInterval":[3006,3015]},"Statement",[]]],["terminal",{"sourceInterval":[3017,3020]},"}"]]],"Function_withType":["define",{"sourceInterval":[3047,3148]},null,[],["seq",{"sourceInterval":[3047,3137]},["star",{"sourceInterval":[3047,3065]},["app",{"sourceInterval":[3047,3064]},"FunctionAttribute",[]]],["app",{"sourceInterval":[3066,3069]},"fun",[]],["app",{"sourceInterval":[3070,3072]},"id",[]],["terminal",{"sourceInterval":[3073,3076]},"("],["app",{"sourceInterval":[3077,3100]},"ListOf",[["app",{"sourceInterval":[3084,3095]},"FunctionArg",[]],["terminal",{"sourceInterval":[3096,3099]},","]]],["opt",{"sourceInterval":[3101,3105]},["terminal",{"sourceInterval":[3101,3104]},","]],["terminal",{"sourceInterval":[3106,3109]},")"],["terminal",{"sourceInterval":[3110,3113]},":"],["app",{"sourceInterval":[3114,3118]},"Type",[]],["terminal",{"sourceInterval":[3119,3122]},"{"],["star",{"sourceInterval":[3123,3133]},["app",{"sourceInterval":[3123,3132]},"Statement",[]]],["terminal",{"sourceInterval":[3134,3137]},"}"]]],"Function_abstractVoid":["define",{"sourceInterval":[3164,3245]},null,[],["seq",{"sourceInterval":[3164,3230]},["star",{"sourceInterval":[3164,3182]},["app",{"sourceInterval":[3164,3181]},"FunctionAttribute",[]]],["app",{"sourceInterval":[3183,3186]},"fun",[]],["app",{"sourceInterval":[3187,3189]},"id",[]],["terminal",{"sourceInterval":[3190,3193]},"("],["app",{"sourceInterval":[3194,3217]},"ListOf",[["app",{"sourceInterval":[3201,3212]},"FunctionArg",[]],["terminal",{"sourceInterval":[3213,3216]},","]]],["opt",{"sourceInterval":[3218,3222]},["terminal",{"sourceInterval":[3218,3221]},","]],["terminal",{"sourceInterval":[3223,3226]},")"],["terminal",{"sourceInterval":[3227,3230]},";"]]],"Function_abstractType":["define",{"sourceInterval":[3261,3351]},null,[],["seq",{"sourceInterval":[3261,3336]},["star",{"sourceInterval":[3261,3279]},["app",{"sourceInterval":[3261,3278]},"FunctionAttribute",[]]],["app",{"sourceInterval":[3280,3283]},"fun",[]],["app",{"sourceInterval":[3284,3286]},"id",[]],["terminal",{"sourceInterval":[3287,3290]},"("],["app",{"sourceInterval":[3291,3314]},"ListOf",[["app",{"sourceInterval":[3298,3309]},"FunctionArg",[]],["terminal",{"sourceInterval":[3310,3313]},","]]],["opt",{"sourceInterval":[3315,3319]},["terminal",{"sourceInterval":[3315,3318]},","]],["terminal",{"sourceInterval":[3320,3323]},")"],["terminal",{"sourceInterval":[3324,3327]},":"],["app",{"sourceInterval":[3328,3332]},"Type",[]],["terminal",{"sourceInterval":[3333,3336]},";"]]],"Function":["define",{"sourceInterval":[2928,3351]},null,[],["alt",{"sourceInterval":[2939,3351]},["app",{"sourceInterval":[2939,3020]},"Function_withVoid",[]],["app",{"sourceInterval":[3047,3137]},"Function_withType",[]],["app",{"sourceInterval":[3164,3230]},"Function_abstractVoid",[]],["app",{"sourceInterval":[3261,3336]},"Function_abstractType",[]]]],"FunctionArg":["define",{"sourceInterval":[3356,3381]},null,[],["seq",{"sourceInterval":[3370,3381]},["app",{"sourceInterval":[3370,3372]},"id",[]],["terminal",{"sourceInterval":[3373,3376]},":"],["app",{"sourceInterval":[3377,3381]},"Type",[]]]],"ReceiveFunction_simple":["define",{"sourceInterval":[3409,3466]},null,[],["seq",{"sourceInterval":[3409,3457]},["terminal",{"sourceInterval":[3409,3418]},"receive"],["terminal",{"sourceInterval":[3419,3422]},"("],["app",{"sourceInterval":[3423,3434]},"FunctionArg",[]],["terminal",{"sourceInterval":[3435,3438]},")"],["terminal",{"sourceInterval":[3439,3442]},"{"],["star",{"sourceInterval":[3443,3453]},["app",{"sourceInterval":[3443,3452]},"Statement",[]]],["terminal",{"sourceInterval":[3454,3457]},"}"]]],"ReceiveFunction_empty":["define",{"sourceInterval":[3489,3533]},null,[],["seq",{"sourceInterval":[3489,3525]},["terminal",{"sourceInterval":[3489,3498]},"receive"],["terminal",{"sourceInterval":[3499,3502]},"("],["terminal",{"sourceInterval":[3503,3506]},")"],["terminal",{"sourceInterval":[3507,3510]},"{"],["star",{"sourceInterval":[3511,3521]},["app",{"sourceInterval":[3511,3520]},"Statement",[]]],["terminal",{"sourceInterval":[3522,3525]},"}"]]],"ReceiveFunction_comment":["define",{"sourceInterval":[3556,3616]},null,[],["seq",{"sourceInterval":[3556,3606]},["terminal",{"sourceInterval":[3556,3565]},"receive"],["terminal",{"sourceInterval":[3566,3569]},"("],["app",{"sourceInterval":[3570,3583]},"stringLiteral",[]],["terminal",{"sourceInterval":[3584,3587]},")"],["terminal",{"sourceInterval":[3588,3591]},"{"],["star",{"sourceInterval":[3592,3602]},["app",{"sourceInterval":[3592,3601]},"Statement",[]]],["terminal",{"sourceInterval":[3603,3606]},"}"]]],"ReceiveFunction_bounced":["define",{"sourceInterval":[3639,3697]},null,[],["seq",{"sourceInterval":[3639,3687]},["terminal",{"sourceInterval":[3639,3648]},"bounced"],["terminal",{"sourceInterval":[3649,3652]},"("],["app",{"sourceInterval":[3653,3664]},"FunctionArg",[]],["terminal",{"sourceInterval":[3665,3668]},")"],["terminal",{"sourceInterval":[3669,3672]},"{"],["star",{"sourceInterval":[3673,3683]},["app",{"sourceInterval":[3673,3682]},"Statement",[]]],["terminal",{"sourceInterval":[3684,3687]},"}"]]],"ReceiveFunction_externalSimple":["define",{"sourceInterval":[3720,3786]},null,[],["seq",{"sourceInterval":[3720,3769]},["terminal",{"sourceInterval":[3720,3730]},"external"],["terminal",{"sourceInterval":[3731,3734]},"("],["app",{"sourceInterval":[3735,3746]},"FunctionArg",[]],["terminal",{"sourceInterval":[3747,3750]},")"],["terminal",{"sourceInterval":[3751,3754]},"{"],["star",{"sourceInterval":[3755,3765]},["app",{"sourceInterval":[3755,3764]},"Statement",[]]],["terminal",{"sourceInterval":[3766,3769]},"}"]]],"ReceiveFunction_externalComment":["define",{"sourceInterval":[3809,3878]},null,[],["seq",{"sourceInterval":[3809,3860]},["terminal",{"sourceInterval":[3809,3819]},"external"],["terminal",{"sourceInterval":[3820,3823]},"("],["app",{"sourceInterval":[3824,3837]},"stringLiteral",[]],["terminal",{"sourceInterval":[3838,3841]},")"],["terminal",{"sourceInterval":[3842,3845]},"{"],["star",{"sourceInterval":[3846,3856]},["app",{"sourceInterval":[3846,3855]},"Statement",[]]],["terminal",{"sourceInterval":[3857,3860]},"}"]]],"ReceiveFunction_externalEmpty":["define",{"sourceInterval":[3901,3954]},null,[],["seq",{"sourceInterval":[3901,3938]},["terminal",{"sourceInterval":[3901,3911]},"external"],["terminal",{"sourceInterval":[3912,3915]},"("],["terminal",{"sourceInterval":[3916,3919]},")"],["terminal",{"sourceInterval":[3920,3923]},"{"],["star",{"sourceInterval":[3924,3934]},["app",{"sourceInterval":[3924,3933]},"Statement",[]]],["terminal",{"sourceInterval":[3935,3938]},"}"]]],"ReceiveFunction":["define",{"sourceInterval":[3391,3954]},null,[],["alt",{"sourceInterval":[3409,3954]},["app",{"sourceInterval":[3409,3457]},"ReceiveFunction_simple",[]],["app",{"sourceInterval":[3489,3525]},"ReceiveFunction_empty",[]],["app",{"sourceInterval":[3556,3606]},"ReceiveFunction_comment",[]],["app",{"sourceInterval":[3639,3687]},"ReceiveFunction_bounced",[]],["app",{"sourceInterval":[3720,3769]},"ReceiveFunction_externalSimple",[]],["app",{"sourceInterval":[3809,3860]},"ReceiveFunction_externalComment",[]],["app",{"sourceInterval":[3901,3938]},"ReceiveFunction_externalEmpty",[]]]],"Statement":["define",{"sourceInterval":[3978,4334]},null,[],["alt",{"sourceInterval":[3990,4334]},["app",{"sourceInterval":[3990,4002]},"StatementLet",[]],["app",{"sourceInterval":[4019,4033]},"StatementBlock",[]],["app",{"sourceInterval":[4050,4065]},"StatementReturn",[]],["app",{"sourceInterval":[4082,4101]},"StatementExpression",[]],["app",{"sourceInterval":[4118,4133]},"StatementAssign",[]],["app",{"sourceInterval":[4150,4174]},"StatementAugmentedAssign",[]],["app",{"sourceInterval":[4191,4209]},"StatementCondition",[]],["app",{"sourceInterval":[4226,4240]},"StatementWhile",[]],["app",{"sourceInterval":[4257,4272]},"StatementRepeat",[]],["app",{"sourceInterval":[4289,4303]},"StatementUntil",[]],["app",{"sourceInterval":[4320,4334]},"StatementBreak",[]]]],"StatementBlock":["define",{"sourceInterval":[4339,4374]},null,[],["seq",{"sourceInterval":[4356,4374]},["terminal",{"sourceInterval":[4356,4359]},"{"],["star",{"sourceInterval":[4360,4370]},["app",{"sourceInterval":[4360,4369]},"Statement",[]]],["terminal",{"sourceInterval":[4371,4374]},"}"]]],"StatementLet":["define",{"sourceInterval":[4379,4428]},null,[],["seq",{"sourceInterval":[4394,4428]},["app",{"sourceInterval":[4394,4397]},"let",[]],["app",{"sourceInterval":[4398,4400]},"id",[]],["terminal",{"sourceInterval":[4401,4404]},":"],["app",{"sourceInterval":[4405,4409]},"Type",[]],["terminal",{"sourceInterval":[4410,4413]},"="],["app",{"sourceInterval":[4414,4424]},"Expression",[]],["terminal",{"sourceInterval":[4425,4428]},";"]]],"StatementReturn_withExpression":["define",{"sourceInterval":[4451,4489]},null,[],["seq",{"sourceInterval":[4451,4472]},["app",{"sourceInterval":[4451,4457]},"return",[]],["app",{"sourceInterval":[4458,4468]},"Expression",[]],["terminal",{"sourceInterval":[4469,4472]},";"]]],"StatementReturn_withoutExpression":["define",{"sourceInterval":[4512,4542]},null,[],["seq",{"sourceInterval":[4512,4522]},["app",{"sourceInterval":[4512,4518]},"return",[]],["terminal",{"sourceInterval":[4519,4522]},";"]]],"StatementReturn":["define",{"sourceInterval":[4433,4542]},null,[],["alt",{"sourceInterval":[4451,4542]},["app",{"sourceInterval":[4451,4472]},"StatementReturn_withExpression",[]],["app",{"sourceInterval":[4512,4522]},"StatementReturn_withoutExpression",[]]]],"StatementBreak":["define",{"sourceInterval":[4547,4573]},null,[],["seq",{"sourceInterval":[4564,4573]},["app",{"sourceInterval":[4564,4569]},"break",[]],["terminal",{"sourceInterval":[4570,4573]},";"]]],"StatementExpression":["define",{"sourceInterval":[4578,4614]},null,[],["seq",{"sourceInterval":[4600,4614]},["app",{"sourceInterval":[4600,4610]},"Expression",[]],["terminal",{"sourceInterval":[4611,4614]},";"]]],"StatementAssign":["define",{"sourceInterval":[4619,4662]},null,[],["seq",{"sourceInterval":[4637,4662]},["app",{"sourceInterval":[4637,4643]},"LValue",[]],["terminal",{"sourceInterval":[4644,4647]},"="],["app",{"sourceInterval":[4648,4658]},"Expression",[]],["terminal",{"sourceInterval":[4659,4662]},";"]]],"StatementAugmentedAssign":["define",{"sourceInterval":[4667,4957]},null,[],["alt",{"sourceInterval":[4694,4957]},["app",{"sourceInterval":[4694,4721]},"StatementAugmentedAssignAdd",[]],["app",{"sourceInterval":[4753,4780]},"StatementAugmentedAssignSub",[]],["app",{"sourceInterval":[4812,4839]},"StatementAugmentedAssignMul",[]],["app",{"sourceInterval":[4871,4898]},"StatementAugmentedAssignDiv",[]],["app",{"sourceInterval":[4930,4957]},"StatementAugmentedAssignRem",[]]]],"StatementAugmentedAssignAdd":["define",{"sourceInterval":[4962,5018]},null,[],["seq",{"sourceInterval":[4992,5018]},["app",{"sourceInterval":[4992,4998]},"LValue",[]],["terminal",{"sourceInterval":[4999,5003]},"+="],["app",{"sourceInterval":[5004,5014]},"Expression",[]],["terminal",{"sourceInterval":[5015,5018]},";"]]],"StatementAugmentedAssignSub":["define",{"sourceInterval":[5023,5079]},null,[],["seq",{"sourceInterval":[5053,5079]},["app",{"sourceInterval":[5053,5059]},"LValue",[]],["terminal",{"sourceInterval":[5060,5064]},"-="],["app",{"sourceInterval":[5065,5075]},"Expression",[]],["terminal",{"sourceInterval":[5076,5079]},";"]]],"StatementAugmentedAssignMul":["define",{"sourceInterval":[5084,5140]},null,[],["seq",{"sourceInterval":[5114,5140]},["app",{"sourceInterval":[5114,5120]},"LValue",[]],["terminal",{"sourceInterval":[5121,5125]},"*="],["app",{"sourceInterval":[5126,5136]},"Expression",[]],["terminal",{"sourceInterval":[5137,5140]},";"]]],"StatementAugmentedAssignDiv":["define",{"sourceInterval":[5145,5201]},null,[],["seq",{"sourceInterval":[5175,5201]},["app",{"sourceInterval":[5175,5181]},"LValue",[]],["terminal",{"sourceInterval":[5182,5186]},"/="],["app",{"sourceInterval":[5187,5197]},"Expression",[]],["terminal",{"sourceInterval":[5198,5201]},";"]]],"StatementAugmentedAssignRem":["define",{"sourceInterval":[5206,5262]},null,[],["seq",{"sourceInterval":[5236,5262]},["app",{"sourceInterval":[5236,5242]},"LValue",[]],["terminal",{"sourceInterval":[5243,5247]},"%="],["app",{"sourceInterval":[5248,5258]},"Expression",[]],["terminal",{"sourceInterval":[5259,5262]},";"]]],"StatementCondition_simple":["define",{"sourceInterval":[5288,5335]},null,[],["seq",{"sourceInterval":[5288,5326]},["app",{"sourceInterval":[5288,5290]},"if",[]],["app",{"sourceInterval":[5291,5301]},"Expression",[]],["terminal",{"sourceInterval":[5302,5305]},"{"],["star",{"sourceInterval":[5306,5316]},["app",{"sourceInterval":[5306,5315]},"Statement",[]]],["terminal",{"sourceInterval":[5317,5320]},"}"],["not",{"sourceInterval":[5321,5326]},["app",{"sourceInterval":[5322,5326]},"else",[]]]]],"StatementCondition_withElse":["define",{"sourceInterval":[5361,5428]},null,[],["seq",{"sourceInterval":[5361,5417]},["app",{"sourceInterval":[5361,5363]},"if",[]],["app",{"sourceInterval":[5364,5374]},"Expression",[]],["terminal",{"sourceInterval":[5375,5378]},"{"],["star",{"sourceInterval":[5379,5389]},["app",{"sourceInterval":[5379,5388]},"Statement",[]]],["terminal",{"sourceInterval":[5390,5393]},"}"],["app",{"sourceInterval":[5394,5398]},"else",[]],["terminal",{"sourceInterval":[5399,5402]},"{"],["star",{"sourceInterval":[5403,5413]},["app",{"sourceInterval":[5403,5412]},"Statement",[]]],["terminal",{"sourceInterval":[5414,5417]},"}"]]],"StatementCondition_withElseIf":["define",{"sourceInterval":[5454,5523]},null,[],["seq",{"sourceInterval":[5454,5510]},["app",{"sourceInterval":[5454,5456]},"if",[]],["app",{"sourceInterval":[5457,5467]},"Expression",[]],["terminal",{"sourceInterval":[5468,5471]},"{"],["star",{"sourceInterval":[5472,5482]},["app",{"sourceInterval":[5472,5481]},"Statement",[]]],["terminal",{"sourceInterval":[5483,5486]},"}"],["app",{"sourceInterval":[5487,5491]},"else",[]],["app",{"sourceInterval":[5492,5510]},"StatementCondition",[]]]],"StatementCondition":["define",{"sourceInterval":[5267,5523]},null,[],["alt",{"sourceInterval":[5288,5523]},["app",{"sourceInterval":[5288,5326]},"StatementCondition_simple",[]],["app",{"sourceInterval":[5361,5417]},"StatementCondition_withElse",[]],["app",{"sourceInterval":[5454,5510]},"StatementCondition_withElseIf",[]]]],"StatementWhile":["define",{"sourceInterval":[5528,5588]},null,[],["seq",{"sourceInterval":[5545,5588]},["app",{"sourceInterval":[5545,5550]},"while",[]],["terminal",{"sourceInterval":[5551,5554]},"("],["app",{"sourceInterval":[5555,5565]},"Expression",[]],["terminal",{"sourceInterval":[5566,5569]},")"],["terminal",{"sourceInterval":[5570,5573]},"{"],["star",{"sourceInterval":[5574,5584]},["app",{"sourceInterval":[5574,5583]},"Statement",[]]],["terminal",{"sourceInterval":[5585,5588]},"}"]]],"StatementRepeat":["define",{"sourceInterval":[5593,5655]},null,[],["seq",{"sourceInterval":[5611,5655]},["app",{"sourceInterval":[5611,5617]},"repeat",[]],["terminal",{"sourceInterval":[5618,5621]},"("],["app",{"sourceInterval":[5622,5632]},"Expression",[]],["terminal",{"sourceInterval":[5633,5636]},")"],["terminal",{"sourceInterval":[5637,5640]},"{"],["star",{"sourceInterval":[5641,5651]},["app",{"sourceInterval":[5641,5650]},"Statement",[]]],["terminal",{"sourceInterval":[5652,5655]},"}"]]],"StatementUntil":["define",{"sourceInterval":[5660,5727]},null,[],["seq",{"sourceInterval":[5677,5727]},["app",{"sourceInterval":[5677,5679]},"do",[]],["terminal",{"sourceInterval":[5680,5683]},"{"],["star",{"sourceInterval":[5684,5694]},["app",{"sourceInterval":[5684,5693]},"Statement",[]]],["terminal",{"sourceInterval":[5695,5698]},"}"],["app",{"sourceInterval":[5699,5704]},"until",[]],["terminal",{"sourceInterval":[5705,5708]},"("],["app",{"sourceInterval":[5709,5719]},"Expression",[]],["terminal",{"sourceInterval":[5720,5723]},")"],["terminal",{"sourceInterval":[5724,5727]},";"]]],"LValue_more":["define",{"sourceInterval":[5757,5777]},null,[],["seq",{"sourceInterval":[5757,5770]},["app",{"sourceInterval":[5757,5759]},"id",[]],["terminal",{"sourceInterval":[5760,5763]},"."],["app",{"sourceInterval":[5764,5770]},"LValue",[]]]],"LValue_single":["define",{"sourceInterval":[5791,5802]},null,[],["app",{"sourceInterval":[5791,5793]},"id",[]]],"LValue":["define",{"sourceInterval":[5748,5802]},null,[],["alt",{"sourceInterval":[5757,5802]},["app",{"sourceInterval":[5757,5770]},"LValue_more",[]],["app",{"sourceInterval":[5791,5793]},"LValue_single",[]]]],"Expression":["define",{"sourceInterval":[5827,5861]},null,[],["app",{"sourceInterval":[5840,5861]},"ExpressionConditional",[]]],"ExpressionConditional_ternary":["define",{"sourceInterval":[5890,5955]},null,[],["seq",{"sourceInterval":[5890,5945]},["app",{"sourceInterval":[5890,5902]},"ExpressionOr",[]],["terminal",{"sourceInterval":[5903,5906]},"?"],["app",{"sourceInterval":[5907,5919]},"ExpressionOr",[]],["terminal",{"sourceInterval":[5920,5923]},":"],["app",{"sourceInterval":[5924,5945]},"ExpressionConditional",[]]]],"ExpressionConditional":["define",{"sourceInterval":[5866,5996]},null,[],["alt",{"sourceInterval":[5890,5996]},["app",{"sourceInterval":[5890,5945]},"ExpressionConditional_ternary",[]],["app",{"sourceInterval":[5984,5996]},"ExpressionOr",[]]]],"ExpressionOr_or":["define",{"sourceInterval":[6016,6052]},null,[],["seq",{"sourceInterval":[6016,6047]},["app",{"sourceInterval":[6016,6028]},"ExpressionOr",[]],["terminal",{"sourceInterval":[6029,6033]},"||"],["app",{"sourceInterval":[6034,6047]},"ExpressionAnd",[]]]],"ExpressionOr":["define",{"sourceInterval":[6001,6085]},null,[],["alt",{"sourceInterval":[6016,6085]},["app",{"sourceInterval":[6016,6047]},"ExpressionOr_or",[]],["app",{"sourceInterval":[6072,6085]},"ExpressionAnd",[]]]],"ExpressionAnd_and":["define",{"sourceInterval":[6106,6148]},null,[],["seq",{"sourceInterval":[6106,6142]},["app",{"sourceInterval":[6106,6119]},"ExpressionAnd",[]],["terminal",{"sourceInterval":[6120,6124]},"&&"],["app",{"sourceInterval":[6125,6142]},"ExpressionCompare",[]]]],"ExpressionAnd":["define",{"sourceInterval":[6090,6186]},null,[],["alt",{"sourceInterval":[6106,6186]},["app",{"sourceInterval":[6106,6142]},"ExpressionAnd_and",[]],["app",{"sourceInterval":[6169,6186]},"ExpressionCompare",[]]]],"ExpressionCompare_not":["define",{"sourceInterval":[6211,6256]},null,[],["seq",{"sourceInterval":[6211,6250]},["app",{"sourceInterval":[6211,6228]},"ExpressionCompare",[]],["terminal",{"sourceInterval":[6229,6233]},"!="],["app",{"sourceInterval":[6234,6250]},"ExpressionBinary",[]]]],"ExpressionCompare_eq":["define",{"sourceInterval":[6281,6325]},null,[],["seq",{"sourceInterval":[6281,6320]},["app",{"sourceInterval":[6281,6298]},"ExpressionCompare",[]],["terminal",{"sourceInterval":[6299,6303]},"=="],["app",{"sourceInterval":[6304,6320]},"ExpressionBinary",[]]]],"ExpressionCompare_gt":["define",{"sourceInterval":[6350,6393]},null,[],["seq",{"sourceInterval":[6350,6388]},["app",{"sourceInterval":[6350,6367]},"ExpressionCompare",[]],["terminal",{"sourceInterval":[6368,6371]},">"],["app",{"sourceInterval":[6372,6388]},"ExpressionBinary",[]]]],"ExpressionCompare_gte":["define",{"sourceInterval":[6418,6463]},null,[],["seq",{"sourceInterval":[6418,6457]},["app",{"sourceInterval":[6418,6435]},"ExpressionCompare",[]],["terminal",{"sourceInterval":[6436,6440]},">="],["app",{"sourceInterval":[6441,6457]},"ExpressionBinary",[]]]],"ExpressionCompare_lt":["define",{"sourceInterval":[6488,6531]},null,[],["seq",{"sourceInterval":[6488,6526]},["app",{"sourceInterval":[6488,6505]},"ExpressionCompare",[]],["terminal",{"sourceInterval":[6506,6509]},"<"],["app",{"sourceInterval":[6510,6526]},"ExpressionBinary",[]]]],"ExpressionCompare_lte":["define",{"sourceInterval":[6556,6601]},null,[],["seq",{"sourceInterval":[6556,6595]},["app",{"sourceInterval":[6556,6573]},"ExpressionCompare",[]],["terminal",{"sourceInterval":[6574,6578]},"<="],["app",{"sourceInterval":[6579,6595]},"ExpressionBinary",[]]]],"ExpressionCompare":["define",{"sourceInterval":[6191,6642]},null,[],["alt",{"sourceInterval":[6211,6642]},["app",{"sourceInterval":[6211,6250]},"ExpressionCompare_not",[]],["app",{"sourceInterval":[6281,6320]},"ExpressionCompare_eq",[]],["app",{"sourceInterval":[6350,6388]},"ExpressionCompare_gt",[]],["app",{"sourceInterval":[6418,6457]},"ExpressionCompare_gte",[]],["app",{"sourceInterval":[6488,6526]},"ExpressionCompare_lt",[]],["app",{"sourceInterval":[6556,6595]},"ExpressionCompare_lte",[]],["app",{"sourceInterval":[6626,6642]},"ExpressionBinary",[]]]],"ExpressionBinary_shr":["define",{"sourceInterval":[6666,6707]},null,[],["seq",{"sourceInterval":[6666,6701]},["app",{"sourceInterval":[6666,6682]},"ExpressionBinary",[]],["terminal",{"sourceInterval":[6683,6687]},">>"],["app",{"sourceInterval":[6688,6701]},"ExpressionAdd",[]]]],"ExpressionBinary_shl":["define",{"sourceInterval":[6730,6771]},null,[],["seq",{"sourceInterval":[6730,6765]},["app",{"sourceInterval":[6730,6746]},"ExpressionBinary",[]],["terminal",{"sourceInterval":[6747,6751]},"<<"],["app",{"sourceInterval":[6752,6765]},"ExpressionAdd",[]]]],"ExpressionBinary_bin_and":["define",{"sourceInterval":[6794,6838]},null,[],["seq",{"sourceInterval":[6794,6828]},["app",{"sourceInterval":[6794,6810]},"ExpressionBinary",[]],["terminal",{"sourceInterval":[6811,6814]},"&"],["app",{"sourceInterval":[6815,6828]},"ExpressionAdd",[]]]],"ExpressionBinary_bin_or":["define",{"sourceInterval":[6861,6904]},null,[],["seq",{"sourceInterval":[6861,6895]},["app",{"sourceInterval":[6861,6877]},"ExpressionBinary",[]],["terminal",{"sourceInterval":[6878,6881]},"|"],["app",{"sourceInterval":[6882,6895]},"ExpressionAdd",[]]]],"ExpressionBinary":["define",{"sourceInterval":[6647,6940]},null,[],["alt",{"sourceInterval":[6666,6940]},["app",{"sourceInterval":[6666,6701]},"ExpressionBinary_shr",[]],["app",{"sourceInterval":[6730,6765]},"ExpressionBinary_shl",[]],["app",{"sourceInterval":[6794,6828]},"ExpressionBinary_bin_and",[]],["app",{"sourceInterval":[6861,6895]},"ExpressionBinary_bin_or",[]],["app",{"sourceInterval":[6927,6940]},"ExpressionAdd",[]]]],"ExpressionAdd_add":["define",{"sourceInterval":[6961,7003]},null,[],["seq",{"sourceInterval":[6961,6997]},["app",{"sourceInterval":[6961,6974]},"ExpressionAdd",[]],["terminal",{"sourceInterval":[6975,6978]},"+"],["not",{"sourceInterval":[6979,6983]},["terminal",{"sourceInterval":[6980,6983]},"+"]],["app",{"sourceInterval":[6984,6997]},"ExpressionMul",[]]]],"ExpressionAdd_sub":["define",{"sourceInterval":[7024,7066]},null,[],["seq",{"sourceInterval":[7024,7060]},["app",{"sourceInterval":[7024,7037]},"ExpressionAdd",[]],["terminal",{"sourceInterval":[7038,7041]},"-"],["not",{"sourceInterval":[7042,7046]},["terminal",{"sourceInterval":[7043,7046]},"-"]],["app",{"sourceInterval":[7047,7060]},"ExpressionMul",[]]]],"ExpressionAdd":["define",{"sourceInterval":[6945,7100]},null,[],["alt",{"sourceInterval":[6961,7100]},["app",{"sourceInterval":[6961,6997]},"ExpressionAdd_add",[]],["app",{"sourceInterval":[7024,7060]},"ExpressionAdd_sub",[]],["app",{"sourceInterval":[7087,7100]},"ExpressionMul",[]]]],"ExpressionMul_mul":["define",{"sourceInterval":[7121,7160]},null,[],["seq",{"sourceInterval":[7121,7154]},["app",{"sourceInterval":[7121,7134]},"ExpressionMul",[]],["terminal",{"sourceInterval":[7135,7138]},"*"],["app",{"sourceInterval":[7139,7154]},"ExpressionUnary",[]]]],"ExpressionMul_div":["define",{"sourceInterval":[7181,7220]},null,[],["seq",{"sourceInterval":[7181,7214]},["app",{"sourceInterval":[7181,7194]},"ExpressionMul",[]],["terminal",{"sourceInterval":[7195,7198]},"/"],["app",{"sourceInterval":[7199,7214]},"ExpressionUnary",[]]]],"ExpressionMul_rem":["define",{"sourceInterval":[7241,7280]},null,[],["seq",{"sourceInterval":[7241,7274]},["app",{"sourceInterval":[7241,7254]},"ExpressionMul",[]],["terminal",{"sourceInterval":[7255,7258]},"%"],["app",{"sourceInterval":[7259,7274]},"ExpressionUnary",[]]]],"ExpressionMul":["define",{"sourceInterval":[7105,7316]},null,[],["alt",{"sourceInterval":[7121,7316]},["app",{"sourceInterval":[7121,7154]},"ExpressionMul_mul",[]],["app",{"sourceInterval":[7181,7214]},"ExpressionMul_div",[]],["app",{"sourceInterval":[7241,7274]},"ExpressionMul_rem",[]],["app",{"sourceInterval":[7301,7316]},"ExpressionUnary",[]]]],"ExpressionUnary_neg":["define",{"sourceInterval":[7339,7370]},null,[],["seq",{"sourceInterval":[7339,7364]},["terminal",{"sourceInterval":[7339,7342]},"-"],["app",{"sourceInterval":[7343,7364]},"ExpressionUnarySuffix",[]]]],"ExpressionUnary_add":["define",{"sourceInterval":[7393,7424]},null,[],["seq",{"sourceInterval":[7393,7418]},["terminal",{"sourceInterval":[7393,7396]},"+"],["app",{"sourceInterval":[7397,7418]},"ExpressionUnarySuffix",[]]]],"ExpressionUnary_not":["define",{"sourceInterval":[7447,7478]},null,[],["seq",{"sourceInterval":[7447,7472]},["terminal",{"sourceInterval":[7447,7450]},"!"],["app",{"sourceInterval":[7451,7472]},"ExpressionUnarySuffix",[]]]],"ExpressionUnary":["define",{"sourceInterval":[7321,7522]},null,[],["alt",{"sourceInterval":[7339,7522]},["app",{"sourceInterval":[7339,7364]},"ExpressionUnary_neg",[]],["app",{"sourceInterval":[7393,7418]},"ExpressionUnary_add",[]],["app",{"sourceInterval":[7447,7472]},"ExpressionUnary_not",[]],["app",{"sourceInterval":[7501,7522]},"ExpressionUnarySuffix",[]]]],"ExpressionUnarySuffix_notNull":["define",{"sourceInterval":[7551,7581]},null,[],["seq",{"sourceInterval":[7551,7571]},["app",{"sourceInterval":[7551,7566]},"ExpressionValue",[]],["terminal",{"sourceInterval":[7567,7571]},"!!"]]],"ExpressionUnarySuffix":["define",{"sourceInterval":[7527,7625]},null,[],["alt",{"sourceInterval":[7551,7625]},["app",{"sourceInterval":[7551,7571]},"ExpressionUnarySuffix_notNull",[]],["app",{"sourceInterval":[7610,7625]},"ExpressionValue",[]]]],"ExpressionBracket":["define",{"sourceInterval":[7630,7668]},null,[],["seq",{"sourceInterval":[7650,7668]},["terminal",{"sourceInterval":[7650,7653]},"("],["app",{"sourceInterval":[7654,7664]},"Expression",[]],["terminal",{"sourceInterval":[7665,7668]},")"]]],"ExpressionValue":["define",{"sourceInterval":[7700,8090]},null,[],["alt",{"sourceInterval":[7718,8090]},["app",{"sourceInterval":[7718,7732]},"ExpressionCall",[]],["app",{"sourceInterval":[7755,7770]},"ExpressionField",[]],["app",{"sourceInterval":[7793,7813]},"ExpressionStaticCall",[]],["app",{"sourceInterval":[7836,7853]},"ExpressionBracket",[]],["app",{"sourceInterval":[7876,7889]},"ExpressionNew",[]],["app",{"sourceInterval":[7912,7926]},"integerLiteral",[]],["app",{"sourceInterval":[7949,7960]},"boolLiteral",[]],["app",{"sourceInterval":[7983,7985]},"id",[]],["app",{"sourceInterval":[8008,8012]},"null",[]],["app",{"sourceInterval":[8035,8051]},"ExpressionInitOf",[]],["app",{"sourceInterval":[8074,8090]},"ExpressionString",[]]]],"ExpressionString":["define",{"sourceInterval":[8095,8127]},null,[],["app",{"sourceInterval":[8114,8127]},"stringLiteral",[]]],"ExpressionField":["define",{"sourceInterval":[8132,8177]},null,[],["seq",{"sourceInterval":[8150,8177]},["app",{"sourceInterval":[8150,8165]},"ExpressionValue",[]],["terminal",{"sourceInterval":[8166,8169]},"."],["app",{"sourceInterval":[8170,8172]},"id",[]],["not",{"sourceInterval":[8173,8177]},["terminal",{"sourceInterval":[8174,8177]},"("]]]],"ExpressionCall":["define",{"sourceInterval":[8182,8258]},null,[],["seq",{"sourceInterval":[8199,8258]},["app",{"sourceInterval":[8199,8214]},"ExpressionValue",[]],["terminal",{"sourceInterval":[8215,8218]},"."],["app",{"sourceInterval":[8219,8221]},"id",[]],["terminal",{"sourceInterval":[8222,8225]},"("],["app",{"sourceInterval":[8226,8249]},"ListOf",[["app",{"sourceInterval":[8233,8243]},"Expression",[]],["terminal",{"sourceInterval":[8245,8248]},","]]],["opt",{"sourceInterval":[8250,8254]},["terminal",{"sourceInterval":[8250,8253]},","]],["terminal",{"sourceInterval":[8255,8258]},")"]]],"ExpressionNew":["define",{"sourceInterval":[8263,8320]},null,[],["seq",{"sourceInterval":[8279,8320]},["app",{"sourceInterval":[8279,8281]},"id",[]],["terminal",{"sourceInterval":[8282,8285]},"{"],["app",{"sourceInterval":[8286,8311]},"ListOf",[["app",{"sourceInterval":[8293,8305]},"NewParameter",[]],["terminal",{"sourceInterval":[8307,8310]},","]]],["opt",{"sourceInterval":[8312,8316]},["terminal",{"sourceInterval":[8312,8315]},","]],["terminal",{"sourceInterval":[8317,8320]},"}"]]],"NewParameter":["define",{"sourceInterval":[8325,8357]},null,[],["seq",{"sourceInterval":[8340,8357]},["app",{"sourceInterval":[8340,8342]},"id",[]],["terminal",{"sourceInterval":[8343,8346]},":"],["app",{"sourceInterval":[8347,8357]},"Expression",[]]]],"ExpressionStaticCall":["define",{"sourceInterval":[8362,8424]},null,[],["seq",{"sourceInterval":[8385,8424]},["app",{"sourceInterval":[8385,8387]},"id",[]],["terminal",{"sourceInterval":[8388,8391]},"("],["app",{"sourceInterval":[8392,8415]},"ListOf",[["app",{"sourceInterval":[8399,8409]},"Expression",[]],["terminal",{"sourceInterval":[8411,8414]},","]]],["opt",{"sourceInterval":[8416,8420]},["terminal",{"sourceInterval":[8416,8419]},","]],["terminal",{"sourceInterval":[8421,8424]},")"]]],"ExpressionInitOf":["define",{"sourceInterval":[8429,8494]},null,[],["seq",{"sourceInterval":[8448,8494]},["app",{"sourceInterval":[8448,8454]},"initOf",[]],["app",{"sourceInterval":[8455,8457]},"id",[]],["terminal",{"sourceInterval":[8458,8461]},"("],["app",{"sourceInterval":[8462,8485]},"ListOf",[["app",{"sourceInterval":[8469,8479]},"Expression",[]],["terminal",{"sourceInterval":[8481,8484]},","]]],["opt",{"sourceInterval":[8486,8490]},["terminal",{"sourceInterval":[8486,8489]},","]],["terminal",{"sourceInterval":[8491,8494]},")"]]],"typeLiteral":["define",{"sourceInterval":[8520,8564]},null,[],["seq",{"sourceInterval":[8534,8564]},["app",{"sourceInterval":[8534,8547]},"letterAsciiUC",[]],["star",{"sourceInterval":[8548,8564]},["app",{"sourceInterval":[8548,8563]},"typeLiteralPart",[]]]]],"typeLiteralPart":["define",{"sourceInterval":[8569,8612]},null,[],["alt",{"sourceInterval":[8587,8612]},["app",{"sourceInterval":[8587,8598]},"letterAscii",[]],["app",{"sourceInterval":[8601,8606]},"digit",[]],["terminal",{"sourceInterval":[8609,8612]},"_"]]],"integerLiteral":["define",{"sourceInterval":[8819,8913]},null,[],["alt",{"sourceInterval":[8836,8913]},["app",{"sourceInterval":[8836,8853]},"integerLiteralHex",[]],["app",{"sourceInterval":[8856,8873]},"integerLiteralBin",[]],["app",{"sourceInterval":[8876,8893]},"integerLiteralOct",[]],["app",{"sourceInterval":[8896,8913]},"integerLiteralDec",[]]]],"integerLiteralDec_nonZeroIntegerLiteralDec":["define",{"sourceInterval":[8960,9014]},null,[],["seq",{"sourceInterval":[8960,8986]},["app",{"sourceInterval":[8960,8972]},"nonZeroDigit",[]],["star",{"sourceInterval":[8973,8986]},["seq",{"sourceInterval":[8974,8984]},["opt",{"sourceInterval":[8974,8978]},["terminal",{"sourceInterval":[8974,8977]},"_"]],["app",{"sourceInterval":[8979,8984]},"digit",[]]]]]],"integerLiteralDec_integerLiteralWithLeadingZero":["define",{"sourceInterval":[9039,9098]},null,[],["seq",{"sourceInterval":[9039,9049]},["terminal",{"sourceInterval":[9039,9042]},"0"],["star",{"sourceInterval":[9043,9049]},["app",{"sourceInterval":[9043,9048]},"digit",[]]]]],"integerLiteralDec":["define",{"sourceInterval":[8940,9098]},null,[],["alt",{"sourceInterval":[8960,9098]},["app",{"sourceInterval":[8960,8986]},"integerLiteralDec_nonZeroIntegerLiteralDec",[]],["app",{"sourceInterval":[9039,9049]},"integerLiteralDec_integerLiteralWithLeadingZero",[]]]],"integerLiteralHex":["define",{"sourceInterval":[9103,9162]},null,[],["seq",{"sourceInterval":[9123,9162]},["alt",{"sourceInterval":[9124,9135]},["terminal",{"sourceInterval":[9124,9128]},"0x"],["terminal",{"sourceInterval":[9131,9135]},"0X"]],["app",{"sourceInterval":[9137,9145]},"hexDigit",[]],["star",{"sourceInterval":[9146,9162]},["seq",{"sourceInterval":[9147,9160]},["opt",{"sourceInterval":[9147,9151]},["terminal",{"sourceInterval":[9147,9150]},"_"]],["app",{"sourceInterval":[9152,9160]},"hexDigit",[]]]]]],"integerLiteralBin":["define",{"sourceInterval":[9167,9226]},null,[],["seq",{"sourceInterval":[9187,9226]},["alt",{"sourceInterval":[9188,9199]},["terminal",{"sourceInterval":[9188,9192]},"0b"],["terminal",{"sourceInterval":[9195,9199]},"0B"]],["app",{"sourceInterval":[9201,9209]},"binDigit",[]],["star",{"sourceInterval":[9210,9226]},["seq",{"sourceInterval":[9211,9224]},["opt",{"sourceInterval":[9211,9215]},["terminal",{"sourceInterval":[9211,9214]},"_"]],["app",{"sourceInterval":[9216,9224]},"binDigit",[]]]]]],"integerLiteralOct":["define",{"sourceInterval":[9231,9290]},null,[],["seq",{"sourceInterval":[9251,9290]},["alt",{"sourceInterval":[9252,9263]},["terminal",{"sourceInterval":[9252,9256]},"0o"],["terminal",{"sourceInterval":[9259,9263]},"0O"]],["app",{"sourceInterval":[9265,9273]},"octDigit",[]],["star",{"sourceInterval":[9274,9290]},["seq",{"sourceInterval":[9275,9288]},["opt",{"sourceInterval":[9275,9279]},["terminal",{"sourceInterval":[9275,9278]},"_"]],["app",{"sourceInterval":[9280,9288]},"octDigit",[]]]]]],"binDigit":["define",{"sourceInterval":[9295,9315]},null,[],["alt",{"sourceInterval":[9306,9315]},["terminal",{"sourceInterval":[9306,9309]},"0"],["terminal",{"sourceInterval":[9312,9315]},"1"]]],"octDigit":["define",{"sourceInterval":[9320,9339]},null,[],["range",{"sourceInterval":[9331,9339]},"0","7"]],"nonZeroDigit":["define",{"sourceInterval":[9344,9367]},null,[],["range",{"sourceInterval":[9359,9367]},"1","9"]],"letterAsciiLC":["define",{"sourceInterval":[9388,9412]},null,[],["range",{"sourceInterval":[9404,9412]},"a","z"]],"letterAsciiUC":["define",{"sourceInterval":[9417,9441]},null,[],["range",{"sourceInterval":[9433,9441]},"A","Z"]],"letterAscii":["define",{"sourceInterval":[9446,9489]},null,[],["alt",{"sourceInterval":[9460,9489]},["app",{"sourceInterval":[9460,9473]},"letterAsciiLC",[]],["app",{"sourceInterval":[9476,9489]},"letterAsciiUC",[]]]],"letterComment":["define",{"sourceInterval":[9494,9553]},null,[],["alt",{"sourceInterval":[9510,9553]},["app",{"sourceInterval":[9510,9523]},"letterAsciiLC",[]],["app",{"sourceInterval":[9526,9539]},"letterAsciiUC",[]],["app",{"sourceInterval":[9542,9547]},"digit",[]],["terminal",{"sourceInterval":[9550,9553]},"_"]]],"idStart":["define",{"sourceInterval":[9577,9604]},null,[],["alt",{"sourceInterval":[9587,9604]},["app",{"sourceInterval":[9587,9598]},"letterAscii",[]],["terminal",{"sourceInterval":[9601,9604]},"_"]]],"idPart":["define",{"sourceInterval":[9609,9643]},null,[],["alt",{"sourceInterval":[9618,9643]},["app",{"sourceInterval":[9618,9629]},"letterAscii",[]],["app",{"sourceInterval":[9632,9637]},"digit",[]],["terminal",{"sourceInterval":[9640,9643]},"_"]]],"id":["define",{"sourceInterval":[9648,9686]},null,[],["seq",{"sourceInterval":[9653,9686]},["not",{"sourceInterval":[9653,9666]},["app",{"sourceInterval":[9654,9666]},"reservedWord",[]]],["lex",{"sourceInterval":[9667,9675]},["app",{"sourceInterval":[9668,9675]},"idStart",[]]],["lex",{"sourceInterval":[9676,9686]},["star",{"sourceInterval":[9678,9685]},["app",{"sourceInterval":[9678,9684]},"idPart",[]]]]]],"funcLetter":["define",{"sourceInterval":[9707,9768]},null,[],["alt",{"sourceInterval":[9720,9768]},["app",{"sourceInterval":[9720,9731]},"letterAscii",[]],["terminal",{"sourceInterval":[9734,9737]},"_"],["terminal",{"sourceInterval":[9740,9743]},"'"],["terminal",{"sourceInterval":[9746,9749]},"?"],["terminal",{"sourceInterval":[9752,9755]},"!"],["terminal",{"sourceInterval":[9758,9762]},"::"],["terminal",{"sourceInterval":[9765,9768]},"&"]]],"funcId":["define",{"sourceInterval":[9773,9815]},null,[],["seq",{"sourceInterval":[9782,9815]},["app",{"sourceInterval":[9782,9792]},"funcLetter",[]],["star",{"sourceInterval":[9793,9815]},["lex",{"sourceInterval":[9793,9814]},["alt",{"sourceInterval":[9795,9813]},["app",{"sourceInterval":[9795,9805]},"funcLetter",[]],["app",{"sourceInterval":[9808,9813]},"digit",[]]]]]]],"boolLiteral":["define",{"sourceInterval":[9841,9881]},null,[],["seq",{"sourceInterval":[9855,9881]},["alt",{"sourceInterval":[9856,9872]},["terminal",{"sourceInterval":[9856,9862]},"true"],["terminal",{"sourceInterval":[9865,9872]},"false"]],["not",{"sourceInterval":[9874,9881]},["app",{"sourceInterval":[9875,9881]},"idPart",[]]]]],"stringLiteral":["define",{"sourceInterval":[9909,9978]},null,[],["seq",{"sourceInterval":[9925,9978]},["terminal",{"sourceInterval":[9925,9929]},"\""],["star",{"sourceInterval":[9930,9973]},["alt",{"sourceInterval":[9931,9971]},["app",{"sourceInterval":[9931,9954]},"nonQuoteOrBackslashChar",[]],["app",{"sourceInterval":[9957,9971]},"escapeSequence",[]]]],["terminal",{"sourceInterval":[9974,9978]},"\""]]],"nonQuoteOrBackslashChar":["define",{"sourceInterval":[9983,10027]},null,[],["seq",{"sourceInterval":[10009,10027]},["not",{"sourceInterval":[10009,10023]},["alt",{"sourceInterval":[10011,10022]},["terminal",{"sourceInterval":[10011,10015]},"\""],["terminal",{"sourceInterval":[10018,10022]},"\\"]]],["app",{"sourceInterval":[10024,10027]},"any",[]]]],"escapeSequence_backslash":["define",{"sourceInterval":[10049,10068]},null,[],["terminal",{"sourceInterval":[10049,10055]},"\\\\"]],"escapeSequence_doubleQuote":["define",{"sourceInterval":[10090,10111]},null,[],["terminal",{"sourceInterval":[10090,10096]},"\\\""]],"escapeSequence_newline":["define",{"sourceInterval":[10133,10149]},null,[],["terminal",{"sourceInterval":[10133,10138]},"\\n"]],"escapeSequence_carriageReturn":["define",{"sourceInterval":[10171,10194]},null,[],["terminal",{"sourceInterval":[10171,10176]},"\\r"]],"escapeSequence_tab":["define",{"sourceInterval":[10216,10228]},null,[],["terminal",{"sourceInterval":[10216,10221]},"\\t"]],"escapeSequence_verticalTab":["define",{"sourceInterval":[10250,10270]},null,[],["terminal",{"sourceInterval":[10250,10255]},"\\v"]],"escapeSequence_backspace":["define",{"sourceInterval":[10292,10310]},null,[],["terminal",{"sourceInterval":[10292,10297]},"\\b"]],"escapeSequence_formFeed":["define",{"sourceInterval":[10332,10349]},null,[],["terminal",{"sourceInterval":[10332,10337]},"\\f"]],"escapeSequence_unicodeCodePoint":["define",{"sourceInterval":[10371,10460]},null,[],["seq",{"sourceInterval":[10371,10440]},["terminal",{"sourceInterval":[10371,10377]},"\\u{"],["app",{"sourceInterval":[10378,10386]},"hexDigit",[]],["opt",{"sourceInterval":[10387,10396]},["app",{"sourceInterval":[10387,10395]},"hexDigit",[]]],["opt",{"sourceInterval":[10397,10406]},["app",{"sourceInterval":[10397,10405]},"hexDigit",[]]],["opt",{"sourceInterval":[10407,10416]},["app",{"sourceInterval":[10407,10415]},"hexDigit",[]]],["opt",{"sourceInterval":[10417,10426]},["app",{"sourceInterval":[10417,10425]},"hexDigit",[]]],["opt",{"sourceInterval":[10427,10436]},["app",{"sourceInterval":[10427,10435]},"hexDigit",[]]],["terminal",{"sourceInterval":[10437,10440]},"}"]]],"escapeSequence_unicodeEscape":["define",{"sourceInterval":[10482,10540]},null,[],["seq",{"sourceInterval":[10482,10523]},["terminal",{"sourceInterval":[10482,10487]},"\\u"],["app",{"sourceInterval":[10488,10496]},"hexDigit",[]],["app",{"sourceInterval":[10497,10505]},"hexDigit",[]],["app",{"sourceInterval":[10506,10514]},"hexDigit",[]],["app",{"sourceInterval":[10515,10523]},"hexDigit",[]]]],"escapeSequence_hexEscape":["define",{"sourceInterval":[10562,10598]},null,[],["seq",{"sourceInterval":[10562,10585]},["terminal",{"sourceInterval":[10562,10567]},"\\x"],["app",{"sourceInterval":[10568,10576]},"hexDigit",[]],["app",{"sourceInterval":[10577,10585]},"hexDigit",[]]]],"escapeSequence":["define",{"sourceInterval":[10032,10598]},null,[],["alt",{"sourceInterval":[10049,10598]},["app",{"sourceInterval":[10049,10055]},"escapeSequence_backslash",[]],["app",{"sourceInterval":[10090,10096]},"escapeSequence_doubleQuote",[]],["app",{"sourceInterval":[10133,10138]},"escapeSequence_newline",[]],["app",{"sourceInterval":[10171,10176]},"escapeSequence_carriageReturn",[]],["app",{"sourceInterval":[10216,10221]},"escapeSequence_tab",[]],["app",{"sourceInterval":[10250,10255]},"escapeSequence_verticalTab",[]],["app",{"sourceInterval":[10292,10297]},"escapeSequence_backspace",[]],["app",{"sourceInterval":[10332,10337]},"escapeSequence_formFeed",[]],["app",{"sourceInterval":[10371,10440]},"escapeSequence_unicodeCodePoint",[]],["app",{"sourceInterval":[10482,10523]},"escapeSequence_unicodeEscape",[]],["app",{"sourceInterval":[10562,10585]},"escapeSequence_hexEscape",[]]]],"keyword":["define",{"sourceInterval":[10651,11184]},null,[],["alt",{"sourceInterval":[10661,11184]},["app",{"sourceInterval":[10661,10664]},"fun",[]],["app",{"sourceInterval":[10680,10683]},"let",[]],["app",{"sourceInterval":[10698,10704]},"return",[]],["app",{"sourceInterval":[10720,10725]},"break",[]],["app",{"sourceInterval":[10740,10746]},"extend",[]],["app",{"sourceInterval":[10762,10768]},"native",[]],["app",{"sourceInterval":[10784,10790]},"public",[]],["app",{"sourceInterval":[10806,10810]},"null",[]],["app",{"sourceInterval":[10826,10828]},"if",[]],["app",{"sourceInterval":[10844,10848]},"else",[]],["app",{"sourceInterval":[10864,10869]},"while",[]],["app",{"sourceInterval":[10885,10891]},"repeat",[]],["app",{"sourceInterval":[10907,10909]},"do",[]],["app",{"sourceInterval":[10925,10930]},"until",[]],["app",{"sourceInterval":[10946,10948]},"as",[]],["app",{"sourceInterval":[10965,10972]},"mutates",[]],["app",{"sourceInterval":[10987,10994]},"extends",[]],["app",{"sourceInterval":[11009,11015]},"import",[]],["app",{"sourceInterval":[11030,11034]},"with",[]],["app",{"sourceInterval":[11049,11054]},"trait",[]],["app",{"sourceInterval":[11069,11075]},"initOf",[]],["app",{"sourceInterval":[11090,11098]},"override",[]],["app",{"sourceInterval":[11113,11121]},"abstract",[]],["app",{"sourceInterval":[11136,11143]},"virtual",[]],["app",{"sourceInterval":[11158,11164]},"inline",[]],["app",{"sourceInterval":[11179,11184]},"const",[]]]],"contract":["define",{"sourceInterval":[11189,11218]},null,[],["seq",{"sourceInterval":[11200,11218]},["terminal",{"sourceInterval":[11200,11210]},"contract"],["not",{"sourceInterval":[11211,11218]},["app",{"sourceInterval":[11212,11218]},"idPart",[]]]]],"let":["define",{"sourceInterval":[11223,11242]},null,[],["seq",{"sourceInterval":[11229,11242]},["terminal",{"sourceInterval":[11229,11234]},"let"],["not",{"sourceInterval":[11235,11242]},["app",{"sourceInterval":[11236,11242]},"idPart",[]]]]],"fun":["define",{"sourceInterval":[11247,11266]},null,[],["seq",{"sourceInterval":[11253,11266]},["terminal",{"sourceInterval":[11253,11258]},"fun"],["not",{"sourceInterval":[11259,11266]},["app",{"sourceInterval":[11260,11266]},"idPart",[]]]]],"return":["define",{"sourceInterval":[11271,11296]},null,[],["seq",{"sourceInterval":[11280,11296]},["terminal",{"sourceInterval":[11280,11288]},"return"],["not",{"sourceInterval":[11289,11296]},["app",{"sourceInterval":[11290,11296]},"idPart",[]]]]],"break":["define",{"sourceInterval":[11301,11324]},null,[],["seq",{"sourceInterval":[11309,11324]},["terminal",{"sourceInterval":[11309,11316]},"break"],["not",{"sourceInterval":[11317,11324]},["app",{"sourceInterval":[11318,11324]},"idPart",[]]]]],"extend":["define",{"sourceInterval":[11329,11354]},null,[],["seq",{"sourceInterval":[11338,11354]},["terminal",{"sourceInterval":[11338,11346]},"extend"],["not",{"sourceInterval":[11347,11354]},["app",{"sourceInterval":[11348,11354]},"idPart",[]]]]],"native":["define",{"sourceInterval":[11359,11384]},null,[],["seq",{"sourceInterval":[11368,11384]},["terminal",{"sourceInterval":[11368,11376]},"native"],["not",{"sourceInterval":[11377,11384]},["app",{"sourceInterval":[11378,11384]},"idPart",[]]]]],"public":["define",{"sourceInterval":[11389,11414]},null,[],["seq",{"sourceInterval":[11398,11414]},["terminal",{"sourceInterval":[11398,11406]},"public"],["not",{"sourceInterval":[11407,11414]},["app",{"sourceInterval":[11408,11414]},"idPart",[]]]]],"null":["define",{"sourceInterval":[11419,11440]},null,[],["seq",{"sourceInterval":[11426,11440]},["terminal",{"sourceInterval":[11426,11432]},"null"],["not",{"sourceInterval":[11433,11440]},["app",{"sourceInterval":[11434,11440]},"idPart",[]]]]],"if":["define",{"sourceInterval":[11445,11462]},null,[],["seq",{"sourceInterval":[11450,11462]},["terminal",{"sourceInterval":[11450,11454]},"if"],["not",{"sourceInterval":[11455,11462]},["app",{"sourceInterval":[11456,11462]},"idPart",[]]]]],"else":["define",{"sourceInterval":[11467,11488]},null,[],["seq",{"sourceInterval":[11474,11488]},["terminal",{"sourceInterval":[11474,11480]},"else"],["not",{"sourceInterval":[11481,11488]},["app",{"sourceInterval":[11482,11488]},"idPart",[]]]]],"while":["define",{"sourceInterval":[11493,11516]},null,[],["seq",{"sourceInterval":[11501,11516]},["terminal",{"sourceInterval":[11501,11508]},"while"],["not",{"sourceInterval":[11509,11516]},["app",{"sourceInterval":[11510,11516]},"idPart",[]]]]],"repeat":["define",{"sourceInterval":[11521,11546]},null,[],["seq",{"sourceInterval":[11530,11546]},["terminal",{"sourceInterval":[11530,11538]},"repeat"],["not",{"sourceInterval":[11539,11546]},["app",{"sourceInterval":[11540,11546]},"idPart",[]]]]],"do":["define",{"sourceInterval":[11551,11568]},null,[],["seq",{"sourceInterval":[11556,11568]},["terminal",{"sourceInterval":[11556,11560]},"do"],["not",{"sourceInterval":[11561,11568]},["app",{"sourceInterval":[11562,11568]},"idPart",[]]]]],"until":["define",{"sourceInterval":[11573,11596]},null,[],["seq",{"sourceInterval":[11581,11596]},["terminal",{"sourceInterval":[11581,11588]},"until"],["not",{"sourceInterval":[11589,11596]},["app",{"sourceInterval":[11590,11596]},"idPart",[]]]]],"as":["define",{"sourceInterval":[11601,11618]},null,[],["seq",{"sourceInterval":[11606,11618]},["terminal",{"sourceInterval":[11606,11610]},"as"],["not",{"sourceInterval":[11611,11618]},["app",{"sourceInterval":[11612,11618]},"idPart",[]]]]],"mutates":["define",{"sourceInterval":[11623,11650]},null,[],["seq",{"sourceInterval":[11633,11650]},["terminal",{"sourceInterval":[11633,11642]},"mutates"],["not",{"sourceInterval":[11643,11650]},["app",{"sourceInterval":[11644,11650]},"idPart",[]]]]],"extends":["define",{"sourceInterval":[11655,11682]},null,[],["seq",{"sourceInterval":[11665,11682]},["terminal",{"sourceInterval":[11665,11674]},"extends"],["not",{"sourceInterval":[11675,11682]},["app",{"sourceInterval":[11676,11682]},"idPart",[]]]]],"import":["define",{"sourceInterval":[11687,11712]},null,[],["seq",{"sourceInterval":[11696,11712]},["terminal",{"sourceInterval":[11696,11704]},"import"],["not",{"sourceInterval":[11705,11712]},["app",{"sourceInterval":[11706,11712]},"idPart",[]]]]],"with":["define",{"sourceInterval":[11717,11738]},null,[],["seq",{"sourceInterval":[11724,11738]},["terminal",{"sourceInterval":[11724,11730]},"with"],["not",{"sourceInterval":[11731,11738]},["app",{"sourceInterval":[11732,11738]},"idPart",[]]]]],"trait":["define",{"sourceInterval":[11743,11766]},null,[],["seq",{"sourceInterval":[11751,11766]},["terminal",{"sourceInterval":[11751,11758]},"trait"],["not",{"sourceInterval":[11759,11766]},["app",{"sourceInterval":[11760,11766]},"idPart",[]]]]],"initOf":["define",{"sourceInterval":[11771,11796]},null,[],["seq",{"sourceInterval":[11780,11796]},["terminal",{"sourceInterval":[11780,11788]},"initOf"],["not",{"sourceInterval":[11789,11796]},["app",{"sourceInterval":[11790,11796]},"idPart",[]]]]],"virtual":["define",{"sourceInterval":[11801,11828]},null,[],["seq",{"sourceInterval":[11811,11828]},["terminal",{"sourceInterval":[11811,11820]},"virtual"],["not",{"sourceInterval":[11821,11828]},["app",{"sourceInterval":[11822,11828]},"idPart",[]]]]],"override":["define",{"sourceInterval":[11833,11862]},null,[],["seq",{"sourceInterval":[11844,11862]},["terminal",{"sourceInterval":[11844,11854]},"override"],["not",{"sourceInterval":[11855,11862]},["app",{"sourceInterval":[11856,11862]},"idPart",[]]]]],"inline":["define",{"sourceInterval":[11867,11892]},null,[],["seq",{"sourceInterval":[11876,11892]},["terminal",{"sourceInterval":[11876,11884]},"inline"],["not",{"sourceInterval":[11885,11892]},["app",{"sourceInterval":[11886,11892]},"idPart",[]]]]],"const":["define",{"sourceInterval":[11897,11920]},null,[],["seq",{"sourceInterval":[11905,11920]},["terminal",{"sourceInterval":[11905,11912]},"const"],["not",{"sourceInterval":[11913,11920]},["app",{"sourceInterval":[11914,11920]},"idPart",[]]]]],"abstract":["define",{"sourceInterval":[11925,11954]},null,[],["seq",{"sourceInterval":[11936,11954]},["terminal",{"sourceInterval":[11936,11946]},"abstract"],["not",{"sourceInterval":[11947,11954]},["app",{"sourceInterval":[11948,11954]},"idPart",[]]]]],"nameAttribute":["define",{"sourceInterval":[11978,12001]},null,[],["terminal",{"sourceInterval":[11994,12001]},"@name"]],"reservedWord":["define",{"sourceInterval":[12023,12045]},null,[],["app",{"sourceInterval":[12038,12045]},"keyword",[]]],"space":["extend",{"sourceInterval":[12067,12100]},null,[],["alt",{"sourceInterval":[12076,12100]},["app",{"sourceInterval":[12076,12083]},"comment",[]],["app",{"sourceInterval":[12086,12100]},"lineTerminator",[]]]],"comment":["define",{"sourceInterval":[12105,12151]},null,[],["alt",{"sourceInterval":[12115,12151]},["app",{"sourceInterval":[12115,12131]},"multiLineComment",[]],["app",{"sourceInterval":[12134,12151]},"singleLineComment",[]]]],"lineTerminator":["define",{"sourceInterval":[12156,12206]},null,[],["alt",{"sourceInterval":[12173,12206]},["terminal",{"sourceInterval":[12173,12177]},"\n"],["terminal",{"sourceInterval":[12180,12184]},"\r"],["terminal",{"sourceInterval":[12187,12195]},"\u2028"],["terminal",{"sourceInterval":[12198,12206]},"\u2029"]]],"multiLineComment":["define",{"sourceInterval":[12211,12252]},null,[],["seq",{"sourceInterval":[12230,12252]},["terminal",{"sourceInterval":[12230,12234]},"/*"],["star",{"sourceInterval":[12235,12247]},["seq",{"sourceInterval":[12236,12245]},["not",{"sourceInterval":[12236,12241]},["terminal",{"sourceInterval":[12237,12241]},"*/"]],["app",{"sourceInterval":[12242,12245]},"any",[]]]],["terminal",{"sourceInterval":[12248,12252]},"*/"]]],"singleLineComment":["define",{"sourceInterval":[12257,12304]},null,[],["seq",{"sourceInterval":[12277,12304]},["terminal",{"sourceInterval":[12277,12281]},"//"],["star",{"sourceInterval":[12282,12304]},["seq",{"sourceInterval":[12283,12302]},["not",{"sourceInterval":[12283,12298]},["app",{"sourceInterval":[12284,12298]},"lineTerminator",[]]],["app",{"sourceInterval":[12299,12302]},"any",[]]]]]]}]);module.exports=result; \ No newline at end of file diff --git a/src/grammar/grammar.ts b/src/grammar/grammar.ts index 543e98310..3c041885a 100644 --- a/src/grammar/grammar.ts +++ b/src/grammar/grammar.ts @@ -654,6 +654,12 @@ semantics.addOperation("resolve_statement", { ref: createRef(this), }); }, + StatementBreak(_arg0, _arg1) { + return createNode({ + kind: "statement_break", + ref: createRef(this), + }); + }, StatementExpression(arg0, _arg1) { return createNode({ kind: "statement_expression",