UNPKG

univac

Version:

Generate AST of lots of common programming languages using antlr4. JavaScript API and CLI tool.

948 lines (881 loc) 207 kB
// @ts-nocheck // Generated from ANTLRv4Parser.g4 by ANTLR 4.7.2 // jshint ignore: start var antlr4 = require('antlr4/index'); var ANTLRv4ParserListener = require('./ANTLRv4ParserListener').ANTLRv4ParserListener; var grammarFileName = "ANTLRv4Parser.g4"; var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", "\u0003?\u0286\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$\u0004", "%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004*\t*\u0004+\t+\u0004", ",\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u00041\t1\u00042\t2\u0004", "3\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u00048\t8\u00049\t9\u0004", ":\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004?\t?\u0004@\t@\u0004", "A\tA\u0003\u0002\u0007\u0002\u0084\n\u0002\f\u0002\u000e\u0002\u0087", "\u000b\u0002\u0003\u0002\u0003\u0002\u0007\u0002\u008b\n\u0002\f\u0002", "\u000e\u0002\u008e\u000b\u0002\u0003\u0002\u0003\u0002\u0007\u0002\u0092", "\n\u0002\f\u0002\u000e\u0002\u0095\u000b\u0002\u0003\u0002\u0003\u0002", "\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0004\u0003\u0004", "\u0003\u0004\u0003\u0004\u0003\u0004\u0005\u0004\u00a2\n\u0004\u0003", "\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u00a9", "\n\u0005\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006", "\u0007\u0006\u00b0\n\u0006\f\u0006\u000e\u0006\u00b3\u000b\u0006\u0003", "\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003", "\b\u0003\b\u0003\b\u0007\b\u00be\n\b\f\b\u000e\b\u00c1\u000b\b\u0003", "\b\u0003\b\u0003\b\u0005\b\u00c6\n\b\u0003\t\u0003\t\u0003\t\u0003\t", "\u0007\t\u00cc\n\t\f\t\u000e\t\u00cf\u000b\t\u0003\t\u0003\t\u0003\n", "\u0003\n\u0003\n\u0003\n\u0003\n\u0005\n\u00d8\n\n\u0003\u000b\u0003", "\u000b\u0003\u000b\u0005\u000b\u00dd\n\u000b\u0003\u000b\u0003\u000b", "\u0003\f\u0003\f\u0003\f\u0005\f\u00e4\n\f\u0003\f\u0003\f\u0003\r\u0003", "\r\u0003\r\u0007\r\u00eb\n\r\f\r\u000e\r\u00ee\u000b\r\u0003\r\u0005", "\r\u00f1\n\r\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0005\u000e", "\u00f7\n\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000f\u0003", "\u000f\u0003\u000f\u0005\u000f\u00ff\n\u000f\u0003\u0010\u0003\u0010", "\u0007\u0010\u0103\n\u0010\f\u0010\u000e\u0010\u0106\u000b\u0010\u0003", "\u0010\u0003\u0010\u0003\u0011\u0003\u0011\u0007\u0011\u010c\n\u0011", "\f\u0011\u000e\u0011\u010f\u000b\u0011\u0003\u0011\u0003\u0011\u0003", "\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0007\u0012\u0117\n\u0012", "\f\u0012\u000e\u0012\u011a\u000b\u0012\u0003\u0013\u0007\u0013\u011d", "\n\u0013\f\u0013\u000e\u0013\u0120\u000b\u0013\u0003\u0014\u0003\u0014", "\u0005\u0014\u0124\n\u0014\u0003\u0015\u0007\u0015\u0127\n\u0015\f\u0015", "\u000e\u0015\u012a\u000b\u0015\u0003\u0015\u0005\u0015\u012d\n\u0015", "\u0003\u0015\u0003\u0015\u0005\u0015\u0131\n\u0015\u0003\u0015\u0005", "\u0015\u0134\n\u0015\u0003\u0015\u0005\u0015\u0137\n\u0015\u0003\u0015", "\u0005\u0015\u013a\n\u0015\u0003\u0015\u0007\u0015\u013d\n\u0015\f\u0015", "\u000e\u0015\u0140\u000b\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003", "\u0015\u0003\u0015\u0003\u0016\u0007\u0016\u0148\n\u0016\f\u0016\u000e", "\u0016\u014b\u000b\u0016\u0003\u0016\u0005\u0016\u014e\n\u0016\u0003", "\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0018\u0003\u0018\u0003", "\u0018\u0003\u0019\u0003\u0019\u0005\u0019\u0159\n\u0019\u0003\u001a", "\u0003\u001a\u0003\u001a\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b", "\u0007\u001b\u0162\n\u001b\f\u001b\u000e\u001b\u0165\u000b\u001b\u0003", "\u001c\u0003\u001c\u0003\u001c\u0003\u001d\u0003\u001d\u0003\u001d\u0003", "\u001d\u0003\u001e\u0006\u001e\u016f\n\u001e\r\u001e\u000e\u001e\u0170", "\u0003\u001f\u0003\u001f\u0003 \u0003 \u0003!\u0003!\u0003!\u0007!\u017a", "\n!\f!\u000e!\u017d\u000b!\u0003\"\u0003\"\u0003\"\u0005\"\u0182\n\"", "\u0003#\u0007#\u0185\n#\f#\u000e#\u0188\u000b#\u0003#\u0005#\u018b\n", "#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003$\u0003$\u0003%\u0003%\u0003", "%\u0007%\u0197\n%\f%\u000e%\u019a\u000b%\u0003&\u0003&\u0005&\u019e", "\n&\u0003&\u0005&\u01a1\n&\u0003\'\u0006\'\u01a4\n\'\r\'\u000e\'\u01a5", "\u0003(\u0003(\u0005(\u01aa\n(\u0003(\u0003(\u0005(\u01ae\n(\u0003(", "\u0003(\u0005(\u01b2\n(\u0003(\u0003(\u0005(\u01b6\n(\u0005(\u01b8\n", "(\u0003)\u0003)\u0003)\u0003)\u0005)\u01be\n)\u0003*\u0003*\u0003*\u0003", "*\u0003+\u0003+\u0003+\u0003+\u0007+\u01c8\n+\f+\u000e+\u01cb\u000b", "+\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0005,\u01d3\n,\u0003-\u0003", "-\u0005-\u01d7\n-\u0003.\u0003.\u0005.\u01db\n.\u0003/\u0003/\u0003", "/\u0007/\u01e0\n/\f/\u000e/\u01e3\u000b/\u00030\u00050\u01e6\n0\u0003", "0\u00060\u01e9\n0\r0\u000e0\u01ea\u00030\u00050\u01ee\n0\u00031\u0003", "1\u00031\u00051\u01f3\n1\u00031\u00031\u00031\u00051\u01f8\n1\u0003", "1\u00031\u00031\u00051\u01fd\n1\u00051\u01ff\n1\u00032\u00032\u0003", "2\u00032\u00052\u0205\n2\u00033\u00033\u00053\u0209\n3\u00034\u0003", "4\u00035\u00035\u00055\u020f\n5\u00035\u00035\u00055\u0213\n5\u0003", "5\u00035\u00055\u0217\n5\u00055\u0219\n5\u00036\u00036\u00036\u0003", "6\u00036\u00036\u00056\u0221\n6\u00056\u0223\n6\u00037\u00037\u0003", "7\u00037\u00037\u00057\u022a\n7\u00057\u022c\n7\u00038\u00038\u0003", "8\u00038\u00058\u0232\n8\u00039\u00039\u00039\u00039\u00079\u0238\n", "9\f9\u000e9\u023b\u000b9\u00039\u00039\u0003:\u0003:\u0005:\u0241\n", ":\u0003:\u0003:\u0005:\u0245\n:\u0003:\u0003:\u0005:\u0249\n:\u0003", ";\u0003;\u0005;\u024d\n;\u0003;\u0007;\u0250\n;\f;\u000e;\u0253\u000b", ";\u0003;\u0005;\u0256\n;\u0003;\u0003;\u0003;\u0003<\u0003<\u0005<\u025d", "\n<\u0003<\u0005<\u0260\n<\u0003=\u0003=\u0003=\u0003=\u0003>\u0003", ">\u0005>\u0268\n>\u0003>\u0003>\u0005>\u026c\n>\u0005>\u026e\n>\u0003", "?\u0003?\u0003?\u0003?\u0007?\u0274\n?\f?\u000e?\u0277\u000b?\u0003", "?\u0003?\u0003@\u0003@\u0003@\u0003@\u0003@\u0005@\u0280\n@\u0005@\u0282", "\n@\u0003A\u0003A\u0003A\u0002\u0002B\u0002\u0004\u0006\b\n\f\u000e", "\u0010\u0012\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*,.02468:<>@B", "DFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0002\u0005\u0004\u0002\u0012", "\u0012\u0016\u0018\u0004\u0002**--\u0003\u0002\u0003\u0004\u0002\u02ad", "\u0002\u0085\u0003\u0002\u0002\u0002\u0004\u0098\u0003\u0002\u0002\u0002", "\u0006\u00a1\u0003\u0002\u0002\u0002\b\u00a8\u0003\u0002\u0002\u0002", "\n\u00aa\u0003\u0002\u0002\u0002\f\u00b6\u0003\u0002\u0002\u0002\u000e", "\u00c5\u0003\u0002\u0002\u0002\u0010\u00c7\u0003\u0002\u0002\u0002\u0012", "\u00d7\u0003\u0002\u0002\u0002\u0014\u00d9\u0003\u0002\u0002\u0002\u0016", "\u00e0\u0003\u0002\u0002\u0002\u0018\u00e7\u0003\u0002\u0002\u0002\u001a", "\u00f2\u0003\u0002\u0002\u0002\u001c\u00fe\u0003\u0002\u0002\u0002\u001e", "\u0100\u0003\u0002\u0002\u0002 \u0109\u0003\u0002\u0002\u0002\"\u0112", "\u0003\u0002\u0002\u0002$\u011e\u0003\u0002\u0002\u0002&\u0123\u0003", "\u0002\u0002\u0002(\u0128\u0003\u0002\u0002\u0002*\u0149\u0003\u0002", "\u0002\u0002,\u014f\u0003\u0002\u0002\u0002.\u0153\u0003\u0002\u0002", "\u00020\u0158\u0003\u0002\u0002\u00022\u015a\u0003\u0002\u0002\u0002", "4\u015d\u0003\u0002\u0002\u00026\u0166\u0003\u0002\u0002\u00028\u0169", "\u0003\u0002\u0002\u0002:\u016e\u0003\u0002\u0002\u0002<\u0172\u0003", "\u0002\u0002\u0002>\u0174\u0003\u0002\u0002\u0002@\u0176\u0003\u0002", "\u0002\u0002B\u017e\u0003\u0002\u0002\u0002D\u0186\u0003\u0002\u0002", "\u0002F\u0191\u0003\u0002\u0002\u0002H\u0193\u0003\u0002\u0002\u0002", "J\u01a0\u0003\u0002\u0002\u0002L\u01a3\u0003\u0002\u0002\u0002N\u01b7", "\u0003\u0002\u0002\u0002P\u01b9\u0003\u0002\u0002\u0002R\u01bf\u0003", "\u0002\u0002\u0002T\u01c3\u0003\u0002\u0002\u0002V\u01d2\u0003\u0002", "\u0002\u0002X\u01d6\u0003\u0002\u0002\u0002Z\u01da\u0003\u0002\u0002", "\u0002\\\u01dc\u0003\u0002\u0002\u0002^\u01ed\u0003\u0002\u0002\u0002", "`\u01fe\u0003\u0002\u0002\u0002b\u0200\u0003\u0002\u0002\u0002d\u0206", "\u0003\u0002\u0002\u0002f\u020a\u0003\u0002\u0002\u0002h\u0218\u0003", "\u0002\u0002\u0002j\u0222\u0003\u0002\u0002\u0002l\u022b\u0003\u0002", "\u0002\u0002n\u0231\u0003\u0002\u0002\u0002p\u0233\u0003\u0002\u0002", "\u0002r\u0248\u0003\u0002\u0002\u0002t\u024a\u0003\u0002\u0002\u0002", "v\u025a\u0003\u0002\u0002\u0002x\u0261\u0003\u0002\u0002\u0002z\u026d", "\u0003\u0002\u0002\u0002|\u026f\u0003\u0002\u0002\u0002~\u0281\u0003", "\u0002\u0002\u0002\u0080\u0283\u0003\u0002\u0002\u0002\u0082\u0084\u0007", "\u0006\u0002\u0002\u0083\u0082\u0003\u0002\u0002\u0002\u0084\u0087\u0003", "\u0002\u0002\u0002\u0085\u0083\u0003\u0002\u0002\u0002\u0085\u0086\u0003", "\u0002\u0002\u0002\u0086\u0088\u0003\u0002\u0002\u0002\u0087\u0085\u0003", "\u0002\u0002\u0002\u0088\u008c\u0005\u0004\u0003\u0002\u0089\u008b\u0005", "\b\u0005\u0002\u008a\u0089\u0003\u0002\u0002\u0002\u008b\u008e\u0003", "\u0002\u0002\u0002\u008c\u008a\u0003\u0002\u0002\u0002\u008c\u008d\u0003", "\u0002\u0002\u0002\u008d\u008f\u0003\u0002\u0002\u0002\u008e\u008c\u0003", "\u0002\u0002\u0002\u008f\u0093\u0005$\u0013\u0002\u0090\u0092\u0005", "\"\u0012\u0002\u0091\u0090\u0003\u0002\u0002\u0002\u0092\u0095\u0003", "\u0002\u0002\u0002\u0093\u0091\u0003\u0002\u0002\u0002\u0093\u0094\u0003", "\u0002\u0002\u0002\u0094\u0096\u0003\u0002\u0002\u0002\u0095\u0093\u0003", "\u0002\u0002\u0002\u0096\u0097\u0007\u0002\u0002\u0003\u0097\u0003\u0003", "\u0002\u0002\u0002\u0098\u0099\u0005\u0006\u0004\u0002\u0099\u009a\u0005", "\u0080A\u0002\u009a\u009b\u0007\"\u0002\u0002\u009b\u0005\u0003\u0002", "\u0002\u0002\u009c\u009d\u0007\u0013\u0002\u0002\u009d\u00a2\u0007\u0015", "\u0002\u0002\u009e\u009f\u0007\u0014\u0002\u0002\u009f\u00a2\u0007\u0015", "\u0002\u0002\u00a0\u00a2\u0007\u0015\u0002\u0002\u00a1\u009c\u0003\u0002", "\u0002\u0002\u00a1\u009e\u0003\u0002\u0002\u0002\u00a1\u00a0\u0003\u0002", "\u0002\u0002\u00a2\u0007\u0003\u0002\u0002\u0002\u00a3\u00a9\u0005\n", "\u0006\u0002\u00a4\u00a9\u0005\u0010\t\u0002\u00a5\u00a9\u0005\u0014", "\u000b\u0002\u00a6\u00a9\u0005\u0016\f\u0002\u00a7\u00a9\u0005\u001a", "\u000e\u0002\u00a8\u00a3\u0003\u0002\u0002\u0002\u00a8\u00a4\u0003\u0002", "\u0002\u0002\u00a8\u00a5\u0003\u0002\u0002\u0002\u00a8\u00a6\u0003\u0002", "\u0002\u0002\u00a8\u00a7\u0003\u0002\u0002\u0002\u00a9\t\u0003\u0002", "\u0002\u0002\u00aa\u00ab\u0007\u000e\u0002\u0002\u00ab\u00b1\u0007%", "\u0002\u0002\u00ac\u00ad\u0005\f\u0007\u0002\u00ad\u00ae\u0007\"\u0002", "\u0002\u00ae\u00b0\u0003\u0002\u0002\u0002\u00af\u00ac\u0003\u0002\u0002", "\u0002\u00b0\u00b3\u0003\u0002\u0002\u0002\u00b1\u00af\u0003\u0002\u0002", "\u0002\u00b1\u00b2\u0003\u0002\u0002\u0002\u00b2\u00b4\u0003\u0002\u0002", "\u0002\u00b3\u00b1\u0003\u0002\u0002\u0002\u00b4\u00b5\u0007&\u0002", "\u0002\u00b5\u000b\u0003\u0002\u0002\u0002\u00b6\u00b7\u0005\u0080A", "\u0002\u00b7\u00b8\u0007*\u0002\u0002\u00b8\u00b9\u0005\u000e\b\u0002", "\u00b9\r\u0003\u0002\u0002\u0002\u00ba\u00bf\u0005\u0080A\u0002\u00bb", "\u00bc\u00072\u0002\u0002\u00bc\u00be\u0005\u0080A\u0002\u00bd\u00bb", "\u0003\u0002\u0002\u0002\u00be\u00c1\u0003\u0002\u0002\u0002\u00bf\u00bd", "\u0003\u0002\u0002\u0002\u00bf\u00c0\u0003\u0002\u0002\u0002\u00c0\u00c6", "\u0003\u0002\u0002\u0002\u00c1\u00bf\u0003\u0002\u0002\u0002\u00c2\u00c6", "\u0007\n\u0002\u0002\u00c3\u00c6\u0005\u001e\u0010\u0002\u00c4\u00c6", "\u0007\t\u0002\u0002\u00c5\u00ba\u0003\u0002\u0002\u0002\u00c5\u00c2", "\u0003\u0002\u0002\u0002\u00c5\u00c3\u0003\u0002\u0002\u0002\u00c5\u00c4", "\u0003\u0002\u0002\u0002\u00c6\u000f\u0003\u0002\u0002\u0002\u00c7\u00c8", "\u0007\u0011\u0002\u0002\u00c8\u00cd\u0005\u0012\n\u0002\u00c9\u00ca", "\u0007!\u0002\u0002\u00ca\u00cc\u0005\u0012\n\u0002\u00cb\u00c9\u0003", "\u0002\u0002\u0002\u00cc\u00cf\u0003\u0002\u0002\u0002\u00cd\u00cb\u0003", "\u0002\u0002\u0002\u00cd\u00ce\u0003\u0002\u0002\u0002\u00ce\u00d0\u0003", "\u0002\u0002\u0002\u00cf\u00cd\u0003\u0002\u0002\u0002\u00d0\u00d1\u0007", "\"\u0002\u0002\u00d1\u0011\u0003\u0002\u0002\u0002\u00d2\u00d3\u0005", "\u0080A\u0002\u00d3\u00d4\u0007*\u0002\u0002\u00d4\u00d5\u0005\u0080", "A\u0002\u00d5\u00d8\u0003\u0002\u0002\u0002\u00d6\u00d8\u0005\u0080", "A\u0002\u00d7\u00d2\u0003\u0002\u0002\u0002\u00d7\u00d6\u0003\u0002", "\u0002\u0002\u00d8\u0013\u0003\u0002\u0002\u0002\u00d9\u00da\u0007\u000f", "\u0002\u0002\u00da\u00dc\u0007%\u0002\u0002\u00db\u00dd\u0005\u0018", "\r\u0002\u00dc\u00db\u0003\u0002\u0002\u0002\u00dc\u00dd\u0003\u0002", "\u0002\u0002\u00dd\u00de\u0003\u0002\u0002\u0002\u00de\u00df\u0007&", "\u0002\u0002\u00df\u0015\u0003\u0002\u0002\u0002\u00e0\u00e1\u0007\u0010", "\u0002\u0002\u00e1\u00e3\u0007%\u0002\u0002\u00e2\u00e4\u0005\u0018", "\r\u0002\u00e3\u00e2\u0003\u0002\u0002\u0002\u00e3\u00e4\u0003\u0002", "\u0002\u0002\u00e4\u00e5\u0003\u0002\u0002\u0002\u00e5\u00e6\u0007&", "\u0002\u0002\u00e6\u0017\u0003\u0002\u0002\u0002\u00e7\u00ec\u0005\u0080", "A\u0002\u00e8\u00e9\u0007!\u0002\u0002\u00e9\u00eb\u0005\u0080A\u0002", "\u00ea\u00e8\u0003\u0002\u0002\u0002\u00eb\u00ee\u0003\u0002\u0002\u0002", "\u00ec\u00ea\u0003\u0002\u0002\u0002\u00ec\u00ed\u0003\u0002\u0002\u0002", "\u00ed\u00f0\u0003\u0002\u0002\u0002\u00ee\u00ec\u0003\u0002\u0002\u0002", "\u00ef\u00f1\u0007!\u0002\u0002\u00f0\u00ef\u0003\u0002\u0002\u0002", "\u00f0\u00f1\u0003\u0002\u0002\u0002\u00f1\u0019\u0003\u0002\u0002\u0002", "\u00f2\u00f6\u00073\u0002\u0002\u00f3\u00f4\u0005\u001c\u000f\u0002", "\u00f4\u00f5\u0007 \u0002\u0002\u00f5\u00f7\u0003\u0002\u0002\u0002", "\u00f6\u00f3\u0003\u0002\u0002\u0002\u00f6\u00f7\u0003\u0002\u0002\u0002", "\u00f7\u00f8\u0003\u0002\u0002\u0002\u00f8\u00f9\u0005\u0080A\u0002", "\u00f9\u00fa\u0005\u001e\u0010\u0002\u00fa\u001b\u0003\u0002\u0002\u0002", "\u00fb\u00ff\u0005\u0080A\u0002\u00fc\u00ff\u0007\u0013\u0002\u0002", "\u00fd\u00ff\u0007\u0014\u0002\u0002\u00fe\u00fb\u0003\u0002\u0002\u0002", "\u00fe\u00fc\u0003\u0002\u0002\u0002\u00fe\u00fd\u0003\u0002\u0002\u0002", "\u00ff\u001d\u0003\u0002\u0002\u0002\u0100\u0104\u0007\r\u0002\u0002", "\u0101\u0103\u0007>\u0002\u0002\u0102\u0101\u0003\u0002\u0002\u0002", "\u0103\u0106\u0003\u0002\u0002\u0002\u0104\u0102\u0003\u0002\u0002\u0002", "\u0104\u0105\u0003\u0002\u0002\u0002\u0105\u0107\u0003\u0002\u0002\u0002", "\u0106\u0104\u0003\u0002\u0002\u0002\u0107\u0108\u0007<\u0002\u0002", "\u0108\u001f\u0003\u0002\u0002\u0002\u0109\u010d\u0007\f\u0002\u0002", "\u010a\u010c\u0007;\u0002\u0002\u010b\u010a\u0003\u0002\u0002\u0002", "\u010c\u010f\u0003\u0002\u0002\u0002\u010d\u010b\u0003\u0002\u0002\u0002", "\u010d\u010e\u0003\u0002\u0002\u0002\u010e\u0110\u0003\u0002\u0002\u0002", "\u010f\u010d\u0003\u0002\u0002\u0002\u0110\u0111\u00079\u0002\u0002", "\u0111!\u0003\u0002\u0002\u0002\u0112\u0113\u0007\u001e\u0002\u0002", "\u0113\u0114\u0005\u0080A\u0002\u0114\u0118\u0007\"\u0002\u0002\u0115", "\u0117\u0005D#\u0002\u0116\u0115\u0003\u0002\u0002\u0002\u0117\u011a", "\u0003\u0002\u0002\u0002\u0118\u0116\u0003\u0002\u0002\u0002\u0118\u0119", "\u0003\u0002\u0002\u0002\u0119#\u0003\u0002\u0002\u0002\u011a\u0118", "\u0003\u0002\u0002\u0002\u011b\u011d\u0005&\u0014\u0002\u011c\u011b", "\u0003\u0002\u0002\u0002\u011d\u0120\u0003\u0002\u0002\u0002\u011e\u011c", "\u0003\u0002\u0002\u0002\u011e\u011f\u0003\u0002\u0002\u0002\u011f%", "\u0003\u0002\u0002\u0002\u0120\u011e\u0003\u0002\u0002\u0002\u0121\u0124", "\u0005(\u0015\u0002\u0122\u0124\u0005D#\u0002\u0123\u0121\u0003\u0002", "\u0002\u0002\u0123\u0122\u0003\u0002\u0002\u0002\u0124\'\u0003\u0002", "\u0002\u0002\u0125\u0127\u0007\u0006\u0002\u0002\u0126\u0125\u0003\u0002", "\u0002\u0002\u0127\u012a\u0003\u0002\u0002\u0002\u0128\u0126\u0003\u0002", "\u0002\u0002\u0128\u0129\u0003\u0002\u0002\u0002\u0129\u012c\u0003\u0002", "\u0002\u0002\u012a\u0128\u0003\u0002\u0002\u0002\u012b\u012d\u0005:", "\u001e\u0002\u012c\u012b\u0003\u0002\u0002\u0002\u012c\u012d\u0003\u0002", "\u0002\u0002\u012d\u012e\u0003\u0002\u0002\u0002\u012e\u0130\u0007\u0004", "\u0002\u0002\u012f\u0131\u0005 \u0011\u0002\u0130\u012f\u0003\u0002", "\u0002\u0002\u0130\u0131\u0003\u0002\u0002\u0002\u0131\u0133\u0003\u0002", "\u0002\u0002\u0132\u0134\u00052\u001a\u0002\u0133\u0132\u0003\u0002", "\u0002\u0002\u0133\u0134\u0003\u0002\u0002\u0002\u0134\u0136\u0003\u0002", "\u0002\u0002\u0135\u0137\u00054\u001b\u0002\u0136\u0135\u0003\u0002", "\u0002\u0002\u0136\u0137\u0003\u0002\u0002\u0002\u0137\u0139\u0003\u0002", "\u0002\u0002\u0138\u013a\u00056\u001c\u0002\u0139\u0138\u0003\u0002", "\u0002\u0002\u0139\u013a\u0003\u0002\u0002\u0002\u013a\u013e\u0003\u0002", "\u0002\u0002\u013b\u013d\u00050\u0019\u0002\u013c\u013b\u0003\u0002", "\u0002\u0002\u013d\u0140\u0003\u0002\u0002\u0002\u013e\u013c\u0003\u0002", "\u0002\u0002\u013e\u013f\u0003\u0002\u0002\u0002\u013f\u0141\u0003\u0002", "\u0002\u0002\u0140\u013e\u0003\u0002\u0002\u0002\u0141\u0142\u0007\u001f", "\u0002\u0002\u0142\u0143\u0005> \u0002\u0143\u0144\u0007\"\u0002\u0002", "\u0144\u0145\u0005*\u0016\u0002\u0145)\u0003\u0002\u0002\u0002\u0146", "\u0148\u0005,\u0017\u0002\u0147\u0146\u0003\u0002\u0002\u0002\u0148", "\u014b\u0003\u0002\u0002\u0002\u0149\u0147\u0003\u0002\u0002\u0002\u0149", "\u014a\u0003\u0002\u0002\u0002\u014a\u014d\u0003\u0002\u0002\u0002\u014b", "\u0149\u0003\u0002\u0002\u0002\u014c\u014e\u0005.\u0018\u0002\u014d", "\u014c\u0003\u0002\u0002\u0002\u014d\u014e\u0003\u0002\u0002\u0002\u014e", "+\u0003\u0002\u0002\u0002\u014f\u0150\u0007\u001c\u0002\u0002\u0150", "\u0151\u0005 \u0011\u0002\u0151\u0152\u0005\u001e\u0010\u0002\u0152", "-\u0003\u0002\u0002\u0002\u0153\u0154\u0007\u001d\u0002\u0002\u0154", "\u0155\u0005\u001e\u0010\u0002\u0155/\u0003\u0002\u0002\u0002\u0156", "\u0159\u0005\n\u0006\u0002\u0157\u0159\u00058\u001d\u0002\u0158\u0156", "\u0003\u0002\u0002\u0002\u0158\u0157\u0003\u0002\u0002\u0002\u01591", "\u0003\u0002\u0002\u0002\u015a\u015b\u0007\u0019\u0002\u0002\u015b\u015c", "\u0005 \u0011\u0002\u015c3\u0003\u0002\u0002\u0002\u015d\u015e\u0007", "\u001b\u0002\u0002\u015e\u0163\u0005\u0080A\u0002\u015f\u0160\u0007", "!\u0002\u0002\u0160\u0162\u0005\u0080A\u0002\u0161\u015f\u0003\u0002", "\u0002\u0002\u0162\u0165\u0003\u0002\u0002\u0002\u0163\u0161\u0003\u0002", "\u0002\u0002\u0163\u0164\u0003\u0002\u0002\u0002\u01645\u0003\u0002", "\u0002\u0002\u0165\u0163\u0003\u0002\u0002\u0002\u0166\u0167\u0007\u001a", "\u0002\u0002\u0167\u0168\u0005 \u0011\u0002\u01687\u0003\u0002\u0002", "\u0002\u0169\u016a\u00073\u0002\u0002\u016a\u016b\u0005\u0080A\u0002", "\u016b\u016c\u0005\u001e\u0010\u0002\u016c9\u0003\u0002\u0002\u0002", "\u016d\u016f\u0005<\u001f\u0002\u016e\u016d\u0003\u0002\u0002\u0002", "\u016f\u0170\u0003\u0002\u0002\u0002\u0170\u016e\u0003\u0002\u0002\u0002", "\u0170\u0171\u0003\u0002\u0002\u0002\u0171;\u0003\u0002\u0002\u0002", "\u0172\u0173\t\u0002\u0002\u0002\u0173=\u0003\u0002\u0002\u0002\u0174", "\u0175\u0005@!\u0002\u0175?\u0003\u0002\u0002\u0002\u0176\u017b\u0005", "B\"\u0002\u0177\u0178\u0007/\u0002\u0002\u0178\u017a\u0005B\"\u0002", "\u0179\u0177\u0003\u0002\u0002\u0002\u017a\u017d\u0003\u0002\u0002\u0002", "\u017b\u0179\u0003\u0002\u0002\u0002\u017b\u017c\u0003\u0002\u0002\u0002", "\u017cA\u0003\u0002\u0002\u0002\u017d\u017b\u0003\u0002\u0002\u0002", "\u017e\u0181\u0005^0\u0002\u017f\u0180\u00074\u0002\u0002\u0180\u0182", "\u0005\u0080A\u0002\u0181\u017f\u0003\u0002\u0002\u0002\u0181\u0182", "\u0003\u0002\u0002\u0002\u0182C\u0003\u0002\u0002\u0002\u0183\u0185", "\u0007\u0006\u0002\u0002\u0184\u0183\u0003\u0002\u0002\u0002\u0185\u0188", "\u0003\u0002\u0002\u0002\u0186\u0184\u0003\u0002\u0002\u0002\u0186\u0187", "\u0003\u0002\u0002\u0002\u0187\u018a\u0003\u0002\u0002\u0002\u0188\u0186", "\u0003\u0002\u0002\u0002\u0189\u018b\u0007\u0012\u0002\u0002\u018a\u0189", "\u0003\u0002\u0002\u0002\u018a\u018b\u0003\u0002\u0002\u0002\u018b\u018c", "\u0003\u0002\u0002\u0002\u018c\u018d\u0007\u0003\u0002\u0002\u018d\u018e", "\u0007\u001f\u0002\u0002\u018e\u018f\u0005F$\u0002\u018f\u0190\u0007", "\"\u0002\u0002\u0190E\u0003\u0002\u0002\u0002\u0191\u0192\u0005H%\u0002", "\u0192G\u0003\u0002\u0002\u0002\u0193\u0198\u0005J&\u0002\u0194\u0195", "\u0007/\u0002\u0002\u0195\u0197\u0005J&\u0002\u0196\u0194\u0003\u0002", "\u0002\u0002\u0197\u019a\u0003\u0002\u0002\u0002\u0198\u0196\u0003\u0002", "\u0002\u0002\u0198\u0199\u0003\u0002\u0002\u0002\u0199I\u0003\u0002", "\u0002\u0002\u019a\u0198\u0003\u0002\u0002\u0002\u019b\u019d\u0005L", "\'\u0002\u019c\u019e\u0005T+\u0002\u019d\u019c\u0003\u0002\u0002\u0002", "\u019d\u019e\u0003\u0002\u0002\u0002\u019e\u01a1\u0003\u0002\u0002\u0002", "\u019f\u01a1\u0003\u0002\u0002\u0002\u01a0\u019b\u0003\u0002\u0002\u0002", "\u01a0\u019f\u0003\u0002\u0002\u0002\u01a1K\u0003\u0002\u0002\u0002", "\u01a2\u01a4\u0005N(\u0002\u01a3\u01a2\u0003\u0002\u0002\u0002\u01a4", "\u01a5\u0003\u0002\u0002\u0002\u01a5\u01a3\u0003\u0002\u0002\u0002\u01a5", "\u01a6\u0003\u0002\u0002\u0002\u01a6M\u0003\u0002\u0002\u0002\u01a7", "\u01a9\u0005P)\u0002\u01a8\u01aa\u0005h5\u0002\u01a9\u01a8\u0003\u0002", "\u0002\u0002\u01a9\u01aa\u0003\u0002\u0002\u0002\u01aa\u01b8\u0003\u0002", "\u0002\u0002\u01ab\u01ad\u0005j6\u0002\u01ac\u01ae\u0005h5\u0002\u01ad", "\u01ac\u0003\u0002\u0002\u0002\u01ad\u01ae\u0003\u0002\u0002\u0002\u01ae", "\u01b8\u0003\u0002\u0002\u0002\u01af\u01b1\u0005R*\u0002\u01b0\u01b2", "\u0005h5\u0002\u01b1\u01b0\u0003\u0002\u0002\u0002\u01b1\u01b2\u0003", "\u0002\u0002\u0002\u01b2\u01b8\u0003\u0002\u0002\u0002\u01b3\u01b5\u0005", "\u001e\u0010\u0002\u01b4\u01b6\u0007+\u0002\u0002\u01b5\u01b4\u0003", "\u0002\u0002\u0002\u01b5\u01b6\u0003\u0002\u0002\u0002\u01b6\u01b8\u0003", "\u0002\u0002\u0002\u01b7\u01a7\u0003\u0002\u0002\u0002\u01b7\u01ab\u0003", "\u0002\u0002\u0002\u01b7\u01af\u0003\u0002\u0002\u0002\u01b7\u01b3\u0003", "\u0002\u0002\u0002\u01b8O\u0003\u0002\u0002\u0002\u01b9\u01ba\u0005", "\u0080A\u0002\u01ba\u01bd\t\u0003\u0002\u0002\u01bb\u01be\u0005j6\u0002", "\u01bc\u01be\u0005R*\u0002\u01bd\u01bb\u0003\u0002\u0002\u0002\u01bd", "\u01bc\u0003\u0002\u0002\u0002\u01beQ\u0003\u0002\u0002\u0002\u01bf", "\u01c0\u0007#\u0002\u0002\u01c0\u01c1\u0005H%\u0002\u01c1\u01c2\u0007", "$\u0002\u0002\u01c2S\u0003\u0002\u0002\u0002\u01c3\u01c4\u0007\'\u0002", "\u0002\u01c4\u01c9\u0005V,\u0002\u01c5\u01c6\u0007!\u0002\u0002\u01c6", "\u01c8\u0005V,\u0002\u01c7\u01c5\u0003\u0002\u0002\u0002\u01c8\u01cb", "\u0003\u0002\u0002\u0002\u01c9\u01c7\u0003\u0002\u0002\u0002\u01c9\u01ca", "\u0003\u0002\u0002\u0002\u01caU\u0003\u0002\u0002\u0002\u01cb\u01c9", "\u0003\u0002\u0002\u0002\u01cc\u01cd\u0005X-\u0002\u01cd\u01ce\u0007", "#\u0002\u0002\u01ce\u01cf\u0005Z.\u0002\u01cf\u01d0\u0007$\u0002\u0002", "\u01d0\u01d3\u0003\u0002\u0002\u0002\u01d1\u01d3\u0005X-\u0002\u01d2", "\u01cc\u0003\u0002\u0002\u0002\u01d2\u01d1\u0003\u0002\u0002\u0002\u01d3", "W\u0003\u0002\u0002\u0002\u01d4\u01d7\u0005\u0080A\u0002\u01d5\u01d7", "\u0007\u001e\u0002\u0002\u01d6\u01d4\u0003\u0002\u0002\u0002\u01d6\u01d5", "\u0003\u0002\u0002\u0002\u01d7Y\u0003\u0002\u0002\u0002\u01d8\u01db", "\u0005\u0080A\u0002\u01d9\u01db\u0007\t\u0002\u0002\u01da\u01d8\u0003", "\u0002\u0002\u0002\u01da\u01d9\u0003\u0002\u0002\u0002\u01db[\u0003", "\u0002\u0002\u0002\u01dc\u01e1\u0005^0\u0002\u01dd\u01de\u0007/\u0002", "\u0002\u01de\u01e0\u0005^0\u0002\u01df\u01dd\u0003\u0002\u0002\u0002", "\u01e0\u01e3\u0003\u0002\u0002\u0002\u01e1\u01df\u0003\u0002\u0002\u0002", "\u01e1\u01e2\u0003\u0002\u0002\u0002\u01e2]\u0003\u0002\u0002\u0002", "\u01e3\u01e1\u0003\u0002\u0002\u0002\u01e4\u01e6\u0005|?\u0002\u01e5", "\u01e4\u0003\u0002\u0002\u0002\u01e5\u01e6\u0003\u0002\u0002\u0002\u01e6", "\u01e8\u0003\u0002\u0002\u0002\u01e7\u01e9\u0005`1\u0002\u01e8\u01e7", "\u0003\u0002\u0002\u0002\u01e9\u01ea\u0003\u0002\u0002\u0002\u01ea\u01e8", "\u0003\u0002\u0002\u0002\u01ea\u01eb\u0003\u0002\u0002\u0002\u01eb\u01ee", "\u0003\u0002\u0002\u0002\u01ec\u01ee\u0003\u0002\u0002\u0002\u01ed\u01e5", "\u0003\u0002\u0002\u0002\u01ed\u01ec\u0003\u0002\u0002\u0002\u01ee_", "\u0003\u0002\u0002\u0002\u01ef\u01f2\u0005b2\u0002\u01f0\u01f3\u0005", "h5\u0002\u01f1\u01f3\u0003\u0002\u0002\u0002\u01f2\u01f0\u0003\u0002", "\u0002\u0002\u01f2\u01f1\u0003\u0002\u0002\u0002\u01f3\u01ff\u0003\u0002", "\u0002\u0002\u01f4\u01f7\u0005l7\u0002\u01f5\u01f8\u0005h5\u0002\u01f6", "\u01f8\u0003\u0002\u0002\u0002\u01f7\u01f5\u0003\u0002\u0002\u0002\u01f7", "\u01f6\u0003\u0002\u0002\u0002\u01f8\u01ff\u0003\u0002\u0002\u0002\u01f9", "\u01ff\u0005d3\u0002\u01fa\u01fc\u0005\u001e\u0010\u0002\u01fb\u01fd", "\u0007+\u0002\u0002\u01fc\u01fb\u0003\u0002\u0002\u0002\u01fc\u01fd", "\u0003\u0002\u0002\u0002\u01fd\u01ff\u0003\u0002\u0002\u0002\u01fe\u01ef", "\u0003\u0002\u0002\u0002\u01fe\u01f4\u0003\u0002\u0002\u0002\u01fe\u01f9", "\u0003\u0002\u0002\u0002\u01fe\u01fa\u0003\u0002\u0002\u0002\u01ffa", "\u0003\u0002\u0002\u0002\u0200\u0201\u0005\u0080A\u0002\u0201\u0204", "\t\u0003\u0002\u0002\u0202\u0205\u0005l7\u0002\u0203\u0205\u0005t;\u0002", "\u0204\u0202\u0003\u0002\u0002\u0002\u0204\u0203\u0003\u0002\u0002\u0002", "\u0205c\u0003\u0002\u0002\u0002\u0206\u0208\u0005t;\u0002\u0207\u0209", "\u0005f4\u0002\u0208\u0207\u0003\u0002\u0002\u0002\u0208\u0209\u0003", "\u0002\u0002\u0002\u0209e\u0003\u0002\u0002\u0002\u020a\u020b\u0005", "h5\u0002\u020bg\u0003\u0002\u0002\u0002\u020c\u020e\u0007+\u0002\u0002", "\u020d\u020f\u0007+\u0002\u0002\u020e\u020d\u0003\u0002\u0002\u0002", "\u020e\u020f\u0003\u0002\u0002\u0002\u020f\u0219\u0003\u0002\u0002\u0002", "\u0210\u0212\u0007,\u0002\u0002\u0211\u0213\u0007+\u0002\u0002\u0212", "\u0211\u0003\u0002\u0002\u0002\u0212\u0213\u0003\u0002\u0002\u0002\u0213", "\u0219\u0003\u0002\u0002\u0002\u0214\u0216\u0007.\u0002\u0002\u0215", "\u0217\u0007+\u0002\u0002\u0216\u0215\u0003\u0002\u0002\u0002\u0216", "\u0217\u0003\u0002\u0002\u0002\u0217\u0219\u0003\u0002\u0002\u0002\u0218", "\u020c\u0003\u0002\u0002\u0002\u0218\u0210\u0003\u0002\u0002\u0002\u0218", "\u0214\u0003\u0002\u0002\u0002\u0219i\u0003\u0002\u0002\u0002\u021a", "\u0223\u0005x=\u0002\u021b\u0223\u0005z>\u0002\u021c\u0223\u0005n8\u0002", "\u021d\u0223\u0007\u0005\u0002\u0002\u021e\u0220\u00072\u0002\u0002", "\u021f\u0221\u0005|?\u0002\u0220\u021f\u0003\u0002\u0002\u0002\u0220", "\u0221\u0003\u0002\u0002\u0002\u0221\u0223\u0003\u0002\u0002\u0002\u0222", "\u021a\u0003\u0002\u0002\u0002\u0222\u021b\u0003\u0002\u0002\u0002\u0222", "\u021c\u0003\u0002\u0002\u0002\u0222\u021d\u0003\u0002\u0002\u0002\u0222", "\u021e\u0003\u0002\u0002\u0002\u0223k\u0003\u0002\u0002\u0002\u0224", "\u022c\u0005z>\u0002\u0225\u022c\u0005v<\u0002\u0226\u022c\u0005n8\u0002", "\u0227\u0229\u00072\u0002\u0002\u0228\u022a\u0005|?\u0002\u0229\u0228", "\u0003\u0002\u0002\u0002\u0229\u022a\u0003\u0002\u0002\u0002\u022a\u022c", "\u0003\u0002\u0002\u0002\u022b\u0224\u0003\u0002\u0002\u0002\u022b\u0225", "\u0003\u0002\u0002\u0002\u022b\u0226\u0003\u0002\u0002\u0002\u022b\u0227", "\u0003\u0002\u0002\u0002\u022cm\u0003\u0002\u0002\u0002\u022d\u022e", "\u00075\u0002\u0002\u022e\u0232\u0005r:\u0002\u022f\u0230\u00075\u0002", "\u0002\u0230\u0232\u0005p9\u0002\u0231\u022d\u0003\u0002\u0002\u0002", "\u0231\u022f\u0003\u0002\u0002\u0002\u0232o\u0003\u0002\u0002\u0002", "\u0233\u0234\u0007#\u0002\u0002\u0234\u0239\u0005r:\u0002\u0235\u0236", "\u0007/\u0002\u0002\u0236\u0238\u0005r:\u0002\u0237\u0235\u0003\u0002", "\u0002\u0002\u0238\u023b\u0003\u0002\u0002\u0002\u0239\u0237\u0003\u0002", "\u0002\u0002\u0239\u023a\u0003\u0002\u0002\u0002\u023a\u023c\u0003\u0002", "\u0002\u0002\u023b\u0239\u0003\u0002\u0002\u0002\u023c\u023d\u0007$", "\u0002\u0002\u023dq\u0003\u0002\u0002\u0002\u023e\u0240\u0007\u0003", "\u0002\u0002\u023f\u0241\u0005|?\u0002\u0240\u023f\u0003\u0002\u0002", "\u0002\u0240\u0241\u0003\u0002\u0002\u0002\u0241\u0249\u0003\u0002\u0002", "\u0002\u0242\u0244\u0007\n\u0002\u0002\u0243\u0245\u0005|?\u0002\u0244", "\u0243\u0003\u0002\u0002\u0002\u0244\u0245\u0003\u0002\u0002\u0002\u0245", "\u0249\u0003\u0002\u0002\u0002\u0246\u0249\u0005x=\u0002\u0247\u0249", "\u0007\u0005\u0002\u0002\u0248\u023e\u0003\u0002\u0002\u0002\u0248\u0242", "\u0003\u0002\u0002\u0002\u0248\u0246\u0003\u0002\u0002\u0002\u0248\u0247", "\u0003\u0002\u0002\u0002\u0249s\u0003\u0002\u0002\u0002\u024a\u0255", "\u0007#\u0002\u0002\u024b\u024d\u0005\n\u0006\u0002\u024c\u024b\u0003", "\u0002\u0002\u0002\u024c\u024d\u0003\u0002\u0002\u0002\u024d\u0251\u0003", "\u0002\u0002\u0002\u024e\u0250\u00058\u001d\u0002\u024f\u024e\u0003", "\u0002\u0002\u0002\u0250\u0253\u0003\u0002\u0002\u0002\u0251\u024f\u0003", "\u0002\u0002\u0002\u0251\u0252\u0003\u0002\u0002\u0002\u0252\u0254\u0003", "\u0002\u0002\u0002\u0253\u0251\u0003\u0002\u0002\u0002\u0254\u0256\u0007", "\u001f\u0002\u0002\u0255\u024c\u0003\u0002\u0002\u0002\u0255\u0256\u0003", "\u0002\u0002\u0002\u0256\u0257\u0003\u0002\u0002\u0002\u0257\u0258\u0005", "\\/\u0002\u0258\u0259\u0007$\u0002\u0002\u0259u\u0003\u0002\u0002\u0002", "\u025a\u025c\u0007\u0004\u0002\u0002\u025b\u025d\u0005 \u0011\u0002", "\u025c\u025b\u0003\u0002\u0002\u0002\u025c\u025d\u0003\u0002\u0002\u0002", "\u025d\u025f\u0003\u0002\u0002\u0002\u025e\u0260\u0005|?\u0002\u025f", "\u025e\u0003\u0002\u0002\u0002\u025f\u0260\u0003\u0002\u0002\u0002\u0260", "w\u0003\u0002\u0002\u0002\u0261\u0262\u0007\n\u0002\u0002\u0262\u0263", "\u00071\u0002\u0002\u0263\u0264\u0007\n\u0002\u0002\u0264y\u0003\u0002", "\u0002\u0002\u0265\u0267\u0007\u0003\u0002\u0002\u0266\u0268\u0005|", "?\u0002\u0267\u0266\u0003\u0002\u0002\u0002\u0267\u0268\u0003\u0002", "\u0002\u0002\u0268\u026e\u0003\u0002\u0002\u0002\u0269\u026b\u0007\n", "\u0002\u0002\u026a\u026c\u0005|?\u0002\u026b\u026a\u0003\u0002\u0002", "\u0002\u026b\u026c\u0003\u0002\u0002\u0002\u026c\u026e\u0003\u0002\u0002", "\u0002\u026d\u0265\u0003\u0002\u0002\u0002\u026d\u0269\u0003\u0002\u0002", "\u0002\u026e{\u0003\u0002\u0002\u0002\u026f\u0270\u0007(\u0002\u0002", "\u0270\u0275\u0005~@\u0002\u0271\u0272\u0007!\u0002\u0002\u0272\u0274", "\u0005~@\u0002\u0273\u0271\u0003\u0002\u0002\u0002\u0274\u0277\u0003", "\u0002\u0002\u0002\u0275\u0273\u0003\u0002\u0002\u0002\u0275\u0276\u0003", "\u0002\u0002\u0002\u0276\u0278\u0003\u0002\u0002\u0002\u0277\u0275\u0003", "\u0002\u0002\u0002\u0278\u0279\u0007)\u0002\u0002\u0279}\u0003\u0002", "\u0002\u0002\u027a\u0282\u0005\u0080A\u0002\u027b\u027c\u0005\u0080", "A\u0002\u027c\u027f\u0007*\u0002\u0002\u027d\u0280\u0005\u0080A\u0002", "\u027e\u0280\u0007\n\u0002\u0002\u027f\u027d\u0003\u0002\u0002\u0002", "\u027f\u027e\u0003\u0002\u0002\u0002\u0280\u0282\u0003\u0002\u0002\u0002", "\u0281\u027a\u0003\u0002\u0002\u0002\u0281\u027b\u0003\u0002\u0002\u0002", "\u0282\u007f\u0003\u0002\u0002\u0002\u0283\u0284\t\u0004\u0002\u0002", "\u0284\u0081\u0003\u0002\u0002\u0002W\u0085\u008c\u0093\u00a1\u00a8", "\u00b1\u00bf\u00c5\u00cd\u00d7\u00dc\u00e3\u00ec\u00f0\u00f6\u00fe\u0104", "\u010d\u0118\u011e\u0123\u0128\u012c\u0130\u0133\u0136\u0139\u013e\u0149", "\u014d\u0158\u0163\u0170\u017b\u0181\u0186\u018a\u0198\u019d\u01a0\u01a5", "\u01a9\u01ad\u01b1\u01b5\u01b7\u01bd\u01c9\u01d2\u01d6\u01da\u01e1\u01e5", "\u01ea\u01ed\u01f2\u01f7\u01fc\u01fe\u0204\u0208\u020e\u0212\u0216\u0218", "\u0220\u0222\u0229\u022b\u0231\u0239\u0240\u0244\u0248\u024c\u0251\u0255", "\u025c\u025f\u0267\u026b\u026d\u0275\u027f\u0281"].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, null, null, null, null, null, null, null, null, null, null, null, "'options'", "'tokens'", "'channels'", "'import'", "'fragment'", "'lexer'", "'parser'", "'grammar'", "'protected'", "'public'", "'private'", "'returns'", "'locals'", "'throws'", "'catch'", "'finally'", "'mode'" ]; var symbolicNames = [ null, "TOKEN_REF", "RULE_REF", "LEXER_CHAR_SET", "DOC_COMMENT", "BLOCK_COMMENT", "LINE_COMMENT", "INT", "STRING_LITERAL", "UNTERMINATED_STRING_LITERAL", "BEGIN_ARGUMENT", "BEGIN_ACTION", "OPTIONS", "TOKENS", "CHANNELS", "IMPORT", "FRAGMENT", "LEXER", "PARSER", "GRAMMAR", "PROTECTED", "PUBLIC", "PRIVATE", "RETURNS", "LOCALS", "THROWS", "CATCH", "FINALLY", "MODE", "COLON", "COLONCOLON", "COMMA", "SEMI", "LPAREN", "RPAREN", "LBRACE", "RBRACE", "RARROW", "LT", "GT", "ASSIGN", "QUESTION", "STAR", "PLUS_ASSIGN", "PLUS", "OR", "DOLLAR", "RANGE", "DOT", "AT", "POUND", "NOT", "ID", "WS", "ERRCHAR", "END_ARGUMENT", "UNTERMINATED_ARGUMENT", "ARGUMENT_CONTENT", "END_ACTION", "UNTERMINATED_ACTION", "ACTION_CONTENT", "UNTERMINATED_CHAR_SET" ]; var ruleNames = [ "grammarSpec", "grammarDecl", "grammarType", "prequelConstruct", "optionsSpec", "option", "optionValue", "delegateGrammars", "delegateGrammar", "tokensSpec", "channelsSpec", "idList", "action_", "actionScopeName", "actionBlock", "argActionBlock", "modeSpec", "rules", "ruleSpec", "parserRuleSpec", "exceptionGroup", "exceptionHandler", "finallyClause", "rulePrequel", "ruleReturns", "throwsSpec", "localsSpec", "ruleAction", "ruleModifiers", "ruleModifier", "ruleBlock", "ruleAltList", "labeledAlt", "lexerRuleSpec", "lexerRuleBlock", "lexerAltList", "lexerAlt", "lexerElements", "lexerElement", "labeledLexerElement", "lexerBlock", "lexerCommands", "lexerCommand", "lexerCommandName", "lexerCommandExpr", "altList", "alternative", "element", "labeledElement", "ebnf", "blockSuffix", "ebnfSuffix", "lexerAtom", "atom", "notSet", "blockSet", "setElement", "block", "ruleref", "characterRange", "terminal", "elementOptions", "elementOption", "identifier" ]; function ANTLRv4Parser (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; } ANTLRv4Parser.prototype = Object.create(antlr4.Parser.prototype); ANTLRv4Parser.prototype.constructor = ANTLRv4Parser; Object.defineProperty(ANTLRv4Parser.prototype, "atn", { get : function() { return atn; } }); ANTLRv4Parser.EOF = antlr4.Token.EOF; ANTLRv4Parser.TOKEN_REF = 1; ANTLRv4Parser.RULE_REF = 2; ANTLRv4Parser.LEXER_CHAR_SET = 3; ANTLRv4Parser.DOC_COMMENT = 4; ANTLRv4Parser.BLOCK_COMMENT = 5; ANTLRv4Parser.LINE_COMMENT = 6; ANTLRv4Parser.INT = 7; ANTLRv4Parser.STRING_LITERAL = 8; ANTLRv4Parser.UNTERMINATED_STRING_LITERAL = 9; ANTLRv4Parser.BEGIN_ARGUMENT = 10; ANTLRv4Parser.BEGIN_ACTION = 11; ANTLRv4Parser.OPTIONS = 12; ANTLRv4Parser.TOKENS = 13; ANTLRv4Parser.CHANNELS = 14; ANTLRv4Parser.IMPORT = 15; ANTLRv4Parser.FRAGMENT = 16; ANTLRv4Parser.LEXER = 17; ANTLRv4Parser.PARSER = 18; ANTLRv4Parser.GRAMMAR = 19; ANTLRv4Parser.PROTECTED = 20; ANTLRv4Parser.PUBLIC = 21; ANTLRv4Parser.PRIVATE = 22; ANTLRv4Parser.RETURNS = 23; ANTLRv4Parser.LOCALS = 24; ANTLRv4Parser.THROWS = 25; ANTLRv4Parser.CATCH = 26; ANTLRv4Parser.FINALLY = 27; ANTLRv4Parser.MODE = 28; ANTLRv4Parser.COLON = 29; ANTLRv4Parser.COLONCOLON = 30; ANTLRv4Parser.COMMA = 31; ANTLRv4Parser.SEMI = 32; ANTLRv4Parser.LPAREN = 33; ANTLRv4Parser.RPAREN = 34; ANTLRv4Parser.LBRACE = 35; ANTLRv4Parser.RBRACE = 36; ANTLRv4Parser.RARROW = 37; ANTLRv4Parser.LT = 38; ANTLRv4Parser.GT = 39; ANTLRv4Parser.ASSIGN = 40; ANTLRv4Parser.QUESTION = 41; ANTLRv4Parser.STAR = 42; ANTLRv4Parser.PLUS_ASSIGN = 43; ANTLRv4Parser.PLUS = 44; ANTLRv4Parser.OR = 45; ANTLRv4Parser.DOLLAR = 46; ANTLRv4Parser.RANGE = 47; ANTLRv4Parser.DOT = 48; ANTLRv4Parser.AT = 49; ANTLRv4Parser.POUND = 50; ANTLRv4Parser.NOT = 51; ANTLRv4Parser.ID = 52; ANTLRv4Parser.WS = 53; ANTLRv4Parser.ERRCHAR = 54; ANTLRv4Parser.END_ARGUMENT = 55; ANTLRv4Parser.UNTERMINATED_ARGUMENT = 56; ANTLRv4Parser.ARGUMENT_CONTENT = 57; ANTLRv4Parser.END_ACTION = 58; ANTLRv4Parser.UNTERMINATED_ACTION = 59; ANTLRv4Parser.ACTION_CONTENT = 60; ANTLRv4Parser.UNTERMINATED_CHAR_SET = 61; ANTLRv4Parser.RULE_grammarSpec = 0; ANTLRv4Parser.RULE_grammarDecl = 1; ANTLRv4Parser.RULE_grammarType = 2; ANTLRv4Parser.RULE_prequelConstruct = 3; ANTLRv4Parser.RULE_optionsSpec = 4; ANTLRv4Parser.RULE_option = 5; ANTLRv4Parser.RULE_optionValue = 6; ANTLRv4Parser.RULE_delegateGrammars = 7; ANTLRv4Parser.RULE_delegateGrammar = 8; ANTLRv4Parser.RULE_tokensSpec = 9; ANTLRv4Parser.RULE_channelsSpec = 10; ANTLRv4Parser.RULE_idList = 11; ANTLRv4Parser.RULE_action_ = 12; ANTLRv4Parser.RULE_actionScopeName = 13; ANTLRv4Parser.RULE_actionBlock = 14; ANTLRv4Parser.RULE_argActionBlock = 15; ANTLRv4Parser.RULE_modeSpec = 16; ANTLRv4Parser.RULE_rules = 17; ANTLRv4Parser.RULE_ruleSpec = 18; ANTLRv4Parser.RULE_parserRuleSpec = 19; ANTLRv4Parser.RULE_exceptionGroup = 20; ANTLRv4Parser.RULE_exceptionHandler = 21; ANTLRv4Parser.RULE_finallyClause = 22; ANTLRv4Parser.RULE_rulePrequel = 23; ANTLRv4Parser.RULE_ruleReturns = 24; ANTLRv4Parser.RULE_throwsSpec = 25; ANTLRv4Parser.RULE_localsSpec = 26; ANTLRv4Parser.RULE_ruleAction = 27; ANTLRv4Parser.RULE_ruleModifiers = 28; ANTLRv4Parser.RULE_ruleModifier = 29; ANTLRv4Parser.RULE_ruleBlock = 30; ANTLRv4Parser.RULE_ruleAltList = 31; ANTLRv4Parser.RULE_labeledAlt = 32; ANTLRv4Parser.RULE_lexerRuleSpec = 33; ANTLRv4Parser.RULE_lexerRuleBlock = 34; ANTLRv4Parser.RULE_lexerAltList = 35; ANTLRv4Parser.RULE_lexerAlt = 36; ANTLRv4Parser.RULE_lexerElements = 37; ANTLRv4Parser.RULE_lexerElement = 38; ANTLRv4Parser.RULE_labeledLexerElement = 39; ANTLRv4Parser.RULE_lexerBlock = 40; ANTLRv4Parser.RULE_lexerCommands = 41; ANTLRv4Parser.RULE_lexerCommand = 42; ANTLRv4Parser.RULE_lexerCommandName = 43; ANTLRv4Parser.RULE_lexerCommandExpr = 44; ANTLRv4Parser.RULE_altList = 45; ANTLRv4Parser.RULE_alternative = 46; ANTLRv4Parser.RULE_element = 47; ANTLRv4Parser.RULE_labeledElement = 48; ANTLRv4Parser.RULE_ebnf = 49; ANTLRv4Parser.RULE_blockSuffix = 50; ANTLRv4Parser.RULE_ebnfSuffix = 51; ANTLRv4Parser.RULE_lexerAtom = 52; ANTLRv4Parser.RULE_atom = 53; ANTLRv4Parser.RULE_notSet = 54; ANTLRv4Parser.RULE_blockSet = 55; ANTLRv4Parser.RULE_setElement = 56; ANTLRv4Parser.RULE_block = 57; ANTLRv4Parser.RULE_ruleref = 58; ANTLRv4Parser.RULE_characterRange = 59; ANTLRv4Parser.RULE_terminal = 60; ANTLRv4Parser.RULE_elementOptions = 61; ANTLRv4Parser.RULE_elementOption = 62; ANTLRv4Parser.RULE_identifier = 63; function GrammarSpecContext(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 = ANTLRv4Parser.RULE_grammarSpec; return this; } GrammarSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); GrammarSpecContext.prototype.constructor = GrammarSpecContext; GrammarSpecContext.prototype.grammarDecl = function() { return this.getTypedRuleContext(GrammarDeclContext,0); }; GrammarSpecContext.prototype.rules = function() { return this.getTypedRuleContext(RulesContext,0); }; GrammarSpecContext.prototype.EOF = function() { return this.getToken(ANTLRv4Parser.EOF, 0); }; GrammarSpecContext.prototype.DOC_COMMENT = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(ANTLRv4Parser.DOC_COMMENT); } else { return this.getToken(ANTLRv4Parser.DOC_COMMENT, i); } }; GrammarSpecContext.prototype.prequelConstruct = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(PrequelConstructContext); } else { return this.getTypedRuleContext(PrequelConstructContext,i); } }; GrammarSpecContext.prototype.modeSpec = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ModeSpecContext); } else { return this.getTypedRuleContext(ModeSpecContext,i); } }; GrammarSpecContext.prototype.enterRule = function(listener) { if(listener instanceof ANTLRv4ParserListener ) { listener.enterGrammarSpec(this); } }; GrammarSpecContext.prototype.exitRule = function(listener) { if(listener instanceof ANTLRv4ParserListener ) { listener.exitGrammarSpec(this); } }; ANTLRv4Parser.GrammarSpecContext = GrammarSpecContext; ANTLRv4Parser.prototype.grammarSpec = function() { var localctx = new GrammarSpecContext(this, this._ctx, this.state); this.enterRule(localctx, 0, ANTLRv4Parser.RULE_grammarSpec); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 131; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===ANTLRv4Parser.DOC_COMMENT) { this.state = 128; this.match(ANTLRv4Parser.DOC_COMMENT); this.state = 133; this._errHandler.sync(this); _la = this._input.LA(1); } this.state = 134; this.grammarDecl(); this.state = 138; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << ANTLRv4Parser.OPTIONS) | (1 << ANTLRv4Parser.TOKENS) | (1 << ANTLRv4Parser.CHANNELS) | (1 << ANTLRv4Parser.IMPORT))) !== 0) || _la===ANTLRv4Parser.AT) { this.state = 135; this.prequelConstruct(); this.state = 140; this._errHandler.sync(this); _la = this._input.LA(1); } this.state = 141; this.rules(); this.state = 145; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===ANTLRv4Parser.MODE) { this.state = 142; this.modeSpec(); this.state = 147; this._errHandler.sync(this); _la = this._input.LA(1); } this.state = 148; this.match(ANTLRv4Parser.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 GrammarDeclContext(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 = ANTLRv4Parser.RULE_grammarDecl; return this; } GrammarDeclContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); GrammarDeclContext.prototype.constructor = GrammarDeclContext; GrammarDeclContext.prototype.grammarType = function() { return this.getTypedRuleContext(GrammarTypeContext,0); }; GrammarDeclContext.prototype.identifier = function() { return this.getTypedRuleContext(IdentifierContext,0); }; GrammarDeclContext.prototype.SEMI = function() { return this.getToken(ANTLRv4Parser.SEMI, 0); }; GrammarDeclContext.prototype.enterRule = function(listener) { if(listener instanceof ANTLRv4ParserListener ) { listener.enterGrammarDecl(this); } }; GrammarDeclContext.prototype.exitRule = function(listener) { if(listener instanceof ANTLRv4ParserListener ) { listener.exitGrammarDecl(this); } }; ANTLRv4Parser.GrammarDeclContext = GrammarDeclContext; ANTLRv4Parser.prototype.grammarDecl = function() { var localctx = new GrammarDeclContext(this, this._ctx, this.state); this.enterRule(localctx, 2, ANTLRv4Parser.RULE_grammarDecl); try { this.enterOuterAlt(localctx, 1); this.state = 150; this.grammarType(); this.state = 151; this.identifier(); this.state = 152; this.match(ANTLRv4Parser.SEMI); } 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 GrammarTypeContext(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 = ANTLRv4Parser.RULE_grammarType; return this; } GrammarTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); GrammarTypeContext.prototype.constructor = GrammarTypeContext; GrammarTypeContext.prototype.LEXER = function() { return this.getToken(ANTLRv4Parser.LEXER, 0); }; GrammarTypeContext.prototype.GRAMMAR = function() { return this.getToken(ANTLRv4Parser.GRAMMAR, 0); }; GrammarTypeContext.prototype.PARSER = function() { return this.getToken(ANTLRv4Parser.PARSER, 0); }; GrammarTypeContext.prototype.enterRule = function(listener) { if(listener instanceof ANTLRv4ParserListener ) { listener.enterGrammarType(this); } }; GrammarTypeContext.prototype.exitRule = function(listener) { if(listener instanceof ANTLRv4ParserListener ) { listener.exitGrammarType(this); } }; ANTLRv4Parser.GrammarTypeContext = GrammarTypeContext; ANTLRv4Parser.prototype.grammarType = function() { var localctx = new GrammarTypeContext(this, this._ctx, this.state); this.enterRule(localctx, 4, ANTLRv4Parser.RULE_grammarType); try { this.enterOuterAlt(localctx, 1); this.state = 159; this._errHandler.sync(this); switch(this._input.LA(1)) { case ANTLRv4Parser.LEXER: this.state = 154; this.match(ANTLRv4Parser.LEXER); this.state = 155; this.match(ANTLRv4Parser.GRAMMAR); break; case ANTLRv4Parser.PARSER: this.state = 156; this.match(ANTLRv4Parser.PARSER); this.state = 157; this.match(ANTLRv4Parser.GRAMMAR); break; case ANTLRv4Parser.GRAMMAR: this.state = 158; this.match(ANTLRv4Parser.GRAMMAR); break; default: throw new antlr4.error.NoViableAltException(this); } } 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 PrequelConstructContext(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 = ANTLRv4Parser.RULE_prequelConstruct; return this; } PrequelConstructContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); PrequelConstructContext.prototype.constructor = PrequelConstructContext; PrequelConstructContext.prototype.optionsSpec = function() { return this.getTypedRuleContext(OptionsSpecContext,0); }; PrequelConstructContext.prototype.delegateGrammars = function() { return this.getTypedRuleContext(DelegateGrammarsContext,0); }; PrequelConstructContext.prototype.tokensSpec = function() { return this.getTypedRuleContext(TokensSp