univac
Version:
Generate AST of lots of common programming languages using antlr4. JavaScript API and CLI tool.
1,290 lines (1,144 loc) • 117 kB
JavaScript
// @ts-nocheck
// Generated from Lua.g4 by ANTLR 4.7.2
// jshint ignore: start
var antlr4 = require('antlr4/index');
var LuaListener = require('./LuaListener').LuaListener;
var grammarFileName = "Lua.g4";
var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964",
"\u0003E\u0193\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004\t",
"\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007\u0004",
"\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004\f\t\f\u0004",
"\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010\t\u0010\u0004",
"\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013\u0004\u0014\t",
"\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017\t\u0017\u0004",
"\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a\u0004\u001b\t",
"\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e\t\u001e\u0004",
"\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#\t#\u0004$\t$\u0003",
"\u0002\u0003\u0002\u0003\u0002\u0003\u0003\u0007\u0003M\n\u0003\f\u0003",
"\u000e\u0003P\u000b\u0003\u0003\u0003\u0005\u0003S\n\u0003\u0003\u0004",
"\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004",
"\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004",
"\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004",
"\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004",
"\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004",
"\u0003\u0004\u0003\u0004\u0003\u0004\u0007\u0004w\n\u0004\f\u0004\u000e",
"\u0004z\u000b\u0004\u0003\u0004\u0003\u0004\u0005\u0004~\n\u0004\u0003",
"\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003",
"\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0005\u0004\u008a\n\u0004",
"\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004",
"\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004",
"\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004",
"\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004",
"\u0005\u0004\u00a4\n\u0004\u0005\u0004\u00a6\n\u0004\u0003\u0005\u0003",
"\u0005\u0005\u0005\u00aa\n\u0005\u0003\u0005\u0005\u0005\u00ad\n\u0005",
"\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0007\u0003\u0007",
"\u0003\u0007\u0007\u0007\u00b6\n\u0007\f\u0007\u000e\u0007\u00b9\u000b",
"\u0007\u0003\u0007\u0003\u0007\u0005\u0007\u00bd\n\u0007\u0003\b\u0003",
"\b\u0003\b\u0007\b\u00c2\n\b\f\b\u000e\b\u00c5\u000b\b\u0003\t\u0003",
"\t\u0003\t\u0007\t\u00ca\n\t\f\t\u000e\t\u00cd\u000b\t\u0003\n\u0003",
"\n\u0003\n\u0007\n\u00d2\n\n\f\n\u000e\n\u00d5\u000b\n\u0003\u000b\u0003",
"\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003",
"\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0005",
"\u000b\u00e4\n\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b",
"\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b",
"\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b",
"\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b",
"\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b",
"\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0007\u000b\u0106\n",
"\u000b\f\u000b\u000e\u000b\u0109\u000b\u000b\u0003\f\u0003\f\u0007\f",
"\u010d\n\f\f\f\u000e\f\u0110\u000b\f\u0003\r\u0003\r\u0006\r\u0114\n",
"\r\r\r\u000e\r\u0115\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e",
"\u0003\u000e\u0005\u000e\u011d\n\u000e\u0003\u000f\u0003\u000f\u0003",
"\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0005\u000f\u0125\n\u000f",
"\u0003\u000f\u0007\u000f\u0128\n\u000f\f\u000f\u000e\u000f\u012b\u000b",
"\u000f\u0003\u0010\u0007\u0010\u012e\n\u0010\f\u0010\u000e\u0010\u0131",
"\u000b\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010",
"\u0003\u0010\u0005\u0010\u0139\n\u0010\u0003\u0011\u0003\u0011\u0005",
"\u0011\u013d\n\u0011\u0003\u0011\u0003\u0011\u0003\u0012\u0003\u0012",
"\u0005\u0012\u0143\n\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0005",
"\u0012\u0148\n\u0012\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0014",
"\u0003\u0014\u0005\u0014\u014f\n\u0014\u0003\u0014\u0003\u0014\u0003",
"\u0014\u0003\u0014\u0003\u0015\u0003\u0015\u0003\u0015\u0005\u0015\u0158",
"\n\u0015\u0003\u0015\u0005\u0015\u015b\n\u0015\u0003\u0016\u0003\u0016",
"\u0005\u0016\u015f\n\u0016\u0003\u0016\u0003\u0016\u0003\u0017\u0003",
"\u0017\u0003\u0017\u0003\u0017\u0007\u0017\u0167\n\u0017\f\u0017\u000e",
"\u0017\u016a\u000b\u0017\u0003\u0017\u0005\u0017\u016d\n\u0017\u0003",
"\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003",
"\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0005\u0018\u0179\n\u0018",
"\u0003\u0019\u0003\u0019\u0003\u001a\u0003\u001a\u0003\u001b\u0003\u001b",
"\u0003\u001c\u0003\u001c\u0003\u001d\u0003\u001d\u0003\u001e\u0003\u001e",
"\u0003\u001f\u0003\u001f\u0003 \u0003 \u0003!\u0003!\u0003\"\u0003\"",
"\u0003#\u0003#\u0003$\u0003$\u0003$\u0002\u0003\u0014%\u0002\u0004\u0006",
"\b\n\f\u000e\u0010\u0012\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*",
",.02468:<>@BDF\u0002\n\u0004\u0002\u0003\u0003\u0011\u0011\u0003\u0002",
"%*\u0003\u0002,-\u0003\u0002.1\u0003\u000226\u0005\u0002--4478\u0003",
"\u0002>A\u0003\u0002;=\u0002\u01ae\u0002H\u0003\u0002\u0002\u0002\u0004",
"N\u0003\u0002\u0002\u0002\u0006\u00a5\u0003\u0002\u0002\u0002\b\u00a7",
"\u0003\u0002\u0002\u0002\n\u00ae\u0003\u0002\u0002\u0002\f\u00b2\u0003",
"\u0002\u0002\u0002\u000e\u00be\u0003\u0002\u0002\u0002\u0010\u00c6\u0003",
"\u0002\u0002\u0002\u0012\u00ce\u0003\u0002\u0002\u0002\u0014\u00e3\u0003",
"\u0002\u0002\u0002\u0016\u010a\u0003\u0002\u0002\u0002\u0018\u0111\u0003",
"\u0002\u0002\u0002\u001a\u011c\u0003\u0002\u0002\u0002\u001c\u0124\u0003",
"\u0002\u0002\u0002\u001e\u012f\u0003\u0002\u0002\u0002 \u013c\u0003",
"\u0002\u0002\u0002\"\u0147\u0003\u0002\u0002\u0002$\u0149\u0003\u0002",
"\u0002\u0002&\u014c\u0003\u0002\u0002\u0002(\u015a\u0003\u0002\u0002",
"\u0002*\u015c\u0003\u0002\u0002\u0002,\u0162\u0003\u0002\u0002\u0002",
".\u0178\u0003\u0002\u0002\u00020\u017a\u0003\u0002\u0002\u00022\u017c",
"\u0003\u0002\u0002\u00024\u017e\u0003\u0002\u0002\u00026\u0180\u0003",
"\u0002\u0002\u00028\u0182\u0003\u0002\u0002\u0002:\u0184\u0003\u0002",
"\u0002\u0002<\u0186\u0003\u0002\u0002\u0002>\u0188\u0003\u0002\u0002",
"\u0002@\u018a\u0003\u0002\u0002\u0002B\u018c\u0003\u0002\u0002\u0002",
"D\u018e\u0003\u0002\u0002\u0002F\u0190\u0003\u0002\u0002\u0002HI\u0005",
"\u0004\u0003\u0002IJ\u0007\u0002\u0002\u0003J\u0003\u0003\u0002\u0002",
"\u0002KM\u0005\u0006\u0004\u0002LK\u0003\u0002\u0002\u0002MP\u0003\u0002",
"\u0002\u0002NL\u0003\u0002\u0002\u0002NO\u0003\u0002\u0002\u0002OR\u0003",
"\u0002\u0002\u0002PN\u0003\u0002\u0002\u0002QS\u0005\b\u0005\u0002R",
"Q\u0003\u0002\u0002\u0002RS\u0003\u0002\u0002\u0002S\u0005\u0003\u0002",
"\u0002\u0002T\u00a6\u0007\u0003\u0002\u0002UV\u0005\u000e\b\u0002VW",
"\u0007\u0004\u0002\u0002WX\u0005\u0012\n\u0002X\u00a6\u0003\u0002\u0002",
"\u0002Y\u00a6\u0005\u0018\r\u0002Z\u00a6\u0005\n\u0006\u0002[\u00a6",
"\u0007\u0005\u0002\u0002\\]\u0007\u0006\u0002\u0002]\u00a6\u0007:\u0002",
"\u0002^_\u0007\u0007\u0002\u0002_`\u0005\u0004\u0003\u0002`a\u0007\b",
"\u0002\u0002a\u00a6\u0003\u0002\u0002\u0002bc\u0007\t\u0002\u0002cd",
"\u0005\u0014\u000b\u0002de\u0007\u0007\u0002\u0002ef\u0005\u0004\u0003",
"\u0002fg\u0007\b\u0002\u0002g\u00a6\u0003\u0002\u0002\u0002hi\u0007",
"\n\u0002\u0002ij\u0005\u0004\u0003\u0002jk\u0007\u000b\u0002\u0002k",
"l\u0005\u0014\u000b\u0002l\u00a6\u0003\u0002\u0002\u0002mn\u0007\f\u0002",
"\u0002no\u0005\u0014\u000b\u0002op\u0007\r\u0002\u0002px\u0005\u0004",
"\u0003\u0002qr\u0007\u000e\u0002\u0002rs\u0005\u0014\u000b\u0002st\u0007",
"\r\u0002\u0002tu\u0005\u0004\u0003\u0002uw\u0003\u0002\u0002\u0002v",
"q\u0003\u0002\u0002\u0002wz\u0003\u0002\u0002\u0002xv\u0003\u0002\u0002",
"\u0002xy\u0003\u0002\u0002\u0002y}\u0003\u0002\u0002\u0002zx\u0003\u0002",
"\u0002\u0002{|\u0007\u000f\u0002\u0002|~\u0005\u0004\u0003\u0002}{\u0003",
"\u0002\u0002\u0002}~\u0003\u0002\u0002\u0002~\u007f\u0003\u0002\u0002",
"\u0002\u007f\u0080\u0007\b\u0002\u0002\u0080\u00a6\u0003\u0002\u0002",
"\u0002\u0081\u0082\u0007\u0010\u0002\u0002\u0082\u0083\u0007:\u0002",
"\u0002\u0083\u0084\u0007\u0004\u0002\u0002\u0084\u0085\u0005\u0014\u000b",
"\u0002\u0085\u0086\u0007\u0011\u0002\u0002\u0086\u0089\u0005\u0014\u000b",
"\u0002\u0087\u0088\u0007\u0011\u0002\u0002\u0088\u008a\u0005\u0014\u000b",
"\u0002\u0089\u0087\u0003\u0002\u0002\u0002\u0089\u008a\u0003\u0002\u0002",
"\u0002\u008a\u008b\u0003\u0002\u0002\u0002\u008b\u008c\u0007\u0007\u0002",
"\u0002\u008c\u008d\u0005\u0004\u0003\u0002\u008d\u008e\u0007\b\u0002",
"\u0002\u008e\u00a6\u0003\u0002\u0002\u0002\u008f\u0090\u0007\u0010\u0002",
"\u0002\u0090\u0091\u0005\u0010\t\u0002\u0091\u0092\u0007\u0012\u0002",
"\u0002\u0092\u0093\u0005\u0012\n\u0002\u0093\u0094\u0007\u0007\u0002",
"\u0002\u0094\u0095\u0005\u0004\u0003\u0002\u0095\u0096\u0007\b\u0002",
"\u0002\u0096\u00a6\u0003\u0002\u0002\u0002\u0097\u0098\u0007\u0013\u0002",
"\u0002\u0098\u0099\u0005\f\u0007\u0002\u0099\u009a\u0005&\u0014\u0002",
"\u009a\u00a6\u0003\u0002\u0002\u0002\u009b\u009c\u0007\u0014\u0002\u0002",
"\u009c\u009d\u0007\u0013\u0002\u0002\u009d\u009e\u0007:\u0002\u0002",
"\u009e\u00a6\u0005&\u0014\u0002\u009f\u00a0\u0007\u0014\u0002\u0002",
"\u00a0\u00a3\u0005\u0010\t\u0002\u00a1\u00a2\u0007\u0004\u0002\u0002",
"\u00a2\u00a4\u0005\u0012\n\u0002\u00a3\u00a1\u0003\u0002\u0002\u0002",
"\u00a3\u00a4\u0003\u0002\u0002\u0002\u00a4\u00a6\u0003\u0002\u0002\u0002",
"\u00a5T\u0003\u0002\u0002\u0002\u00a5U\u0003\u0002\u0002\u0002\u00a5",
"Y\u0003\u0002\u0002\u0002\u00a5Z\u0003\u0002\u0002\u0002\u00a5[\u0003",
"\u0002\u0002\u0002\u00a5\\\u0003\u0002\u0002\u0002\u00a5^\u0003\u0002",
"\u0002\u0002\u00a5b\u0003\u0002\u0002\u0002\u00a5h\u0003\u0002\u0002",
"\u0002\u00a5m\u0003\u0002\u0002\u0002\u00a5\u0081\u0003\u0002\u0002",
"\u0002\u00a5\u008f\u0003\u0002\u0002\u0002\u00a5\u0097\u0003\u0002\u0002",
"\u0002\u00a5\u009b\u0003\u0002\u0002\u0002\u00a5\u009f\u0003\u0002\u0002",
"\u0002\u00a6\u0007\u0003\u0002\u0002\u0002\u00a7\u00a9\u0007\u0015\u0002",
"\u0002\u00a8\u00aa\u0005\u0012\n\u0002\u00a9\u00a8\u0003\u0002\u0002",
"\u0002\u00a9\u00aa\u0003\u0002\u0002\u0002\u00aa\u00ac\u0003\u0002\u0002",
"\u0002\u00ab\u00ad\u0007\u0003\u0002\u0002\u00ac\u00ab\u0003\u0002\u0002",
"\u0002\u00ac\u00ad\u0003\u0002\u0002\u0002\u00ad\t\u0003\u0002\u0002",
"\u0002\u00ae\u00af\u0007\u0016\u0002\u0002\u00af\u00b0\u0007:\u0002",
"\u0002\u00b0\u00b1\u0007\u0016\u0002\u0002\u00b1\u000b\u0003\u0002\u0002",
"\u0002\u00b2\u00b7\u0007:\u0002\u0002\u00b3\u00b4\u0007\u0017\u0002",
"\u0002\u00b4\u00b6\u0007:\u0002\u0002\u00b5\u00b3\u0003\u0002\u0002",
"\u0002\u00b6\u00b9\u0003\u0002\u0002\u0002\u00b7\u00b5\u0003\u0002\u0002",
"\u0002\u00b7\u00b8\u0003\u0002\u0002\u0002\u00b8\u00bc\u0003\u0002\u0002",
"\u0002\u00b9\u00b7\u0003\u0002\u0002\u0002\u00ba\u00bb\u0007\u0018\u0002",
"\u0002\u00bb\u00bd\u0007:\u0002\u0002\u00bc\u00ba\u0003\u0002\u0002",
"\u0002\u00bc\u00bd\u0003\u0002\u0002\u0002\u00bd\r\u0003\u0002\u0002",
"\u0002\u00be\u00c3\u0005\u001c\u000f\u0002\u00bf\u00c0\u0007\u0011\u0002",
"\u0002\u00c0\u00c2\u0005\u001c\u000f\u0002\u00c1\u00bf\u0003\u0002\u0002",
"\u0002\u00c2\u00c5\u0003\u0002\u0002\u0002\u00c3\u00c1\u0003\u0002\u0002",
"\u0002\u00c3\u00c4\u0003\u0002\u0002\u0002\u00c4\u000f\u0003\u0002\u0002",
"\u0002\u00c5\u00c3\u0003\u0002\u0002\u0002\u00c6\u00cb\u0007:\u0002",
"\u0002\u00c7\u00c8\u0007\u0011\u0002\u0002\u00c8\u00ca\u0007:\u0002",
"\u0002\u00c9\u00c7\u0003\u0002\u0002\u0002\u00ca\u00cd\u0003\u0002\u0002",
"\u0002\u00cb\u00c9\u0003\u0002\u0002\u0002\u00cb\u00cc\u0003\u0002\u0002",
"\u0002\u00cc\u0011\u0003\u0002\u0002\u0002\u00cd\u00cb\u0003\u0002\u0002",
"\u0002\u00ce\u00d3\u0005\u0014\u000b\u0002\u00cf\u00d0\u0007\u0011\u0002",
"\u0002\u00d0\u00d2\u0005\u0014\u000b\u0002\u00d1\u00cf\u0003\u0002\u0002",
"\u0002\u00d2\u00d5\u0003\u0002\u0002\u0002\u00d3\u00d1\u0003\u0002\u0002",
"\u0002\u00d3\u00d4\u0003\u0002\u0002\u0002\u00d4\u0013\u0003\u0002\u0002",
"\u0002\u00d5\u00d3\u0003\u0002\u0002\u0002\u00d6\u00d7\b\u000b\u0001",
"\u0002\u00d7\u00e4\u0007\u0019\u0002\u0002\u00d8\u00e4\u0007\u001a\u0002",
"\u0002\u00d9\u00e4\u0007\u001b\u0002\u0002\u00da\u00e4\u0005D#\u0002",
"\u00db\u00e4\u0005F$\u0002\u00dc\u00e4\u0007\u001c\u0002\u0002\u00dd",
"\u00e4\u0005$\u0013\u0002\u00de\u00e4\u0005\u0016\f\u0002\u00df\u00e4",
"\u0005*\u0016\u0002\u00e0\u00e1\u0005@!\u0002\u00e1\u00e2\u0005\u0014",
"\u000b\n\u00e2\u00e4\u0003\u0002\u0002\u0002\u00e3\u00d6\u0003\u0002",
"\u0002\u0002\u00e3\u00d8\u0003\u0002\u0002\u0002\u00e3\u00d9\u0003\u0002",
"\u0002\u0002\u00e3\u00da\u0003\u0002\u0002\u0002\u00e3\u00db\u0003\u0002",
"\u0002\u0002\u00e3\u00dc\u0003\u0002\u0002\u0002\u00e3\u00dd\u0003\u0002",
"\u0002\u0002\u00e3\u00de\u0003\u0002\u0002\u0002\u00e3\u00df\u0003\u0002",
"\u0002\u0002\u00e3\u00e0\u0003\u0002\u0002\u0002\u00e4\u0107\u0003\u0002",
"\u0002\u0002\u00e5\u00e6\f\u000b\u0002\u0002\u00e6\u00e7\u0005B\"\u0002",
"\u00e7\u00e8\u0005\u0014\u000b\u000b\u00e8\u0106\u0003\u0002\u0002\u0002",
"\u00e9\u00ea\f\t\u0002\u0002\u00ea\u00eb\u0005<\u001f\u0002\u00eb\u00ec",
"\u0005\u0014\u000b\n\u00ec\u0106\u0003\u0002\u0002\u0002\u00ed\u00ee",
"\f\b\u0002\u0002\u00ee\u00ef\u0005:\u001e\u0002\u00ef\u00f0\u0005\u0014",
"\u000b\t\u00f0\u0106\u0003\u0002\u0002\u0002\u00f1\u00f2\f\u0007\u0002",
"\u0002\u00f2\u00f3\u00058\u001d\u0002\u00f3\u00f4\u0005\u0014\u000b",
"\u0007\u00f4\u0106\u0003\u0002\u0002\u0002\u00f5\u00f6\f\u0006\u0002",
"\u0002\u00f6\u00f7\u00056\u001c\u0002\u00f7\u00f8\u0005\u0014\u000b",
"\u0007\u00f8\u0106\u0003\u0002\u0002\u0002\u00f9\u00fa\f\u0005\u0002",
"\u0002\u00fa\u00fb\u00054\u001b\u0002\u00fb\u00fc\u0005\u0014\u000b",
"\u0006\u00fc\u0106\u0003\u0002\u0002\u0002\u00fd\u00fe\f\u0004\u0002",
"\u0002\u00fe\u00ff\u00052\u001a\u0002\u00ff\u0100\u0005\u0014\u000b",
"\u0005\u0100\u0106\u0003\u0002\u0002\u0002\u0101\u0102\f\u0003\u0002",
"\u0002\u0102\u0103\u0005> \u0002\u0103\u0104\u0005\u0014\u000b\u0004",
"\u0104\u0106\u0003\u0002\u0002\u0002\u0105\u00e5\u0003\u0002\u0002\u0002",
"\u0105\u00e9\u0003\u0002\u0002\u0002\u0105\u00ed\u0003\u0002\u0002\u0002",
"\u0105\u00f1\u0003\u0002\u0002\u0002\u0105\u00f5\u0003\u0002\u0002\u0002",
"\u0105\u00f9\u0003\u0002\u0002\u0002\u0105\u00fd\u0003\u0002\u0002\u0002",
"\u0105\u0101\u0003\u0002\u0002\u0002\u0106\u0109\u0003\u0002\u0002\u0002",
"\u0107\u0105\u0003\u0002\u0002\u0002\u0107\u0108\u0003\u0002\u0002\u0002",
"\u0108\u0015\u0003\u0002\u0002\u0002\u0109\u0107\u0003\u0002\u0002\u0002",
"\u010a\u010e\u0005\u001a\u000e\u0002\u010b\u010d\u0005 \u0011\u0002",
"\u010c\u010b\u0003\u0002\u0002\u0002\u010d\u0110\u0003\u0002\u0002\u0002",
"\u010e\u010c\u0003\u0002\u0002\u0002\u010e\u010f\u0003\u0002\u0002\u0002",
"\u010f\u0017\u0003\u0002\u0002\u0002\u0110\u010e\u0003\u0002\u0002\u0002",
"\u0111\u0113\u0005\u001a\u000e\u0002\u0112\u0114\u0005 \u0011\u0002",
"\u0113\u0112\u0003\u0002\u0002\u0002\u0114\u0115\u0003\u0002\u0002\u0002",
"\u0115\u0113\u0003\u0002\u0002\u0002\u0115\u0116\u0003\u0002\u0002\u0002",
"\u0116\u0019\u0003\u0002\u0002\u0002\u0117\u011d\u0005\u001c\u000f\u0002",
"\u0118\u0119\u0007\u001d\u0002\u0002\u0119\u011a\u0005\u0014\u000b\u0002",
"\u011a\u011b\u0007\u001e\u0002\u0002\u011b\u011d\u0003\u0002\u0002\u0002",
"\u011c\u0117\u0003\u0002\u0002\u0002\u011c\u0118\u0003\u0002\u0002\u0002",
"\u011d\u001b\u0003\u0002\u0002\u0002\u011e\u0125\u0007:\u0002\u0002",
"\u011f\u0120\u0007\u001d\u0002\u0002\u0120\u0121\u0005\u0014\u000b\u0002",
"\u0121\u0122\u0007\u001e\u0002\u0002\u0122\u0123\u0005\u001e\u0010\u0002",
"\u0123\u0125\u0003\u0002\u0002\u0002\u0124\u011e\u0003\u0002\u0002\u0002",
"\u0124\u011f\u0003\u0002\u0002\u0002\u0125\u0129\u0003\u0002\u0002\u0002",
"\u0126\u0128\u0005\u001e\u0010\u0002\u0127\u0126\u0003\u0002\u0002\u0002",
"\u0128\u012b\u0003\u0002\u0002\u0002\u0129\u0127\u0003\u0002\u0002\u0002",
"\u0129\u012a\u0003\u0002\u0002\u0002\u012a\u001d\u0003\u0002\u0002\u0002",
"\u012b\u0129\u0003\u0002\u0002\u0002\u012c\u012e\u0005 \u0011\u0002",
"\u012d\u012c\u0003\u0002\u0002\u0002\u012e\u0131\u0003\u0002\u0002\u0002",
"\u012f\u012d\u0003\u0002\u0002\u0002\u012f\u0130\u0003\u0002\u0002\u0002",
"\u0130\u0138\u0003\u0002\u0002\u0002\u0131\u012f\u0003\u0002\u0002\u0002",
"\u0132\u0133\u0007\u001f\u0002\u0002\u0133\u0134\u0005\u0014\u000b\u0002",
"\u0134\u0135\u0007 \u0002\u0002\u0135\u0139\u0003\u0002\u0002\u0002",
"\u0136\u0137\u0007\u0017\u0002\u0002\u0137\u0139\u0007:\u0002\u0002",
"\u0138\u0132\u0003\u0002\u0002\u0002\u0138\u0136\u0003\u0002\u0002\u0002",
"\u0139\u001f\u0003\u0002\u0002\u0002\u013a\u013b\u0007\u0018\u0002\u0002",
"\u013b\u013d\u0007:\u0002\u0002\u013c\u013a\u0003\u0002\u0002\u0002",
"\u013c\u013d\u0003\u0002\u0002\u0002\u013d\u013e\u0003\u0002\u0002\u0002",
"\u013e\u013f\u0005\"\u0012\u0002\u013f!\u0003\u0002\u0002\u0002\u0140",
"\u0142\u0007\u001d\u0002\u0002\u0141\u0143\u0005\u0012\n\u0002\u0142",
"\u0141\u0003\u0002\u0002\u0002\u0142\u0143\u0003\u0002\u0002\u0002\u0143",
"\u0144\u0003\u0002\u0002\u0002\u0144\u0148\u0007\u001e\u0002\u0002\u0145",
"\u0148\u0005*\u0016\u0002\u0146\u0148\u0005F$\u0002\u0147\u0140\u0003",
"\u0002\u0002\u0002\u0147\u0145\u0003\u0002\u0002\u0002\u0147\u0146\u0003",
"\u0002\u0002\u0002\u0148#\u0003\u0002\u0002\u0002\u0149\u014a\u0007",
"\u0013\u0002\u0002\u014a\u014b\u0005&\u0014\u0002\u014b%\u0003\u0002",
"\u0002\u0002\u014c\u014e\u0007\u001d\u0002\u0002\u014d\u014f\u0005(",
"\u0015\u0002\u014e\u014d\u0003\u0002\u0002\u0002\u014e\u014f\u0003\u0002",
"\u0002\u0002\u014f\u0150\u0003\u0002\u0002\u0002\u0150\u0151\u0007\u001e",
"\u0002\u0002\u0151\u0152\u0005\u0004\u0003\u0002\u0152\u0153\u0007\b",
"\u0002\u0002\u0153\'\u0003\u0002\u0002\u0002\u0154\u0157\u0005\u0010",
"\t\u0002\u0155\u0156\u0007\u0011\u0002\u0002\u0156\u0158\u0007\u001c",
"\u0002\u0002\u0157\u0155\u0003\u0002\u0002\u0002\u0157\u0158\u0003\u0002",
"\u0002\u0002\u0158\u015b\u0003\u0002\u0002\u0002\u0159\u015b\u0007\u001c",
"\u0002\u0002\u015a\u0154\u0003\u0002\u0002\u0002\u015a\u0159\u0003\u0002",
"\u0002\u0002\u015b)\u0003\u0002\u0002\u0002\u015c\u015e\u0007!\u0002",
"\u0002\u015d\u015f\u0005,\u0017\u0002\u015e\u015d\u0003\u0002\u0002",
"\u0002\u015e\u015f\u0003\u0002\u0002\u0002\u015f\u0160\u0003\u0002\u0002",
"\u0002\u0160\u0161\u0007\"\u0002\u0002\u0161+\u0003\u0002\u0002\u0002",
"\u0162\u0168\u0005.\u0018\u0002\u0163\u0164\u00050\u0019\u0002\u0164",
"\u0165\u0005.\u0018\u0002\u0165\u0167\u0003\u0002\u0002\u0002\u0166",
"\u0163\u0003\u0002\u0002\u0002\u0167\u016a\u0003\u0002\u0002\u0002\u0168",
"\u0166\u0003\u0002\u0002\u0002\u0168\u0169\u0003\u0002\u0002\u0002\u0169",
"\u016c\u0003\u0002\u0002\u0002\u016a\u0168\u0003\u0002\u0002\u0002\u016b",
"\u016d\u00050\u0019\u0002\u016c\u016b\u0003\u0002\u0002\u0002\u016c",
"\u016d\u0003\u0002\u0002\u0002\u016d-\u0003\u0002\u0002\u0002\u016e",
"\u016f\u0007\u001f\u0002\u0002\u016f\u0170\u0005\u0014\u000b\u0002\u0170",
"\u0171\u0007 \u0002\u0002\u0171\u0172\u0007\u0004\u0002\u0002\u0172",
"\u0173\u0005\u0014\u000b\u0002\u0173\u0179\u0003\u0002\u0002\u0002\u0174",
"\u0175\u0007:\u0002\u0002\u0175\u0176\u0007\u0004\u0002\u0002\u0176",
"\u0179\u0005\u0014\u000b\u0002\u0177\u0179\u0005\u0014\u000b\u0002\u0178",
"\u016e\u0003\u0002\u0002\u0002\u0178\u0174\u0003\u0002\u0002\u0002\u0178",
"\u0177\u0003\u0002\u0002\u0002\u0179/\u0003\u0002\u0002\u0002\u017a",
"\u017b\t\u0002\u0002\u0002\u017b1\u0003\u0002\u0002\u0002\u017c\u017d",
"\u0007#\u0002\u0002\u017d3\u0003\u0002\u0002\u0002\u017e\u017f\u0007",
"$\u0002\u0002\u017f5\u0003\u0002\u0002\u0002\u0180\u0181\t\u0003\u0002",
"\u0002\u01817\u0003\u0002\u0002\u0002\u0182\u0183\u0007+\u0002\u0002",
"\u01839\u0003\u0002\u0002\u0002\u0184\u0185\t\u0004\u0002\u0002\u0185",
";\u0003\u0002\u0002\u0002\u0186\u0187\t\u0005\u0002\u0002\u0187=\u0003",
"\u0002\u0002\u0002\u0188\u0189\t\u0006\u0002\u0002\u0189?\u0003\u0002",
"\u0002\u0002\u018a\u018b\t\u0007\u0002\u0002\u018bA\u0003\u0002\u0002",
"\u0002\u018c\u018d\u00079\u0002\u0002\u018dC\u0003\u0002\u0002\u0002",
"\u018e\u018f\t\b\u0002\u0002\u018fE\u0003\u0002\u0002\u0002\u0190\u0191",
"\t\t\u0002\u0002\u0191G\u0003\u0002\u0002\u0002$NRx}\u0089\u00a3\u00a5",
"\u00a9\u00ac\u00b7\u00bc\u00c3\u00cb\u00d3\u00e3\u0105\u0107\u010e\u0115",
"\u011c\u0124\u0129\u012f\u0138\u013c\u0142\u0147\u014e\u0157\u015a\u015e",
"\u0168\u016c\u0178"].join("");
var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN);
var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); });
var sharedContextCache = new antlr4.PredictionContextCache();
var literalNames = [ null, "';'", "'='", "'break'", "'goto'", "'do'", "'end'",
"'while'", "'repeat'", "'until'", "'if'", "'then'",
"'elseif'", "'else'", "'for'", "','", "'in'", "'function'",
"'local'", "'return'", "'::'", "'.'", "':'", "'nil'",
"'false'", "'true'", "'...'", "'('", "')'", "'['",
"']'", "'{'", "'}'", "'or'", "'and'", "'<'", "'>'",
"'<='", "'>='", "'~='", "'=='", "'..'", "'+'", "'-'",
"'*'", "'/'", "'%'", "'//'", "'&'", "'|'", "'~'", "'<<'",
"'>>'", "'not'", "'#'", "'^'" ];
var symbolicNames = [ null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null,
null, null, "NAME", "NORMALSTRING", "CHARSTRING",
"LONGSTRING", "INT", "HEX", "FLOAT", "HEX_FLOAT",
"COMMENT", "LINE_COMMENT", "WS", "SHEBANG" ];
var ruleNames = [ "chunk", "block", "stat", "retstat", "label", "funcname",
"varlist", "namelist", "explist", "exp", "prefixexp",
"functioncall", "varOrExp", "var", "varSuffix", "nameAndArgs",
"args", "functiondef", "funcbody", "parlist", "tableconstructor",
"fieldlist", "field", "fieldsep", "operatorOr", "operatorAnd",
"operatorComparison", "operatorStrcat", "operatorAddSub",
"operatorMulDivMod", "operatorBitwise", "operatorUnary",
"operatorPower", "number", "string" ];
function LuaParser (input) {
antlr4.Parser.call(this, input);
this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache);
this.ruleNames = ruleNames;
this.literalNames = literalNames;
this.symbolicNames = symbolicNames;
return this;
}
LuaParser.prototype = Object.create(antlr4.Parser.prototype);
LuaParser.prototype.constructor = LuaParser;
Object.defineProperty(LuaParser.prototype, "atn", {
get : function() {
return atn;
}
});
LuaParser.EOF = antlr4.Token.EOF;
LuaParser.T__0 = 1;
LuaParser.T__1 = 2;
LuaParser.T__2 = 3;
LuaParser.T__3 = 4;
LuaParser.T__4 = 5;
LuaParser.T__5 = 6;
LuaParser.T__6 = 7;
LuaParser.T__7 = 8;
LuaParser.T__8 = 9;
LuaParser.T__9 = 10;
LuaParser.T__10 = 11;
LuaParser.T__11 = 12;
LuaParser.T__12 = 13;
LuaParser.T__13 = 14;
LuaParser.T__14 = 15;
LuaParser.T__15 = 16;
LuaParser.T__16 = 17;
LuaParser.T__17 = 18;
LuaParser.T__18 = 19;
LuaParser.T__19 = 20;
LuaParser.T__20 = 21;
LuaParser.T__21 = 22;
LuaParser.T__22 = 23;
LuaParser.T__23 = 24;
LuaParser.T__24 = 25;
LuaParser.T__25 = 26;
LuaParser.T__26 = 27;
LuaParser.T__27 = 28;
LuaParser.T__28 = 29;
LuaParser.T__29 = 30;
LuaParser.T__30 = 31;
LuaParser.T__31 = 32;
LuaParser.T__32 = 33;
LuaParser.T__33 = 34;
LuaParser.T__34 = 35;
LuaParser.T__35 = 36;
LuaParser.T__36 = 37;
LuaParser.T__37 = 38;
LuaParser.T__38 = 39;
LuaParser.T__39 = 40;
LuaParser.T__40 = 41;
LuaParser.T__41 = 42;
LuaParser.T__42 = 43;
LuaParser.T__43 = 44;
LuaParser.T__44 = 45;
LuaParser.T__45 = 46;
LuaParser.T__46 = 47;
LuaParser.T__47 = 48;
LuaParser.T__48 = 49;
LuaParser.T__49 = 50;
LuaParser.T__50 = 51;
LuaParser.T__51 = 52;
LuaParser.T__52 = 53;
LuaParser.T__53 = 54;
LuaParser.T__54 = 55;
LuaParser.NAME = 56;
LuaParser.NORMALSTRING = 57;
LuaParser.CHARSTRING = 58;
LuaParser.LONGSTRING = 59;
LuaParser.INT = 60;
LuaParser.HEX = 61;
LuaParser.FLOAT = 62;
LuaParser.HEX_FLOAT = 63;
LuaParser.COMMENT = 64;
LuaParser.LINE_COMMENT = 65;
LuaParser.WS = 66;
LuaParser.SHEBANG = 67;
LuaParser.RULE_chunk = 0;
LuaParser.RULE_block = 1;
LuaParser.RULE_stat = 2;
LuaParser.RULE_retstat = 3;
LuaParser.RULE_label = 4;
LuaParser.RULE_funcname = 5;
LuaParser.RULE_varlist = 6;
LuaParser.RULE_namelist = 7;
LuaParser.RULE_explist = 8;
LuaParser.RULE_exp = 9;
LuaParser.RULE_prefixexp = 10;
LuaParser.RULE_functioncall = 11;
LuaParser.RULE_varOrExp = 12;
LuaParser.RULE_var = 13;
LuaParser.RULE_varSuffix = 14;
LuaParser.RULE_nameAndArgs = 15;
LuaParser.RULE_args = 16;
LuaParser.RULE_functiondef = 17;
LuaParser.RULE_funcbody = 18;
LuaParser.RULE_parlist = 19;
LuaParser.RULE_tableconstructor = 20;
LuaParser.RULE_fieldlist = 21;
LuaParser.RULE_field = 22;
LuaParser.RULE_fieldsep = 23;
LuaParser.RULE_operatorOr = 24;
LuaParser.RULE_operatorAnd = 25;
LuaParser.RULE_operatorComparison = 26;
LuaParser.RULE_operatorStrcat = 27;
LuaParser.RULE_operatorAddSub = 28;
LuaParser.RULE_operatorMulDivMod = 29;
LuaParser.RULE_operatorBitwise = 30;
LuaParser.RULE_operatorUnary = 31;
LuaParser.RULE_operatorPower = 32;
LuaParser.RULE_number = 33;
LuaParser.RULE_string = 34;
function ChunkContext(parser, parent, invokingState) {
if(parent===undefined) {
parent = null;
}
if(invokingState===undefined || invokingState===null) {
invokingState = -1;
}
antlr4.ParserRuleContext.call(this, parent, invokingState);
this.parser = parser;
this.ruleIndex = LuaParser.RULE_chunk;
return this;
}
ChunkContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ChunkContext.prototype.constructor = ChunkContext;
ChunkContext.prototype.block = function() {
return this.getTypedRuleContext(BlockContext,0);
};
ChunkContext.prototype.EOF = function() {
return this.getToken(LuaParser.EOF, 0);
};
ChunkContext.prototype.enterRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.enterChunk(this);
}
};
ChunkContext.prototype.exitRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.exitChunk(this);
}
};
LuaParser.ChunkContext = ChunkContext;
LuaParser.prototype.chunk = function() {
var localctx = new ChunkContext(this, this._ctx, this.state);
this.enterRule(localctx, 0, LuaParser.RULE_chunk);
try {
this.enterOuterAlt(localctx, 1);
this.state = 70;
this.block();
this.state = 71;
this.match(LuaParser.EOF);
} catch (re) {
if(re instanceof antlr4.error.RecognitionException) {
localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
} else {
throw re;
}
} finally {
this.exitRule();
}
return localctx;
};
function BlockContext(parser, parent, invokingState) {
if(parent===undefined) {
parent = null;
}
if(invokingState===undefined || invokingState===null) {
invokingState = -1;
}
antlr4.ParserRuleContext.call(this, parent, invokingState);
this.parser = parser;
this.ruleIndex = LuaParser.RULE_block;
return this;
}
BlockContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
BlockContext.prototype.constructor = BlockContext;
BlockContext.prototype.stat = function(i) {
if(i===undefined) {
i = null;
}
if(i===null) {
return this.getTypedRuleContexts(StatContext);
} else {
return this.getTypedRuleContext(StatContext,i);
}
};
BlockContext.prototype.retstat = function() {
return this.getTypedRuleContext(RetstatContext,0);
};
BlockContext.prototype.enterRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.enterBlock(this);
}
};
BlockContext.prototype.exitRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.exitBlock(this);
}
};
LuaParser.BlockContext = BlockContext;
LuaParser.prototype.block = function() {
var localctx = new BlockContext(this, this._ctx, this.state);
this.enterRule(localctx, 2, LuaParser.RULE_block);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
this.state = 76;
this._errHandler.sync(this);
_la = this._input.LA(1);
while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << LuaParser.T__0) | (1 << LuaParser.T__2) | (1 << LuaParser.T__3) | (1 << LuaParser.T__4) | (1 << LuaParser.T__6) | (1 << LuaParser.T__7) | (1 << LuaParser.T__9) | (1 << LuaParser.T__13) | (1 << LuaParser.T__16) | (1 << LuaParser.T__17) | (1 << LuaParser.T__19) | (1 << LuaParser.T__26))) !== 0) || _la===LuaParser.NAME) {
this.state = 73;
this.stat();
this.state = 78;
this._errHandler.sync(this);
_la = this._input.LA(1);
}
this.state = 80;
this._errHandler.sync(this);
_la = this._input.LA(1);
if(_la===LuaParser.T__18) {
this.state = 79;
this.retstat();
}
} catch (re) {
if(re instanceof antlr4.error.RecognitionException) {
localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
} else {
throw re;
}
} finally {
this.exitRule();
}
return localctx;
};
function StatContext(parser, parent, invokingState) {
if(parent===undefined) {
parent = null;
}
if(invokingState===undefined || invokingState===null) {
invokingState = -1;
}
antlr4.ParserRuleContext.call(this, parent, invokingState);
this.parser = parser;
this.ruleIndex = LuaParser.RULE_stat;
return this;
}
StatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
StatContext.prototype.constructor = StatContext;
StatContext.prototype.varlist = function() {
return this.getTypedRuleContext(VarlistContext,0);
};
StatContext.prototype.explist = function() {
return this.getTypedRuleContext(ExplistContext,0);
};
StatContext.prototype.functioncall = function() {
return this.getTypedRuleContext(FunctioncallContext,0);
};
StatContext.prototype.label = function() {
return this.getTypedRuleContext(LabelContext,0);
};
StatContext.prototype.NAME = function() {
return this.getToken(LuaParser.NAME, 0);
};
StatContext.prototype.block = function(i) {
if(i===undefined) {
i = null;
}
if(i===null) {
return this.getTypedRuleContexts(BlockContext);
} else {
return this.getTypedRuleContext(BlockContext,i);
}
};
StatContext.prototype.exp = function(i) {
if(i===undefined) {
i = null;
}
if(i===null) {
return this.getTypedRuleContexts(ExpContext);
} else {
return this.getTypedRuleContext(ExpContext,i);
}
};
StatContext.prototype.namelist = function() {
return this.getTypedRuleContext(NamelistContext,0);
};
StatContext.prototype.funcname = function() {
return this.getTypedRuleContext(FuncnameContext,0);
};
StatContext.prototype.funcbody = function() {
return this.getTypedRuleContext(FuncbodyContext,0);
};
StatContext.prototype.enterRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.enterStat(this);
}
};
StatContext.prototype.exitRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.exitStat(this);
}
};
LuaParser.StatContext = StatContext;
LuaParser.prototype.stat = function() {
var localctx = new StatContext(this, this._ctx, this.state);
this.enterRule(localctx, 4, LuaParser.RULE_stat);
var _la = 0; // Token type
try {
this.state = 163;
this._errHandler.sync(this);
var la_ = this._interp.adaptivePredict(this._input,6,this._ctx);
switch(la_) {
case 1:
this.enterOuterAlt(localctx, 1);
this.state = 82;
this.match(LuaParser.T__0);
break;
case 2:
this.enterOuterAlt(localctx, 2);
this.state = 83;
this.varlist();
this.state = 84;
this.match(LuaParser.T__1);
this.state = 85;
this.explist();
break;
case 3:
this.enterOuterAlt(localctx, 3);
this.state = 87;
this.functioncall();
break;
case 4:
this.enterOuterAlt(localctx, 4);
this.state = 88;
this.label();
break;
case 5:
this.enterOuterAlt(localctx, 5);
this.state = 89;
this.match(LuaParser.T__2);
break;
case 6:
this.enterOuterAlt(localctx, 6);
this.state = 90;
this.match(LuaParser.T__3);
this.state = 91;
this.match(LuaParser.NAME);
break;
case 7:
this.enterOuterAlt(localctx, 7);
this.state = 92;
this.match(LuaParser.T__4);
this.state = 93;
this.block();
this.state = 94;
this.match(LuaParser.T__5);
break;
case 8:
this.enterOuterAlt(localctx, 8);
this.state = 96;
this.match(LuaParser.T__6);
this.state = 97;
this.exp(0);
this.state = 98;
this.match(LuaParser.T__4);
this.state = 99;
this.block();
this.state = 100;
this.match(LuaParser.T__5);
break;
case 9:
this.enterOuterAlt(localctx, 9);
this.state = 102;
this.match(LuaParser.T__7);
this.state = 103;
this.block();
this.state = 104;
this.match(LuaParser.T__8);
this.state = 105;
this.exp(0);
break;
case 10:
this.enterOuterAlt(localctx, 10);
this.state = 107;
this.match(LuaParser.T__9);
this.state = 108;
this.exp(0);
this.state = 109;
this.match(LuaParser.T__10);
this.state = 110;
this.block();
this.state = 118;
this._errHandler.sync(this);
_la = this._input.LA(1);
while(_la===LuaParser.T__11) {
this.state = 111;
this.match(LuaParser.T__11);
this.state = 112;
this.exp(0);
this.state = 113;
this.match(LuaParser.T__10);
this.state = 114;
this.block();
this.state = 120;
this._errHandler.sync(this);
_la = this._input.LA(1);
}
this.state = 123;
this._errHandler.sync(this);
_la = this._input.LA(1);
if(_la===LuaParser.T__12) {
this.state = 121;
this.match(LuaParser.T__12);
this.state = 122;
this.block();
}
this.state = 125;
this.match(LuaParser.T__5);
break;
case 11:
this.enterOuterAlt(localctx, 11);
this.state = 127;
this.match(LuaParser.T__13);
this.state = 128;
this.match(LuaParser.NAME);
this.state = 129;
this.match(LuaParser.T__1);
this.state = 130;
this.exp(0);
this.state = 131;
this.match(LuaParser.T__14);
this.state = 132;
this.exp(0);
this.state = 135;
this._errHandler.sync(this);
_la = this._input.LA(1);
if(_la===LuaParser.T__14) {
this.state = 133;
this.match(LuaParser.T__14);
this.state = 134;
this.exp(0);
}
this.state = 137;
this.match(LuaParser.T__4);
this.state = 138;
this.block();
this.state = 139;
this.match(LuaParser.T__5);
break;
case 12:
this.enterOuterAlt(localctx, 12);
this.state = 141;
this.match(LuaParser.T__13);
this.state = 142;
this.namelist();
this.state = 143;
this.match(LuaParser.T__15);
this.state = 144;
this.explist();
this.state = 145;
this.match(LuaParser.T__4);
this.state = 146;
this.block();
this.state = 147;
this.match(LuaParser.T__5);
break;
case 13:
this.enterOuterAlt(localctx, 13);
this.state = 149;
this.match(LuaParser.T__16);
this.state = 150;
this.funcname();
this.state = 151;
this.funcbody();
break;
case 14:
this.enterOuterAlt(localctx, 14);
this.state = 153;
this.match(LuaParser.T__17);
this.state = 154;
this.match(LuaParser.T__16);
this.state = 155;
this.match(LuaParser.NAME);
this.state = 156;
this.funcbody();
break;
case 15:
this.enterOuterAlt(localctx, 15);
this.state = 157;
this.match(LuaParser.T__17);
this.state = 158;
this.namelist();
this.state = 161;
this._errHandler.sync(this);
_la = this._input.LA(1);
if(_la===LuaParser.T__1) {
this.state = 159;
this.match(LuaParser.T__1);
this.state = 160;
this.explist();
}
break;
}
} catch (re) {
if(re instanceof antlr4.error.RecognitionException) {
localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
} else {
throw re;
}
} finally {
this.exitRule();
}
return localctx;
};
function RetstatContext(parser, parent, invokingState) {
if(parent===undefined) {
parent = null;
}
if(invokingState===undefined || invokingState===null) {
invokingState = -1;
}
antlr4.ParserRuleContext.call(this, parent, invokingState);
this.parser = parser;
this.ruleIndex = LuaParser.RULE_retstat;
return this;
}
RetstatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RetstatContext.prototype.constructor = RetstatContext;
RetstatContext.prototype.explist = function() {
return this.getTypedRuleContext(ExplistContext,0);
};
RetstatContext.prototype.enterRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.enterRetstat(this);
}
};
RetstatContext.prototype.exitRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.exitRetstat(this);
}
};
LuaParser.RetstatContext = RetstatContext;
LuaParser.prototype.retstat = function() {
var localctx = new RetstatContext(this, this._ctx, this.state);
this.enterRule(localctx, 6, LuaParser.RULE_retstat);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
this.state = 165;
this.match(LuaParser.T__18);
this.state = 167;
this._errHandler.sync(this);
_la = this._input.LA(1);
if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << LuaParser.T__16) | (1 << LuaParser.T__22) | (1 << LuaParser.T__23) | (1 << LuaParser.T__24) | (1 << LuaParser.T__25) | (1 << LuaParser.T__26) | (1 << LuaParser.T__30))) !== 0) || ((((_la - 43)) & ~0x1f) == 0 && ((1 << (_la - 43)) & ((1 << (LuaParser.T__42 - 43)) | (1 << (LuaParser.T__49 - 43)) | (1 << (LuaParser.T__52 - 43)) | (1 << (LuaParser.T__53 - 43)) | (1 << (LuaParser.NAME - 43)) | (1 << (LuaParser.NORMALSTRING - 43)) | (1 << (LuaParser.CHARSTRING - 43)) | (1 << (LuaParser.LONGSTRING - 43)) | (1 << (LuaParser.INT - 43)) | (1 << (LuaParser.HEX - 43)) | (1 << (LuaParser.FLOAT - 43)) | (1 << (LuaParser.HEX_FLOAT - 43)))) !== 0)) {
this.state = 166;
this.explist();
}
this.state = 170;
this._errHandler.sync(this);
_la = this._input.LA(1);
if(_la===LuaParser.T__0) {
this.state = 169;
this.match(LuaParser.T__0);
}
} catch (re) {
if(re instanceof antlr4.error.RecognitionException) {
localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
} else {
throw re;
}
} finally {
this.exitRule();
}
return localctx;
};
function LabelContext(parser, parent, invokingState) {
if(parent===undefined) {
parent = null;
}
if(invokingState===undefined || invokingState===null) {
invokingState = -1;
}
antlr4.ParserRuleContext.call(this, parent, invokingState);
this.parser = parser;
this.ruleIndex = LuaParser.RULE_label;
return this;
}
LabelContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LabelContext.prototype.constructor = LabelContext;
LabelContext.prototype.NAME = function() {
return this.getToken(LuaParser.NAME, 0);
};
LabelContext.prototype.enterRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.enterLabel(this);
}
};
LabelContext.prototype.exitRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.exitLabel(this);
}
};
LuaParser.LabelContext = LabelContext;
LuaParser.prototype.label = function() {
var localctx = new LabelContext(this, this._ctx, this.state);
this.enterRule(localctx, 8, LuaParser.RULE_label);
try {
this.enterOuterAlt(localctx, 1);
this.state = 172;
this.match(LuaParser.T__19);
this.state = 173;
this.match(LuaParser.NAME);
this.state = 174;
this.match(LuaParser.T__19);
} catch (re) {
if(re instanceof antlr4.error.RecognitionException) {
localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
} else {
throw re;
}
} finally {
this.exitRule();
}
return localctx;
};
function FuncnameContext(parser, parent, invokingState) {
if(parent===undefined) {
parent = null;
}
if(invokingState===undefined || invokingState===null) {
invokingState = -1;
}
antlr4.ParserRuleContext.call(this, parent, invokingState);
this.parser = parser;
this.ruleIndex = LuaParser.RULE_funcname;
return this;
}
FuncnameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FuncnameContext.prototype.constructor = FuncnameContext;
FuncnameContext.prototype.NAME = function(i) {
if(i===undefined) {
i = null;
}
if(i===null) {
return this.getTokens(LuaParser.NAME);
} else {
return this.getToken(LuaParser.NAME, i);
}
};
FuncnameContext.prototype.enterRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.enterFuncname(this);
}
};
FuncnameContext.prototype.exitRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.exitFuncname(this);
}
};
LuaParser.FuncnameContext = FuncnameContext;
LuaParser.prototype.funcname = function() {
var localctx = new FuncnameContext(this, this._ctx, this.state);
this.enterRule(localctx, 10, LuaParser.RULE_funcname);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
this.state = 176;
this.match(LuaParser.NAME);
this.state = 181;
this._errHandler.sync(this);
_la = this._input.LA(1);
while(_la===LuaParser.T__20) {
this.state = 177;
this.match(LuaParser.T__20);
this.state = 178;
this.match(LuaParser.NAME);
this.state = 183;
this._errHandler.sync(this);
_la = this._input.LA(1);
}
this.state = 186;
this._errHandler.sync(this);
_la = this._input.LA(1);
if(_la===LuaParser.T__21) {
this.state = 184;
this.match(LuaParser.T__21);
this.state = 185;
this.match(LuaParser.NAME);
}
} catch (re) {
if(re instanceof antlr4.error.RecognitionException) {
localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
} else {
throw re;
}
} finally {
this.exitRule();
}
return localctx;
};
function VarlistContext(parser, parent, invokingState) {
if(parent===undefined) {
parent = null;
}
if(invokingState===undefined || invokingState===null) {
invokingState = -1;
}
antlr4.ParserRuleContext.call(this, parent, invokingState);
this.parser = parser;
this.ruleIndex = LuaParser.RULE_varlist;
return this;
}
VarlistContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
VarlistContext.prototype.constructor = VarlistContext;
VarlistContext.prototype.var = function(i) {
if(i===undefined) {
i = null;
}
if(i===null) {
return this.getTypedRuleContexts(VarContext);
} else {
return this.getTypedRuleContext(VarContext,i);
}
};
VarlistContext.prototype.enterRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.enterVarlist(this);
}
};
VarlistContext.prototype.exitRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.exitVarlist(this);
}
};
LuaParser.VarlistContext = VarlistContext;
LuaParser.prototype.varlist = function() {
var localctx = new VarlistContext(this, this._ctx, this.state);
this.enterRule(localctx, 12, LuaParser.RULE_varlist);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
this.state = 188;
this.var();
this.state = 193;
this._errHandler.sync(this);
_la = this._input.LA(1);
while(_la===LuaParser.T__14) {
this.state = 189;
this.match(LuaParser.T__14);
this.state = 190;
this.var();
this.state = 195;
this._errHandler.sync(this);
_la = this._input.LA(1);
}
} catch (re) {
if(re instanceof antlr4.error.RecognitionException) {
localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
} else {
throw re;
}
} finally {
this.exitRule();
}
return localctx;
};
function NamelistContext(parser, parent, invokingState) {
if(parent===undefined) {
parent = null;
}
if(invokingState===undefined || invokingState===null) {
invokingState = -1;
}
antlr4.ParserRuleContext.call(this, parent, invokingState);
this.parser = parser;
this.ruleIndex = LuaParser.RULE_namelist;
return this;
}
NamelistContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
NamelistContext.prototype.constructor = NamelistContext;
NamelistContext.prototype.NAME = function(i) {
if(i===undefined) {
i = null;
}
if(i===null) {
return this.getTokens(LuaParser.NAME);
} else {
return this.getToken(LuaParser.NAME, i);
}
};
NamelistContext.prototype.enterRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.enterNamelist(this);
}
};
NamelistContext.prototype.exitRule = function(listener) {
if(listener instanceof LuaListener ) {
listener.exitNamelist(this);
}
};
LuaParser.NamelistContext = NamelistContext;
LuaParser.prototype.namelist = function() {
var localctx = new NamelistContext(this, this._ctx, this.state);
this.enterRule(localctx, 14, LuaParser.RULE_namelist);
try {
this.enterOuterAlt(localctx, 1);
this.state = 196;
this.match(LuaParser.NAME);
this.state = 201;
this._errHandler.sync(this);
var _alt = this._interp.adaptivePredict(this._input,12,this._ctx)
while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if(_alt===1) {
this.state = 197;