From 2bbc6d11b26275b2e16f3376aafab8e94036da85 Mon Sep 17 00:00:00 2001 From: boolangery Date: Mon, 21 Oct 2024 20:45:25 +0200 Subject: [PATCH] wip --- luaparser/ast.py | 51 ++- luaparser/parser/LuaParser.interp | 2 +- luaparser/parser/LuaParser.py | 550 ++++++++++++++++-------------- 3 files changed, 347 insertions(+), 256 deletions(-) diff --git a/luaparser/ast.py b/luaparser/ast.py index 53942f0..312f83e 100644 --- a/luaparser/ast.py +++ b/luaparser/ast.py @@ -1,7 +1,9 @@ import ast +import re from antlr4 import InputStream, CommonTokenStream from antlr4.tree.Tree import ParseTreeVisitor, TerminalNodeImpl, ErrorNodeImpl +from antlr_ast.ast import LexerErrorListener, StrictErrorListener, ConsoleErrorListener from luaparser.parser.LuaLexer import LuaLexer from luaparser.astnodes import * @@ -156,7 +158,7 @@ def visitNamelist(self, ctx: LuaParser.NamelistContext): # Visit a parse tree produced by LuaParser#explist. def visitExplist(self, ctx: LuaParser.ExplistContext): - return self.visitChildren(ctx) + return [self.visit(exp) for exp in ctx.exp()] # Visit a parse tree produced by LuaParser#exp. def visitExp(self, ctx: LuaParser.ExpContext): @@ -166,8 +168,18 @@ def visitExp(self, ctx: LuaParser.ExpContext): return FalseExpr() elif ctx.TRUE(): return TrueExpr() + elif ctx.number(): + return self.visit(ctx.number()) + elif ctx.string(): + return self.visit(ctx.string()) elif ctx.DDD(): return Dots() + elif ctx.functiondef(): + return self.visit(ctx.functiondef()) + elif ctx.prefixexp(): + return self.visit(ctx.prefixexp()) + elif ctx.tableconstructor(): + return self.visit(ctx.tableconstructor()) else: expressions = ctx.exp() @@ -346,17 +358,42 @@ def visitNumber(self, ctx: LuaParser.NumberContext): number, ) - -# Visit a parse tree produced by LuaParser#string. -def visitString(self, ctx: LuaParser.StringContext): - return self.visitChildren(ctx) + # Visit a parse tree produced by LuaParser#string. + def visitString(self, ctx: LuaParser.StringContext): + lua_str = ctx.getText() + + delimiter: StringDelimiter = StringDelimiter.SINGLE_QUOTE + p = re.compile(r"^\[=+\[(.*)]=+]") # nested quote pattern + # try remove double quote: + if lua_str.startswith('"') and lua_str.endswith('"'): + lua_str = lua_str[1:-1] + delimiter = StringDelimiter.DOUBLE_QUOTE + # try remove single quote: + elif lua_str.startswith("'") and lua_str.endswith("'"): + lua_str = lua_str[1:-1] + delimiter = StringDelimiter.SINGLE_QUOTE + # try remove double square bracket: + elif lua_str.startswith("[[") and lua_str.endswith("]]"): + lua_str = lua_str[2:-2] + delimiter = StringDelimiter.DOUBLE_SQUARE + # nested quote + elif p.match(lua_str): + lua_str = p.search(lua_str).group(1) + + return String(lua_str, delimiter) def parse(source: str) -> Chunk: """Parse Lua source to a Chunk.""" lexer = LuaLexer(InputStream(source)) - stream = CommonTokenStream(lexer) - parser = LuaParser(stream) + lexer.removeErrorListeners() + lexer.addErrorListener(ConsoleErrorListener()) + lexer.addErrorListener(LexerErrorListener()) + + token_stream = CommonTokenStream(lexer) + parser = LuaParser(token_stream) + parser.addErrorListener(ConsoleErrorListener()) + parser.addErrorListener(StrictErrorListener()) tree = parser.start_() if parser.getNumberOfSyntaxErrors() > 0: diff --git a/luaparser/parser/LuaParser.interp b/luaparser/parser/LuaParser.interp index c0cec05..eea130a 100644 --- a/luaparser/parser/LuaParser.interp +++ b/luaparser/parser/LuaParser.interp @@ -183,4 +183,4 @@ string atn: -[4, 1, 68, 435, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 5, 2, 85, 8, 2, 10, 2, 12, 2, 88, 9, 2, 1, 2, 3, 2, 91, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 108, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 5, 9, 141, 8, 9, 10, 9, 12, 9, 144, 9, 9, 1, 9, 1, 9, 3, 9, 148, 8, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 160, 8, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 187, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 194, 8, 15, 10, 15, 12, 15, 197, 9, 15, 1, 16, 1, 16, 1, 16, 3, 16, 202, 8, 16, 1, 17, 1, 17, 3, 17, 206, 8, 17, 1, 17, 1, 17, 3, 17, 210, 8, 17, 1, 17, 3, 17, 213, 8, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 5, 19, 222, 8, 19, 10, 19, 12, 19, 225, 9, 19, 1, 19, 1, 19, 3, 19, 229, 8, 19, 1, 20, 1, 20, 1, 20, 5, 20, 234, 8, 20, 10, 20, 12, 20, 237, 9, 20, 1, 21, 1, 21, 1, 21, 5, 21, 242, 8, 21, 10, 21, 12, 21, 245, 9, 21, 1, 22, 1, 22, 1, 22, 5, 22, 250, 8, 22, 10, 22, 12, 22, 253, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 267, 8, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 5, 23, 293, 8, 23, 10, 23, 12, 23, 296, 9, 23, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 302, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 314, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 341, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 5, 26, 353, 8, 26, 10, 26, 12, 26, 356, 9, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 364, 8, 27, 1, 28, 5, 28, 367, 8, 28, 10, 28, 12, 28, 370, 9, 28, 1, 29, 1, 29, 3, 29, 374, 8, 29, 1, 29, 1, 29, 1, 29, 3, 29, 379, 8, 29, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 3, 32, 393, 8, 32, 1, 32, 1, 32, 3, 32, 397, 8, 32, 1, 33, 1, 33, 3, 33, 401, 8, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 5, 34, 409, 8, 34, 10, 34, 12, 34, 412, 9, 34, 1, 34, 3, 34, 415, 8, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 427, 8, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 0, 2, 46, 52, 39, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 0, 8, 2, 0, 28, 30, 33, 33, 3, 0, 37, 38, 45, 45, 54, 54, 2, 0, 29, 29, 44, 44, 4, 0, 19, 20, 40, 41, 50, 50, 56, 56, 3, 0, 28, 28, 34, 36, 52, 52, 2, 0, 1, 1, 15, 15, 1, 0, 61, 64, 1, 0, 58, 60, 464, 0, 78, 1, 0, 0, 0, 2, 81, 1, 0, 0, 0, 4, 86, 1, 0, 0, 0, 6, 107, 1, 0, 0, 0, 8, 109, 1, 0, 0, 0, 10, 113, 1, 0, 0, 0, 12, 116, 1, 0, 0, 0, 14, 120, 1, 0, 0, 0, 16, 126, 1, 0, 0, 0, 18, 131, 1, 0, 0, 0, 20, 151, 1, 0, 0, 0, 22, 165, 1, 0, 0, 0, 24, 173, 1, 0, 0, 0, 26, 177, 1, 0, 0, 0, 28, 182, 1, 0, 0, 0, 30, 188, 1, 0, 0, 0, 32, 201, 1, 0, 0, 0, 34, 209, 1, 0, 0, 0, 36, 214, 1, 0, 0, 0, 38, 218, 1, 0, 0, 0, 40, 230, 1, 0, 0, 0, 42, 238, 1, 0, 0, 0, 44, 246, 1, 0, 0, 0, 46, 266, 1, 0, 0, 0, 48, 301, 1, 0, 0, 0, 50, 313, 1, 0, 0, 0, 52, 340, 1, 0, 0, 0, 54, 363, 1, 0, 0, 0, 56, 368, 1, 0, 0, 0, 58, 378, 1, 0, 0, 0, 60, 380, 1, 0, 0, 0, 62, 383, 1, 0, 0, 0, 64, 396, 1, 0, 0, 0, 66, 398, 1, 0, 0, 0, 68, 404, 1, 0, 0, 0, 70, 426, 1, 0, 0, 0, 72, 428, 1, 0, 0, 0, 74, 430, 1, 0, 0, 0, 76, 432, 1, 0, 0, 0, 78, 79, 3, 2, 1, 0, 79, 80, 5, 0, 0, 1, 80, 1, 1, 0, 0, 0, 81, 82, 3, 4, 2, 0, 82, 3, 1, 0, 0, 0, 83, 85, 3, 6, 3, 0, 84, 83, 1, 0, 0, 0, 85, 88, 1, 0, 0, 0, 86, 84, 1, 0, 0, 0, 86, 87, 1, 0, 0, 0, 87, 90, 1, 0, 0, 0, 88, 86, 1, 0, 0, 0, 89, 91, 3, 34, 17, 0, 90, 89, 1, 0, 0, 0, 90, 91, 1, 0, 0, 0, 91, 5, 1, 0, 0, 0, 92, 108, 5, 1, 0, 0, 93, 108, 3, 8, 4, 0, 94, 108, 3, 52, 26, 0, 95, 108, 3, 36, 18, 0, 96, 108, 5, 3, 0, 0, 97, 108, 3, 10, 5, 0, 98, 108, 3, 12, 6, 0, 99, 108, 3, 14, 7, 0, 100, 108, 3, 16, 8, 0, 101, 108, 3, 18, 9, 0, 102, 108, 3, 20, 10, 0, 103, 108, 3, 22, 11, 0, 104, 108, 3, 24, 12, 0, 105, 108, 3, 26, 13, 0, 106, 108, 3, 28, 14, 0, 107, 92, 1, 0, 0, 0, 107, 93, 1, 0, 0, 0, 107, 94, 1, 0, 0, 0, 107, 95, 1, 0, 0, 0, 107, 96, 1, 0, 0, 0, 107, 97, 1, 0, 0, 0, 107, 98, 1, 0, 0, 0, 107, 99, 1, 0, 0, 0, 107, 100, 1, 0, 0, 0, 107, 101, 1, 0, 0, 0, 107, 102, 1, 0, 0, 0, 107, 103, 1, 0, 0, 0, 107, 104, 1, 0, 0, 0, 107, 105, 1, 0, 0, 0, 107, 106, 1, 0, 0, 0, 108, 7, 1, 0, 0, 0, 109, 110, 3, 40, 20, 0, 110, 111, 5, 2, 0, 0, 111, 112, 3, 44, 22, 0, 112, 9, 1, 0, 0, 0, 113, 114, 5, 4, 0, 0, 114, 115, 5, 57, 0, 0, 115, 11, 1, 0, 0, 0, 116, 117, 5, 5, 0, 0, 117, 118, 3, 4, 2, 0, 118, 119, 5, 6, 0, 0, 119, 13, 1, 0, 0, 0, 120, 121, 5, 7, 0, 0, 121, 122, 3, 46, 23, 0, 122, 123, 5, 5, 0, 0, 123, 124, 3, 4, 2, 0, 124, 125, 5, 6, 0, 0, 125, 15, 1, 0, 0, 0, 126, 127, 5, 8, 0, 0, 127, 128, 3, 4, 2, 0, 128, 129, 5, 9, 0, 0, 129, 130, 3, 46, 23, 0, 130, 17, 1, 0, 0, 0, 131, 132, 5, 10, 0, 0, 132, 133, 3, 46, 23, 0, 133, 134, 5, 11, 0, 0, 134, 142, 3, 4, 2, 0, 135, 136, 5, 12, 0, 0, 136, 137, 3, 46, 23, 0, 137, 138, 5, 11, 0, 0, 138, 139, 3, 4, 2, 0, 139, 141, 1, 0, 0, 0, 140, 135, 1, 0, 0, 0, 141, 144, 1, 0, 0, 0, 142, 140, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 147, 1, 0, 0, 0, 144, 142, 1, 0, 0, 0, 145, 146, 5, 13, 0, 0, 146, 148, 3, 4, 2, 0, 147, 145, 1, 0, 0, 0, 147, 148, 1, 0, 0, 0, 148, 149, 1, 0, 0, 0, 149, 150, 5, 6, 0, 0, 150, 19, 1, 0, 0, 0, 151, 152, 5, 14, 0, 0, 152, 153, 5, 57, 0, 0, 153, 154, 5, 2, 0, 0, 154, 155, 3, 46, 23, 0, 155, 156, 5, 15, 0, 0, 156, 159, 3, 46, 23, 0, 157, 158, 5, 15, 0, 0, 158, 160, 3, 46, 23, 0, 159, 157, 1, 0, 0, 0, 159, 160, 1, 0, 0, 0, 160, 161, 1, 0, 0, 0, 161, 162, 5, 5, 0, 0, 162, 163, 3, 4, 2, 0, 163, 164, 5, 6, 0, 0, 164, 21, 1, 0, 0, 0, 165, 166, 5, 14, 0, 0, 166, 167, 3, 42, 21, 0, 167, 168, 5, 16, 0, 0, 168, 169, 3, 44, 22, 0, 169, 170, 5, 5, 0, 0, 170, 171, 3, 4, 2, 0, 171, 172, 5, 6, 0, 0, 172, 23, 1, 0, 0, 0, 173, 174, 5, 17, 0, 0, 174, 175, 3, 38, 19, 0, 175, 176, 3, 62, 31, 0, 176, 25, 1, 0, 0, 0, 177, 178, 5, 18, 0, 0, 178, 179, 5, 17, 0, 0, 179, 180, 5, 57, 0, 0, 180, 181, 3, 62, 31, 0, 181, 27, 1, 0, 0, 0, 182, 183, 5, 18, 0, 0, 183, 186, 3, 42, 21, 0, 184, 185, 5, 2, 0, 0, 185, 187, 3, 44, 22, 0, 186, 184, 1, 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, 29, 1, 0, 0, 0, 188, 189, 5, 57, 0, 0, 189, 195, 3, 32, 16, 0, 190, 191, 5, 15, 0, 0, 191, 192, 5, 57, 0, 0, 192, 194, 3, 32, 16, 0, 193, 190, 1, 0, 0, 0, 194, 197, 1, 0, 0, 0, 195, 193, 1, 0, 0, 0, 195, 196, 1, 0, 0, 0, 196, 31, 1, 0, 0, 0, 197, 195, 1, 0, 0, 0, 198, 199, 5, 19, 0, 0, 199, 200, 5, 57, 0, 0, 200, 202, 5, 20, 0, 0, 201, 198, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 33, 1, 0, 0, 0, 203, 205, 5, 21, 0, 0, 204, 206, 3, 44, 22, 0, 205, 204, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206, 210, 1, 0, 0, 0, 207, 210, 5, 3, 0, 0, 208, 210, 5, 22, 0, 0, 209, 203, 1, 0, 0, 0, 209, 207, 1, 0, 0, 0, 209, 208, 1, 0, 0, 0, 210, 212, 1, 0, 0, 0, 211, 213, 5, 1, 0, 0, 212, 211, 1, 0, 0, 0, 212, 213, 1, 0, 0, 0, 213, 35, 1, 0, 0, 0, 214, 215, 5, 23, 0, 0, 215, 216, 5, 57, 0, 0, 216, 217, 5, 23, 0, 0, 217, 37, 1, 0, 0, 0, 218, 223, 5, 57, 0, 0, 219, 220, 5, 27, 0, 0, 220, 222, 5, 57, 0, 0, 221, 219, 1, 0, 0, 0, 222, 225, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 228, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 226, 227, 5, 39, 0, 0, 227, 229, 5, 57, 0, 0, 228, 226, 1, 0, 0, 0, 228, 229, 1, 0, 0, 0, 229, 39, 1, 0, 0, 0, 230, 235, 3, 48, 24, 0, 231, 232, 5, 15, 0, 0, 232, 234, 3, 48, 24, 0, 233, 231, 1, 0, 0, 0, 234, 237, 1, 0, 0, 0, 235, 233, 1, 0, 0, 0, 235, 236, 1, 0, 0, 0, 236, 41, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 238, 243, 5, 57, 0, 0, 239, 240, 5, 15, 0, 0, 240, 242, 5, 57, 0, 0, 241, 239, 1, 0, 0, 0, 242, 245, 1, 0, 0, 0, 243, 241, 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244, 43, 1, 0, 0, 0, 245, 243, 1, 0, 0, 0, 246, 251, 3, 46, 23, 0, 247, 248, 5, 15, 0, 0, 248, 250, 3, 46, 23, 0, 249, 247, 1, 0, 0, 0, 250, 253, 1, 0, 0, 0, 251, 249, 1, 0, 0, 0, 251, 252, 1, 0, 0, 0, 252, 45, 1, 0, 0, 0, 253, 251, 1, 0, 0, 0, 254, 255, 6, 23, -1, 0, 255, 267, 5, 24, 0, 0, 256, 267, 5, 25, 0, 0, 257, 267, 5, 26, 0, 0, 258, 267, 3, 74, 37, 0, 259, 267, 3, 76, 38, 0, 260, 267, 5, 55, 0, 0, 261, 267, 3, 24, 12, 0, 262, 267, 3, 50, 25, 0, 263, 267, 3, 66, 33, 0, 264, 265, 7, 0, 0, 0, 265, 267, 3, 46, 23, 8, 266, 254, 1, 0, 0, 0, 266, 256, 1, 0, 0, 0, 266, 257, 1, 0, 0, 0, 266, 258, 1, 0, 0, 0, 266, 259, 1, 0, 0, 0, 266, 260, 1, 0, 0, 0, 266, 261, 1, 0, 0, 0, 266, 262, 1, 0, 0, 0, 266, 263, 1, 0, 0, 0, 266, 264, 1, 0, 0, 0, 267, 294, 1, 0, 0, 0, 268, 269, 10, 9, 0, 0, 269, 270, 5, 53, 0, 0, 270, 293, 3, 46, 23, 9, 271, 272, 10, 7, 0, 0, 272, 273, 7, 1, 0, 0, 273, 293, 3, 46, 23, 8, 274, 275, 10, 6, 0, 0, 275, 276, 7, 2, 0, 0, 276, 293, 3, 46, 23, 7, 277, 278, 10, 5, 0, 0, 278, 279, 5, 51, 0, 0, 279, 293, 3, 46, 23, 5, 280, 281, 10, 4, 0, 0, 281, 282, 7, 3, 0, 0, 282, 293, 3, 46, 23, 5, 283, 284, 10, 3, 0, 0, 284, 285, 5, 42, 0, 0, 285, 293, 3, 46, 23, 4, 286, 287, 10, 2, 0, 0, 287, 288, 5, 43, 0, 0, 288, 293, 3, 46, 23, 3, 289, 290, 10, 1, 0, 0, 290, 291, 7, 4, 0, 0, 291, 293, 3, 46, 23, 2, 292, 268, 1, 0, 0, 0, 292, 271, 1, 0, 0, 0, 292, 274, 1, 0, 0, 0, 292, 277, 1, 0, 0, 0, 292, 280, 1, 0, 0, 0, 292, 283, 1, 0, 0, 0, 292, 286, 1, 0, 0, 0, 292, 289, 1, 0, 0, 0, 293, 296, 1, 0, 0, 0, 294, 292, 1, 0, 0, 0, 294, 295, 1, 0, 0, 0, 295, 47, 1, 0, 0, 0, 296, 294, 1, 0, 0, 0, 297, 302, 5, 57, 0, 0, 298, 299, 3, 50, 25, 0, 299, 300, 3, 54, 27, 0, 300, 302, 1, 0, 0, 0, 301, 297, 1, 0, 0, 0, 301, 298, 1, 0, 0, 0, 302, 49, 1, 0, 0, 0, 303, 304, 5, 57, 0, 0, 304, 314, 3, 56, 28, 0, 305, 306, 3, 52, 26, 0, 306, 307, 3, 56, 28, 0, 307, 314, 1, 0, 0, 0, 308, 309, 5, 31, 0, 0, 309, 310, 3, 46, 23, 0, 310, 311, 5, 32, 0, 0, 311, 312, 3, 56, 28, 0, 312, 314, 1, 0, 0, 0, 313, 303, 1, 0, 0, 0, 313, 305, 1, 0, 0, 0, 313, 308, 1, 0, 0, 0, 314, 51, 1, 0, 0, 0, 315, 316, 6, 26, -1, 0, 316, 317, 5, 57, 0, 0, 317, 318, 3, 56, 28, 0, 318, 319, 3, 58, 29, 0, 319, 341, 1, 0, 0, 0, 320, 321, 5, 31, 0, 0, 321, 322, 3, 46, 23, 0, 322, 323, 5, 32, 0, 0, 323, 324, 3, 56, 28, 0, 324, 325, 3, 58, 29, 0, 325, 341, 1, 0, 0, 0, 326, 327, 5, 57, 0, 0, 327, 328, 3, 56, 28, 0, 328, 329, 5, 39, 0, 0, 329, 330, 5, 57, 0, 0, 330, 331, 3, 58, 29, 0, 331, 341, 1, 0, 0, 0, 332, 333, 5, 31, 0, 0, 333, 334, 3, 46, 23, 0, 334, 335, 5, 32, 0, 0, 335, 336, 3, 56, 28, 0, 336, 337, 5, 39, 0, 0, 337, 338, 5, 57, 0, 0, 338, 339, 3, 58, 29, 0, 339, 341, 1, 0, 0, 0, 340, 315, 1, 0, 0, 0, 340, 320, 1, 0, 0, 0, 340, 326, 1, 0, 0, 0, 340, 332, 1, 0, 0, 0, 341, 354, 1, 0, 0, 0, 342, 343, 10, 5, 0, 0, 343, 344, 3, 56, 28, 0, 344, 345, 3, 58, 29, 0, 345, 353, 1, 0, 0, 0, 346, 347, 10, 2, 0, 0, 347, 348, 3, 56, 28, 0, 348, 349, 5, 39, 0, 0, 349, 350, 5, 57, 0, 0, 350, 351, 3, 58, 29, 0, 351, 353, 1, 0, 0, 0, 352, 342, 1, 0, 0, 0, 352, 346, 1, 0, 0, 0, 353, 356, 1, 0, 0, 0, 354, 352, 1, 0, 0, 0, 354, 355, 1, 0, 0, 0, 355, 53, 1, 0, 0, 0, 356, 354, 1, 0, 0, 0, 357, 358, 5, 48, 0, 0, 358, 359, 3, 46, 23, 0, 359, 360, 5, 49, 0, 0, 360, 364, 1, 0, 0, 0, 361, 362, 5, 27, 0, 0, 362, 364, 5, 57, 0, 0, 363, 357, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 364, 55, 1, 0, 0, 0, 365, 367, 3, 54, 27, 0, 366, 365, 1, 0, 0, 0, 367, 370, 1, 0, 0, 0, 368, 366, 1, 0, 0, 0, 368, 369, 1, 0, 0, 0, 369, 57, 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 371, 373, 5, 31, 0, 0, 372, 374, 3, 44, 22, 0, 373, 372, 1, 0, 0, 0, 373, 374, 1, 0, 0, 0, 374, 375, 1, 0, 0, 0, 375, 379, 5, 32, 0, 0, 376, 379, 3, 66, 33, 0, 377, 379, 3, 76, 38, 0, 378, 371, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 378, 377, 1, 0, 0, 0, 379, 59, 1, 0, 0, 0, 380, 381, 5, 17, 0, 0, 381, 382, 3, 62, 31, 0, 382, 61, 1, 0, 0, 0, 383, 384, 5, 31, 0, 0, 384, 385, 3, 64, 32, 0, 385, 386, 5, 32, 0, 0, 386, 387, 3, 4, 2, 0, 387, 388, 5, 6, 0, 0, 388, 63, 1, 0, 0, 0, 389, 392, 3, 42, 21, 0, 390, 391, 5, 15, 0, 0, 391, 393, 5, 55, 0, 0, 392, 390, 1, 0, 0, 0, 392, 393, 1, 0, 0, 0, 393, 397, 1, 0, 0, 0, 394, 397, 5, 55, 0, 0, 395, 397, 1, 0, 0, 0, 396, 389, 1, 0, 0, 0, 396, 394, 1, 0, 0, 0, 396, 395, 1, 0, 0, 0, 397, 65, 1, 0, 0, 0, 398, 400, 5, 46, 0, 0, 399, 401, 3, 68, 34, 0, 400, 399, 1, 0, 0, 0, 400, 401, 1, 0, 0, 0, 401, 402, 1, 0, 0, 0, 402, 403, 5, 47, 0, 0, 403, 67, 1, 0, 0, 0, 404, 410, 3, 70, 35, 0, 405, 406, 3, 72, 36, 0, 406, 407, 3, 70, 35, 0, 407, 409, 1, 0, 0, 0, 408, 405, 1, 0, 0, 0, 409, 412, 1, 0, 0, 0, 410, 408, 1, 0, 0, 0, 410, 411, 1, 0, 0, 0, 411, 414, 1, 0, 0, 0, 412, 410, 1, 0, 0, 0, 413, 415, 3, 72, 36, 0, 414, 413, 1, 0, 0, 0, 414, 415, 1, 0, 0, 0, 415, 69, 1, 0, 0, 0, 416, 417, 5, 48, 0, 0, 417, 418, 3, 46, 23, 0, 418, 419, 5, 49, 0, 0, 419, 420, 5, 2, 0, 0, 420, 421, 3, 46, 23, 0, 421, 427, 1, 0, 0, 0, 422, 423, 5, 57, 0, 0, 423, 424, 5, 2, 0, 0, 424, 427, 3, 46, 23, 0, 425, 427, 3, 46, 23, 0, 426, 416, 1, 0, 0, 0, 426, 422, 1, 0, 0, 0, 426, 425, 1, 0, 0, 0, 427, 71, 1, 0, 0, 0, 428, 429, 7, 5, 0, 0, 429, 73, 1, 0, 0, 0, 430, 431, 7, 6, 0, 0, 431, 75, 1, 0, 0, 0, 432, 433, 7, 7, 0, 0, 433, 77, 1, 0, 0, 0, 35, 86, 90, 107, 142, 147, 159, 186, 195, 201, 205, 209, 212, 223, 228, 235, 243, 251, 266, 292, 294, 301, 313, 340, 352, 354, 363, 368, 373, 378, 392, 396, 400, 410, 414, 426] \ No newline at end of file +[4, 1, 68, 445, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 5, 2, 85, 8, 2, 10, 2, 12, 2, 88, 9, 2, 1, 2, 3, 2, 91, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 108, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 5, 9, 141, 8, 9, 10, 9, 12, 9, 144, 9, 9, 1, 9, 1, 9, 3, 9, 148, 8, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 160, 8, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 187, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 194, 8, 15, 10, 15, 12, 15, 197, 9, 15, 1, 16, 1, 16, 1, 16, 3, 16, 202, 8, 16, 1, 17, 1, 17, 3, 17, 206, 8, 17, 1, 17, 1, 17, 3, 17, 210, 8, 17, 1, 17, 3, 17, 213, 8, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 5, 19, 222, 8, 19, 10, 19, 12, 19, 225, 9, 19, 1, 19, 1, 19, 3, 19, 229, 8, 19, 1, 20, 1, 20, 1, 20, 5, 20, 234, 8, 20, 10, 20, 12, 20, 237, 9, 20, 1, 21, 1, 21, 1, 21, 5, 21, 242, 8, 21, 10, 21, 12, 21, 245, 9, 21, 1, 22, 1, 22, 1, 22, 5, 22, 250, 8, 22, 10, 22, 12, 22, 253, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 267, 8, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 5, 23, 293, 8, 23, 10, 23, 12, 23, 296, 9, 23, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 302, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 5, 25, 311, 8, 25, 10, 25, 12, 25, 314, 9, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 324, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 351, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 5, 26, 363, 8, 26, 10, 26, 12, 26, 366, 9, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 374, 8, 27, 1, 28, 5, 28, 377, 8, 28, 10, 28, 12, 28, 380, 9, 28, 1, 29, 1, 29, 3, 29, 384, 8, 29, 1, 29, 1, 29, 1, 29, 3, 29, 389, 8, 29, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 3, 32, 403, 8, 32, 1, 32, 1, 32, 3, 32, 407, 8, 32, 1, 33, 1, 33, 3, 33, 411, 8, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 5, 34, 419, 8, 34, 10, 34, 12, 34, 422, 9, 34, 1, 34, 3, 34, 425, 8, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 437, 8, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 0, 2, 46, 52, 39, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 0, 8, 2, 0, 28, 30, 33, 33, 3, 0, 37, 38, 45, 45, 54, 54, 2, 0, 29, 29, 44, 44, 4, 0, 19, 20, 40, 41, 50, 50, 56, 56, 3, 0, 28, 28, 34, 36, 52, 52, 2, 0, 1, 1, 15, 15, 1, 0, 61, 64, 1, 0, 58, 60, 476, 0, 78, 1, 0, 0, 0, 2, 81, 1, 0, 0, 0, 4, 86, 1, 0, 0, 0, 6, 107, 1, 0, 0, 0, 8, 109, 1, 0, 0, 0, 10, 113, 1, 0, 0, 0, 12, 116, 1, 0, 0, 0, 14, 120, 1, 0, 0, 0, 16, 126, 1, 0, 0, 0, 18, 131, 1, 0, 0, 0, 20, 151, 1, 0, 0, 0, 22, 165, 1, 0, 0, 0, 24, 173, 1, 0, 0, 0, 26, 177, 1, 0, 0, 0, 28, 182, 1, 0, 0, 0, 30, 188, 1, 0, 0, 0, 32, 201, 1, 0, 0, 0, 34, 209, 1, 0, 0, 0, 36, 214, 1, 0, 0, 0, 38, 218, 1, 0, 0, 0, 40, 230, 1, 0, 0, 0, 42, 238, 1, 0, 0, 0, 44, 246, 1, 0, 0, 0, 46, 266, 1, 0, 0, 0, 48, 301, 1, 0, 0, 0, 50, 323, 1, 0, 0, 0, 52, 350, 1, 0, 0, 0, 54, 373, 1, 0, 0, 0, 56, 378, 1, 0, 0, 0, 58, 388, 1, 0, 0, 0, 60, 390, 1, 0, 0, 0, 62, 393, 1, 0, 0, 0, 64, 406, 1, 0, 0, 0, 66, 408, 1, 0, 0, 0, 68, 414, 1, 0, 0, 0, 70, 436, 1, 0, 0, 0, 72, 438, 1, 0, 0, 0, 74, 440, 1, 0, 0, 0, 76, 442, 1, 0, 0, 0, 78, 79, 3, 2, 1, 0, 79, 80, 5, 0, 0, 1, 80, 1, 1, 0, 0, 0, 81, 82, 3, 4, 2, 0, 82, 3, 1, 0, 0, 0, 83, 85, 3, 6, 3, 0, 84, 83, 1, 0, 0, 0, 85, 88, 1, 0, 0, 0, 86, 84, 1, 0, 0, 0, 86, 87, 1, 0, 0, 0, 87, 90, 1, 0, 0, 0, 88, 86, 1, 0, 0, 0, 89, 91, 3, 34, 17, 0, 90, 89, 1, 0, 0, 0, 90, 91, 1, 0, 0, 0, 91, 5, 1, 0, 0, 0, 92, 108, 5, 1, 0, 0, 93, 108, 3, 8, 4, 0, 94, 108, 3, 52, 26, 0, 95, 108, 3, 36, 18, 0, 96, 108, 5, 3, 0, 0, 97, 108, 3, 10, 5, 0, 98, 108, 3, 12, 6, 0, 99, 108, 3, 14, 7, 0, 100, 108, 3, 16, 8, 0, 101, 108, 3, 18, 9, 0, 102, 108, 3, 20, 10, 0, 103, 108, 3, 22, 11, 0, 104, 108, 3, 24, 12, 0, 105, 108, 3, 26, 13, 0, 106, 108, 3, 28, 14, 0, 107, 92, 1, 0, 0, 0, 107, 93, 1, 0, 0, 0, 107, 94, 1, 0, 0, 0, 107, 95, 1, 0, 0, 0, 107, 96, 1, 0, 0, 0, 107, 97, 1, 0, 0, 0, 107, 98, 1, 0, 0, 0, 107, 99, 1, 0, 0, 0, 107, 100, 1, 0, 0, 0, 107, 101, 1, 0, 0, 0, 107, 102, 1, 0, 0, 0, 107, 103, 1, 0, 0, 0, 107, 104, 1, 0, 0, 0, 107, 105, 1, 0, 0, 0, 107, 106, 1, 0, 0, 0, 108, 7, 1, 0, 0, 0, 109, 110, 3, 40, 20, 0, 110, 111, 5, 2, 0, 0, 111, 112, 3, 44, 22, 0, 112, 9, 1, 0, 0, 0, 113, 114, 5, 4, 0, 0, 114, 115, 5, 57, 0, 0, 115, 11, 1, 0, 0, 0, 116, 117, 5, 5, 0, 0, 117, 118, 3, 4, 2, 0, 118, 119, 5, 6, 0, 0, 119, 13, 1, 0, 0, 0, 120, 121, 5, 7, 0, 0, 121, 122, 3, 46, 23, 0, 122, 123, 5, 5, 0, 0, 123, 124, 3, 4, 2, 0, 124, 125, 5, 6, 0, 0, 125, 15, 1, 0, 0, 0, 126, 127, 5, 8, 0, 0, 127, 128, 3, 4, 2, 0, 128, 129, 5, 9, 0, 0, 129, 130, 3, 46, 23, 0, 130, 17, 1, 0, 0, 0, 131, 132, 5, 10, 0, 0, 132, 133, 3, 46, 23, 0, 133, 134, 5, 11, 0, 0, 134, 142, 3, 4, 2, 0, 135, 136, 5, 12, 0, 0, 136, 137, 3, 46, 23, 0, 137, 138, 5, 11, 0, 0, 138, 139, 3, 4, 2, 0, 139, 141, 1, 0, 0, 0, 140, 135, 1, 0, 0, 0, 141, 144, 1, 0, 0, 0, 142, 140, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 147, 1, 0, 0, 0, 144, 142, 1, 0, 0, 0, 145, 146, 5, 13, 0, 0, 146, 148, 3, 4, 2, 0, 147, 145, 1, 0, 0, 0, 147, 148, 1, 0, 0, 0, 148, 149, 1, 0, 0, 0, 149, 150, 5, 6, 0, 0, 150, 19, 1, 0, 0, 0, 151, 152, 5, 14, 0, 0, 152, 153, 5, 57, 0, 0, 153, 154, 5, 2, 0, 0, 154, 155, 3, 46, 23, 0, 155, 156, 5, 15, 0, 0, 156, 159, 3, 46, 23, 0, 157, 158, 5, 15, 0, 0, 158, 160, 3, 46, 23, 0, 159, 157, 1, 0, 0, 0, 159, 160, 1, 0, 0, 0, 160, 161, 1, 0, 0, 0, 161, 162, 5, 5, 0, 0, 162, 163, 3, 4, 2, 0, 163, 164, 5, 6, 0, 0, 164, 21, 1, 0, 0, 0, 165, 166, 5, 14, 0, 0, 166, 167, 3, 42, 21, 0, 167, 168, 5, 16, 0, 0, 168, 169, 3, 44, 22, 0, 169, 170, 5, 5, 0, 0, 170, 171, 3, 4, 2, 0, 171, 172, 5, 6, 0, 0, 172, 23, 1, 0, 0, 0, 173, 174, 5, 17, 0, 0, 174, 175, 3, 38, 19, 0, 175, 176, 3, 62, 31, 0, 176, 25, 1, 0, 0, 0, 177, 178, 5, 18, 0, 0, 178, 179, 5, 17, 0, 0, 179, 180, 5, 57, 0, 0, 180, 181, 3, 62, 31, 0, 181, 27, 1, 0, 0, 0, 182, 183, 5, 18, 0, 0, 183, 186, 3, 42, 21, 0, 184, 185, 5, 2, 0, 0, 185, 187, 3, 44, 22, 0, 186, 184, 1, 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, 29, 1, 0, 0, 0, 188, 189, 5, 57, 0, 0, 189, 195, 3, 32, 16, 0, 190, 191, 5, 15, 0, 0, 191, 192, 5, 57, 0, 0, 192, 194, 3, 32, 16, 0, 193, 190, 1, 0, 0, 0, 194, 197, 1, 0, 0, 0, 195, 193, 1, 0, 0, 0, 195, 196, 1, 0, 0, 0, 196, 31, 1, 0, 0, 0, 197, 195, 1, 0, 0, 0, 198, 199, 5, 19, 0, 0, 199, 200, 5, 57, 0, 0, 200, 202, 5, 20, 0, 0, 201, 198, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 33, 1, 0, 0, 0, 203, 205, 5, 21, 0, 0, 204, 206, 3, 44, 22, 0, 205, 204, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206, 210, 1, 0, 0, 0, 207, 210, 5, 3, 0, 0, 208, 210, 5, 22, 0, 0, 209, 203, 1, 0, 0, 0, 209, 207, 1, 0, 0, 0, 209, 208, 1, 0, 0, 0, 210, 212, 1, 0, 0, 0, 211, 213, 5, 1, 0, 0, 212, 211, 1, 0, 0, 0, 212, 213, 1, 0, 0, 0, 213, 35, 1, 0, 0, 0, 214, 215, 5, 23, 0, 0, 215, 216, 5, 57, 0, 0, 216, 217, 5, 23, 0, 0, 217, 37, 1, 0, 0, 0, 218, 223, 5, 57, 0, 0, 219, 220, 5, 27, 0, 0, 220, 222, 5, 57, 0, 0, 221, 219, 1, 0, 0, 0, 222, 225, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 228, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 226, 227, 5, 39, 0, 0, 227, 229, 5, 57, 0, 0, 228, 226, 1, 0, 0, 0, 228, 229, 1, 0, 0, 0, 229, 39, 1, 0, 0, 0, 230, 235, 3, 48, 24, 0, 231, 232, 5, 15, 0, 0, 232, 234, 3, 48, 24, 0, 233, 231, 1, 0, 0, 0, 234, 237, 1, 0, 0, 0, 235, 233, 1, 0, 0, 0, 235, 236, 1, 0, 0, 0, 236, 41, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 238, 243, 5, 57, 0, 0, 239, 240, 5, 15, 0, 0, 240, 242, 5, 57, 0, 0, 241, 239, 1, 0, 0, 0, 242, 245, 1, 0, 0, 0, 243, 241, 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244, 43, 1, 0, 0, 0, 245, 243, 1, 0, 0, 0, 246, 251, 3, 46, 23, 0, 247, 248, 5, 15, 0, 0, 248, 250, 3, 46, 23, 0, 249, 247, 1, 0, 0, 0, 250, 253, 1, 0, 0, 0, 251, 249, 1, 0, 0, 0, 251, 252, 1, 0, 0, 0, 252, 45, 1, 0, 0, 0, 253, 251, 1, 0, 0, 0, 254, 255, 6, 23, -1, 0, 255, 267, 5, 24, 0, 0, 256, 267, 5, 25, 0, 0, 257, 267, 5, 26, 0, 0, 258, 267, 3, 74, 37, 0, 259, 267, 3, 76, 38, 0, 260, 267, 5, 55, 0, 0, 261, 267, 3, 24, 12, 0, 262, 267, 3, 50, 25, 0, 263, 267, 3, 66, 33, 0, 264, 265, 7, 0, 0, 0, 265, 267, 3, 46, 23, 8, 266, 254, 1, 0, 0, 0, 266, 256, 1, 0, 0, 0, 266, 257, 1, 0, 0, 0, 266, 258, 1, 0, 0, 0, 266, 259, 1, 0, 0, 0, 266, 260, 1, 0, 0, 0, 266, 261, 1, 0, 0, 0, 266, 262, 1, 0, 0, 0, 266, 263, 1, 0, 0, 0, 266, 264, 1, 0, 0, 0, 267, 294, 1, 0, 0, 0, 268, 269, 10, 9, 0, 0, 269, 270, 5, 53, 0, 0, 270, 293, 3, 46, 23, 9, 271, 272, 10, 7, 0, 0, 272, 273, 7, 1, 0, 0, 273, 293, 3, 46, 23, 8, 274, 275, 10, 6, 0, 0, 275, 276, 7, 2, 0, 0, 276, 293, 3, 46, 23, 7, 277, 278, 10, 5, 0, 0, 278, 279, 5, 51, 0, 0, 279, 293, 3, 46, 23, 5, 280, 281, 10, 4, 0, 0, 281, 282, 7, 3, 0, 0, 282, 293, 3, 46, 23, 5, 283, 284, 10, 3, 0, 0, 284, 285, 5, 42, 0, 0, 285, 293, 3, 46, 23, 4, 286, 287, 10, 2, 0, 0, 287, 288, 5, 43, 0, 0, 288, 293, 3, 46, 23, 3, 289, 290, 10, 1, 0, 0, 290, 291, 7, 4, 0, 0, 291, 293, 3, 46, 23, 2, 292, 268, 1, 0, 0, 0, 292, 271, 1, 0, 0, 0, 292, 274, 1, 0, 0, 0, 292, 277, 1, 0, 0, 0, 292, 280, 1, 0, 0, 0, 292, 283, 1, 0, 0, 0, 292, 286, 1, 0, 0, 0, 292, 289, 1, 0, 0, 0, 293, 296, 1, 0, 0, 0, 294, 292, 1, 0, 0, 0, 294, 295, 1, 0, 0, 0, 295, 47, 1, 0, 0, 0, 296, 294, 1, 0, 0, 0, 297, 302, 5, 57, 0, 0, 298, 299, 3, 50, 25, 0, 299, 300, 3, 54, 27, 0, 300, 302, 1, 0, 0, 0, 301, 297, 1, 0, 0, 0, 301, 298, 1, 0, 0, 0, 302, 49, 1, 0, 0, 0, 303, 312, 5, 57, 0, 0, 304, 305, 5, 48, 0, 0, 305, 306, 3, 46, 23, 0, 306, 307, 5, 49, 0, 0, 307, 311, 1, 0, 0, 0, 308, 309, 5, 27, 0, 0, 309, 311, 5, 57, 0, 0, 310, 304, 1, 0, 0, 0, 310, 308, 1, 0, 0, 0, 311, 314, 1, 0, 0, 0, 312, 310, 1, 0, 0, 0, 312, 313, 1, 0, 0, 0, 313, 324, 1, 0, 0, 0, 314, 312, 1, 0, 0, 0, 315, 316, 3, 52, 26, 0, 316, 317, 3, 56, 28, 0, 317, 324, 1, 0, 0, 0, 318, 319, 5, 31, 0, 0, 319, 320, 3, 46, 23, 0, 320, 321, 5, 32, 0, 0, 321, 322, 3, 56, 28, 0, 322, 324, 1, 0, 0, 0, 323, 303, 1, 0, 0, 0, 323, 315, 1, 0, 0, 0, 323, 318, 1, 0, 0, 0, 324, 51, 1, 0, 0, 0, 325, 326, 6, 26, -1, 0, 326, 327, 5, 57, 0, 0, 327, 328, 3, 56, 28, 0, 328, 329, 3, 58, 29, 0, 329, 351, 1, 0, 0, 0, 330, 331, 5, 31, 0, 0, 331, 332, 3, 46, 23, 0, 332, 333, 5, 32, 0, 0, 333, 334, 3, 56, 28, 0, 334, 335, 3, 58, 29, 0, 335, 351, 1, 0, 0, 0, 336, 337, 5, 57, 0, 0, 337, 338, 3, 56, 28, 0, 338, 339, 5, 39, 0, 0, 339, 340, 5, 57, 0, 0, 340, 341, 3, 58, 29, 0, 341, 351, 1, 0, 0, 0, 342, 343, 5, 31, 0, 0, 343, 344, 3, 46, 23, 0, 344, 345, 5, 32, 0, 0, 345, 346, 3, 56, 28, 0, 346, 347, 5, 39, 0, 0, 347, 348, 5, 57, 0, 0, 348, 349, 3, 58, 29, 0, 349, 351, 1, 0, 0, 0, 350, 325, 1, 0, 0, 0, 350, 330, 1, 0, 0, 0, 350, 336, 1, 0, 0, 0, 350, 342, 1, 0, 0, 0, 351, 364, 1, 0, 0, 0, 352, 353, 10, 5, 0, 0, 353, 354, 3, 56, 28, 0, 354, 355, 3, 58, 29, 0, 355, 363, 1, 0, 0, 0, 356, 357, 10, 2, 0, 0, 357, 358, 3, 56, 28, 0, 358, 359, 5, 39, 0, 0, 359, 360, 5, 57, 0, 0, 360, 361, 3, 58, 29, 0, 361, 363, 1, 0, 0, 0, 362, 352, 1, 0, 0, 0, 362, 356, 1, 0, 0, 0, 363, 366, 1, 0, 0, 0, 364, 362, 1, 0, 0, 0, 364, 365, 1, 0, 0, 0, 365, 53, 1, 0, 0, 0, 366, 364, 1, 0, 0, 0, 367, 368, 5, 48, 0, 0, 368, 369, 3, 46, 23, 0, 369, 370, 5, 49, 0, 0, 370, 374, 1, 0, 0, 0, 371, 372, 5, 27, 0, 0, 372, 374, 5, 57, 0, 0, 373, 367, 1, 0, 0, 0, 373, 371, 1, 0, 0, 0, 374, 55, 1, 0, 0, 0, 375, 377, 3, 54, 27, 0, 376, 375, 1, 0, 0, 0, 377, 380, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 378, 379, 1, 0, 0, 0, 379, 57, 1, 0, 0, 0, 380, 378, 1, 0, 0, 0, 381, 383, 5, 31, 0, 0, 382, 384, 3, 44, 22, 0, 383, 382, 1, 0, 0, 0, 383, 384, 1, 0, 0, 0, 384, 385, 1, 0, 0, 0, 385, 389, 5, 32, 0, 0, 386, 389, 3, 66, 33, 0, 387, 389, 3, 76, 38, 0, 388, 381, 1, 0, 0, 0, 388, 386, 1, 0, 0, 0, 388, 387, 1, 0, 0, 0, 389, 59, 1, 0, 0, 0, 390, 391, 5, 17, 0, 0, 391, 392, 3, 62, 31, 0, 392, 61, 1, 0, 0, 0, 393, 394, 5, 31, 0, 0, 394, 395, 3, 64, 32, 0, 395, 396, 5, 32, 0, 0, 396, 397, 3, 4, 2, 0, 397, 398, 5, 6, 0, 0, 398, 63, 1, 0, 0, 0, 399, 402, 3, 42, 21, 0, 400, 401, 5, 15, 0, 0, 401, 403, 5, 55, 0, 0, 402, 400, 1, 0, 0, 0, 402, 403, 1, 0, 0, 0, 403, 407, 1, 0, 0, 0, 404, 407, 5, 55, 0, 0, 405, 407, 1, 0, 0, 0, 406, 399, 1, 0, 0, 0, 406, 404, 1, 0, 0, 0, 406, 405, 1, 0, 0, 0, 407, 65, 1, 0, 0, 0, 408, 410, 5, 46, 0, 0, 409, 411, 3, 68, 34, 0, 410, 409, 1, 0, 0, 0, 410, 411, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 413, 5, 47, 0, 0, 413, 67, 1, 0, 0, 0, 414, 420, 3, 70, 35, 0, 415, 416, 3, 72, 36, 0, 416, 417, 3, 70, 35, 0, 417, 419, 1, 0, 0, 0, 418, 415, 1, 0, 0, 0, 419, 422, 1, 0, 0, 0, 420, 418, 1, 0, 0, 0, 420, 421, 1, 0, 0, 0, 421, 424, 1, 0, 0, 0, 422, 420, 1, 0, 0, 0, 423, 425, 3, 72, 36, 0, 424, 423, 1, 0, 0, 0, 424, 425, 1, 0, 0, 0, 425, 69, 1, 0, 0, 0, 426, 427, 5, 48, 0, 0, 427, 428, 3, 46, 23, 0, 428, 429, 5, 49, 0, 0, 429, 430, 5, 2, 0, 0, 430, 431, 3, 46, 23, 0, 431, 437, 1, 0, 0, 0, 432, 433, 5, 57, 0, 0, 433, 434, 5, 2, 0, 0, 434, 437, 3, 46, 23, 0, 435, 437, 3, 46, 23, 0, 436, 426, 1, 0, 0, 0, 436, 432, 1, 0, 0, 0, 436, 435, 1, 0, 0, 0, 437, 71, 1, 0, 0, 0, 438, 439, 7, 5, 0, 0, 439, 73, 1, 0, 0, 0, 440, 441, 7, 6, 0, 0, 441, 75, 1, 0, 0, 0, 442, 443, 7, 7, 0, 0, 443, 77, 1, 0, 0, 0, 37, 86, 90, 107, 142, 147, 159, 186, 195, 201, 205, 209, 212, 223, 228, 235, 243, 251, 266, 292, 294, 301, 310, 312, 323, 350, 362, 364, 373, 378, 383, 388, 402, 406, 410, 420, 424, 436] \ No newline at end of file diff --git a/luaparser/parser/LuaParser.py b/luaparser/parser/LuaParser.py index e0ba3f7..8f7f313 100644 --- a/luaparser/parser/LuaParser.py +++ b/luaparser/parser/LuaParser.py @@ -10,7 +10,7 @@ def serializedATN(): return [ - 4,1,68,435,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7, + 4,1,68,445,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7, 6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13, 2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20, 7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26, @@ -34,141 +34,144 @@ def serializedATN(): 267,8,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23, 1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23, 5,23,293,8,23,10,23,12,23,296,9,23,1,24,1,24,1,24,1,24,3,24,302, - 8,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,3,25,314, - 8,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26, - 1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26, - 3,26,341,8,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26, - 5,26,353,8,26,10,26,12,26,356,9,26,1,27,1,27,1,27,1,27,1,27,1,27, - 3,27,364,8,27,1,28,5,28,367,8,28,10,28,12,28,370,9,28,1,29,1,29, - 3,29,374,8,29,1,29,1,29,1,29,3,29,379,8,29,1,30,1,30,1,30,1,31,1, - 31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,3,32,393,8,32,1,32,1,32,3, - 32,397,8,32,1,33,1,33,3,33,401,8,33,1,33,1,33,1,34,1,34,1,34,1,34, - 5,34,409,8,34,10,34,12,34,412,9,34,1,34,3,34,415,8,34,1,35,1,35, - 1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,3,35,427,8,35,1,36,1,36, - 1,37,1,37,1,38,1,38,1,38,0,2,46,52,39,0,2,4,6,8,10,12,14,16,18,20, - 22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64, - 66,68,70,72,74,76,0,8,2,0,28,30,33,33,3,0,37,38,45,45,54,54,2,0, - 29,29,44,44,4,0,19,20,40,41,50,50,56,56,3,0,28,28,34,36,52,52,2, - 0,1,1,15,15,1,0,61,64,1,0,58,60,464,0,78,1,0,0,0,2,81,1,0,0,0,4, - 86,1,0,0,0,6,107,1,0,0,0,8,109,1,0,0,0,10,113,1,0,0,0,12,116,1,0, - 0,0,14,120,1,0,0,0,16,126,1,0,0,0,18,131,1,0,0,0,20,151,1,0,0,0, - 22,165,1,0,0,0,24,173,1,0,0,0,26,177,1,0,0,0,28,182,1,0,0,0,30,188, - 1,0,0,0,32,201,1,0,0,0,34,209,1,0,0,0,36,214,1,0,0,0,38,218,1,0, - 0,0,40,230,1,0,0,0,42,238,1,0,0,0,44,246,1,0,0,0,46,266,1,0,0,0, - 48,301,1,0,0,0,50,313,1,0,0,0,52,340,1,0,0,0,54,363,1,0,0,0,56,368, - 1,0,0,0,58,378,1,0,0,0,60,380,1,0,0,0,62,383,1,0,0,0,64,396,1,0, - 0,0,66,398,1,0,0,0,68,404,1,0,0,0,70,426,1,0,0,0,72,428,1,0,0,0, - 74,430,1,0,0,0,76,432,1,0,0,0,78,79,3,2,1,0,79,80,5,0,0,1,80,1,1, - 0,0,0,81,82,3,4,2,0,82,3,1,0,0,0,83,85,3,6,3,0,84,83,1,0,0,0,85, - 88,1,0,0,0,86,84,1,0,0,0,86,87,1,0,0,0,87,90,1,0,0,0,88,86,1,0,0, - 0,89,91,3,34,17,0,90,89,1,0,0,0,90,91,1,0,0,0,91,5,1,0,0,0,92,108, - 5,1,0,0,93,108,3,8,4,0,94,108,3,52,26,0,95,108,3,36,18,0,96,108, - 5,3,0,0,97,108,3,10,5,0,98,108,3,12,6,0,99,108,3,14,7,0,100,108, - 3,16,8,0,101,108,3,18,9,0,102,108,3,20,10,0,103,108,3,22,11,0,104, - 108,3,24,12,0,105,108,3,26,13,0,106,108,3,28,14,0,107,92,1,0,0,0, - 107,93,1,0,0,0,107,94,1,0,0,0,107,95,1,0,0,0,107,96,1,0,0,0,107, - 97,1,0,0,0,107,98,1,0,0,0,107,99,1,0,0,0,107,100,1,0,0,0,107,101, - 1,0,0,0,107,102,1,0,0,0,107,103,1,0,0,0,107,104,1,0,0,0,107,105, - 1,0,0,0,107,106,1,0,0,0,108,7,1,0,0,0,109,110,3,40,20,0,110,111, - 5,2,0,0,111,112,3,44,22,0,112,9,1,0,0,0,113,114,5,4,0,0,114,115, - 5,57,0,0,115,11,1,0,0,0,116,117,5,5,0,0,117,118,3,4,2,0,118,119, - 5,6,0,0,119,13,1,0,0,0,120,121,5,7,0,0,121,122,3,46,23,0,122,123, - 5,5,0,0,123,124,3,4,2,0,124,125,5,6,0,0,125,15,1,0,0,0,126,127,5, - 8,0,0,127,128,3,4,2,0,128,129,5,9,0,0,129,130,3,46,23,0,130,17,1, - 0,0,0,131,132,5,10,0,0,132,133,3,46,23,0,133,134,5,11,0,0,134,142, - 3,4,2,0,135,136,5,12,0,0,136,137,3,46,23,0,137,138,5,11,0,0,138, - 139,3,4,2,0,139,141,1,0,0,0,140,135,1,0,0,0,141,144,1,0,0,0,142, - 140,1,0,0,0,142,143,1,0,0,0,143,147,1,0,0,0,144,142,1,0,0,0,145, - 146,5,13,0,0,146,148,3,4,2,0,147,145,1,0,0,0,147,148,1,0,0,0,148, - 149,1,0,0,0,149,150,5,6,0,0,150,19,1,0,0,0,151,152,5,14,0,0,152, - 153,5,57,0,0,153,154,5,2,0,0,154,155,3,46,23,0,155,156,5,15,0,0, - 156,159,3,46,23,0,157,158,5,15,0,0,158,160,3,46,23,0,159,157,1,0, - 0,0,159,160,1,0,0,0,160,161,1,0,0,0,161,162,5,5,0,0,162,163,3,4, - 2,0,163,164,5,6,0,0,164,21,1,0,0,0,165,166,5,14,0,0,166,167,3,42, - 21,0,167,168,5,16,0,0,168,169,3,44,22,0,169,170,5,5,0,0,170,171, - 3,4,2,0,171,172,5,6,0,0,172,23,1,0,0,0,173,174,5,17,0,0,174,175, - 3,38,19,0,175,176,3,62,31,0,176,25,1,0,0,0,177,178,5,18,0,0,178, - 179,5,17,0,0,179,180,5,57,0,0,180,181,3,62,31,0,181,27,1,0,0,0,182, - 183,5,18,0,0,183,186,3,42,21,0,184,185,5,2,0,0,185,187,3,44,22,0, - 186,184,1,0,0,0,186,187,1,0,0,0,187,29,1,0,0,0,188,189,5,57,0,0, - 189,195,3,32,16,0,190,191,5,15,0,0,191,192,5,57,0,0,192,194,3,32, - 16,0,193,190,1,0,0,0,194,197,1,0,0,0,195,193,1,0,0,0,195,196,1,0, - 0,0,196,31,1,0,0,0,197,195,1,0,0,0,198,199,5,19,0,0,199,200,5,57, - 0,0,200,202,5,20,0,0,201,198,1,0,0,0,201,202,1,0,0,0,202,33,1,0, - 0,0,203,205,5,21,0,0,204,206,3,44,22,0,205,204,1,0,0,0,205,206,1, - 0,0,0,206,210,1,0,0,0,207,210,5,3,0,0,208,210,5,22,0,0,209,203,1, - 0,0,0,209,207,1,0,0,0,209,208,1,0,0,0,210,212,1,0,0,0,211,213,5, - 1,0,0,212,211,1,0,0,0,212,213,1,0,0,0,213,35,1,0,0,0,214,215,5,23, - 0,0,215,216,5,57,0,0,216,217,5,23,0,0,217,37,1,0,0,0,218,223,5,57, - 0,0,219,220,5,27,0,0,220,222,5,57,0,0,221,219,1,0,0,0,222,225,1, - 0,0,0,223,221,1,0,0,0,223,224,1,0,0,0,224,228,1,0,0,0,225,223,1, - 0,0,0,226,227,5,39,0,0,227,229,5,57,0,0,228,226,1,0,0,0,228,229, - 1,0,0,0,229,39,1,0,0,0,230,235,3,48,24,0,231,232,5,15,0,0,232,234, - 3,48,24,0,233,231,1,0,0,0,234,237,1,0,0,0,235,233,1,0,0,0,235,236, - 1,0,0,0,236,41,1,0,0,0,237,235,1,0,0,0,238,243,5,57,0,0,239,240, - 5,15,0,0,240,242,5,57,0,0,241,239,1,0,0,0,242,245,1,0,0,0,243,241, - 1,0,0,0,243,244,1,0,0,0,244,43,1,0,0,0,245,243,1,0,0,0,246,251,3, - 46,23,0,247,248,5,15,0,0,248,250,3,46,23,0,249,247,1,0,0,0,250,253, - 1,0,0,0,251,249,1,0,0,0,251,252,1,0,0,0,252,45,1,0,0,0,253,251,1, - 0,0,0,254,255,6,23,-1,0,255,267,5,24,0,0,256,267,5,25,0,0,257,267, - 5,26,0,0,258,267,3,74,37,0,259,267,3,76,38,0,260,267,5,55,0,0,261, - 267,3,24,12,0,262,267,3,50,25,0,263,267,3,66,33,0,264,265,7,0,0, - 0,265,267,3,46,23,8,266,254,1,0,0,0,266,256,1,0,0,0,266,257,1,0, - 0,0,266,258,1,0,0,0,266,259,1,0,0,0,266,260,1,0,0,0,266,261,1,0, - 0,0,266,262,1,0,0,0,266,263,1,0,0,0,266,264,1,0,0,0,267,294,1,0, - 0,0,268,269,10,9,0,0,269,270,5,53,0,0,270,293,3,46,23,9,271,272, - 10,7,0,0,272,273,7,1,0,0,273,293,3,46,23,8,274,275,10,6,0,0,275, - 276,7,2,0,0,276,293,3,46,23,7,277,278,10,5,0,0,278,279,5,51,0,0, - 279,293,3,46,23,5,280,281,10,4,0,0,281,282,7,3,0,0,282,293,3,46, - 23,5,283,284,10,3,0,0,284,285,5,42,0,0,285,293,3,46,23,4,286,287, - 10,2,0,0,287,288,5,43,0,0,288,293,3,46,23,3,289,290,10,1,0,0,290, - 291,7,4,0,0,291,293,3,46,23,2,292,268,1,0,0,0,292,271,1,0,0,0,292, - 274,1,0,0,0,292,277,1,0,0,0,292,280,1,0,0,0,292,283,1,0,0,0,292, - 286,1,0,0,0,292,289,1,0,0,0,293,296,1,0,0,0,294,292,1,0,0,0,294, - 295,1,0,0,0,295,47,1,0,0,0,296,294,1,0,0,0,297,302,5,57,0,0,298, - 299,3,50,25,0,299,300,3,54,27,0,300,302,1,0,0,0,301,297,1,0,0,0, - 301,298,1,0,0,0,302,49,1,0,0,0,303,304,5,57,0,0,304,314,3,56,28, - 0,305,306,3,52,26,0,306,307,3,56,28,0,307,314,1,0,0,0,308,309,5, - 31,0,0,309,310,3,46,23,0,310,311,5,32,0,0,311,312,3,56,28,0,312, - 314,1,0,0,0,313,303,1,0,0,0,313,305,1,0,0,0,313,308,1,0,0,0,314, - 51,1,0,0,0,315,316,6,26,-1,0,316,317,5,57,0,0,317,318,3,56,28,0, - 318,319,3,58,29,0,319,341,1,0,0,0,320,321,5,31,0,0,321,322,3,46, - 23,0,322,323,5,32,0,0,323,324,3,56,28,0,324,325,3,58,29,0,325,341, - 1,0,0,0,326,327,5,57,0,0,327,328,3,56,28,0,328,329,5,39,0,0,329, - 330,5,57,0,0,330,331,3,58,29,0,331,341,1,0,0,0,332,333,5,31,0,0, - 333,334,3,46,23,0,334,335,5,32,0,0,335,336,3,56,28,0,336,337,5,39, - 0,0,337,338,5,57,0,0,338,339,3,58,29,0,339,341,1,0,0,0,340,315,1, - 0,0,0,340,320,1,0,0,0,340,326,1,0,0,0,340,332,1,0,0,0,341,354,1, - 0,0,0,342,343,10,5,0,0,343,344,3,56,28,0,344,345,3,58,29,0,345,353, - 1,0,0,0,346,347,10,2,0,0,347,348,3,56,28,0,348,349,5,39,0,0,349, - 350,5,57,0,0,350,351,3,58,29,0,351,353,1,0,0,0,352,342,1,0,0,0,352, - 346,1,0,0,0,353,356,1,0,0,0,354,352,1,0,0,0,354,355,1,0,0,0,355, - 53,1,0,0,0,356,354,1,0,0,0,357,358,5,48,0,0,358,359,3,46,23,0,359, - 360,5,49,0,0,360,364,1,0,0,0,361,362,5,27,0,0,362,364,5,57,0,0,363, - 357,1,0,0,0,363,361,1,0,0,0,364,55,1,0,0,0,365,367,3,54,27,0,366, - 365,1,0,0,0,367,370,1,0,0,0,368,366,1,0,0,0,368,369,1,0,0,0,369, - 57,1,0,0,0,370,368,1,0,0,0,371,373,5,31,0,0,372,374,3,44,22,0,373, - 372,1,0,0,0,373,374,1,0,0,0,374,375,1,0,0,0,375,379,5,32,0,0,376, - 379,3,66,33,0,377,379,3,76,38,0,378,371,1,0,0,0,378,376,1,0,0,0, - 378,377,1,0,0,0,379,59,1,0,0,0,380,381,5,17,0,0,381,382,3,62,31, - 0,382,61,1,0,0,0,383,384,5,31,0,0,384,385,3,64,32,0,385,386,5,32, - 0,0,386,387,3,4,2,0,387,388,5,6,0,0,388,63,1,0,0,0,389,392,3,42, - 21,0,390,391,5,15,0,0,391,393,5,55,0,0,392,390,1,0,0,0,392,393,1, - 0,0,0,393,397,1,0,0,0,394,397,5,55,0,0,395,397,1,0,0,0,396,389,1, - 0,0,0,396,394,1,0,0,0,396,395,1,0,0,0,397,65,1,0,0,0,398,400,5,46, - 0,0,399,401,3,68,34,0,400,399,1,0,0,0,400,401,1,0,0,0,401,402,1, - 0,0,0,402,403,5,47,0,0,403,67,1,0,0,0,404,410,3,70,35,0,405,406, - 3,72,36,0,406,407,3,70,35,0,407,409,1,0,0,0,408,405,1,0,0,0,409, - 412,1,0,0,0,410,408,1,0,0,0,410,411,1,0,0,0,411,414,1,0,0,0,412, - 410,1,0,0,0,413,415,3,72,36,0,414,413,1,0,0,0,414,415,1,0,0,0,415, - 69,1,0,0,0,416,417,5,48,0,0,417,418,3,46,23,0,418,419,5,49,0,0,419, - 420,5,2,0,0,420,421,3,46,23,0,421,427,1,0,0,0,422,423,5,57,0,0,423, - 424,5,2,0,0,424,427,3,46,23,0,425,427,3,46,23,0,426,416,1,0,0,0, - 426,422,1,0,0,0,426,425,1,0,0,0,427,71,1,0,0,0,428,429,7,5,0,0,429, - 73,1,0,0,0,430,431,7,6,0,0,431,75,1,0,0,0,432,433,7,7,0,0,433,77, - 1,0,0,0,35,86,90,107,142,147,159,186,195,201,205,209,212,223,228, - 235,243,251,266,292,294,301,313,340,352,354,363,368,373,378,392, - 396,400,410,414,426 + 8,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,5,25,311,8,25,10,25,12,25, + 314,9,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,3,25,324,8,25,1, + 26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1, + 26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,3,26,351, + 8,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,5,26,363, + 8,26,10,26,12,26,366,9,26,1,27,1,27,1,27,1,27,1,27,1,27,3,27,374, + 8,27,1,28,5,28,377,8,28,10,28,12,28,380,9,28,1,29,1,29,3,29,384, + 8,29,1,29,1,29,1,29,3,29,389,8,29,1,30,1,30,1,30,1,31,1,31,1,31, + 1,31,1,31,1,31,1,32,1,32,1,32,3,32,403,8,32,1,32,1,32,3,32,407,8, + 32,1,33,1,33,3,33,411,8,33,1,33,1,33,1,34,1,34,1,34,1,34,5,34,419, + 8,34,10,34,12,34,422,9,34,1,34,3,34,425,8,34,1,35,1,35,1,35,1,35, + 1,35,1,35,1,35,1,35,1,35,1,35,3,35,437,8,35,1,36,1,36,1,37,1,37, + 1,38,1,38,1,38,0,2,46,52,39,0,2,4,6,8,10,12,14,16,18,20,22,24,26, + 28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70, + 72,74,76,0,8,2,0,28,30,33,33,3,0,37,38,45,45,54,54,2,0,29,29,44, + 44,4,0,19,20,40,41,50,50,56,56,3,0,28,28,34,36,52,52,2,0,1,1,15, + 15,1,0,61,64,1,0,58,60,476,0,78,1,0,0,0,2,81,1,0,0,0,4,86,1,0,0, + 0,6,107,1,0,0,0,8,109,1,0,0,0,10,113,1,0,0,0,12,116,1,0,0,0,14,120, + 1,0,0,0,16,126,1,0,0,0,18,131,1,0,0,0,20,151,1,0,0,0,22,165,1,0, + 0,0,24,173,1,0,0,0,26,177,1,0,0,0,28,182,1,0,0,0,30,188,1,0,0,0, + 32,201,1,0,0,0,34,209,1,0,0,0,36,214,1,0,0,0,38,218,1,0,0,0,40,230, + 1,0,0,0,42,238,1,0,0,0,44,246,1,0,0,0,46,266,1,0,0,0,48,301,1,0, + 0,0,50,323,1,0,0,0,52,350,1,0,0,0,54,373,1,0,0,0,56,378,1,0,0,0, + 58,388,1,0,0,0,60,390,1,0,0,0,62,393,1,0,0,0,64,406,1,0,0,0,66,408, + 1,0,0,0,68,414,1,0,0,0,70,436,1,0,0,0,72,438,1,0,0,0,74,440,1,0, + 0,0,76,442,1,0,0,0,78,79,3,2,1,0,79,80,5,0,0,1,80,1,1,0,0,0,81,82, + 3,4,2,0,82,3,1,0,0,0,83,85,3,6,3,0,84,83,1,0,0,0,85,88,1,0,0,0,86, + 84,1,0,0,0,86,87,1,0,0,0,87,90,1,0,0,0,88,86,1,0,0,0,89,91,3,34, + 17,0,90,89,1,0,0,0,90,91,1,0,0,0,91,5,1,0,0,0,92,108,5,1,0,0,93, + 108,3,8,4,0,94,108,3,52,26,0,95,108,3,36,18,0,96,108,5,3,0,0,97, + 108,3,10,5,0,98,108,3,12,6,0,99,108,3,14,7,0,100,108,3,16,8,0,101, + 108,3,18,9,0,102,108,3,20,10,0,103,108,3,22,11,0,104,108,3,24,12, + 0,105,108,3,26,13,0,106,108,3,28,14,0,107,92,1,0,0,0,107,93,1,0, + 0,0,107,94,1,0,0,0,107,95,1,0,0,0,107,96,1,0,0,0,107,97,1,0,0,0, + 107,98,1,0,0,0,107,99,1,0,0,0,107,100,1,0,0,0,107,101,1,0,0,0,107, + 102,1,0,0,0,107,103,1,0,0,0,107,104,1,0,0,0,107,105,1,0,0,0,107, + 106,1,0,0,0,108,7,1,0,0,0,109,110,3,40,20,0,110,111,5,2,0,0,111, + 112,3,44,22,0,112,9,1,0,0,0,113,114,5,4,0,0,114,115,5,57,0,0,115, + 11,1,0,0,0,116,117,5,5,0,0,117,118,3,4,2,0,118,119,5,6,0,0,119,13, + 1,0,0,0,120,121,5,7,0,0,121,122,3,46,23,0,122,123,5,5,0,0,123,124, + 3,4,2,0,124,125,5,6,0,0,125,15,1,0,0,0,126,127,5,8,0,0,127,128,3, + 4,2,0,128,129,5,9,0,0,129,130,3,46,23,0,130,17,1,0,0,0,131,132,5, + 10,0,0,132,133,3,46,23,0,133,134,5,11,0,0,134,142,3,4,2,0,135,136, + 5,12,0,0,136,137,3,46,23,0,137,138,5,11,0,0,138,139,3,4,2,0,139, + 141,1,0,0,0,140,135,1,0,0,0,141,144,1,0,0,0,142,140,1,0,0,0,142, + 143,1,0,0,0,143,147,1,0,0,0,144,142,1,0,0,0,145,146,5,13,0,0,146, + 148,3,4,2,0,147,145,1,0,0,0,147,148,1,0,0,0,148,149,1,0,0,0,149, + 150,5,6,0,0,150,19,1,0,0,0,151,152,5,14,0,0,152,153,5,57,0,0,153, + 154,5,2,0,0,154,155,3,46,23,0,155,156,5,15,0,0,156,159,3,46,23,0, + 157,158,5,15,0,0,158,160,3,46,23,0,159,157,1,0,0,0,159,160,1,0,0, + 0,160,161,1,0,0,0,161,162,5,5,0,0,162,163,3,4,2,0,163,164,5,6,0, + 0,164,21,1,0,0,0,165,166,5,14,0,0,166,167,3,42,21,0,167,168,5,16, + 0,0,168,169,3,44,22,0,169,170,5,5,0,0,170,171,3,4,2,0,171,172,5, + 6,0,0,172,23,1,0,0,0,173,174,5,17,0,0,174,175,3,38,19,0,175,176, + 3,62,31,0,176,25,1,0,0,0,177,178,5,18,0,0,178,179,5,17,0,0,179,180, + 5,57,0,0,180,181,3,62,31,0,181,27,1,0,0,0,182,183,5,18,0,0,183,186, + 3,42,21,0,184,185,5,2,0,0,185,187,3,44,22,0,186,184,1,0,0,0,186, + 187,1,0,0,0,187,29,1,0,0,0,188,189,5,57,0,0,189,195,3,32,16,0,190, + 191,5,15,0,0,191,192,5,57,0,0,192,194,3,32,16,0,193,190,1,0,0,0, + 194,197,1,0,0,0,195,193,1,0,0,0,195,196,1,0,0,0,196,31,1,0,0,0,197, + 195,1,0,0,0,198,199,5,19,0,0,199,200,5,57,0,0,200,202,5,20,0,0,201, + 198,1,0,0,0,201,202,1,0,0,0,202,33,1,0,0,0,203,205,5,21,0,0,204, + 206,3,44,22,0,205,204,1,0,0,0,205,206,1,0,0,0,206,210,1,0,0,0,207, + 210,5,3,0,0,208,210,5,22,0,0,209,203,1,0,0,0,209,207,1,0,0,0,209, + 208,1,0,0,0,210,212,1,0,0,0,211,213,5,1,0,0,212,211,1,0,0,0,212, + 213,1,0,0,0,213,35,1,0,0,0,214,215,5,23,0,0,215,216,5,57,0,0,216, + 217,5,23,0,0,217,37,1,0,0,0,218,223,5,57,0,0,219,220,5,27,0,0,220, + 222,5,57,0,0,221,219,1,0,0,0,222,225,1,0,0,0,223,221,1,0,0,0,223, + 224,1,0,0,0,224,228,1,0,0,0,225,223,1,0,0,0,226,227,5,39,0,0,227, + 229,5,57,0,0,228,226,1,0,0,0,228,229,1,0,0,0,229,39,1,0,0,0,230, + 235,3,48,24,0,231,232,5,15,0,0,232,234,3,48,24,0,233,231,1,0,0,0, + 234,237,1,0,0,0,235,233,1,0,0,0,235,236,1,0,0,0,236,41,1,0,0,0,237, + 235,1,0,0,0,238,243,5,57,0,0,239,240,5,15,0,0,240,242,5,57,0,0,241, + 239,1,0,0,0,242,245,1,0,0,0,243,241,1,0,0,0,243,244,1,0,0,0,244, + 43,1,0,0,0,245,243,1,0,0,0,246,251,3,46,23,0,247,248,5,15,0,0,248, + 250,3,46,23,0,249,247,1,0,0,0,250,253,1,0,0,0,251,249,1,0,0,0,251, + 252,1,0,0,0,252,45,1,0,0,0,253,251,1,0,0,0,254,255,6,23,-1,0,255, + 267,5,24,0,0,256,267,5,25,0,0,257,267,5,26,0,0,258,267,3,74,37,0, + 259,267,3,76,38,0,260,267,5,55,0,0,261,267,3,24,12,0,262,267,3,50, + 25,0,263,267,3,66,33,0,264,265,7,0,0,0,265,267,3,46,23,8,266,254, + 1,0,0,0,266,256,1,0,0,0,266,257,1,0,0,0,266,258,1,0,0,0,266,259, + 1,0,0,0,266,260,1,0,0,0,266,261,1,0,0,0,266,262,1,0,0,0,266,263, + 1,0,0,0,266,264,1,0,0,0,267,294,1,0,0,0,268,269,10,9,0,0,269,270, + 5,53,0,0,270,293,3,46,23,9,271,272,10,7,0,0,272,273,7,1,0,0,273, + 293,3,46,23,8,274,275,10,6,0,0,275,276,7,2,0,0,276,293,3,46,23,7, + 277,278,10,5,0,0,278,279,5,51,0,0,279,293,3,46,23,5,280,281,10,4, + 0,0,281,282,7,3,0,0,282,293,3,46,23,5,283,284,10,3,0,0,284,285,5, + 42,0,0,285,293,3,46,23,4,286,287,10,2,0,0,287,288,5,43,0,0,288,293, + 3,46,23,3,289,290,10,1,0,0,290,291,7,4,0,0,291,293,3,46,23,2,292, + 268,1,0,0,0,292,271,1,0,0,0,292,274,1,0,0,0,292,277,1,0,0,0,292, + 280,1,0,0,0,292,283,1,0,0,0,292,286,1,0,0,0,292,289,1,0,0,0,293, + 296,1,0,0,0,294,292,1,0,0,0,294,295,1,0,0,0,295,47,1,0,0,0,296,294, + 1,0,0,0,297,302,5,57,0,0,298,299,3,50,25,0,299,300,3,54,27,0,300, + 302,1,0,0,0,301,297,1,0,0,0,301,298,1,0,0,0,302,49,1,0,0,0,303,312, + 5,57,0,0,304,305,5,48,0,0,305,306,3,46,23,0,306,307,5,49,0,0,307, + 311,1,0,0,0,308,309,5,27,0,0,309,311,5,57,0,0,310,304,1,0,0,0,310, + 308,1,0,0,0,311,314,1,0,0,0,312,310,1,0,0,0,312,313,1,0,0,0,313, + 324,1,0,0,0,314,312,1,0,0,0,315,316,3,52,26,0,316,317,3,56,28,0, + 317,324,1,0,0,0,318,319,5,31,0,0,319,320,3,46,23,0,320,321,5,32, + 0,0,321,322,3,56,28,0,322,324,1,0,0,0,323,303,1,0,0,0,323,315,1, + 0,0,0,323,318,1,0,0,0,324,51,1,0,0,0,325,326,6,26,-1,0,326,327,5, + 57,0,0,327,328,3,56,28,0,328,329,3,58,29,0,329,351,1,0,0,0,330,331, + 5,31,0,0,331,332,3,46,23,0,332,333,5,32,0,0,333,334,3,56,28,0,334, + 335,3,58,29,0,335,351,1,0,0,0,336,337,5,57,0,0,337,338,3,56,28,0, + 338,339,5,39,0,0,339,340,5,57,0,0,340,341,3,58,29,0,341,351,1,0, + 0,0,342,343,5,31,0,0,343,344,3,46,23,0,344,345,5,32,0,0,345,346, + 3,56,28,0,346,347,5,39,0,0,347,348,5,57,0,0,348,349,3,58,29,0,349, + 351,1,0,0,0,350,325,1,0,0,0,350,330,1,0,0,0,350,336,1,0,0,0,350, + 342,1,0,0,0,351,364,1,0,0,0,352,353,10,5,0,0,353,354,3,56,28,0,354, + 355,3,58,29,0,355,363,1,0,0,0,356,357,10,2,0,0,357,358,3,56,28,0, + 358,359,5,39,0,0,359,360,5,57,0,0,360,361,3,58,29,0,361,363,1,0, + 0,0,362,352,1,0,0,0,362,356,1,0,0,0,363,366,1,0,0,0,364,362,1,0, + 0,0,364,365,1,0,0,0,365,53,1,0,0,0,366,364,1,0,0,0,367,368,5,48, + 0,0,368,369,3,46,23,0,369,370,5,49,0,0,370,374,1,0,0,0,371,372,5, + 27,0,0,372,374,5,57,0,0,373,367,1,0,0,0,373,371,1,0,0,0,374,55,1, + 0,0,0,375,377,3,54,27,0,376,375,1,0,0,0,377,380,1,0,0,0,378,376, + 1,0,0,0,378,379,1,0,0,0,379,57,1,0,0,0,380,378,1,0,0,0,381,383,5, + 31,0,0,382,384,3,44,22,0,383,382,1,0,0,0,383,384,1,0,0,0,384,385, + 1,0,0,0,385,389,5,32,0,0,386,389,3,66,33,0,387,389,3,76,38,0,388, + 381,1,0,0,0,388,386,1,0,0,0,388,387,1,0,0,0,389,59,1,0,0,0,390,391, + 5,17,0,0,391,392,3,62,31,0,392,61,1,0,0,0,393,394,5,31,0,0,394,395, + 3,64,32,0,395,396,5,32,0,0,396,397,3,4,2,0,397,398,5,6,0,0,398,63, + 1,0,0,0,399,402,3,42,21,0,400,401,5,15,0,0,401,403,5,55,0,0,402, + 400,1,0,0,0,402,403,1,0,0,0,403,407,1,0,0,0,404,407,5,55,0,0,405, + 407,1,0,0,0,406,399,1,0,0,0,406,404,1,0,0,0,406,405,1,0,0,0,407, + 65,1,0,0,0,408,410,5,46,0,0,409,411,3,68,34,0,410,409,1,0,0,0,410, + 411,1,0,0,0,411,412,1,0,0,0,412,413,5,47,0,0,413,67,1,0,0,0,414, + 420,3,70,35,0,415,416,3,72,36,0,416,417,3,70,35,0,417,419,1,0,0, + 0,418,415,1,0,0,0,419,422,1,0,0,0,420,418,1,0,0,0,420,421,1,0,0, + 0,421,424,1,0,0,0,422,420,1,0,0,0,423,425,3,72,36,0,424,423,1,0, + 0,0,424,425,1,0,0,0,425,69,1,0,0,0,426,427,5,48,0,0,427,428,3,46, + 23,0,428,429,5,49,0,0,429,430,5,2,0,0,430,431,3,46,23,0,431,437, + 1,0,0,0,432,433,5,57,0,0,433,434,5,2,0,0,434,437,3,46,23,0,435,437, + 3,46,23,0,436,426,1,0,0,0,436,432,1,0,0,0,436,435,1,0,0,0,437,71, + 1,0,0,0,438,439,7,5,0,0,439,73,1,0,0,0,440,441,7,6,0,0,441,75,1, + 0,0,0,442,443,7,7,0,0,443,77,1,0,0,0,37,86,90,107,142,147,159,186, + 195,201,205,209,212,223,228,235,243,251,266,292,294,301,310,312, + 323,350,362,364,373,378,383,388,402,406,410,420,424,436 ] class LuaParser ( Parser ): @@ -2504,23 +2507,47 @@ def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser - def NAME(self): - return self.getToken(LuaParser.NAME, 0) + def NAME(self, i:int=None): + if i is None: + return self.getTokens(LuaParser.NAME) + else: + return self.getToken(LuaParser.NAME, i) - def nestedtail(self): - return self.getTypedRuleContext(LuaParser.NestedtailContext,0) + def OB(self, i:int=None): + if i is None: + return self.getTokens(LuaParser.OB) + else: + return self.getToken(LuaParser.OB, i) + def exp(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(LuaParser.ExpContext) + else: + return self.getTypedRuleContext(LuaParser.ExpContext,i) + + + def CB(self, i:int=None): + if i is None: + return self.getTokens(LuaParser.CB) + else: + return self.getToken(LuaParser.CB, i) + + def DOT(self, i:int=None): + if i is None: + return self.getTokens(LuaParser.DOT) + else: + return self.getToken(LuaParser.DOT, i) def functioncall(self): return self.getTypedRuleContext(LuaParser.FunctioncallContext,0) - def OP(self): - return self.getToken(LuaParser.OP, 0) + def nestedtail(self): + return self.getTypedRuleContext(LuaParser.NestedtailContext,0) - def exp(self): - return self.getTypedRuleContext(LuaParser.ExpContext,0) + def OP(self): + return self.getToken(LuaParser.OP, 0) def CP(self): return self.getToken(LuaParser.CP, 0) @@ -2550,34 +2577,61 @@ def prefixexp(self): localctx = LuaParser.PrefixexpContext(self, self._ctx, self.state) self.enterRule(localctx, 50, self.RULE_prefixexp) try: - self.state = 313 + self.state = 323 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,21,self._ctx) + la_ = self._interp.adaptivePredict(self._input,23,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) self.state = 303 self.match(LuaParser.NAME) - self.state = 304 - self.nestedtail() + self.state = 312 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,22,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 310 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [48]: + self.state = 304 + self.match(LuaParser.OB) + self.state = 305 + self.exp(0) + self.state = 306 + self.match(LuaParser.CB) + pass + elif token in [27]: + self.state = 308 + self.match(LuaParser.DOT) + self.state = 309 + self.match(LuaParser.NAME) + pass + else: + raise NoViableAltException(self) + + self.state = 314 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,22,self._ctx) + pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 305 + self.state = 315 self.functioncall(0) - self.state = 306 + self.state = 316 self.nestedtail() pass elif la_ == 3: self.enterOuterAlt(localctx, 3) - self.state = 308 + self.state = 318 self.match(LuaParser.OP) - self.state = 309 + self.state = 319 self.exp(0) - self.state = 310 + self.state = 320 self.match(LuaParser.CP) - self.state = 311 + self.state = 321 self.nestedtail() pass @@ -2657,108 +2711,108 @@ def functioncall(self, _p:int=0): self.enterRecursionRule(localctx, 52, self.RULE_functioncall, _p) try: self.enterOuterAlt(localctx, 1) - self.state = 340 + self.state = 350 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,22,self._ctx) + la_ = self._interp.adaptivePredict(self._input,24,self._ctx) if la_ == 1: - self.state = 316 + self.state = 326 self.match(LuaParser.NAME) - self.state = 317 + self.state = 327 self.nestedtail() - self.state = 318 + self.state = 328 self.args() pass elif la_ == 2: - self.state = 320 + self.state = 330 self.match(LuaParser.OP) - self.state = 321 + self.state = 331 self.exp(0) - self.state = 322 + self.state = 332 self.match(LuaParser.CP) - self.state = 323 + self.state = 333 self.nestedtail() - self.state = 324 + self.state = 334 self.args() pass elif la_ == 3: - self.state = 326 + self.state = 336 self.match(LuaParser.NAME) - self.state = 327 + self.state = 337 self.nestedtail() - self.state = 328 + self.state = 338 self.match(LuaParser.COL) - self.state = 329 + self.state = 339 self.match(LuaParser.NAME) - self.state = 330 + self.state = 340 self.args() pass elif la_ == 4: - self.state = 332 + self.state = 342 self.match(LuaParser.OP) - self.state = 333 + self.state = 343 self.exp(0) - self.state = 334 + self.state = 344 self.match(LuaParser.CP) - self.state = 335 + self.state = 345 self.nestedtail() - self.state = 336 + self.state = 346 self.match(LuaParser.COL) - self.state = 337 + self.state = 347 self.match(LuaParser.NAME) - self.state = 338 + self.state = 348 self.args() pass self._ctx.stop = self._input.LT(-1) - self.state = 354 + self.state = 364 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,24,self._ctx) + _alt = self._interp.adaptivePredict(self._input,26,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: if self._parseListeners is not None: self.triggerExitRuleEvent() _prevctx = localctx - self.state = 352 + self.state = 362 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,23,self._ctx) + la_ = self._interp.adaptivePredict(self._input,25,self._ctx) if la_ == 1: localctx = LuaParser.FunctioncallContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_functioncall) - self.state = 342 + self.state = 352 if not self.precpred(self._ctx, 5): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 5)") - self.state = 343 + self.state = 353 self.nestedtail() - self.state = 344 + self.state = 354 self.args() pass elif la_ == 2: localctx = LuaParser.FunctioncallContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_functioncall) - self.state = 346 + self.state = 356 if not self.precpred(self._ctx, 2): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 2)") - self.state = 347 + self.state = 357 self.nestedtail() - self.state = 348 + self.state = 358 self.match(LuaParser.COL) - self.state = 349 + self.state = 359 self.match(LuaParser.NAME) - self.state = 350 + self.state = 360 self.args() pass - self.state = 356 + self.state = 366 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,24,self._ctx) + _alt = self._interp.adaptivePredict(self._input,26,self._ctx) except RecognitionException as re: localctx.exception = re @@ -2818,21 +2872,21 @@ def tail(self): self.enterRule(localctx, 54, self.RULE_tail) try: self.enterOuterAlt(localctx, 1) - self.state = 363 + self.state = 373 self._errHandler.sync(self) token = self._input.LA(1) if token in [48]: - self.state = 357 + self.state = 367 self.match(LuaParser.OB) - self.state = 358 + self.state = 368 self.exp(0) - self.state = 359 + self.state = 369 self.match(LuaParser.CB) pass elif token in [27]: - self.state = 361 + self.state = 371 self.match(LuaParser.DOT) - self.state = 362 + self.state = 372 self.match(LuaParser.NAME) pass else: @@ -2887,16 +2941,16 @@ def nestedtail(self): self.enterRule(localctx, 56, self.RULE_nestedtail) try: self.enterOuterAlt(localctx, 1) - self.state = 368 + self.state = 378 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,26,self._ctx) + _alt = self._interp.adaptivePredict(self._input,28,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: - self.state = 365 + self.state = 375 self.tail() - self.state = 370 + self.state = 380 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,26,self._ctx) + _alt = self._interp.adaptivePredict(self._input,28,self._ctx) except RecognitionException as re: localctx.exception = re @@ -2958,32 +3012,32 @@ def args(self): self.enterRule(localctx, 58, self.RULE_args) self._la = 0 # Token type try: - self.state = 378 + self.state = 388 self._errHandler.sync(self) token = self._input.LA(1) if token in [31]: self.enterOuterAlt(localctx, 1) - self.state = 371 + self.state = 381 self.match(LuaParser.OP) - self.state = 373 + self.state = 383 self._errHandler.sync(self) _la = self._input.LA(1) if ((((_la - 17)) & ~0x3f) == 0 and ((1 << (_la - 17)) & 280650879957889) != 0): - self.state = 372 + self.state = 382 self.explist() - self.state = 375 + self.state = 385 self.match(LuaParser.CP) pass elif token in [46]: self.enterOuterAlt(localctx, 2) - self.state = 376 + self.state = 386 self.tableconstructor() pass elif token in [58, 59, 60]: self.enterOuterAlt(localctx, 3) - self.state = 377 + self.state = 387 self.string() pass else: @@ -3038,9 +3092,9 @@ def anonfunctiondef(self): self.enterRule(localctx, 60, self.RULE_anonfunctiondef) try: self.enterOuterAlt(localctx, 1) - self.state = 380 + self.state = 390 self.match(LuaParser.FUNCTION) - self.state = 381 + self.state = 391 self.funcbody() except RecognitionException as re: localctx.exception = re @@ -3101,15 +3155,15 @@ def funcbody(self): self.enterRule(localctx, 62, self.RULE_funcbody) try: self.enterOuterAlt(localctx, 1) - self.state = 383 + self.state = 393 self.match(LuaParser.OP) - self.state = 384 + self.state = 394 self.parlist() - self.state = 385 + self.state = 395 self.match(LuaParser.CP) - self.state = 386 + self.state = 396 self.block() - self.state = 387 + self.state = 397 self.match(LuaParser.END) except RecognitionException as re: localctx.exception = re @@ -3163,27 +3217,27 @@ def parlist(self): self.enterRule(localctx, 64, self.RULE_parlist) self._la = 0 # Token type try: - self.state = 396 + self.state = 406 self._errHandler.sync(self) token = self._input.LA(1) if token in [57]: self.enterOuterAlt(localctx, 1) - self.state = 389 + self.state = 399 self.namelist() - self.state = 392 + self.state = 402 self._errHandler.sync(self) _la = self._input.LA(1) if _la==15: - self.state = 390 + self.state = 400 self.match(LuaParser.COMMA) - self.state = 391 + self.state = 401 self.match(LuaParser.DDD) pass elif token in [55]: self.enterOuterAlt(localctx, 2) - self.state = 394 + self.state = 404 self.match(LuaParser.DDD) pass elif token in [32]: @@ -3246,17 +3300,17 @@ def tableconstructor(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 398 + self.state = 408 self.match(LuaParser.OCU) - self.state = 400 + self.state = 410 self._errHandler.sync(self) _la = self._input.LA(1) if ((((_la - 17)) & ~0x3f) == 0 and ((1 << (_la - 17)) & 280653027441537) != 0): - self.state = 399 + self.state = 409 self.fieldlist() - self.state = 402 + self.state = 412 self.match(LuaParser.CCU) except RecognitionException as re: localctx.exception = re @@ -3315,26 +3369,26 @@ def fieldlist(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 404 + self.state = 414 self.field() - self.state = 410 + self.state = 420 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,32,self._ctx) + _alt = self._interp.adaptivePredict(self._input,34,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: - self.state = 405 + self.state = 415 self.fieldsep() - self.state = 406 + self.state = 416 self.field() - self.state = 412 + self.state = 422 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,32,self._ctx) + _alt = self._interp.adaptivePredict(self._input,34,self._ctx) - self.state = 414 + self.state = 424 self._errHandler.sync(self) _la = self._input.LA(1) if _la==1 or _la==15: - self.state = 413 + self.state = 423 self.fieldsep() @@ -3398,36 +3452,36 @@ def field(self): localctx = LuaParser.FieldContext(self, self._ctx, self.state) self.enterRule(localctx, 70, self.RULE_field) try: - self.state = 426 + self.state = 436 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,34,self._ctx) + la_ = self._interp.adaptivePredict(self._input,36,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 416 + self.state = 426 self.match(LuaParser.OB) - self.state = 417 + self.state = 427 self.exp(0) - self.state = 418 + self.state = 428 self.match(LuaParser.CB) - self.state = 419 + self.state = 429 self.match(LuaParser.EQ) - self.state = 420 + self.state = 430 self.exp(0) pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 422 + self.state = 432 self.match(LuaParser.NAME) - self.state = 423 + self.state = 433 self.match(LuaParser.EQ) - self.state = 424 + self.state = 434 self.exp(0) pass elif la_ == 3: self.enterOuterAlt(localctx, 3) - self.state = 425 + self.state = 435 self.exp(0) pass @@ -3481,7 +3535,7 @@ def fieldsep(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 428 + self.state = 438 _la = self._input.LA(1) if not(_la==1 or _la==15): self._errHandler.recoverInline(self) @@ -3543,7 +3597,7 @@ def number(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 430 + self.state = 440 _la = self._input.LA(1) if not(((((_la - 61)) & ~0x3f) == 0 and ((1 << (_la - 61)) & 15) != 0)): self._errHandler.recoverInline(self) @@ -3602,7 +3656,7 @@ def string(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 432 + self.state = 442 _la = self._input.LA(1) if not((((_la) & ~0x3f) == 0 and ((1 << _la) & 2017612633061982208) != 0)): self._errHandler.recoverInline(self)