From acd3bb793215cf145d316fad413d9601be958482 Mon Sep 17 00:00:00 2001 From: boolangery Date: Mon, 21 Oct 2024 22:26:55 +0200 Subject: [PATCH] expressions wip --- luaparser/ast.py | 87 ++++- luaparser/parser/LuaLexer.py | 4 +- luaparser/parser/LuaParser.interp | 2 +- luaparser/parser/LuaParser.py | 550 ++++++++++++++---------------- 4 files changed, 324 insertions(+), 319 deletions(-) diff --git a/luaparser/ast.py b/luaparser/ast.py index 312f83e..63c8af7 100644 --- a/luaparser/ast.py +++ b/luaparser/ast.py @@ -259,6 +259,8 @@ def visitPrefixexp(self, ctx: LuaParser.PrefixexpContext): if isinstance(tail, Index): tail.value = self.visit(ctx.NAME()) return tail + elif tail is None: + return Name(ctx.NAME().getText()) else: raise Exception("Invalid tail type") elif ctx.functioncall(): # functioncall nestedtail @@ -274,14 +276,20 @@ def visitFunctioncall(self, ctx: LuaParser.FunctioncallContext): args = self.visit(ctx.args()) names = ctx.NAME() - tails = None - if ctx.tail(): - tails = [self.visit(t) for t in ctx.tail()] + tail = self.visit(ctx.nestedtail()) + + if len(names) == 1: # NAME nestedtail args + name = self.visit(names[0]) - if len(names) == 1: # NAME tail* args - if isinstance(args, Call): - args.func = self.visit(names[0]) - return args + if isinstance(tail, Call): + tail.func = name + elif isinstance(tail, Index): + tail.value = name + elif isinstance(tail, Invoke): + tail.source = name + elif tail is None: + return Call(name,_listify(args)) + return Call(tail, _listify(args)) return Call( func=ctx.NAME(), @@ -292,7 +300,34 @@ def visitAnonfunctiondef(self, ctx: LuaParser.AnonfunctiondefContext): return self.visitChildren(ctx) def visitNestedtail(self, ctx: LuaParser.NestedtailContext): - return self.visitChildren(ctx) + if ctx.children is None: + return None + + root = None # parent root will be set in caller + tail = self.visit(ctx.tail(0)) # root tail + i = 1 + while tail: + if isinstance(tail, Call): + tail.func = root + elif isinstance(tail, Index): + tail.value = root + elif isinstance(tail, Invoke): + tail.source = root + else: + args = _listify(tail) + tail = Call( + root, + args, + first_token=root.first_token, + last_token=args[-1].last_token if args else None, + ) + root = tail + tail_node = ctx.tail(i) + if not tail_node: + break + tail = self.visit(tail_node) + i += 1 + return root def visitTail(self, ctx: LuaParser.TailContext): if ctx.OB() and ctx.CB(): @@ -303,20 +338,23 @@ def visitTail(self, ctx: LuaParser.TailContext): ) else: return Index( - idx=Name(self.visit(ctx.NAME())), + idx=self.visit(ctx.NAME()), value=Name(""), # value must be set in parent notation=IndexNotation.DOT, ) # Visit a parse tree produced by LuaParser#args. def visitArgs(self, ctx: LuaParser.ArgsContext): - if ctx.OP() and ctx.CP(): + if ctx.OP() and ctx.CP(): # '(' explist? ')' exp_list = [] if ctx.explist(): exp_list = self.visit(ctx.explist()) return Call(None, exp_list) - return self.visitChildren(ctx) + elif ctx.tableconstructor(): # tableconstructor + return self.visit(ctx.tableconstructor()) + else: # string + return self.visit(ctx.string()) # Visit a parse tree produced by LuaParser#functiondef. def visitFunctiondef(self, ctx: LuaParser.FunctiondefContext): @@ -332,15 +370,36 @@ def visitParlist(self, ctx: LuaParser.ParlistContext): # Visit a parse tree produced by LuaParser#tableconstructor. def visitTableconstructor(self, ctx: LuaParser.TableconstructorContext): - return self.visitChildren(ctx) + if ctx.fieldlist(): + fields = self.visit(ctx.fieldlist()) + + array_like_index = 1 + if fields: # optional + for field in fields: + if field.key is None: + field.key = Number(array_like_index) + field.between_brackets = True + array_like_index += 1 + return Table(fields) + return Table([]) # Visit a parse tree produced by LuaParser#fieldlist. def visitFieldlist(self, ctx: LuaParser.FieldlistContext): - return self.visitChildren(ctx) + return [self.visit(f) for f in ctx.field()] # Visit a parse tree produced by LuaParser#field. def visitField(self, ctx: LuaParser.FieldContext): - return self.visitChildren(ctx) + if ctx.OB(): # '[' exp ']' '=' exp + key = self.visit(ctx.exp(0)) + value = self.visit(ctx.exp(1)) + return Field(key, value, between_brackets=True) + elif ctx.NAME(): # NAME '=' exp + key = Name(ctx.NAME().getText()) + value = self.visit(ctx.exp(0)) + return Field(key, value) + else: # exp + # Key will be set in parent call: + return Field(None, self.visit(ctx.exp(0))) # Visit a parse tree produced by LuaParser#fieldsep. def visitFieldsep(self, ctx: LuaParser.FieldsepContext): diff --git a/luaparser/parser/LuaLexer.py b/luaparser/parser/LuaLexer.py index 20302a8..a348f3a 100644 --- a/luaparser/parser/LuaLexer.py +++ b/luaparser/parser/LuaLexer.py @@ -369,7 +369,7 @@ def action(self, localctx:RuleContext, ruleIndex:int, actionIndex:int): def COMMENT_action(self, localctx:RuleContext , actionIndex:int): if actionIndex == 0: - this.HandleComment(); + self.HandleComment(); def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): @@ -385,7 +385,7 @@ def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): def SHEBANG_sempred(self, localctx:RuleContext, predIndex:int): if predIndex == 0: - return this.IsLine1Col0() + return self.IsLine1Col0() diff --git a/luaparser/parser/LuaParser.interp b/luaparser/parser/LuaParser.interp index eea130a..c0cec05 100644 --- a/luaparser/parser/LuaParser.interp +++ b/luaparser/parser/LuaParser.interp @@ -183,4 +183,4 @@ string atn: -[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 +[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 diff --git a/luaparser/parser/LuaParser.py b/luaparser/parser/LuaParser.py index 8f7f313..e0ba3f7 100644 --- a/luaparser/parser/LuaParser.py +++ b/luaparser/parser/LuaParser.py @@ -10,7 +10,7 @@ def serializedATN(): return [ - 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, + 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, @@ -34,144 +34,141 @@ 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,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 + 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 ] class LuaParser ( Parser ): @@ -2507,48 +2504,24 @@ def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser - def NAME(self, i:int=None): - if i is None: - return self.getTokens(LuaParser.NAME) - else: - return self.getToken(LuaParser.NAME, i) - - 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 NAME(self): + return self.getToken(LuaParser.NAME, 0) - def CB(self, i:int=None): - if i is None: - return self.getTokens(LuaParser.CB) - else: - return self.getToken(LuaParser.CB, i) + def nestedtail(self): + return self.getTypedRuleContext(LuaParser.NestedtailContext,0) - 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 nestedtail(self): - return self.getTypedRuleContext(LuaParser.NestedtailContext,0) - - def OP(self): return self.getToken(LuaParser.OP, 0) + def exp(self): + return self.getTypedRuleContext(LuaParser.ExpContext,0) + + def CP(self): return self.getToken(LuaParser.CP, 0) @@ -2577,61 +2550,34 @@ def prefixexp(self): localctx = LuaParser.PrefixexpContext(self, self._ctx, self.state) self.enterRule(localctx, 50, self.RULE_prefixexp) try: - self.state = 323 + self.state = 313 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,23,self._ctx) + la_ = self._interp.adaptivePredict(self._input,21,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) self.state = 303 self.match(LuaParser.NAME) - 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) - + self.state = 304 + self.nestedtail() pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 315 + self.state = 305 self.functioncall(0) - self.state = 316 + self.state = 306 self.nestedtail() pass elif la_ == 3: self.enterOuterAlt(localctx, 3) - self.state = 318 + self.state = 308 self.match(LuaParser.OP) - self.state = 319 + self.state = 309 self.exp(0) - self.state = 320 + self.state = 310 self.match(LuaParser.CP) - self.state = 321 + self.state = 311 self.nestedtail() pass @@ -2711,108 +2657,108 @@ def functioncall(self, _p:int=0): self.enterRecursionRule(localctx, 52, self.RULE_functioncall, _p) try: self.enterOuterAlt(localctx, 1) - self.state = 350 + self.state = 340 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,24,self._ctx) + la_ = self._interp.adaptivePredict(self._input,22,self._ctx) if la_ == 1: - self.state = 326 + self.state = 316 self.match(LuaParser.NAME) - self.state = 327 + self.state = 317 self.nestedtail() - self.state = 328 + self.state = 318 self.args() pass elif la_ == 2: - self.state = 330 + self.state = 320 self.match(LuaParser.OP) - self.state = 331 + self.state = 321 self.exp(0) - self.state = 332 + self.state = 322 self.match(LuaParser.CP) - self.state = 333 + self.state = 323 self.nestedtail() - self.state = 334 + self.state = 324 self.args() pass elif la_ == 3: - self.state = 336 + self.state = 326 self.match(LuaParser.NAME) - self.state = 337 + self.state = 327 self.nestedtail() - self.state = 338 + self.state = 328 self.match(LuaParser.COL) - self.state = 339 + self.state = 329 self.match(LuaParser.NAME) - self.state = 340 + self.state = 330 self.args() pass elif la_ == 4: - self.state = 342 + self.state = 332 self.match(LuaParser.OP) - self.state = 343 + self.state = 333 self.exp(0) - self.state = 344 + self.state = 334 self.match(LuaParser.CP) - self.state = 345 + self.state = 335 self.nestedtail() - self.state = 346 + self.state = 336 self.match(LuaParser.COL) - self.state = 347 + self.state = 337 self.match(LuaParser.NAME) - self.state = 348 + self.state = 338 self.args() pass self._ctx.stop = self._input.LT(-1) - self.state = 364 + self.state = 354 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,26,self._ctx) + _alt = self._interp.adaptivePredict(self._input,24,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 = 362 + self.state = 352 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,25,self._ctx) + la_ = self._interp.adaptivePredict(self._input,23,self._ctx) if la_ == 1: localctx = LuaParser.FunctioncallContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_functioncall) - self.state = 352 + self.state = 342 if not self.precpred(self._ctx, 5): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 5)") - self.state = 353 + self.state = 343 self.nestedtail() - self.state = 354 + self.state = 344 self.args() pass elif la_ == 2: localctx = LuaParser.FunctioncallContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_functioncall) - self.state = 356 + self.state = 346 if not self.precpred(self._ctx, 2): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 2)") - self.state = 357 + self.state = 347 self.nestedtail() - self.state = 358 + self.state = 348 self.match(LuaParser.COL) - self.state = 359 + self.state = 349 self.match(LuaParser.NAME) - self.state = 360 + self.state = 350 self.args() pass - self.state = 366 + self.state = 356 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,26,self._ctx) + _alt = self._interp.adaptivePredict(self._input,24,self._ctx) except RecognitionException as re: localctx.exception = re @@ -2872,21 +2818,21 @@ def tail(self): self.enterRule(localctx, 54, self.RULE_tail) try: self.enterOuterAlt(localctx, 1) - self.state = 373 + self.state = 363 self._errHandler.sync(self) token = self._input.LA(1) if token in [48]: - self.state = 367 + self.state = 357 self.match(LuaParser.OB) - self.state = 368 + self.state = 358 self.exp(0) - self.state = 369 + self.state = 359 self.match(LuaParser.CB) pass elif token in [27]: - self.state = 371 + self.state = 361 self.match(LuaParser.DOT) - self.state = 372 + self.state = 362 self.match(LuaParser.NAME) pass else: @@ -2941,16 +2887,16 @@ def nestedtail(self): self.enterRule(localctx, 56, self.RULE_nestedtail) try: self.enterOuterAlt(localctx, 1) - self.state = 378 + self.state = 368 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,28,self._ctx) + _alt = self._interp.adaptivePredict(self._input,26,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: - self.state = 375 + self.state = 365 self.tail() - self.state = 380 + self.state = 370 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,28,self._ctx) + _alt = self._interp.adaptivePredict(self._input,26,self._ctx) except RecognitionException as re: localctx.exception = re @@ -3012,32 +2958,32 @@ def args(self): self.enterRule(localctx, 58, self.RULE_args) self._la = 0 # Token type try: - self.state = 388 + self.state = 378 self._errHandler.sync(self) token = self._input.LA(1) if token in [31]: self.enterOuterAlt(localctx, 1) - self.state = 381 + self.state = 371 self.match(LuaParser.OP) - self.state = 383 + self.state = 373 self._errHandler.sync(self) _la = self._input.LA(1) if ((((_la - 17)) & ~0x3f) == 0 and ((1 << (_la - 17)) & 280650879957889) != 0): - self.state = 382 + self.state = 372 self.explist() - self.state = 385 + self.state = 375 self.match(LuaParser.CP) pass elif token in [46]: self.enterOuterAlt(localctx, 2) - self.state = 386 + self.state = 376 self.tableconstructor() pass elif token in [58, 59, 60]: self.enterOuterAlt(localctx, 3) - self.state = 387 + self.state = 377 self.string() pass else: @@ -3092,9 +3038,9 @@ def anonfunctiondef(self): self.enterRule(localctx, 60, self.RULE_anonfunctiondef) try: self.enterOuterAlt(localctx, 1) - self.state = 390 + self.state = 380 self.match(LuaParser.FUNCTION) - self.state = 391 + self.state = 381 self.funcbody() except RecognitionException as re: localctx.exception = re @@ -3155,15 +3101,15 @@ def funcbody(self): self.enterRule(localctx, 62, self.RULE_funcbody) try: self.enterOuterAlt(localctx, 1) - self.state = 393 + self.state = 383 self.match(LuaParser.OP) - self.state = 394 + self.state = 384 self.parlist() - self.state = 395 + self.state = 385 self.match(LuaParser.CP) - self.state = 396 + self.state = 386 self.block() - self.state = 397 + self.state = 387 self.match(LuaParser.END) except RecognitionException as re: localctx.exception = re @@ -3217,27 +3163,27 @@ def parlist(self): self.enterRule(localctx, 64, self.RULE_parlist) self._la = 0 # Token type try: - self.state = 406 + self.state = 396 self._errHandler.sync(self) token = self._input.LA(1) if token in [57]: self.enterOuterAlt(localctx, 1) - self.state = 399 + self.state = 389 self.namelist() - self.state = 402 + self.state = 392 self._errHandler.sync(self) _la = self._input.LA(1) if _la==15: - self.state = 400 + self.state = 390 self.match(LuaParser.COMMA) - self.state = 401 + self.state = 391 self.match(LuaParser.DDD) pass elif token in [55]: self.enterOuterAlt(localctx, 2) - self.state = 404 + self.state = 394 self.match(LuaParser.DDD) pass elif token in [32]: @@ -3300,17 +3246,17 @@ def tableconstructor(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 408 + self.state = 398 self.match(LuaParser.OCU) - self.state = 410 + self.state = 400 self._errHandler.sync(self) _la = self._input.LA(1) if ((((_la - 17)) & ~0x3f) == 0 and ((1 << (_la - 17)) & 280653027441537) != 0): - self.state = 409 + self.state = 399 self.fieldlist() - self.state = 412 + self.state = 402 self.match(LuaParser.CCU) except RecognitionException as re: localctx.exception = re @@ -3369,26 +3315,26 @@ def fieldlist(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 414 + self.state = 404 self.field() - self.state = 420 + self.state = 410 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,34,self._ctx) + _alt = self._interp.adaptivePredict(self._input,32,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: - self.state = 415 + self.state = 405 self.fieldsep() - self.state = 416 + self.state = 406 self.field() - self.state = 422 + self.state = 412 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,34,self._ctx) + _alt = self._interp.adaptivePredict(self._input,32,self._ctx) - self.state = 424 + self.state = 414 self._errHandler.sync(self) _la = self._input.LA(1) if _la==1 or _la==15: - self.state = 423 + self.state = 413 self.fieldsep() @@ -3452,36 +3398,36 @@ def field(self): localctx = LuaParser.FieldContext(self, self._ctx, self.state) self.enterRule(localctx, 70, self.RULE_field) try: - self.state = 436 + self.state = 426 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,36,self._ctx) + la_ = self._interp.adaptivePredict(self._input,34,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 426 + self.state = 416 self.match(LuaParser.OB) - self.state = 427 + self.state = 417 self.exp(0) - self.state = 428 + self.state = 418 self.match(LuaParser.CB) - self.state = 429 + self.state = 419 self.match(LuaParser.EQ) - self.state = 430 + self.state = 420 self.exp(0) pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 432 + self.state = 422 self.match(LuaParser.NAME) - self.state = 433 + self.state = 423 self.match(LuaParser.EQ) - self.state = 434 + self.state = 424 self.exp(0) pass elif la_ == 3: self.enterOuterAlt(localctx, 3) - self.state = 435 + self.state = 425 self.exp(0) pass @@ -3535,7 +3481,7 @@ def fieldsep(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 438 + self.state = 428 _la = self._input.LA(1) if not(_la==1 or _la==15): self._errHandler.recoverInline(self) @@ -3597,7 +3543,7 @@ def number(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 440 + self.state = 430 _la = self._input.LA(1) if not(((((_la - 61)) & ~0x3f) == 0 and ((1 << (_la - 61)) & 15) != 0)): self._errHandler.recoverInline(self) @@ -3656,7 +3602,7 @@ def string(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 442 + self.state = 432 _la = self._input.LA(1) if not((((_la) & ~0x3f) == 0 and ((1 << _la) & 2017612633061982208) != 0)): self._errHandler.recoverInline(self)