lava-oushudb-dt-sql-parser/lib/antlr4/flinksql/sqlParser.js

22950 lines
970 KiB
JavaScript
Raw Normal View History

2019-09-25 15:43:36 +08:00
// Generated from ./grammar/sql.g4 by ANTLR 4.7.1
// jshint ignore: start
var antlr4 = require('antlr4/index');
var sqlListener = require('./sqlListener').sqlListener;
var sqlVisitor = require('./sqlVisitor').sqlVisitor;
var grammarFileName = "sql.g4";
var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964",
2019-09-25 16:53:32 +08:00
"\u0003\u0101\u09d4\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004",
2019-09-25 15:43:36 +08:00
"\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\u0004",
"2\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u00048\t8\u0004",
"9\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004?\t?\u0004",
"@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004F\tF\u0004",
"G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004M\tM\u0004",
"N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004T\tT\u0004",
"U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004[\t[\u0004",
"\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004b\tb\u0004",
"c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0003\u0002\u0003",
2019-09-25 16:53:32 +08:00
"\u0002\u0003\u0002\u0003\u0002\u0005\u0002\u00d5\n\u0002\u0003\u0003",
"\u0003\u0003\u0003\u0003\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0005",
"\u0003\u0005\u0003\u0005\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0007",
"\u0003\u0007\u0003\u0007\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
"\b\u0003\b\u0003\b\u0005\b\u00ee\n\b\u0003\b\u0003\b\u0003\b\u0005\b",
"\u00f3\n\b\u0003\b\u0005\b\u00f6\n\b\u0003\b\u0003\b\u0003\b\u0005\b",
"\u00fb\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
"\b\u0003\b\u0003\b\u0003\b\u0005\b\u0108\n\b\u0003\b\u0003\b\u0005\b",
"\u010c\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0113\n\b",
"\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
"\b\u0003\b\u0003\b\u0003\b\u0007\b\u0121\n\b\f\b\u000e\b\u0124\u000b",
"\b\u0003\b\u0005\b\u0127\n\b\u0003\b\u0005\b\u012a\n\b\u0003\b\u0003",
"\b\u0003\b\u0003\b\u0003\b\u0005\b\u0131\n\b\u0003\b\u0003\b\u0003\b",
"\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
"\b\u0003\b\u0003\b\u0003\b\u0007\b\u0142\n\b\f\b\u000e\b\u0145\u000b",
"\b\u0003\b\u0005\b\u0148\n\b\u0003\b\u0005\b\u014b\n\b\u0003\b\u0003",
"\b\u0003\b\u0003\b\u0003\b\u0005\b\u0152\n\b\u0003\b\u0003\b\u0003\b",
"\u0003\b\u0003\b\u0005\b\u0159\n\b\u0003\b\u0003\b\u0005\b\u015d\n\b",
"\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0165\n\b\u0003",
"\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u016f",
"\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0175\n\b\u0003\b\u0003",
"\b\u0003\b\u0003\b\u0005\b\u017b\n\b\u0003\b\u0003\b\u0003\b\u0003\b",
"\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0186\n\b\u0003\b\u0003",
"\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
"\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
2019-09-25 15:43:36 +08:00
"\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
2019-09-25 16:53:32 +08:00
"\b\u0003\b\u0005\b\u01a6\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b",
"\u0003\b\u0005\b\u01ae\n\b\u0003\b\u0003\b\u0005\b\u01b2\n\b\u0003\b",
"\u0003\b\u0003\b\u0005\b\u01b7\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005",
"\b\u01bd\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b",
"\u01c5\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u01cb\n\b\u0003\b",
2019-09-25 15:43:36 +08:00
"\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
2019-09-25 16:53:32 +08:00
"\b\u0003\b\u0005\b\u01d8\n\b\u0003\b\u0006\b\u01db\n\b\r\b\u000e\b\u01dc",
"\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u01e6",
"\n\b\u0003\b\u0006\b\u01e9\n\b\r\b\u000e\b\u01ea\u0003\b\u0003\b\u0003",
2019-09-25 15:43:36 +08:00
"\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
2019-09-25 16:53:32 +08:00
"\b\u0003\b\u0003\b\u0005\b\u01fb\n\b\u0003\b\u0003\b\u0003\b\u0007\b",
"\u0200\n\b\f\b\u000e\b\u0203\u000b\b\u0003\b\u0005\b\u0206\n\b\u0003",
"\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u020e\n\b\u0003\b",
"\u0003\b\u0003\b\u0007\b\u0213\n\b\f\b\u000e\b\u0216\u000b\b\u0003\b",
"\u0003\b\u0003\b\u0003\b\u0005\b\u021c\n\b\u0003\b\u0003\b\u0003\b\u0003",
2019-09-25 15:43:36 +08:00
"\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
2019-09-25 16:53:32 +08:00
"\b\u0005\b\u022b\n\b\u0003\b\u0003\b\u0005\b\u022f\n\b\u0003\b\u0003",
"\b\u0003\b\u0003\b\u0005\b\u0235\n\b\u0003\b\u0003\b\u0003\b\u0003\b",
"\u0005\b\u023b\n\b\u0003\b\u0005\b\u023e\n\b\u0003\b\u0005\b\u0241\n",
"\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0247\n\b\u0003\b\u0003\b",
"\u0005\b\u024b\n\b\u0003\b\u0003\b\u0005\b\u024f\n\b\u0003\b\u0003\b",
"\u0003\b\u0005\b\u0254\n\b\u0003\b\u0003\b\u0005\b\u0258\n\b\u0003\b",
"\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0260\n\b\u0003\b\u0005",
"\b\u0263\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b",
"\u0005\b\u026c\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u0271\n\b\u0003\b",
"\u0003\b\u0003\b\u0003\b\u0005\b\u0277\n\b\u0003\b\u0003\b\u0003\b\u0003",
"\b\u0003\b\u0005\b\u027e\n\b\u0003\b\u0005\b\u0281\n\b\u0003\b\u0003",
"\b\u0003\b\u0003\b\u0005\b\u0287\n\b\u0003\b\u0003\b\u0003\b\u0003\b",
"\u0003\b\u0003\b\u0003\b\u0007\b\u0290\n\b\f\b\u000e\b\u0293\u000b\b",
"\u0005\b\u0295\n\b\u0003\b\u0003\b\u0005\b\u0299\n\b\u0003\b\u0003\b",
"\u0003\b\u0005\b\u029e\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u02a3\n\b",
"\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u02aa\n\b\u0003\b\u0005",
"\b\u02ad\n\b\u0003\b\u0005\b\u02b0\n\b\u0003\b\u0003\b\u0003\b\u0003",
"\b\u0003\b\u0005\b\u02b7\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u02bc\n",
"\b\u0003\b\u0003\b\u0003\b\u0005\b\u02c1\n\b\u0003\b\u0005\b\u02c4\n",
"\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u02cd",
"\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u02d5\n",
"\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u02db\n\b\u0003\b\u0003\b",
"\u0005\b\u02df\n\b\u0003\b\u0003\b\u0005\b\u02e3\n\b\u0003\b\u0003\b",
"\u0005\b\u02e7\n\b\u0005\b\u02e9\n\b\u0003\b\u0003\b\u0003\b\u0003\b",
"\u0003\b\u0003\b\u0003\b\u0005\b\u02f2\n\b\u0003\b\u0003\b\u0003\b\u0003",
"\b\u0005\b\u02f8\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u02fd\n\b\u0003",
"\b\u0005\b\u0300\n\b\u0003\b\u0003\b\u0005\b\u0304\n\b\u0003\b\u0005",
"\b\u0307\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0007\b",
"\u030f\n\b\f\b\u000e\b\u0312\u000b\b\u0005\b\u0314\n\b\u0003\b\u0003",
"\b\u0005\b\u0318\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u031e\n",
"\b\u0003\b\u0005\b\u0321\n\b\u0003\b\u0005\b\u0324\n\b\u0003\b\u0003",
"\b\u0003\b\u0003\b\u0005\b\u032a\n\b\u0003\b\u0003\b\u0003\b\u0003\b",
"\u0003\b\u0003\b\u0005\b\u0332\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u0337",
"\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u033d\n\b\u0003\b\u0003",
"\b\u0003\b\u0003\b\u0005\b\u0343\n\b\u0003\b\u0003\b\u0003\b\u0003\b",
"\u0003\b\u0003\b\u0003\b\u0007\b\u034c\n\b\f\b\u000e\b\u034f\u000b\b",
"\u0003\b\u0003\b\u0003\b\u0007\b\u0354\n\b\f\b\u000e\b\u0357\u000b\b",
"\u0003\b\u0003\b\u0007\b\u035b\n\b\f\b\u000e\b\u035e\u000b\b\u0003\b",
"\u0003\b\u0003\b\u0007\b\u0363\n\b\f\b\u000e\b\u0366\u000b\b\u0005\b",
"\u0368\n\b\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0005\t\u0370",
"\n\t\u0003\t\u0003\t\u0005\t\u0374\n\t\u0003\t\u0003\t\u0003\t\u0003",
"\t\u0003\t\u0005\t\u037b\n\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t",
2019-09-25 15:43:36 +08:00
"\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
"\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
"\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
"\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
"\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
"\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
"\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
"\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
"\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
"\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
"\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
"\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
2019-09-25 16:53:32 +08:00
"\t\u0003\t\u0005\t\u03ef\n\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t",
"\u0003\t\u0005\t\u03f7\n\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
"\t\u0005\t\u03ff\n\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t",
"\u0003\t\u0005\t\u0408\n\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
"\t\u0003\t\u0003\t\u0003\t\u0003\t\u0005\t\u0414\n\t\u0003\n\u0003\n",
"\u0005\n\u0418\n\n\u0003\n\u0005\n\u041b\n\n\u0003\n\u0003\n\u0003\n",
"\u0003\n\u0005\n\u0421\n\n\u0003\n\u0003\n\u0003\u000b\u0003\u000b\u0003",
"\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0005\u000b\u042b\n\u000b",
"\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\f\u0003\f\u0003",
"\f\u0003\f\u0003\f\u0003\f\u0005\f\u0437\n\f\u0003\f\u0003\f\u0003\f",
"\u0005\f\u043c\n\f\u0003\r\u0003\r\u0003\r\u0003\u000e\u0005\u000e\u0442",
"\n\u000e\u0003\u000e\u0003\u000e\u0003\u000f\u0003\u000f\u0003\u000f",
"\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0005\u000f",
"\u044e\n\u000f\u0005\u000f\u0450\n\u000f\u0003\u000f\u0003\u000f\u0003",
"\u000f\u0005\u000f\u0455\n\u000f\u0003\u000f\u0003\u000f\u0005\u000f",
"\u0459\n\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0005\u000f\u045e",
"\n\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0005\u000f\u0463\n\u000f",
"\u0003\u000f\u0005\u000f\u0466\n\u000f\u0003\u000f\u0003\u000f\u0003",
"\u000f\u0005\u000f\u046b\n\u000f\u0003\u000f\u0003\u000f\u0005\u000f",
"\u046f\n\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0005\u000f\u0474",
"\n\u000f\u0005\u000f\u0476\n\u000f\u0003\u0010\u0003\u0010\u0005\u0010",
"\u047a\n\u0010\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003",
"\u0011\u0007\u0011\u0481\n\u0011\f\u0011\u000e\u0011\u0484\u000b\u0011",
"\u0003\u0011\u0003\u0011\u0003\u0012\u0003\u0012\u0003\u0012\u0005\u0012",
"\u048b\n\u0012\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003",
"\u0013\u0005\u0013\u0492\n\u0013\u0003\u0014\u0003\u0014\u0003\u0014",
"\u0007\u0014\u0497\n\u0014\f\u0014\u000e\u0014\u049a\u000b\u0014\u0003",
"\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0007\u0015\u04a0\n\u0015",
"\f\u0015\u000e\u0015\u04a3\u000b\u0015\u0003\u0016\u0003\u0016\u0005",
"\u0016\u04a7\n\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016",
"\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0018\u0003\u0018\u0003\u0018",
"\u0003\u0018\u0007\u0018\u04b4\n\u0018\f\u0018\u000e\u0018\u04b7\u000b",
"\u0018\u0003\u0018\u0003\u0018\u0003\u0019\u0003\u0019\u0005\u0019\u04bd",
"\n\u0019\u0003\u0019\u0005\u0019\u04c0\n\u0019\u0003\u001a\u0003\u001a",
"\u0003\u001a\u0007\u001a\u04c5\n\u001a\f\u001a\u000e\u001a\u04c8\u000b",
"\u001a\u0003\u001a\u0005\u001a\u04cb\n\u001a\u0003\u001b\u0003\u001b",
"\u0003\u001b\u0003\u001b\u0005\u001b\u04d1\n\u001b\u0003\u001c\u0003",
"\u001c\u0003\u001c\u0003\u001c\u0007\u001c\u04d7\n\u001c\f\u001c\u000e",
"\u001c\u04da\u000b\u001c\u0003\u001c\u0003\u001c\u0003\u001d\u0003\u001d",
"\u0003\u001d\u0003\u001d\u0007\u001d\u04e2\n\u001d\f\u001d\u000e\u001d",
"\u04e5\u000b\u001d\u0003\u001d\u0003\u001d\u0003\u001e\u0003\u001e\u0003",
"\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0005\u001e\u04ef\n\u001e",
"\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0005\u001f",
"\u04f6\n\u001f\u0003 \u0003 \u0003 \u0003 \u0005 \u04fc\n \u0003!\u0003",
"!\u0003!\u0003\"\u0005\"\u0502\n\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003",
"\"\u0006\"\u0509\n\"\r\"\u000e\"\u050a\u0005\"\u050d\n\"\u0003#\u0003",
"#\u0003#\u0003#\u0003#\u0007#\u0514\n#\f#\u000e#\u0517\u000b#\u0005",
"#\u0519\n#\u0003#\u0003#\u0003#\u0003#\u0003#\u0007#\u0520\n#\f#\u000e",
"#\u0523\u000b#\u0005#\u0525\n#\u0003#\u0003#\u0003#\u0003#\u0003#\u0007",
"#\u052c\n#\f#\u000e#\u052f\u000b#\u0005#\u0531\n#\u0003#\u0003#\u0003",
"#\u0003#\u0003#\u0007#\u0538\n#\f#\u000e#\u053b\u000b#\u0005#\u053d",
"\n#\u0003#\u0005#\u0540\n#\u0003#\u0003#\u0003#\u0005#\u0545\n#\u0005",
"#\u0547\n#\u0003$\u0005$\u054a\n$\u0003$\u0003$\u0003$\u0003%\u0003",
"%\u0003%\u0003%\u0003%\u0003%\u0003%\u0005%\u0556\n%\u0003%\u0003%\u0003",
"%\u0003%\u0003%\u0005%\u055d\n%\u0003%\u0003%\u0003%\u0003%\u0003%\u0005",
"%\u0564\n%\u0003%\u0007%\u0567\n%\f%\u000e%\u056a\u000b%\u0003&\u0003",
"&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003&\u0005&\u0574\n&\u0003\'",
"\u0003\'\u0005\'\u0578\n\'\u0003\'\u0003\'\u0005\'\u057c\n\'\u0003(",
"\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0005",
"(\u0588\n(\u0003(\u0005(\u058b\n(\u0003(\u0003(\u0005(\u058f\n(\u0003",
"(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0005(\u0599\n(\u0003",
"(\u0003(\u0005(\u059d\n(\u0005(\u059f\n(\u0003(\u0005(\u05a2\n(\u0003",
"(\u0003(\u0005(\u05a6\n(\u0003(\u0005(\u05a9\n(\u0003(\u0003(\u0005",
"(\u05ad\n(\u0003(\u0003(\u0007(\u05b1\n(\f(\u000e(\u05b4\u000b(\u0003",
"(\u0005(\u05b7\n(\u0003(\u0003(\u0005(\u05bb\n(\u0003(\u0003(\u0003",
"(\u0005(\u05c0\n(\u0003(\u0005(\u05c3\n(\u0005(\u05c5\n(\u0003(\u0007",
"(\u05c8\n(\f(\u000e(\u05cb\u000b(\u0003(\u0003(\u0005(\u05cf\n(\u0003",
"(\u0005(\u05d2\n(\u0003(\u0003(\u0005(\u05d6\n(\u0003(\u0005(\u05d9",
"\n(\u0005(\u05db\n(\u0003)\u0003)\u0003)\u0005)\u05e0\n)\u0003)\u0007",
")\u05e3\n)\f)\u000e)\u05e6\u000b)\u0003)\u0003)\u0003*\u0003*\u0003",
"*\u0003*\u0003*\u0003*\u0007*\u05f0\n*\f*\u000e*\u05f3\u000b*\u0003",
"*\u0003*\u0005*\u05f7\n*\u0003+\u0003+\u0003+\u0003+\u0007+\u05fd\n",
"+\f+\u000e+\u0600\u000b+\u0003+\u0007+\u0603\n+\f+\u000e+\u0606\u000b",
"+\u0003+\u0005+\u0609\n+\u0003,\u0003,\u0003,\u0003,\u0003,\u0007,\u0610",
"\n,\f,\u000e,\u0613\u000b,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003",
",\u0003,\u0003,\u0003,\u0003,\u0007,\u061f\n,\f,\u000e,\u0622\u000b",
",\u0003,\u0003,\u0005,\u0626\n,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003",
",\u0003,\u0003,\u0007,\u0630\n,\f,\u000e,\u0633\u000b,\u0003,\u0003",
",\u0005,\u0637\n,\u0003-\u0003-\u0003-\u0003-\u0007-\u063d\n-\f-\u000e",
"-\u0640\u000b-\u0005-\u0642\n-\u0003-\u0003-\u0005-\u0646\n-\u0003.",
"\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0007",
".\u0652\n.\f.\u000e.\u0655\u000b.\u0003.\u0003.\u0003.\u0003/\u0003",
"/\u0003/\u0003/\u0003/\u0007/\u065f\n/\f/\u000e/\u0662\u000b/\u0003",
"/\u0003/\u0005/\u0666\n/\u00030\u00030\u00050\u066a\n0\u00030\u0005",
"0\u066d\n0\u00031\u00031\u00031\u00051\u0672\n1\u00031\u00031\u0003",
"1\u00031\u00031\u00071\u0679\n1\f1\u000e1\u067c\u000b1\u00051\u067e",
"\n1\u00031\u00031\u00031\u00051\u0683\n1\u00031\u00031\u00031\u0007",
"1\u0688\n1\f1\u000e1\u068b\u000b1\u00051\u068d\n1\u00032\u00032\u0003",
"3\u00033\u00073\u0693\n3\f3\u000e3\u0696\u000b3\u00034\u00034\u0003",
"4\u00034\u00054\u069c\n4\u00034\u00034\u00034\u00034\u00034\u00054\u06a3",
"\n4\u00035\u00055\u06a6\n5\u00035\u00035\u00035\u00055\u06ab\n5\u0003",
"5\u00035\u00035\u00035\u00055\u06b1\n5\u00035\u00035\u00055\u06b5\n",
"5\u00035\u00055\u06b8\n5\u00035\u00055\u06bb\n5\u00036\u00036\u0003",
"6\u00036\u00056\u06c1\n6\u00037\u00037\u00037\u00057\u06c6\n7\u0003",
"7\u00037\u00038\u00058\u06cb\n8\u00038\u00038\u00038\u00038\u00038\u0003",
2019-09-25 15:43:36 +08:00
"8\u00038\u00038\u00038\u00038\u00038\u00038\u00038\u00038\u00038\u0003",
2019-09-25 16:53:32 +08:00
"8\u00058\u06dd\n8\u00058\u06df\n8\u00038\u00058\u06e2\n8\u00039\u0003",
"9\u00039\u00039\u0003:\u0003:\u0003:\u0007:\u06eb\n:\f:\u000e:\u06ee",
"\u000b:\u0003;\u0003;\u0003;\u0003;\u0007;\u06f4\n;\f;\u000e;\u06f7",
"\u000b;\u0003;\u0003;\u0003<\u0003<\u0005<\u06fd\n<\u0003=\u0003=\u0003",
"=\u0003=\u0007=\u0703\n=\f=\u000e=\u0706\u000b=\u0003=\u0003=\u0003",
">\u0003>\u0003>\u0005>\u070d\n>\u0003?\u0003?\u0005?\u0711\n?\u0003",
"?\u0003?\u0003?\u0003?\u0003?\u0003?\u0005?\u0719\n?\u0003?\u0003?\u0003",
"?\u0003?\u0003?\u0003?\u0005?\u0721\n?\u0003?\u0003?\u0003?\u0003?\u0005",
"?\u0727\n?\u0003@\u0003@\u0003@\u0003@\u0007@\u072d\n@\f@\u000e@\u0730",
"\u000b@\u0003@\u0003@\u0003A\u0003A\u0003A\u0003A\u0003A\u0007A\u0739",
"\nA\fA\u000eA\u073c\u000bA\u0005A\u073e\nA\u0003A\u0003A\u0003A\u0003",
"B\u0005B\u0744\nB\u0003B\u0003B\u0005B\u0748\nB\u0005B\u074a\nB\u0003",
"C\u0003C\u0003C\u0003C\u0003C\u0003C\u0003C\u0005C\u0753\nC\u0003C\u0003",
"C\u0003C\u0003C\u0003C\u0003C\u0003C\u0003C\u0003C\u0003C\u0005C\u075f",
"\nC\u0005C\u0761\nC\u0003C\u0003C\u0003C\u0003C\u0003C\u0005C\u0768",
"\nC\u0003C\u0003C\u0003C\u0003C\u0003C\u0005C\u076f\nC\u0003C\u0003",
"C\u0003C\u0003C\u0005C\u0775\nC\u0003C\u0003C\u0003C\u0003C\u0005C\u077b",
"\nC\u0005C\u077d\nC\u0003D\u0003D\u0003D\u0005D\u0782\nD\u0003D\u0003",
"D\u0003E\u0003E\u0003E\u0005E\u0789\nE\u0003E\u0003E\u0003F\u0003F\u0005",
"F\u078f\nF\u0003F\u0003F\u0005F\u0793\nF\u0005F\u0795\nF\u0003G\u0003",
"G\u0003G\u0007G\u079a\nG\fG\u000eG\u079d\u000bG\u0003H\u0003H\u0003",
"I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0005",
"I\u07ab\nI\u0005I\u07ad\nI\u0003I\u0003I\u0003I\u0003I\u0003I\u0003",
"I\u0007I\u07b5\nI\fI\u000eI\u07b8\u000bI\u0003J\u0005J\u07bb\nJ\u0003",
"J\u0003J\u0003J\u0003J\u0003J\u0003J\u0005J\u07c3\nJ\u0003J\u0003J\u0003",
"J\u0003J\u0003J\u0007J\u07ca\nJ\fJ\u000eJ\u07cd\u000bJ\u0003J\u0003",
"J\u0003J\u0005J\u07d2\nJ\u0003J\u0003J\u0003J\u0003J\u0003J\u0003J\u0005",
"J\u07da\nJ\u0003J\u0003J\u0003J\u0003J\u0005J\u07e0\nJ\u0003J\u0003",
"J\u0003J\u0005J\u07e5\nJ\u0003J\u0003J\u0003J\u0005J\u07ea\nJ\u0003",
"K\u0003K\u0003K\u0003K\u0005K\u07f0\nK\u0003K\u0003K\u0003K\u0003K\u0003",
2019-09-25 15:43:36 +08:00
"K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003",
2019-09-25 16:53:32 +08:00
"K\u0003K\u0003K\u0003K\u0003K\u0007K\u0805\nK\fK\u000eK\u0808\u000b",
"K\u0003L\u0003L\u0003L\u0006L\u080d\nL\rL\u000eL\u080e\u0003L\u0003",
"L\u0005L\u0813\nL\u0003L\u0003L\u0003L\u0003L\u0003L\u0006L\u081a\n",
"L\rL\u000eL\u081b\u0003L\u0003L\u0005L\u0820\nL\u0003L\u0003L\u0003",
2019-09-25 15:43:36 +08:00
"L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003",
2019-09-25 16:53:32 +08:00
"L\u0003L\u0007L\u0830\nL\fL\u000eL\u0833\u000bL\u0005L\u0835\nL\u0003",
"L\u0003L\u0003L\u0003L\u0003L\u0003L\u0005L\u083d\nL\u0003L\u0003L\u0003",
"L\u0003L\u0003L\u0003L\u0003L\u0005L\u0846\nL\u0003L\u0003L\u0003L\u0003",
2019-09-25 15:43:36 +08:00
"L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003",
2019-09-25 16:53:32 +08:00
"L\u0003L\u0003L\u0003L\u0003L\u0003L\u0006L\u085b\nL\rL\u000eL\u085c",
"\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0005",
"L\u0868\nL\u0003L\u0003L\u0003L\u0007L\u086d\nL\fL\u000eL\u0870\u000b",
"L\u0005L\u0872\nL\u0003L\u0003L\u0003L\u0005L\u0877\nL\u0003L\u0003",
"L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003",
"L\u0003L\u0003L\u0003L\u0006L\u0888\nL\rL\u000eL\u0889\u0003L\u0003",
"L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003",
"L\u0003L\u0003L\u0003L\u0005L\u089b\nL\u0003L\u0003L\u0003L\u0003L\u0003",
"L\u0003L\u0003L\u0003L\u0007L\u08a5\nL\fL\u000eL\u08a8\u000bL\u0003",
"M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0006M\u08b2\nM\r",
"M\u000eM\u08b3\u0005M\u08b6\nM\u0003N\u0003N\u0003O\u0003O\u0003P\u0003",
"P\u0003Q\u0003Q\u0003R\u0003R\u0007R\u08c2\nR\fR\u000eR\u08c5\u000b",
"R\u0003S\u0003S\u0003S\u0003S\u0005S\u08cb\nS\u0003T\u0005T\u08ce\n",
"T\u0003T\u0003T\u0005T\u08d2\nT\u0003U\u0003U\u0003U\u0005U\u08d7\n",
"U\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003",
"V\u0003V\u0003V\u0003V\u0003V\u0003V\u0005V\u08e8\nV\u0003V\u0003V\u0005",
"V\u08ec\nV\u0003V\u0003V\u0003V\u0003V\u0003V\u0007V\u08f3\nV\fV\u000e",
"V\u08f6\u000bV\u0003V\u0005V\u08f9\nV\u0005V\u08fb\nV\u0003W\u0003W",
"\u0003W\u0007W\u0900\nW\fW\u000eW\u0903\u000bW\u0003X\u0003X\u0003X",
"\u0003X\u0005X\u0909\nX\u0003Y\u0003Y\u0003Y\u0007Y\u090e\nY\fY\u000e",
"Y\u0911\u000bY\u0003Z\u0003Z\u0003Z\u0007Z\u0916\nZ\fZ\u000eZ\u0919",
"\u000bZ\u0003Z\u0003Z\u0003Z\u0005Z\u091e\nZ\u0003Z\u0003Z\u0005Z\u0922",
"\nZ\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0005Z\u092a\nZ\u0003",
"[\u0003[\u0003[\u0007[\u092f\n[\f[\u000e[\u0932\u000b[\u0003\\\u0003",
"\\\u0003\\\u0003\\\u0003\\\u0005\\\u0939\n\\\u0003]\u0003]\u0003]\u0003",
"]\u0003]\u0003^\u0003^\u0003^\u0003^\u0007^\u0944\n^\f^\u000e^\u0947",
"\u000b^\u0003_\u0003_\u0003_\u0003_\u0003`\u0003`\u0003`\u0003`\u0003",
"`\u0003`\u0003`\u0007`\u0954\n`\f`\u000e`\u0957\u000b`\u0003`\u0003",
"`\u0003`\u0003`\u0003`\u0007`\u095e\n`\f`\u000e`\u0961\u000b`\u0005",
"`\u0963\n`\u0003`\u0003`\u0003`\u0003`\u0003`\u0007`\u096a\n`\f`\u000e",
"`\u096d\u000b`\u0005`\u096f\n`\u0005`\u0971\n`\u0003`\u0005`\u0974\n",
"`\u0003`\u0005`\u0977\n`\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003",
"a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0005",
"a\u0989\na\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0005b\u0992",
"\nb\u0003c\u0003c\u0003c\u0007c\u0997\nc\fc\u000ec\u099a\u000bc\u0003",
"d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003",
"d\u0003d\u0003d\u0003d\u0003d\u0005d\u09ab\nd\u0003e\u0003e\u0003e\u0005",
"e\u09b0\ne\u0003f\u0003f\u0003g\u0005g\u09b5\ng\u0003g\u0003g\u0005",
"g\u09b9\ng\u0003g\u0003g\u0005g\u09bd\ng\u0003g\u0003g\u0005g\u09c1",
"\ng\u0003g\u0003g\u0005g\u09c5\ng\u0003g\u0003g\u0005g\u09c9\ng\u0003",
"g\u0003g\u0005g\u09cd\ng\u0003g\u0005g\u09d0\ng\u0003h\u0003h\u0003",
"h\u0007\u0310\u034d\u0355\u035c\u0364\u0006H\u0090\u0094\u0096i\u0002",
"\u0004\u0006\b\n\f\u000e\u0010\u0012\u0014\u0016\u0018\u001a\u001c\u001e",
" \"$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084",
"\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c",
"\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4",
"\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc",
"\u00ce\u0002\u001d\u0003\u0002\u00ca\u00cb\u0004\u0002RRTT\u0005\u0002",
"\\^\u00b0\u00b0\u00b6\u00b6\u0004\u0002\u000e\u000e!!\u0004\u0002..",
"YY\u0004\u0002\u00b0\u00b0\u00b6\u00b6\u0004\u0002\u000f\u000f\u00d7",
"\u00d7\u0003\u0002hk\u0003\u0002hj\u0003\u0002-.\u0004\u0002KKMM\u0004",
"\u0002\u0011\u0011\u0013\u0013\u0003\u0002\u00f7\u00f8\u0003\u0002&",
"\'\u0004\u0002\u008c\u008d\u0092\u0092\u0003\u0002\u008e\u0091\u0004",
"\u0002\u008c\u008d\u0095\u0095\u0003\u0002~\u0080\u0003\u0002\u0084",
"\u008b\u0003\u0002\u008c\u0096\u0003\u0002\u001f\"\u0003\u0002*+\u0003",
"\u0002\u008c\u008d\u0004\u0002DD\u009d\u009d\u0004\u0002\u001b\u001b",
"\u009b\u009b\u0003\u0002HI\n\u0002\r588@gl\u0083\u0091\u0091\u0097\u00a0",
"\u00a2\u00ee\u00f0\u00f1\u0002\u0b77\u0002\u00d4\u0003\u0002\u0002\u0002",
"\u0004\u00d6\u0003\u0002\u0002\u0002\u0006\u00d9\u0003\u0002\u0002\u0002",
"\b\u00dc\u0003\u0002\u0002\u0002\n\u00df\u0003\u0002\u0002\u0002\f\u00e2",
"\u0003\u0002\u0002\u0002\u000e\u0367\u0003\u0002\u0002\u0002\u0010\u0413",
"\u0003\u0002\u0002\u0002\u0012\u0415\u0003\u0002\u0002\u0002\u0014\u0424",
"\u0003\u0002\u0002\u0002\u0016\u0430\u0003\u0002\u0002\u0002\u0018\u043d",
"\u0003\u0002\u0002\u0002\u001a\u0441\u0003\u0002\u0002\u0002\u001c\u0475",
"\u0003\u0002\u0002\u0002\u001e\u0477\u0003\u0002\u0002\u0002 \u047b",
"\u0003\u0002\u0002\u0002\"\u0487\u0003\u0002\u0002\u0002$\u0491\u0003",
"\u0002\u0002\u0002&\u0493\u0003\u0002\u0002\u0002(\u049b\u0003\u0002",
"\u0002\u0002*\u04a4\u0003\u0002\u0002\u0002,\u04ac\u0003\u0002\u0002",
"\u0002.\u04af\u0003\u0002\u0002\u00020\u04ba\u0003\u0002\u0002\u0002",
"2\u04ca\u0003\u0002\u0002\u00024\u04d0\u0003\u0002\u0002\u00026\u04d2",
"\u0003\u0002\u0002\u00028\u04dd\u0003\u0002\u0002\u0002:\u04ee\u0003",
"\u0002\u0002\u0002<\u04f5\u0003\u0002\u0002\u0002>\u04f7\u0003\u0002",
"\u0002\u0002@\u04fd\u0003\u0002\u0002\u0002B\u050c\u0003\u0002\u0002",
"\u0002D\u0518\u0003\u0002\u0002\u0002F\u0549\u0003\u0002\u0002\u0002",
"H\u054e\u0003\u0002\u0002\u0002J\u0573\u0003\u0002\u0002\u0002L\u0575",
"\u0003\u0002\u0002\u0002N\u05da\u0003\u0002\u0002\u0002P\u05dc\u0003",
"\u0002\u0002\u0002R\u05f6\u0003\u0002\u0002\u0002T\u05f8\u0003\u0002",
"\u0002\u0002V\u0636\u0003\u0002\u0002\u0002X\u0645\u0003\u0002\u0002",
"\u0002Z\u0647\u0003\u0002\u0002\u0002\\\u0665\u0003\u0002\u0002\u0002",
"^\u0667\u0003\u0002\u0002\u0002`\u066e\u0003\u0002\u0002\u0002b\u068e",
"\u0003\u0002\u0002\u0002d\u0690\u0003\u0002\u0002\u0002f\u06a2\u0003",
"\u0002\u0002\u0002h\u06ba\u0003\u0002\u0002\u0002j\u06c0\u0003\u0002",
"\u0002\u0002l\u06c2\u0003\u0002\u0002\u0002n\u06e1\u0003\u0002\u0002",
"\u0002p\u06e3\u0003\u0002\u0002\u0002r\u06e7\u0003\u0002\u0002\u0002",
"t\u06ef\u0003\u0002\u0002\u0002v\u06fa\u0003\u0002\u0002\u0002x\u06fe",
"\u0003\u0002\u0002\u0002z\u0709\u0003\u0002\u0002\u0002|\u0726\u0003",
"\u0002\u0002\u0002~\u0728\u0003\u0002\u0002\u0002\u0080\u0733\u0003",
"\u0002\u0002\u0002\u0082\u0749\u0003\u0002\u0002\u0002\u0084\u077c\u0003",
"\u0002\u0002\u0002\u0086\u0781\u0003\u0002\u0002\u0002\u0088\u0788\u0003",
"\u0002\u0002\u0002\u008a\u078c\u0003\u0002\u0002\u0002\u008c\u0796\u0003",
"\u0002\u0002\u0002\u008e\u079e\u0003\u0002\u0002\u0002\u0090\u07ac\u0003",
"\u0002\u0002\u0002\u0092\u07e9\u0003\u0002\u0002\u0002\u0094\u07ef\u0003",
"\u0002\u0002\u0002\u0096\u089a\u0003\u0002\u0002\u0002\u0098\u08b5\u0003",
"\u0002\u0002\u0002\u009a\u08b7\u0003\u0002\u0002\u0002\u009c\u08b9\u0003",
"\u0002\u0002\u0002\u009e\u08bb\u0003\u0002\u0002\u0002\u00a0\u08bd\u0003",
"\u0002\u0002\u0002\u00a2\u08bf\u0003\u0002\u0002\u0002\u00a4\u08c6\u0003",
"\u0002\u0002\u0002\u00a6\u08d1\u0003\u0002\u0002\u0002\u00a8\u08d6\u0003",
"\u0002\u0002\u0002\u00aa\u08fa\u0003\u0002\u0002\u0002\u00ac\u08fc\u0003",
"\u0002\u0002\u0002\u00ae\u0904\u0003\u0002\u0002\u0002\u00b0\u090a\u0003",
"\u0002\u0002\u0002\u00b2\u0929\u0003\u0002\u0002\u0002\u00b4\u092b\u0003",
"\u0002\u0002\u0002\u00b6\u0933\u0003\u0002\u0002\u0002\u00b8\u093a\u0003",
"\u0002\u0002\u0002\u00ba\u093f\u0003\u0002\u0002\u0002\u00bc\u0948\u0003",
"\u0002\u0002\u0002\u00be\u0976\u0003\u0002\u0002\u0002\u00c0\u0988\u0003",
"\u0002\u0002\u0002\u00c2\u0991\u0003\u0002\u0002\u0002\u00c4\u0993\u0003",
"\u0002\u0002\u0002\u00c6\u09aa\u0003\u0002\u0002\u0002\u00c8\u09af\u0003",
"\u0002\u0002\u0002\u00ca\u09b1\u0003\u0002\u0002\u0002\u00cc\u09cf\u0003",
"\u0002\u0002\u0002\u00ce\u09d1\u0003\u0002\u0002\u0002\u00d0\u00d1\u0005",
"\u000e\b\u0002\u00d1\u00d2\u0007\u0002\u0002\u0003\u00d2\u00d5\u0003",
"\u0002\u0002\u0002\u00d3\u00d5\u0007\u0002\u0002\u0003\u00d4\u00d0\u0003",
"\u0002\u0002\u0002\u00d4\u00d3\u0003\u0002\u0002\u0002\u00d5\u0003\u0003",
"\u0002\u0002\u0002\u00d6\u00d7\u0005\u008aF\u0002\u00d7\u00d8\u0007",
"\u0002\u0002\u0003\u00d8\u0005\u0003\u0002\u0002\u0002\u00d9\u00da\u0005",
"\u0086D\u0002\u00da\u00db\u0007\u0002\u0002\u0003\u00db\u0007\u0003",
"\u0002\u0002\u0002\u00dc\u00dd\u0005\u0088E\u0002\u00dd\u00de\u0007",
"\u0002\u0002\u0003\u00de\t\u0003\u0002\u0002\u0002\u00df\u00e0\u0005",
"\u00aaV\u0002\u00e0\u00e1\u0007\u0002\u0002\u0003\u00e1\u000b\u0003",
"\u0002\u0002\u0002\u00e2\u00e3\u0005\u00acW\u0002\u00e3\u00e4\u0007",
"\u0002\u0002\u0003\u00e4\r\u0003\u0002\u0002\u0002\u00e5\u0368\u0005",
"\u001a\u000e\u0002\u00e6\u00e7\u0007d\u0002\u0002\u00e7\u0368\u0005",
"\u00c6d\u0002\u00e8\u00e9\u0007Q\u0002\u0002\u00e9\u00ed\u0007\u00d1",
"\u0002\u0002\u00ea\u00eb\u0007\u0081\u0002\u0002\u00eb\u00ec\u0007\"",
"\u0002\u0002\u00ec\u00ee\u0007$\u0002\u0002\u00ed\u00ea\u0003\u0002",
"\u0002\u0002\u00ed\u00ee\u0003\u0002\u0002\u0002\u00ee\u00ef\u0003\u0002",
"\u0002\u0002\u00ef\u00f2\u0005\u00c6d\u0002\u00f0\u00f1\u0007t\u0002",
"\u0002\u00f1\u00f3\u0007\u00f3\u0002\u0002\u00f2\u00f0\u0003\u0002\u0002",
"\u0002\u00f2\u00f3\u0003\u0002\u0002\u0002\u00f3\u00f5\u0003\u0002\u0002",
"\u0002\u00f4\u00f6\u0005\u0018\r\u0002\u00f5\u00f4\u0003\u0002\u0002",
"\u0002\u00f5\u00f6\u0003\u0002\u0002\u0002\u00f6\u00fa\u0003\u0002\u0002",
"\u0002\u00f7\u00f8\u0007O\u0002\u0002\u00f8\u00f9\u0007\u00bc\u0002",
"\u0002\u00f9\u00fb\u0005.\u0018\u0002\u00fa\u00f7\u0003\u0002\u0002",
"\u0002\u00fa\u00fb\u0003\u0002\u0002\u0002\u00fb\u0368\u0003\u0002\u0002",
"\u0002\u00fc\u00fd\u0007o\u0002\u0002\u00fd\u00fe\u0007\u00d1\u0002",
"\u0002\u00fe\u00ff\u0005\u00c6d\u0002\u00ff\u0100\u0007u\u0002\u0002",
"\u0100\u0101\u0007\u00bc\u0002\u0002\u0101\u0102\u0005.\u0018\u0002",
"\u0102\u0368\u0003\u0002\u0002\u0002\u0103\u0104\u0007g\u0002\u0002",
"\u0104\u0107\u0007\u00d1\u0002\u0002\u0105\u0106\u0007\u0081\u0002\u0002",
"\u0106\u0108\u0007$\u0002\u0002\u0107\u0105\u0003\u0002\u0002\u0002",
"\u0107\u0108\u0003\u0002\u0002\u0002\u0108\u0109\u0003\u0002\u0002\u0002",
"\u0109\u010b\u0005\u00c6d\u0002\u010a\u010c\t\u0002\u0002\u0002\u010b",
"\u010a\u0003\u0002\u0002\u0002\u010b\u010c\u0003\u0002\u0002\u0002\u010c",
"\u0368\u0003\u0002\u0002\u0002\u010d\u0112\u0005\u0012\n\u0002\u010e",
"\u010f\u0007\u0003\u0002\u0002\u010f\u0110\u0005\u00acW\u0002\u0110",
"\u0111\u0007\u0004\u0002\u0002\u0111\u0113\u0003\u0002\u0002\u0002\u0112",
"\u010e\u0003\u0002\u0002\u0002\u0112\u0113\u0003\u0002\u0002\u0002\u0113",
"\u0114\u0003\u0002\u0002\u0002\u0114\u0122\u0005,\u0017\u0002\u0115",
"\u0116\u0007\u00b9\u0002\u0002\u0116\u0121\u0005.\u0018\u0002\u0117",
"\u0118\u0007\u00d9\u0002\u0002\u0118\u0119\u0007\u0016\u0002\u0002\u0119",
"\u0121\u0005p9\u0002\u011a\u0121\u0005\u0014\u000b\u0002\u011b\u0121",
"\u0005\u0018\r\u0002\u011c\u011d\u0007t\u0002\u0002\u011d\u0121\u0007",
"\u00f3\u0002\u0002\u011e\u011f\u0007\u00bb\u0002\u0002\u011f\u0121\u0005",
".\u0018\u0002\u0120\u0115\u0003\u0002\u0002\u0002\u0120\u0117\u0003",
"\u0002\u0002\u0002\u0120\u011a\u0003\u0002\u0002\u0002\u0120\u011b\u0003",
"\u0002\u0002\u0002\u0120\u011c\u0003\u0002\u0002\u0002\u0120\u011e\u0003",
"\u0002\u0002\u0002\u0121\u0124\u0003\u0002\u0002\u0002\u0122\u0120\u0003",
"\u0002\u0002\u0002\u0122\u0123\u0003\u0002\u0002\u0002\u0123\u0129\u0003",
"\u0002\u0002\u0002\u0124\u0122\u0003\u0002\u0002\u0002\u0125\u0127\u0007",
"\u0010\u0002\u0002\u0126\u0125\u0003\u0002\u0002\u0002\u0126\u0127\u0003",
"\u0002\u0002\u0002\u0127\u0128\u0003\u0002\u0002\u0002\u0128\u012a\u0005",
"\u001a\u000e\u0002\u0129\u0126\u0003\u0002\u0002\u0002\u0129\u012a\u0003",
"\u0002\u0002\u0002\u012a\u0368\u0003\u0002\u0002\u0002\u012b\u0130\u0005",
"\u0012\n\u0002\u012c\u012d\u0007\u0003\u0002\u0002\u012d\u012e\u0005",
"\u00acW\u0002\u012e\u012f\u0007\u0004\u0002\u0002\u012f\u0131\u0003",
"\u0002\u0002\u0002\u0130\u012c\u0003\u0002\u0002\u0002\u0130\u0131\u0003",
"\u0002\u0002\u0002\u0131\u0143\u0003\u0002\u0002\u0002\u0132\u0133\u0007",
"t\u0002\u0002\u0133\u0142\u0007\u00f3\u0002\u0002\u0134\u0135\u0007",
"\u00d9\u0002\u0002\u0135\u0136\u0007\u0016\u0002\u0002\u0136\u0137\u0007",
"\u0003\u0002\u0002\u0137\u0138\u0005\u00acW\u0002\u0138\u0139\u0007",
"\u0004\u0002\u0002\u0139\u0142\u0003\u0002\u0002\u0002\u013a\u0142\u0005",
"\u0014\u000b\u0002\u013b\u0142\u0005\u0016\f\u0002\u013c\u0142\u0005",
"\u0084C\u0002\u013d\u0142\u0005:\u001e\u0002\u013e\u0142\u0005\u0018",
"\r\u0002\u013f\u0140\u0007\u00bb\u0002\u0002\u0140\u0142\u0005.\u0018",
"\u0002\u0141\u0132\u0003\u0002\u0002\u0002\u0141\u0134\u0003\u0002\u0002",
"\u0002\u0141\u013a\u0003\u0002\u0002\u0002\u0141\u013b\u0003\u0002\u0002",
"\u0002\u0141\u013c\u0003\u0002\u0002\u0002\u0141\u013d\u0003\u0002\u0002",
"\u0002\u0141\u013e\u0003\u0002\u0002\u0002\u0141\u013f\u0003\u0002\u0002",
"\u0002\u0142\u0145\u0003\u0002\u0002\u0002\u0143\u0141\u0003\u0002\u0002",
"\u0002\u0143\u0144\u0003\u0002\u0002\u0002\u0144\u014a\u0003\u0002\u0002",
"\u0002\u0145\u0143\u0003\u0002\u0002\u0002\u0146\u0148\u0007\u0010\u0002",
"\u0002\u0147\u0146\u0003\u0002\u0002\u0002\u0147\u0148\u0003\u0002\u0002",
"\u0002\u0148\u0149\u0003\u0002\u0002\u0002\u0149\u014b\u0005\u001a\u000e",
"\u0002\u014a\u0147\u0003\u0002\u0002\u0002\u014a\u014b\u0003\u0002\u0002",
"\u0002\u014b\u0368\u0003\u0002\u0002\u0002\u014c\u014d\u0007Q\u0002",
"\u0002\u014d\u0151\u0007R\u0002\u0002\u014e\u014f\u0005\u00c6d\u0002",
"\u014f\u0150\u0007\u0005\u0002\u0002\u0150\u0152\u0003\u0002\u0002\u0002",
"\u0151\u014e\u0003\u0002\u0002\u0002\u0151\u0152\u0003\u0002\u0002\u0002",
"\u0152\u0153\u0003\u0002\u0002\u0002\u0153\u0158\u0005\u0086D\u0002",
"\u0154\u0155\u0007\u0003\u0002\u0002\u0155\u0156\u0005\u00b0Y\u0002",
"\u0156\u0157\u0007\u0004\u0002\u0002\u0157\u0159\u0003\u0002\u0002\u0002",
"\u0158\u0154\u0003\u0002\u0002\u0002\u0158\u0159\u0003\u0002\u0002\u0002",
"\u0159\u015c\u0003\u0002\u0002\u0002\u015a\u015b\u0007t\u0002\u0002",
"\u015b\u015d\u0007\u00f3\u0002\u0002\u015c\u015a\u0003\u0002\u0002\u0002",
"\u015c\u015d\u0003\u0002\u0002\u0002\u015d\u0164\u0003\u0002\u0002\u0002",
"\u015e\u015f\u0007\u00d9\u0002\u0002\u015f\u0160\u0007\u0016\u0002\u0002",
"\u0160\u0161\u0007\u0003\u0002\u0002\u0161\u0162\u0005p9\u0002\u0162",
"\u0163\u0007\u0004\u0002\u0002\u0163\u0165\u0003\u0002\u0002\u0002\u0164",
"\u015e\u0003\u0002\u0002\u0002\u0164\u0165\u0003\u0002\u0002\u0002\u0165",
"\u0166\u0003\u0002\u0002\u0002\u0166\u0167\u0007O\u0002\u0002\u0167",
"\u0168\u0005.\u0018\u0002\u0168\u0368\u0003\u0002\u0002\u0002\u0169",
"\u016a\u0007Q\u0002\u0002\u016a\u016e\u0007R\u0002\u0002\u016b\u016c",
"\u0007\u0081\u0002\u0002\u016c\u016d\u0007\"\u0002\u0002\u016d\u016f",
"\u0007$\u0002\u0002\u016e\u016b\u0003\u0002\u0002\u0002\u016e\u016f",
"\u0003\u0002\u0002\u0002\u016f\u0170\u0003\u0002\u0002\u0002\u0170\u0171",
"\u0005\u0086D\u0002\u0171\u0172\u0007&\u0002\u0002\u0172\u0174\u0005",
"\u0086D\u0002\u0173\u0175\u0005\u0018\r\u0002\u0174\u0173\u0003\u0002",
"\u0002\u0002\u0174\u0175\u0003\u0002\u0002\u0002\u0175\u0368\u0003\u0002",
"\u0002\u0002\u0176\u0177\u0007\u00d5\u0002\u0002\u0177\u0178\u0007R",
"\u0002\u0002\u0178\u017a\u0005\u0086D\u0002\u0179\u017b\u0005 \u0011",
"\u0002\u017a\u0179\u0003\u0002\u0002\u0002\u017a\u017b\u0003\u0002\u0002",
"\u0002\u017b\u017c\u0003\u0002\u0002\u0002\u017c\u017d\u0007\u00d6\u0002",
"\u0002\u017d\u0185\u0007\u00d8\u0002\u0002\u017e\u0186\u0005\u00c6d",
"\u0002\u017f\u0180\u0007/\u0002\u0002\u0180\u0181\u0007b\u0002\u0002",
"\u0181\u0186\u0005r:\u0002\u0182\u0183\u0007/\u0002\u0002\u0183\u0184",
"\u0007\u0011\u0002\u0002\u0184\u0186\u0007b\u0002\u0002\u0185\u017e",
"\u0003\u0002\u0002\u0002\u0185\u017f\u0003\u0002\u0002\u0002\u0185\u0182",
"\u0003\u0002\u0002\u0002\u0185\u0186\u0003\u0002\u0002\u0002\u0186\u0368",
"\u0003\u0002\u0002\u0002\u0187\u0188\u0007o\u0002\u0002\u0188\u0189",
"\u0007R\u0002\u0002\u0189\u018a\u0005\u0086D\u0002\u018a\u018b\u0007",
"\u000f\u0002\u0002\u018b\u018c\u0007b\u0002\u0002\u018c\u018d\u0007",
"\u0003\u0002\u0002\u018d\u018e\u0005\u00acW\u0002\u018e\u018f\u0007",
"\u0004\u0002\u0002\u018f\u0368\u0003\u0002\u0002\u0002\u0190\u0191\u0007",
"o\u0002\u0002\u0191\u0192\t\u0003\u0002\u0002\u0192\u0193\u0005\u0086",
"D\u0002\u0193\u0194\u0007p\u0002\u0002\u0194\u0195\u0007l\u0002\u0002",
"\u0195\u0196\u0005\u0086D\u0002\u0196\u0368\u0003\u0002\u0002\u0002",
"\u0197\u0198\u0007o\u0002\u0002\u0198\u0199\t\u0003\u0002\u0002\u0199",
"\u019a\u0005\u0086D\u0002\u019a\u019b\u0007u\u0002\u0002\u019b\u019c",
"\u0007\u00bb\u0002\u0002\u019c\u019d\u0005.\u0018\u0002\u019d\u0368",
"\u0003\u0002\u0002\u0002\u019e\u019f\u0007o\u0002\u0002\u019f\u01a0",
"\t\u0003\u0002\u0002\u01a0\u01a1\u0005\u0086D\u0002\u01a1\u01a2\u0007",
"\u00ba\u0002\u0002\u01a2\u01a5\u0007\u00bb\u0002\u0002\u01a3\u01a4\u0007",
"\u0081\u0002\u0002\u01a4\u01a6\u0007$\u0002\u0002\u01a5\u01a3\u0003",
"\u0002\u0002\u0002\u01a5\u01a6\u0003\u0002\u0002\u0002\u01a6\u01a7\u0003",
"\u0002\u0002\u0002\u01a7\u01a8\u0005.\u0018\u0002\u01a8\u0368\u0003",
"\u0002\u0002\u0002\u01a9\u01aa\u0007o\u0002\u0002\u01aa\u01ab\u0007",
"R\u0002\u0002\u01ab\u01ad\u0005\u0086D\u0002\u01ac\u01ae\u0005 \u0011",
"\u0002\u01ad\u01ac\u0003\u0002\u0002\u0002\u01ad\u01ae\u0003\u0002\u0002",
"\u0002\u01ae\u01af\u0003\u0002\u0002\u0002\u01af\u01b1\u0007\u00c9\u0002",
"\u0002\u01b0\u01b2\u0007c\u0002\u0002\u01b1\u01b0\u0003\u0002\u0002",
"\u0002\u01b1\u01b2\u0003\u0002\u0002\u0002\u01b2\u01b3\u0003\u0002\u0002",
"\u0002\u01b3\u01b4\u0005\u00c6d\u0002\u01b4\u01b6\u0005\u00aeX\u0002",
"\u01b5\u01b7\u0005\u00a8U\u0002\u01b6\u01b5\u0003\u0002\u0002\u0002",
"\u01b6\u01b7\u0003\u0002\u0002\u0002\u01b7\u0368\u0003\u0002\u0002\u0002",
"\u01b8\u01b9\u0007o\u0002\u0002\u01b9\u01ba\u0007R\u0002\u0002\u01ba",
"\u01bc\u0005\u0086D\u0002\u01bb\u01bd\u0005 \u0011\u0002\u01bc\u01bb",
"\u0003\u0002\u0002\u0002\u01bc\u01bd\u0003\u0002\u0002\u0002\u01bd\u01be",
"\u0003\u0002\u0002\u0002\u01be\u01bf\u0007u\u0002\u0002\u01bf\u01c0",
"\u0007\u00a2\u0002\u0002\u01c0\u01c4\u0007\u00f3\u0002\u0002\u01c1\u01c2",
"\u0007O\u0002\u0002\u01c2\u01c3\u0007\u00a3\u0002\u0002\u01c3\u01c5",
"\u0005.\u0018\u0002\u01c4\u01c1\u0003\u0002\u0002\u0002\u01c4\u01c5",
"\u0003\u0002\u0002\u0002\u01c5\u0368\u0003\u0002\u0002\u0002\u01c6\u01c7",
"\u0007o\u0002\u0002\u01c7\u01c8\u0007R\u0002\u0002\u01c8\u01ca\u0005",
"\u0086D\u0002\u01c9\u01cb\u0005 \u0011\u0002\u01ca\u01c9\u0003\u0002",
"\u0002\u0002\u01ca\u01cb\u0003\u0002\u0002\u0002\u01cb\u01cc\u0003\u0002",
"\u0002\u0002\u01cc\u01cd\u0007u\u0002\u0002\u01cd\u01ce\u0007\u00a3",
"\u0002\u0002\u01ce\u01cf\u0005.\u0018\u0002\u01cf\u0368\u0003\u0002",
"\u0002\u0002\u01d0\u01d1\u0007o\u0002\u0002\u01d1\u01d2\u0007R\u0002",
"\u0002\u01d2\u01d3\u0005\u0086D\u0002\u01d3\u01d7\u0007\u000f\u0002",
"\u0002\u01d4\u01d5\u0007\u0081\u0002\u0002\u01d5\u01d6\u0007\"\u0002",
"\u0002\u01d6\u01d8\u0007$\u0002\u0002\u01d7\u01d4\u0003\u0002\u0002",
"\u0002\u01d7\u01d8\u0003\u0002\u0002\u0002\u01d8\u01da\u0003\u0002\u0002",
"\u0002\u01d9\u01db\u0005\u001e\u0010\u0002\u01da\u01d9\u0003\u0002\u0002",
"\u0002\u01db\u01dc\u0003\u0002\u0002\u0002\u01dc\u01da\u0003\u0002\u0002",
"\u0002\u01dc\u01dd\u0003\u0002\u0002\u0002\u01dd\u0368\u0003\u0002\u0002",
"\u0002\u01de\u01df\u0007o\u0002\u0002\u01df\u01e0\u0007T\u0002\u0002",
"\u01e0\u01e1\u0005\u0086D\u0002\u01e1\u01e5\u0007\u000f\u0002\u0002",
"\u01e2\u01e3\u0007\u0081\u0002\u0002\u01e3\u01e4\u0007\"\u0002\u0002",
"\u01e4\u01e6\u0007$\u0002\u0002\u01e5\u01e2\u0003\u0002\u0002\u0002",
"\u01e5\u01e6\u0003\u0002\u0002\u0002\u01e6\u01e8\u0003\u0002\u0002\u0002",
"\u01e7\u01e9\u0005 \u0011\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\u0368\u0003\u0002\u0002\u0002",
"\u01ec\u01ed\u0007o\u0002\u0002\u01ed\u01ee\u0007R\u0002\u0002\u01ee",
"\u01ef\u0005\u0086D\u0002\u01ef\u01f0\u0005 \u0011\u0002\u01f0\u01f1",
"\u0007p\u0002\u0002\u01f1\u01f2\u0007l\u0002\u0002\u01f2\u01f3\u0005",
" \u0011\u0002\u01f3\u0368\u0003\u0002\u0002\u0002\u01f4\u01f5\u0007",
"o\u0002\u0002\u01f5\u01f6\u0007R\u0002\u0002\u01f6\u01f7\u0005\u0086",
"D\u0002\u01f7\u01fa\u0007g\u0002\u0002\u01f8\u01f9\u0007\u0081\u0002",
"\u0002\u01f9\u01fb\u0007$\u0002\u0002\u01fa\u01f8\u0003\u0002\u0002",
"\u0002\u01fa\u01fb\u0003\u0002\u0002\u0002\u01fb\u01fc\u0003\u0002\u0002",
"\u0002\u01fc\u0201\u0005 \u0011\u0002\u01fd\u01fe\u0007\u0006\u0002",
"\u0002\u01fe\u0200\u0005 \u0011\u0002\u01ff\u01fd\u0003\u0002\u0002",
"\u0002\u0200\u0203\u0003\u0002\u0002\u0002\u0201\u01ff\u0003\u0002\u0002",
"\u0002\u0201\u0202\u0003\u0002\u0002\u0002\u0202\u0205\u0003\u0002\u0002",
"\u0002\u0203\u0201\u0003\u0002\u0002\u0002\u0204\u0206\u0007\u00ce\u0002",
"\u0002\u0205\u0204\u0003\u0002\u0002\u0002\u0205\u0206\u0003\u0002\u0002",
"\u0002\u0206\u0368\u0003\u0002\u0002\u0002\u0207\u0208\u0007o\u0002",
"\u0002\u0208\u0209\u0007T\u0002\u0002\u0209\u020a\u0005\u0086D\u0002",
"\u020a\u020d\u0007g\u0002\u0002\u020b\u020c\u0007\u0081\u0002\u0002",
"\u020c\u020e\u0007$\u0002\u0002\u020d\u020b\u0003\u0002\u0002\u0002",
"\u020d\u020e\u0003\u0002\u0002\u0002\u020e\u020f\u0003\u0002\u0002\u0002",
"\u020f\u0214\u0005 \u0011\u0002\u0210\u0211\u0007\u0006\u0002\u0002",
"\u0211\u0213\u0005 \u0011\u0002\u0212\u0210\u0003\u0002\u0002\u0002",
"\u0213\u0216\u0003\u0002\u0002\u0002\u0214\u0212\u0003\u0002\u0002\u0002",
"\u0214\u0215\u0003\u0002\u0002\u0002\u0215\u0368\u0003\u0002\u0002\u0002",
"\u0216\u0214\u0003\u0002\u0002\u0002\u0217\u0218\u0007o\u0002\u0002",
"\u0218\u0219\u0007R\u0002\u0002\u0219\u021b\u0005\u0086D\u0002\u021a",
"\u021c\u0005 \u0011\u0002\u021b\u021a\u0003\u0002\u0002\u0002\u021b",
"\u021c\u0003\u0002\u0002\u0002\u021c\u021d\u0003\u0002\u0002\u0002\u021d",
"\u021e\u0007u\u0002\u0002\u021e\u021f\u0005\u0018\r\u0002\u021f\u0368",
"\u0003\u0002\u0002\u0002\u0220\u0221\u0007o\u0002\u0002\u0221\u0222",
"\u0007R\u0002\u0002\u0222\u0223\u0005\u0086D\u0002\u0223\u0224\u0007",
"\u00e2\u0002\u0002\u0224\u0225\u0007e\u0002\u0002\u0225\u0368\u0003",
"\u0002\u0002\u0002\u0226\u0227\u0007g\u0002\u0002\u0227\u022a\u0007",
"R\u0002\u0002\u0228\u0229\u0007\u0081\u0002\u0002\u0229\u022b\u0007",
"$\u0002\u0002\u022a\u0228\u0003\u0002\u0002\u0002\u022a\u022b\u0003",
"\u0002\u0002\u0002\u022b\u022c\u0003\u0002\u0002\u0002\u022c\u022e\u0005",
"\u0086D\u0002\u022d\u022f\u0007\u00ce\u0002\u0002\u022e\u022d\u0003",
"\u0002\u0002\u0002\u022e\u022f\u0003\u0002\u0002\u0002\u022f\u0368\u0003",
"\u0002\u0002\u0002\u0230\u0231\u0007g\u0002\u0002\u0231\u0234\u0007",
"T\u0002\u0002\u0232\u0233\u0007\u0081\u0002\u0002\u0233\u0235\u0007",
"$\u0002\u0002\u0234\u0232\u0003\u0002\u0002\u0002\u0234\u0235\u0003",
"\u0002\u0002\u0002\u0235\u0236\u0003\u0002\u0002\u0002\u0236\u0368\u0005",
"\u0086D\u0002\u0237\u023a\u0007Q\u0002\u0002\u0238\u0239\u0007\u001f",
"\u0002\u0002\u0239\u023b\u0007U\u0002\u0002\u023a\u0238\u0003\u0002",
"\u0002\u0002\u023a\u023b\u0003\u0002\u0002\u0002\u023b\u0240\u0003\u0002",
"\u0002\u0002\u023c\u023e\u0007\u00b7\u0002\u0002\u023d\u023c\u0003\u0002",
"\u0002\u0002\u023d\u023e\u0003\u0002\u0002\u0002\u023e\u023f\u0003\u0002",
"\u0002\u0002\u023f\u0241\u0007\u00b8\u0002\u0002\u0240\u023d\u0003\u0002",
"\u0002\u0002\u0240\u0241\u0003\u0002\u0002\u0002\u0241\u0242\u0003\u0002",
"\u0002\u0002\u0242\u0246\u0007T\u0002\u0002\u0243\u0244\u0007\u0081",
"\u0002\u0002\u0244\u0245\u0007\"\u0002\u0002\u0245\u0247\u0007$\u0002",
"\u0002\u0246\u0243\u0003\u0002\u0002\u0002\u0246\u0247\u0003\u0002\u0002",
"\u0002\u0247\u0248\u0003\u0002\u0002\u0002\u0248\u024a\u0005\u0086D",
"\u0002\u0249\u024b\u0005x=\u0002\u024a\u0249\u0003\u0002\u0002\u0002",
"\u024a\u024b\u0003\u0002\u0002\u0002\u024b\u024e\u0003\u0002\u0002\u0002",
"\u024c\u024d\u0007t\u0002\u0002\u024d\u024f\u0007\u00f3\u0002\u0002",
"\u024e\u024c\u0003\u0002\u0002\u0002\u024e\u024f\u0003\u0002\u0002\u0002",
"\u024f\u0253\u0003\u0002\u0002\u0002\u0250\u0251\u0007\u00d9\u0002\u0002",
"\u0251\u0252\u0007?\u0002\u0002\u0252\u0254\u0005p9\u0002\u0253\u0250",
"\u0003\u0002\u0002\u0002\u0253\u0254\u0003\u0002\u0002\u0002\u0254\u0257",
"\u0003\u0002\u0002\u0002\u0255\u0256\u0007\u00bb\u0002\u0002\u0256\u0258",
"\u0005.\u0018\u0002\u0257\u0255\u0003\u0002\u0002\u0002\u0257\u0258",
"\u0003\u0002\u0002\u0002\u0258\u0259\u0003\u0002\u0002\u0002\u0259\u025a",
"\u0007\u0010\u0002\u0002\u025a\u025b\u0005\u001a\u000e\u0002\u025b\u0368",
"\u0003\u0002\u0002\u0002\u025c\u025f\u0007Q\u0002\u0002\u025d\u025e",
"\u0007\u001f\u0002\u0002\u025e\u0260\u0007U\u0002\u0002\u025f\u025d",
"\u0003\u0002\u0002\u0002\u025f\u0260\u0003\u0002\u0002\u0002\u0260\u0262",
"\u0003\u0002\u0002\u0002\u0261\u0263\u0007\u00b7\u0002\u0002\u0262\u0261",
"\u0003\u0002\u0002\u0002\u0262\u0263\u0003\u0002\u0002\u0002\u0263\u0264",
"\u0003\u0002\u0002\u0002\u0264\u0265\u0007\u00b8\u0002\u0002\u0265\u0266",
"\u0007T\u0002\u0002\u0266\u026b\u0005\u0086D\u0002\u0267\u0268\u0007",
"\u0003\u0002\u0002\u0268\u0269\u0005\u00acW\u0002\u0269\u026a\u0007",
"\u0004\u0002\u0002\u026a\u026c\u0003\u0002\u0002\u0002\u026b\u0267\u0003",
"\u0002\u0002\u0002\u026b\u026c\u0003\u0002\u0002\u0002\u026c\u026d\u0003",
"\u0002\u0002\u0002\u026d\u0270\u0005,\u0017\u0002\u026e\u026f\u0007",
"\u00b9\u0002\u0002\u026f\u0271\u0005.\u0018\u0002\u0270\u026e\u0003",
"\u0002\u0002\u0002\u0270\u0271\u0003\u0002\u0002\u0002\u0271\u0368\u0003",
"\u0002\u0002\u0002\u0272\u0273\u0007o\u0002\u0002\u0273\u0274\u0007",
"T\u0002\u0002\u0274\u0276\u0005\u0086D\u0002\u0275\u0277\u0007\u0010",
"\u0002\u0002\u0276\u0275\u0003\u0002\u0002\u0002\u0276\u0277\u0003\u0002",
"\u0002\u0002\u0277\u0278\u0003\u0002\u0002\u0002\u0278\u0279\u0005\u001a",
"\u000e\u0002\u0279\u0368\u0003\u0002\u0002\u0002\u027a\u027d\u0007Q",
"\u0002\u0002\u027b\u027c\u0007\u001f\u0002\u0002\u027c\u027e\u0007U",
"\u0002\u0002\u027d\u027b\u0003\u0002\u0002\u0002\u027d\u027e\u0003\u0002",
"\u0002\u0002\u027e\u0280\u0003\u0002\u0002\u0002\u027f\u0281\u0007\u00b8",
"\u0002\u0002\u0280\u027f\u0003\u0002\u0002\u0002\u0280\u0281\u0003\u0002",
"\u0002\u0002\u0281\u0282\u0003\u0002\u0002\u0002\u0282\u0286\u0007\u00af",
"\u0002\u0002\u0283\u0284\u0007\u0081\u0002\u0002\u0284\u0285\u0007\"",
"\u0002\u0002\u0285\u0287\u0007$\u0002\u0002\u0286\u0283\u0003\u0002",
"\u0002\u0002\u0286\u0287\u0003\u0002\u0002\u0002\u0287\u0288\u0003\u0002",
"\u0002\u0002\u0288\u0289\u0005\u00c4c\u0002\u0289\u028a\u0007\u0010",
"\u0002\u0002\u028a\u0294\u0007\u00f3\u0002\u0002\u028b\u028c\u0007\u00a1",
"\u0002\u0002\u028c\u0291\u0005@!\u0002\u028d\u028e\u0007\u0006\u0002",
"\u0002\u028e\u0290\u0005@!\u0002\u028f\u028d\u0003\u0002\u0002\u0002",
"\u0290\u0293\u0003\u0002\u0002\u0002\u0291\u028f\u0003\u0002\u0002\u0002",
"\u0291\u0292\u0003\u0002\u0002\u0002\u0292\u0295\u0003\u0002\u0002\u0002",
"\u0293\u0291\u0003\u0002\u0002\u0002\u0294\u028b\u0003\u0002\u0002\u0002",
"\u0294\u0295\u0003\u0002\u0002\u0002\u0295\u0368\u0003\u0002\u0002\u0002",
"\u0296\u0298\u0007g\u0002\u0002\u0297\u0299\u0007\u00b8\u0002\u0002",
"\u0298\u0297\u0003\u0002\u0002\u0002\u0298\u0299\u0003\u0002\u0002\u0002",
"\u0299\u029a\u0003\u0002\u0002\u0002\u029a\u029d\u0007\u00af\u0002\u0002",
"\u029b\u029c\u0007\u0081\u0002\u0002\u029c\u029e\u0007$\u0002\u0002",
"\u029d\u029b\u0003\u0002\u0002\u0002\u029d\u029e\u0003\u0002\u0002\u0002",
"\u029e\u029f\u0003\u0002\u0002\u0002\u029f\u0368\u0005\u00c4c\u0002",
"\u02a0\u02a2\u0007Z\u0002\u0002\u02a1\u02a3\t\u0004\u0002\u0002\u02a2",
"\u02a1\u0003\u0002\u0002\u0002\u02a2\u02a3\u0003\u0002\u0002\u0002\u02a3",
"\u02a4\u0003\u0002\u0002\u0002\u02a4\u0368\u0005\u000e\b\u0002\u02a5",
"\u02a6\u0007`\u0002\u0002\u02a6\u02a9\u0007a\u0002\u0002\u02a7\u02a8",
"\t\u0005\u0002\u0002\u02a8\u02aa\u0005\u00c6d\u0002\u02a9\u02a7\u0003",
"\u0002\u0002\u0002\u02a9\u02aa\u0003\u0002\u0002\u0002\u02aa\u02af\u0003",
"\u0002\u0002\u0002\u02ab\u02ad\u0007&\u0002\u0002\u02ac\u02ab\u0003",
"\u0002\u0002\u0002\u02ac\u02ad\u0003\u0002\u0002\u0002\u02ad\u02ae\u0003",
"\u0002\u0002\u0002\u02ae\u02b0\u0007\u00f3\u0002\u0002\u02af\u02ac\u0003",
"\u0002\u0002\u0002\u02af\u02b0\u0003\u0002\u0002\u0002\u02b0\u0368\u0003",
"\u0002\u0002\u0002\u02b1\u02b2\u0007`\u0002\u0002\u02b2\u02b3\u0007",
"R\u0002\u0002\u02b3\u02b6\u0007\u00b0\u0002\u0002\u02b4\u02b5\t\u0005",
"\u0002\u0002\u02b5\u02b7\u0005\u00c6d\u0002\u02b6\u02b4\u0003\u0002",
"\u0002\u0002\u02b6\u02b7\u0003\u0002\u0002\u0002\u02b7\u02b8\u0003\u0002",
"\u0002\u0002\u02b8\u02b9\u0007&\u0002\u0002\u02b9\u02bb\u0007\u00f3",
"\u0002\u0002\u02ba\u02bc\u0005 \u0011\u0002\u02bb\u02ba\u0003\u0002",
"\u0002\u0002\u02bb\u02bc\u0003\u0002\u0002\u0002\u02bc\u0368\u0003\u0002",
"\u0002\u0002\u02bd\u02be\u0007`\u0002\u0002\u02be\u02c3\u0007\u00d2",
"\u0002\u0002\u02bf\u02c1\u0007&\u0002\u0002\u02c0\u02bf\u0003\u0002",
"\u0002\u0002\u02c0\u02c1\u0003\u0002\u0002\u0002\u02c1\u02c2\u0003\u0002",
"\u0002\u0002\u02c2\u02c4\u0007\u00f3\u0002\u0002\u02c3\u02c0\u0003\u0002",
"\u0002\u0002\u02c3\u02c4\u0003\u0002\u0002\u0002\u02c4\u0368\u0003\u0002",
"\u0002\u0002\u02c5\u02c6\u0007`\u0002\u0002\u02c6\u02c7\u0007\u00bb",
"\u0002\u0002\u02c7\u02cc\u0005\u0086D\u0002\u02c8\u02c9\u0007\u0003",
"\u0002\u0002\u02c9\u02ca\u00052\u001a\u0002\u02ca\u02cb\u0007\u0004",
"\u0002\u0002\u02cb\u02cd\u0003\u0002\u0002\u0002\u02cc\u02c8\u0003\u0002",
"\u0002\u0002\u02cc\u02cd\u0003\u0002\u0002\u0002\u02cd\u0368\u0003\u0002",
"\u0002\u0002\u02ce\u02cf\u0007`\u0002\u0002\u02cf\u02d0\u0007b\u0002",
"\u0002\u02d0\u02d1\t\u0005\u0002\u0002\u02d1\u02d4\u0005\u0086D\u0002",
"\u02d2\u02d3\t\u0005\u0002\u0002\u02d3\u02d5\u0005\u00c6d\u0002\u02d4",
"\u02d2\u0003\u0002\u0002\u0002\u02d4\u02d5\u0003\u0002\u0002\u0002\u02d5",
"\u0368\u0003\u0002\u0002\u0002\u02d6\u02d7\u0007`\u0002\u0002\u02d7",
"\u02d8\u0007e\u0002\u0002\u02d8\u02da\u0005\u0086D\u0002\u02d9\u02db",
"\u0005 \u0011\u0002\u02da\u02d9\u0003\u0002\u0002\u0002\u02da\u02db",
"\u0003\u0002\u0002\u0002\u02db\u0368\u0003\u0002\u0002\u0002\u02dc\u02de",
"\u0007`\u0002\u0002\u02dd\u02df\u0005\u00c6d\u0002\u02de\u02dd\u0003",
"\u0002\u0002\u0002\u02de\u02df\u0003\u0002\u0002\u0002\u02df\u02e0\u0003",
"\u0002\u0002\u0002\u02e0\u02e8\u0007f\u0002\u0002\u02e1\u02e3\u0007",
"&\u0002\u0002\u02e2\u02e1\u0003\u0002\u0002\u0002\u02e2\u02e3\u0003",
"\u0002\u0002\u0002\u02e3\u02e6\u0003\u0002\u0002\u0002\u02e4\u02e7\u0005",
"\u00c4c\u0002\u02e5\u02e7\u0007\u00f3\u0002\u0002\u02e6\u02e4\u0003",
"\u0002\u0002\u0002\u02e6\u02e5\u0003\u0002\u0002\u0002\u02e7\u02e9\u0003",
"\u0002\u0002\u0002\u02e8\u02e2\u0003\u0002\u0002\u0002\u02e8\u02e9\u0003",
"\u0002\u0002\u0002\u02e9\u0368\u0003\u0002\u0002\u0002\u02ea\u02eb\u0007",
"`\u0002\u0002\u02eb\u02ec\u0007Q\u0002\u0002\u02ec\u02ed\u0007R\u0002",
"\u0002\u02ed\u0368\u0005\u0086D\u0002\u02ee\u02ef\t\u0006\u0002\u0002",
"\u02ef\u02f1\u0007\u00af\u0002\u0002\u02f0\u02f2\u0007\u00b0\u0002\u0002",
"\u02f1\u02f0\u0003\u0002\u0002\u0002\u02f1\u02f2\u0003\u0002\u0002\u0002",
"\u02f2\u02f3\u0003\u0002\u0002\u0002\u02f3\u0368\u0005$\u0013\u0002",
"\u02f4\u02f5\t\u0006\u0002\u0002\u02f5\u02f7\u0007\u00d1\u0002\u0002",
"\u02f6\u02f8\u0007\u00b0\u0002\u0002\u02f7\u02f6\u0003\u0002\u0002\u0002",
"\u02f7\u02f8\u0003\u0002\u0002\u0002\u02f8\u02f9\u0003\u0002\u0002\u0002",
"\u02f9\u0368\u0005\u00c6d\u0002\u02fa\u02fc\t\u0006\u0002\u0002\u02fb",
"\u02fd\u0007R\u0002\u0002\u02fc\u02fb\u0003\u0002\u0002\u0002\u02fc",
"\u02fd\u0003\u0002\u0002\u0002\u02fd\u02ff\u0003\u0002\u0002\u0002\u02fe",
"\u0300\t\u0007\u0002\u0002\u02ff\u02fe\u0003\u0002\u0002\u0002\u02ff",
"\u0300\u0003\u0002\u0002\u0002\u0300\u0301\u0003\u0002\u0002\u0002\u0301",
"\u0303\u0005\u0086D\u0002\u0302\u0304\u0005 \u0011\u0002\u0303\u0302",
"\u0003\u0002\u0002\u0002\u0303\u0304\u0003\u0002\u0002\u0002\u0304\u0306",
"\u0003\u0002\u0002\u0002\u0305\u0307\u0005&\u0014\u0002\u0306\u0305",
"\u0003\u0002\u0002\u0002\u0306\u0307\u0003\u0002\u0002\u0002\u0307\u0368",
"\u0003\u0002\u0002\u0002\u0308\u0309\u0007\u00b1\u0002\u0002\u0309\u030a",
"\u0007R\u0002\u0002\u030a\u0368\u0005\u0086D\u0002\u030b\u0313\u0007",
"\u00b1\u0002\u0002\u030c\u0314\u0007\u00f3\u0002\u0002\u030d\u030f\u000b",
"\u0002\u0002\u0002\u030e\u030d\u0003\u0002\u0002\u0002\u030f\u0312\u0003",
"\u0002\u0002\u0002\u0310\u0311\u0003\u0002\u0002\u0002\u0310\u030e\u0003",
"\u0002\u0002\u0002\u0311\u0314\u0003\u0002\u0002\u0002\u0312\u0310\u0003",
"\u0002\u0002\u0002\u0313\u030c\u0003\u0002\u0002\u0002\u0313\u0310\u0003",
"\u0002\u0002\u0002\u0314\u0368\u0003\u0002\u0002\u0002\u0315\u0317\u0007",
"\u00b3\u0002\u0002\u0316\u0318\u0007\u00b5\u0002\u0002\u0317\u0316\u0003",
"\u0002\u0002\u0002\u0317\u0318\u0003\u0002\u0002\u0002\u0318\u0319\u0003",
"\u0002\u0002\u0002\u0319\u031a\u0007R\u0002\u0002\u031a\u031d\u0005",
"\u0086D\u0002\u031b\u031c\u0007\u00b9\u0002\u0002\u031c\u031e\u0005",
".\u0018\u0002\u031d\u031b\u0003\u0002\u0002\u0002\u031d\u031e\u0003",
"\u0002\u0002\u0002\u031e\u0323\u0003\u0002\u0002\u0002\u031f\u0321\u0007",
"\u0010\u0002\u0002\u0320\u031f\u0003\u0002\u0002\u0002\u0320\u0321\u0003",
"\u0002\u0002\u0002\u0321\u0322\u0003\u0002\u0002\u0002\u0322\u0324\u0005",
"\u001a\u000e\u0002\u0323\u0320\u0003\u0002\u0002\u0002\u0323\u0324\u0003",
"\u0002\u0002\u0002\u0324\u0368\u0003\u0002\u0002\u0002\u0325\u0326\u0007",
"\u00b4\u0002\u0002\u0326\u0329\u0007R\u0002\u0002\u0327\u0328\u0007",
"\u0081\u0002\u0002\u0328\u032a\u0007$\u0002\u0002\u0329\u0327\u0003",
"\u0002\u0002\u0002\u0329\u032a\u0003\u0002\u0002\u0002\u032a\u032b\u0003",
"\u0002\u0002\u0002\u032b\u0368\u0005\u0086D\u0002\u032c\u032d\u0007",
"\u00b2\u0002\u0002\u032d\u0368\u0007\u00b3\u0002\u0002\u032e\u032f\u0007",
"\u00e5\u0002\u0002\u032f\u0331\u0007w\u0002\u0002\u0330\u0332\u0007",
"\u00f0\u0002\u0002\u0331\u0330\u0003\u0002\u0002\u0002\u0331\u0332\u0003",
"\u0002\u0002\u0002\u0332\u0333\u0003\u0002\u0002\u0002\u0333\u0334\u0007",
"\u00f1\u0002\u0002\u0334\u0336\u0007\u00f3\u0002\u0002\u0335\u0337\u0007",
"\u009e\u0002\u0002\u0336\u0335\u0003\u0002\u0002\u0002\u0336\u0337\u0003",
"\u0002\u0002\u0002\u0337\u0338\u0003\u0002\u0002\u0002\u0338\u0339\u0007",
"X\u0002\u0002\u0339\u033a\u0007R\u0002\u0002\u033a\u033c\u0005\u0086",
"D\u0002\u033b\u033d\u0005 \u0011\u0002\u033c\u033b\u0003\u0002\u0002",
"\u0002\u033c\u033d\u0003\u0002\u0002\u0002\u033d\u0368\u0003\u0002\u0002",
"\u0002\u033e\u033f\u0007\u00d4\u0002\u0002\u033f\u0340\u0007R\u0002",
"\u0002\u0340\u0342\u0005\u0086D\u0002\u0341\u0343\u0005 \u0011\u0002",
"\u0342\u0341\u0003\u0002\u0002\u0002\u0342\u0343\u0003\u0002\u0002\u0002",
"\u0343\u0368\u0003\u0002\u0002\u0002\u0344\u0345\u0007\u00e0\u0002\u0002",
"\u0345\u0346\u0007\u00e1\u0002\u0002\u0346\u0347\u0007R\u0002\u0002",
"\u0347\u0368\u0005\u0086D\u0002\u0348\u0349\t\b\u0002\u0002\u0349\u034d",
"\u0005\u00c6d\u0002\u034a\u034c\u000b\u0002\u0002\u0002\u034b\u034a",
"\u0003\u0002\u0002\u0002\u034c\u034f\u0003\u0002\u0002\u0002\u034d\u034e",
"\u0003\u0002\u0002\u0002\u034d\u034b\u0003\u0002\u0002\u0002\u034e\u0368",
"\u0003\u0002\u0002\u0002\u034f\u034d\u0003\u0002\u0002\u0002\u0350\u0351",
"\u0007u\u0002\u0002\u0351\u0355\u0007\u00e6\u0002\u0002\u0352\u0354",
"\u000b\u0002\u0002\u0002\u0353\u0352\u0003\u0002\u0002\u0002\u0354\u0357",
"\u0003\u0002\u0002\u0002\u0355\u0356\u0003\u0002\u0002\u0002\u0355\u0353",
"\u0003\u0002\u0002\u0002\u0356\u0368\u0003\u0002\u0002\u0002\u0357\u0355",
"\u0003\u0002\u0002\u0002\u0358\u035c\u0007u\u0002\u0002\u0359\u035b",
"\u000b\u0002\u0002\u0002\u035a\u0359\u0003\u0002\u0002\u0002\u035b\u035e",
"\u0003\u0002\u0002\u0002\u035c\u035d\u0003\u0002\u0002\u0002\u035c\u035a",
"\u0003\u0002\u0002\u0002\u035d\u0368\u0003\u0002\u0002\u0002\u035e\u035c",
"\u0003\u0002\u0002\u0002\u035f\u0368\u0007v\u0002\u0002\u0360\u0364",
"\u0005\u0010\t\u0002\u0361\u0363\u000b\u0002\u0002\u0002\u0362\u0361",
"\u0003\u0002\u0002\u0002\u0363\u0366\u0003\u0002\u0002\u0002\u0364\u0365",
"\u0003\u0002\u0002\u0002\u0364\u0362\u0003\u0002\u0002\u0002\u0365\u0368",
"\u0003\u0002\u0002\u0002\u0366\u0364\u0003\u0002\u0002\u0002\u0367\u00e5",
"\u0003\u0002\u0002\u0002\u0367\u00e6\u0003\u0002\u0002\u0002\u0367\u00e8",
"\u0003\u0002\u0002\u0002\u0367\u00fc\u0003\u0002\u0002\u0002\u0367\u0103",
"\u0003\u0002\u0002\u0002\u0367\u010d\u0003\u0002\u0002\u0002\u0367\u012b",
"\u0003\u0002\u0002\u0002\u0367\u014c\u0003\u0002\u0002\u0002\u0367\u0169",
"\u0003\u0002\u0002\u0002\u0367\u0176\u0003\u0002\u0002\u0002\u0367\u0187",
"\u0003\u0002\u0002\u0002\u0367\u0190\u0003\u0002\u0002\u0002\u0367\u0197",
"\u0003\u0002\u0002\u0002\u0367\u019e\u0003\u0002\u0002\u0002\u0367\u01a9",
"\u0003\u0002\u0002\u0002\u0367\u01b8\u0003\u0002\u0002\u0002\u0367\u01c6",
"\u0003\u0002\u0002\u0002\u0367\u01d0\u0003\u0002\u0002\u0002\u0367\u01de",
"\u0003\u0002\u0002\u0002\u0367\u01ec\u0003\u0002\u0002\u0002\u0367\u01f4",
"\u0003\u0002\u0002\u0002\u0367\u0207\u0003\u0002\u0002\u0002\u0367\u0217",
"\u0003\u0002\u0002\u0002\u0367\u0220\u0003\u0002\u0002\u0002\u0367\u0226",
"\u0003\u0002\u0002\u0002\u0367\u0230\u0003\u0002\u0002\u0002\u0367\u0237",
"\u0003\u0002\u0002\u0002\u0367\u025c\u0003\u0002\u0002\u0002\u0367\u0272",
"\u0003\u0002\u0002\u0002\u0367\u027a\u0003\u0002\u0002\u0002\u0367\u0296",
"\u0003\u0002\u0002\u0002\u0367\u02a0\u0003\u0002\u0002\u0002\u0367\u02a5",
"\u0003\u0002\u0002\u0002\u0367\u02b1\u0003\u0002\u0002\u0002\u0367\u02bd",
"\u0003\u0002\u0002\u0002\u0367\u02c5\u0003\u0002\u0002\u0002\u0367\u02ce",
"\u0003\u0002\u0002\u0002\u0367\u02d6\u0003\u0002\u0002\u0002\u0367\u02dc",
"\u0003\u0002\u0002\u0002\u0367\u02ea\u0003\u0002\u0002\u0002\u0367\u02ee",
"\u0003\u0002\u0002\u0002\u0367\u02f4\u0003\u0002\u0002\u0002\u0367\u02fa",
"\u0003\u0002\u0002\u0002\u0367\u0308\u0003\u0002\u0002\u0002\u0367\u030b",
"\u0003\u0002\u0002\u0002\u0367\u0315\u0003\u0002\u0002\u0002\u0367\u0325",
"\u0003\u0002\u0002\u0002\u0367\u032c\u0003\u0002\u0002\u0002\u0367\u032e",
"\u0003\u0002\u0002\u0002\u0367\u033e\u0003\u0002\u0002\u0002\u0367\u0344",
"\u0003\u0002\u0002\u0002\u0367\u0348\u0003\u0002\u0002\u0002\u0367\u0350",
"\u0003\u0002\u0002\u0002\u0367\u0358\u0003\u0002\u0002\u0002\u0367\u035f",
"\u0003\u0002\u0002\u0002\u0367\u0360\u0003\u0002\u0002\u0002\u0368\u000f",
"\u0003\u0002\u0002\u0002\u0369\u036a\u0007Q\u0002\u0002\u036a\u0414",
"\u0007\u00e6\u0002\u0002\u036b\u036c\u0007g\u0002\u0002\u036c\u0414",
"\u0007\u00e6\u0002\u0002\u036d\u036f\u0007\u00dd\u0002\u0002\u036e\u0370",
"\u0007\u00e6\u0002\u0002\u036f\u036e\u0003\u0002\u0002\u0002\u036f\u0370",
"\u0003\u0002\u0002\u0002\u0370\u0414\u0003\u0002\u0002\u0002\u0371\u0373",
"\u0007\u00dc\u0002\u0002\u0372\u0374\u0007\u00e6\u0002\u0002\u0373\u0372",
"\u0003\u0002\u0002\u0002\u0373\u0374\u0003\u0002\u0002\u0002\u0374\u0414",
"\u0003\u0002\u0002\u0002\u0375\u0376\u0007`\u0002\u0002\u0376\u0414",
"\u0007\u00dd\u0002\u0002\u0377\u0378\u0007`\u0002\u0002\u0378\u037a",
"\u0007\u00e6\u0002\u0002\u0379\u037b\u0007\u00dd\u0002\u0002\u037a\u0379",
"\u0003\u0002\u0002\u0002\u037a\u037b\u0003\u0002\u0002\u0002\u037b\u0414",
"\u0003\u0002\u0002\u0002\u037c\u037d\u0007`\u0002\u0002\u037d\u0414",
"\u0007\u00e9\u0002\u0002\u037e\u037f\u0007`\u0002\u0002\u037f\u0414",
"\u0007\u00e7\u0002\u0002\u0380\u0381\u0007`\u0002\u0002\u0381\u0382",
"\u0007J\u0002\u0002\u0382\u0414\u0007\u00e7\u0002\u0002\u0383\u0384",
"\u0007\u00e3\u0002\u0002\u0384\u0414\u0007R\u0002\u0002\u0385\u0386",
"\u0007\u00e4\u0002\u0002\u0386\u0414\u0007R\u0002\u0002\u0387\u0388",
"\u0007`\u0002\u0002\u0388\u0414\u0007\u00e8\u0002\u0002\u0389\u038a",
"\u0007`\u0002\u0002\u038a\u038b\u0007Q\u0002\u0002\u038b\u0414\u0007",
"R\u0002\u0002\u038c\u038d\u0007`\u0002\u0002\u038d\u0414\u0007\u00ea",
"\u0002\u0002\u038e\u038f\u0007`\u0002\u0002\u038f\u0414\u0007\u00ec",
"\u0002\u0002\u0390\u0391\u0007`\u0002\u0002\u0391\u0414\u0007\u00ed",
"\u0002\u0002\u0392\u0393\u0007Q\u0002\u0002\u0393\u0414\u0007\u00eb",
"\u0002\u0002\u0394\u0395\u0007g\u0002\u0002\u0395\u0414\u0007\u00eb",
"\u0002\u0002\u0396\u0397\u0007o\u0002\u0002\u0397\u0414\u0007\u00eb",
"\u0002\u0002\u0398\u0399\u0007\u00de\u0002\u0002\u0399\u0414\u0007R",
"\u0002\u0002\u039a\u039b\u0007\u00de\u0002\u0002\u039b\u0414\u0007\u00d1",
"\u0002\u0002\u039c\u039d\u0007\u00df\u0002\u0002\u039d\u0414\u0007R",
"\u0002\u0002\u039e\u039f\u0007\u00df\u0002\u0002\u039f\u0414\u0007\u00d1",
"\u0002\u0002\u03a0\u03a1\u0007Q\u0002\u0002\u03a1\u03a2\u0007\u00b8",
"\u0002\u0002\u03a2\u0414\u0007|\u0002\u0002\u03a3\u03a4\u0007g\u0002",
"\u0002\u03a4\u03a5\u0007\u00b8\u0002\u0002\u03a5\u0414\u0007|\u0002",
"\u0002\u03a6\u03a7\u0007o\u0002\u0002\u03a7\u03a8\u0007R\u0002\u0002",
"\u03a8\u03a9\u0005\u0086D\u0002\u03a9\u03aa\u0007\"\u0002\u0002\u03aa",
"\u03ab\u0007\u00cc\u0002\u0002\u03ab\u0414\u0003\u0002\u0002\u0002\u03ac",
"\u03ad\u0007o\u0002\u0002\u03ad\u03ae\u0007R\u0002\u0002\u03ae\u03af",
"\u0005\u0086D\u0002\u03af\u03b0\u0007\u00cc\u0002\u0002\u03b0\u03b1",
"\u0007\u0016\u0002\u0002\u03b1\u0414\u0003\u0002\u0002\u0002\u03b2\u03b3",
"\u0007o\u0002\u0002\u03b3\u03b4\u0007R\u0002\u0002\u03b4\u03b5\u0005",
"\u0086D\u0002\u03b5\u03b6\u0007\"\u0002\u0002\u03b6\u03b7\u0007\u00cd",
"\u0002\u0002\u03b7\u0414\u0003\u0002\u0002\u0002\u03b8\u03b9\u0007o",
"\u0002\u0002\u03b9\u03ba\u0007R\u0002\u0002\u03ba\u03bb\u0005\u0086",
"D\u0002\u03bb\u03bc\u0007\u00be\u0002\u0002\u03bc\u03bd\u0007\u0016",
"\u0002\u0002\u03bd\u0414\u0003\u0002\u0002\u0002\u03be\u03bf\u0007o",
"\u0002\u0002\u03bf\u03c0\u0007R\u0002\u0002\u03c0\u03c1\u0005\u0086",
"D\u0002\u03c1\u03c2\u0007\"\u0002\u0002\u03c2\u03c3\u0007\u00be\u0002",
"\u0002\u03c3\u0414\u0003\u0002\u0002\u0002\u03c4\u03c5\u0007o\u0002",
"\u0002\u03c5\u03c6\u0007R\u0002\u0002\u03c6\u03c7\u0005\u0086D\u0002",
"\u03c7\u03c8\u0007\"\u0002\u0002\u03c8\u03c9\u0007\u00bf\u0002\u0002",
"\u03c9\u03ca\u0007\u0010\u0002\u0002\u03ca\u03cb\u0007\u00c0\u0002\u0002",
"\u03cb\u0414\u0003\u0002\u0002\u0002\u03cc\u03cd\u0007o\u0002\u0002",
"\u03cd\u03ce\u0007R\u0002\u0002\u03ce\u03cf\u0005\u0086D\u0002\u03cf",
"\u03d0\u0007u\u0002\u0002\u03d0\u03d1\u0007\u00be\u0002\u0002\u03d1",
"\u03d2\u0007\u00c1\u0002\u0002\u03d2\u0414\u0003\u0002\u0002\u0002\u03d3",
"\u03d4\u0007o\u0002\u0002\u03d4\u03d5\u0007R\u0002\u0002\u03d5\u03d6",
"\u0005\u0086D\u0002\u03d6\u03d7\u0007\u00c2\u0002\u0002\u03d7\u03d8",
"\u0007D\u0002\u0002\u03d8\u0414\u0003\u0002\u0002\u0002\u03d9\u03da",
"\u0007o\u0002\u0002\u03da\u03db\u0007R\u0002\u0002\u03db\u03dc\u0005",
"\u0086D\u0002\u03dc\u03dd\u0007\u00c3\u0002\u0002\u03dd\u03de\u0007",
"D\u0002\u0002\u03de\u0414\u0003\u0002\u0002\u0002\u03df\u03e0\u0007",
"o\u0002\u0002\u03e0\u03e1\u0007R\u0002\u0002\u03e1\u03e2\u0005\u0086",
"D\u0002\u03e2\u03e3\u0007\u00c4\u0002\u0002\u03e3\u03e4\u0007D\u0002",
"\u0002\u03e4\u0414\u0003\u0002\u0002\u0002\u03e5\u03e6\u0007o\u0002",
"\u0002\u03e6\u03e7\u0007R\u0002\u0002\u03e7\u03e8\u0005\u0086D\u0002",
"\u03e8\u03e9\u0007\u00c6\u0002\u0002\u03e9\u0414\u0003\u0002\u0002\u0002",
"\u03ea\u03eb\u0007o\u0002\u0002\u03eb\u03ec\u0007R\u0002\u0002\u03ec",
"\u03ee\u0005\u0086D\u0002\u03ed\u03ef\u0005 \u0011\u0002\u03ee\u03ed",
"\u0003\u0002\u0002\u0002\u03ee\u03ef\u0003\u0002\u0002\u0002\u03ef\u03f0",
"\u0003\u0002\u0002\u0002\u03f0\u03f1\u0007\u00c7\u0002\u0002\u03f1\u0414",
"\u0003\u0002\u0002\u0002\u03f2\u03f3\u0007o\u0002\u0002\u03f3\u03f4",
"\u0007R\u0002\u0002\u03f4\u03f6\u0005\u0086D\u0002\u03f5\u03f7\u0005",
" \u0011\u0002\u03f6\u03f5\u0003\u0002\u0002\u0002\u03f6\u03f7\u0003",
"\u0002\u0002\u0002\u03f7\u03f8\u0003\u0002\u0002\u0002\u03f8\u03f9\u0007",
"\u00c8\u0002\u0002\u03f9\u0414\u0003\u0002\u0002\u0002\u03fa\u03fb\u0007",
"o\u0002\u0002\u03fb\u03fc\u0007R\u0002\u0002\u03fc\u03fe\u0005\u0086",
"D\u0002\u03fd\u03ff\u0005 \u0011\u0002\u03fe\u03fd\u0003\u0002\u0002",
"\u0002\u03fe\u03ff\u0003\u0002\u0002\u0002\u03ff\u0400\u0003\u0002\u0002",
"\u0002\u0400\u0401\u0007u\u0002\u0002\u0401\u0402\u0007\u00c5\u0002",
"\u0002\u0402\u0414\u0003\u0002\u0002\u0002\u0403\u0404\u0007o\u0002",
"\u0002\u0404\u0405\u0007R\u0002\u0002\u0405\u0407\u0005\u0086D\u0002",
"\u0406\u0408\u0005 \u0011\u0002\u0407\u0406\u0003\u0002\u0002\u0002",
"\u0407\u0408\u0003\u0002\u0002\u0002\u0408\u0409\u0003\u0002\u0002\u0002",
"\u0409\u040a\u0007U\u0002\u0002\u040a\u040b\u0007b\u0002\u0002\u040b",
"\u0414\u0003\u0002\u0002\u0002\u040c\u040d\u0007x\u0002\u0002\u040d",
"\u0414\u0007y\u0002\u0002\u040e\u0414\u0007z\u0002\u0002\u040f\u0414",
"\u0007{\u0002\u0002\u0410\u0414\u0007\u00d3\u0002\u0002\u0411\u0412",
"\u0007W\u0002\u0002\u0412\u0414\u0007\u000e\u0002\u0002\u0413\u0369",
"\u0003\u0002\u0002\u0002\u0413\u036b\u0003\u0002\u0002\u0002\u0413\u036d",
"\u0003\u0002\u0002\u0002\u0413\u0371\u0003\u0002\u0002\u0002\u0413\u0375",
"\u0003\u0002\u0002\u0002\u0413\u0377\u0003\u0002\u0002\u0002\u0413\u037c",
"\u0003\u0002\u0002\u0002\u0413\u037e\u0003\u0002\u0002\u0002\u0413\u0380",
"\u0003\u0002\u0002\u0002\u0413\u0383\u0003\u0002\u0002\u0002\u0413\u0385",
"\u0003\u0002\u0002\u0002\u0413\u0387\u0003\u0002\u0002\u0002\u0413\u0389",
"\u0003\u0002\u0002\u0002\u0413\u038c\u0003\u0002\u0002\u0002\u0413\u038e",
"\u0003\u0002\u0002\u0002\u0413\u0390\u0003\u0002\u0002\u0002\u0413\u0392",
"\u0003\u0002\u0002\u0002\u0413\u0394\u0003\u0002\u0002\u0002\u0413\u0396",
"\u0003\u0002\u0002\u0002\u0413\u0398\u0003\u0002\u0002\u0002\u0413\u039a",
"\u0003\u0002\u0002\u0002\u0413\u039c\u0003\u0002\u0002\u0002\u0413\u039e",
"\u0003\u0002\u0002\u0002\u0413\u03a0\u0003\u0002\u0002\u0002\u0413\u03a3",
"\u0003\u0002\u0002\u0002\u0413\u03a6\u0003\u0002\u0002\u0002\u0413\u03ac",
"\u0003\u0002\u0002\u0002\u0413\u03b2\u0003\u0002\u0002\u0002\u0413\u03b8",
"\u0003\u0002\u0002\u0002\u0413\u03be\u0003\u0002\u0002\u0002\u0413\u03c4",
"\u0003\u0002\u0002\u0002\u0413\u03cc\u0003\u0002\u0002\u0002\u0413\u03d3",
"\u0003\u0002\u0002\u0002\u0413\u03d9\u0003\u0002\u0002\u0002\u0413\u03df",
"\u0003\u0002\u0002\u0002\u0413\u03e5\u0003\u0002\u0002\u0002\u0413\u03ea",
"\u0003\u0002\u0002\u0002\u0413\u03f2\u0003\u0002\u0002\u0002\u0413\u03fa",
"\u0003\u0002\u0002\u0002\u0413\u0403\u0003\u0002\u0002\u0002\u0413\u040c",
"\u0003\u0002\u0002\u0002\u0413\u040e\u0003\u0002\u0002\u0002\u0413\u040f",
"\u0003\u0002\u0002\u0002\u0413\u0410\u0003\u0002\u0002\u0002\u0413\u0411",
"\u0003\u0002\u0002\u0002\u0414\u0011\u0003\u0002\u0002\u0002\u0415\u0417",
"\u0007Q\u0002\u0002\u0416\u0418\u0007\u00b8\u0002\u0002\u0417\u0416",
"\u0003\u0002\u0002\u0002\u0417\u0418\u0003\u0002\u0002\u0002\u0418\u041a",
"\u0003\u0002\u0002\u0002\u0419\u041b\u0007\u00da\u0002\u0002\u041a\u0419",
"\u0003\u0002\u0002\u0002\u041a\u041b\u0003\u0002\u0002\u0002\u041b\u041c",
"\u0003\u0002\u0002\u0002\u041c\u0420\u0007R\u0002\u0002\u041d\u041e",
"\u0007\u0081\u0002\u0002\u041e\u041f\u0007\"\u0002\u0002\u041f\u0421",
"\u0007$\u0002\u0002\u0420\u041d\u0003\u0002\u0002\u0002\u0420\u0421",
"\u0003\u0002\u0002\u0002\u0421\u0422\u0003\u0002\u0002\u0002\u0422\u0423",
"\u0005\u0086D\u0002\u0423\u0013\u0003\u0002\u0002\u0002\u0424\u0425",
"\u0007\u00cc\u0002\u0002\u0425\u0426\u0007\u0016\u0002\u0002\u0426\u042a",
"\u0005p9\u0002\u0427\u0428\u0007\u00cd\u0002\u0002\u0428\u0429\u0007",
"\u0016\u0002\u0002\u0429\u042b\u0005t;\u0002\u042a\u0427\u0003\u0002",
"\u0002\u0002\u042a\u042b\u0003\u0002\u0002\u0002\u042b\u042c\u0003\u0002",
"\u0002\u0002\u042c\u042d\u0007X\u0002\u0002\u042d\u042e\u0007\u00f7",
"\u0002\u0002\u042e\u042f\u0007\u00bd\u0002\u0002\u042f\u0015\u0003\u0002",
"\u0002\u0002\u0430\u0431\u0007\u00be\u0002\u0002\u0431\u0432\u0007\u0016",
"\u0002\u0002\u0432\u0433\u0005p9\u0002\u0433\u0436\u0007?\u0002\u0002",
"\u0434\u0437\u00056\u001c\u0002\u0435\u0437\u00058\u001d\u0002\u0436",
"\u0434\u0003\u0002\u0002\u0002\u0436\u0435\u0003\u0002\u0002\u0002\u0437",
"\u043b\u0003\u0002\u0002\u0002\u0438\u0439\u0007\u00bf\u0002\u0002\u0439",
"\u043a\u0007\u0010\u0002\u0002\u043a\u043c\u0007\u00c0\u0002\u0002\u043b",
"\u0438\u0003\u0002\u0002\u0002\u043b\u043c\u0003\u0002\u0002\u0002\u043c",
"\u0017\u0003\u0002\u0002\u0002\u043d\u043e\u0007\u00c1\u0002\u0002\u043e",
"\u043f\u0007\u00f3\u0002\u0002\u043f\u0019\u0003\u0002\u0002\u0002\u0440",
"\u0442\u0005(\u0015\u0002\u0441\u0440\u0003\u0002\u0002\u0002\u0441",
"\u0442\u0003\u0002\u0002\u0002\u0442\u0443\u0003\u0002\u0002\u0002\u0443",
"\u0444\u0005B\"\u0002\u0444\u001b\u0003\u0002\u0002\u0002\u0445\u0446",
"\u0007V\u0002\u0002\u0446\u0447\u0007\u009e\u0002\u0002\u0447\u0448",
"\u0007R\u0002\u0002\u0448\u044f\u0005\u0086D\u0002\u0449\u044d\u0005",
" \u0011\u0002\u044a\u044b\u0007\u0081\u0002\u0002\u044b\u044c\u0007",
"\"\u0002\u0002\u044c\u044e\u0007$\u0002\u0002\u044d\u044a\u0003\u0002",
"\u0002\u0002\u044d\u044e\u0003\u0002\u0002\u0002\u044e\u0450\u0003\u0002",
"\u0002\u0002\u044f\u0449\u0003\u0002\u0002\u0002\u044f\u0450\u0003\u0002",
"\u0002\u0002\u0450\u0476\u0003\u0002\u0002\u0002\u0451\u0452\u0007V",
"\u0002\u0002\u0452\u0454\u0007X\u0002\u0002\u0453\u0455\u0007R\u0002",
"\u0002\u0454\u0453\u0003\u0002\u0002\u0002\u0454\u0455\u0003\u0002\u0002",
"\u0002\u0455\u0456\u0003\u0002\u0002\u0002\u0456\u0458\u0005\u0086D",
"\u0002\u0457\u0459\u0005 \u0011\u0002\u0458\u0457\u0003\u0002\u0002",
"\u0002\u0458\u0459\u0003\u0002\u0002\u0002\u0459\u0476\u0003\u0002\u0002",
"\u0002\u045a\u045b\u0007V\u0002\u0002\u045b\u045d\u0007\u009e\u0002",
"\u0002\u045c\u045e\u0007\u00f0\u0002\u0002\u045d\u045c\u0003\u0002\u0002",
"\u0002\u045d\u045e\u0003\u0002\u0002\u0002\u045e\u045f\u0003\u0002\u0002",
"\u0002\u045f\u0460\u0007S\u0002\u0002\u0460\u0462\u0007\u00f3\u0002",
"\u0002\u0461\u0463\u0005\u0084C\u0002\u0462\u0461\u0003\u0002\u0002",
"\u0002\u0462\u0463\u0003\u0002\u0002\u0002\u0463\u0465\u0003\u0002\u0002",
"\u0002\u0464\u0466\u0005:\u001e\u0002\u0465\u0464\u0003\u0002\u0002",
"\u0002\u0465\u0466\u0003\u0002\u0002\u0002\u0466\u0476\u0003\u0002\u0002",
"\u0002\u0467\u0468\u0007V\u0002\u0002\u0468\u046a\u0007\u009e\u0002",
"\u0002\u0469\u046b\u0007\u00f0\u0002\u0002\u046a\u0469\u0003\u0002\u0002",
"\u0002\u046a\u046b\u0003\u0002\u0002\u0002\u046b\u046c\u0003\u0002\u0002",
"\u0002\u046c\u046e\u0007S\u0002\u0002\u046d\u046f\u0007\u00f3\u0002",
"\u0002\u046e\u046d\u0003\u0002\u0002\u0002\u046e\u046f\u0003\u0002\u0002",
"\u0002\u046f\u0470\u0003\u0002\u0002\u0002\u0470\u0473\u0005,\u0017",
"\u0002\u0471\u0472\u0007\u00b9\u0002\u0002\u0472\u0474\u0005.\u0018",
"\u0002\u0473\u0471\u0003\u0002\u0002\u0002\u0473\u0474\u0003\u0002\u0002",
"\u0002\u0474\u0476\u0003\u0002\u0002\u0002\u0475\u0445\u0003\u0002\u0002",
"\u0002\u0475\u0451\u0003\u0002\u0002\u0002\u0475\u045a\u0003\u0002\u0002",
"\u0002\u0475\u0467\u0003\u0002\u0002\u0002\u0476\u001d\u0003\u0002\u0002",
"\u0002\u0477\u0479\u0005 \u0011\u0002\u0478\u047a\u0005\u0018\r\u0002",
"\u0479\u0478\u0003\u0002\u0002\u0002\u0479\u047a\u0003\u0002\u0002\u0002",
"\u047a\u001f\u0003\u0002\u0002\u0002\u047b\u047c\u0007D\u0002\u0002",
"\u047c\u047d\u0007\u0003\u0002\u0002\u047d\u0482\u0005\"\u0012\u0002",
"\u047e\u047f\u0007\u0006\u0002\u0002\u047f\u0481\u0005\"\u0012\u0002",
"\u0480\u047e\u0003\u0002\u0002\u0002\u0481\u0484\u0003\u0002\u0002\u0002",
"\u0482\u0480\u0003\u0002\u0002\u0002\u0482\u0483\u0003\u0002\u0002\u0002",
"\u0483\u0485\u0003\u0002\u0002\u0002\u0484\u0482\u0003\u0002\u0002\u0002",
"\u0485\u0486\u0007\u0004\u0002\u0002\u0486!\u0003\u0002\u0002\u0002",
"\u0487\u048a\u0005\u00c6d\u0002\u0488\u0489\u0007\u0084\u0002\u0002",
"\u0489\u048b\u0005\u0098M\u0002\u048a\u0488\u0003\u0002\u0002\u0002",
"\u048a\u048b\u0003\u0002\u0002\u0002\u048b#\u0003\u0002\u0002\u0002",
"\u048c\u0492\u0005\u00c4c\u0002\u048d\u0492\u0007\u00f3\u0002\u0002",
"\u048e\u0492\u0005\u009aN\u0002\u048f\u0492\u0005\u009cO\u0002\u0490",
"\u0492\u0005\u009eP\u0002\u0491\u048c\u0003\u0002\u0002\u0002\u0491",
"\u048d\u0003\u0002\u0002\u0002\u0491\u048e\u0003\u0002\u0002\u0002\u0491",
"\u048f\u0003\u0002\u0002\u0002\u0491\u0490\u0003\u0002\u0002\u0002\u0492",
"%\u0003\u0002\u0002\u0002\u0493\u0498\u0005\u00c6d\u0002\u0494\u0495",
"\u0007\u0005\u0002\u0002\u0495\u0497\u0005\u00c6d\u0002\u0496\u0494",
"\u0003\u0002\u0002\u0002\u0497\u049a\u0003\u0002\u0002\u0002\u0498\u0496",
"\u0003\u0002\u0002\u0002\u0498\u0499\u0003\u0002\u0002\u0002\u0499\'",
"\u0003\u0002\u0002\u0002\u049a\u0498\u0003\u0002\u0002\u0002\u049b\u049c",
"\u0007O\u0002\u0002\u049c\u04a1\u0005*\u0016\u0002\u049d\u049e\u0007",
"\u0006\u0002\u0002\u049e\u04a0\u0005*\u0016\u0002\u049f\u049d\u0003",
"\u0002\u0002\u0002\u04a0\u04a3\u0003\u0002\u0002\u0002\u04a1\u049f\u0003",
"\u0002\u0002\u0002\u04a1\u04a2\u0003\u0002\u0002\u0002\u04a2)\u0003",
"\u0002\u0002\u0002\u04a3\u04a1\u0003\u0002\u0002\u0002\u04a4\u04a6\u0005",
"\u00c6d\u0002\u04a5\u04a7\u0007\u0010\u0002\u0002\u04a6\u04a5\u0003",
"\u0002\u0002\u0002\u04a6\u04a7\u0003\u0002\u0002\u0002\u04a7\u04a8\u0003",
"\u0002\u0002\u0002\u04a8\u04a9\u0007\u0003\u0002\u0002\u04a9\u04aa\u0005",
"\u001a\u000e\u0002\u04aa\u04ab\u0007\u0004\u0002\u0002\u04ab+\u0003",
"\u0002\u0002\u0002\u04ac\u04ad\u0007\u00a1\u0002\u0002\u04ad\u04ae\u0005",
"\u00c4c\u0002\u04ae-\u0003\u0002\u0002\u0002\u04af\u04b0\u0007\u0003",
"\u0002\u0002\u04b0\u04b5\u00050\u0019\u0002\u04b1\u04b2\u0007\u0006",
"\u0002\u0002\u04b2\u04b4\u00050\u0019\u0002\u04b3\u04b1\u0003\u0002",
"\u0002\u0002\u04b4\u04b7\u0003\u0002\u0002\u0002\u04b5\u04b3\u0003\u0002",
"\u0002\u0002\u04b5\u04b6\u0003\u0002\u0002\u0002\u04b6\u04b8\u0003\u0002",
"\u0002\u0002\u04b7\u04b5\u0003\u0002\u0002\u0002\u04b8\u04b9\u0007\u0004",
"\u0002\u0002\u04b9/\u0003\u0002\u0002\u0002\u04ba\u04bf\u00052\u001a",
"\u0002\u04bb\u04bd\u0007\u0084\u0002\u0002\u04bc\u04bb\u0003\u0002\u0002",
"\u0002\u04bc\u04bd\u0003\u0002\u0002\u0002\u04bd\u04be\u0003\u0002\u0002",
"\u0002\u04be\u04c0\u00054\u001b\u0002\u04bf\u04bc\u0003\u0002\u0002",
"\u0002\u04bf\u04c0\u0003\u0002\u0002\u0002\u04c01\u0003\u0002\u0002",
"\u0002\u04c1\u04c6\u0005\u00c6d\u0002\u04c2\u04c3\u0007\u0005\u0002",
"\u0002\u04c3\u04c5\u0005\u00c6d\u0002\u04c4\u04c2\u0003\u0002\u0002",
"\u0002\u04c5\u04c8\u0003\u0002\u0002\u0002\u04c6\u04c4\u0003\u0002\u0002",
"\u0002\u04c6\u04c7\u0003\u0002\u0002\u0002\u04c7\u04cb\u0003\u0002\u0002",
"\u0002\u04c8\u04c6\u0003\u0002\u0002\u0002\u04c9\u04cb\u0007\u00f3\u0002",
"\u0002\u04ca\u04c1\u0003\u0002\u0002\u0002\u04ca\u04c9\u0003\u0002\u0002",
"\u0002\u04cb3\u0003\u0002\u0002\u0002\u04cc\u04d1\u0007\u00f7\u0002",
"\u0002\u04cd\u04d1\u0007\u00f8\u0002\u0002\u04ce\u04d1\u0005\u00a0Q",
"\u0002\u04cf\u04d1\u0007\u00f3\u0002\u0002\u04d0\u04cc\u0003\u0002\u0002",
"\u0002\u04d0\u04cd\u0003\u0002\u0002\u0002\u04d0\u04ce\u0003\u0002\u0002",
"\u0002\u04d0\u04cf\u0003\u0002\u0002\u0002\u04d15\u0003\u0002\u0002",
"\u0002\u04d2\u04d3\u0007\u0003\u0002\u0002\u04d3\u04d8\u0005\u0098M",
"\u0002\u04d4\u04d5\u0007\u0006\u0002\u0002\u04d5\u04d7\u0005\u0098M",
"\u0002\u04d6\u04d4\u0003\u0002\u0002\u0002\u04d7\u04da\u0003\u0002\u0002",
"\u0002\u04d8\u04d6\u0003\u0002\u0002\u0002\u04d8\u04d9\u0003\u0002\u0002",
"\u0002\u04d9\u04db\u0003\u0002\u0002\u0002\u04da\u04d8\u0003\u0002\u0002",
"\u0002\u04db\u04dc\u0007\u0004\u0002\u0002\u04dc7\u0003\u0002\u0002",
"\u0002\u04dd\u04de\u0007\u0003\u0002\u0002\u04de\u04e3\u00056\u001c",
"\u0002\u04df\u04e0\u0007\u0006\u0002\u0002\u04e0\u04e2\u00056\u001c",
"\u0002\u04e1\u04df\u0003\u0002\u0002\u0002\u04e2\u04e5\u0003\u0002\u0002",
"\u0002\u04e3\u04e1\u0003\u0002\u0002\u0002\u04e3\u04e4\u0003\u0002\u0002",
"\u0002\u04e4\u04e6\u0003\u0002\u0002\u0002\u04e5\u04e3\u0003\u0002\u0002",
"\u0002\u04e6\u04e7\u0007\u0004\u0002\u0002\u04e79\u0003\u0002\u0002",
"\u0002\u04e8\u04e9\u0007\u00bf\u0002\u0002\u04e9\u04ea\u0007\u0010\u0002",
"\u0002\u04ea\u04ef\u0005<\u001f\u0002\u04eb\u04ec\u0007\u00bf\u0002",
"\u0002\u04ec\u04ed\u0007\u0016\u0002\u0002\u04ed\u04ef\u0005> \u0002",
"\u04ee\u04e8\u0003\u0002\u0002\u0002\u04ee\u04eb\u0003\u0002\u0002\u0002",
"\u04ef;\u0003\u0002\u0002\u0002\u04f0\u04f1\u0007\u00cf\u0002\u0002",
"\u04f1\u04f2\u0007\u00f3\u0002\u0002\u04f2\u04f3\u0007\u00d0\u0002\u0002",
"\u04f3\u04f6\u0007\u00f3\u0002\u0002\u04f4\u04f6\u0005\u00c6d\u0002",
"\u04f5\u04f0\u0003\u0002\u0002\u0002\u04f5\u04f4\u0003\u0002\u0002\u0002",
"\u04f6=\u0003\u0002\u0002\u0002\u04f7\u04fb\u0007\u00f3\u0002\u0002",
"\u04f8\u04f9\u0007O\u0002\u0002\u04f9\u04fa\u0007\u00a3\u0002\u0002",
"\u04fa\u04fc\u0005.\u0018\u0002\u04fb\u04f8\u0003\u0002\u0002\u0002",
"\u04fb\u04fc\u0003\u0002\u0002\u0002\u04fc?\u0003\u0002\u0002\u0002",
"\u04fd\u04fe\u0005\u00c6d\u0002\u04fe\u04ff\u0007\u00f3\u0002\u0002",
"\u04ffA\u0003\u0002\u0002\u0002\u0500\u0502\u0005\u001c\u000f\u0002",
"\u0501\u0500\u0003\u0002\u0002\u0002\u0501\u0502\u0003\u0002\u0002\u0002",
"\u0502\u0503\u0003\u0002\u0002\u0002\u0503\u0504\u0005H%\u0002\u0504",
"\u0505\u0005D#\u0002\u0505\u050d\u0003\u0002\u0002\u0002\u0506\u0508",
"\u0005T+\u0002\u0507\u0509\u0005F$\u0002\u0508\u0507\u0003\u0002\u0002",
"\u0002\u0509\u050a\u0003\u0002\u0002\u0002\u050a\u0508\u0003\u0002\u0002",
"\u0002\u050a\u050b\u0003\u0002\u0002\u0002\u050b\u050d\u0003\u0002\u0002",
"\u0002\u050c\u0501\u0003\u0002\u0002\u0002\u050c\u0506\u0003\u0002\u0002",
"\u0002\u050dC\u0003\u0002\u0002\u0002\u050e\u050f\u0007\u001b\u0002",
"\u0002\u050f\u0510\u0007\u0016\u0002\u0002\u0510\u0515\u0005L\'\u0002",
"\u0511\u0512\u0007\u0006\u0002\u0002\u0512\u0514\u0005L\'\u0002\u0513",
"\u0511\u0003\u0002\u0002\u0002\u0514\u0517\u0003\u0002\u0002\u0002\u0515",
"\u0513\u0003\u0002\u0002\u0002\u0515\u0516\u0003\u0002\u0002\u0002\u0516",
"\u0519\u0003\u0002\u0002\u0002\u0517\u0515\u0003\u0002\u0002\u0002\u0518",
"\u050e\u0003\u0002\u0002\u0002\u0518\u0519\u0003\u0002\u0002\u0002\u0519",
"\u0524\u0003\u0002\u0002\u0002\u051a\u051b\u0007\u009c\u0002\u0002\u051b",
"\u051c\u0007\u0016\u0002\u0002\u051c\u0521\u0005\u008eH\u0002\u051d",
"\u051e\u0007\u0006\u0002\u0002\u051e\u0520\u0005\u008eH\u0002\u051f",
"\u051d\u0003\u0002\u0002\u0002\u0520\u0523\u0003\u0002\u0002\u0002\u0521",
"\u051f\u0003\u0002\u0002\u0002\u0521\u0522\u0003\u0002\u0002\u0002\u0522",
"\u0525\u0003\u0002\u0002\u0002\u0523\u0521\u0003\u0002\u0002\u0002\u0524",
"\u051a\u0003\u0002\u0002\u0002\u0524\u0525\u0003\u0002\u0002\u0002\u0525",
"\u0530\u0003\u0002\u0002\u0002\u0526\u0527\u0007\u009d\u0002\u0002\u0527",
"\u0528\u0007\u0016\u0002\u0002\u0528\u052d\u0005\u008eH\u0002\u0529",
"\u052a\u0007\u0006\u0002\u0002\u052a\u052c\u0005\u008eH\u0002\u052b",
"\u0529\u0003\u0002\u0002\u0002\u052c\u052f\u0003\u0002\u0002\u0002\u052d",
"\u052b\u0003\u0002\u0002\u0002\u052d\u052e\u0003\u0002\u0002\u0002\u052e",
"\u0531\u0003\u0002\u0002\u0002\u052f\u052d\u0003\u0002\u0002\u0002\u0530",
"\u0526\u0003\u0002\u0002\u0002\u0530\u0531\u0003\u0002\u0002\u0002\u0531",
"\u053c\u0003\u0002\u0002\u0002\u0532\u0533\u0007\u009b\u0002\u0002\u0533",
"\u0534\u0007\u0016\u0002\u0002\u0534\u0539\u0005L\'\u0002\u0535\u0536",
"\u0007\u0006\u0002\u0002\u0536\u0538\u0005L\'\u0002\u0537\u0535\u0003",
"\u0002\u0002\u0002\u0538\u053b\u0003\u0002\u0002\u0002\u0539\u0537\u0003",
"\u0002\u0002\u0002\u0539\u053a\u0003\u0002\u0002\u0002\u053a\u053d\u0003",
"\u0002\u0002\u0002\u053b\u0539\u0003\u0002\u0002\u0002\u053c\u0532\u0003",
"\u0002\u0002\u0002\u053c\u053d\u0003\u0002\u0002\u0002\u053d\u053f\u0003",
"\u0002\u0002\u0002\u053e\u0540\u0005\u00ba^\u0002\u053f\u053e\u0003",
"\u0002\u0002\u0002\u053f\u0540\u0003\u0002\u0002\u0002\u0540\u0546\u0003",
"\u0002\u0002\u0002\u0541\u0544\u0007\u001d\u0002\u0002\u0542\u0545\u0007",
"\u0011\u0002\u0002\u0543\u0545\u0005\u008eH\u0002\u0544\u0542\u0003",
"\u0002\u0002\u0002\u0544\u0543\u0003\u0002\u0002\u0002\u0545\u0547\u0003",
"\u0002\u0002\u0002\u0546\u0541\u0003\u0002\u0002\u0002\u0546\u0547\u0003",
"\u0002\u0002\u0002\u0547E\u0003\u0002\u0002\u0002\u0548\u054a\u0005",
"\u001c\u000f\u0002\u0549\u0548\u0003\u0002\u0002\u0002\u0549\u054a\u0003",
"\u0002\u0002\u0002\u054a\u054b\u0003\u0002\u0002\u0002\u054b\u054c\u0005",
"N(\u0002\u054c\u054d\u0005D#\u0002\u054dG\u0003\u0002\u0002\u0002\u054e",
"\u054f\b%\u0001\u0002\u054f\u0550\u0005J&\u0002\u0550\u0568\u0003\u0002",
"\u0002\u0002\u0551\u0552\f\u0005\u0002\u0002\u0552\u0553\u0006%\u0003",
"\u0002\u0553\u0555\t\t\u0002\u0002\u0554\u0556\u0005b2\u0002\u0555\u0554",
"\u0003\u0002\u0002\u0002\u0555\u0556\u0003\u0002\u0002\u0002\u0556\u0557",
"\u0003\u0002\u0002\u0002\u0557\u0567\u0005H%\u0006\u0558\u0559\f\u0004",
"\u0002\u0002\u0559\u055a\u0006%\u0005\u0002\u055a\u055c\u0007k\u0002",
"\u0002\u055b\u055d\u0005b2\u0002\u055c\u055b\u0003\u0002\u0002\u0002",
"\u055c\u055d\u0003\u0002\u0002\u0002\u055d\u055e\u0003\u0002\u0002\u0002",
"\u055e\u0567\u0005H%\u0005\u055f\u0560\f\u0003\u0002\u0002\u0560\u0561",
"\u0006%\u0007\u0002\u0561\u0563\t\n\u0002\u0002\u0562\u0564\u0005b2",
"\u0002\u0563\u0562\u0003\u0002\u0002\u0002\u0563\u0564\u0003\u0002\u0002",
"\u0002\u0564\u0565\u0003\u0002\u0002\u0002\u0565\u0567\u0005H%\u0004",
"\u0566\u0551\u0003\u0002\u0002\u0002\u0566\u0558\u0003\u0002\u0002\u0002",
"\u0566\u055f\u0003\u0002\u0002\u0002\u0567\u056a\u0003\u0002\u0002\u0002",
"\u0568\u0566\u0003\u0002\u0002\u0002\u0568\u0569\u0003\u0002\u0002\u0002",
"\u0569I\u0003\u0002\u0002\u0002\u056a\u0568\u0003\u0002\u0002\u0002",
"\u056b\u0574\u0005N(\u0002\u056c\u056d\u0007R\u0002\u0002\u056d\u0574",
"\u0005\u0086D\u0002\u056e\u0574\u0005~@\u0002\u056f\u0570\u0007\u0003",
"\u0002\u0002\u0570\u0571\u0005B\"\u0002\u0571\u0572\u0007\u0004\u0002",
"\u0002\u0572\u0574\u0003\u0002\u0002\u0002\u0573\u056b\u0003\u0002\u0002",
"\u0002\u0573\u056c\u0003\u0002\u0002\u0002\u0573\u056e\u0003\u0002\u0002",
"\u0002\u0573\u056f\u0003\u0002\u0002\u0002\u0574K\u0003\u0002\u0002",
"\u0002\u0575\u0577\u0005\u008eH\u0002\u0576\u0578\t\u000b\u0002\u0002",
"\u0577\u0576\u0003\u0002\u0002\u0002\u0577\u0578\u0003\u0002\u0002\u0002",
"\u0578\u057b\u0003\u0002\u0002\u0002\u0579\u057a\u0007,\u0002\u0002",
"\u057a\u057c\t\f\u0002\u0002\u057b\u0579\u0003\u0002\u0002\u0002\u057b",
"\u057c\u0003\u0002\u0002\u0002\u057cM\u0003\u0002\u0002\u0002\u057d",
"\u057e\u0007\r\u0002\u0002\u057e\u057f\u0007\u009f\u0002\u0002\u057f",
"\u0580\u0007\u0003\u0002\u0002\u0580\u0581\u0005\u008cG\u0002\u0581",
"\u0582\u0007\u0004\u0002\u0002\u0582\u0588\u0003\u0002\u0002\u0002\u0583",
"\u0584\u0007r\u0002\u0002\u0584\u0588\u0005\u008cG\u0002\u0585\u0586",
"\u0007\u00a0\u0002\u0002\u0586\u0588\u0005\u008cG\u0002\u0587\u057d",
"\u0003\u0002\u0002\u0002\u0587\u0583\u0003\u0002\u0002\u0002\u0587\u0585",
"\u0003\u0002\u0002\u0002\u0588\u058a\u0003\u0002\u0002\u0002\u0589\u058b",
"\u0005\u0084C\u0002\u058a\u0589\u0003\u0002\u0002\u0002\u058a\u058b",
"\u0003\u0002\u0002\u0002\u058b\u058e\u0003\u0002\u0002\u0002\u058c\u058d",
"\u0007\u00a5\u0002\u0002\u058d\u058f\u0007\u00f3\u0002\u0002\u058e\u058c",
"\u0003\u0002\u0002\u0002\u058e\u058f\u0003\u0002\u0002\u0002\u058f\u0590",
"\u0003\u0002\u0002\u0002\u0590\u0591\u0007\u00a1\u0002\u0002\u0591\u059e",
"\u0007\u00f3\u0002\u0002\u0592\u059c\u0007\u0010\u0002\u0002\u0593\u059d",
"\u0005r:\u0002\u0594\u059d\u0005\u00acW\u0002\u0595\u0598\u0007\u0003",
"\u0002\u0002\u0596\u0599\u0005r:\u0002\u0597\u0599\u0005\u00acW\u0002",
"\u0598\u0596\u0003\u0002\u0002\u0002\u0598\u0597\u0003\u0002\u0002\u0002",
"\u0599\u059a\u0003\u0002\u0002\u0002\u059a\u059b\u0007\u0004\u0002\u0002",
"\u059b\u059d\u0003\u0002\u0002\u0002\u059c\u0593\u0003\u0002\u0002\u0002",
"\u059c\u0594\u0003\u0002\u0002\u0002\u059c\u0595\u0003\u0002\u0002\u0002",
"\u059d\u059f\u0003\u0002\u0002\u0002\u059e\u0592\u0003\u0002\u0002\u0002",
"\u059e\u059f\u0003\u0002\u0002\u0002\u059f\u05a1\u0003\u0002\u0002\u0002",
"\u05a0\u05a2\u0005\u0084C\u0002\u05a1\u05a0\u0003\u0002\u0002\u0002",
"\u05a1\u05a2\u0003\u0002\u0002\u0002\u05a2\u05a5\u0003\u0002\u0002\u0002",
"\u05a3\u05a4\u0007\u00a4\u0002\u0002\u05a4\u05a6\u0007\u00f3\u0002\u0002",
"\u05a5\u05a3\u0003\u0002\u0002\u0002\u05a5\u05a6\u0003\u0002\u0002\u0002",
"\u05a6\u05a8\u0003\u0002\u0002\u0002\u05a7\u05a9\u0005T+\u0002\u05a8",
"\u05a7\u0003\u0002\u0002\u0002\u05a8\u05a9\u0003\u0002\u0002\u0002\u05a9",
"\u05ac\u0003\u0002\u0002\u0002\u05aa\u05ab\u0007\u0014\u0002\u0002\u05ab",
"\u05ad\u0005\u0090I\u0002\u05ac\u05aa\u0003\u0002\u0002\u0002\u05ac",
"\u05ad\u0003\u0002\u0002\u0002\u05ad\u05db\u0003\u0002\u0002\u0002\u05ae",
"\u05b2\u0007\r\u0002\u0002\u05af\u05b1\u0005P)\u0002\u05b0\u05af\u0003",
"\u0002\u0002\u0002\u05b1\u05b4\u0003\u0002\u0002\u0002\u05b2\u05b0\u0003",
"\u0002\u0002\u0002\u05b2\u05b3\u0003\u0002\u0002\u0002\u05b3\u05b6\u0003",
"\u0002\u0002\u0002\u05b4\u05b2\u0003\u0002\u0002\u0002\u05b5\u05b7\u0005",
"b2\u0002\u05b6\u05b5\u0003\u0002\u0002\u0002\u05b6\u05b7\u0003\u0002",
"\u0002\u0002\u05b7\u05b8\u0003\u0002\u0002\u0002\u05b8\u05ba\u0005\u008c",
"G\u0002\u05b9\u05bb\u0005T+\u0002\u05ba\u05b9\u0003\u0002\u0002\u0002",
"\u05ba\u05bb\u0003\u0002\u0002\u0002\u05bb\u05c5\u0003\u0002\u0002\u0002",
"\u05bc\u05c2\u0005T+\u0002\u05bd\u05bf\u0007\r\u0002\u0002\u05be\u05c0",
"\u0005b2\u0002\u05bf\u05be\u0003\u0002\u0002\u0002\u05bf\u05c0\u0003",
"\u0002\u0002\u0002\u05c0\u05c1\u0003\u0002\u0002\u0002\u05c1\u05c3\u0005",
"\u008cG\u0002\u05c2\u05bd\u0003\u0002\u0002\u0002\u05c2\u05c3\u0003",
"\u0002\u0002\u0002\u05c3\u05c5\u0003\u0002\u0002\u0002\u05c4\u05ae\u0003",
"\u0002\u0002\u0002\u05c4\u05bc\u0003\u0002\u0002\u0002\u05c5\u05c9\u0003",
"\u0002\u0002\u0002\u05c6\u05c8\u0005`1\u0002\u05c7\u05c6\u0003\u0002",
"\u0002\u0002\u05c8\u05cb\u0003\u0002\u0002\u0002\u05c9\u05c7\u0003\u0002",
"\u0002\u0002\u05c9\u05ca\u0003\u0002\u0002\u0002\u05ca\u05ce\u0003\u0002",
"\u0002\u0002\u05cb\u05c9\u0003\u0002\u0002\u0002\u05cc\u05cd\u0007\u0014",
"\u0002\u0002\u05cd\u05cf\u0005\u0090I\u0002\u05ce\u05cc\u0003\u0002",
"\u0002\u0002\u05ce\u05cf\u0003\u0002\u0002\u0002\u05cf\u05d1\u0003\u0002",
"\u0002\u0002\u05d0\u05d2\u0005V,\u0002\u05d1\u05d0\u0003\u0002\u0002",
"\u0002\u05d1\u05d2\u0003\u0002\u0002\u0002\u05d2\u05d5\u0003\u0002\u0002",
"\u0002\u05d3\u05d4\u0007\u001c\u0002\u0002\u05d4\u05d6\u0005\u0090I",
"\u0002\u05d5\u05d3\u0003\u0002\u0002\u0002\u05d5\u05d6\u0003\u0002\u0002",
"\u0002\u05d6\u05d8\u0003\u0002\u0002\u0002\u05d7\u05d9\u0005\u00ba^",
"\u0002\u05d8\u05d7\u0003\u0002\u0002\u0002\u05d8\u05d9\u0003\u0002\u0002",
"\u0002\u05d9\u05db\u0003\u0002\u0002\u0002\u05da\u0587\u0003\u0002\u0002",
"\u0002\u05da\u05c4\u0003\u0002\u0002\u0002\u05dbO\u0003\u0002\u0002",
"\u0002\u05dc\u05dd\u0007\u0007\u0002\u0002\u05dd\u05e4\u0005R*\u0002",
"\u05de\u05e0\u0007\u0006\u0002\u0002\u05df\u05de\u0003\u0002\u0002\u0002",
"\u05df\u05e0\u0003\u0002\u0002\u0002\u05e0\u05e1\u0003\u0002\u0002\u0002",
"\u05e1\u05e3\u0005R*\u0002\u05e2\u05df\u0003\u0002\u0002\u0002\u05e3",
"\u05e6\u0003\u0002\u0002\u0002\u05e4\u05e2\u0003\u0002\u0002\u0002\u05e4",
"\u05e5\u0003\u0002\u0002\u0002\u05e5\u05e7\u0003\u0002\u0002\u0002\u05e6",
"\u05e4\u0003\u0002\u0002\u0002\u05e7\u05e8\u0007\b\u0002\u0002\u05e8",
"Q\u0003\u0002\u0002\u0002\u05e9\u05f7\u0005\u00c6d\u0002\u05ea\u05eb",
"\u0005\u00c6d\u0002\u05eb\u05ec\u0007\u0003\u0002\u0002\u05ec\u05f1",
"\u0005\u0096L\u0002\u05ed\u05ee\u0007\u0006\u0002\u0002\u05ee\u05f0",
"\u0005\u0096L\u0002\u05ef\u05ed\u0003\u0002\u0002\u0002\u05f0\u05f3",
"\u0003\u0002\u0002\u0002\u05f1\u05ef\u0003\u0002\u0002\u0002\u05f1\u05f2",
"\u0003\u0002\u0002\u0002\u05f2\u05f4\u0003\u0002\u0002\u0002\u05f3\u05f1",
"\u0003\u0002\u0002\u0002\u05f4\u05f5\u0007\u0004\u0002\u0002\u05f5\u05f7",
"\u0003\u0002\u0002\u0002\u05f6\u05e9\u0003\u0002\u0002\u0002\u05f6\u05ea",
"\u0003\u0002\u0002\u0002\u05f7S\u0003\u0002\u0002\u0002\u05f8\u05f9",
"\u0007\u000e\u0002\u0002\u05f9\u05fe\u0005d3\u0002\u05fa\u05fb\u0007",
"\u0006\u0002\u0002\u05fb\u05fd\u0005d3\u0002\u05fc\u05fa\u0003\u0002",
"\u0002\u0002\u05fd\u0600\u0003\u0002\u0002\u0002\u05fe\u05fc\u0003\u0002",
"\u0002\u0002\u05fe\u05ff\u0003\u0002\u0002\u0002\u05ff\u0604\u0003\u0002",
"\u0002\u0002\u0600\u05fe\u0003\u0002\u0002\u0002\u0601\u0603\u0005`",
"1\u0002\u0602\u0601\u0003\u0002\u0002\u0002\u0603\u0606\u0003\u0002",
"\u0002\u0002\u0604\u0602\u0003\u0002\u0002\u0002\u0604\u0605\u0003\u0002",
"\u0002\u0002\u0605\u0608\u0003\u0002\u0002\u0002\u0606\u0604\u0003\u0002",
"\u0002\u0002\u0607\u0609\u0005Z.\u0002\u0608\u0607\u0003\u0002\u0002",
"\u0002\u0608\u0609\u0003\u0002\u0002\u0002\u0609U\u0003\u0002\u0002",
"\u0002\u060a\u060b\u0007\u0015\u0002\u0002\u060b\u060c\u0007\u0016\u0002",
"\u0002\u060c\u0611\u0005\u008eH\u0002\u060d\u060e\u0007\u0006\u0002",
"\u0002\u060e\u0610\u0005\u008eH\u0002\u060f\u060d\u0003\u0002\u0002",
"\u0002\u0610\u0613\u0003\u0002\u0002\u0002\u0611\u060f\u0003\u0002\u0002",
"\u0002\u0611\u0612\u0003\u0002\u0002\u0002\u0612\u0625\u0003\u0002\u0002",
"\u0002\u0613\u0611\u0003\u0002\u0002\u0002\u0614\u0615\u0007O\u0002",
"\u0002\u0615\u0626\u0007\u001a\u0002\u0002\u0616\u0617\u0007O\u0002",
"\u0002\u0617\u0626\u0007\u0019\u0002\u0002\u0618\u0619\u0007\u0017\u0002",
"\u0002\u0619\u061a\u0007\u0018\u0002\u0002\u061a\u061b\u0007\u0003\u0002",
"\u0002\u061b\u0620\u0005X-\u0002\u061c\u061d\u0007\u0006\u0002\u0002",
"\u061d\u061f\u0005X-\u0002\u061e\u061c\u0003\u0002\u0002\u0002\u061f",
"\u0622\u0003\u0002\u0002\u0002\u0620\u061e\u0003\u0002\u0002\u0002\u0620",
"\u0621\u0003\u0002\u0002\u0002\u0621\u0623\u0003\u0002\u0002\u0002\u0622",
"\u0620\u0003\u0002\u0002\u0002\u0623\u0624\u0007\u0004\u0002\u0002\u0624",
"\u0626\u0003\u0002\u0002\u0002\u0625\u0614\u0003\u0002\u0002\u0002\u0625",
"\u0616\u0003\u0002\u0002\u0002\u0625\u0618\u0003\u0002\u0002\u0002\u0625",
"\u0626\u0003\u0002\u0002\u0002\u0626\u0637\u0003\u0002\u0002\u0002\u0627",
"\u0628\u0007\u0015\u0002\u0002\u0628\u0629\u0007\u0016\u0002\u0002\u0629",
"\u062a\u0007\u0017\u0002\u0002\u062a\u062b\u0007\u0018\u0002\u0002\u062b",
"\u062c\u0007\u0003\u0002\u0002\u062c\u0631\u0005X-\u0002\u062d\u062e",
"\u0007\u0006\u0002\u0002\u062e\u0630\u0005X-\u0002\u062f\u062d\u0003",
"\u0002\u0002\u0002\u0630\u0633\u0003\u0002\u0002\u0002\u0631\u062f\u0003",
"\u0002\u0002\u0002\u0631\u0632\u0003\u0002\u0002\u0002\u0632\u0634\u0003",
"\u0002\u0002\u0002\u0633\u0631\u0003\u0002\u0002\u0002\u0634\u0635\u0007",
"\u0004\u0002\u0002\u0635\u0637\u0003\u0002\u0002\u0002\u0636\u060a\u0003",
"\u0002\u0002\u0002\u0636\u0627\u0003\u0002\u0002\u0002\u0637W\u0003",
"\u0002\u0002\u0002\u0638\u0641\u0007\u0003\u0002\u0002\u0639\u063e\u0005",
"\u008eH\u0002\u063a\u063b\u0007\u0006\u0002\u0002\u063b\u063d\u0005",
"\u008eH\u0002\u063c\u063a\u0003\u0002\u0002\u0002\u063d\u0640\u0003",
"\u0002\u0002\u0002\u063e\u063c\u0003\u0002\u0002\u0002\u063e\u063f\u0003",
"\u0002\u0002\u0002\u063f\u0642\u0003\u0002\u0002\u0002\u0640\u063e\u0003",
"\u0002\u0002\u0002\u0641\u0639\u0003\u0002\u0002\u0002\u0641\u0642\u0003",
"\u0002\u0002\u0002\u0642\u0643\u0003\u0002\u0002\u0002\u0643\u0646\u0007",
"\u0004\u0002\u0002\u0644\u0646\u0005\u008eH\u0002\u0645\u0638\u0003",
"\u0002\u0002\u0002\u0645\u0644\u0003\u0002\u0002\u0002\u0646Y\u0003",
"\u0002\u0002\u0002\u0647\u0648\u0007@\u0002\u0002\u0648\u0649\u0007",
"\u0003\u0002\u0002\u0649\u064a\u0005\u008cG\u0002\u064a\u064b\u0007",
"/\u0002\u0002\u064b\u064c\u0005\\/\u0002\u064c\u064d\u0007!\u0002\u0002",
"\u064d\u064e\u0007\u0003\u0002\u0002\u064e\u0653\u0005^0\u0002\u064f",
"\u0650\u0007\u0006\u0002\u0002\u0650\u0652\u0005^0\u0002\u0651\u064f",
"\u0003\u0002\u0002\u0002\u0652\u0655\u0003\u0002\u0002\u0002\u0653\u0651",
"\u0003\u0002\u0002\u0002\u0653\u0654\u0003\u0002\u0002\u0002\u0654\u0656",
"\u0003\u0002\u0002\u0002\u0655\u0653\u0003\u0002\u0002\u0002\u0656\u0657",
"\u0007\u0004\u0002\u0002\u0657\u0658\u0007\u0004\u0002\u0002\u0658[",
"\u0003\u0002\u0002\u0002\u0659\u0666\u0005\u00c6d\u0002\u065a\u065b",
"\u0007\u0003\u0002\u0002\u065b\u0660\u0005\u00c6d\u0002\u065c\u065d",
"\u0007\u0006\u0002\u0002\u065d\u065f\u0005\u00c6d\u0002\u065e\u065c",
"\u0003\u0002\u0002\u0002\u065f\u0662\u0003\u0002\u0002\u0002\u0660\u065e",
"\u0003\u0002\u0002\u0002\u0660\u0661\u0003\u0002\u0002\u0002\u0661\u0663",
"\u0003\u0002\u0002\u0002\u0662\u0660\u0003\u0002\u0002\u0002\u0663\u0664",
"\u0007\u0004\u0002\u0002\u0664\u0666\u0003\u0002\u0002\u0002\u0665\u0659",
"\u0003\u0002\u0002\u0002\u0665\u065a\u0003\u0002\u0002\u0002\u0666]",
"\u0003\u0002\u0002\u0002\u0667\u066c\u0005\u008eH\u0002\u0668\u066a",
"\u0007\u0010\u0002\u0002\u0669\u0668\u0003\u0002\u0002\u0002\u0669\u066a",
"\u0003\u0002\u0002\u0002\u066a\u066b\u0003\u0002\u0002\u0002\u066b\u066d",
"\u0005\u00c6d\u0002\u066c\u0669\u0003\u0002\u0002\u0002\u066c\u066d",
"\u0003\u0002\u0002\u0002\u066d_\u0003\u0002\u0002\u0002\u066e\u066f",
"\u0007A\u0002\u0002\u066f\u0671\u0007T\u0002\u0002\u0670\u0672\u0007",
"8\u0002\u0002\u0671\u0670\u0003\u0002\u0002\u0002\u0671\u0672\u0003",
"\u0002\u0002\u0002\u0672\u0673\u0003\u0002\u0002\u0002\u0673\u0674\u0005",
"\u00c4c\u0002\u0674\u067d\u0007\u0003\u0002\u0002\u0675\u067a\u0005",
"\u008eH\u0002\u0676\u0677\u0007\u0006\u0002\u0002\u0677\u0679\u0005",
"\u008eH\u0002\u0678\u0676\u0003\u0002\u0002\u0002\u0679\u067c\u0003",
"\u0002\u0002\u0002\u067a\u0678\u0003\u0002\u0002\u0002\u067a\u067b\u0003",
"\u0002\u0002\u0002\u067b\u067e\u0003\u0002\u0002\u0002\u067c\u067a\u0003",
"\u0002\u0002\u0002\u067d\u0675\u0003\u0002\u0002\u0002\u067d\u067e\u0003",
"\u0002\u0002\u0002\u067e\u067f\u0003\u0002\u0002\u0002\u067f\u0680\u0007",
"\u0004\u0002\u0002\u0680\u068c\u0005\u00c6d\u0002\u0681\u0683\u0007",
"\u0010\u0002\u0002\u0682\u0681\u0003\u0002\u0002\u0002\u0682\u0683\u0003",
"\u0002\u0002\u0002\u0683\u0684\u0003\u0002\u0002\u0002\u0684\u0689\u0005",
"\u00c6d\u0002\u0685\u0686\u0007\u0006\u0002\u0002\u0686\u0688\u0005",
"\u00c6d\u0002\u0687\u0685\u0003\u0002\u0002\u0002\u0688\u068b\u0003",
"\u0002\u0002\u0002\u0689\u0687\u0003\u0002\u0002\u0002\u0689\u068a\u0003",
"\u0002\u0002\u0002\u068a\u068d\u0003\u0002\u0002\u0002\u068b\u0689\u0003",
"\u0002\u0002\u0002\u068c\u0682\u0003\u0002\u0002\u0002\u068c\u068d\u0003",
"\u0002\u0002\u0002\u068da\u0003\u0002\u0002\u0002\u068e\u068f\t\r\u0002",
"\u0002\u068fc\u0003\u0002\u0002\u0002\u0690\u0694\u0005|?\u0002\u0691",
"\u0693\u0005f4\u0002\u0692\u0691\u0003\u0002\u0002\u0002\u0693\u0696",
"\u0003\u0002\u0002\u0002\u0694\u0692\u0003\u0002\u0002\u0002\u0694\u0695",
"\u0003\u0002\u0002\u0002\u0695e\u0003\u0002\u0002\u0002\u0696\u0694",
"\u0003\u0002\u0002\u0002\u0697\u0698\u0005h5\u0002\u0698\u0699\u0007",
"6\u0002\u0002\u0699\u069b\u0005|?\u0002\u069a\u069c\u0005j6\u0002\u069b",
"\u069a\u0003\u0002\u0002\u0002\u069b\u069c\u0003\u0002\u0002\u0002\u069c",
"\u06a3\u0003\u0002\u0002\u0002\u069d\u069e\u0007>\u0002\u0002\u069e",
"\u069f\u0005h5\u0002\u069f\u06a0\u00076\u0002\u0002\u06a0\u06a1\u0005",
"|?\u0002\u06a1\u06a3\u0003\u0002\u0002\u0002\u06a2\u0697\u0003\u0002",
"\u0002\u0002\u06a2\u069d\u0003\u0002\u0002\u0002\u06a3g\u0003\u0002",
"\u0002\u0002\u06a4\u06a6\u00079\u0002\u0002\u06a5\u06a4\u0003\u0002",
"\u0002\u0002\u06a5\u06a6\u0003\u0002\u0002\u0002\u06a6\u06bb\u0003\u0002",
"\u0002\u0002\u06a7\u06bb\u00077\u0002\u0002\u06a8\u06aa\u0007:\u0002",
"\u0002\u06a9\u06ab\u00078\u0002\u0002\u06aa\u06a9\u0003\u0002\u0002",
"\u0002\u06aa\u06ab\u0003\u0002\u0002\u0002\u06ab\u06bb\u0003\u0002\u0002",
"\u0002\u06ac\u06ad\u0007:\u0002\u0002\u06ad\u06bb\u0007;\u0002\u0002",
"\u06ae\u06b0\u0007<\u0002\u0002\u06af\u06b1\u00078\u0002\u0002\u06b0",
"\u06af\u0003\u0002\u0002\u0002\u06b0\u06b1\u0003\u0002\u0002\u0002\u06b1",
"\u06bb\u0003\u0002\u0002\u0002\u06b2\u06b4\u0007=\u0002\u0002\u06b3",
"\u06b5\u00078\u0002\u0002\u06b4\u06b3\u0003\u0002\u0002\u0002\u06b4",
"\u06b5\u0003\u0002\u0002\u0002\u06b5\u06bb\u0003\u0002\u0002\u0002\u06b6",
"\u06b8\u0007:\u0002\u0002\u06b7\u06b6\u0003\u0002\u0002\u0002\u06b7",
"\u06b8\u0003\u0002\u0002\u0002\u06b8\u06b9\u0003\u0002\u0002\u0002\u06b9",
"\u06bb\u0007\u00ef\u0002\u0002\u06ba\u06a5\u0003\u0002\u0002\u0002\u06ba",
"\u06a7\u0003\u0002\u0002\u0002\u06ba\u06a8\u0003\u0002\u0002\u0002\u06ba",
"\u06ac\u0003\u0002\u0002\u0002\u06ba\u06ae\u0003\u0002\u0002\u0002\u06ba",
"\u06b2\u0003\u0002\u0002\u0002\u06ba\u06b7\u0003\u0002\u0002\u0002\u06bb",
"i\u0003\u0002\u0002\u0002\u06bc\u06bd\u0007?\u0002\u0002\u06bd\u06c1",
"\u0005\u0090I\u0002\u06be\u06bf\u0007\u00a1\u0002\u0002\u06bf\u06c1",
"\u0005p9\u0002\u06c0\u06bc\u0003\u0002\u0002\u0002\u06c0\u06be\u0003",
"\u0002\u0002\u0002\u06c1k\u0003\u0002\u0002\u0002\u06c2\u06c3\u0007",
"m\u0002\u0002\u06c3\u06c5\u0007\u0003\u0002\u0002\u06c4\u06c6\u0005",
"n8\u0002\u06c5\u06c4\u0003\u0002\u0002\u0002\u06c5\u06c6\u0003\u0002",
"\u0002\u0002\u06c6\u06c7\u0003\u0002\u0002\u0002\u06c7\u06c8\u0007\u0004",
"\u0002\u0002\u06c8m\u0003\u0002\u0002\u0002\u06c9\u06cb\u0007\u008d",
"\u0002\u0002\u06ca\u06c9\u0003\u0002\u0002\u0002\u06ca\u06cb\u0003\u0002",
"\u0002\u0002\u06cb\u06cc\u0003\u0002\u0002\u0002\u06cc\u06cd\t\u000e",
"\u0002\u0002\u06cd\u06e2\u0007\u0097\u0002\u0002\u06ce\u06cf\u0005\u008e",
"H\u0002\u06cf\u06d0\u0007F\u0002\u0002\u06d0\u06e2\u0003\u0002\u0002",
"\u0002\u06d1\u06d2\u0007\u0098\u0002\u0002\u06d2\u06d3\u0007\u00f7\u0002",
"\u0002\u06d3\u06d4\u0007\u0099\u0002\u0002\u06d4\u06d5\u0007\u009a\u0002",
"\u0002\u06d5\u06de\u0007\u00f7\u0002\u0002\u06d6\u06dc\u0007?\u0002",
"\u0002\u06d7\u06dd\u0005\u00c6d\u0002\u06d8\u06d9\u0005\u00c4c\u0002",
"\u06d9\u06da\u0007\u0003\u0002\u0002\u06da\u06db\u0007\u0004\u0002\u0002",
"\u06db\u06dd\u0003\u0002\u0002\u0002\u06dc\u06d7\u0003\u0002\u0002\u0002",
"\u06dc\u06d8\u0003\u0002\u0002\u0002\u06dd\u06df\u0003\u0002\u0002\u0002",
"\u06de\u06d6\u0003\u0002\u0002\u0002\u06de\u06df\u0003\u0002\u0002\u0002",
"\u06df\u06e2\u0003\u0002\u0002\u0002\u06e0\u06e2\u0005\u008eH\u0002",
"\u06e1\u06ca\u0003\u0002\u0002\u0002\u06e1\u06ce\u0003\u0002\u0002\u0002",
"\u06e1\u06d1\u0003\u0002\u0002\u0002\u06e1\u06e0\u0003\u0002\u0002\u0002",
"\u06e2o\u0003\u0002\u0002\u0002\u06e3\u06e4\u0007\u0003\u0002\u0002",
"\u06e4\u06e5\u0005r:\u0002\u06e5\u06e6\u0007\u0004\u0002\u0002\u06e6",
"q\u0003\u0002\u0002\u0002\u06e7\u06ec\u0005\u00c6d\u0002\u06e8\u06e9",
"\u0007\u0006\u0002\u0002\u06e9\u06eb\u0005\u00c6d\u0002\u06ea\u06e8",
"\u0003\u0002\u0002\u0002\u06eb\u06ee\u0003\u0002\u0002\u0002\u06ec\u06ea",
"\u0003\u0002\u0002\u0002\u06ec\u06ed\u0003\u0002\u0002\u0002\u06eds",
"\u0003\u0002\u0002\u0002\u06ee\u06ec\u0003\u0002\u0002\u0002\u06ef\u06f0",
"\u0007\u0003\u0002\u0002\u06f0\u06f5\u0005v<\u0002\u06f1\u06f2\u0007",
"\u0006\u0002\u0002\u06f2\u06f4\u0005v<\u0002\u06f3\u06f1\u0003\u0002",
"\u0002\u0002\u06f4\u06f7\u0003\u0002\u0002\u0002\u06f5\u06f3\u0003\u0002",
"\u0002\u0002\u06f5\u06f6\u0003\u0002\u0002\u0002\u06f6\u06f8\u0003\u0002",
"\u0002\u0002\u06f7\u06f5\u0003\u0002\u0002\u0002\u06f8\u06f9\u0007\u0004",
"\u0002\u0002\u06f9u\u0003\u0002\u0002\u0002\u06fa\u06fc\u0005\u00c6",
"d\u0002\u06fb\u06fd\t\u000b\u0002\u0002\u06fc\u06fb\u0003\u0002\u0002",
"\u0002\u06fc\u06fd\u0003\u0002\u0002\u0002\u06fdw\u0003\u0002\u0002",
"\u0002\u06fe\u06ff\u0007\u0003\u0002\u0002\u06ff\u0704\u0005z>\u0002",
"\u0700\u0701\u0007\u0006\u0002\u0002\u0701\u0703\u0005z>\u0002\u0702",
"\u0700\u0003\u0002\u0002\u0002\u0703\u0706\u0003\u0002\u0002\u0002\u0704",
"\u0702\u0003\u0002\u0002\u0002\u0704\u0705\u0003\u0002\u0002\u0002\u0705",
"\u0707\u0003\u0002\u0002\u0002\u0706\u0704\u0003\u0002\u0002\u0002\u0707",
"\u0708\u0007\u0004\u0002\u0002\u0708y\u0003\u0002\u0002\u0002\u0709",
"\u070c\u0005\u00c6d\u0002\u070a\u070b\u0007t\u0002\u0002\u070b\u070d",
"\u0007\u00f3\u0002\u0002\u070c\u070a\u0003\u0002\u0002\u0002\u070c\u070d",
"\u0003\u0002\u0002\u0002\u070d{\u0003\u0002\u0002\u0002\u070e\u0710",
"\u0005\u0086D\u0002\u070f\u0711\u0005l7\u0002\u0710\u070f\u0003\u0002",
"\u0002\u0002\u0710\u0711\u0003\u0002\u0002\u0002\u0711\u0712\u0003\u0002",
"\u0002\u0002\u0712\u0713\u0005\u0082B\u0002\u0713\u0727\u0003\u0002",
"\u0002\u0002\u0714\u0715\u0007\u0003\u0002\u0002\u0715\u0716\u0005B",
"\"\u0002\u0716\u0718\u0007\u0004\u0002\u0002\u0717\u0719\u0005l7\u0002",
"\u0718\u0717\u0003\u0002\u0002\u0002\u0718\u0719\u0003\u0002\u0002\u0002",
"\u0719\u071a\u0003\u0002\u0002\u0002\u071a\u071b\u0005\u0082B\u0002",
"\u071b\u0727\u0003\u0002\u0002\u0002\u071c\u071d\u0007\u0003\u0002\u0002",
"\u071d\u071e\u0005d3\u0002\u071e\u0720\u0007\u0004\u0002\u0002\u071f",
"\u0721\u0005l7\u0002\u0720\u071f\u0003\u0002\u0002\u0002\u0720\u0721",
"\u0003\u0002\u0002\u0002\u0721\u0722\u0003\u0002\u0002\u0002\u0722\u0723",
"\u0005\u0082B\u0002\u0723\u0727\u0003\u0002\u0002\u0002\u0724\u0727",
"\u0005~@\u0002\u0725\u0727\u0005\u0080A\u0002\u0726\u070e\u0003\u0002",
"\u0002\u0002\u0726\u0714\u0003\u0002\u0002\u0002\u0726\u071c\u0003\u0002",
"\u0002\u0002\u0726\u0724\u0003\u0002\u0002\u0002\u0726\u0725\u0003\u0002",
"\u0002\u0002\u0727}\u0003\u0002\u0002\u0002\u0728\u0729\u0007P\u0002",
"\u0002\u0729\u072e\u0005\u008eH\u0002\u072a\u072b\u0007\u0006\u0002",
"\u0002\u072b\u072d\u0005\u008eH\u0002\u072c\u072a\u0003\u0002\u0002",
"\u0002\u072d\u0730\u0003\u0002\u0002\u0002\u072e\u072c\u0003\u0002\u0002",
"\u0002\u072e\u072f\u0003\u0002\u0002\u0002\u072f\u0731\u0003\u0002\u0002",
"\u0002\u0730\u072e\u0003\u0002\u0002\u0002\u0731\u0732\u0005\u0082B",
"\u0002\u0732\u007f\u0003\u0002\u0002\u0002\u0733\u0734\u0005\u00c6d",
"\u0002\u0734\u073d\u0007\u0003\u0002\u0002\u0735\u073a\u0005\u008eH",
"\u0002\u0736\u0737\u0007\u0006\u0002\u0002\u0737\u0739\u0005\u008eH",
"\u0002\u0738\u0736\u0003\u0002\u0002\u0002\u0739\u073c\u0003\u0002\u0002",
"\u0002\u073a\u0738\u0003\u0002\u0002\u0002\u073a\u073b\u0003\u0002\u0002",
"\u0002\u073b\u073e\u0003\u0002\u0002\u0002\u073c\u073a\u0003\u0002\u0002",
"\u0002\u073d\u0735\u0003\u0002\u0002\u0002\u073d\u073e\u0003\u0002\u0002",
"\u0002\u073e\u073f\u0003\u0002\u0002\u0002\u073f\u0740\u0007\u0004\u0002",
"\u0002\u0740\u0741\u0005\u0082B\u0002\u0741\u0081\u0003\u0002\u0002",
"\u0002\u0742\u0744\u0007\u0010\u0002\u0002\u0743\u0742\u0003\u0002\u0002",
"\u0002\u0743\u0744\u0003\u0002\u0002\u0002\u0744\u0745\u0003\u0002\u0002",
"\u0002\u0745\u0747\u0005\u00c8e\u0002\u0746\u0748\u0005p9\u0002\u0747",
"\u0746\u0003\u0002\u0002\u0002\u0747\u0748\u0003\u0002\u0002\u0002\u0748",
"\u074a\u0003\u0002\u0002\u0002\u0749\u0743\u0003\u0002\u0002\u0002\u0749",
"\u074a\u0003\u0002\u0002\u0002\u074a\u0083\u0003\u0002\u0002\u0002\u074b",
"\u074c\u0007N\u0002\u0002\u074c\u074d\u0007[\u0002\u0002\u074d\u074e",
"\u0007\u00a2\u0002\u0002\u074e\u0752\u0007\u00f3\u0002\u0002\u074f\u0750",
"\u0007O\u0002\u0002\u0750\u0751\u0007\u00a3\u0002\u0002\u0751\u0753",
"\u0005.\u0018\u0002\u0752\u074f\u0003\u0002\u0002\u0002\u0752\u0753",
"\u0003\u0002\u0002\u0002\u0753\u077d\u0003\u0002\u0002\u0002\u0754\u0755",
"\u0007N\u0002\u0002\u0755\u0756\u0007[\u0002\u0002\u0756\u0760\u0007",
"\u00a6\u0002\u0002\u0757\u0758\u0007\u00a7\u0002\u0002\u0758\u0759\u0007",
"\u00a8\u0002\u0002\u0759\u075a\u0007\u0016\u0002\u0002\u075a\u075e\u0007",
"\u00f3\u0002\u0002\u075b\u075c\u0007\u00ac\u0002\u0002\u075c\u075d\u0007",
"\u0016\u0002\u0002\u075d\u075f\u0007\u00f3\u0002\u0002\u075e\u075b\u0003",
"\u0002\u0002\u0002\u075e\u075f\u0003\u0002\u0002\u0002\u075f\u0761\u0003",
"\u0002\u0002\u0002\u0760\u0757\u0003\u0002\u0002\u0002\u0760\u0761\u0003",
"\u0002\u0002\u0002\u0761\u0767\u0003\u0002\u0002\u0002\u0762\u0763\u0007",
"\u00a9\u0002\u0002\u0763\u0764\u0007\u00aa\u0002\u0002\u0764\u0765\u0007",
"\u00a8\u0002\u0002\u0765\u0766\u0007\u0016\u0002\u0002\u0766\u0768\u0007",
"\u00f3\u0002\u0002\u0767\u0762\u0003\u0002\u0002\u0002\u0767\u0768\u0003",
"\u0002\u0002\u0002\u0768\u076e\u0003\u0002\u0002\u0002\u0769\u076a\u0007",
"r\u0002\u0002\u076a\u076b\u0007\u00ab\u0002\u0002\u076b\u076c\u0007",
"\u00a8\u0002\u0002\u076c\u076d\u0007\u0016\u0002\u0002\u076d\u076f\u0007",
"\u00f3\u0002\u0002\u076e\u0769\u0003\u0002\u0002\u0002\u076e\u076f\u0003",
"\u0002\u0002\u0002\u076f\u0774\u0003\u0002\u0002\u0002\u0770\u0771\u0007",
"\u00ad\u0002\u0002\u0771\u0772\u0007\u00a8\u0002\u0002\u0772\u0773\u0007",
"\u0016\u0002\u0002\u0773\u0775\u0007\u00f3\u0002\u0002\u0774\u0770\u0003",
"\u0002\u0002\u0002\u0774\u0775\u0003\u0002\u0002\u0002\u0775\u077a\u0003",
"\u0002\u0002\u0002\u0776\u0777\u0007)\u0002\u0002\u0777\u0778\u0007",
"\u00db\u0002\u0002\u0778\u0779\u0007\u0010\u0002\u0002\u0779\u077b\u0007",
"\u00f3\u0002\u0002\u077a\u0776\u0003\u0002\u0002\u0002\u077a\u077b\u0003",
"\u0002\u0002\u0002\u077b\u077d\u0003\u0002\u0002\u0002\u077c\u074b\u0003",
"\u0002\u0002\u0002\u077c\u0754\u0003\u0002\u0002\u0002\u077d\u0085\u0003",
"\u0002\u0002\u0002\u077e\u077f\u0005\u00c6d\u0002\u077f\u0780\u0007",
"\u0005\u0002\u0002\u0780\u0782\u0003\u0002\u0002\u0002\u0781\u077e\u0003",
"\u0002\u0002\u0002\u0781\u0782\u0003\u0002\u0002\u0002\u0782\u0783\u0003",
"\u0002\u0002\u0002\u0783\u0784\u0005\u00c6d\u0002\u0784\u0087\u0003",
"\u0002\u0002\u0002\u0785\u0786\u0005\u00c6d\u0002\u0786\u0787\u0007",
"\u0005\u0002\u0002\u0787\u0789\u0003\u0002\u0002\u0002\u0788\u0785\u0003",
"\u0002\u0002\u0002\u0788\u0789\u0003\u0002\u0002\u0002\u0789\u078a\u0003",
"\u0002\u0002\u0002\u078a\u078b\u0005\u00c6d\u0002\u078b\u0089\u0003",
"\u0002\u0002\u0002\u078c\u0794\u0005\u008eH\u0002\u078d\u078f\u0007",
"\u0010\u0002\u0002\u078e\u078d\u0003\u0002\u0002\u0002\u078e\u078f\u0003",
"\u0002\u0002\u0002\u078f\u0792\u0003\u0002\u0002\u0002\u0790\u0793\u0005",
"\u00c6d\u0002\u0791\u0793\u0005p9\u0002\u0792\u0790\u0003\u0002\u0002",
"\u0002\u0792\u0791\u0003\u0002\u0002\u0002\u0793\u0795\u0003\u0002\u0002",
"\u0002\u0794\u078e\u0003\u0002\u0002\u0002\u0794\u0795\u0003\u0002\u0002",
"\u0002\u0795\u008b\u0003\u0002\u0002\u0002\u0796\u079b\u0005\u008aF",
"\u0002\u0797\u0798\u0007\u0006\u0002\u0002\u0798\u079a\u0005\u008aF",
"\u0002\u0799\u0797\u0003\u0002\u0002\u0002\u079a\u079d\u0003\u0002\u0002",
"\u0002\u079b\u0799\u0003\u0002\u0002\u0002\u079b\u079c\u0003\u0002\u0002",
"\u0002\u079c\u008d\u0003\u0002\u0002\u0002\u079d\u079b\u0003\u0002\u0002",
"\u0002\u079e\u079f\u0005\u0090I\u0002\u079f\u008f\u0003\u0002\u0002",
"\u0002\u07a0\u07a1\bI\u0001\u0002\u07a1\u07a2\u0007\"\u0002\u0002\u07a2",
"\u07ad\u0005\u0090I\u0007\u07a3\u07a4\u0007$\u0002\u0002\u07a4\u07a5",
"\u0007\u0003\u0002\u0002\u07a5\u07a6\u0005\u001a\u000e\u0002\u07a6\u07a7",
"\u0007\u0004\u0002\u0002\u07a7\u07ad\u0003\u0002\u0002\u0002\u07a8\u07aa",
"\u0005\u0094K\u0002\u07a9\u07ab\u0005\u0092J\u0002\u07aa\u07a9\u0003",
"\u0002\u0002\u0002\u07aa\u07ab\u0003\u0002\u0002\u0002\u07ab\u07ad\u0003",
"\u0002\u0002\u0002\u07ac\u07a0\u0003\u0002\u0002\u0002\u07ac\u07a3\u0003",
"\u0002\u0002\u0002\u07ac\u07a8\u0003\u0002\u0002\u0002\u07ad\u07b6\u0003",
"\u0002\u0002\u0002\u07ae\u07af\f\u0004\u0002\u0002\u07af\u07b0\u0007",
" \u0002\u0002\u07b0\u07b5\u0005\u0090I\u0005\u07b1\u07b2\f\u0003\u0002",
"\u0002\u07b2\u07b3\u0007\u001f\u0002\u0002\u07b3\u07b5\u0005\u0090I",
"\u0004\u07b4\u07ae\u0003\u0002\u0002\u0002\u07b4\u07b1\u0003\u0002\u0002",
"\u0002\u07b5\u07b8\u0003\u0002\u0002\u0002\u07b6\u07b4\u0003\u0002\u0002",
"\u0002\u07b6\u07b7\u0003\u0002\u0002\u0002\u07b7\u0091\u0003\u0002\u0002",
"\u0002\u07b8\u07b6\u0003\u0002\u0002\u0002\u07b9\u07bb\u0007\"\u0002",
"\u0002\u07ba\u07b9\u0003\u0002\u0002\u0002\u07ba\u07bb\u0003\u0002\u0002",
"\u0002\u07bb\u07bc\u0003\u0002\u0002\u0002\u07bc\u07bd\u0007%\u0002",
"\u0002\u07bd\u07be\u0005\u0094K\u0002\u07be\u07bf\u0007 \u0002\u0002",
"\u07bf\u07c0\u0005\u0094K\u0002\u07c0\u07ea\u0003\u0002\u0002\u0002",
"\u07c1\u07c3\u0007\"\u0002\u0002\u07c2\u07c1\u0003\u0002\u0002\u0002",
"\u07c2\u07c3\u0003\u0002\u0002\u0002\u07c3\u07c4\u0003\u0002\u0002\u0002",
"\u07c4\u07c5\u0007!\u0002\u0002\u07c5\u07c6\u0007\u0003\u0002\u0002",
"\u07c6\u07cb\u0005\u008eH\u0002\u07c7\u07c8\u0007\u0006\u0002\u0002",
"\u07c8\u07ca\u0005\u008eH\u0002\u07c9\u07c7\u0003\u0002\u0002\u0002",
"\u07ca\u07cd\u0003\u0002\u0002\u0002\u07cb\u07c9\u0003\u0002\u0002\u0002",
"\u07cb\u07cc\u0003\u0002\u0002\u0002\u07cc\u07ce\u0003\u0002\u0002\u0002",
"\u07cd\u07cb\u0003\u0002\u0002\u0002\u07ce\u07cf\u0007\u0004\u0002\u0002",
"\u07cf\u07ea\u0003\u0002\u0002\u0002\u07d0\u07d2\u0007\"\u0002\u0002",
"\u07d1\u07d0\u0003\u0002\u0002\u0002\u07d1\u07d2\u0003\u0002\u0002\u0002",
"\u07d2\u07d3\u0003\u0002\u0002\u0002\u07d3\u07d4\u0007!\u0002\u0002",
"\u07d4\u07d5\u0007\u0003\u0002\u0002\u07d5\u07d6\u0005\u001a\u000e\u0002",
"\u07d6\u07d7\u0007\u0004\u0002\u0002\u07d7\u07ea\u0003\u0002\u0002\u0002",
"\u07d8\u07da\u0007\"\u0002\u0002\u07d9\u07d8\u0003\u0002\u0002\u0002",
"\u07d9\u07da\u0003\u0002\u0002\u0002\u07da\u07db\u0003\u0002\u0002\u0002",
"\u07db\u07dc\t\u000f\u0002\u0002\u07dc\u07ea\u0005\u0094K\u0002\u07dd",
"\u07df\u0007(\u0002\u0002\u07de\u07e0\u0007\"\u0002\u0002\u07df\u07de",
"\u0003\u0002\u0002\u0002\u07df\u07e0\u0003\u0002\u0002\u0002\u07e0\u07e1",
"\u0003\u0002\u0002\u0002\u07e1\u07ea\u0007)\u0002\u0002\u07e2\u07e4",
"\u0007(\u0002\u0002\u07e3\u07e5\u0007\"\u0002\u0002\u07e4\u07e3\u0003",
"\u0002\u0002\u0002\u07e4\u07e5\u0003\u0002\u0002\u0002\u07e5\u07e6\u0003",
"\u0002\u0002\u0002\u07e6\u07e7\u0007\u0013\u0002\u0002\u07e7\u07e8\u0007",
"\u000e\u0002\u0002\u07e8\u07ea\u0005\u0094K\u0002\u07e9\u07ba\u0003",
"\u0002\u0002\u0002\u07e9\u07c2\u0003\u0002\u0002\u0002\u07e9\u07d1\u0003",
"\u0002\u0002\u0002\u07e9\u07d9\u0003\u0002\u0002\u0002\u07e9\u07dd\u0003",
"\u0002\u0002\u0002\u07e9\u07e2\u0003\u0002\u0002\u0002\u07ea\u0093\u0003",
"\u0002\u0002\u0002\u07eb\u07ec\bK\u0001\u0002\u07ec\u07f0\u0005\u0096",
"L\u0002\u07ed\u07ee\t\u0010\u0002\u0002\u07ee\u07f0\u0005\u0094K\t\u07ef",
"\u07eb\u0003\u0002\u0002\u0002\u07ef\u07ed\u0003\u0002\u0002\u0002\u07f0",
"\u0806\u0003\u0002\u0002\u0002\u07f1\u07f2\f\b\u0002\u0002\u07f2\u07f3",
"\t\u0011\u0002\u0002\u07f3\u0805\u0005\u0094K\t\u07f4\u07f5\f\u0007",
"\u0002\u0002\u07f5\u07f6\t\u0012\u0002\u0002\u07f6\u0805\u0005\u0094",
"K\b\u07f7\u07f8\f\u0006\u0002\u0002\u07f8\u07f9\u0007\u0093\u0002\u0002",
"\u07f9\u0805\u0005\u0094K\u0007\u07fa\u07fb\f\u0005\u0002\u0002\u07fb",
"\u07fc\u0007\u0096\u0002\u0002\u07fc\u0805\u0005\u0094K\u0006\u07fd",
"\u07fe\f\u0004\u0002\u0002\u07fe\u07ff\u0007\u0094\u0002\u0002\u07ff",
"\u0805\u0005\u0094K\u0005\u0800\u0801\f\u0003\u0002\u0002\u0801\u0802",
"\u0005\u009aN\u0002\u0802\u0803\u0005\u0094K\u0004\u0803\u0805\u0003",
"\u0002\u0002\u0002\u0804\u07f1\u0003\u0002\u0002\u0002\u0804\u07f4\u0003",
"\u0002\u0002\u0002\u0804\u07f7\u0003\u0002\u0002\u0002\u0804\u07fa\u0003",
"\u0002\u0002\u0002\u0804\u07fd\u0003\u0002\u0002\u0002\u0804\u0800\u0003",
"\u0002\u0002\u0002\u0805\u0808\u0003\u0002\u0002\u0002\u0806\u0804\u0003",
"\u0002\u0002\u0002\u0806\u0807\u0003\u0002\u0002\u0002\u0807\u0095\u0003",
"\u0002\u0002\u0002\u0808\u0806\u0003\u0002\u0002\u0002\u0809\u080a\b",
"L\u0001\u0002\u080a\u080c\u00071\u0002\u0002\u080b\u080d\u0005\u00b8",
"]\u0002\u080c\u080b\u0003\u0002\u0002\u0002\u080d\u080e\u0003\u0002",
"\u0002\u0002\u080e\u080c\u0003\u0002\u0002\u0002\u080e\u080f\u0003\u0002",
"\u0002\u0002\u080f\u0812\u0003\u0002\u0002\u0002\u0810\u0811\u00074",
"\u0002\u0002\u0811\u0813\u0005\u008eH\u0002\u0812\u0810\u0003\u0002",
"\u0002\u0002\u0812\u0813\u0003\u0002\u0002\u0002\u0813\u0814\u0003\u0002",
"\u0002\u0002\u0814\u0815\u00075\u0002\u0002\u0815\u089b\u0003\u0002",
"\u0002\u0002\u0816\u0817\u00071\u0002\u0002\u0817\u0819\u0005\u008e",
"H\u0002\u0818\u081a\u0005\u00b8]\u0002\u0819\u0818\u0003\u0002\u0002",
"\u0002\u081a\u081b\u0003\u0002\u0002\u0002\u081b\u0819\u0003\u0002\u0002",
"\u0002\u081b\u081c\u0003\u0002\u0002\u0002\u081c\u081f\u0003\u0002\u0002",
"\u0002\u081d\u081e\u00074\u0002\u0002\u081e\u0820\u0005\u008eH\u0002",
"\u081f\u081d\u0003\u0002\u0002\u0002\u081f\u0820\u0003\u0002\u0002\u0002",
"\u0820\u0821\u0003\u0002\u0002\u0002\u0821\u0822\u00075\u0002\u0002",
"\u0822\u089b\u0003\u0002\u0002\u0002\u0823\u0824\u0007_\u0002\u0002",
"\u0824\u0825\u0007\u0003\u0002\u0002\u0825\u0826\u0005\u008eH\u0002",
"\u0826\u0827\u0007\u0010\u0002\u0002\u0827\u0828\u0005\u00aaV\u0002",
"\u0828\u0829\u0007\u0004\u0002\u0002\u0829\u089b\u0003\u0002\u0002\u0002",
"\u082a\u082b\u0007s\u0002\u0002\u082b\u0834\u0007\u0003\u0002\u0002",
"\u082c\u0831\u0005\u008aF\u0002\u082d\u082e\u0007\u0006\u0002\u0002",
"\u082e\u0830\u0005\u008aF\u0002\u082f\u082d\u0003\u0002\u0002\u0002",
"\u0830\u0833\u0003\u0002\u0002\u0002\u0831\u082f\u0003\u0002\u0002\u0002",
"\u0831\u0832\u0003\u0002\u0002\u0002\u0832\u0835\u0003\u0002\u0002\u0002",
"\u0833\u0831\u0003\u0002\u0002\u0002\u0834\u082c\u0003\u0002\u0002\u0002",
"\u0834\u0835\u0003\u0002\u0002\u0002\u0835\u0836\u0003\u0002\u0002\u0002",
"\u0836\u089b\u0007\u0004\u0002\u0002\u0837\u0838\u0007K\u0002\u0002",
"\u0838\u0839\u0007\u0003\u0002\u0002\u0839\u083c\u0005\u008eH\u0002",
"\u083a\u083b\u0007}\u0002\u0002\u083b\u083d\u0007,\u0002\u0002\u083c",
"\u083a\u0003\u0002\u0002\u0002\u083c\u083d\u0003\u0002\u0002\u0002\u083d",
"\u083e\u0003\u0002\u0002\u0002\u083e\u083f\u0007\u0004\u0002\u0002\u083f",
"\u089b\u0003\u0002\u0002\u0002\u0840\u0841\u0007M\u0002\u0002\u0841",
"\u0842\u0007\u0003\u0002\u0002\u0842\u0845\u0005\u008eH\u0002\u0843",
"\u0844\u0007}\u0002\u0002\u0844\u0846\u0007,\u0002\u0002\u0845\u0843",
"\u0003\u0002\u0002\u0002\u0845\u0846\u0003\u0002\u0002\u0002\u0846\u0847",
"\u0003\u0002\u0002\u0002\u0847\u0848\u0007\u0004\u0002\u0002\u0848\u089b",
"\u0003\u0002\u0002\u0002\u0849\u084a\u0007\u0082\u0002\u0002\u084a\u084b",
"\u0007\u0003\u0002\u0002\u084b\u084c\u0005\u0094K\u0002\u084c\u084d",
"\u0007!\u0002\u0002\u084d\u084e\u0005\u0094K\u0002\u084e\u084f\u0007",
"\u0004\u0002\u0002\u084f\u089b\u0003\u0002\u0002\u0002\u0850\u089b\u0005",
"\u0098M\u0002\u0851\u089b\u0007\u008e\u0002\u0002\u0852\u0853\u0005",
"\u00c4c\u0002\u0853\u0854\u0007\u0005\u0002\u0002\u0854\u0855\u0007",
"\u008e\u0002\u0002\u0855\u089b\u0003\u0002\u0002\u0002\u0856\u0857\u0007",
"\u0003\u0002\u0002\u0857\u085a\u0005\u008aF\u0002\u0858\u0859\u0007",
"\u0006\u0002\u0002\u0859\u085b\u0005\u008aF\u0002\u085a\u0858\u0003",
"\u0002\u0002\u0002\u085b\u085c\u0003\u0002\u0002\u0002\u085c\u085a\u0003",
"\u0002\u0002\u0002\u085c\u085d\u0003\u0002\u0002\u0002\u085d\u085e\u0003",
"\u0002\u0002\u0002\u085e\u085f\u0007\u0004\u0002\u0002\u085f\u089b\u0003",
"\u0002\u0002\u0002\u0860\u0861\u0007\u0003\u0002\u0002\u0861\u0862\u0005",
"\u001a\u000e\u0002\u0862\u0863\u0007\u0004\u0002\u0002\u0863\u089b\u0003",
"\u0002\u0002\u0002\u0864\u0865\u0005\u00c4c\u0002\u0865\u0871\u0007",
"\u0003\u0002\u0002\u0866\u0868\u0005b2\u0002\u0867\u0866\u0003\u0002",
"\u0002\u0002\u0867\u0868\u0003\u0002\u0002\u0002\u0868\u0869\u0003\u0002",
"\u0002\u0002\u0869\u086e\u0005\u008eH\u0002\u086a\u086b\u0007\u0006",
"\u0002\u0002\u086b\u086d\u0005\u008eH\u0002\u086c\u086a\u0003\u0002",
"\u0002\u0002\u086d\u0870\u0003\u0002\u0002\u0002\u086e\u086c\u0003\u0002",
"\u0002\u0002\u086e\u086f\u0003\u0002\u0002\u0002\u086f\u0872\u0003\u0002",
"\u0002\u0002\u0870\u086e\u0003\u0002\u0002\u0002\u0871\u0867\u0003\u0002",
"\u0002\u0002\u0871\u0872\u0003\u0002\u0002\u0002\u0872\u0873\u0003\u0002",
"\u0002\u0002\u0873\u0876\u0007\u0004\u0002\u0002\u0874\u0875\u0007C",
"\u0002\u0002\u0875\u0877\u0005\u00be`\u0002\u0876\u0874\u0003\u0002",
"\u0002\u0002\u0876\u0877\u0003\u0002\u0002\u0002\u0877\u089b\u0003\u0002",
"\u0002\u0002\u0878\u0879\u0005\u00c4c\u0002\u0879\u087a\u0007\u0003",
"\u0002\u0002\u087a\u087b\t\u0013\u0002\u0002\u087b\u087c\u0005\u008e",
"H\u0002\u087c\u087d\u0007\u000e\u0002\u0002\u087d\u087e\u0005\u008e",
"H\u0002\u087e\u087f\u0007\u0004\u0002\u0002\u087f\u089b\u0003\u0002",
"\u0002\u0002\u0880\u0881\u0007\u00fb\u0002\u0002\u0881\u0882\u0007\t",
"\u0002\u0002\u0882\u089b\u0005\u008eH\u0002\u0883\u0884\u0007\u0003",
"\u0002\u0002\u0884\u0887\u0007\u00fb\u0002\u0002\u0885\u0886\u0007\u0006",
"\u0002\u0002\u0886\u0888\u0007\u00fb\u0002\u0002\u0887\u0885\u0003\u0002",
"\u0002\u0002\u0888\u0889\u0003\u0002\u0002\u0002\u0889\u0887\u0003\u0002",
"\u0002\u0002\u0889\u088a\u0003\u0002\u0002\u0002\u088a\u088b\u0003\u0002",
"\u0002\u0002\u088b\u088c\u0007\u0004\u0002\u0002\u088c\u088d\u0007\t",
"\u0002\u0002\u088d\u089b\u0005\u008eH\u0002\u088e\u089b\u0005\u00c6",
"d\u0002\u088f\u0890\u0007\u0003\u0002\u0002\u0890\u0891\u0005\u008e",
"H\u0002\u0891\u0892\u0007\u0004\u0002\u0002\u0892\u089b\u0003\u0002",
"\u0002\u0002\u0893\u0894\u0007\u0083\u0002\u0002\u0894\u0895\u0007\u0003",
"\u0002\u0002\u0895\u0896\u0005\u00c6d\u0002\u0896\u0897\u0007\u000e",
"\u0002\u0002\u0897\u0898\u0005\u0094K\u0002\u0898\u0899\u0007\u0004",
"\u0002\u0002\u0899\u089b\u0003\u0002\u0002\u0002\u089a\u0809\u0003\u0002",
"\u0002\u0002\u089a\u0816\u0003\u0002\u0002\u0002\u089a\u0823\u0003\u0002",
"\u0002\u0002\u089a\u082a\u0003\u0002\u0002\u0002\u089a\u0837\u0003\u0002",
"\u0002\u0002\u089a\u0840\u0003\u0002\u0002\u0002\u089a\u0849\u0003\u0002",
"\u0002\u0002\u089a\u0850\u0003\u0002\u0002\u0002\u089a\u0851\u0003\u0002",
"\u0002\u0002\u089a\u0852\u0003\u0002\u0002\u0002\u089a\u0856\u0003\u0002",
"\u0002\u0002\u089a\u0860\u0003\u0002\u0002\u0002\u089a\u0864\u0003\u0002",
"\u0002\u0002\u089a\u0878\u0003\u0002\u0002\u0002\u089a\u0880\u0003\u0002",
"\u0002\u0002\u089a\u0883\u0003\u0002\u0002\u0002\u089a\u088e\u0003\u0002",
"\u0002\u0002\u089a\u088f\u0003\u0002\u0002\u0002\u089a\u0893\u0003\u0002",
"\u0002\u0002\u089b\u08a6\u0003\u0002\u0002\u0002\u089c\u089d\f\u0007",
"\u0002\u0002\u089d\u089e\u0007\n\u0002\u0002\u089e\u089f\u0005\u0094",
"K\u0002\u089f\u08a0\u0007\u000b\u0002\u0002\u08a0\u08a5\u0003\u0002",
"\u0002\u0002\u08a1\u08a2\f\u0005\u0002\u0002\u08a2\u08a3\u0007\u0005",
"\u0002\u0002\u08a3\u08a5\u0005\u00c6d\u0002\u08a4\u089c\u0003\u0002",
"\u0002\u0002\u08a4\u08a1\u0003\u0002\u0002\u0002\u08a5\u08a8\u0003\u0002",
"\u0002\u0002\u08a6\u08a4\u0003\u0002\u0002\u0002\u08a6\u08a7\u0003\u0002",
"\u0002\u0002\u08a7\u0097\u0003\u0002\u0002\u0002\u08a8\u08a6\u0003\u0002",
"\u0002\u0002\u08a9\u08b6\u0007)\u0002\u0002\u08aa\u08b6\u0005\u00a2",
"R\u0002\u08ab\u08ac\u0005\u00c6d\u0002\u08ac\u08ad\u0007\u00f3\u0002",
"\u0002\u08ad\u08b6\u0003\u0002\u0002\u0002\u08ae\u08b6\u0005\u00ccg",
"\u0002\u08af\u08b6\u0005\u00a0Q\u0002\u08b0\u08b2\u0007\u00f3\u0002",
"\u0002\u08b1\u08b0\u0003\u0002\u0002\u0002\u08b2\u08b3\u0003\u0002\u0002",
"\u0002\u08b3\u08b1\u0003\u0002\u0002\u0002\u08b3\u08b4\u0003\u0002\u0002",
"\u0002\u08b4\u08b6\u0003\u0002\u0002\u0002\u08b5\u08a9\u0003\u0002\u0002",
"\u0002\u08b5\u08aa\u0003\u0002\u0002\u0002\u08b5\u08ab\u0003\u0002\u0002",
"\u0002\u08b5\u08ae\u0003\u0002\u0002\u0002\u08b5\u08af\u0003\u0002\u0002",
"\u0002\u08b5\u08b1\u0003\u0002\u0002\u0002\u08b6\u0099\u0003\u0002\u0002",
"\u0002\u08b7\u08b8\t\u0014\u0002\u0002\u08b8\u009b\u0003\u0002\u0002",
"\u0002\u08b9\u08ba\t\u0015\u0002\u0002\u08ba\u009d\u0003\u0002\u0002",
"\u0002\u08bb\u08bc\t\u0016\u0002\u0002\u08bc\u009f\u0003\u0002\u0002",
"\u0002\u08bd\u08be\t\u0017\u0002\u0002\u08be\u00a1\u0003\u0002\u0002",
"\u0002\u08bf\u08c3\u00070\u0002\u0002\u08c0\u08c2\u0005\u00a4S\u0002",
"\u08c1\u08c0\u0003\u0002\u0002\u0002\u08c2\u08c5\u0003\u0002\u0002\u0002",
"\u08c3\u08c1\u0003\u0002\u0002\u0002\u08c3\u08c4\u0003\u0002\u0002\u0002",
"\u08c4\u00a3\u0003\u0002\u0002\u0002\u08c5\u08c3\u0003\u0002\u0002\u0002",
"\u08c6\u08c7\u0005\u00a6T\u0002\u08c7\u08ca\u0005\u00c6d\u0002\u08c8",
"\u08c9\u0007l\u0002\u0002\u08c9\u08cb\u0005\u00c6d\u0002\u08ca\u08c8",
"\u0003\u0002\u0002\u0002\u08ca\u08cb\u0003\u0002\u0002\u0002\u08cb\u00a5",
"\u0003\u0002\u0002\u0002\u08cc\u08ce\t\u0018\u0002\u0002\u08cd\u08cc",
"\u0003\u0002\u0002\u0002\u08cd\u08ce\u0003\u0002\u0002\u0002\u08ce\u08cf",
"\u0003\u0002\u0002\u0002\u08cf\u08d2\t\u000e\u0002\u0002\u08d0\u08d2",
"\u0007\u00f3\u0002\u0002\u08d1\u08cd\u0003\u0002\u0002\u0002\u08d1\u08d0",
"\u0003\u0002\u0002\u0002\u08d2\u00a7\u0003\u0002\u0002\u0002\u08d3\u08d7",
"\u0007K\u0002\u0002\u08d4\u08d5\u0007L\u0002\u0002\u08d5\u08d7\u0005",
"\u00c6d\u0002\u08d6\u08d3\u0003\u0002\u0002\u0002\u08d6\u08d4\u0003",
"\u0002\u0002\u0002\u08d7\u00a9\u0003\u0002\u0002\u0002\u08d8\u08d9\u0007",
"q\u0002\u0002\u08d9\u08da\u0007\u0088\u0002\u0002\u08da\u08db\u0005",
"\u00aaV\u0002\u08db\u08dc\u0007\u008a\u0002\u0002\u08dc\u08fb\u0003",
"\u0002\u0002\u0002\u08dd\u08de\u0007r\u0002\u0002\u08de\u08df\u0007",
"\u0088\u0002\u0002\u08df\u08e0\u0005\u00aaV\u0002\u08e0\u08e1\u0007",
"\u0006\u0002\u0002\u08e1\u08e2\u0005\u00aaV\u0002\u08e2\u08e3\u0007",
"\u008a\u0002\u0002\u08e3\u08fb\u0003\u0002\u0002\u0002\u08e4\u08eb\u0007",
"s\u0002\u0002\u08e5\u08e7\u0007\u0088\u0002\u0002\u08e6\u08e8\u0005",
"\u00b4[\u0002\u08e7\u08e6\u0003\u0002\u0002\u0002\u08e7\u08e8\u0003",
"\u0002\u0002\u0002\u08e8\u08e9\u0003\u0002\u0002\u0002\u08e9\u08ec\u0007",
"\u008a\u0002\u0002\u08ea\u08ec\u0007\u0086\u0002\u0002\u08eb\u08e5\u0003",
"\u0002\u0002\u0002\u08eb\u08ea\u0003\u0002\u0002\u0002\u08ec\u08fb\u0003",
"\u0002\u0002\u0002\u08ed\u08f8\u0005\u00c6d\u0002\u08ee\u08ef\u0007",
"\u0003\u0002\u0002\u08ef\u08f4\u0007\u00f7\u0002\u0002\u08f0\u08f1\u0007",
"\u0006\u0002\u0002\u08f1\u08f3\u0007\u00f7\u0002\u0002\u08f2\u08f0\u0003",
"\u0002\u0002\u0002\u08f3\u08f6\u0003\u0002\u0002\u0002\u08f4\u08f2\u0003",
"\u0002\u0002\u0002\u08f4\u08f5\u0003\u0002\u0002\u0002\u08f5\u08f7\u0003",
"\u0002\u0002\u0002\u08f6\u08f4\u0003\u0002\u0002\u0002\u08f7\u08f9\u0007",
"\u0004\u0002\u0002\u08f8\u08ee\u0003\u0002\u0002\u0002\u08f8\u08f9\u0003",
"\u0002\u0002\u0002\u08f9\u08fb\u0003\u0002\u0002\u0002\u08fa\u08d8\u0003",
"\u0002\u0002\u0002\u08fa\u08dd\u0003\u0002\u0002\u0002\u08fa\u08e4\u0003",
"\u0002\u0002\u0002\u08fa\u08ed\u0003\u0002\u0002\u0002\u08fb\u00ab\u0003",
"\u0002\u0002\u0002\u08fc\u0901\u0005\u00aeX\u0002\u08fd\u08fe\u0007",
"\u0006\u0002\u0002\u08fe\u0900\u0005\u00aeX\u0002\u08ff\u08fd\u0003",
"\u0002\u0002\u0002\u0900\u0903\u0003\u0002\u0002\u0002\u0901\u08ff\u0003",
"\u0002\u0002\u0002\u0901\u0902\u0003\u0002\u0002\u0002\u0902\u00ad\u0003",
"\u0002\u0002\u0002\u0903\u0901\u0003\u0002\u0002\u0002\u0904\u0905\u0005",
"\u00c6d\u0002\u0905\u0908\u0005\u00aaV\u0002\u0906\u0907\u0007t\u0002",
"\u0002\u0907\u0909\u0007\u00f3\u0002\u0002\u0908\u0906\u0003\u0002\u0002",
"\u0002\u0908\u0909\u0003\u0002\u0002\u0002\u0909\u00af\u0003\u0002\u0002",
"\u0002\u090a\u090f\u0005\u00b2Z\u0002\u090b\u090c\u0007\u0006\u0002",
"\u0002\u090c\u090e\u0005\u00b2Z\u0002\u090d\u090b\u0003\u0002\u0002",
"\u0002\u090e\u0911\u0003\u0002\u0002\u0002\u090f\u090d\u0003\u0002\u0002",
"\u0002\u090f\u0910\u0003\u0002\u0002\u0002\u0910\u00b1\u0003\u0002\u0002",
"\u0002\u0911\u090f\u0003\u0002\u0002\u0002\u0912\u0917\u0005\u00c6d",
"\u0002\u0913\u0914\u0007\u0005\u0002\u0002\u0914\u0916\u0005\u00c6d",
"\u0002\u0915\u0913\u0003\u0002\u0002\u0002\u0916\u0919\u0003\u0002\u0002",
"\u0002\u0917\u0915\u0003\u0002\u0002\u0002\u0917\u0918\u0003\u0002\u0002",
"\u0002\u0918\u091a\u0003\u0002\u0002\u0002\u0919\u0917\u0003\u0002\u0002",
"\u0002\u091a\u091d\u0005\u00aaV\u0002\u091b\u091c\u0007\u0010\u0002",
"\u0002\u091c\u091e\u0005\u00c6d\u0002\u091d\u091b\u0003\u0002\u0002",
"\u0002\u091d\u091e\u0003\u0002\u0002\u0002\u091e\u0921\u0003\u0002\u0002",
"\u0002\u091f\u0920\u0007t\u0002\u0002\u0920\u0922\u0007\u00f3\u0002",
"\u0002\u0921\u091f\u0003\u0002\u0002\u0002\u0921\u0922\u0003\u0002\u0002",
"\u0002\u0922\u092a\u0003\u0002\u0002\u0002\u0923\u0924\u0007\u00f2\u0002",
"\u0002\u0924\u0925\u0007/\u0002\u0002\u0925\u0926\u0005\u00c6d\u0002",
"\u0926\u0927\u0007\u0010\u0002\u0002\u0927\u0928\u0005\u0096L\u0002",
"\u0928\u092a\u0003\u0002\u0002\u0002\u0929\u0912\u0003\u0002\u0002\u0002",
"\u0929\u0923\u0003\u0002\u0002\u0002\u092a\u00b3\u0003\u0002\u0002\u0002",
"\u092b\u0930\u0005\u00b6\\\u0002\u092c\u092d\u0007\u0006\u0002\u0002",
"\u092d\u092f\u0005\u00b6\\\u0002\u092e\u092c\u0003\u0002\u0002\u0002",
"\u092f\u0932\u0003\u0002\u0002\u0002\u0930\u092e\u0003\u0002\u0002\u0002",
"\u0930\u0931\u0003\u0002\u0002\u0002\u0931\u00b5\u0003\u0002\u0002\u0002",
"\u0932\u0930\u0003\u0002\u0002\u0002\u0933\u0934\u0005\u00c6d\u0002",
"\u0934\u0935\u0007\f\u0002\u0002\u0935\u0938\u0005\u00aaV\u0002\u0936",
"\u0937\u0007t\u0002\u0002\u0937\u0939\u0007\u00f3\u0002\u0002\u0938",
"\u0936\u0003\u0002\u0002\u0002\u0938\u0939\u0003\u0002\u0002\u0002\u0939",
"\u00b7\u0003\u0002\u0002\u0002\u093a\u093b\u00072\u0002\u0002\u093b",
"\u093c\u0005\u008eH\u0002\u093c\u093d\u00073\u0002\u0002\u093d\u093e",
"\u0005\u008eH\u0002\u093e\u00b9\u0003\u0002\u0002\u0002\u093f\u0940",
"\u0007B\u0002\u0002\u0940\u0945\u0005\u00bc_\u0002\u0941\u0942\u0007",
"\u0006\u0002\u0002\u0942\u0944\u0005\u00bc_\u0002\u0943\u0941\u0003",
"\u0002\u0002\u0002\u0944\u0947\u0003\u0002\u0002\u0002\u0945\u0943\u0003",
"\u0002\u0002\u0002\u0945\u0946\u0003\u0002\u0002\u0002\u0946\u00bb\u0003",
"\u0002\u0002\u0002\u0947\u0945\u0003\u0002\u0002\u0002\u0948\u0949\u0005",
"\u00c6d\u0002\u0949\u094a\u0007\u0010\u0002\u0002\u094a\u094b\u0005",
"\u00be`\u0002\u094b\u00bd\u0003\u0002\u0002\u0002\u094c\u0977\u0005",
"\u00c6d\u0002\u094d\u0970\u0007\u0003\u0002\u0002\u094e\u094f\u0007",
"\u009c\u0002\u0002\u094f\u0950\u0007\u0016\u0002\u0002\u0950\u0955\u0005",
"\u008eH\u0002\u0951\u0952\u0007\u0006\u0002\u0002\u0952\u0954\u0005",
"\u008eH\u0002\u0953\u0951\u0003\u0002\u0002\u0002\u0954\u0957\u0003",
"\u0002\u0002\u0002\u0955\u0953\u0003\u0002\u0002\u0002\u0955\u0956\u0003",
"\u0002\u0002\u0002\u0956\u0971\u0003\u0002\u0002\u0002\u0957\u0955\u0003",
"\u0002\u0002\u0002\u0958\u0959\t\u0019\u0002\u0002\u0959\u095a\u0007",
"\u0016\u0002\u0002\u095a\u095f\u0005\u008eH\u0002\u095b\u095c\u0007",
"\u0006\u0002\u0002\u095c\u095e\u0005\u008eH\u0002\u095d\u095b\u0003",
"\u0002\u0002\u0002\u095e\u0961\u0003\u0002\u0002\u0002\u095f\u095d\u0003",
"\u0002\u0002\u0002\u095f\u0960\u0003\u0002\u0002\u0002\u0960\u0963\u0003",
"\u0002\u0002\u0002\u0961\u095f\u0003\u0002\u0002\u0002\u0962\u0958\u0003",
"\u0002\u0002\u0002\u0962\u0963\u0003\u0002\u0002\u0002\u0963\u096e\u0003",
"\u0002\u0002\u0002\u0964\u0965\t\u001a\u0002\u0002\u0965\u0966\u0007",
"\u0016\u0002\u0002\u0966\u096b\u0005L\'\u0002\u0967\u0968\u0007\u0006",
"\u0002\u0002\u0968\u096a\u0005L\'\u0002\u0969\u0967\u0003\u0002\u0002",
"\u0002\u096a\u096d\u0003\u0002\u0002\u0002\u096b\u0969\u0003\u0002\u0002",
"\u0002\u096b\u096c\u0003\u0002\u0002\u0002\u096c\u096f\u0003\u0002\u0002",
"\u0002\u096d\u096b\u0003\u0002\u0002\u0002\u096e\u0964\u0003\u0002\u0002",
"\u0002\u096e\u096f\u0003\u0002\u0002\u0002\u096f\u0971\u0003\u0002\u0002",
"\u0002\u0970\u094e\u0003\u0002\u0002\u0002\u0970\u0962\u0003\u0002\u0002",
"\u0002\u0971\u0973\u0003\u0002\u0002\u0002\u0972\u0974\u0005\u00c0a",
"\u0002\u0973\u0972\u0003\u0002\u0002\u0002\u0973\u0974\u0003\u0002\u0002",
"\u0002\u0974\u0975\u0003\u0002\u0002\u0002\u0975\u0977\u0007\u0004\u0002",
"\u0002\u0976\u094c\u0003\u0002\u0002\u0002\u0976\u094d\u0003\u0002\u0002",
"\u0002\u0977\u00bf\u0003\u0002\u0002\u0002\u0978\u0979\u0007E\u0002",
"\u0002\u0979\u0989\u0005\u00c2b\u0002\u097a\u097b\u0007F\u0002\u0002",
"\u097b\u0989\u0005\u00c2b\u0002\u097c\u097d\u0007E\u0002\u0002\u097d",
"\u097e\u0007%\u0002\u0002\u097e\u097f\u0005\u00c2b\u0002\u097f\u0980",
"\u0007 \u0002\u0002\u0980\u0981\u0005\u00c2b\u0002\u0981\u0989\u0003",
"\u0002\u0002\u0002\u0982\u0983\u0007F\u0002\u0002\u0983\u0984\u0007",
"%\u0002\u0002\u0984\u0985\u0005\u00c2b\u0002\u0985\u0986\u0007 \u0002",
"\u0002\u0986\u0987\u0005\u00c2b\u0002\u0987\u0989\u0003\u0002\u0002",
"\u0002\u0988\u0978\u0003\u0002\u0002\u0002\u0988\u097a\u0003\u0002\u0002",
"\u0002\u0988\u097c\u0003\u0002\u0002\u0002\u0988\u0982\u0003\u0002\u0002",
"\u0002\u0989\u00c1\u0003\u0002\u0002\u0002\u098a\u098b\u0007G\u0002",
"\u0002\u098b\u0992\t\u001b\u0002\u0002\u098c\u098d\u0007J\u0002\u0002",
"\u098d\u0992\u0007N\u0002\u0002\u098e\u098f\u0005\u008eH\u0002\u098f",
"\u0990\t\u001b\u0002\u0002\u0990\u0992\u0003\u0002\u0002\u0002\u0991",
"\u098a\u0003\u0002\u0002\u0002\u0991\u098c\u0003\u0002\u0002\u0002\u0991",
"\u098e\u0003\u0002\u0002\u0002\u0992\u00c3\u0003\u0002\u0002\u0002\u0993",
"\u0998\u0005\u00c6d\u0002\u0994\u0995\u0007\u0005\u0002\u0002\u0995",
"\u0997\u0005\u00c6d\u0002\u0996\u0994\u0003\u0002\u0002\u0002\u0997",
"\u099a\u0003\u0002\u0002\u0002\u0998\u0996\u0003\u0002\u0002\u0002\u0998",
"\u0999\u0003\u0002\u0002\u0002\u0999\u00c5\u0003\u0002\u0002\u0002\u099a",
"\u0998\u0003\u0002\u0002\u0002\u099b\u09ab\u0005\u00c8e\u0002\u099c",
"\u09ab\u0007\u00ef\u0002\u0002\u099d\u09ab\u0007=\u0002\u0002\u099e",
"\u09ab\u00079\u0002\u0002\u099f\u09ab\u0007:\u0002\u0002\u09a0\u09ab",
"\u0007;\u0002\u0002\u09a1\u09ab\u0007<\u0002\u0002\u09a2\u09ab\u0007",
">\u0002\u0002\u09a3\u09ab\u00076\u0002\u0002\u09a4\u09ab\u00077\u0002",
"\u0002\u09a5\u09ab\u0007?\u0002\u0002\u09a6\u09ab\u0007h\u0002\u0002",
"\u09a7\u09ab\u0007k\u0002\u0002\u09a8\u09ab\u0007i\u0002\u0002\u09a9",
"\u09ab\u0007j\u0002\u0002\u09aa\u099b\u0003\u0002\u0002\u0002\u09aa",
"\u099c\u0003\u0002\u0002\u0002\u09aa\u099d\u0003\u0002\u0002\u0002\u09aa",
"\u099e\u0003\u0002\u0002\u0002\u09aa\u099f\u0003\u0002\u0002\u0002\u09aa",
"\u09a0\u0003\u0002\u0002\u0002\u09aa\u09a1\u0003\u0002\u0002\u0002\u09aa",
"\u09a2\u0003\u0002\u0002\u0002\u09aa\u09a3\u0003\u0002\u0002\u0002\u09aa",
"\u09a4\u0003\u0002\u0002\u0002\u09aa\u09a5\u0003\u0002\u0002\u0002\u09aa",
"\u09a6\u0003\u0002\u0002\u0002\u09aa\u09a7\u0003\u0002\u0002\u0002\u09aa",
"\u09a8\u0003\u0002\u0002\u0002\u09aa\u09a9\u0003\u0002\u0002\u0002\u09ab",
"\u00c7\u0003\u0002\u0002\u0002\u09ac\u09b0\u0007\u00fb\u0002\u0002\u09ad",
"\u09b0\u0005\u00caf\u0002\u09ae\u09b0\u0005\u00ceh\u0002\u09af\u09ac",
"\u0003\u0002\u0002\u0002\u09af\u09ad\u0003\u0002\u0002\u0002\u09af\u09ae",
"\u0003\u0002\u0002\u0002\u09b0\u00c9\u0003\u0002\u0002\u0002\u09b1\u09b2",
"\u0007\u00fc\u0002\u0002\u09b2\u00cb\u0003\u0002\u0002\u0002\u09b3\u09b5",
"\u0007\u008d\u0002\u0002\u09b4\u09b3\u0003\u0002\u0002\u0002\u09b4\u09b5",
"\u0003\u0002\u0002\u0002\u09b5\u09b6\u0003\u0002\u0002\u0002\u09b6\u09d0",
"\u0007\u00f8\u0002\u0002\u09b7\u09b9\u0007\u008d\u0002\u0002\u09b8\u09b7",
"\u0003\u0002\u0002\u0002\u09b8\u09b9\u0003\u0002\u0002\u0002\u09b9\u09ba",
"\u0003\u0002\u0002\u0002\u09ba\u09d0\u0007\u00f7\u0002\u0002\u09bb\u09bd",
"\u0007\u008d\u0002\u0002\u09bc\u09bb\u0003\u0002\u0002\u0002\u09bc\u09bd",
"\u0003\u0002\u0002\u0002\u09bd\u09be\u0003\u0002\u0002\u0002\u09be\u09d0",
"\u0007\u00f4\u0002\u0002\u09bf\u09c1\u0007\u008d\u0002\u0002\u09c0\u09bf",
"\u0003\u0002\u0002\u0002\u09c0\u09c1\u0003\u0002\u0002\u0002\u09c1\u09c2",
"\u0003\u0002\u0002\u0002\u09c2\u09d0\u0007\u00f5\u0002\u0002\u09c3\u09c5",
"\u0007\u008d\u0002\u0002\u09c4\u09c3\u0003\u0002\u0002\u0002\u09c4\u09c5",
"\u0003\u0002\u0002\u0002\u09c5\u09c6\u0003\u0002\u0002\u0002\u09c6\u09d0",
"\u0007\u00f6\u0002\u0002\u09c7\u09c9\u0007\u008d\u0002\u0002\u09c8\u09c7",
"\u0003\u0002\u0002\u0002\u09c8\u09c9\u0003\u0002\u0002\u0002\u09c9\u09ca",
"\u0003\u0002\u0002\u0002\u09ca\u09d0\u0007\u00f9\u0002\u0002\u09cb\u09cd",
"\u0007\u008d\u0002\u0002\u09cc\u09cb\u0003\u0002\u0002\u0002\u09cc\u09cd",
"\u0003\u0002\u0002\u0002\u09cd\u09ce\u0003\u0002\u0002\u0002\u09ce\u09d0",
"\u0007\u00fa\u0002\u0002\u09cf\u09b4\u0003\u0002\u0002\u0002\u09cf\u09b8",
"\u0003\u0002\u0002\u0002\u09cf\u09bc\u0003\u0002\u0002\u0002\u09cf\u09c0",
"\u0003\u0002\u0002\u0002\u09cf\u09c4\u0003\u0002\u0002\u0002\u09cf\u09c8",
"\u0003\u0002\u0002\u0002\u09cf\u09cc\u0003\u0002\u0002\u0002\u09d0\u00cd",
"\u0003\u0002\u0002\u0002\u09d1\u09d2\t\u001c\u0002\u0002\u09d2\u00cf",
"\u0003\u0002\u0002\u0002\u0152\u00d4\u00ed\u00f2\u00f5\u00fa\u0107\u010b",
"\u0112\u0120\u0122\u0126\u0129\u0130\u0141\u0143\u0147\u014a\u0151\u0158",
"\u015c\u0164\u016e\u0174\u017a\u0185\u01a5\u01ad\u01b1\u01b6\u01bc\u01c4",
"\u01ca\u01d7\u01dc\u01e5\u01ea\u01fa\u0201\u0205\u020d\u0214\u021b\u022a",
"\u022e\u0234\u023a\u023d\u0240\u0246\u024a\u024e\u0253\u0257\u025f\u0262",
"\u026b\u0270\u0276\u027d\u0280\u0286\u0291\u0294\u0298\u029d\u02a2\u02a9",
"\u02ac\u02af\u02b6\u02bb\u02c0\u02c3\u02cc\u02d4\u02da\u02de\u02e2\u02e6",
"\u02e8\u02f1\u02f7\u02fc\u02ff\u0303\u0306\u0310\u0313\u0317\u031d\u0320",
"\u0323\u0329\u0331\u0336\u033c\u0342\u034d\u0355\u035c\u0364\u0367\u036f",
"\u0373\u037a\u03ee\u03f6\u03fe\u0407\u0413\u0417\u041a\u0420\u042a\u0436",
"\u043b\u0441\u044d\u044f\u0454\u0458\u045d\u0462\u0465\u046a\u046e\u0473",
"\u0475\u0479\u0482\u048a\u0491\u0498\u04a1\u04a6\u04b5\u04bc\u04bf\u04c6",
"\u04ca\u04d0\u04d8\u04e3\u04ee\u04f5\u04fb\u0501\u050a\u050c\u0515\u0518",
"\u0521\u0524\u052d\u0530\u0539\u053c\u053f\u0544\u0546\u0549\u0555\u055c",
"\u0563\u0566\u0568\u0573\u0577\u057b\u0587\u058a\u058e\u0598\u059c\u059e",
"\u05a1\u05a5\u05a8\u05ac\u05b2\u05b6\u05ba\u05bf\u05c2\u05c4\u05c9\u05ce",
"\u05d1\u05d5\u05d8\u05da\u05df\u05e4\u05f1\u05f6\u05fe\u0604\u0608\u0611",
"\u0620\u0625\u0631\u0636\u063e\u0641\u0645\u0653\u0660\u0665\u0669\u066c",
"\u0671\u067a\u067d\u0682\u0689\u068c\u0694\u069b\u06a2\u06a5\u06aa\u06b0",
"\u06b4\u06b7\u06ba\u06c0\u06c5\u06ca\u06dc\u06de\u06e1\u06ec\u06f5\u06fc",
"\u0704\u070c\u0710\u0718\u0720\u0726\u072e\u073a\u073d\u0743\u0747\u0749",
"\u0752\u075e\u0760\u0767\u076e\u0774\u077a\u077c\u0781\u0788\u078e\u0792",
"\u0794\u079b\u07aa\u07ac\u07b4\u07b6\u07ba\u07c2\u07cb\u07d1\u07d9\u07df",
"\u07e4\u07e9\u07ef\u0804\u0806\u080e\u0812\u081b\u081f\u0831\u0834\u083c",
"\u0845\u085c\u0867\u086e\u0871\u0876\u0889\u089a\u08a4\u08a6\u08b3\u08b5",
"\u08c3\u08ca\u08cd\u08d1\u08d6\u08e7\u08eb\u08f4\u08f8\u08fa\u0901\u0908",
"\u090f\u0917\u091d\u0921\u0929\u0930\u0938\u0945\u0955\u095f\u0962\u096b",
"\u096e\u0970\u0973\u0976\u0988\u0991\u0998\u09aa\u09af\u09b4\u09b8\u09bc",
"\u09c0\u09c4\u09c8\u09cc\u09cf"].join("");
2019-09-25 15:43:36 +08:00
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, "'('", "')'", "'.'", "','", "'/*+'", "'*/'",
"'->'", "'['", "']'", "':'", "'SELECT'", "'FROM'",
"'ADD'", "'AS'", "'ALL'", "'ANY'", "'DISTINCT'", "'WHERE'",
"'GROUP'", "'BY'", "'GROUPING'", "'SETS'", "'CUBE'",
"'ROLLUP'", "'ORDER'", "'HAVING'", "'LIMIT'", "'AT'",
"'OR'", "'AND'", "'IN'", null, "'NO'", "'EXISTS'",
"'BETWEEN'", "'LIKE'", null, "'IS'", "'NULL'", "'TRUE'",
"'FALSE'", "'NULLS'", "'ASC'", "'DESC'", "'FOR'", "'INTERVAL'",
"'CASE'", "'WHEN'", "'THEN'", "'ELSE'", "'END'", "'JOIN'",
"'CROSS'", "'OUTER'", "'INNER'", "'LEFT'", "'SEMI'",
"'RIGHT'", "'FULL'", "'NATURAL'", "'ON'", "'PIVOT'",
"'LATERAL'", "'WINDOW'", "'OVER'", "'PARTITION'", "'RANGE'",
"'ROWS'", "'UNBOUNDED'", "'PRECEDING'", "'FOLLOWING'",
"'CURRENT'", "'FIRST'", "'AFTER'", "'LAST'", "'ROW'",
"'WITH'", "'VALUES'", "'CREATE'", "'TABLE'", "'DIRECTORY'",
"'VIEW'", "'REPLACE'", "'INSERT'", "'DELETE'", "'INTO'",
"'DESCRIBE'", "'EXPLAIN'", "'FORMAT'", "'LOGICAL'",
"'CODEGEN'", "'COST'", "'CAST'", "'SHOW'", "'TABLES'",
"'COLUMNS'", "'COLUMN'", "'USE'", "'PARTITIONS'", "'FUNCTIONS'",
"'DROP'", "'UNION'", "'EXCEPT'", "'MINUS'", "'INTERSECT'",
"'TO'", "'TABLESAMPLE'", "'STRATIFY'", "'ALTER'", "'RENAME'",
"'ARRAY'", "'MAP'", "'STRUCT'", "'COMMENT'", "'SET'",
"'RESET'", "'DATA'", "'START'", "'TRANSACTION'", "'COMMIT'",
"'ROLLBACK'", "'MACRO'", "'IGNORE'", "'BOTH'", "'LEADING'",
"'TRAILING'", "'IF'", "'POSITION'", "'EXTRACT'", null,
"'<=>'", "'<>'", "'!='", "'<'", null, "'>'", null,
"'+'", "'-'", "'*'", "'/'", "'%'", "'DIV'", "'~'",
"'&'", "'|'", "'||'", "'^'", "'PERCENT'", "'BUCKET'",
"'OUT'", "'OF'", "'SORT'", "'CLUSTER'", "'DISTRIBUTE'",
"'OVERWRITE'", "'TRANSFORM'", "'REDUCE'", "'USING'",
"'SERDE'", "'SERDEPROPERTIES'", "'RECORDREADER'", "'RECORDWRITER'",
"'DELIMITED'", "'FIELDS'", "'TERMINATED'", "'COLLECTION'",
"'ITEMS'", "'KEYS'", "'ESCAPED'", "'LINES'", "'SEPARATED'",
"'FUNCTION'", "'EXTENDED'", "'REFRESH'", "'CLEAR'",
"'CACHE'", "'UNCACHE'", "'LAZY'", "'FORMATTED'", "'GLOBAL'",
null, "'OPTIONS'", "'UNSET'", "'TBLPROPERTIES'", "'DBPROPERTIES'",
"'BUCKETS'", "'SKEWED'", "'STORED'", "'DIRECTORIES'",
"'LOCATION'", "'EXCHANGE'", "'ARCHIVE'", "'UNARCHIVE'",
"'FILEFORMAT'", "'TOUCH'", "'COMPACT'", "'CONCATENATE'",
"'CHANGE'", "'CASCADE'", "'RESTRICT'", "'CLUSTERED'",
"'SORTED'", "'PURGE'", "'INPUTFORMAT'", "'OUTPUTFORMAT'",
null, null, "'DFS'", "'TRUNCATE'", "'ANALYZE'", "'COMPUTE'",
"'LIST'", "'STATISTICS'", "'PARTITIONED'", "'EXTERNAL'",
"'DEFINED'", "'REVOKE'", "'GRANT'", "'LOCK'", "'UNLOCK'",
"'MSCK'", "'REPAIR'", "'RECOVER'", "'EXPORT'", "'IMPORT'",
"'LOAD'", "'ROLE'", "'ROLES'", "'COMPACTIONS'", "'PRINCIPALS'",
"'TRANSACTIONS'", "'INDEX'", "'INDEXES'", "'LOCKS'",
"'OPTION'", "'ANTI'", "'LOCAL'", "'INPATH'", "'WATERMARK'",
null, null, null, null, null, null, null, null, null,
null, null, "'/**/'"];
var symbolicNames = [null, null, null, null, null, null, null, null, null,
null, null, "SELECT", "FROM", "ADD", "AS", "ALL",
"ANY", "DISTINCT", "WHERE", "GROUP", "BY", "GROUPING",
"SETS", "CUBE", "ROLLUP", "ORDER", "HAVING", "LIMIT",
"AT", "OR", "AND", "IN", "NOT", "NO", "EXISTS", "BETWEEN",
"LIKE", "RLIKE", "IS", "NULL", "TRUE", "FALSE", "NULLS",
"ASC", "DESC", "FOR", "INTERVAL", "CASE", "WHEN",
"THEN", "ELSE", "END", "JOIN", "CROSS", "OUTER", "INNER",
"LEFT", "SEMI", "RIGHT", "FULL", "NATURAL", "ON",
"PIVOT", "LATERAL", "WINDOW", "OVER", "PARTITION",
"RANGE", "ROWS", "UNBOUNDED", "PRECEDING", "FOLLOWING",
"CURRENT", "FIRST", "AFTER", "LAST", "ROW", "WITH",
"VALUES", "CREATE", "TABLE", "DIRECTORY", "VIEW",
"REPLACE", "INSERT", "DELETE", "INTO", "DESCRIBE",
"EXPLAIN", "FORMAT", "LOGICAL", "CODEGEN", "COST",
"CAST", "SHOW", "TABLES", "COLUMNS", "COLUMN", "USE",
"PARTITIONS", "FUNCTIONS", "DROP", "UNION", "EXCEPT",
"SETMINUS", "INTERSECT", "TO", "TABLESAMPLE", "STRATIFY",
"ALTER", "RENAME", "ARRAY", "MAP", "STRUCT", "COMMENT",
"SET", "RESET", "DATA", "START", "TRANSACTION", "COMMIT",
"ROLLBACK", "MACRO", "IGNORE", "BOTH", "LEADING",
"TRAILING", "IF", "POSITION", "EXTRACT", "EQ", "NSEQ",
"NEQ", "NEQJ", "LT", "LTE", "GT", "GTE", "PLUS", "MINUS",
"ASTERISK", "SLASH", "PERCENT", "DIV", "TILDE", "AMPERSAND",
"PIPE", "CONCAT_PIPE", "HAT", "PERCENTLIT", "BUCKET",
"OUT", "OF", "SORT", "CLUSTER", "DISTRIBUTE", "OVERWRITE",
"TRANSFORM", "REDUCE", "USING", "SERDE", "SERDEPROPERTIES",
"RECORDREADER", "RECORDWRITER", "DELIMITED", "FIELDS",
"TERMINATED", "COLLECTION", "ITEMS", "KEYS", "ESCAPED",
"LINES", "SEPARATED", "FUNCTION", "EXTENDED", "REFRESH",
"CLEAR", "CACHE", "UNCACHE", "LAZY", "FORMATTED",
"GLOBAL", "TEMPORARY", "OPTIONS", "UNSET", "TBLPROPERTIES",
"DBPROPERTIES", "BUCKETS", "SKEWED", "STORED", "DIRECTORIES",
"LOCATION", "EXCHANGE", "ARCHIVE", "UNARCHIVE", "FILEFORMAT",
"TOUCH", "COMPACT", "CONCATENATE", "CHANGE", "CASCADE",
"RESTRICT", "CLUSTERED", "SORTED", "PURGE", "INPUTFORMAT",
"OUTPUTFORMAT", "DATABASE", "DATABASES", "DFS", "TRUNCATE",
"ANALYZE", "COMPUTE", "LIST", "STATISTICS", "PARTITIONED",
"EXTERNAL", "DEFINED", "REVOKE", "GRANT", "LOCK",
"UNLOCK", "MSCK", "REPAIR", "RECOVER", "EXPORT", "IMPORT",
"LOAD", "ROLE", "ROLES", "COMPACTIONS", "PRINCIPALS",
"TRANSACTIONS", "INDEX", "INDEXES", "LOCKS", "OPTION",
"ANTI", "LOCAL", "INPATH", "WATERMARK", "STRING",
"BIGINT_LITERAL", "SMALLINT_LITERAL", "TINYINT_LITERAL",
"INTEGER_VALUE", "DECIMAL_VALUE", "DOUBLE_LITERAL",
"BIGDECIMAL_LITERAL", "IDENTIFIER", "BACKQUOTED_IDENTIFIER",
"SIMPLE_COMMENT", "BRACKETED_EMPTY_COMMENT", "BRACKETED_COMMENT",
"WS", "UNRECOGNIZED"];
var ruleNames = ["singleStatement", "singleExpression", "singleTableIdentifier",
"singleFunctionIdentifier", "singleDataType", "singleTableSchema",
"statement", "unsupportedHiveNativeCommands", "createTableHeader",
"bucketSpec", "skewSpec", "locationSpec", "query", "insertInto",
"partitionSpecLocation", "partitionSpec", "partitionVal",
"describeFuncName", "describeColName", "ctes", "namedQuery",
"tableProvider", "tablePropertyList", "tableProperty",
"tablePropertyKey", "tablePropertyValue", "constantList",
"nestedConstantList", "createFileFormat", "fileFormat",
"storageHandler", "resource", "queryNoWith", "queryOrganization",
"multiInsertQueryBody", "queryTerm", "queryPrimary",
"sortItem", "querySpecification", "hint", "hintStatement",
"fromClause", "aggregation", "groupingSet", "pivotClause",
"pivotColumn", "pivotValue", "lateralView", "setQuantifier",
"relation", "joinRelation", "joinType", "joinCriteria",
"sample", "sampleMethod", "identifierList", "identifierSeq",
"orderedIdentifierList", "orderedIdentifier", "identifierCommentList",
"identifierComment", "relationPrimary", "inlineTable",
"functionTable", "tableAlias", "rowFormat", "tableIdentifier",
"functionIdentifier", "namedExpression", "namedExpressionSeq",
"expression", "booleanExpression", "predicate", "valueExpression",
"primaryExpression", "constant", "comparisonOperator",
"arithmeticOperator", "predicateOperator", "booleanValue",
"interval", "intervalField", "intervalValue", "colPosition",
"dataType", "colTypeList", "colType", "dtColTypeList",
"dtColType", "complexColTypeList", "complexColType",
"whenClause", "windows", "namedWindow", "windowSpec",
"windowFrame", "frameBound", "qualifiedName", "identifier",
"strictIdentifier", "quotedIdentifier", "number", "nonReserved"];
function sqlParser(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;
}
sqlParser.prototype = Object.create(antlr4.Parser.prototype);
sqlParser.prototype.constructor = sqlParser;
Object.defineProperty(sqlParser.prototype, "atn", {
get: function () {
return atn;
}
});
sqlParser.EOF = antlr4.Token.EOF;
sqlParser.T__0 = 1;
sqlParser.T__1 = 2;
sqlParser.T__2 = 3;
sqlParser.T__3 = 4;
sqlParser.T__4 = 5;
sqlParser.T__5 = 6;
sqlParser.T__6 = 7;
sqlParser.T__7 = 8;
sqlParser.T__8 = 9;
sqlParser.T__9 = 10;
sqlParser.SELECT = 11;
sqlParser.FROM = 12;
sqlParser.ADD = 13;
sqlParser.AS = 14;
sqlParser.ALL = 15;
sqlParser.ANY = 16;
sqlParser.DISTINCT = 17;
sqlParser.WHERE = 18;
sqlParser.GROUP = 19;
sqlParser.BY = 20;
sqlParser.GROUPING = 21;
sqlParser.SETS = 22;
sqlParser.CUBE = 23;
sqlParser.ROLLUP = 24;
sqlParser.ORDER = 25;
sqlParser.HAVING = 26;
sqlParser.LIMIT = 27;
sqlParser.AT = 28;
sqlParser.OR = 29;
sqlParser.AND = 30;
sqlParser.IN = 31;
sqlParser.NOT = 32;
sqlParser.NO = 33;
sqlParser.EXISTS = 34;
sqlParser.BETWEEN = 35;
sqlParser.LIKE = 36;
sqlParser.RLIKE = 37;
sqlParser.IS = 38;
sqlParser.NULL = 39;
sqlParser.TRUE = 40;
sqlParser.FALSE = 41;
sqlParser.NULLS = 42;
sqlParser.ASC = 43;
sqlParser.DESC = 44;
sqlParser.FOR = 45;
sqlParser.INTERVAL = 46;
sqlParser.CASE = 47;
sqlParser.WHEN = 48;
sqlParser.THEN = 49;
sqlParser.ELSE = 50;
sqlParser.END = 51;
sqlParser.JOIN = 52;
sqlParser.CROSS = 53;
sqlParser.OUTER = 54;
sqlParser.INNER = 55;
sqlParser.LEFT = 56;
sqlParser.SEMI = 57;
sqlParser.RIGHT = 58;
sqlParser.FULL = 59;
sqlParser.NATURAL = 60;
sqlParser.ON = 61;
sqlParser.PIVOT = 62;
sqlParser.LATERAL = 63;
sqlParser.WINDOW = 64;
sqlParser.OVER = 65;
sqlParser.PARTITION = 66;
sqlParser.RANGE = 67;
sqlParser.ROWS = 68;
sqlParser.UNBOUNDED = 69;
sqlParser.PRECEDING = 70;
sqlParser.FOLLOWING = 71;
sqlParser.CURRENT = 72;
sqlParser.FIRST = 73;
sqlParser.AFTER = 74;
sqlParser.LAST = 75;
sqlParser.ROW = 76;
sqlParser.WITH = 77;
sqlParser.VALUES = 78;
sqlParser.CREATE = 79;
sqlParser.TABLE = 80;
sqlParser.DIRECTORY = 81;
sqlParser.VIEW = 82;
sqlParser.REPLACE = 83;
sqlParser.INSERT = 84;
sqlParser.DELETE = 85;
sqlParser.INTO = 86;
sqlParser.DESCRIBE = 87;
sqlParser.EXPLAIN = 88;
sqlParser.FORMAT = 89;
sqlParser.LOGICAL = 90;
sqlParser.CODEGEN = 91;
sqlParser.COST = 92;
sqlParser.CAST = 93;
sqlParser.SHOW = 94;
sqlParser.TABLES = 95;
sqlParser.COLUMNS = 96;
sqlParser.COLUMN = 97;
sqlParser.USE = 98;
sqlParser.PARTITIONS = 99;
sqlParser.FUNCTIONS = 100;
sqlParser.DROP = 101;
sqlParser.UNION = 102;
sqlParser.EXCEPT = 103;
sqlParser.SETMINUS = 104;
sqlParser.INTERSECT = 105;
sqlParser.TO = 106;
sqlParser.TABLESAMPLE = 107;
sqlParser.STRATIFY = 108;
sqlParser.ALTER = 109;
sqlParser.RENAME = 110;
sqlParser.ARRAY = 111;
sqlParser.MAP = 112;
sqlParser.STRUCT = 113;
sqlParser.COMMENT = 114;
sqlParser.SET = 115;
sqlParser.RESET = 116;
sqlParser.DATA = 117;
sqlParser.START = 118;
sqlParser.TRANSACTION = 119;
sqlParser.COMMIT = 120;
sqlParser.ROLLBACK = 121;
sqlParser.MACRO = 122;
sqlParser.IGNORE = 123;
sqlParser.BOTH = 124;
sqlParser.LEADING = 125;
sqlParser.TRAILING = 126;
sqlParser.IF = 127;
sqlParser.POSITION = 128;
sqlParser.EXTRACT = 129;
sqlParser.EQ = 130;
sqlParser.NSEQ = 131;
sqlParser.NEQ = 132;
sqlParser.NEQJ = 133;
sqlParser.LT = 134;
sqlParser.LTE = 135;
sqlParser.GT = 136;
sqlParser.GTE = 137;
sqlParser.PLUS = 138;
sqlParser.MINUS = 139;
sqlParser.ASTERISK = 140;
sqlParser.SLASH = 141;
sqlParser.PERCENT = 142;
sqlParser.DIV = 143;
sqlParser.TILDE = 144;
sqlParser.AMPERSAND = 145;
sqlParser.PIPE = 146;
sqlParser.CONCAT_PIPE = 147;
sqlParser.HAT = 148;
sqlParser.PERCENTLIT = 149;
sqlParser.BUCKET = 150;
sqlParser.OUT = 151;
sqlParser.OF = 152;
sqlParser.SORT = 153;
sqlParser.CLUSTER = 154;
sqlParser.DISTRIBUTE = 155;
sqlParser.OVERWRITE = 156;
sqlParser.TRANSFORM = 157;
sqlParser.REDUCE = 158;
sqlParser.USING = 159;
sqlParser.SERDE = 160;
sqlParser.SERDEPROPERTIES = 161;
sqlParser.RECORDREADER = 162;
sqlParser.RECORDWRITER = 163;
sqlParser.DELIMITED = 164;
sqlParser.FIELDS = 165;
sqlParser.TERMINATED = 166;
sqlParser.COLLECTION = 167;
sqlParser.ITEMS = 168;
sqlParser.KEYS = 169;
sqlParser.ESCAPED = 170;
sqlParser.LINES = 171;
sqlParser.SEPARATED = 172;
sqlParser.FUNCTION = 173;
sqlParser.EXTENDED = 174;
sqlParser.REFRESH = 175;
sqlParser.CLEAR = 176;
sqlParser.CACHE = 177;
sqlParser.UNCACHE = 178;
sqlParser.LAZY = 179;
sqlParser.FORMATTED = 180;
sqlParser.GLOBAL = 181;
sqlParser.TEMPORARY = 182;
sqlParser.OPTIONS = 183;
sqlParser.UNSET = 184;
sqlParser.TBLPROPERTIES = 185;
sqlParser.DBPROPERTIES = 186;
sqlParser.BUCKETS = 187;
sqlParser.SKEWED = 188;
sqlParser.STORED = 189;
sqlParser.DIRECTORIES = 190;
sqlParser.LOCATION = 191;
sqlParser.EXCHANGE = 192;
sqlParser.ARCHIVE = 193;
sqlParser.UNARCHIVE = 194;
sqlParser.FILEFORMAT = 195;
sqlParser.TOUCH = 196;
sqlParser.COMPACT = 197;
sqlParser.CONCATENATE = 198;
sqlParser.CHANGE = 199;
sqlParser.CASCADE = 200;
sqlParser.RESTRICT = 201;
sqlParser.CLUSTERED = 202;
sqlParser.SORTED = 203;
sqlParser.PURGE = 204;
sqlParser.INPUTFORMAT = 205;
sqlParser.OUTPUTFORMAT = 206;
sqlParser.DATABASE = 207;
sqlParser.DATABASES = 208;
sqlParser.DFS = 209;
sqlParser.TRUNCATE = 210;
sqlParser.ANALYZE = 211;
sqlParser.COMPUTE = 212;
sqlParser.LIST = 213;
sqlParser.STATISTICS = 214;
sqlParser.PARTITIONED = 215;
sqlParser.EXTERNAL = 216;
sqlParser.DEFINED = 217;
sqlParser.REVOKE = 218;
sqlParser.GRANT = 219;
sqlParser.LOCK = 220;
sqlParser.UNLOCK = 221;
sqlParser.MSCK = 222;
sqlParser.REPAIR = 223;
sqlParser.RECOVER = 224;
sqlParser.EXPORT = 225;
sqlParser.IMPORT = 226;
sqlParser.LOAD = 227;
sqlParser.ROLE = 228;
sqlParser.ROLES = 229;
sqlParser.COMPACTIONS = 230;
sqlParser.PRINCIPALS = 231;
sqlParser.TRANSACTIONS = 232;
sqlParser.INDEX = 233;
sqlParser.INDEXES = 234;
sqlParser.LOCKS = 235;
sqlParser.OPTION = 236;
sqlParser.ANTI = 237;
sqlParser.LOCAL = 238;
sqlParser.INPATH = 239;
sqlParser.WATERMARK = 240;
sqlParser.STRING = 241;
sqlParser.BIGINT_LITERAL = 242;
sqlParser.SMALLINT_LITERAL = 243;
sqlParser.TINYINT_LITERAL = 244;
sqlParser.INTEGER_VALUE = 245;
sqlParser.DECIMAL_VALUE = 246;
sqlParser.DOUBLE_LITERAL = 247;
sqlParser.BIGDECIMAL_LITERAL = 248;
sqlParser.IDENTIFIER = 249;
sqlParser.BACKQUOTED_IDENTIFIER = 250;
sqlParser.SIMPLE_COMMENT = 251;
sqlParser.BRACKETED_EMPTY_COMMENT = 252;
sqlParser.BRACKETED_COMMENT = 253;
sqlParser.WS = 254;
sqlParser.UNRECOGNIZED = 255;
sqlParser.RULE_singleStatement = 0;
sqlParser.RULE_singleExpression = 1;
sqlParser.RULE_singleTableIdentifier = 2;
sqlParser.RULE_singleFunctionIdentifier = 3;
sqlParser.RULE_singleDataType = 4;
sqlParser.RULE_singleTableSchema = 5;
sqlParser.RULE_statement = 6;
sqlParser.RULE_unsupportedHiveNativeCommands = 7;
sqlParser.RULE_createTableHeader = 8;
sqlParser.RULE_bucketSpec = 9;
sqlParser.RULE_skewSpec = 10;
sqlParser.RULE_locationSpec = 11;
sqlParser.RULE_query = 12;
sqlParser.RULE_insertInto = 13;
sqlParser.RULE_partitionSpecLocation = 14;
sqlParser.RULE_partitionSpec = 15;
sqlParser.RULE_partitionVal = 16;
sqlParser.RULE_describeFuncName = 17;
sqlParser.RULE_describeColName = 18;
sqlParser.RULE_ctes = 19;
sqlParser.RULE_namedQuery = 20;
sqlParser.RULE_tableProvider = 21;
sqlParser.RULE_tablePropertyList = 22;
sqlParser.RULE_tableProperty = 23;
sqlParser.RULE_tablePropertyKey = 24;
sqlParser.RULE_tablePropertyValue = 25;
sqlParser.RULE_constantList = 26;
sqlParser.RULE_nestedConstantList = 27;
sqlParser.RULE_createFileFormat = 28;
sqlParser.RULE_fileFormat = 29;
sqlParser.RULE_storageHandler = 30;
sqlParser.RULE_resource = 31;
sqlParser.RULE_queryNoWith = 32;
sqlParser.RULE_queryOrganization = 33;
sqlParser.RULE_multiInsertQueryBody = 34;
sqlParser.RULE_queryTerm = 35;
sqlParser.RULE_queryPrimary = 36;
sqlParser.RULE_sortItem = 37;
sqlParser.RULE_querySpecification = 38;
sqlParser.RULE_hint = 39;
sqlParser.RULE_hintStatement = 40;
sqlParser.RULE_fromClause = 41;
sqlParser.RULE_aggregation = 42;
sqlParser.RULE_groupingSet = 43;
sqlParser.RULE_pivotClause = 44;
sqlParser.RULE_pivotColumn = 45;
sqlParser.RULE_pivotValue = 46;
sqlParser.RULE_lateralView = 47;
sqlParser.RULE_setQuantifier = 48;
sqlParser.RULE_relation = 49;
sqlParser.RULE_joinRelation = 50;
sqlParser.RULE_joinType = 51;
sqlParser.RULE_joinCriteria = 52;
sqlParser.RULE_sample = 53;
sqlParser.RULE_sampleMethod = 54;
sqlParser.RULE_identifierList = 55;
sqlParser.RULE_identifierSeq = 56;
sqlParser.RULE_orderedIdentifierList = 57;
sqlParser.RULE_orderedIdentifier = 58;
sqlParser.RULE_identifierCommentList = 59;
sqlParser.RULE_identifierComment = 60;
sqlParser.RULE_relationPrimary = 61;
sqlParser.RULE_inlineTable = 62;
sqlParser.RULE_functionTable = 63;
sqlParser.RULE_tableAlias = 64;
sqlParser.RULE_rowFormat = 65;
sqlParser.RULE_tableIdentifier = 66;
sqlParser.RULE_functionIdentifier = 67;
sqlParser.RULE_namedExpression = 68;
sqlParser.RULE_namedExpressionSeq = 69;
sqlParser.RULE_expression = 70;
sqlParser.RULE_booleanExpression = 71;
sqlParser.RULE_predicate = 72;
sqlParser.RULE_valueExpression = 73;
sqlParser.RULE_primaryExpression = 74;
sqlParser.RULE_constant = 75;
sqlParser.RULE_comparisonOperator = 76;
sqlParser.RULE_arithmeticOperator = 77;
sqlParser.RULE_predicateOperator = 78;
sqlParser.RULE_booleanValue = 79;
sqlParser.RULE_interval = 80;
sqlParser.RULE_intervalField = 81;
sqlParser.RULE_intervalValue = 82;
sqlParser.RULE_colPosition = 83;
sqlParser.RULE_dataType = 84;
sqlParser.RULE_colTypeList = 85;
sqlParser.RULE_colType = 86;
sqlParser.RULE_dtColTypeList = 87;
sqlParser.RULE_dtColType = 88;
sqlParser.RULE_complexColTypeList = 89;
sqlParser.RULE_complexColType = 90;
sqlParser.RULE_whenClause = 91;
sqlParser.RULE_windows = 92;
sqlParser.RULE_namedWindow = 93;
sqlParser.RULE_windowSpec = 94;
sqlParser.RULE_windowFrame = 95;
sqlParser.RULE_frameBound = 96;
sqlParser.RULE_qualifiedName = 97;
sqlParser.RULE_identifier = 98;
sqlParser.RULE_strictIdentifier = 99;
sqlParser.RULE_quotedIdentifier = 100;
sqlParser.RULE_number = 101;
sqlParser.RULE_nonReserved = 102;
function SingleStatementContext(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 = sqlParser.RULE_singleStatement;
return this;
}
SingleStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SingleStatementContext.prototype.constructor = SingleStatementContext;
SingleStatementContext.prototype.statement = function () {
return this.getTypedRuleContext(StatementContext, 0);
};
SingleStatementContext.prototype.EOF = function () {
return this.getToken(sqlParser.EOF, 0);
};
SingleStatementContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSingleStatement(this);
}
};
SingleStatementContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSingleStatement(this);
}
};
SingleStatementContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSingleStatement(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.SingleStatementContext = SingleStatementContext;
sqlParser.prototype.singleStatement = function () {
var localctx = new SingleStatementContext(this, this._ctx, this.state);
this.enterRule(localctx, 0, sqlParser.RULE_singleStatement);
try {
2019-09-25 16:53:32 +08:00
this.state = 210;
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.T__0:
case sqlParser.SELECT:
case sqlParser.FROM:
case sqlParser.ADD:
case sqlParser.DESC:
case sqlParser.WITH:
case sqlParser.VALUES:
case sqlParser.CREATE:
case sqlParser.TABLE:
case sqlParser.INSERT:
case sqlParser.DELETE:
case sqlParser.DESCRIBE:
case sqlParser.EXPLAIN:
case sqlParser.SHOW:
case sqlParser.USE:
case sqlParser.DROP:
case sqlParser.ALTER:
case sqlParser.MAP:
case sqlParser.SET:
case sqlParser.RESET:
case sqlParser.START:
case sqlParser.COMMIT:
case sqlParser.ROLLBACK:
case sqlParser.REDUCE:
case sqlParser.REFRESH:
case sqlParser.CLEAR:
case sqlParser.CACHE:
case sqlParser.UNCACHE:
case sqlParser.DFS:
case sqlParser.TRUNCATE:
case sqlParser.ANALYZE:
case sqlParser.LIST:
case sqlParser.REVOKE:
case sqlParser.GRANT:
case sqlParser.LOCK:
case sqlParser.UNLOCK:
case sqlParser.MSCK:
case sqlParser.EXPORT:
case sqlParser.IMPORT:
case sqlParser.LOAD:
this.enterOuterAlt(localctx, 1);
this.state = 206;
this.statement();
this.state = 207;
this.match(sqlParser.EOF);
break;
case sqlParser.EOF:
this.enterOuterAlt(localctx, 2);
this.state = 209;
this.match(sqlParser.EOF);
break;
default:
throw new antlr4.error.NoViableAltException(this);
}
2019-09-25 15:43:36 +08:00
}
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 SingleExpressionContext(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 = sqlParser.RULE_singleExpression;
return this;
}
SingleExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SingleExpressionContext.prototype.constructor = SingleExpressionContext;
SingleExpressionContext.prototype.namedExpression = function () {
return this.getTypedRuleContext(NamedExpressionContext, 0);
};
SingleExpressionContext.prototype.EOF = function () {
return this.getToken(sqlParser.EOF, 0);
};
SingleExpressionContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSingleExpression(this);
}
};
SingleExpressionContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSingleExpression(this);
}
};
SingleExpressionContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSingleExpression(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.SingleExpressionContext = SingleExpressionContext;
sqlParser.prototype.singleExpression = function () {
var localctx = new SingleExpressionContext(this, this._ctx, this.state);
this.enterRule(localctx, 2, sqlParser.RULE_singleExpression);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 212;
2019-09-25 15:43:36 +08:00
this.namedExpression();
2019-09-25 16:53:32 +08:00
this.state = 213;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.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 SingleTableIdentifierContext(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 = sqlParser.RULE_singleTableIdentifier;
return this;
}
SingleTableIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SingleTableIdentifierContext.prototype.constructor = SingleTableIdentifierContext;
SingleTableIdentifierContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
SingleTableIdentifierContext.prototype.EOF = function () {
return this.getToken(sqlParser.EOF, 0);
};
SingleTableIdentifierContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSingleTableIdentifier(this);
}
};
SingleTableIdentifierContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSingleTableIdentifier(this);
}
};
SingleTableIdentifierContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSingleTableIdentifier(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.SingleTableIdentifierContext = SingleTableIdentifierContext;
sqlParser.prototype.singleTableIdentifier = function () {
var localctx = new SingleTableIdentifierContext(this, this._ctx, this.state);
this.enterRule(localctx, 4, sqlParser.RULE_singleTableIdentifier);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 215;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 216;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.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 SingleFunctionIdentifierContext(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 = sqlParser.RULE_singleFunctionIdentifier;
return this;
}
SingleFunctionIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SingleFunctionIdentifierContext.prototype.constructor = SingleFunctionIdentifierContext;
SingleFunctionIdentifierContext.prototype.functionIdentifier = function () {
return this.getTypedRuleContext(FunctionIdentifierContext, 0);
};
SingleFunctionIdentifierContext.prototype.EOF = function () {
return this.getToken(sqlParser.EOF, 0);
};
SingleFunctionIdentifierContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSingleFunctionIdentifier(this);
}
};
SingleFunctionIdentifierContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSingleFunctionIdentifier(this);
}
};
SingleFunctionIdentifierContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSingleFunctionIdentifier(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.SingleFunctionIdentifierContext = SingleFunctionIdentifierContext;
sqlParser.prototype.singleFunctionIdentifier = function () {
var localctx = new SingleFunctionIdentifierContext(this, this._ctx, this.state);
this.enterRule(localctx, 6, sqlParser.RULE_singleFunctionIdentifier);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 218;
2019-09-25 15:43:36 +08:00
this.functionIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 219;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.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 SingleDataTypeContext(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 = sqlParser.RULE_singleDataType;
return this;
}
SingleDataTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SingleDataTypeContext.prototype.constructor = SingleDataTypeContext;
SingleDataTypeContext.prototype.dataType = function () {
return this.getTypedRuleContext(DataTypeContext, 0);
};
SingleDataTypeContext.prototype.EOF = function () {
return this.getToken(sqlParser.EOF, 0);
};
SingleDataTypeContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSingleDataType(this);
}
};
SingleDataTypeContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSingleDataType(this);
}
};
SingleDataTypeContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSingleDataType(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.SingleDataTypeContext = SingleDataTypeContext;
sqlParser.prototype.singleDataType = function () {
var localctx = new SingleDataTypeContext(this, this._ctx, this.state);
this.enterRule(localctx, 8, sqlParser.RULE_singleDataType);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 221;
2019-09-25 15:43:36 +08:00
this.dataType();
2019-09-25 16:53:32 +08:00
this.state = 222;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.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 SingleTableSchemaContext(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 = sqlParser.RULE_singleTableSchema;
return this;
}
SingleTableSchemaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SingleTableSchemaContext.prototype.constructor = SingleTableSchemaContext;
SingleTableSchemaContext.prototype.colTypeList = function () {
return this.getTypedRuleContext(ColTypeListContext, 0);
};
SingleTableSchemaContext.prototype.EOF = function () {
return this.getToken(sqlParser.EOF, 0);
};
SingleTableSchemaContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSingleTableSchema(this);
}
};
SingleTableSchemaContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSingleTableSchema(this);
}
};
SingleTableSchemaContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSingleTableSchema(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.SingleTableSchemaContext = SingleTableSchemaContext;
sqlParser.prototype.singleTableSchema = function () {
var localctx = new SingleTableSchemaContext(this, this._ctx, this.state);
this.enterRule(localctx, 10, sqlParser.RULE_singleTableSchema);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 224;
2019-09-25 15:43:36 +08:00
this.colTypeList();
2019-09-25 16:53:32 +08:00
this.state = 225;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.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 StatementContext(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 = sqlParser.RULE_statement;
return this;
}
StatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
StatementContext.prototype.constructor = StatementContext;
StatementContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function ExplainContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
ExplainContext.prototype = Object.create(StatementContext.prototype);
ExplainContext.prototype.constructor = ExplainContext;
sqlParser.ExplainContext = ExplainContext;
ExplainContext.prototype.EXPLAIN = function () {
return this.getToken(sqlParser.EXPLAIN, 0);
};
ExplainContext.prototype.statement = function () {
return this.getTypedRuleContext(StatementContext, 0);
};
ExplainContext.prototype.LOGICAL = function () {
return this.getToken(sqlParser.LOGICAL, 0);
};
ExplainContext.prototype.FORMATTED = function () {
return this.getToken(sqlParser.FORMATTED, 0);
};
ExplainContext.prototype.EXTENDED = function () {
return this.getToken(sqlParser.EXTENDED, 0);
};
ExplainContext.prototype.CODEGEN = function () {
return this.getToken(sqlParser.CODEGEN, 0);
};
ExplainContext.prototype.COST = function () {
return this.getToken(sqlParser.COST, 0);
};
ExplainContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterExplain(this);
}
};
ExplainContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitExplain(this);
}
};
ExplainContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitExplain(this);
}
else {
return visitor.visitChildren(this);
}
};
function DropDatabaseContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
DropDatabaseContext.prototype = Object.create(StatementContext.prototype);
DropDatabaseContext.prototype.constructor = DropDatabaseContext;
sqlParser.DropDatabaseContext = DropDatabaseContext;
DropDatabaseContext.prototype.DROP = function () {
return this.getToken(sqlParser.DROP, 0);
};
DropDatabaseContext.prototype.DATABASE = function () {
return this.getToken(sqlParser.DATABASE, 0);
};
DropDatabaseContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
DropDatabaseContext.prototype.IF = function () {
return this.getToken(sqlParser.IF, 0);
};
DropDatabaseContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
DropDatabaseContext.prototype.RESTRICT = function () {
return this.getToken(sqlParser.RESTRICT, 0);
};
DropDatabaseContext.prototype.CASCADE = function () {
return this.getToken(sqlParser.CASCADE, 0);
};
DropDatabaseContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterDropDatabase(this);
}
};
DropDatabaseContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitDropDatabase(this);
}
};
DropDatabaseContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitDropDatabase(this);
}
else {
return visitor.visitChildren(this);
}
};
function ResetConfigurationContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
ResetConfigurationContext.prototype = Object.create(StatementContext.prototype);
ResetConfigurationContext.prototype.constructor = ResetConfigurationContext;
sqlParser.ResetConfigurationContext = ResetConfigurationContext;
ResetConfigurationContext.prototype.RESET = function () {
return this.getToken(sqlParser.RESET, 0);
};
ResetConfigurationContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterResetConfiguration(this);
}
};
ResetConfigurationContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitResetConfiguration(this);
}
};
ResetConfigurationContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitResetConfiguration(this);
}
else {
return visitor.visitChildren(this);
}
};
function DescribeDatabaseContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
DescribeDatabaseContext.prototype = Object.create(StatementContext.prototype);
DescribeDatabaseContext.prototype.constructor = DescribeDatabaseContext;
sqlParser.DescribeDatabaseContext = DescribeDatabaseContext;
DescribeDatabaseContext.prototype.DATABASE = function () {
return this.getToken(sqlParser.DATABASE, 0);
};
DescribeDatabaseContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
DescribeDatabaseContext.prototype.DESC = function () {
return this.getToken(sqlParser.DESC, 0);
};
DescribeDatabaseContext.prototype.DESCRIBE = function () {
return this.getToken(sqlParser.DESCRIBE, 0);
};
DescribeDatabaseContext.prototype.EXTENDED = function () {
return this.getToken(sqlParser.EXTENDED, 0);
};
DescribeDatabaseContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterDescribeDatabase(this);
}
};
DescribeDatabaseContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitDescribeDatabase(this);
}
};
DescribeDatabaseContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitDescribeDatabase(this);
}
else {
return visitor.visitChildren(this);
}
};
function AlterViewQueryContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
AlterViewQueryContext.prototype = Object.create(StatementContext.prototype);
AlterViewQueryContext.prototype.constructor = AlterViewQueryContext;
sqlParser.AlterViewQueryContext = AlterViewQueryContext;
AlterViewQueryContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
AlterViewQueryContext.prototype.VIEW = function () {
return this.getToken(sqlParser.VIEW, 0);
};
AlterViewQueryContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
AlterViewQueryContext.prototype.query = function () {
return this.getTypedRuleContext(QueryContext, 0);
};
AlterViewQueryContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
AlterViewQueryContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterAlterViewQuery(this);
}
};
AlterViewQueryContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitAlterViewQuery(this);
}
};
AlterViewQueryContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitAlterViewQuery(this);
}
else {
return visitor.visitChildren(this);
}
};
function UseContext(parser, ctx) {
StatementContext.call(this, parser);
this.db = null; // IdentifierContext;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
UseContext.prototype = Object.create(StatementContext.prototype);
UseContext.prototype.constructor = UseContext;
sqlParser.UseContext = UseContext;
UseContext.prototype.USE = function () {
return this.getToken(sqlParser.USE, 0);
};
UseContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
UseContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterUse(this);
}
};
UseContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitUse(this);
}
};
UseContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitUse(this);
}
else {
return visitor.visitChildren(this);
}
};
function CreateTempViewUsingContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
CreateTempViewUsingContext.prototype = Object.create(StatementContext.prototype);
CreateTempViewUsingContext.prototype.constructor = CreateTempViewUsingContext;
sqlParser.CreateTempViewUsingContext = CreateTempViewUsingContext;
CreateTempViewUsingContext.prototype.CREATE = function () {
return this.getToken(sqlParser.CREATE, 0);
};
CreateTempViewUsingContext.prototype.TEMPORARY = function () {
return this.getToken(sqlParser.TEMPORARY, 0);
};
CreateTempViewUsingContext.prototype.VIEW = function () {
return this.getToken(sqlParser.VIEW, 0);
};
CreateTempViewUsingContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
CreateTempViewUsingContext.prototype.tableProvider = function () {
return this.getTypedRuleContext(TableProviderContext, 0);
};
CreateTempViewUsingContext.prototype.OR = function () {
return this.getToken(sqlParser.OR, 0);
};
CreateTempViewUsingContext.prototype.REPLACE = function () {
return this.getToken(sqlParser.REPLACE, 0);
};
CreateTempViewUsingContext.prototype.GLOBAL = function () {
return this.getToken(sqlParser.GLOBAL, 0);
};
CreateTempViewUsingContext.prototype.colTypeList = function () {
return this.getTypedRuleContext(ColTypeListContext, 0);
};
CreateTempViewUsingContext.prototype.OPTIONS = function () {
return this.getToken(sqlParser.OPTIONS, 0);
};
CreateTempViewUsingContext.prototype.tablePropertyList = function () {
return this.getTypedRuleContext(TablePropertyListContext, 0);
};
CreateTempViewUsingContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterCreateTempViewUsing(this);
}
};
CreateTempViewUsingContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitCreateTempViewUsing(this);
}
};
CreateTempViewUsingContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitCreateTempViewUsing(this);
}
else {
return visitor.visitChildren(this);
}
};
function RenameTableContext(parser, ctx) {
StatementContext.call(this, parser);
this.from = null; // TableIdentifierContext;
this.to = null; // TableIdentifierContext;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
RenameTableContext.prototype = Object.create(StatementContext.prototype);
RenameTableContext.prototype.constructor = RenameTableContext;
sqlParser.RenameTableContext = RenameTableContext;
RenameTableContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
RenameTableContext.prototype.RENAME = function () {
return this.getToken(sqlParser.RENAME, 0);
};
RenameTableContext.prototype.TO = function () {
return this.getToken(sqlParser.TO, 0);
};
RenameTableContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
RenameTableContext.prototype.VIEW = function () {
return this.getToken(sqlParser.VIEW, 0);
};
RenameTableContext.prototype.tableIdentifier = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(TableIdentifierContext);
}
else {
return this.getTypedRuleContext(TableIdentifierContext, i);
}
};
RenameTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterRenameTable(this);
}
};
RenameTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitRenameTable(this);
}
};
RenameTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitRenameTable(this);
}
else {
return visitor.visitChildren(this);
}
};
function FailNativeCommandContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
FailNativeCommandContext.prototype = Object.create(StatementContext.prototype);
FailNativeCommandContext.prototype.constructor = FailNativeCommandContext;
sqlParser.FailNativeCommandContext = FailNativeCommandContext;
FailNativeCommandContext.prototype.SET = function () {
return this.getToken(sqlParser.SET, 0);
};
FailNativeCommandContext.prototype.ROLE = function () {
return this.getToken(sqlParser.ROLE, 0);
};
FailNativeCommandContext.prototype.unsupportedHiveNativeCommands = function () {
return this.getTypedRuleContext(UnsupportedHiveNativeCommandsContext, 0);
};
FailNativeCommandContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterFailNativeCommand(this);
}
};
FailNativeCommandContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitFailNativeCommand(this);
}
};
FailNativeCommandContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitFailNativeCommand(this);
}
else {
return visitor.visitChildren(this);
}
};
function ClearCacheContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
ClearCacheContext.prototype = Object.create(StatementContext.prototype);
ClearCacheContext.prototype.constructor = ClearCacheContext;
sqlParser.ClearCacheContext = ClearCacheContext;
ClearCacheContext.prototype.CLEAR = function () {
return this.getToken(sqlParser.CLEAR, 0);
};
ClearCacheContext.prototype.CACHE = function () {
return this.getToken(sqlParser.CACHE, 0);
};
ClearCacheContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterClearCache(this);
}
};
ClearCacheContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitClearCache(this);
}
};
ClearCacheContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitClearCache(this);
}
else {
return visitor.visitChildren(this);
}
};
function ShowTablesContext(parser, ctx) {
StatementContext.call(this, parser);
this.db = null; // IdentifierContext;
this.pattern = null; // Token;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
ShowTablesContext.prototype = Object.create(StatementContext.prototype);
ShowTablesContext.prototype.constructor = ShowTablesContext;
sqlParser.ShowTablesContext = ShowTablesContext;
ShowTablesContext.prototype.SHOW = function () {
return this.getToken(sqlParser.SHOW, 0);
};
ShowTablesContext.prototype.TABLES = function () {
return this.getToken(sqlParser.TABLES, 0);
};
ShowTablesContext.prototype.FROM = function () {
return this.getToken(sqlParser.FROM, 0);
};
ShowTablesContext.prototype.IN = function () {
return this.getToken(sqlParser.IN, 0);
};
ShowTablesContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
ShowTablesContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
ShowTablesContext.prototype.LIKE = function () {
return this.getToken(sqlParser.LIKE, 0);
};
ShowTablesContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterShowTables(this);
}
};
ShowTablesContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitShowTables(this);
}
};
ShowTablesContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitShowTables(this);
}
else {
return visitor.visitChildren(this);
}
};
function RecoverPartitionsContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
RecoverPartitionsContext.prototype = Object.create(StatementContext.prototype);
RecoverPartitionsContext.prototype.constructor = RecoverPartitionsContext;
sqlParser.RecoverPartitionsContext = RecoverPartitionsContext;
RecoverPartitionsContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
RecoverPartitionsContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
RecoverPartitionsContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
RecoverPartitionsContext.prototype.RECOVER = function () {
return this.getToken(sqlParser.RECOVER, 0);
};
RecoverPartitionsContext.prototype.PARTITIONS = function () {
return this.getToken(sqlParser.PARTITIONS, 0);
};
RecoverPartitionsContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterRecoverPartitions(this);
}
};
RecoverPartitionsContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitRecoverPartitions(this);
}
};
RecoverPartitionsContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitRecoverPartitions(this);
}
else {
return visitor.visitChildren(this);
}
};
function RenameTablePartitionContext(parser, ctx) {
StatementContext.call(this, parser);
this.from = null; // PartitionSpecContext;
this.to = null; // PartitionSpecContext;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
RenameTablePartitionContext.prototype = Object.create(StatementContext.prototype);
RenameTablePartitionContext.prototype.constructor = RenameTablePartitionContext;
sqlParser.RenameTablePartitionContext = RenameTablePartitionContext;
RenameTablePartitionContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
RenameTablePartitionContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
RenameTablePartitionContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
RenameTablePartitionContext.prototype.RENAME = function () {
return this.getToken(sqlParser.RENAME, 0);
};
RenameTablePartitionContext.prototype.TO = function () {
return this.getToken(sqlParser.TO, 0);
};
RenameTablePartitionContext.prototype.partitionSpec = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(PartitionSpecContext);
}
else {
return this.getTypedRuleContext(PartitionSpecContext, i);
}
};
RenameTablePartitionContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterRenameTablePartition(this);
}
};
RenameTablePartitionContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitRenameTablePartition(this);
}
};
RenameTablePartitionContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitRenameTablePartition(this);
}
else {
return visitor.visitChildren(this);
}
};
function RepairTableContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
RepairTableContext.prototype = Object.create(StatementContext.prototype);
RepairTableContext.prototype.constructor = RepairTableContext;
sqlParser.RepairTableContext = RepairTableContext;
RepairTableContext.prototype.MSCK = function () {
return this.getToken(sqlParser.MSCK, 0);
};
RepairTableContext.prototype.REPAIR = function () {
return this.getToken(sqlParser.REPAIR, 0);
};
RepairTableContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
RepairTableContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
RepairTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterRepairTable(this);
}
};
RepairTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitRepairTable(this);
}
};
RepairTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitRepairTable(this);
}
else {
return visitor.visitChildren(this);
}
};
function RefreshResourceContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
RefreshResourceContext.prototype = Object.create(StatementContext.prototype);
RefreshResourceContext.prototype.constructor = RefreshResourceContext;
sqlParser.RefreshResourceContext = RefreshResourceContext;
RefreshResourceContext.prototype.REFRESH = function () {
return this.getToken(sqlParser.REFRESH, 0);
};
RefreshResourceContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
RefreshResourceContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterRefreshResource(this);
}
};
RefreshResourceContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitRefreshResource(this);
}
};
RefreshResourceContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitRefreshResource(this);
}
else {
return visitor.visitChildren(this);
}
};
function ShowCreateTableContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
ShowCreateTableContext.prototype = Object.create(StatementContext.prototype);
ShowCreateTableContext.prototype.constructor = ShowCreateTableContext;
sqlParser.ShowCreateTableContext = ShowCreateTableContext;
ShowCreateTableContext.prototype.SHOW = function () {
return this.getToken(sqlParser.SHOW, 0);
};
ShowCreateTableContext.prototype.CREATE = function () {
return this.getToken(sqlParser.CREATE, 0);
};
ShowCreateTableContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
ShowCreateTableContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
ShowCreateTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterShowCreateTable(this);
}
};
ShowCreateTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitShowCreateTable(this);
}
};
ShowCreateTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitShowCreateTable(this);
}
else {
return visitor.visitChildren(this);
}
};
function ShowColumnsContext(parser, ctx) {
StatementContext.call(this, parser);
this.db = null; // IdentifierContext;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
ShowColumnsContext.prototype = Object.create(StatementContext.prototype);
ShowColumnsContext.prototype.constructor = ShowColumnsContext;
sqlParser.ShowColumnsContext = ShowColumnsContext;
ShowColumnsContext.prototype.SHOW = function () {
return this.getToken(sqlParser.SHOW, 0);
};
ShowColumnsContext.prototype.COLUMNS = function () {
return this.getToken(sqlParser.COLUMNS, 0);
};
ShowColumnsContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
ShowColumnsContext.prototype.FROM = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.FROM);
}
else {
return this.getToken(sqlParser.FROM, i);
}
};
ShowColumnsContext.prototype.IN = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.IN);
}
else {
return this.getToken(sqlParser.IN, i);
}
};
ShowColumnsContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
ShowColumnsContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterShowColumns(this);
}
};
ShowColumnsContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitShowColumns(this);
}
};
ShowColumnsContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitShowColumns(this);
}
else {
return visitor.visitChildren(this);
}
};
function AddTablePartitionContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
AddTablePartitionContext.prototype = Object.create(StatementContext.prototype);
AddTablePartitionContext.prototype.constructor = AddTablePartitionContext;
sqlParser.AddTablePartitionContext = AddTablePartitionContext;
AddTablePartitionContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
AddTablePartitionContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
AddTablePartitionContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
AddTablePartitionContext.prototype.ADD = function () {
return this.getToken(sqlParser.ADD, 0);
};
AddTablePartitionContext.prototype.IF = function () {
return this.getToken(sqlParser.IF, 0);
};
AddTablePartitionContext.prototype.NOT = function () {
return this.getToken(sqlParser.NOT, 0);
};
AddTablePartitionContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
AddTablePartitionContext.prototype.partitionSpecLocation = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(PartitionSpecLocationContext);
}
else {
return this.getTypedRuleContext(PartitionSpecLocationContext, i);
}
};
AddTablePartitionContext.prototype.VIEW = function () {
return this.getToken(sqlParser.VIEW, 0);
};
AddTablePartitionContext.prototype.partitionSpec = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(PartitionSpecContext);
}
else {
return this.getTypedRuleContext(PartitionSpecContext, i);
}
};
AddTablePartitionContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterAddTablePartition(this);
}
};
AddTablePartitionContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitAddTablePartition(this);
}
};
AddTablePartitionContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitAddTablePartition(this);
}
else {
return visitor.visitChildren(this);
}
};
function RefreshTableContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
RefreshTableContext.prototype = Object.create(StatementContext.prototype);
RefreshTableContext.prototype.constructor = RefreshTableContext;
sqlParser.RefreshTableContext = RefreshTableContext;
RefreshTableContext.prototype.REFRESH = function () {
return this.getToken(sqlParser.REFRESH, 0);
};
RefreshTableContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
RefreshTableContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
RefreshTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterRefreshTable(this);
}
};
RefreshTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitRefreshTable(this);
}
};
RefreshTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitRefreshTable(this);
}
else {
return visitor.visitChildren(this);
}
};
function ManageResourceContext(parser, ctx) {
StatementContext.call(this, parser);
this.op = null; // Token;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
ManageResourceContext.prototype = Object.create(StatementContext.prototype);
ManageResourceContext.prototype.constructor = ManageResourceContext;
sqlParser.ManageResourceContext = ManageResourceContext;
ManageResourceContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
ManageResourceContext.prototype.ADD = function () {
return this.getToken(sqlParser.ADD, 0);
};
ManageResourceContext.prototype.LIST = function () {
return this.getToken(sqlParser.LIST, 0);
};
ManageResourceContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterManageResource(this);
}
};
ManageResourceContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitManageResource(this);
}
};
ManageResourceContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitManageResource(this);
}
else {
return visitor.visitChildren(this);
}
};
function CreateDatabaseContext(parser, ctx) {
StatementContext.call(this, parser);
this.comment = null; // Token;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
CreateDatabaseContext.prototype = Object.create(StatementContext.prototype);
CreateDatabaseContext.prototype.constructor = CreateDatabaseContext;
sqlParser.CreateDatabaseContext = CreateDatabaseContext;
CreateDatabaseContext.prototype.CREATE = function () {
return this.getToken(sqlParser.CREATE, 0);
};
CreateDatabaseContext.prototype.DATABASE = function () {
return this.getToken(sqlParser.DATABASE, 0);
};
CreateDatabaseContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
CreateDatabaseContext.prototype.IF = function () {
return this.getToken(sqlParser.IF, 0);
};
CreateDatabaseContext.prototype.NOT = function () {
return this.getToken(sqlParser.NOT, 0);
};
CreateDatabaseContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
CreateDatabaseContext.prototype.COMMENT = function () {
return this.getToken(sqlParser.COMMENT, 0);
};
CreateDatabaseContext.prototype.locationSpec = function () {
return this.getTypedRuleContext(LocationSpecContext, 0);
};
CreateDatabaseContext.prototype.WITH = function () {
return this.getToken(sqlParser.WITH, 0);
};
CreateDatabaseContext.prototype.DBPROPERTIES = function () {
return this.getToken(sqlParser.DBPROPERTIES, 0);
};
CreateDatabaseContext.prototype.tablePropertyList = function () {
return this.getTypedRuleContext(TablePropertyListContext, 0);
};
CreateDatabaseContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
CreateDatabaseContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterCreateDatabase(this);
}
};
CreateDatabaseContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitCreateDatabase(this);
}
};
CreateDatabaseContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitCreateDatabase(this);
}
else {
return visitor.visitChildren(this);
}
};
function AnalyzeContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
AnalyzeContext.prototype = Object.create(StatementContext.prototype);
AnalyzeContext.prototype.constructor = AnalyzeContext;
sqlParser.AnalyzeContext = AnalyzeContext;
AnalyzeContext.prototype.ANALYZE = function () {
return this.getToken(sqlParser.ANALYZE, 0);
};
AnalyzeContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
AnalyzeContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
AnalyzeContext.prototype.COMPUTE = function () {
return this.getToken(sqlParser.COMPUTE, 0);
};
AnalyzeContext.prototype.STATISTICS = function () {
return this.getToken(sqlParser.STATISTICS, 0);
};
AnalyzeContext.prototype.partitionSpec = function () {
return this.getTypedRuleContext(PartitionSpecContext, 0);
};
AnalyzeContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
AnalyzeContext.prototype.FOR = function () {
return this.getToken(sqlParser.FOR, 0);
};
AnalyzeContext.prototype.COLUMNS = function () {
return this.getToken(sqlParser.COLUMNS, 0);
};
AnalyzeContext.prototype.identifierSeq = function () {
return this.getTypedRuleContext(IdentifierSeqContext, 0);
};
AnalyzeContext.prototype.ALL = function () {
return this.getToken(sqlParser.ALL, 0);
};
AnalyzeContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterAnalyze(this);
}
};
AnalyzeContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitAnalyze(this);
}
};
AnalyzeContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitAnalyze(this);
}
else {
return visitor.visitChildren(this);
}
};
function CreateHiveTableContext(parser, ctx) {
StatementContext.call(this, parser);
this.columns = null; // ColTypeListContext;
this.comment = null; // Token;
this.partitionColumns = null; // ColTypeListContext;
this.tableProps = null; // TablePropertyListContext;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
CreateHiveTableContext.prototype = Object.create(StatementContext.prototype);
CreateHiveTableContext.prototype.constructor = CreateHiveTableContext;
sqlParser.CreateHiveTableContext = CreateHiveTableContext;
CreateHiveTableContext.prototype.createTableHeader = function () {
return this.getTypedRuleContext(CreateTableHeaderContext, 0);
};
CreateHiveTableContext.prototype.bucketSpec = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(BucketSpecContext);
}
else {
return this.getTypedRuleContext(BucketSpecContext, i);
}
};
CreateHiveTableContext.prototype.skewSpec = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(SkewSpecContext);
}
else {
return this.getTypedRuleContext(SkewSpecContext, i);
}
};
CreateHiveTableContext.prototype.rowFormat = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(RowFormatContext);
}
else {
return this.getTypedRuleContext(RowFormatContext, i);
}
};
CreateHiveTableContext.prototype.createFileFormat = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(CreateFileFormatContext);
}
else {
return this.getTypedRuleContext(CreateFileFormatContext, i);
}
};
CreateHiveTableContext.prototype.locationSpec = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(LocationSpecContext);
}
else {
return this.getTypedRuleContext(LocationSpecContext, i);
}
};
CreateHiveTableContext.prototype.query = function () {
return this.getTypedRuleContext(QueryContext, 0);
};
CreateHiveTableContext.prototype.colTypeList = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ColTypeListContext);
}
else {
return this.getTypedRuleContext(ColTypeListContext, i);
}
};
CreateHiveTableContext.prototype.COMMENT = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.COMMENT);
}
else {
return this.getToken(sqlParser.COMMENT, i);
}
};
CreateHiveTableContext.prototype.PARTITIONED = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.PARTITIONED);
}
else {
return this.getToken(sqlParser.PARTITIONED, i);
}
};
CreateHiveTableContext.prototype.BY = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.BY);
}
else {
return this.getToken(sqlParser.BY, i);
}
};
CreateHiveTableContext.prototype.TBLPROPERTIES = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.TBLPROPERTIES);
}
else {
return this.getToken(sqlParser.TBLPROPERTIES, i);
}
};
CreateHiveTableContext.prototype.STRING = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.STRING);
}
else {
return this.getToken(sqlParser.STRING, i);
}
};
CreateHiveTableContext.prototype.tablePropertyList = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(TablePropertyListContext);
}
else {
return this.getTypedRuleContext(TablePropertyListContext, i);
}
};
CreateHiveTableContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
CreateHiveTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterCreateHiveTable(this);
}
};
CreateHiveTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitCreateHiveTable(this);
}
};
CreateHiveTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitCreateHiveTable(this);
}
else {
return visitor.visitChildren(this);
}
};
function CreateFunctionContext(parser, ctx) {
StatementContext.call(this, parser);
this.className = null; // Token;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
CreateFunctionContext.prototype = Object.create(StatementContext.prototype);
CreateFunctionContext.prototype.constructor = CreateFunctionContext;
sqlParser.CreateFunctionContext = CreateFunctionContext;
CreateFunctionContext.prototype.CREATE = function () {
return this.getToken(sqlParser.CREATE, 0);
};
CreateFunctionContext.prototype.FUNCTION = function () {
return this.getToken(sqlParser.FUNCTION, 0);
};
CreateFunctionContext.prototype.qualifiedName = function () {
return this.getTypedRuleContext(QualifiedNameContext, 0);
};
CreateFunctionContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
CreateFunctionContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
CreateFunctionContext.prototype.OR = function () {
return this.getToken(sqlParser.OR, 0);
};
CreateFunctionContext.prototype.REPLACE = function () {
return this.getToken(sqlParser.REPLACE, 0);
};
CreateFunctionContext.prototype.TEMPORARY = function () {
return this.getToken(sqlParser.TEMPORARY, 0);
};
CreateFunctionContext.prototype.IF = function () {
return this.getToken(sqlParser.IF, 0);
};
CreateFunctionContext.prototype.NOT = function () {
return this.getToken(sqlParser.NOT, 0);
};
CreateFunctionContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
CreateFunctionContext.prototype.USING = function () {
return this.getToken(sqlParser.USING, 0);
};
CreateFunctionContext.prototype.resource = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ResourceContext);
}
else {
return this.getTypedRuleContext(ResourceContext, i);
}
};
CreateFunctionContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterCreateFunction(this);
}
};
CreateFunctionContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitCreateFunction(this);
}
};
CreateFunctionContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitCreateFunction(this);
}
else {
return visitor.visitChildren(this);
}
};
function ShowTableContext(parser, ctx) {
StatementContext.call(this, parser);
this.db = null; // IdentifierContext;
this.pattern = null; // Token;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
ShowTableContext.prototype = Object.create(StatementContext.prototype);
ShowTableContext.prototype.constructor = ShowTableContext;
sqlParser.ShowTableContext = ShowTableContext;
ShowTableContext.prototype.SHOW = function () {
return this.getToken(sqlParser.SHOW, 0);
};
ShowTableContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
ShowTableContext.prototype.EXTENDED = function () {
return this.getToken(sqlParser.EXTENDED, 0);
};
ShowTableContext.prototype.LIKE = function () {
return this.getToken(sqlParser.LIKE, 0);
};
ShowTableContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
ShowTableContext.prototype.partitionSpec = function () {
return this.getTypedRuleContext(PartitionSpecContext, 0);
};
ShowTableContext.prototype.FROM = function () {
return this.getToken(sqlParser.FROM, 0);
};
ShowTableContext.prototype.IN = function () {
return this.getToken(sqlParser.IN, 0);
};
ShowTableContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
ShowTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterShowTable(this);
}
};
ShowTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitShowTable(this);
}
};
ShowTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitShowTable(this);
}
else {
return visitor.visitChildren(this);
}
};
function SetDatabasePropertiesContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
SetDatabasePropertiesContext.prototype = Object.create(StatementContext.prototype);
SetDatabasePropertiesContext.prototype.constructor = SetDatabasePropertiesContext;
sqlParser.SetDatabasePropertiesContext = SetDatabasePropertiesContext;
SetDatabasePropertiesContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
SetDatabasePropertiesContext.prototype.DATABASE = function () {
return this.getToken(sqlParser.DATABASE, 0);
};
SetDatabasePropertiesContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
SetDatabasePropertiesContext.prototype.SET = function () {
return this.getToken(sqlParser.SET, 0);
};
SetDatabasePropertiesContext.prototype.DBPROPERTIES = function () {
return this.getToken(sqlParser.DBPROPERTIES, 0);
};
SetDatabasePropertiesContext.prototype.tablePropertyList = function () {
return this.getTypedRuleContext(TablePropertyListContext, 0);
};
SetDatabasePropertiesContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSetDatabaseProperties(this);
}
};
SetDatabasePropertiesContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSetDatabaseProperties(this);
}
};
SetDatabasePropertiesContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSetDatabaseProperties(this);
}
else {
return visitor.visitChildren(this);
}
};
function CreateTableContext(parser, ctx) {
StatementContext.call(this, parser);
this.options = null; // TablePropertyListContext;
this.partitionColumnNames = null; // IdentifierListContext;
this.comment = null; // Token;
this.tableProps = null; // TablePropertyListContext;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
CreateTableContext.prototype = Object.create(StatementContext.prototype);
CreateTableContext.prototype.constructor = CreateTableContext;
sqlParser.CreateTableContext = CreateTableContext;
CreateTableContext.prototype.createTableHeader = function () {
return this.getTypedRuleContext(CreateTableHeaderContext, 0);
};
CreateTableContext.prototype.tableProvider = function () {
return this.getTypedRuleContext(TableProviderContext, 0);
};
CreateTableContext.prototype.colTypeList = function () {
return this.getTypedRuleContext(ColTypeListContext, 0);
};
CreateTableContext.prototype.bucketSpec = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(BucketSpecContext);
}
else {
return this.getTypedRuleContext(BucketSpecContext, i);
}
};
CreateTableContext.prototype.locationSpec = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(LocationSpecContext);
}
else {
return this.getTypedRuleContext(LocationSpecContext, i);
}
};
CreateTableContext.prototype.query = function () {
return this.getTypedRuleContext(QueryContext, 0);
};
CreateTableContext.prototype.OPTIONS = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.OPTIONS);
}
else {
return this.getToken(sqlParser.OPTIONS, i);
}
};
CreateTableContext.prototype.PARTITIONED = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.PARTITIONED);
}
else {
return this.getToken(sqlParser.PARTITIONED, i);
}
};
CreateTableContext.prototype.BY = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.BY);
}
else {
return this.getToken(sqlParser.BY, i);
}
};
CreateTableContext.prototype.COMMENT = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.COMMENT);
}
else {
return this.getToken(sqlParser.COMMENT, i);
}
};
CreateTableContext.prototype.TBLPROPERTIES = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.TBLPROPERTIES);
}
else {
return this.getToken(sqlParser.TBLPROPERTIES, i);
}
};
CreateTableContext.prototype.tablePropertyList = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(TablePropertyListContext);
}
else {
return this.getTypedRuleContext(TablePropertyListContext, i);
}
};
CreateTableContext.prototype.identifierList = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(IdentifierListContext);
}
else {
return this.getTypedRuleContext(IdentifierListContext, i);
}
};
CreateTableContext.prototype.STRING = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.STRING);
}
else {
return this.getToken(sqlParser.STRING, i);
}
};
CreateTableContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
CreateTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterCreateTable(this);
}
};
CreateTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitCreateTable(this);
}
};
CreateTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitCreateTable(this);
}
else {
return visitor.visitChildren(this);
}
};
function DescribeTableContext(parser, ctx) {
StatementContext.call(this, parser);
this.option = null; // Token;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
DescribeTableContext.prototype = Object.create(StatementContext.prototype);
DescribeTableContext.prototype.constructor = DescribeTableContext;
sqlParser.DescribeTableContext = DescribeTableContext;
DescribeTableContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
DescribeTableContext.prototype.DESC = function () {
return this.getToken(sqlParser.DESC, 0);
};
DescribeTableContext.prototype.DESCRIBE = function () {
return this.getToken(sqlParser.DESCRIBE, 0);
};
DescribeTableContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
DescribeTableContext.prototype.partitionSpec = function () {
return this.getTypedRuleContext(PartitionSpecContext, 0);
};
DescribeTableContext.prototype.describeColName = function () {
return this.getTypedRuleContext(DescribeColNameContext, 0);
};
DescribeTableContext.prototype.EXTENDED = function () {
return this.getToken(sqlParser.EXTENDED, 0);
};
DescribeTableContext.prototype.FORMATTED = function () {
return this.getToken(sqlParser.FORMATTED, 0);
};
DescribeTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterDescribeTable(this);
}
};
DescribeTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitDescribeTable(this);
}
};
DescribeTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitDescribeTable(this);
}
else {
return visitor.visitChildren(this);
}
};
function CreateTableLikeContext(parser, ctx) {
StatementContext.call(this, parser);
this.target = null; // TableIdentifierContext;
this.source = null; // TableIdentifierContext;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
CreateTableLikeContext.prototype = Object.create(StatementContext.prototype);
CreateTableLikeContext.prototype.constructor = CreateTableLikeContext;
sqlParser.CreateTableLikeContext = CreateTableLikeContext;
CreateTableLikeContext.prototype.CREATE = function () {
return this.getToken(sqlParser.CREATE, 0);
};
CreateTableLikeContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
CreateTableLikeContext.prototype.LIKE = function () {
return this.getToken(sqlParser.LIKE, 0);
};
CreateTableLikeContext.prototype.tableIdentifier = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(TableIdentifierContext);
}
else {
return this.getTypedRuleContext(TableIdentifierContext, i);
}
};
CreateTableLikeContext.prototype.IF = function () {
return this.getToken(sqlParser.IF, 0);
};
CreateTableLikeContext.prototype.NOT = function () {
return this.getToken(sqlParser.NOT, 0);
};
CreateTableLikeContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
CreateTableLikeContext.prototype.locationSpec = function () {
return this.getTypedRuleContext(LocationSpecContext, 0);
};
CreateTableLikeContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterCreateTableLike(this);
}
};
CreateTableLikeContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitCreateTableLike(this);
}
};
CreateTableLikeContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitCreateTableLike(this);
}
else {
return visitor.visitChildren(this);
}
};
function UncacheTableContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
UncacheTableContext.prototype = Object.create(StatementContext.prototype);
UncacheTableContext.prototype.constructor = UncacheTableContext;
sqlParser.UncacheTableContext = UncacheTableContext;
UncacheTableContext.prototype.UNCACHE = function () {
return this.getToken(sqlParser.UNCACHE, 0);
};
UncacheTableContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
UncacheTableContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
UncacheTableContext.prototype.IF = function () {
return this.getToken(sqlParser.IF, 0);
};
UncacheTableContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
UncacheTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterUncacheTable(this);
}
};
UncacheTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitUncacheTable(this);
}
};
UncacheTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitUncacheTable(this);
}
else {
return visitor.visitChildren(this);
}
};
function DropFunctionContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
DropFunctionContext.prototype = Object.create(StatementContext.prototype);
DropFunctionContext.prototype.constructor = DropFunctionContext;
sqlParser.DropFunctionContext = DropFunctionContext;
DropFunctionContext.prototype.DROP = function () {
return this.getToken(sqlParser.DROP, 0);
};
DropFunctionContext.prototype.FUNCTION = function () {
return this.getToken(sqlParser.FUNCTION, 0);
};
DropFunctionContext.prototype.qualifiedName = function () {
return this.getTypedRuleContext(QualifiedNameContext, 0);
};
DropFunctionContext.prototype.TEMPORARY = function () {
return this.getToken(sqlParser.TEMPORARY, 0);
};
DropFunctionContext.prototype.IF = function () {
return this.getToken(sqlParser.IF, 0);
};
DropFunctionContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
DropFunctionContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterDropFunction(this);
}
};
DropFunctionContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitDropFunction(this);
}
};
DropFunctionContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitDropFunction(this);
}
else {
return visitor.visitChildren(this);
}
};
function LoadDataContext(parser, ctx) {
StatementContext.call(this, parser);
this.path = null; // Token;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
LoadDataContext.prototype = Object.create(StatementContext.prototype);
LoadDataContext.prototype.constructor = LoadDataContext;
sqlParser.LoadDataContext = LoadDataContext;
LoadDataContext.prototype.LOAD = function () {
return this.getToken(sqlParser.LOAD, 0);
};
LoadDataContext.prototype.DATA = function () {
return this.getToken(sqlParser.DATA, 0);
};
LoadDataContext.prototype.INPATH = function () {
return this.getToken(sqlParser.INPATH, 0);
};
LoadDataContext.prototype.INTO = function () {
return this.getToken(sqlParser.INTO, 0);
};
LoadDataContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
LoadDataContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
LoadDataContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
LoadDataContext.prototype.LOCAL = function () {
return this.getToken(sqlParser.LOCAL, 0);
};
LoadDataContext.prototype.OVERWRITE = function () {
return this.getToken(sqlParser.OVERWRITE, 0);
};
LoadDataContext.prototype.partitionSpec = function () {
return this.getTypedRuleContext(PartitionSpecContext, 0);
};
LoadDataContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterLoadData(this);
}
};
LoadDataContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitLoadData(this);
}
};
LoadDataContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitLoadData(this);
}
else {
return visitor.visitChildren(this);
}
};
function ShowPartitionsContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
ShowPartitionsContext.prototype = Object.create(StatementContext.prototype);
ShowPartitionsContext.prototype.constructor = ShowPartitionsContext;
sqlParser.ShowPartitionsContext = ShowPartitionsContext;
ShowPartitionsContext.prototype.SHOW = function () {
return this.getToken(sqlParser.SHOW, 0);
};
ShowPartitionsContext.prototype.PARTITIONS = function () {
return this.getToken(sqlParser.PARTITIONS, 0);
};
ShowPartitionsContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
ShowPartitionsContext.prototype.partitionSpec = function () {
return this.getTypedRuleContext(PartitionSpecContext, 0);
};
ShowPartitionsContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterShowPartitions(this);
}
};
ShowPartitionsContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitShowPartitions(this);
}
};
ShowPartitionsContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitShowPartitions(this);
}
else {
return visitor.visitChildren(this);
}
};
function DescribeFunctionContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
DescribeFunctionContext.prototype = Object.create(StatementContext.prototype);
DescribeFunctionContext.prototype.constructor = DescribeFunctionContext;
sqlParser.DescribeFunctionContext = DescribeFunctionContext;
DescribeFunctionContext.prototype.FUNCTION = function () {
return this.getToken(sqlParser.FUNCTION, 0);
};
DescribeFunctionContext.prototype.describeFuncName = function () {
return this.getTypedRuleContext(DescribeFuncNameContext, 0);
};
DescribeFunctionContext.prototype.DESC = function () {
return this.getToken(sqlParser.DESC, 0);
};
DescribeFunctionContext.prototype.DESCRIBE = function () {
return this.getToken(sqlParser.DESCRIBE, 0);
};
DescribeFunctionContext.prototype.EXTENDED = function () {
return this.getToken(sqlParser.EXTENDED, 0);
};
DescribeFunctionContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterDescribeFunction(this);
}
};
DescribeFunctionContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitDescribeFunction(this);
}
};
DescribeFunctionContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitDescribeFunction(this);
}
else {
return visitor.visitChildren(this);
}
};
function ChangeColumnContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
ChangeColumnContext.prototype = Object.create(StatementContext.prototype);
ChangeColumnContext.prototype.constructor = ChangeColumnContext;
sqlParser.ChangeColumnContext = ChangeColumnContext;
ChangeColumnContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
ChangeColumnContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
ChangeColumnContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
ChangeColumnContext.prototype.CHANGE = function () {
return this.getToken(sqlParser.CHANGE, 0);
};
ChangeColumnContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
ChangeColumnContext.prototype.colType = function () {
return this.getTypedRuleContext(ColTypeContext, 0);
};
ChangeColumnContext.prototype.partitionSpec = function () {
return this.getTypedRuleContext(PartitionSpecContext, 0);
};
ChangeColumnContext.prototype.COLUMN = function () {
return this.getToken(sqlParser.COLUMN, 0);
};
ChangeColumnContext.prototype.colPosition = function () {
return this.getTypedRuleContext(ColPositionContext, 0);
};
ChangeColumnContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterChangeColumn(this);
}
};
ChangeColumnContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitChangeColumn(this);
}
};
ChangeColumnContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitChangeColumn(this);
}
else {
return visitor.visitChildren(this);
}
};
function StatementDefaultContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
StatementDefaultContext.prototype = Object.create(StatementContext.prototype);
StatementDefaultContext.prototype.constructor = StatementDefaultContext;
sqlParser.StatementDefaultContext = StatementDefaultContext;
StatementDefaultContext.prototype.query = function () {
return this.getTypedRuleContext(QueryContext, 0);
};
StatementDefaultContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterStatementDefault(this);
}
};
StatementDefaultContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitStatementDefault(this);
}
};
StatementDefaultContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitStatementDefault(this);
}
else {
return visitor.visitChildren(this);
}
};
function TruncateTableContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
TruncateTableContext.prototype = Object.create(StatementContext.prototype);
TruncateTableContext.prototype.constructor = TruncateTableContext;
sqlParser.TruncateTableContext = TruncateTableContext;
TruncateTableContext.prototype.TRUNCATE = function () {
return this.getToken(sqlParser.TRUNCATE, 0);
};
TruncateTableContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
TruncateTableContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
TruncateTableContext.prototype.partitionSpec = function () {
return this.getTypedRuleContext(PartitionSpecContext, 0);
};
TruncateTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterTruncateTable(this);
}
};
TruncateTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitTruncateTable(this);
}
};
TruncateTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitTruncateTable(this);
}
else {
return visitor.visitChildren(this);
}
};
function SetTableSerDeContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
SetTableSerDeContext.prototype = Object.create(StatementContext.prototype);
SetTableSerDeContext.prototype.constructor = SetTableSerDeContext;
sqlParser.SetTableSerDeContext = SetTableSerDeContext;
SetTableSerDeContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
SetTableSerDeContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
SetTableSerDeContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
SetTableSerDeContext.prototype.SET = function () {
return this.getToken(sqlParser.SET, 0);
};
SetTableSerDeContext.prototype.SERDE = function () {
return this.getToken(sqlParser.SERDE, 0);
};
SetTableSerDeContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
SetTableSerDeContext.prototype.partitionSpec = function () {
return this.getTypedRuleContext(PartitionSpecContext, 0);
};
SetTableSerDeContext.prototype.WITH = function () {
return this.getToken(sqlParser.WITH, 0);
};
SetTableSerDeContext.prototype.SERDEPROPERTIES = function () {
return this.getToken(sqlParser.SERDEPROPERTIES, 0);
};
SetTableSerDeContext.prototype.tablePropertyList = function () {
return this.getTypedRuleContext(TablePropertyListContext, 0);
};
SetTableSerDeContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSetTableSerDe(this);
}
};
SetTableSerDeContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSetTableSerDe(this);
}
};
SetTableSerDeContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSetTableSerDe(this);
}
else {
return visitor.visitChildren(this);
}
};
function CreateViewContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
CreateViewContext.prototype = Object.create(StatementContext.prototype);
CreateViewContext.prototype.constructor = CreateViewContext;
sqlParser.CreateViewContext = CreateViewContext;
CreateViewContext.prototype.CREATE = function () {
return this.getToken(sqlParser.CREATE, 0);
};
CreateViewContext.prototype.VIEW = function () {
return this.getToken(sqlParser.VIEW, 0);
};
CreateViewContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
CreateViewContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
CreateViewContext.prototype.query = function () {
return this.getTypedRuleContext(QueryContext, 0);
};
CreateViewContext.prototype.OR = function () {
return this.getToken(sqlParser.OR, 0);
};
CreateViewContext.prototype.REPLACE = function () {
return this.getToken(sqlParser.REPLACE, 0);
};
CreateViewContext.prototype.TEMPORARY = function () {
return this.getToken(sqlParser.TEMPORARY, 0);
};
CreateViewContext.prototype.IF = function () {
return this.getToken(sqlParser.IF, 0);
};
CreateViewContext.prototype.NOT = function () {
return this.getToken(sqlParser.NOT, 0);
};
CreateViewContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
CreateViewContext.prototype.identifierCommentList = function () {
return this.getTypedRuleContext(IdentifierCommentListContext, 0);
};
CreateViewContext.prototype.COMMENT = function () {
return this.getToken(sqlParser.COMMENT, 0);
};
CreateViewContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
CreateViewContext.prototype.PARTITIONED = function () {
return this.getToken(sqlParser.PARTITIONED, 0);
};
CreateViewContext.prototype.ON = function () {
return this.getToken(sqlParser.ON, 0);
};
CreateViewContext.prototype.identifierList = function () {
return this.getTypedRuleContext(IdentifierListContext, 0);
};
CreateViewContext.prototype.TBLPROPERTIES = function () {
return this.getToken(sqlParser.TBLPROPERTIES, 0);
};
CreateViewContext.prototype.tablePropertyList = function () {
return this.getTypedRuleContext(TablePropertyListContext, 0);
};
CreateViewContext.prototype.GLOBAL = function () {
return this.getToken(sqlParser.GLOBAL, 0);
};
CreateViewContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterCreateView(this);
}
};
CreateViewContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitCreateView(this);
}
};
CreateViewContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitCreateView(this);
}
else {
return visitor.visitChildren(this);
}
};
function DropTablePartitionsContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
DropTablePartitionsContext.prototype = Object.create(StatementContext.prototype);
DropTablePartitionsContext.prototype.constructor = DropTablePartitionsContext;
sqlParser.DropTablePartitionsContext = DropTablePartitionsContext;
DropTablePartitionsContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
DropTablePartitionsContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
DropTablePartitionsContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
DropTablePartitionsContext.prototype.DROP = function () {
return this.getToken(sqlParser.DROP, 0);
};
DropTablePartitionsContext.prototype.partitionSpec = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(PartitionSpecContext);
}
else {
return this.getTypedRuleContext(PartitionSpecContext, i);
}
};
DropTablePartitionsContext.prototype.IF = function () {
return this.getToken(sqlParser.IF, 0);
};
DropTablePartitionsContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
DropTablePartitionsContext.prototype.PURGE = function () {
return this.getToken(sqlParser.PURGE, 0);
};
DropTablePartitionsContext.prototype.VIEW = function () {
return this.getToken(sqlParser.VIEW, 0);
};
DropTablePartitionsContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterDropTablePartitions(this);
}
};
DropTablePartitionsContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitDropTablePartitions(this);
}
};
DropTablePartitionsContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitDropTablePartitions(this);
}
else {
return visitor.visitChildren(this);
}
};
function SetConfigurationContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
SetConfigurationContext.prototype = Object.create(StatementContext.prototype);
SetConfigurationContext.prototype.constructor = SetConfigurationContext;
sqlParser.SetConfigurationContext = SetConfigurationContext;
SetConfigurationContext.prototype.SET = function () {
return this.getToken(sqlParser.SET, 0);
};
SetConfigurationContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSetConfiguration(this);
}
};
SetConfigurationContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSetConfiguration(this);
}
};
SetConfigurationContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSetConfiguration(this);
}
else {
return visitor.visitChildren(this);
}
};
function DropTableContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
DropTableContext.prototype = Object.create(StatementContext.prototype);
DropTableContext.prototype.constructor = DropTableContext;
sqlParser.DropTableContext = DropTableContext;
DropTableContext.prototype.DROP = function () {
return this.getToken(sqlParser.DROP, 0);
};
DropTableContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
DropTableContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
DropTableContext.prototype.IF = function () {
return this.getToken(sqlParser.IF, 0);
};
DropTableContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
DropTableContext.prototype.PURGE = function () {
return this.getToken(sqlParser.PURGE, 0);
};
DropTableContext.prototype.VIEW = function () {
return this.getToken(sqlParser.VIEW, 0);
};
DropTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterDropTable(this);
}
};
DropTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitDropTable(this);
}
};
DropTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitDropTable(this);
}
else {
return visitor.visitChildren(this);
}
};
function ShowDatabasesContext(parser, ctx) {
StatementContext.call(this, parser);
this.pattern = null; // Token;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
ShowDatabasesContext.prototype = Object.create(StatementContext.prototype);
ShowDatabasesContext.prototype.constructor = ShowDatabasesContext;
sqlParser.ShowDatabasesContext = ShowDatabasesContext;
ShowDatabasesContext.prototype.SHOW = function () {
return this.getToken(sqlParser.SHOW, 0);
};
ShowDatabasesContext.prototype.DATABASES = function () {
return this.getToken(sqlParser.DATABASES, 0);
};
ShowDatabasesContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
ShowDatabasesContext.prototype.LIKE = function () {
return this.getToken(sqlParser.LIKE, 0);
};
ShowDatabasesContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterShowDatabases(this);
}
};
ShowDatabasesContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitShowDatabases(this);
}
};
ShowDatabasesContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitShowDatabases(this);
}
else {
return visitor.visitChildren(this);
}
};
function ShowTblPropertiesContext(parser, ctx) {
StatementContext.call(this, parser);
this.table = null; // TableIdentifierContext;
this.key = null; // TablePropertyKeyContext;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
ShowTblPropertiesContext.prototype = Object.create(StatementContext.prototype);
ShowTblPropertiesContext.prototype.constructor = ShowTblPropertiesContext;
sqlParser.ShowTblPropertiesContext = ShowTblPropertiesContext;
ShowTblPropertiesContext.prototype.SHOW = function () {
return this.getToken(sqlParser.SHOW, 0);
};
ShowTblPropertiesContext.prototype.TBLPROPERTIES = function () {
return this.getToken(sqlParser.TBLPROPERTIES, 0);
};
ShowTblPropertiesContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
ShowTblPropertiesContext.prototype.tablePropertyKey = function () {
return this.getTypedRuleContext(TablePropertyKeyContext, 0);
};
ShowTblPropertiesContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterShowTblProperties(this);
}
};
ShowTblPropertiesContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitShowTblProperties(this);
}
};
ShowTblPropertiesContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitShowTblProperties(this);
}
else {
return visitor.visitChildren(this);
}
};
function CreateFlinkTableContext(parser, ctx) {
StatementContext.call(this, parser);
this.catcatalogName = null; // IdentifierContext;
this.columns = null; // DtColTypeListContext;
this.comment = null; // Token;
this.partitionColumnNames = null; // IdentifierListContext;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
CreateFlinkTableContext.prototype = Object.create(StatementContext.prototype);
CreateFlinkTableContext.prototype.constructor = CreateFlinkTableContext;
sqlParser.CreateFlinkTableContext = CreateFlinkTableContext;
CreateFlinkTableContext.prototype.CREATE = function () {
return this.getToken(sqlParser.CREATE, 0);
};
CreateFlinkTableContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
CreateFlinkTableContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
CreateFlinkTableContext.prototype.WITH = function () {
return this.getToken(sqlParser.WITH, 0);
};
CreateFlinkTableContext.prototype.tablePropertyList = function () {
return this.getTypedRuleContext(TablePropertyListContext, 0);
};
CreateFlinkTableContext.prototype.COMMENT = function () {
return this.getToken(sqlParser.COMMENT, 0);
};
CreateFlinkTableContext.prototype.PARTITIONED = function () {
return this.getToken(sqlParser.PARTITIONED, 0);
};
CreateFlinkTableContext.prototype.BY = function () {
return this.getToken(sqlParser.BY, 0);
};
CreateFlinkTableContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
CreateFlinkTableContext.prototype.dtColTypeList = function () {
return this.getTypedRuleContext(DtColTypeListContext, 0);
};
CreateFlinkTableContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
CreateFlinkTableContext.prototype.identifierList = function () {
return this.getTypedRuleContext(IdentifierListContext, 0);
};
CreateFlinkTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterCreateFlinkTable(this);
}
};
CreateFlinkTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitCreateFlinkTable(this);
}
};
CreateFlinkTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitCreateFlinkTable(this);
}
else {
return visitor.visitChildren(this);
}
};
function UnsetTablePropertiesContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
UnsetTablePropertiesContext.prototype = Object.create(StatementContext.prototype);
UnsetTablePropertiesContext.prototype.constructor = UnsetTablePropertiesContext;
sqlParser.UnsetTablePropertiesContext = UnsetTablePropertiesContext;
UnsetTablePropertiesContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
UnsetTablePropertiesContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
UnsetTablePropertiesContext.prototype.UNSET = function () {
return this.getToken(sqlParser.UNSET, 0);
};
UnsetTablePropertiesContext.prototype.TBLPROPERTIES = function () {
return this.getToken(sqlParser.TBLPROPERTIES, 0);
};
UnsetTablePropertiesContext.prototype.tablePropertyList = function () {
return this.getTypedRuleContext(TablePropertyListContext, 0);
};
UnsetTablePropertiesContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
UnsetTablePropertiesContext.prototype.VIEW = function () {
return this.getToken(sqlParser.VIEW, 0);
};
UnsetTablePropertiesContext.prototype.IF = function () {
return this.getToken(sqlParser.IF, 0);
};
UnsetTablePropertiesContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
UnsetTablePropertiesContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterUnsetTableProperties(this);
}
};
UnsetTablePropertiesContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitUnsetTableProperties(this);
}
};
UnsetTablePropertiesContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitUnsetTableProperties(this);
}
else {
return visitor.visitChildren(this);
}
};
function SetTableLocationContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
SetTableLocationContext.prototype = Object.create(StatementContext.prototype);
SetTableLocationContext.prototype.constructor = SetTableLocationContext;
sqlParser.SetTableLocationContext = SetTableLocationContext;
SetTableLocationContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
SetTableLocationContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
SetTableLocationContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
SetTableLocationContext.prototype.SET = function () {
return this.getToken(sqlParser.SET, 0);
};
SetTableLocationContext.prototype.locationSpec = function () {
return this.getTypedRuleContext(LocationSpecContext, 0);
};
SetTableLocationContext.prototype.partitionSpec = function () {
return this.getTypedRuleContext(PartitionSpecContext, 0);
};
SetTableLocationContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSetTableLocation(this);
}
};
SetTableLocationContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSetTableLocation(this);
}
};
SetTableLocationContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSetTableLocation(this);
}
else {
return visitor.visitChildren(this);
}
};
function ShowFunctionsContext(parser, ctx) {
StatementContext.call(this, parser);
this.pattern = null; // Token;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
ShowFunctionsContext.prototype = Object.create(StatementContext.prototype);
ShowFunctionsContext.prototype.constructor = ShowFunctionsContext;
sqlParser.ShowFunctionsContext = ShowFunctionsContext;
ShowFunctionsContext.prototype.SHOW = function () {
return this.getToken(sqlParser.SHOW, 0);
};
ShowFunctionsContext.prototype.FUNCTIONS = function () {
return this.getToken(sqlParser.FUNCTIONS, 0);
};
ShowFunctionsContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
ShowFunctionsContext.prototype.qualifiedName = function () {
return this.getTypedRuleContext(QualifiedNameContext, 0);
};
ShowFunctionsContext.prototype.LIKE = function () {
return this.getToken(sqlParser.LIKE, 0);
};
ShowFunctionsContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
ShowFunctionsContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterShowFunctions(this);
}
};
ShowFunctionsContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitShowFunctions(this);
}
};
ShowFunctionsContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitShowFunctions(this);
}
else {
return visitor.visitChildren(this);
}
};
function CacheTableContext(parser, ctx) {
StatementContext.call(this, parser);
this.options = null; // TablePropertyListContext;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
CacheTableContext.prototype = Object.create(StatementContext.prototype);
CacheTableContext.prototype.constructor = CacheTableContext;
sqlParser.CacheTableContext = CacheTableContext;
CacheTableContext.prototype.CACHE = function () {
return this.getToken(sqlParser.CACHE, 0);
};
CacheTableContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
CacheTableContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
CacheTableContext.prototype.LAZY = function () {
return this.getToken(sqlParser.LAZY, 0);
};
CacheTableContext.prototype.OPTIONS = function () {
return this.getToken(sqlParser.OPTIONS, 0);
};
CacheTableContext.prototype.query = function () {
return this.getTypedRuleContext(QueryContext, 0);
};
CacheTableContext.prototype.tablePropertyList = function () {
return this.getTypedRuleContext(TablePropertyListContext, 0);
};
CacheTableContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
CacheTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterCacheTable(this);
}
};
CacheTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitCacheTable(this);
}
};
CacheTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitCacheTable(this);
}
else {
return visitor.visitChildren(this);
}
};
function AddTableColumnsContext(parser, ctx) {
StatementContext.call(this, parser);
this.columns = null; // ColTypeListContext;
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
AddTableColumnsContext.prototype = Object.create(StatementContext.prototype);
AddTableColumnsContext.prototype.constructor = AddTableColumnsContext;
sqlParser.AddTableColumnsContext = AddTableColumnsContext;
AddTableColumnsContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
AddTableColumnsContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
AddTableColumnsContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
AddTableColumnsContext.prototype.ADD = function () {
return this.getToken(sqlParser.ADD, 0);
};
AddTableColumnsContext.prototype.COLUMNS = function () {
return this.getToken(sqlParser.COLUMNS, 0);
};
AddTableColumnsContext.prototype.colTypeList = function () {
return this.getTypedRuleContext(ColTypeListContext, 0);
};
AddTableColumnsContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterAddTableColumns(this);
}
};
AddTableColumnsContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitAddTableColumns(this);
}
};
AddTableColumnsContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitAddTableColumns(this);
}
else {
return visitor.visitChildren(this);
}
};
function SetTablePropertiesContext(parser, ctx) {
StatementContext.call(this, parser);
StatementContext.prototype.copyFrom.call(this, ctx);
return this;
}
SetTablePropertiesContext.prototype = Object.create(StatementContext.prototype);
SetTablePropertiesContext.prototype.constructor = SetTablePropertiesContext;
sqlParser.SetTablePropertiesContext = SetTablePropertiesContext;
SetTablePropertiesContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
SetTablePropertiesContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
SetTablePropertiesContext.prototype.SET = function () {
return this.getToken(sqlParser.SET, 0);
};
SetTablePropertiesContext.prototype.TBLPROPERTIES = function () {
return this.getToken(sqlParser.TBLPROPERTIES, 0);
};
SetTablePropertiesContext.prototype.tablePropertyList = function () {
return this.getTypedRuleContext(TablePropertyListContext, 0);
};
SetTablePropertiesContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
SetTablePropertiesContext.prototype.VIEW = function () {
return this.getToken(sqlParser.VIEW, 0);
};
SetTablePropertiesContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSetTableProperties(this);
}
};
SetTablePropertiesContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSetTableProperties(this);
}
};
SetTablePropertiesContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSetTableProperties(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.StatementContext = StatementContext;
sqlParser.prototype.statement = function () {
var localctx = new StatementContext(this, this._ctx, this.state);
this.enterRule(localctx, 12, sqlParser.RULE_statement);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 869;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 101, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new StatementDefaultContext(this, localctx);
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 227;
2019-09-25 15:43:36 +08:00
this.query();
break;
case 2:
localctx = new UseContext(this, localctx);
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 228;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.USE);
2019-09-25 16:53:32 +08:00
this.state = 229;
2019-09-25 15:43:36 +08:00
localctx.db = this.identifier();
break;
case 3:
localctx = new CreateDatabaseContext(this, localctx);
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 230;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CREATE);
2019-09-25 16:53:32 +08:00
this.state = 231;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DATABASE);
2019-09-25 16:53:32 +08:00
this.state = 235;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 1, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 232;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 233;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
2019-09-25 16:53:32 +08:00
this.state = 234;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
this.state = 237;
2019-09-25 16:53:32 +08:00
this.identifier();
this.state = 240;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.COMMENT) {
2019-09-25 16:53:32 +08:00
this.state = 238;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COMMENT);
2019-09-25 16:53:32 +08:00
this.state = 239;
2019-09-25 15:43:36 +08:00
localctx.comment = this.match(sqlParser.STRING);
}
2019-09-25 16:53:32 +08:00
this.state = 243;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.LOCATION) {
2019-09-25 16:53:32 +08:00
this.state = 242;
2019-09-25 15:43:36 +08:00
this.locationSpec();
}
2019-09-25 16:53:32 +08:00
this.state = 248;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.WITH) {
2019-09-25 16:53:32 +08:00
this.state = 245;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.WITH);
2019-09-25 16:53:32 +08:00
this.state = 246;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DBPROPERTIES);
2019-09-25 16:53:32 +08:00
this.state = 247;
2019-09-25 15:43:36 +08:00
this.tablePropertyList();
}
break;
case 4:
localctx = new SetDatabasePropertiesContext(this, localctx);
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 250;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 251;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DATABASE);
2019-09-25 16:53:32 +08:00
this.state = 252;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 253;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SET);
2019-09-25 16:53:32 +08:00
this.state = 254;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DBPROPERTIES);
2019-09-25 16:53:32 +08:00
this.state = 255;
2019-09-25 15:43:36 +08:00
this.tablePropertyList();
break;
case 5:
localctx = new DropDatabaseContext(this, localctx);
this.enterOuterAlt(localctx, 5);
2019-09-25 16:53:32 +08:00
this.state = 257;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DROP);
this.state = 258;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.DATABASE);
this.state = 261;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 5, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 259;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 260;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
2019-09-25 16:53:32 +08:00
this.state = 263;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 265;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.CASCADE || _la === sqlParser.RESTRICT) {
2019-09-25 16:53:32 +08:00
this.state = 264;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.CASCADE || _la === sqlParser.RESTRICT)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
}
break;
case 6:
localctx = new CreateTableContext(this, localctx);
this.enterOuterAlt(localctx, 6);
2019-09-25 16:53:32 +08:00
this.state = 267;
2019-09-25 15:43:36 +08:00
this.createTableHeader();
2019-09-25 16:53:32 +08:00
this.state = 272;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.T__0) {
2019-09-25 16:53:32 +08:00
this.state = 268;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 269;
2019-09-25 15:43:36 +08:00
this.colTypeList();
2019-09-25 16:53:32 +08:00
this.state = 270;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
}
2019-09-25 16:53:32 +08:00
this.state = 274;
2019-09-25 15:43:36 +08:00
this.tableProvider();
2019-09-25 16:53:32 +08:00
this.state = 288;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.COMMENT || ((((_la - 183)) & ~0x1f) == 0 && ((1 << (_la - 183)) & ((1 << (sqlParser.OPTIONS - 183)) | (1 << (sqlParser.TBLPROPERTIES - 183)) | (1 << (sqlParser.LOCATION - 183)) | (1 << (sqlParser.CLUSTERED - 183)))) !== 0) || _la === sqlParser.PARTITIONED) {
2019-09-25 16:53:32 +08:00
this.state = 286;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.OPTIONS:
2019-09-25 16:53:32 +08:00
this.state = 275;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OPTIONS);
2019-09-25 16:53:32 +08:00
this.state = 276;
2019-09-25 15:43:36 +08:00
localctx.options = this.tablePropertyList();
break;
case sqlParser.PARTITIONED:
2019-09-25 16:53:32 +08:00
this.state = 277;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.PARTITIONED);
2019-09-25 16:53:32 +08:00
this.state = 278;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 279;
2019-09-25 15:43:36 +08:00
localctx.partitionColumnNames = this.identifierList();
break;
case sqlParser.CLUSTERED:
2019-09-25 16:53:32 +08:00
this.state = 280;
2019-09-25 15:43:36 +08:00
this.bucketSpec();
break;
case sqlParser.LOCATION:
2019-09-25 16:53:32 +08:00
this.state = 281;
2019-09-25 15:43:36 +08:00
this.locationSpec();
break;
case sqlParser.COMMENT:
2019-09-25 16:53:32 +08:00
this.state = 282;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COMMENT);
2019-09-25 16:53:32 +08:00
this.state = 283;
2019-09-25 15:43:36 +08:00
localctx.comment = this.match(sqlParser.STRING);
break;
case sqlParser.TBLPROPERTIES:
2019-09-25 16:53:32 +08:00
this.state = 284;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TBLPROPERTIES);
2019-09-25 16:53:32 +08:00
this.state = 285;
2019-09-25 15:43:36 +08:00
localctx.tableProps = this.tablePropertyList();
break;
default:
throw new antlr4.error.NoViableAltException(this);
}
2019-09-25 16:53:32 +08:00
this.state = 290;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 295;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.AS))) !== 0) || ((((_la - 77)) & ~0x1f) == 0 && ((1 << (_la - 77)) & ((1 << (sqlParser.WITH - 77)) | (1 << (sqlParser.VALUES - 77)) | (1 << (sqlParser.TABLE - 77)) | (1 << (sqlParser.INSERT - 77)))) !== 0) || _la === sqlParser.MAP || _la === sqlParser.REDUCE) {
2019-09-25 16:53:32 +08:00
this.state = 292;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.AS) {
2019-09-25 16:53:32 +08:00
this.state = 291;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
}
2019-09-25 16:53:32 +08:00
this.state = 294;
2019-09-25 15:43:36 +08:00
this.query();
}
break;
case 7:
localctx = new CreateHiveTableContext(this, localctx);
this.enterOuterAlt(localctx, 7);
2019-09-25 16:53:32 +08:00
this.state = 297;
2019-09-25 15:43:36 +08:00
this.createTableHeader();
2019-09-25 16:53:32 +08:00
this.state = 302;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 12, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 298;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 299;
2019-09-25 15:43:36 +08:00
localctx.columns = this.colTypeList();
2019-09-25 16:53:32 +08:00
this.state = 300;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
}
2019-09-25 16:53:32 +08:00
this.state = 321;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.ROW || _la === sqlParser.COMMENT || ((((_la - 185)) & ~0x1f) == 0 && ((1 << (_la - 185)) & ((1 << (sqlParser.TBLPROPERTIES - 185)) | (1 << (sqlParser.SKEWED - 185)) | (1 << (sqlParser.STORED - 185)) | (1 << (sqlParser.LOCATION - 185)) | (1 << (sqlParser.CLUSTERED - 185)) | (1 << (sqlParser.PARTITIONED - 185)))) !== 0)) {
2019-09-25 16:53:32 +08:00
this.state = 319;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.COMMENT:
2019-09-25 16:53:32 +08:00
this.state = 304;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COMMENT);
2019-09-25 16:53:32 +08:00
this.state = 305;
2019-09-25 15:43:36 +08:00
localctx.comment = this.match(sqlParser.STRING);
break;
case sqlParser.PARTITIONED:
2019-09-25 16:53:32 +08:00
this.state = 306;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.PARTITIONED);
2019-09-25 16:53:32 +08:00
this.state = 307;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 308;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 309;
2019-09-25 15:43:36 +08:00
localctx.partitionColumns = this.colTypeList();
2019-09-25 16:53:32 +08:00
this.state = 310;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case sqlParser.CLUSTERED:
2019-09-25 16:53:32 +08:00
this.state = 312;
2019-09-25 15:43:36 +08:00
this.bucketSpec();
break;
case sqlParser.SKEWED:
2019-09-25 16:53:32 +08:00
this.state = 313;
2019-09-25 15:43:36 +08:00
this.skewSpec();
break;
case sqlParser.ROW:
2019-09-25 16:53:32 +08:00
this.state = 314;
2019-09-25 15:43:36 +08:00
this.rowFormat();
break;
case sqlParser.STORED:
2019-09-25 16:53:32 +08:00
this.state = 315;
2019-09-25 15:43:36 +08:00
this.createFileFormat();
break;
case sqlParser.LOCATION:
2019-09-25 16:53:32 +08:00
this.state = 316;
2019-09-25 15:43:36 +08:00
this.locationSpec();
break;
case sqlParser.TBLPROPERTIES:
2019-09-25 16:53:32 +08:00
this.state = 317;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TBLPROPERTIES);
2019-09-25 16:53:32 +08:00
this.state = 318;
2019-09-25 15:43:36 +08:00
localctx.tableProps = this.tablePropertyList();
break;
default:
throw new antlr4.error.NoViableAltException(this);
}
2019-09-25 16:53:32 +08:00
this.state = 323;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 328;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.AS))) !== 0) || ((((_la - 77)) & ~0x1f) == 0 && ((1 << (_la - 77)) & ((1 << (sqlParser.WITH - 77)) | (1 << (sqlParser.VALUES - 77)) | (1 << (sqlParser.TABLE - 77)) | (1 << (sqlParser.INSERT - 77)))) !== 0) || _la === sqlParser.MAP || _la === sqlParser.REDUCE) {
2019-09-25 16:53:32 +08:00
this.state = 325;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.AS) {
2019-09-25 16:53:32 +08:00
this.state = 324;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
}
2019-09-25 16:53:32 +08:00
this.state = 327;
2019-09-25 15:43:36 +08:00
this.query();
}
break;
case 8:
localctx = new CreateFlinkTableContext(this, localctx);
this.enterOuterAlt(localctx, 8);
2019-09-25 16:53:32 +08:00
this.state = 330;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CREATE);
2019-09-25 16:53:32 +08:00
this.state = 331;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 335;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 17, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 332;
2019-09-25 15:43:36 +08:00
localctx.catcatalogName = this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 333;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__2);
}
2019-09-25 16:53:32 +08:00
this.state = 337;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 342;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.T__0) {
2019-09-25 16:53:32 +08:00
this.state = 338;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 339;
2019-09-25 15:43:36 +08:00
localctx.columns = this.dtColTypeList();
2019-09-25 16:53:32 +08:00
this.state = 340;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
}
2019-09-25 16:53:32 +08:00
this.state = 346;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.COMMENT) {
2019-09-25 16:53:32 +08:00
this.state = 344;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COMMENT);
2019-09-25 16:53:32 +08:00
this.state = 345;
2019-09-25 15:43:36 +08:00
localctx.comment = this.match(sqlParser.STRING);
}
2019-09-25 16:53:32 +08:00
this.state = 354;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITIONED) {
2019-09-25 16:53:32 +08:00
this.state = 348;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.PARTITIONED);
2019-09-25 16:53:32 +08:00
this.state = 349;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 350;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 351;
2019-09-25 15:43:36 +08:00
localctx.partitionColumnNames = this.identifierList();
2019-09-25 16:53:32 +08:00
this.state = 352;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
}
2019-09-25 16:53:32 +08:00
this.state = 356;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.WITH);
2019-09-25 16:53:32 +08:00
this.state = 357;
2019-09-25 15:43:36 +08:00
this.tablePropertyList();
break;
case 9:
localctx = new CreateTableLikeContext(this, localctx);
this.enterOuterAlt(localctx, 9);
2019-09-25 16:53:32 +08:00
this.state = 359;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CREATE);
2019-09-25 16:53:32 +08:00
this.state = 360;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 364;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 21, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 361;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 362;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
2019-09-25 16:53:32 +08:00
this.state = 363;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
2019-09-25 16:53:32 +08:00
this.state = 366;
2019-09-25 15:43:36 +08:00
localctx.target = this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 367;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LIKE);
2019-09-25 16:53:32 +08:00
this.state = 368;
2019-09-25 15:43:36 +08:00
localctx.source = this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 370;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.LOCATION) {
2019-09-25 16:53:32 +08:00
this.state = 369;
2019-09-25 15:43:36 +08:00
this.locationSpec();
}
break;
case 10:
localctx = new AnalyzeContext(this, localctx);
this.enterOuterAlt(localctx, 10);
2019-09-25 16:53:32 +08:00
this.state = 372;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ANALYZE);
2019-09-25 16:53:32 +08:00
this.state = 373;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 374;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 376;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 375;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
2019-09-25 16:53:32 +08:00
this.state = 378;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COMPUTE);
2019-09-25 16:53:32 +08:00
this.state = 379;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STATISTICS);
2019-09-25 16:53:32 +08:00
this.state = 387;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 24, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 380;
2019-09-25 15:43:36 +08:00
this.identifier();
}
else if (la_ === 2) {
2019-09-25 16:53:32 +08:00
this.state = 381;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FOR);
2019-09-25 16:53:32 +08:00
this.state = 382;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COLUMNS);
2019-09-25 16:53:32 +08:00
this.state = 383;
2019-09-25 15:43:36 +08:00
this.identifierSeq();
}
else if (la_ === 3) {
2019-09-25 16:53:32 +08:00
this.state = 384;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FOR);
2019-09-25 16:53:32 +08:00
this.state = 385;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALL);
2019-09-25 16:53:32 +08:00
this.state = 386;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COLUMNS);
}
break;
case 11:
localctx = new AddTableColumnsContext(this, localctx);
this.enterOuterAlt(localctx, 11);
2019-09-25 16:53:32 +08:00
this.state = 389;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 390;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 391;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 392;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ADD);
2019-09-25 16:53:32 +08:00
this.state = 393;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COLUMNS);
2019-09-25 16:53:32 +08:00
this.state = 394;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 395;
2019-09-25 15:43:36 +08:00
localctx.columns = this.colTypeList();
2019-09-25 16:53:32 +08:00
this.state = 396;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case 12:
localctx = new RenameTableContext(this, localctx);
this.enterOuterAlt(localctx, 12);
2019-09-25 16:53:32 +08:00
this.state = 398;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 399;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.TABLE || _la === sqlParser.VIEW)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 400;
2019-09-25 15:43:36 +08:00
localctx.from = this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 401;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.RENAME);
2019-09-25 16:53:32 +08:00
this.state = 402;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TO);
2019-09-25 16:53:32 +08:00
this.state = 403;
2019-09-25 15:43:36 +08:00
localctx.to = this.tableIdentifier();
break;
case 13:
localctx = new SetTablePropertiesContext(this, localctx);
this.enterOuterAlt(localctx, 13);
2019-09-25 16:53:32 +08:00
this.state = 405;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 406;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.TABLE || _la === sqlParser.VIEW)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 407;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 408;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SET);
2019-09-25 16:53:32 +08:00
this.state = 409;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TBLPROPERTIES);
2019-09-25 16:53:32 +08:00
this.state = 410;
2019-09-25 15:43:36 +08:00
this.tablePropertyList();
break;
case 14:
localctx = new UnsetTablePropertiesContext(this, localctx);
this.enterOuterAlt(localctx, 14);
2019-09-25 16:53:32 +08:00
this.state = 412;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 413;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.TABLE || _la === sqlParser.VIEW)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 414;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 415;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.UNSET);
this.state = 416;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.TBLPROPERTIES);
this.state = 419;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.IF) {
2019-09-25 16:53:32 +08:00
this.state = 417;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 418;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
2019-09-25 16:53:32 +08:00
this.state = 421;
2019-09-25 15:43:36 +08:00
this.tablePropertyList();
break;
case 15:
localctx = new ChangeColumnContext(this, localctx);
this.enterOuterAlt(localctx, 15);
2019-09-25 16:53:32 +08:00
this.state = 423;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 424;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 425;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 427;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 426;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
2019-09-25 16:53:32 +08:00
this.state = 429;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CHANGE);
2019-09-25 16:53:32 +08:00
this.state = 431;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 27, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 430;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COLUMN);
}
2019-09-25 16:53:32 +08:00
this.state = 433;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 434;
2019-09-25 15:43:36 +08:00
this.colType();
2019-09-25 16:53:32 +08:00
this.state = 436;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.FIRST || _la === sqlParser.AFTER) {
2019-09-25 16:53:32 +08:00
this.state = 435;
2019-09-25 15:43:36 +08:00
this.colPosition();
}
break;
case 16:
localctx = new SetTableSerDeContext(this, localctx);
this.enterOuterAlt(localctx, 16);
2019-09-25 16:53:32 +08:00
this.state = 438;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 439;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 440;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 442;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 441;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
2019-09-25 16:53:32 +08:00
this.state = 444;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SET);
2019-09-25 16:53:32 +08:00
this.state = 445;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SERDE);
2019-09-25 16:53:32 +08:00
this.state = 446;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
2019-09-25 16:53:32 +08:00
this.state = 450;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.WITH) {
2019-09-25 16:53:32 +08:00
this.state = 447;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.WITH);
2019-09-25 16:53:32 +08:00
this.state = 448;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SERDEPROPERTIES);
2019-09-25 16:53:32 +08:00
this.state = 449;
2019-09-25 15:43:36 +08:00
this.tablePropertyList();
}
break;
case 17:
localctx = new SetTableSerDeContext(this, localctx);
this.enterOuterAlt(localctx, 17);
2019-09-25 16:53:32 +08:00
this.state = 452;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 453;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 454;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 456;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 455;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
2019-09-25 16:53:32 +08:00
this.state = 458;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SET);
2019-09-25 16:53:32 +08:00
this.state = 459;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SERDEPROPERTIES);
2019-09-25 16:53:32 +08:00
this.state = 460;
2019-09-25 15:43:36 +08:00
this.tablePropertyList();
break;
case 18:
localctx = new AddTablePartitionContext(this, localctx);
this.enterOuterAlt(localctx, 18);
2019-09-25 16:53:32 +08:00
this.state = 462;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 463;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 464;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 465;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ADD);
2019-09-25 16:53:32 +08:00
this.state = 469;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.IF) {
2019-09-25 16:53:32 +08:00
this.state = 466;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 467;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
2019-09-25 16:53:32 +08:00
this.state = 468;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
2019-09-25 16:53:32 +08:00
this.state = 472;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
do {
this.state = 471;
2019-09-25 16:53:32 +08:00
this.partitionSpecLocation();
this.state = 474;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
} while (_la === sqlParser.PARTITION);
break;
case 19:
localctx = new AddTablePartitionContext(this, localctx);
this.enterOuterAlt(localctx, 19);
2019-09-25 16:53:32 +08:00
this.state = 476;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 477;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.VIEW);
2019-09-25 16:53:32 +08:00
this.state = 478;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 479;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ADD);
2019-09-25 16:53:32 +08:00
this.state = 483;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.IF) {
2019-09-25 16:53:32 +08:00
this.state = 480;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 481;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
2019-09-25 16:53:32 +08:00
this.state = 482;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
2019-09-25 16:53:32 +08:00
this.state = 486;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
do {
this.state = 485;
2019-09-25 16:53:32 +08:00
this.partitionSpec();
this.state = 488;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
} while (_la === sqlParser.PARTITION);
break;
case 20:
localctx = new RenameTablePartitionContext(this, localctx);
this.enterOuterAlt(localctx, 20);
2019-09-25 16:53:32 +08:00
this.state = 490;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 491;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 492;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 493;
2019-09-25 15:43:36 +08:00
localctx.from = this.partitionSpec();
2019-09-25 16:53:32 +08:00
this.state = 494;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.RENAME);
2019-09-25 16:53:32 +08:00
this.state = 495;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TO);
2019-09-25 16:53:32 +08:00
this.state = 496;
2019-09-25 15:43:36 +08:00
localctx.to = this.partitionSpec();
break;
case 21:
localctx = new DropTablePartitionsContext(this, localctx);
this.enterOuterAlt(localctx, 21);
2019-09-25 16:53:32 +08:00
this.state = 498;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 499;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 500;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
this.state = 501;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.DROP);
this.state = 504;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.IF) {
2019-09-25 16:53:32 +08:00
this.state = 502;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 503;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
2019-09-25 16:53:32 +08:00
this.state = 506;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
2019-09-25 16:53:32 +08:00
this.state = 511;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 507;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 508;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
2019-09-25 16:53:32 +08:00
this.state = 513;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 515;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PURGE) {
2019-09-25 16:53:32 +08:00
this.state = 514;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.PURGE);
}
break;
case 22:
localctx = new DropTablePartitionsContext(this, localctx);
this.enterOuterAlt(localctx, 22);
2019-09-25 16:53:32 +08:00
this.state = 517;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 518;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.VIEW);
2019-09-25 16:53:32 +08:00
this.state = 519;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
this.state = 520;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.DROP);
this.state = 523;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.IF) {
2019-09-25 16:53:32 +08:00
this.state = 521;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 522;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
2019-09-25 16:53:32 +08:00
this.state = 525;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
2019-09-25 16:53:32 +08:00
this.state = 530;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 526;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 527;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
2019-09-25 16:53:32 +08:00
this.state = 532;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
break;
case 23:
localctx = new SetTableLocationContext(this, localctx);
this.enterOuterAlt(localctx, 23);
2019-09-25 16:53:32 +08:00
this.state = 533;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 534;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 535;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 537;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 536;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
2019-09-25 16:53:32 +08:00
this.state = 539;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SET);
2019-09-25 16:53:32 +08:00
this.state = 540;
2019-09-25 15:43:36 +08:00
this.locationSpec();
break;
case 24:
localctx = new RecoverPartitionsContext(this, localctx);
this.enterOuterAlt(localctx, 24);
2019-09-25 16:53:32 +08:00
this.state = 542;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 543;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 544;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 545;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.RECOVER);
2019-09-25 16:53:32 +08:00
this.state = 546;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.PARTITIONS);
break;
case 25:
localctx = new DropTableContext(this, localctx);
this.enterOuterAlt(localctx, 25);
2019-09-25 16:53:32 +08:00
this.state = 548;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DROP);
this.state = 549;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.TABLE);
this.state = 552;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 42, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 550;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 551;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
2019-09-25 16:53:32 +08:00
this.state = 554;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 556;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PURGE) {
2019-09-25 16:53:32 +08:00
this.state = 555;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.PURGE);
}
break;
case 26:
localctx = new DropTableContext(this, localctx);
this.enterOuterAlt(localctx, 26);
2019-09-25 16:53:32 +08:00
this.state = 558;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DROP);
this.state = 559;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.VIEW);
this.state = 562;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 44, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 560;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 561;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
2019-09-25 16:53:32 +08:00
this.state = 564;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
break;
case 27:
localctx = new CreateViewContext(this, localctx);
this.enterOuterAlt(localctx, 27);
this.state = 565;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.CREATE);
this.state = 568;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.OR) {
2019-09-25 16:53:32 +08:00
this.state = 566;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OR);
2019-09-25 16:53:32 +08:00
this.state = 567;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.REPLACE);
}
2019-09-25 16:53:32 +08:00
this.state = 574;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.GLOBAL || _la === sqlParser.TEMPORARY) {
2019-09-25 16:53:32 +08:00
this.state = 571;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.GLOBAL) {
2019-09-25 16:53:32 +08:00
this.state = 570;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.GLOBAL);
}
2019-09-25 16:53:32 +08:00
this.state = 573;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TEMPORARY);
}
2019-09-25 16:53:32 +08:00
this.state = 576;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.VIEW);
2019-09-25 16:53:32 +08:00
this.state = 580;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 48, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 577;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 578;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
2019-09-25 16:53:32 +08:00
this.state = 579;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
2019-09-25 16:53:32 +08:00
this.state = 582;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 584;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.T__0) {
2019-09-25 16:53:32 +08:00
this.state = 583;
2019-09-25 15:43:36 +08:00
this.identifierCommentList();
}
2019-09-25 16:53:32 +08:00
this.state = 588;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.COMMENT) {
2019-09-25 16:53:32 +08:00
this.state = 586;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COMMENT);
2019-09-25 16:53:32 +08:00
this.state = 587;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
}
2019-09-25 16:53:32 +08:00
this.state = 593;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITIONED) {
2019-09-25 16:53:32 +08:00
this.state = 590;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.PARTITIONED);
2019-09-25 16:53:32 +08:00
this.state = 591;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ON);
2019-09-25 16:53:32 +08:00
this.state = 592;
2019-09-25 15:43:36 +08:00
this.identifierList();
}
2019-09-25 16:53:32 +08:00
this.state = 597;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.TBLPROPERTIES) {
2019-09-25 16:53:32 +08:00
this.state = 595;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TBLPROPERTIES);
2019-09-25 16:53:32 +08:00
this.state = 596;
2019-09-25 15:43:36 +08:00
this.tablePropertyList();
}
2019-09-25 16:53:32 +08:00
this.state = 599;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
2019-09-25 16:53:32 +08:00
this.state = 600;
2019-09-25 15:43:36 +08:00
this.query();
break;
case 28:
localctx = new CreateTempViewUsingContext(this, localctx);
this.enterOuterAlt(localctx, 28);
this.state = 602;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.CREATE);
this.state = 605;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.OR) {
2019-09-25 16:53:32 +08:00
this.state = 603;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OR);
2019-09-25 16:53:32 +08:00
this.state = 604;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.REPLACE);
}
2019-09-25 16:53:32 +08:00
this.state = 608;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.GLOBAL) {
2019-09-25 16:53:32 +08:00
this.state = 607;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.GLOBAL);
}
2019-09-25 16:53:32 +08:00
this.state = 610;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TEMPORARY);
2019-09-25 16:53:32 +08:00
this.state = 611;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.VIEW);
2019-09-25 16:53:32 +08:00
this.state = 612;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 617;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.T__0) {
2019-09-25 16:53:32 +08:00
this.state = 613;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 614;
2019-09-25 15:43:36 +08:00
this.colTypeList();
2019-09-25 16:53:32 +08:00
this.state = 615;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
}
this.state = 619;
2019-09-25 16:53:32 +08:00
this.tableProvider();
this.state = 622;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.OPTIONS) {
2019-09-25 16:53:32 +08:00
this.state = 620;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OPTIONS);
2019-09-25 16:53:32 +08:00
this.state = 621;
2019-09-25 15:43:36 +08:00
this.tablePropertyList();
}
break;
case 29:
localctx = new AlterViewQueryContext(this, localctx);
this.enterOuterAlt(localctx, 29);
2019-09-25 16:53:32 +08:00
this.state = 624;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 625;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.VIEW);
2019-09-25 16:53:32 +08:00
this.state = 626;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 628;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.AS) {
2019-09-25 16:53:32 +08:00
this.state = 627;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
}
2019-09-25 16:53:32 +08:00
this.state = 630;
2019-09-25 15:43:36 +08:00
this.query();
break;
case 30:
localctx = new CreateFunctionContext(this, localctx);
this.enterOuterAlt(localctx, 30);
this.state = 632;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.CREATE);
this.state = 635;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.OR) {
2019-09-25 16:53:32 +08:00
this.state = 633;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OR);
2019-09-25 16:53:32 +08:00
this.state = 634;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.REPLACE);
}
2019-09-25 16:53:32 +08:00
this.state = 638;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.TEMPORARY) {
2019-09-25 16:53:32 +08:00
this.state = 637;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TEMPORARY);
}
2019-09-25 16:53:32 +08:00
this.state = 640;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FUNCTION);
2019-09-25 16:53:32 +08:00
this.state = 644;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 60, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 641;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 642;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
2019-09-25 16:53:32 +08:00
this.state = 643;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
2019-09-25 16:53:32 +08:00
this.state = 646;
2019-09-25 15:43:36 +08:00
this.qualifiedName();
2019-09-25 16:53:32 +08:00
this.state = 647;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
2019-09-25 16:53:32 +08:00
this.state = 648;
2019-09-25 15:43:36 +08:00
localctx.className = this.match(sqlParser.STRING);
2019-09-25 16:53:32 +08:00
this.state = 658;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.USING) {
2019-09-25 16:53:32 +08:00
this.state = 649;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.USING);
2019-09-25 16:53:32 +08:00
this.state = 650;
2019-09-25 15:43:36 +08:00
this.resource();
2019-09-25 16:53:32 +08:00
this.state = 655;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 651;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 652;
2019-09-25 15:43:36 +08:00
this.resource();
2019-09-25 16:53:32 +08:00
this.state = 657;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
}
break;
case 31:
localctx = new DropFunctionContext(this, localctx);
this.enterOuterAlt(localctx, 31);
2019-09-25 16:53:32 +08:00
this.state = 660;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DROP);
2019-09-25 16:53:32 +08:00
this.state = 662;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.TEMPORARY) {
2019-09-25 16:53:32 +08:00
this.state = 661;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TEMPORARY);
}
this.state = 664;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.FUNCTION);
this.state = 667;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 64, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 665;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 666;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
2019-09-25 16:53:32 +08:00
this.state = 669;
2019-09-25 15:43:36 +08:00
this.qualifiedName();
break;
case 32:
localctx = new ExplainContext(this, localctx);
this.enterOuterAlt(localctx, 32);
2019-09-25 16:53:32 +08:00
this.state = 670;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXPLAIN);
2019-09-25 16:53:32 +08:00
this.state = 672;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (((((_la - 90)) & ~0x1f) == 0 && ((1 << (_la - 90)) & ((1 << (sqlParser.LOGICAL - 90)) | (1 << (sqlParser.CODEGEN - 90)) | (1 << (sqlParser.COST - 90)))) !== 0) || _la === sqlParser.EXTENDED || _la === sqlParser.FORMATTED) {
2019-09-25 16:53:32 +08:00
this.state = 671;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(((((_la - 90)) & ~0x1f) == 0 && ((1 << (_la - 90)) & ((1 << (sqlParser.LOGICAL - 90)) | (1 << (sqlParser.CODEGEN - 90)) | (1 << (sqlParser.COST - 90)))) !== 0) || _la === sqlParser.EXTENDED || _la === sqlParser.FORMATTED)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
}
2019-09-25 16:53:32 +08:00
this.state = 674;
2019-09-25 15:43:36 +08:00
this.statement();
break;
case 33:
localctx = new ShowTablesContext(this, localctx);
this.enterOuterAlt(localctx, 33);
2019-09-25 16:53:32 +08:00
this.state = 675;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SHOW);
this.state = 676;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.TABLES);
this.state = 679;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.FROM || _la === sqlParser.IN) {
2019-09-25 16:53:32 +08:00
this.state = 677;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.FROM || _la === sqlParser.IN)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 678;
2019-09-25 15:43:36 +08:00
localctx.db = this.identifier();
}
2019-09-25 16:53:32 +08:00
this.state = 685;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.LIKE || _la === sqlParser.STRING) {
2019-09-25 16:53:32 +08:00
this.state = 682;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.LIKE) {
2019-09-25 16:53:32 +08:00
this.state = 681;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LIKE);
}
2019-09-25 16:53:32 +08:00
this.state = 684;
2019-09-25 15:43:36 +08:00
localctx.pattern = this.match(sqlParser.STRING);
}
break;
case 34:
localctx = new ShowTableContext(this, localctx);
this.enterOuterAlt(localctx, 34);
2019-09-25 16:53:32 +08:00
this.state = 687;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 688;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
this.state = 689;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.EXTENDED);
this.state = 692;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.FROM || _la === sqlParser.IN) {
2019-09-25 16:53:32 +08:00
this.state = 690;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.FROM || _la === sqlParser.IN)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 691;
2019-09-25 15:43:36 +08:00
localctx.db = this.identifier();
}
2019-09-25 16:53:32 +08:00
this.state = 694;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LIKE);
2019-09-25 16:53:32 +08:00
this.state = 695;
2019-09-25 15:43:36 +08:00
localctx.pattern = this.match(sqlParser.STRING);
2019-09-25 16:53:32 +08:00
this.state = 697;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 696;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
break;
case 35:
localctx = new ShowDatabasesContext(this, localctx);
this.enterOuterAlt(localctx, 35);
2019-09-25 16:53:32 +08:00
this.state = 699;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 700;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DATABASES);
2019-09-25 16:53:32 +08:00
this.state = 705;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.LIKE || _la === sqlParser.STRING) {
2019-09-25 16:53:32 +08:00
this.state = 702;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.LIKE) {
2019-09-25 16:53:32 +08:00
this.state = 701;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LIKE);
}
2019-09-25 16:53:32 +08:00
this.state = 704;
2019-09-25 15:43:36 +08:00
localctx.pattern = this.match(sqlParser.STRING);
}
break;
case 36:
localctx = new ShowTblPropertiesContext(this, localctx);
this.enterOuterAlt(localctx, 36);
2019-09-25 16:53:32 +08:00
this.state = 707;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 708;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TBLPROPERTIES);
2019-09-25 16:53:32 +08:00
this.state = 709;
2019-09-25 15:43:36 +08:00
localctx.table = this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 714;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.T__0) {
2019-09-25 16:53:32 +08:00
this.state = 710;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 711;
2019-09-25 15:43:36 +08:00
localctx.key = this.tablePropertyKey();
2019-09-25 16:53:32 +08:00
this.state = 712;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
}
break;
case 37:
localctx = new ShowColumnsContext(this, localctx);
this.enterOuterAlt(localctx, 37);
2019-09-25 16:53:32 +08:00
this.state = 716;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 717;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COLUMNS);
2019-09-25 16:53:32 +08:00
this.state = 718;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.FROM || _la === sqlParser.IN)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
this.state = 719;
2019-09-25 16:53:32 +08:00
this.tableIdentifier();
this.state = 722;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.FROM || _la === sqlParser.IN) {
2019-09-25 16:53:32 +08:00
this.state = 720;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.FROM || _la === sqlParser.IN)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 721;
2019-09-25 15:43:36 +08:00
localctx.db = this.identifier();
}
break;
case 38:
localctx = new ShowPartitionsContext(this, localctx);
this.enterOuterAlt(localctx, 38);
2019-09-25 16:53:32 +08:00
this.state = 724;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 725;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.PARTITIONS);
2019-09-25 16:53:32 +08:00
this.state = 726;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 728;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 727;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
break;
case 39:
localctx = new ShowFunctionsContext(this, localctx);
this.enterOuterAlt(localctx, 39);
2019-09-25 16:53:32 +08:00
this.state = 730;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 732;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 76, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 731;
2019-09-25 15:43:36 +08:00
this.identifier();
}
2019-09-25 16:53:32 +08:00
this.state = 734;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FUNCTIONS);
2019-09-25 16:53:32 +08:00
this.state = 742;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER) | (1 << sqlParser.HAVING) | (1 << sqlParser.LIMIT) | (1 << sqlParser.AT) | (1 << sqlParser.OR) | (1 << sqlParser.AND) | (1 << sqlParser.IN))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)) | (1 << (sqlParser.RIGHT - 32)) | (1 << (sqlParser.FULL - 32)) | (1 << (sqlParser.NATURAL - 32)) | (1 << (sqlParser.ON - 32)) | (1 << (sqlParser.PIVOT - 32)) | (1 << (sqlParser.LATERAL - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.VALUES - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)) | (1 << (sqlParser.LOGICAL - 64)) | (1 << (sqlParser.CODEGEN - 64)) | (1 << (sqlParser.COST - 64)) | (1 << (sqlParser.CAST - 64)) | (1 << (sqlParser.SHOW - 64)) | (1 << (sqlParser.TABLES - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)) | (1 << (sqlParser.MACRO - 96)) | (1 << (sqlParser.IGNORE - 96)) | (1 << (sqlParser.BOTH - 96)) | (1 << (sqlParser.LEADING - 96)) | (1 << (sqlParser.TRAILING - 96)) | (1 << (sqlParser.IF - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlPar
2019-09-25 16:53:32 +08:00
this.state = 736;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 77, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 735;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LIKE);
}
2019-09-25 16:53:32 +08:00
this.state = 740;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.SELECT:
case sqlParser.FROM:
case sqlParser.ADD:
case sqlParser.AS:
case sqlParser.ALL:
case sqlParser.ANY:
case sqlParser.DISTINCT:
case sqlParser.WHERE:
case sqlParser.GROUP:
case sqlParser.BY:
case sqlParser.GROUPING:
case sqlParser.SETS:
case sqlParser.CUBE:
case sqlParser.ROLLUP:
case sqlParser.ORDER:
case sqlParser.HAVING:
case sqlParser.LIMIT:
case sqlParser.AT:
case sqlParser.OR:
case sqlParser.AND:
case sqlParser.IN:
case sqlParser.NOT:
case sqlParser.NO:
case sqlParser.EXISTS:
case sqlParser.BETWEEN:
case sqlParser.LIKE:
case sqlParser.RLIKE:
case sqlParser.IS:
case sqlParser.NULL:
case sqlParser.TRUE:
case sqlParser.FALSE:
case sqlParser.NULLS:
case sqlParser.ASC:
case sqlParser.DESC:
case sqlParser.FOR:
case sqlParser.INTERVAL:
case sqlParser.CASE:
case sqlParser.WHEN:
case sqlParser.THEN:
case sqlParser.ELSE:
case sqlParser.END:
case sqlParser.JOIN:
case sqlParser.CROSS:
case sqlParser.OUTER:
case sqlParser.INNER:
case sqlParser.LEFT:
case sqlParser.SEMI:
case sqlParser.RIGHT:
case sqlParser.FULL:
case sqlParser.NATURAL:
case sqlParser.ON:
case sqlParser.PIVOT:
case sqlParser.LATERAL:
case sqlParser.WINDOW:
case sqlParser.OVER:
case sqlParser.PARTITION:
case sqlParser.RANGE:
case sqlParser.ROWS:
case sqlParser.UNBOUNDED:
case sqlParser.PRECEDING:
case sqlParser.FOLLOWING:
case sqlParser.CURRENT:
case sqlParser.FIRST:
case sqlParser.AFTER:
case sqlParser.LAST:
case sqlParser.ROW:
case sqlParser.WITH:
case sqlParser.VALUES:
case sqlParser.CREATE:
case sqlParser.TABLE:
case sqlParser.DIRECTORY:
case sqlParser.VIEW:
case sqlParser.REPLACE:
case sqlParser.INSERT:
case sqlParser.DELETE:
case sqlParser.INTO:
case sqlParser.DESCRIBE:
case sqlParser.EXPLAIN:
case sqlParser.FORMAT:
case sqlParser.LOGICAL:
case sqlParser.CODEGEN:
case sqlParser.COST:
case sqlParser.CAST:
case sqlParser.SHOW:
case sqlParser.TABLES:
case sqlParser.COLUMNS:
case sqlParser.COLUMN:
case sqlParser.USE:
case sqlParser.PARTITIONS:
case sqlParser.FUNCTIONS:
case sqlParser.DROP:
case sqlParser.UNION:
case sqlParser.EXCEPT:
case sqlParser.SETMINUS:
case sqlParser.INTERSECT:
case sqlParser.TO:
case sqlParser.TABLESAMPLE:
case sqlParser.STRATIFY:
case sqlParser.ALTER:
case sqlParser.RENAME:
case sqlParser.ARRAY:
case sqlParser.MAP:
case sqlParser.STRUCT:
case sqlParser.COMMENT:
case sqlParser.SET:
case sqlParser.RESET:
case sqlParser.DATA:
case sqlParser.START:
case sqlParser.TRANSACTION:
case sqlParser.COMMIT:
case sqlParser.ROLLBACK:
case sqlParser.MACRO:
case sqlParser.IGNORE:
case sqlParser.BOTH:
case sqlParser.LEADING:
case sqlParser.TRAILING:
case sqlParser.IF:
case sqlParser.POSITION:
case sqlParser.EXTRACT:
case sqlParser.DIV:
case sqlParser.PERCENTLIT:
case sqlParser.BUCKET:
case sqlParser.OUT:
case sqlParser.OF:
case sqlParser.SORT:
case sqlParser.CLUSTER:
case sqlParser.DISTRIBUTE:
case sqlParser.OVERWRITE:
case sqlParser.TRANSFORM:
case sqlParser.REDUCE:
case sqlParser.SERDE:
case sqlParser.SERDEPROPERTIES:
case sqlParser.RECORDREADER:
case sqlParser.RECORDWRITER:
case sqlParser.DELIMITED:
case sqlParser.FIELDS:
case sqlParser.TERMINATED:
case sqlParser.COLLECTION:
case sqlParser.ITEMS:
case sqlParser.KEYS:
case sqlParser.ESCAPED:
case sqlParser.LINES:
case sqlParser.SEPARATED:
case sqlParser.FUNCTION:
case sqlParser.EXTENDED:
case sqlParser.REFRESH:
case sqlParser.CLEAR:
case sqlParser.CACHE:
case sqlParser.UNCACHE:
case sqlParser.LAZY:
case sqlParser.FORMATTED:
case sqlParser.GLOBAL:
case sqlParser.TEMPORARY:
case sqlParser.OPTIONS:
case sqlParser.UNSET:
case sqlParser.TBLPROPERTIES:
case sqlParser.DBPROPERTIES:
case sqlParser.BUCKETS:
case sqlParser.SKEWED:
case sqlParser.STORED:
case sqlParser.DIRECTORIES:
case sqlParser.LOCATION:
case sqlParser.EXCHANGE:
case sqlParser.ARCHIVE:
case sqlParser.UNARCHIVE:
case sqlParser.FILEFORMAT:
case sqlParser.TOUCH:
case sqlParser.COMPACT:
case sqlParser.CONCATENATE:
case sqlParser.CHANGE:
case sqlParser.CASCADE:
case sqlParser.RESTRICT:
case sqlParser.CLUSTERED:
case sqlParser.SORTED:
case sqlParser.PURGE:
case sqlParser.INPUTFORMAT:
case sqlParser.OUTPUTFORMAT:
case sqlParser.DATABASE:
case sqlParser.DATABASES:
case sqlParser.DFS:
case sqlParser.TRUNCATE:
case sqlParser.ANALYZE:
case sqlParser.COMPUTE:
case sqlParser.LIST:
case sqlParser.STATISTICS:
case sqlParser.PARTITIONED:
case sqlParser.EXTERNAL:
case sqlParser.DEFINED:
case sqlParser.REVOKE:
case sqlParser.GRANT:
case sqlParser.LOCK:
case sqlParser.UNLOCK:
case sqlParser.MSCK:
case sqlParser.REPAIR:
case sqlParser.RECOVER:
case sqlParser.EXPORT:
case sqlParser.IMPORT:
case sqlParser.LOAD:
case sqlParser.ROLE:
case sqlParser.ROLES:
case sqlParser.COMPACTIONS:
case sqlParser.PRINCIPALS:
case sqlParser.TRANSACTIONS:
case sqlParser.INDEX:
case sqlParser.INDEXES:
case sqlParser.LOCKS:
case sqlParser.OPTION:
case sqlParser.ANTI:
case sqlParser.LOCAL:
case sqlParser.INPATH:
case sqlParser.IDENTIFIER:
case sqlParser.BACKQUOTED_IDENTIFIER:
2019-09-25 16:53:32 +08:00
this.state = 738;
2019-09-25 15:43:36 +08:00
this.qualifiedName();
break;
case sqlParser.STRING:
2019-09-25 16:53:32 +08:00
this.state = 739;
2019-09-25 15:43:36 +08:00
localctx.pattern = this.match(sqlParser.STRING);
break;
default:
throw new antlr4.error.NoViableAltException(this);
}
}
break;
case 40:
localctx = new ShowCreateTableContext(this, localctx);
this.enterOuterAlt(localctx, 40);
2019-09-25 16:53:32 +08:00
this.state = 744;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 745;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CREATE);
2019-09-25 16:53:32 +08:00
this.state = 746;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 747;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
break;
case 41:
localctx = new DescribeFunctionContext(this, localctx);
this.enterOuterAlt(localctx, 41);
2019-09-25 16:53:32 +08:00
this.state = 748;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.DESC || _la === sqlParser.DESCRIBE)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 749;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FUNCTION);
2019-09-25 16:53:32 +08:00
this.state = 751;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 80, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 750;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXTENDED);
}
2019-09-25 16:53:32 +08:00
this.state = 753;
2019-09-25 15:43:36 +08:00
this.describeFuncName();
break;
case 42:
localctx = new DescribeDatabaseContext(this, localctx);
this.enterOuterAlt(localctx, 42);
2019-09-25 16:53:32 +08:00
this.state = 754;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.DESC || _la === sqlParser.DESCRIBE)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 755;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DATABASE);
2019-09-25 16:53:32 +08:00
this.state = 757;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 81, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 756;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXTENDED);
}
2019-09-25 16:53:32 +08:00
this.state = 759;
2019-09-25 15:43:36 +08:00
this.identifier();
break;
case 43:
localctx = new DescribeTableContext(this, localctx);
this.enterOuterAlt(localctx, 43);
2019-09-25 16:53:32 +08:00
this.state = 760;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.DESC || _la === sqlParser.DESCRIBE)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 762;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 82, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 761;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
}
2019-09-25 16:53:32 +08:00
this.state = 765;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 83, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 764;
2019-09-25 15:43:36 +08:00
localctx.option = this._input.LT(1);
_la = this._input.LA(1);
if (!(_la === sqlParser.EXTENDED || _la === sqlParser.FORMATTED)) {
localctx.option = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
}
2019-09-25 16:53:32 +08:00
this.state = 767;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 769;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 84, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 768;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
2019-09-25 16:53:32 +08:00
this.state = 772;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER) | (1 << sqlParser.HAVING) | (1 << sqlParser.LIMIT) | (1 << sqlParser.AT) | (1 << sqlParser.OR) | (1 << sqlParser.AND) | (1 << sqlParser.IN))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)) | (1 << (sqlParser.RIGHT - 32)) | (1 << (sqlParser.FULL - 32)) | (1 << (sqlParser.NATURAL - 32)) | (1 << (sqlParser.ON - 32)) | (1 << (sqlParser.PIVOT - 32)) | (1 << (sqlParser.LATERAL - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.VALUES - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)) | (1 << (sqlParser.LOGICAL - 64)) | (1 << (sqlParser.CODEGEN - 64)) | (1 << (sqlParser.COST - 64)) | (1 << (sqlParser.CAST - 64)) | (1 << (sqlParser.SHOW - 64)) | (1 << (sqlParser.TABLES - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)) | (1 << (sqlParser.MACRO - 96)) | (1 << (sqlParser.IGNORE - 96)) | (1 << (sqlParser.BOTH - 96)) | (1 << (sqlParser.LEADING - 96)) | (1 << (sqlParser.TRAILING - 96)) | (1 << (sqlParser.IF - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlPar
2019-09-25 16:53:32 +08:00
this.state = 771;
2019-09-25 15:43:36 +08:00
this.describeColName();
}
break;
case 44:
localctx = new RefreshTableContext(this, localctx);
this.enterOuterAlt(localctx, 44);
2019-09-25 16:53:32 +08:00
this.state = 774;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.REFRESH);
2019-09-25 16:53:32 +08:00
this.state = 775;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 776;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
break;
case 45:
localctx = new RefreshResourceContext(this, localctx);
this.enterOuterAlt(localctx, 45);
2019-09-25 16:53:32 +08:00
this.state = 777;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.REFRESH);
2019-09-25 16:53:32 +08:00
this.state = 785;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 87, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
2019-09-25 16:53:32 +08:00
this.state = 778;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
break;
case 2:
2019-09-25 16:53:32 +08:00
this.state = 782;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 86, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 1 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1 + 1) {
2019-09-25 16:53:32 +08:00
this.state = 779;
2019-09-25 15:43:36 +08:00
this.matchWildcard();
}
2019-09-25 16:53:32 +08:00
this.state = 784;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 86, this._ctx);
2019-09-25 15:43:36 +08:00
}
break;
}
break;
case 46:
localctx = new CacheTableContext(this, localctx);
this.enterOuterAlt(localctx, 46);
2019-09-25 16:53:32 +08:00
this.state = 787;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CACHE);
2019-09-25 16:53:32 +08:00
this.state = 789;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.LAZY) {
2019-09-25 16:53:32 +08:00
this.state = 788;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LAZY);
}
2019-09-25 16:53:32 +08:00
this.state = 791;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
this.state = 792;
2019-09-25 16:53:32 +08:00
this.tableIdentifier();
this.state = 795;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.OPTIONS) {
2019-09-25 16:53:32 +08:00
this.state = 793;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OPTIONS);
2019-09-25 16:53:32 +08:00
this.state = 794;
2019-09-25 15:43:36 +08:00
localctx.options = this.tablePropertyList();
}
2019-09-25 16:53:32 +08:00
this.state = 801;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.AS))) !== 0) || ((((_la - 77)) & ~0x1f) == 0 && ((1 << (_la - 77)) & ((1 << (sqlParser.WITH - 77)) | (1 << (sqlParser.VALUES - 77)) | (1 << (sqlParser.TABLE - 77)) | (1 << (sqlParser.INSERT - 77)))) !== 0) || _la === sqlParser.MAP || _la === sqlParser.REDUCE) {
2019-09-25 16:53:32 +08:00
this.state = 798;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.AS) {
2019-09-25 16:53:32 +08:00
this.state = 797;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
}
2019-09-25 16:53:32 +08:00
this.state = 800;
2019-09-25 15:43:36 +08:00
this.query();
}
break;
case 47:
localctx = new UncacheTableContext(this, localctx);
this.enterOuterAlt(localctx, 47);
2019-09-25 16:53:32 +08:00
this.state = 803;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.UNCACHE);
this.state = 804;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.TABLE);
this.state = 807;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 92, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 805;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 806;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
2019-09-25 16:53:32 +08:00
this.state = 809;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
break;
case 48:
localctx = new ClearCacheContext(this, localctx);
this.enterOuterAlt(localctx, 48);
2019-09-25 16:53:32 +08:00
this.state = 810;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CLEAR);
2019-09-25 16:53:32 +08:00
this.state = 811;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CACHE);
break;
case 49:
localctx = new LoadDataContext(this, localctx);
this.enterOuterAlt(localctx, 49);
2019-09-25 16:53:32 +08:00
this.state = 812;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LOAD);
2019-09-25 16:53:32 +08:00
this.state = 813;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DATA);
2019-09-25 16:53:32 +08:00
this.state = 815;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.LOCAL) {
2019-09-25 16:53:32 +08:00
this.state = 814;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LOCAL);
}
2019-09-25 16:53:32 +08:00
this.state = 817;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INPATH);
2019-09-25 16:53:32 +08:00
this.state = 818;
2019-09-25 15:43:36 +08:00
localctx.path = this.match(sqlParser.STRING);
2019-09-25 16:53:32 +08:00
this.state = 820;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.OVERWRITE) {
2019-09-25 16:53:32 +08:00
this.state = 819;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OVERWRITE);
}
2019-09-25 16:53:32 +08:00
this.state = 822;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INTO);
2019-09-25 16:53:32 +08:00
this.state = 823;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 824;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 826;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 825;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
break;
case 50:
localctx = new TruncateTableContext(this, localctx);
this.enterOuterAlt(localctx, 50);
2019-09-25 16:53:32 +08:00
this.state = 828;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TRUNCATE);
2019-09-25 16:53:32 +08:00
this.state = 829;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 830;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 832;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 831;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
break;
case 51:
localctx = new RepairTableContext(this, localctx);
this.enterOuterAlt(localctx, 51);
2019-09-25 16:53:32 +08:00
this.state = 834;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.MSCK);
2019-09-25 16:53:32 +08:00
this.state = 835;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.REPAIR);
2019-09-25 16:53:32 +08:00
this.state = 836;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 837;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
break;
case 52:
localctx = new ManageResourceContext(this, localctx);
this.enterOuterAlt(localctx, 52);
2019-09-25 16:53:32 +08:00
this.state = 838;
2019-09-25 15:43:36 +08:00
localctx.op = this._input.LT(1);
_la = this._input.LA(1);
if (!(_la === sqlParser.ADD || _la === sqlParser.LIST)) {
localctx.op = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 839;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 843;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 97, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 1 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1 + 1) {
2019-09-25 16:53:32 +08:00
this.state = 840;
2019-09-25 15:43:36 +08:00
this.matchWildcard();
}
2019-09-25 16:53:32 +08:00
this.state = 845;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 97, this._ctx);
2019-09-25 15:43:36 +08:00
}
break;
case 53:
localctx = new FailNativeCommandContext(this, localctx);
this.enterOuterAlt(localctx, 53);
2019-09-25 16:53:32 +08:00
this.state = 846;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SET);
2019-09-25 16:53:32 +08:00
this.state = 847;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ROLE);
2019-09-25 16:53:32 +08:00
this.state = 851;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 98, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 1 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1 + 1) {
2019-09-25 16:53:32 +08:00
this.state = 848;
2019-09-25 15:43:36 +08:00
this.matchWildcard();
}
2019-09-25 16:53:32 +08:00
this.state = 853;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 98, this._ctx);
2019-09-25 15:43:36 +08:00
}
break;
case 54:
localctx = new SetConfigurationContext(this, localctx);
this.enterOuterAlt(localctx, 54);
2019-09-25 16:53:32 +08:00
this.state = 854;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SET);
2019-09-25 16:53:32 +08:00
this.state = 858;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 99, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 1 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1 + 1) {
2019-09-25 16:53:32 +08:00
this.state = 855;
2019-09-25 15:43:36 +08:00
this.matchWildcard();
}
2019-09-25 16:53:32 +08:00
this.state = 860;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 99, this._ctx);
2019-09-25 15:43:36 +08:00
}
break;
case 55:
localctx = new ResetConfigurationContext(this, localctx);
this.enterOuterAlt(localctx, 55);
2019-09-25 16:53:32 +08:00
this.state = 861;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.RESET);
break;
case 56:
localctx = new FailNativeCommandContext(this, localctx);
this.enterOuterAlt(localctx, 56);
2019-09-25 16:53:32 +08:00
this.state = 862;
2019-09-25 15:43:36 +08:00
this.unsupportedHiveNativeCommands();
2019-09-25 16:53:32 +08:00
this.state = 866;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 100, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 1 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1 + 1) {
2019-09-25 16:53:32 +08:00
this.state = 863;
2019-09-25 15:43:36 +08:00
this.matchWildcard();
}
2019-09-25 16:53:32 +08:00
this.state = 868;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 100, this._ctx);
2019-09-25 15:43:36 +08:00
}
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 UnsupportedHiveNativeCommandsContext(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 = sqlParser.RULE_unsupportedHiveNativeCommands;
this.kw1 = null; // Token
this.kw2 = null; // Token
this.kw3 = null; // Token
this.kw4 = null; // Token
this.kw5 = null; // Token
this.kw6 = null; // Token
return this;
}
UnsupportedHiveNativeCommandsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UnsupportedHiveNativeCommandsContext.prototype.constructor = UnsupportedHiveNativeCommandsContext;
UnsupportedHiveNativeCommandsContext.prototype.CREATE = function () {
return this.getToken(sqlParser.CREATE, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.ROLE = function () {
return this.getToken(sqlParser.ROLE, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.DROP = function () {
return this.getToken(sqlParser.DROP, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.GRANT = function () {
return this.getToken(sqlParser.GRANT, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.REVOKE = function () {
return this.getToken(sqlParser.REVOKE, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.SHOW = function () {
return this.getToken(sqlParser.SHOW, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.PRINCIPALS = function () {
return this.getToken(sqlParser.PRINCIPALS, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.ROLES = function () {
return this.getToken(sqlParser.ROLES, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.CURRENT = function () {
return this.getToken(sqlParser.CURRENT, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.EXPORT = function () {
return this.getToken(sqlParser.EXPORT, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.IMPORT = function () {
return this.getToken(sqlParser.IMPORT, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.COMPACTIONS = function () {
return this.getToken(sqlParser.COMPACTIONS, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.TRANSACTIONS = function () {
return this.getToken(sqlParser.TRANSACTIONS, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.INDEXES = function () {
return this.getToken(sqlParser.INDEXES, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.LOCKS = function () {
return this.getToken(sqlParser.LOCKS, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.INDEX = function () {
return this.getToken(sqlParser.INDEX, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.LOCK = function () {
return this.getToken(sqlParser.LOCK, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.DATABASE = function () {
return this.getToken(sqlParser.DATABASE, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.UNLOCK = function () {
return this.getToken(sqlParser.UNLOCK, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.TEMPORARY = function () {
return this.getToken(sqlParser.TEMPORARY, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.MACRO = function () {
return this.getToken(sqlParser.MACRO, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.NOT = function () {
return this.getToken(sqlParser.NOT, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.CLUSTERED = function () {
return this.getToken(sqlParser.CLUSTERED, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.BY = function () {
return this.getToken(sqlParser.BY, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.SORTED = function () {
return this.getToken(sqlParser.SORTED, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.SKEWED = function () {
return this.getToken(sqlParser.SKEWED, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.STORED = function () {
return this.getToken(sqlParser.STORED, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.DIRECTORIES = function () {
return this.getToken(sqlParser.DIRECTORIES, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.SET = function () {
return this.getToken(sqlParser.SET, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.LOCATION = function () {
return this.getToken(sqlParser.LOCATION, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.EXCHANGE = function () {
return this.getToken(sqlParser.EXCHANGE, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.PARTITION = function () {
return this.getToken(sqlParser.PARTITION, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.ARCHIVE = function () {
return this.getToken(sqlParser.ARCHIVE, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.UNARCHIVE = function () {
return this.getToken(sqlParser.UNARCHIVE, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.TOUCH = function () {
return this.getToken(sqlParser.TOUCH, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.COMPACT = function () {
return this.getToken(sqlParser.COMPACT, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.partitionSpec = function () {
return this.getTypedRuleContext(PartitionSpecContext, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.CONCATENATE = function () {
return this.getToken(sqlParser.CONCATENATE, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.FILEFORMAT = function () {
return this.getToken(sqlParser.FILEFORMAT, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.REPLACE = function () {
return this.getToken(sqlParser.REPLACE, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.COLUMNS = function () {
return this.getToken(sqlParser.COLUMNS, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.START = function () {
return this.getToken(sqlParser.START, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.TRANSACTION = function () {
return this.getToken(sqlParser.TRANSACTION, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.COMMIT = function () {
return this.getToken(sqlParser.COMMIT, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.ROLLBACK = function () {
return this.getToken(sqlParser.ROLLBACK, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.DFS = function () {
return this.getToken(sqlParser.DFS, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.DELETE = function () {
return this.getToken(sqlParser.DELETE, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.FROM = function () {
return this.getToken(sqlParser.FROM, 0);
};
UnsupportedHiveNativeCommandsContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterUnsupportedHiveNativeCommands(this);
}
};
UnsupportedHiveNativeCommandsContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitUnsupportedHiveNativeCommands(this);
}
};
UnsupportedHiveNativeCommandsContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitUnsupportedHiveNativeCommands(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.UnsupportedHiveNativeCommandsContext = UnsupportedHiveNativeCommandsContext;
sqlParser.prototype.unsupportedHiveNativeCommands = function () {
var localctx = new UnsupportedHiveNativeCommandsContext(this, this._ctx, this.state);
this.enterRule(localctx, 14, sqlParser.RULE_unsupportedHiveNativeCommands);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 1041;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 109, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 871;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.CREATE);
2019-09-25 16:53:32 +08:00
this.state = 872;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.ROLE);
break;
case 2:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 873;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.DROP);
2019-09-25 16:53:32 +08:00
this.state = 874;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.ROLE);
break;
case 3:
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 875;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.GRANT);
2019-09-25 16:53:32 +08:00
this.state = 877;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 102, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 876;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.ROLE);
}
break;
case 4:
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 879;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.REVOKE);
2019-09-25 16:53:32 +08:00
this.state = 881;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 103, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 880;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.ROLE);
}
break;
case 5:
this.enterOuterAlt(localctx, 5);
2019-09-25 16:53:32 +08:00
this.state = 883;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 884;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.GRANT);
break;
case 6:
this.enterOuterAlt(localctx, 6);
2019-09-25 16:53:32 +08:00
this.state = 885;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 886;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.ROLE);
2019-09-25 16:53:32 +08:00
this.state = 888;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 104, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 887;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.GRANT);
}
break;
case 7:
this.enterOuterAlt(localctx, 7);
2019-09-25 16:53:32 +08:00
this.state = 890;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 891;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.PRINCIPALS);
break;
case 8:
this.enterOuterAlt(localctx, 8);
2019-09-25 16:53:32 +08:00
this.state = 892;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 893;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.ROLES);
break;
case 9:
this.enterOuterAlt(localctx, 9);
2019-09-25 16:53:32 +08:00
this.state = 894;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 895;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.CURRENT);
2019-09-25 16:53:32 +08:00
this.state = 896;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.ROLES);
break;
case 10:
this.enterOuterAlt(localctx, 10);
2019-09-25 16:53:32 +08:00
this.state = 897;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.EXPORT);
2019-09-25 16:53:32 +08:00
this.state = 898;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
break;
case 11:
this.enterOuterAlt(localctx, 11);
2019-09-25 16:53:32 +08:00
this.state = 899;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.IMPORT);
2019-09-25 16:53:32 +08:00
this.state = 900;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
break;
case 12:
this.enterOuterAlt(localctx, 12);
2019-09-25 16:53:32 +08:00
this.state = 901;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 902;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.COMPACTIONS);
break;
case 13:
this.enterOuterAlt(localctx, 13);
2019-09-25 16:53:32 +08:00
this.state = 903;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 904;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.CREATE);
2019-09-25 16:53:32 +08:00
this.state = 905;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.TABLE);
break;
case 14:
this.enterOuterAlt(localctx, 14);
2019-09-25 16:53:32 +08:00
this.state = 906;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 907;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TRANSACTIONS);
break;
case 15:
this.enterOuterAlt(localctx, 15);
2019-09-25 16:53:32 +08:00
this.state = 908;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 909;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.INDEXES);
break;
case 16:
this.enterOuterAlt(localctx, 16);
2019-09-25 16:53:32 +08:00
this.state = 910;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.SHOW);
2019-09-25 16:53:32 +08:00
this.state = 911;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.LOCKS);
break;
case 17:
this.enterOuterAlt(localctx, 17);
2019-09-25 16:53:32 +08:00
this.state = 912;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.CREATE);
2019-09-25 16:53:32 +08:00
this.state = 913;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.INDEX);
break;
case 18:
this.enterOuterAlt(localctx, 18);
2019-09-25 16:53:32 +08:00
this.state = 914;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.DROP);
2019-09-25 16:53:32 +08:00
this.state = 915;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.INDEX);
break;
case 19:
this.enterOuterAlt(localctx, 19);
2019-09-25 16:53:32 +08:00
this.state = 916;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 917;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.INDEX);
break;
case 20:
this.enterOuterAlt(localctx, 20);
2019-09-25 16:53:32 +08:00
this.state = 918;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.LOCK);
2019-09-25 16:53:32 +08:00
this.state = 919;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
break;
case 21:
this.enterOuterAlt(localctx, 21);
2019-09-25 16:53:32 +08:00
this.state = 920;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.LOCK);
2019-09-25 16:53:32 +08:00
this.state = 921;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.DATABASE);
break;
case 22:
this.enterOuterAlt(localctx, 22);
2019-09-25 16:53:32 +08:00
this.state = 922;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.UNLOCK);
2019-09-25 16:53:32 +08:00
this.state = 923;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
break;
case 23:
this.enterOuterAlt(localctx, 23);
2019-09-25 16:53:32 +08:00
this.state = 924;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.UNLOCK);
2019-09-25 16:53:32 +08:00
this.state = 925;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.DATABASE);
break;
case 24:
this.enterOuterAlt(localctx, 24);
2019-09-25 16:53:32 +08:00
this.state = 926;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.CREATE);
2019-09-25 16:53:32 +08:00
this.state = 927;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TEMPORARY);
2019-09-25 16:53:32 +08:00
this.state = 928;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.MACRO);
break;
case 25:
this.enterOuterAlt(localctx, 25);
2019-09-25 16:53:32 +08:00
this.state = 929;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.DROP);
2019-09-25 16:53:32 +08:00
this.state = 930;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TEMPORARY);
2019-09-25 16:53:32 +08:00
this.state = 931;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.MACRO);
break;
case 26:
this.enterOuterAlt(localctx, 26);
2019-09-25 16:53:32 +08:00
this.state = 932;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 933;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 934;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 935;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.NOT);
2019-09-25 16:53:32 +08:00
this.state = 936;
2019-09-25 15:43:36 +08:00
localctx.kw4 = this.match(sqlParser.CLUSTERED);
break;
case 27:
this.enterOuterAlt(localctx, 27);
2019-09-25 16:53:32 +08:00
this.state = 938;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 939;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 940;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 941;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.CLUSTERED);
2019-09-25 16:53:32 +08:00
this.state = 942;
2019-09-25 15:43:36 +08:00
localctx.kw4 = this.match(sqlParser.BY);
break;
case 28:
this.enterOuterAlt(localctx, 28);
2019-09-25 16:53:32 +08:00
this.state = 944;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 945;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 946;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 947;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.NOT);
2019-09-25 16:53:32 +08:00
this.state = 948;
2019-09-25 15:43:36 +08:00
localctx.kw4 = this.match(sqlParser.SORTED);
break;
case 29:
this.enterOuterAlt(localctx, 29);
2019-09-25 16:53:32 +08:00
this.state = 950;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 951;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 952;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 953;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.SKEWED);
2019-09-25 16:53:32 +08:00
this.state = 954;
2019-09-25 15:43:36 +08:00
localctx.kw4 = this.match(sqlParser.BY);
break;
case 30:
this.enterOuterAlt(localctx, 30);
2019-09-25 16:53:32 +08:00
this.state = 956;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 957;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 958;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 959;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.NOT);
2019-09-25 16:53:32 +08:00
this.state = 960;
2019-09-25 15:43:36 +08:00
localctx.kw4 = this.match(sqlParser.SKEWED);
break;
case 31:
this.enterOuterAlt(localctx, 31);
2019-09-25 16:53:32 +08:00
this.state = 962;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 963;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 964;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 965;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.NOT);
2019-09-25 16:53:32 +08:00
this.state = 966;
2019-09-25 15:43:36 +08:00
localctx.kw4 = this.match(sqlParser.STORED);
2019-09-25 16:53:32 +08:00
this.state = 967;
2019-09-25 15:43:36 +08:00
localctx.kw5 = this.match(sqlParser.AS);
2019-09-25 16:53:32 +08:00
this.state = 968;
2019-09-25 15:43:36 +08:00
localctx.kw6 = this.match(sqlParser.DIRECTORIES);
break;
case 32:
this.enterOuterAlt(localctx, 32);
2019-09-25 16:53:32 +08:00
this.state = 970;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 971;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 972;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 973;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.SET);
2019-09-25 16:53:32 +08:00
this.state = 974;
2019-09-25 15:43:36 +08:00
localctx.kw4 = this.match(sqlParser.SKEWED);
2019-09-25 16:53:32 +08:00
this.state = 975;
2019-09-25 15:43:36 +08:00
localctx.kw5 = this.match(sqlParser.LOCATION);
break;
case 33:
this.enterOuterAlt(localctx, 33);
2019-09-25 16:53:32 +08:00
this.state = 977;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 978;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 979;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 980;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.EXCHANGE);
2019-09-25 16:53:32 +08:00
this.state = 981;
2019-09-25 15:43:36 +08:00
localctx.kw4 = this.match(sqlParser.PARTITION);
break;
case 34:
this.enterOuterAlt(localctx, 34);
2019-09-25 16:53:32 +08:00
this.state = 983;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 984;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 985;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 986;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.ARCHIVE);
2019-09-25 16:53:32 +08:00
this.state = 987;
2019-09-25 15:43:36 +08:00
localctx.kw4 = this.match(sqlParser.PARTITION);
break;
case 35:
this.enterOuterAlt(localctx, 35);
2019-09-25 16:53:32 +08:00
this.state = 989;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 990;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 991;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 992;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.UNARCHIVE);
2019-09-25 16:53:32 +08:00
this.state = 993;
2019-09-25 15:43:36 +08:00
localctx.kw4 = this.match(sqlParser.PARTITION);
break;
case 36:
this.enterOuterAlt(localctx, 36);
2019-09-25 16:53:32 +08:00
this.state = 995;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 996;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 997;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 998;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.TOUCH);
break;
case 37:
this.enterOuterAlt(localctx, 37);
2019-09-25 16:53:32 +08:00
this.state = 1000;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 1001;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 1002;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 1004;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 1003;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
2019-09-25 16:53:32 +08:00
this.state = 1006;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.COMPACT);
break;
case 38:
this.enterOuterAlt(localctx, 38);
2019-09-25 16:53:32 +08:00
this.state = 1008;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 1009;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 1010;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 1012;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 1011;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
2019-09-25 16:53:32 +08:00
this.state = 1014;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.CONCATENATE);
break;
case 39:
this.enterOuterAlt(localctx, 39);
2019-09-25 16:53:32 +08:00
this.state = 1016;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 1017;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 1018;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 1020;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 1019;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
2019-09-25 16:53:32 +08:00
this.state = 1022;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.SET);
2019-09-25 16:53:32 +08:00
this.state = 1023;
2019-09-25 15:43:36 +08:00
localctx.kw4 = this.match(sqlParser.FILEFORMAT);
break;
case 40:
this.enterOuterAlt(localctx, 40);
2019-09-25 16:53:32 +08:00
this.state = 1025;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ALTER);
2019-09-25 16:53:32 +08:00
this.state = 1026;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 1027;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 1029;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 1028;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
2019-09-25 16:53:32 +08:00
this.state = 1031;
2019-09-25 15:43:36 +08:00
localctx.kw3 = this.match(sqlParser.REPLACE);
2019-09-25 16:53:32 +08:00
this.state = 1032;
2019-09-25 15:43:36 +08:00
localctx.kw4 = this.match(sqlParser.COLUMNS);
break;
case 41:
this.enterOuterAlt(localctx, 41);
2019-09-25 16:53:32 +08:00
this.state = 1034;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.START);
2019-09-25 16:53:32 +08:00
this.state = 1035;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.TRANSACTION);
break;
case 42:
this.enterOuterAlt(localctx, 42);
2019-09-25 16:53:32 +08:00
this.state = 1036;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.COMMIT);
break;
case 43:
this.enterOuterAlt(localctx, 43);
2019-09-25 16:53:32 +08:00
this.state = 1037;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.ROLLBACK);
break;
case 44:
this.enterOuterAlt(localctx, 44);
2019-09-25 16:53:32 +08:00
this.state = 1038;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.DFS);
break;
case 45:
this.enterOuterAlt(localctx, 45);
2019-09-25 16:53:32 +08:00
this.state = 1039;
2019-09-25 15:43:36 +08:00
localctx.kw1 = this.match(sqlParser.DELETE);
2019-09-25 16:53:32 +08:00
this.state = 1040;
2019-09-25 15:43:36 +08:00
localctx.kw2 = this.match(sqlParser.FROM);
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 CreateTableHeaderContext(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 = sqlParser.RULE_createTableHeader;
return this;
}
CreateTableHeaderContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateTableHeaderContext.prototype.constructor = CreateTableHeaderContext;
CreateTableHeaderContext.prototype.CREATE = function () {
return this.getToken(sqlParser.CREATE, 0);
};
CreateTableHeaderContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
CreateTableHeaderContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
CreateTableHeaderContext.prototype.TEMPORARY = function () {
return this.getToken(sqlParser.TEMPORARY, 0);
};
CreateTableHeaderContext.prototype.EXTERNAL = function () {
return this.getToken(sqlParser.EXTERNAL, 0);
};
CreateTableHeaderContext.prototype.IF = function () {
return this.getToken(sqlParser.IF, 0);
};
CreateTableHeaderContext.prototype.NOT = function () {
return this.getToken(sqlParser.NOT, 0);
};
CreateTableHeaderContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
CreateTableHeaderContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterCreateTableHeader(this);
}
};
CreateTableHeaderContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitCreateTableHeader(this);
}
};
CreateTableHeaderContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitCreateTableHeader(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.CreateTableHeaderContext = CreateTableHeaderContext;
sqlParser.prototype.createTableHeader = function () {
var localctx = new CreateTableHeaderContext(this, this._ctx, this.state);
this.enterRule(localctx, 16, sqlParser.RULE_createTableHeader);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1043;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CREATE);
2019-09-25 16:53:32 +08:00
this.state = 1045;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.TEMPORARY) {
2019-09-25 16:53:32 +08:00
this.state = 1044;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TEMPORARY);
}
2019-09-25 16:53:32 +08:00
this.state = 1048;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.EXTERNAL) {
2019-09-25 16:53:32 +08:00
this.state = 1047;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXTERNAL);
}
2019-09-25 16:53:32 +08:00
this.state = 1050;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 1054;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 112, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1051;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 1052;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
2019-09-25 16:53:32 +08:00
this.state = 1053;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
2019-09-25 16:53:32 +08:00
this.state = 1056;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
}
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 BucketSpecContext(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 = sqlParser.RULE_bucketSpec;
return this;
}
BucketSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
BucketSpecContext.prototype.constructor = BucketSpecContext;
BucketSpecContext.prototype.CLUSTERED = function () {
return this.getToken(sqlParser.CLUSTERED, 0);
};
BucketSpecContext.prototype.BY = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.BY);
}
else {
return this.getToken(sqlParser.BY, i);
}
};
BucketSpecContext.prototype.identifierList = function () {
return this.getTypedRuleContext(IdentifierListContext, 0);
};
BucketSpecContext.prototype.INTO = function () {
return this.getToken(sqlParser.INTO, 0);
};
BucketSpecContext.prototype.INTEGER_VALUE = function () {
return this.getToken(sqlParser.INTEGER_VALUE, 0);
};
BucketSpecContext.prototype.BUCKETS = function () {
return this.getToken(sqlParser.BUCKETS, 0);
};
BucketSpecContext.prototype.SORTED = function () {
return this.getToken(sqlParser.SORTED, 0);
};
BucketSpecContext.prototype.orderedIdentifierList = function () {
return this.getTypedRuleContext(OrderedIdentifierListContext, 0);
};
BucketSpecContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterBucketSpec(this);
}
};
BucketSpecContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitBucketSpec(this);
}
};
BucketSpecContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitBucketSpec(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.BucketSpecContext = BucketSpecContext;
sqlParser.prototype.bucketSpec = function () {
var localctx = new BucketSpecContext(this, this._ctx, this.state);
this.enterRule(localctx, 18, sqlParser.RULE_bucketSpec);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1058;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CLUSTERED);
2019-09-25 16:53:32 +08:00
this.state = 1059;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1060;
2019-09-25 15:43:36 +08:00
this.identifierList();
2019-09-25 16:53:32 +08:00
this.state = 1064;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.SORTED) {
2019-09-25 16:53:32 +08:00
this.state = 1061;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SORTED);
2019-09-25 16:53:32 +08:00
this.state = 1062;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1063;
2019-09-25 15:43:36 +08:00
this.orderedIdentifierList();
}
2019-09-25 16:53:32 +08:00
this.state = 1066;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INTO);
2019-09-25 16:53:32 +08:00
this.state = 1067;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INTEGER_VALUE);
2019-09-25 16:53:32 +08:00
this.state = 1068;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BUCKETS);
}
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 SkewSpecContext(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 = sqlParser.RULE_skewSpec;
return this;
}
SkewSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SkewSpecContext.prototype.constructor = SkewSpecContext;
SkewSpecContext.prototype.SKEWED = function () {
return this.getToken(sqlParser.SKEWED, 0);
};
SkewSpecContext.prototype.BY = function () {
return this.getToken(sqlParser.BY, 0);
};
SkewSpecContext.prototype.identifierList = function () {
return this.getTypedRuleContext(IdentifierListContext, 0);
};
SkewSpecContext.prototype.ON = function () {
return this.getToken(sqlParser.ON, 0);
};
SkewSpecContext.prototype.constantList = function () {
return this.getTypedRuleContext(ConstantListContext, 0);
};
SkewSpecContext.prototype.nestedConstantList = function () {
return this.getTypedRuleContext(NestedConstantListContext, 0);
};
SkewSpecContext.prototype.STORED = function () {
return this.getToken(sqlParser.STORED, 0);
};
SkewSpecContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
SkewSpecContext.prototype.DIRECTORIES = function () {
return this.getToken(sqlParser.DIRECTORIES, 0);
};
SkewSpecContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSkewSpec(this);
}
};
SkewSpecContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSkewSpec(this);
}
};
SkewSpecContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSkewSpec(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.SkewSpecContext = SkewSpecContext;
sqlParser.prototype.skewSpec = function () {
var localctx = new SkewSpecContext(this, this._ctx, this.state);
this.enterRule(localctx, 20, sqlParser.RULE_skewSpec);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1070;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SKEWED);
2019-09-25 16:53:32 +08:00
this.state = 1071;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1072;
2019-09-25 15:43:36 +08:00
this.identifierList();
this.state = 1073;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.ON);
this.state = 1076;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 114, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
2019-09-25 16:53:32 +08:00
this.state = 1074;
2019-09-25 15:43:36 +08:00
this.constantList();
break;
case 2:
2019-09-25 16:53:32 +08:00
this.state = 1075;
2019-09-25 15:43:36 +08:00
this.nestedConstantList();
break;
}
2019-09-25 16:53:32 +08:00
this.state = 1081;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 115, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1078;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STORED);
2019-09-25 16:53:32 +08:00
this.state = 1079;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
2019-09-25 16:53:32 +08:00
this.state = 1080;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DIRECTORIES);
}
}
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 LocationSpecContext(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 = sqlParser.RULE_locationSpec;
return this;
}
LocationSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LocationSpecContext.prototype.constructor = LocationSpecContext;
LocationSpecContext.prototype.LOCATION = function () {
return this.getToken(sqlParser.LOCATION, 0);
};
LocationSpecContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
LocationSpecContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterLocationSpec(this);
}
};
LocationSpecContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitLocationSpec(this);
}
};
LocationSpecContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitLocationSpec(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.LocationSpecContext = LocationSpecContext;
sqlParser.prototype.locationSpec = function () {
var localctx = new LocationSpecContext(this, this._ctx, this.state);
this.enterRule(localctx, 22, sqlParser.RULE_locationSpec);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1083;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LOCATION);
2019-09-25 16:53:32 +08:00
this.state = 1084;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
}
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 QueryContext(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 = sqlParser.RULE_query;
return this;
}
QueryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
QueryContext.prototype.constructor = QueryContext;
QueryContext.prototype.queryNoWith = function () {
return this.getTypedRuleContext(QueryNoWithContext, 0);
};
QueryContext.prototype.ctes = function () {
return this.getTypedRuleContext(CtesContext, 0);
};
QueryContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterQuery(this);
}
};
QueryContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitQuery(this);
}
};
QueryContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitQuery(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.QueryContext = QueryContext;
sqlParser.prototype.query = function () {
var localctx = new QueryContext(this, this._ctx, this.state);
this.enterRule(localctx, 24, sqlParser.RULE_query);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1087;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.WITH) {
2019-09-25 16:53:32 +08:00
this.state = 1086;
2019-09-25 15:43:36 +08:00
this.ctes();
}
2019-09-25 16:53:32 +08:00
this.state = 1089;
2019-09-25 15:43:36 +08:00
this.queryNoWith();
}
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 InsertIntoContext(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 = sqlParser.RULE_insertInto;
return this;
}
InsertIntoContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
InsertIntoContext.prototype.constructor = InsertIntoContext;
InsertIntoContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function InsertOverwriteHiveDirContext(parser, ctx) {
InsertIntoContext.call(this, parser);
this.path = null; // Token;
InsertIntoContext.prototype.copyFrom.call(this, ctx);
return this;
}
InsertOverwriteHiveDirContext.prototype = Object.create(InsertIntoContext.prototype);
InsertOverwriteHiveDirContext.prototype.constructor = InsertOverwriteHiveDirContext;
sqlParser.InsertOverwriteHiveDirContext = InsertOverwriteHiveDirContext;
InsertOverwriteHiveDirContext.prototype.INSERT = function () {
return this.getToken(sqlParser.INSERT, 0);
};
InsertOverwriteHiveDirContext.prototype.OVERWRITE = function () {
return this.getToken(sqlParser.OVERWRITE, 0);
};
InsertOverwriteHiveDirContext.prototype.DIRECTORY = function () {
return this.getToken(sqlParser.DIRECTORY, 0);
};
InsertOverwriteHiveDirContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
InsertOverwriteHiveDirContext.prototype.LOCAL = function () {
return this.getToken(sqlParser.LOCAL, 0);
};
InsertOverwriteHiveDirContext.prototype.rowFormat = function () {
return this.getTypedRuleContext(RowFormatContext, 0);
};
InsertOverwriteHiveDirContext.prototype.createFileFormat = function () {
return this.getTypedRuleContext(CreateFileFormatContext, 0);
};
InsertOverwriteHiveDirContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterInsertOverwriteHiveDir(this);
}
};
InsertOverwriteHiveDirContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitInsertOverwriteHiveDir(this);
}
};
InsertOverwriteHiveDirContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitInsertOverwriteHiveDir(this);
}
else {
return visitor.visitChildren(this);
}
};
function InsertOverwriteDirContext(parser, ctx) {
InsertIntoContext.call(this, parser);
this.path = null; // Token;
this.options = null; // TablePropertyListContext;
InsertIntoContext.prototype.copyFrom.call(this, ctx);
return this;
}
InsertOverwriteDirContext.prototype = Object.create(InsertIntoContext.prototype);
InsertOverwriteDirContext.prototype.constructor = InsertOverwriteDirContext;
sqlParser.InsertOverwriteDirContext = InsertOverwriteDirContext;
InsertOverwriteDirContext.prototype.INSERT = function () {
return this.getToken(sqlParser.INSERT, 0);
};
InsertOverwriteDirContext.prototype.OVERWRITE = function () {
return this.getToken(sqlParser.OVERWRITE, 0);
};
InsertOverwriteDirContext.prototype.DIRECTORY = function () {
return this.getToken(sqlParser.DIRECTORY, 0);
};
InsertOverwriteDirContext.prototype.tableProvider = function () {
return this.getTypedRuleContext(TableProviderContext, 0);
};
InsertOverwriteDirContext.prototype.LOCAL = function () {
return this.getToken(sqlParser.LOCAL, 0);
};
InsertOverwriteDirContext.prototype.OPTIONS = function () {
return this.getToken(sqlParser.OPTIONS, 0);
};
InsertOverwriteDirContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
InsertOverwriteDirContext.prototype.tablePropertyList = function () {
return this.getTypedRuleContext(TablePropertyListContext, 0);
};
InsertOverwriteDirContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterInsertOverwriteDir(this);
}
};
InsertOverwriteDirContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitInsertOverwriteDir(this);
}
};
InsertOverwriteDirContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitInsertOverwriteDir(this);
}
else {
return visitor.visitChildren(this);
}
};
function InsertOverwriteTableContext(parser, ctx) {
InsertIntoContext.call(this, parser);
InsertIntoContext.prototype.copyFrom.call(this, ctx);
return this;
}
InsertOverwriteTableContext.prototype = Object.create(InsertIntoContext.prototype);
InsertOverwriteTableContext.prototype.constructor = InsertOverwriteTableContext;
sqlParser.InsertOverwriteTableContext = InsertOverwriteTableContext;
InsertOverwriteTableContext.prototype.INSERT = function () {
return this.getToken(sqlParser.INSERT, 0);
};
InsertOverwriteTableContext.prototype.OVERWRITE = function () {
return this.getToken(sqlParser.OVERWRITE, 0);
};
InsertOverwriteTableContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
InsertOverwriteTableContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
InsertOverwriteTableContext.prototype.partitionSpec = function () {
return this.getTypedRuleContext(PartitionSpecContext, 0);
};
InsertOverwriteTableContext.prototype.IF = function () {
return this.getToken(sqlParser.IF, 0);
};
InsertOverwriteTableContext.prototype.NOT = function () {
return this.getToken(sqlParser.NOT, 0);
};
InsertOverwriteTableContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
InsertOverwriteTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterInsertOverwriteTable(this);
}
};
InsertOverwriteTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitInsertOverwriteTable(this);
}
};
InsertOverwriteTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitInsertOverwriteTable(this);
}
else {
return visitor.visitChildren(this);
}
};
function InsertIntoTableContext(parser, ctx) {
InsertIntoContext.call(this, parser);
InsertIntoContext.prototype.copyFrom.call(this, ctx);
return this;
}
InsertIntoTableContext.prototype = Object.create(InsertIntoContext.prototype);
InsertIntoTableContext.prototype.constructor = InsertIntoTableContext;
sqlParser.InsertIntoTableContext = InsertIntoTableContext;
InsertIntoTableContext.prototype.INSERT = function () {
return this.getToken(sqlParser.INSERT, 0);
};
InsertIntoTableContext.prototype.INTO = function () {
return this.getToken(sqlParser.INTO, 0);
};
InsertIntoTableContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
InsertIntoTableContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
InsertIntoTableContext.prototype.partitionSpec = function () {
return this.getTypedRuleContext(PartitionSpecContext, 0);
};
InsertIntoTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterInsertIntoTable(this);
}
};
InsertIntoTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitInsertIntoTable(this);
}
};
InsertIntoTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitInsertIntoTable(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.InsertIntoContext = InsertIntoContext;
sqlParser.prototype.insertInto = function () {
var localctx = new InsertIntoContext(this, this._ctx, this.state);
this.enterRule(localctx, 26, sqlParser.RULE_insertInto);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 1139;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 127, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new InsertOverwriteTableContext(this, localctx);
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1091;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INSERT);
2019-09-25 16:53:32 +08:00
this.state = 1092;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OVERWRITE);
2019-09-25 16:53:32 +08:00
this.state = 1093;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 1094;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 1101;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 1095;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
2019-09-25 16:53:32 +08:00
this.state = 1099;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.IF) {
2019-09-25 16:53:32 +08:00
this.state = 1096;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IF);
2019-09-25 16:53:32 +08:00
this.state = 1097;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
2019-09-25 16:53:32 +08:00
this.state = 1098;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
}
}
break;
case 2:
localctx = new InsertIntoTableContext(this, localctx);
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1103;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INSERT);
2019-09-25 16:53:32 +08:00
this.state = 1104;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INTO);
2019-09-25 16:53:32 +08:00
this.state = 1106;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 119, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1105;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
}
2019-09-25 16:53:32 +08:00
this.state = 1108;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 1110;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION) {
2019-09-25 16:53:32 +08:00
this.state = 1109;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
}
break;
case 3:
localctx = new InsertOverwriteHiveDirContext(this, localctx);
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 1112;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INSERT);
2019-09-25 16:53:32 +08:00
this.state = 1113;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OVERWRITE);
2019-09-25 16:53:32 +08:00
this.state = 1115;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.LOCAL) {
2019-09-25 16:53:32 +08:00
this.state = 1114;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LOCAL);
}
2019-09-25 16:53:32 +08:00
this.state = 1117;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DIRECTORY);
2019-09-25 16:53:32 +08:00
this.state = 1118;
2019-09-25 15:43:36 +08:00
localctx.path = this.match(sqlParser.STRING);
2019-09-25 16:53:32 +08:00
this.state = 1120;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.ROW) {
2019-09-25 16:53:32 +08:00
this.state = 1119;
2019-09-25 15:43:36 +08:00
this.rowFormat();
}
2019-09-25 16:53:32 +08:00
this.state = 1123;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.STORED) {
2019-09-25 16:53:32 +08:00
this.state = 1122;
2019-09-25 15:43:36 +08:00
this.createFileFormat();
}
break;
case 4:
localctx = new InsertOverwriteDirContext(this, localctx);
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 1125;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INSERT);
2019-09-25 16:53:32 +08:00
this.state = 1126;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OVERWRITE);
2019-09-25 16:53:32 +08:00
this.state = 1128;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.LOCAL) {
2019-09-25 16:53:32 +08:00
this.state = 1127;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LOCAL);
}
2019-09-25 16:53:32 +08:00
this.state = 1130;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DIRECTORY);
2019-09-25 16:53:32 +08:00
this.state = 1132;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.STRING) {
2019-09-25 16:53:32 +08:00
this.state = 1131;
2019-09-25 15:43:36 +08:00
localctx.path = this.match(sqlParser.STRING);
}
this.state = 1134;
2019-09-25 16:53:32 +08:00
this.tableProvider();
this.state = 1137;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.OPTIONS) {
2019-09-25 16:53:32 +08:00
this.state = 1135;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OPTIONS);
2019-09-25 16:53:32 +08:00
this.state = 1136;
2019-09-25 15:43:36 +08:00
localctx.options = this.tablePropertyList();
}
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 PartitionSpecLocationContext(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 = sqlParser.RULE_partitionSpecLocation;
return this;
}
PartitionSpecLocationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PartitionSpecLocationContext.prototype.constructor = PartitionSpecLocationContext;
PartitionSpecLocationContext.prototype.partitionSpec = function () {
return this.getTypedRuleContext(PartitionSpecContext, 0);
};
PartitionSpecLocationContext.prototype.locationSpec = function () {
return this.getTypedRuleContext(LocationSpecContext, 0);
};
PartitionSpecLocationContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterPartitionSpecLocation(this);
}
};
PartitionSpecLocationContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitPartitionSpecLocation(this);
}
};
PartitionSpecLocationContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitPartitionSpecLocation(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.PartitionSpecLocationContext = PartitionSpecLocationContext;
sqlParser.prototype.partitionSpecLocation = function () {
var localctx = new PartitionSpecLocationContext(this, this._ctx, this.state);
this.enterRule(localctx, 28, sqlParser.RULE_partitionSpecLocation);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1141;
2019-09-25 15:43:36 +08:00
this.partitionSpec();
2019-09-25 16:53:32 +08:00
this.state = 1143;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.LOCATION) {
2019-09-25 16:53:32 +08:00
this.state = 1142;
2019-09-25 15:43:36 +08:00
this.locationSpec();
}
}
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 PartitionSpecContext(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 = sqlParser.RULE_partitionSpec;
return this;
}
PartitionSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PartitionSpecContext.prototype.constructor = PartitionSpecContext;
PartitionSpecContext.prototype.PARTITION = function () {
return this.getToken(sqlParser.PARTITION, 0);
};
PartitionSpecContext.prototype.partitionVal = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(PartitionValContext);
}
else {
return this.getTypedRuleContext(PartitionValContext, i);
}
};
PartitionSpecContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterPartitionSpec(this);
}
};
PartitionSpecContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitPartitionSpec(this);
}
};
PartitionSpecContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitPartitionSpec(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.PartitionSpecContext = PartitionSpecContext;
sqlParser.prototype.partitionSpec = function () {
var localctx = new PartitionSpecContext(this, this._ctx, this.state);
this.enterRule(localctx, 30, sqlParser.RULE_partitionSpec);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1145;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.PARTITION);
2019-09-25 16:53:32 +08:00
this.state = 1146;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1147;
2019-09-25 15:43:36 +08:00
this.partitionVal();
2019-09-25 16:53:32 +08:00
this.state = 1152;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1148;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1149;
2019-09-25 15:43:36 +08:00
this.partitionVal();
2019-09-25 16:53:32 +08:00
this.state = 1154;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 1155;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__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 PartitionValContext(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 = sqlParser.RULE_partitionVal;
return this;
}
PartitionValContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PartitionValContext.prototype.constructor = PartitionValContext;
PartitionValContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
PartitionValContext.prototype.EQ = function () {
return this.getToken(sqlParser.EQ, 0);
};
PartitionValContext.prototype.constant = function () {
return this.getTypedRuleContext(ConstantContext, 0);
};
PartitionValContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterPartitionVal(this);
}
};
PartitionValContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitPartitionVal(this);
}
};
PartitionValContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitPartitionVal(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.PartitionValContext = PartitionValContext;
sqlParser.prototype.partitionVal = function () {
var localctx = new PartitionValContext(this, this._ctx, this.state);
this.enterRule(localctx, 32, sqlParser.RULE_partitionVal);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
this.state = 1157;
2019-09-25 16:53:32 +08:00
this.identifier();
this.state = 1160;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.EQ) {
2019-09-25 16:53:32 +08:00
this.state = 1158;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EQ);
2019-09-25 16:53:32 +08:00
this.state = 1159;
2019-09-25 15:43:36 +08:00
this.constant();
}
}
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 DescribeFuncNameContext(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 = sqlParser.RULE_describeFuncName;
return this;
}
DescribeFuncNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DescribeFuncNameContext.prototype.constructor = DescribeFuncNameContext;
DescribeFuncNameContext.prototype.qualifiedName = function () {
return this.getTypedRuleContext(QualifiedNameContext, 0);
};
DescribeFuncNameContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
DescribeFuncNameContext.prototype.comparisonOperator = function () {
return this.getTypedRuleContext(ComparisonOperatorContext, 0);
};
DescribeFuncNameContext.prototype.arithmeticOperator = function () {
return this.getTypedRuleContext(ArithmeticOperatorContext, 0);
};
DescribeFuncNameContext.prototype.predicateOperator = function () {
return this.getTypedRuleContext(PredicateOperatorContext, 0);
};
DescribeFuncNameContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterDescribeFuncName(this);
}
};
DescribeFuncNameContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitDescribeFuncName(this);
}
};
DescribeFuncNameContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitDescribeFuncName(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.DescribeFuncNameContext = DescribeFuncNameContext;
sqlParser.prototype.describeFuncName = function () {
var localctx = new DescribeFuncNameContext(this, this._ctx, this.state);
this.enterRule(localctx, 34, sqlParser.RULE_describeFuncName);
try {
2019-09-25 16:53:32 +08:00
this.state = 1167;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 131, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1162;
2019-09-25 15:43:36 +08:00
this.qualifiedName();
break;
case 2:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1163;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
break;
case 3:
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 1164;
2019-09-25 15:43:36 +08:00
this.comparisonOperator();
break;
case 4:
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 1165;
2019-09-25 15:43:36 +08:00
this.arithmeticOperator();
break;
case 5:
this.enterOuterAlt(localctx, 5);
2019-09-25 16:53:32 +08:00
this.state = 1166;
2019-09-25 15:43:36 +08:00
this.predicateOperator();
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 DescribeColNameContext(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 = sqlParser.RULE_describeColName;
this._identifier = null; // IdentifierContext
this.nameParts = []; // of IdentifierContexts
return this;
}
DescribeColNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DescribeColNameContext.prototype.constructor = DescribeColNameContext;
DescribeColNameContext.prototype.identifier = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(IdentifierContext);
}
else {
return this.getTypedRuleContext(IdentifierContext, i);
}
};
DescribeColNameContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterDescribeColName(this);
}
};
DescribeColNameContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitDescribeColName(this);
}
};
DescribeColNameContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitDescribeColName(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.DescribeColNameContext = DescribeColNameContext;
sqlParser.prototype.describeColName = function () {
var localctx = new DescribeColNameContext(this, this._ctx, this.state);
this.enterRule(localctx, 36, sqlParser.RULE_describeColName);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1169;
2019-09-25 15:43:36 +08:00
localctx._identifier = this.identifier();
localctx.nameParts.push(localctx._identifier);
2019-09-25 16:53:32 +08:00
this.state = 1174;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__2) {
2019-09-25 16:53:32 +08:00
this.state = 1170;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__2);
2019-09-25 16:53:32 +08:00
this.state = 1171;
2019-09-25 15:43:36 +08:00
localctx._identifier = this.identifier();
localctx.nameParts.push(localctx._identifier);
2019-09-25 16:53:32 +08:00
this.state = 1176;
2019-09-25 15:43:36 +08:00
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 CtesContext(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 = sqlParser.RULE_ctes;
return this;
}
CtesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CtesContext.prototype.constructor = CtesContext;
CtesContext.prototype.WITH = function () {
return this.getToken(sqlParser.WITH, 0);
};
CtesContext.prototype.namedQuery = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(NamedQueryContext);
}
else {
return this.getTypedRuleContext(NamedQueryContext, i);
}
};
CtesContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterCtes(this);
}
};
CtesContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitCtes(this);
}
};
CtesContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitCtes(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.CtesContext = CtesContext;
sqlParser.prototype.ctes = function () {
var localctx = new CtesContext(this, this._ctx, this.state);
this.enterRule(localctx, 38, sqlParser.RULE_ctes);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1177;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.WITH);
2019-09-25 16:53:32 +08:00
this.state = 1178;
2019-09-25 15:43:36 +08:00
this.namedQuery();
2019-09-25 16:53:32 +08:00
this.state = 1183;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1179;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1180;
2019-09-25 15:43:36 +08:00
this.namedQuery();
2019-09-25 16:53:32 +08:00
this.state = 1185;
2019-09-25 15:43:36 +08:00
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 NamedQueryContext(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 = sqlParser.RULE_namedQuery;
this.name = null; // IdentifierContext
return this;
}
NamedQueryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
NamedQueryContext.prototype.constructor = NamedQueryContext;
NamedQueryContext.prototype.query = function () {
return this.getTypedRuleContext(QueryContext, 0);
};
NamedQueryContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
NamedQueryContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
NamedQueryContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterNamedQuery(this);
}
};
NamedQueryContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitNamedQuery(this);
}
};
NamedQueryContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitNamedQuery(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.NamedQueryContext = NamedQueryContext;
sqlParser.prototype.namedQuery = function () {
var localctx = new NamedQueryContext(this, this._ctx, this.state);
this.enterRule(localctx, 40, sqlParser.RULE_namedQuery);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1186;
2019-09-25 15:43:36 +08:00
localctx.name = this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 1188;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.AS) {
2019-09-25 16:53:32 +08:00
this.state = 1187;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
}
2019-09-25 16:53:32 +08:00
this.state = 1190;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1191;
2019-09-25 15:43:36 +08:00
this.query();
2019-09-25 16:53:32 +08:00
this.state = 1192;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__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 TableProviderContext(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 = sqlParser.RULE_tableProvider;
return this;
}
TableProviderContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TableProviderContext.prototype.constructor = TableProviderContext;
TableProviderContext.prototype.USING = function () {
return this.getToken(sqlParser.USING, 0);
};
TableProviderContext.prototype.qualifiedName = function () {
return this.getTypedRuleContext(QualifiedNameContext, 0);
};
TableProviderContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterTableProvider(this);
}
};
TableProviderContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitTableProvider(this);
}
};
TableProviderContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitTableProvider(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.TableProviderContext = TableProviderContext;
sqlParser.prototype.tableProvider = function () {
var localctx = new TableProviderContext(this, this._ctx, this.state);
this.enterRule(localctx, 42, sqlParser.RULE_tableProvider);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1194;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.USING);
2019-09-25 16:53:32 +08:00
this.state = 1195;
2019-09-25 15:43:36 +08:00
this.qualifiedName();
}
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 TablePropertyListContext(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 = sqlParser.RULE_tablePropertyList;
return this;
}
TablePropertyListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TablePropertyListContext.prototype.constructor = TablePropertyListContext;
TablePropertyListContext.prototype.tableProperty = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(TablePropertyContext);
}
else {
return this.getTypedRuleContext(TablePropertyContext, i);
}
};
TablePropertyListContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterTablePropertyList(this);
}
};
TablePropertyListContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitTablePropertyList(this);
}
};
TablePropertyListContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitTablePropertyList(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.TablePropertyListContext = TablePropertyListContext;
sqlParser.prototype.tablePropertyList = function () {
var localctx = new TablePropertyListContext(this, this._ctx, this.state);
this.enterRule(localctx, 44, sqlParser.RULE_tablePropertyList);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1197;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1198;
2019-09-25 15:43:36 +08:00
this.tableProperty();
2019-09-25 16:53:32 +08:00
this.state = 1203;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1199;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1200;
2019-09-25 15:43:36 +08:00
this.tableProperty();
2019-09-25 16:53:32 +08:00
this.state = 1205;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 1206;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__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 TablePropertyContext(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 = sqlParser.RULE_tableProperty;
this.key = null; // TablePropertyKeyContext
this.value = null; // TablePropertyValueContext
return this;
}
TablePropertyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TablePropertyContext.prototype.constructor = TablePropertyContext;
TablePropertyContext.prototype.tablePropertyKey = function () {
return this.getTypedRuleContext(TablePropertyKeyContext, 0);
};
TablePropertyContext.prototype.tablePropertyValue = function () {
return this.getTypedRuleContext(TablePropertyValueContext, 0);
};
TablePropertyContext.prototype.EQ = function () {
return this.getToken(sqlParser.EQ, 0);
};
TablePropertyContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterTableProperty(this);
}
};
TablePropertyContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitTableProperty(this);
}
};
TablePropertyContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitTableProperty(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.TablePropertyContext = TablePropertyContext;
sqlParser.prototype.tableProperty = function () {
var localctx = new TablePropertyContext(this, this._ctx, this.state);
this.enterRule(localctx, 46, sqlParser.RULE_tableProperty);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1208;
2019-09-25 15:43:36 +08:00
localctx.key = this.tablePropertyKey();
2019-09-25 16:53:32 +08:00
this.state = 1213;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.TRUE || _la === sqlParser.FALSE || _la === sqlParser.EQ || ((((_la - 241)) & ~0x1f) == 0 && ((1 << (_la - 241)) & ((1 << (sqlParser.STRING - 241)) | (1 << (sqlParser.INTEGER_VALUE - 241)) | (1 << (sqlParser.DECIMAL_VALUE - 241)))) !== 0)) {
2019-09-25 16:53:32 +08:00
this.state = 1210;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.EQ) {
2019-09-25 16:53:32 +08:00
this.state = 1209;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EQ);
}
2019-09-25 16:53:32 +08:00
this.state = 1212;
2019-09-25 15:43:36 +08:00
localctx.value = this.tablePropertyValue();
}
}
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 TablePropertyKeyContext(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 = sqlParser.RULE_tablePropertyKey;
return this;
}
TablePropertyKeyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TablePropertyKeyContext.prototype.constructor = TablePropertyKeyContext;
TablePropertyKeyContext.prototype.identifier = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(IdentifierContext);
}
else {
return this.getTypedRuleContext(IdentifierContext, i);
}
};
TablePropertyKeyContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
TablePropertyKeyContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterTablePropertyKey(this);
}
};
TablePropertyKeyContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitTablePropertyKey(this);
}
};
TablePropertyKeyContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitTablePropertyKey(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.TablePropertyKeyContext = TablePropertyKeyContext;
sqlParser.prototype.tablePropertyKey = function () {
var localctx = new TablePropertyKeyContext(this, this._ctx, this.state);
this.enterRule(localctx, 48, sqlParser.RULE_tablePropertyKey);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 1224;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.SELECT:
case sqlParser.FROM:
case sqlParser.ADD:
case sqlParser.AS:
case sqlParser.ALL:
case sqlParser.ANY:
case sqlParser.DISTINCT:
case sqlParser.WHERE:
case sqlParser.GROUP:
case sqlParser.BY:
case sqlParser.GROUPING:
case sqlParser.SETS:
case sqlParser.CUBE:
case sqlParser.ROLLUP:
case sqlParser.ORDER:
case sqlParser.HAVING:
case sqlParser.LIMIT:
case sqlParser.AT:
case sqlParser.OR:
case sqlParser.AND:
case sqlParser.IN:
case sqlParser.NOT:
case sqlParser.NO:
case sqlParser.EXISTS:
case sqlParser.BETWEEN:
case sqlParser.LIKE:
case sqlParser.RLIKE:
case sqlParser.IS:
case sqlParser.NULL:
case sqlParser.TRUE:
case sqlParser.FALSE:
case sqlParser.NULLS:
case sqlParser.ASC:
case sqlParser.DESC:
case sqlParser.FOR:
case sqlParser.INTERVAL:
case sqlParser.CASE:
case sqlParser.WHEN:
case sqlParser.THEN:
case sqlParser.ELSE:
case sqlParser.END:
case sqlParser.JOIN:
case sqlParser.CROSS:
case sqlParser.OUTER:
case sqlParser.INNER:
case sqlParser.LEFT:
case sqlParser.SEMI:
case sqlParser.RIGHT:
case sqlParser.FULL:
case sqlParser.NATURAL:
case sqlParser.ON:
case sqlParser.PIVOT:
case sqlParser.LATERAL:
case sqlParser.WINDOW:
case sqlParser.OVER:
case sqlParser.PARTITION:
case sqlParser.RANGE:
case sqlParser.ROWS:
case sqlParser.UNBOUNDED:
case sqlParser.PRECEDING:
case sqlParser.FOLLOWING:
case sqlParser.CURRENT:
case sqlParser.FIRST:
case sqlParser.AFTER:
case sqlParser.LAST:
case sqlParser.ROW:
case sqlParser.WITH:
case sqlParser.VALUES:
case sqlParser.CREATE:
case sqlParser.TABLE:
case sqlParser.DIRECTORY:
case sqlParser.VIEW:
case sqlParser.REPLACE:
case sqlParser.INSERT:
case sqlParser.DELETE:
case sqlParser.INTO:
case sqlParser.DESCRIBE:
case sqlParser.EXPLAIN:
case sqlParser.FORMAT:
case sqlParser.LOGICAL:
case sqlParser.CODEGEN:
case sqlParser.COST:
case sqlParser.CAST:
case sqlParser.SHOW:
case sqlParser.TABLES:
case sqlParser.COLUMNS:
case sqlParser.COLUMN:
case sqlParser.USE:
case sqlParser.PARTITIONS:
case sqlParser.FUNCTIONS:
case sqlParser.DROP:
case sqlParser.UNION:
case sqlParser.EXCEPT:
case sqlParser.SETMINUS:
case sqlParser.INTERSECT:
case sqlParser.TO:
case sqlParser.TABLESAMPLE:
case sqlParser.STRATIFY:
case sqlParser.ALTER:
case sqlParser.RENAME:
case sqlParser.ARRAY:
case sqlParser.MAP:
case sqlParser.STRUCT:
case sqlParser.COMMENT:
case sqlParser.SET:
case sqlParser.RESET:
case sqlParser.DATA:
case sqlParser.START:
case sqlParser.TRANSACTION:
case sqlParser.COMMIT:
case sqlParser.ROLLBACK:
case sqlParser.MACRO:
case sqlParser.IGNORE:
case sqlParser.BOTH:
case sqlParser.LEADING:
case sqlParser.TRAILING:
case sqlParser.IF:
case sqlParser.POSITION:
case sqlParser.EXTRACT:
case sqlParser.DIV:
case sqlParser.PERCENTLIT:
case sqlParser.BUCKET:
case sqlParser.OUT:
case sqlParser.OF:
case sqlParser.SORT:
case sqlParser.CLUSTER:
case sqlParser.DISTRIBUTE:
case sqlParser.OVERWRITE:
case sqlParser.TRANSFORM:
case sqlParser.REDUCE:
case sqlParser.SERDE:
case sqlParser.SERDEPROPERTIES:
case sqlParser.RECORDREADER:
case sqlParser.RECORDWRITER:
case sqlParser.DELIMITED:
case sqlParser.FIELDS:
case sqlParser.TERMINATED:
case sqlParser.COLLECTION:
case sqlParser.ITEMS:
case sqlParser.KEYS:
case sqlParser.ESCAPED:
case sqlParser.LINES:
case sqlParser.SEPARATED:
case sqlParser.FUNCTION:
case sqlParser.EXTENDED:
case sqlParser.REFRESH:
case sqlParser.CLEAR:
case sqlParser.CACHE:
case sqlParser.UNCACHE:
case sqlParser.LAZY:
case sqlParser.FORMATTED:
case sqlParser.GLOBAL:
case sqlParser.TEMPORARY:
case sqlParser.OPTIONS:
case sqlParser.UNSET:
case sqlParser.TBLPROPERTIES:
case sqlParser.DBPROPERTIES:
case sqlParser.BUCKETS:
case sqlParser.SKEWED:
case sqlParser.STORED:
case sqlParser.DIRECTORIES:
case sqlParser.LOCATION:
case sqlParser.EXCHANGE:
case sqlParser.ARCHIVE:
case sqlParser.UNARCHIVE:
case sqlParser.FILEFORMAT:
case sqlParser.TOUCH:
case sqlParser.COMPACT:
case sqlParser.CONCATENATE:
case sqlParser.CHANGE:
case sqlParser.CASCADE:
case sqlParser.RESTRICT:
case sqlParser.CLUSTERED:
case sqlParser.SORTED:
case sqlParser.PURGE:
case sqlParser.INPUTFORMAT:
case sqlParser.OUTPUTFORMAT:
case sqlParser.DATABASE:
case sqlParser.DATABASES:
case sqlParser.DFS:
case sqlParser.TRUNCATE:
case sqlParser.ANALYZE:
case sqlParser.COMPUTE:
case sqlParser.LIST:
case sqlParser.STATISTICS:
case sqlParser.PARTITIONED:
case sqlParser.EXTERNAL:
case sqlParser.DEFINED:
case sqlParser.REVOKE:
case sqlParser.GRANT:
case sqlParser.LOCK:
case sqlParser.UNLOCK:
case sqlParser.MSCK:
case sqlParser.REPAIR:
case sqlParser.RECOVER:
case sqlParser.EXPORT:
case sqlParser.IMPORT:
case sqlParser.LOAD:
case sqlParser.ROLE:
case sqlParser.ROLES:
case sqlParser.COMPACTIONS:
case sqlParser.PRINCIPALS:
case sqlParser.TRANSACTIONS:
case sqlParser.INDEX:
case sqlParser.INDEXES:
case sqlParser.LOCKS:
case sqlParser.OPTION:
case sqlParser.ANTI:
case sqlParser.LOCAL:
case sqlParser.INPATH:
case sqlParser.IDENTIFIER:
case sqlParser.BACKQUOTED_IDENTIFIER:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1215;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 1220;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__2) {
2019-09-25 16:53:32 +08:00
this.state = 1216;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__2);
2019-09-25 16:53:32 +08:00
this.state = 1217;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 1222;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
break;
case sqlParser.STRING:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1223;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
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 TablePropertyValueContext(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 = sqlParser.RULE_tablePropertyValue;
return this;
}
TablePropertyValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TablePropertyValueContext.prototype.constructor = TablePropertyValueContext;
TablePropertyValueContext.prototype.INTEGER_VALUE = function () {
return this.getToken(sqlParser.INTEGER_VALUE, 0);
};
TablePropertyValueContext.prototype.DECIMAL_VALUE = function () {
return this.getToken(sqlParser.DECIMAL_VALUE, 0);
};
TablePropertyValueContext.prototype.booleanValue = function () {
return this.getTypedRuleContext(BooleanValueContext, 0);
};
TablePropertyValueContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
TablePropertyValueContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterTablePropertyValue(this);
}
};
TablePropertyValueContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitTablePropertyValue(this);
}
};
TablePropertyValueContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitTablePropertyValue(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.TablePropertyValueContext = TablePropertyValueContext;
sqlParser.prototype.tablePropertyValue = function () {
var localctx = new TablePropertyValueContext(this, this._ctx, this.state);
this.enterRule(localctx, 50, sqlParser.RULE_tablePropertyValue);
try {
2019-09-25 16:53:32 +08:00
this.state = 1230;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.INTEGER_VALUE:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1226;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INTEGER_VALUE);
break;
case sqlParser.DECIMAL_VALUE:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1227;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DECIMAL_VALUE);
break;
case sqlParser.TRUE:
case sqlParser.FALSE:
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 1228;
2019-09-25 15:43:36 +08:00
this.booleanValue();
break;
case sqlParser.STRING:
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 1229;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
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 ConstantListContext(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 = sqlParser.RULE_constantList;
return this;
}
ConstantListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ConstantListContext.prototype.constructor = ConstantListContext;
ConstantListContext.prototype.constant = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ConstantContext);
}
else {
return this.getTypedRuleContext(ConstantContext, i);
}
};
ConstantListContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterConstantList(this);
}
};
ConstantListContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitConstantList(this);
}
};
ConstantListContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitConstantList(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.ConstantListContext = ConstantListContext;
sqlParser.prototype.constantList = function () {
var localctx = new ConstantListContext(this, this._ctx, this.state);
this.enterRule(localctx, 52, sqlParser.RULE_constantList);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1232;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1233;
2019-09-25 15:43:36 +08:00
this.constant();
2019-09-25 16:53:32 +08:00
this.state = 1238;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1234;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1235;
2019-09-25 15:43:36 +08:00
this.constant();
2019-09-25 16:53:32 +08:00
this.state = 1240;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 1241;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__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 NestedConstantListContext(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 = sqlParser.RULE_nestedConstantList;
return this;
}
NestedConstantListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
NestedConstantListContext.prototype.constructor = NestedConstantListContext;
NestedConstantListContext.prototype.constantList = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ConstantListContext);
}
else {
return this.getTypedRuleContext(ConstantListContext, i);
}
};
NestedConstantListContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterNestedConstantList(this);
}
};
NestedConstantListContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitNestedConstantList(this);
}
};
NestedConstantListContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitNestedConstantList(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.NestedConstantListContext = NestedConstantListContext;
sqlParser.prototype.nestedConstantList = function () {
var localctx = new NestedConstantListContext(this, this._ctx, this.state);
this.enterRule(localctx, 54, sqlParser.RULE_nestedConstantList);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1243;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1244;
2019-09-25 15:43:36 +08:00
this.constantList();
2019-09-25 16:53:32 +08:00
this.state = 1249;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1245;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1246;
2019-09-25 15:43:36 +08:00
this.constantList();
2019-09-25 16:53:32 +08:00
this.state = 1251;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 1252;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__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 CreateFileFormatContext(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 = sqlParser.RULE_createFileFormat;
return this;
}
CreateFileFormatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateFileFormatContext.prototype.constructor = CreateFileFormatContext;
CreateFileFormatContext.prototype.STORED = function () {
return this.getToken(sqlParser.STORED, 0);
};
CreateFileFormatContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
CreateFileFormatContext.prototype.fileFormat = function () {
return this.getTypedRuleContext(FileFormatContext, 0);
};
CreateFileFormatContext.prototype.BY = function () {
return this.getToken(sqlParser.BY, 0);
};
CreateFileFormatContext.prototype.storageHandler = function () {
return this.getTypedRuleContext(StorageHandlerContext, 0);
};
CreateFileFormatContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterCreateFileFormat(this);
}
};
CreateFileFormatContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitCreateFileFormat(this);
}
};
CreateFileFormatContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitCreateFileFormat(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.CreateFileFormatContext = CreateFileFormatContext;
sqlParser.prototype.createFileFormat = function () {
var localctx = new CreateFileFormatContext(this, this._ctx, this.state);
this.enterRule(localctx, 56, sqlParser.RULE_createFileFormat);
try {
2019-09-25 16:53:32 +08:00
this.state = 1260;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 143, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1254;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STORED);
2019-09-25 16:53:32 +08:00
this.state = 1255;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
2019-09-25 16:53:32 +08:00
this.state = 1256;
2019-09-25 15:43:36 +08:00
this.fileFormat();
break;
case 2:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1257;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STORED);
2019-09-25 16:53:32 +08:00
this.state = 1258;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1259;
2019-09-25 15:43:36 +08:00
this.storageHandler();
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 FileFormatContext(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 = sqlParser.RULE_fileFormat;
return this;
}
FileFormatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FileFormatContext.prototype.constructor = FileFormatContext;
FileFormatContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function TableFileFormatContext(parser, ctx) {
FileFormatContext.call(this, parser);
this.inFmt = null; // Token;
this.outFmt = null; // Token;
FileFormatContext.prototype.copyFrom.call(this, ctx);
return this;
}
TableFileFormatContext.prototype = Object.create(FileFormatContext.prototype);
TableFileFormatContext.prototype.constructor = TableFileFormatContext;
sqlParser.TableFileFormatContext = TableFileFormatContext;
TableFileFormatContext.prototype.INPUTFORMAT = function () {
return this.getToken(sqlParser.INPUTFORMAT, 0);
};
TableFileFormatContext.prototype.OUTPUTFORMAT = function () {
return this.getToken(sqlParser.OUTPUTFORMAT, 0);
};
TableFileFormatContext.prototype.STRING = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.STRING);
}
else {
return this.getToken(sqlParser.STRING, i);
}
};
TableFileFormatContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterTableFileFormat(this);
}
};
TableFileFormatContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitTableFileFormat(this);
}
};
TableFileFormatContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitTableFileFormat(this);
}
else {
return visitor.visitChildren(this);
}
};
function GenericFileFormatContext(parser, ctx) {
FileFormatContext.call(this, parser);
FileFormatContext.prototype.copyFrom.call(this, ctx);
return this;
}
GenericFileFormatContext.prototype = Object.create(FileFormatContext.prototype);
GenericFileFormatContext.prototype.constructor = GenericFileFormatContext;
sqlParser.GenericFileFormatContext = GenericFileFormatContext;
GenericFileFormatContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
GenericFileFormatContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterGenericFileFormat(this);
}
};
GenericFileFormatContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitGenericFileFormat(this);
}
};
GenericFileFormatContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitGenericFileFormat(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.FileFormatContext = FileFormatContext;
sqlParser.prototype.fileFormat = function () {
var localctx = new FileFormatContext(this, this._ctx, this.state);
this.enterRule(localctx, 58, sqlParser.RULE_fileFormat);
try {
2019-09-25 16:53:32 +08:00
this.state = 1267;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 144, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new TableFileFormatContext(this, localctx);
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1262;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INPUTFORMAT);
2019-09-25 16:53:32 +08:00
this.state = 1263;
2019-09-25 15:43:36 +08:00
localctx.inFmt = this.match(sqlParser.STRING);
2019-09-25 16:53:32 +08:00
this.state = 1264;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OUTPUTFORMAT);
2019-09-25 16:53:32 +08:00
this.state = 1265;
2019-09-25 15:43:36 +08:00
localctx.outFmt = this.match(sqlParser.STRING);
break;
case 2:
localctx = new GenericFileFormatContext(this, localctx);
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1266;
2019-09-25 15:43:36 +08:00
this.identifier();
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 StorageHandlerContext(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 = sqlParser.RULE_storageHandler;
return this;
}
StorageHandlerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
StorageHandlerContext.prototype.constructor = StorageHandlerContext;
StorageHandlerContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
StorageHandlerContext.prototype.WITH = function () {
return this.getToken(sqlParser.WITH, 0);
};
StorageHandlerContext.prototype.SERDEPROPERTIES = function () {
return this.getToken(sqlParser.SERDEPROPERTIES, 0);
};
StorageHandlerContext.prototype.tablePropertyList = function () {
return this.getTypedRuleContext(TablePropertyListContext, 0);
};
StorageHandlerContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterStorageHandler(this);
}
};
StorageHandlerContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitStorageHandler(this);
}
};
StorageHandlerContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitStorageHandler(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.StorageHandlerContext = StorageHandlerContext;
sqlParser.prototype.storageHandler = function () {
var localctx = new StorageHandlerContext(this, this._ctx, this.state);
this.enterRule(localctx, 60, sqlParser.RULE_storageHandler);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1269;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
2019-09-25 16:53:32 +08:00
this.state = 1273;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 145, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1270;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.WITH);
2019-09-25 16:53:32 +08:00
this.state = 1271;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SERDEPROPERTIES);
2019-09-25 16:53:32 +08:00
this.state = 1272;
2019-09-25 15:43:36 +08:00
this.tablePropertyList();
}
}
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 ResourceContext(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 = sqlParser.RULE_resource;
return this;
}
ResourceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ResourceContext.prototype.constructor = ResourceContext;
ResourceContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
ResourceContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
ResourceContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterResource(this);
}
};
ResourceContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitResource(this);
}
};
ResourceContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitResource(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.ResourceContext = ResourceContext;
sqlParser.prototype.resource = function () {
var localctx = new ResourceContext(this, this._ctx, this.state);
this.enterRule(localctx, 62, sqlParser.RULE_resource);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1275;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 1276;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
}
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 QueryNoWithContext(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 = sqlParser.RULE_queryNoWith;
return this;
}
QueryNoWithContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
QueryNoWithContext.prototype.constructor = QueryNoWithContext;
QueryNoWithContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function SingleInsertQueryContext(parser, ctx) {
QueryNoWithContext.call(this, parser);
QueryNoWithContext.prototype.copyFrom.call(this, ctx);
return this;
}
SingleInsertQueryContext.prototype = Object.create(QueryNoWithContext.prototype);
SingleInsertQueryContext.prototype.constructor = SingleInsertQueryContext;
sqlParser.SingleInsertQueryContext = SingleInsertQueryContext;
SingleInsertQueryContext.prototype.queryTerm = function () {
return this.getTypedRuleContext(QueryTermContext, 0);
};
SingleInsertQueryContext.prototype.queryOrganization = function () {
return this.getTypedRuleContext(QueryOrganizationContext, 0);
};
SingleInsertQueryContext.prototype.insertInto = function () {
return this.getTypedRuleContext(InsertIntoContext, 0);
};
SingleInsertQueryContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSingleInsertQuery(this);
}
};
SingleInsertQueryContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSingleInsertQuery(this);
}
};
SingleInsertQueryContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSingleInsertQuery(this);
}
else {
return visitor.visitChildren(this);
}
};
function MultiInsertQueryContext(parser, ctx) {
QueryNoWithContext.call(this, parser);
QueryNoWithContext.prototype.copyFrom.call(this, ctx);
return this;
}
MultiInsertQueryContext.prototype = Object.create(QueryNoWithContext.prototype);
MultiInsertQueryContext.prototype.constructor = MultiInsertQueryContext;
sqlParser.MultiInsertQueryContext = MultiInsertQueryContext;
MultiInsertQueryContext.prototype.fromClause = function () {
return this.getTypedRuleContext(FromClauseContext, 0);
};
MultiInsertQueryContext.prototype.multiInsertQueryBody = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(MultiInsertQueryBodyContext);
}
else {
return this.getTypedRuleContext(MultiInsertQueryBodyContext, i);
}
};
MultiInsertQueryContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterMultiInsertQuery(this);
}
};
MultiInsertQueryContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitMultiInsertQuery(this);
}
};
MultiInsertQueryContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitMultiInsertQuery(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.QueryNoWithContext = QueryNoWithContext;
sqlParser.prototype.queryNoWith = function () {
var localctx = new QueryNoWithContext(this, this._ctx, this.state);
this.enterRule(localctx, 64, sqlParser.RULE_queryNoWith);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 1290;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 148, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new SingleInsertQueryContext(this, localctx);
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1279;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.INSERT) {
2019-09-25 16:53:32 +08:00
this.state = 1278;
2019-09-25 15:43:36 +08:00
this.insertInto();
}
2019-09-25 16:53:32 +08:00
this.state = 1281;
2019-09-25 15:43:36 +08:00
this.queryTerm(0);
2019-09-25 16:53:32 +08:00
this.state = 1282;
2019-09-25 15:43:36 +08:00
this.queryOrganization();
break;
case 2:
localctx = new MultiInsertQueryContext(this, localctx);
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1284;
2019-09-25 15:43:36 +08:00
this.fromClause();
2019-09-25 16:53:32 +08:00
this.state = 1286;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
do {
this.state = 1285;
2019-09-25 16:53:32 +08:00
this.multiInsertQueryBody();
this.state = 1288;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
} while (_la === sqlParser.SELECT || _la === sqlParser.FROM || _la === sqlParser.INSERT || _la === sqlParser.MAP || _la === sqlParser.REDUCE);
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 QueryOrganizationContext(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 = sqlParser.RULE_queryOrganization;
this._sortItem = null; // SortItemContext
this.order = []; // of SortItemContexts
this._expression = null; // ExpressionContext
this.clusterBy = []; // of ExpressionContexts
this.distributeBy = []; // of ExpressionContexts
this.sort = []; // of SortItemContexts
this.limit = null; // ExpressionContext
return this;
}
QueryOrganizationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
QueryOrganizationContext.prototype.constructor = QueryOrganizationContext;
QueryOrganizationContext.prototype.ORDER = function () {
return this.getToken(sqlParser.ORDER, 0);
};
QueryOrganizationContext.prototype.BY = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.BY);
}
else {
return this.getToken(sqlParser.BY, i);
}
};
QueryOrganizationContext.prototype.CLUSTER = function () {
return this.getToken(sqlParser.CLUSTER, 0);
};
QueryOrganizationContext.prototype.DISTRIBUTE = function () {
return this.getToken(sqlParser.DISTRIBUTE, 0);
};
QueryOrganizationContext.prototype.SORT = function () {
return this.getToken(sqlParser.SORT, 0);
};
QueryOrganizationContext.prototype.windows = function () {
return this.getTypedRuleContext(WindowsContext, 0);
};
QueryOrganizationContext.prototype.LIMIT = function () {
return this.getToken(sqlParser.LIMIT, 0);
};
QueryOrganizationContext.prototype.sortItem = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(SortItemContext);
}
else {
return this.getTypedRuleContext(SortItemContext, i);
}
};
QueryOrganizationContext.prototype.expression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ExpressionContext);
}
else {
return this.getTypedRuleContext(ExpressionContext, i);
}
};
QueryOrganizationContext.prototype.ALL = function () {
return this.getToken(sqlParser.ALL, 0);
};
QueryOrganizationContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterQueryOrganization(this);
}
};
QueryOrganizationContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitQueryOrganization(this);
}
};
QueryOrganizationContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitQueryOrganization(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.QueryOrganizationContext = QueryOrganizationContext;
sqlParser.prototype.queryOrganization = function () {
var localctx = new QueryOrganizationContext(this, this._ctx, this.state);
this.enterRule(localctx, 66, sqlParser.RULE_queryOrganization);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1302;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.ORDER) {
2019-09-25 16:53:32 +08:00
this.state = 1292;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ORDER);
2019-09-25 16:53:32 +08:00
this.state = 1293;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1294;
2019-09-25 15:43:36 +08:00
localctx._sortItem = this.sortItem();
localctx.order.push(localctx._sortItem);
2019-09-25 16:53:32 +08:00
this.state = 1299;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1295;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1296;
2019-09-25 15:43:36 +08:00
localctx._sortItem = this.sortItem();
localctx.order.push(localctx._sortItem);
2019-09-25 16:53:32 +08:00
this.state = 1301;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
}
2019-09-25 16:53:32 +08:00
this.state = 1314;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.CLUSTER) {
2019-09-25 16:53:32 +08:00
this.state = 1304;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CLUSTER);
2019-09-25 16:53:32 +08:00
this.state = 1305;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1306;
2019-09-25 15:43:36 +08:00
localctx._expression = this.expression();
localctx.clusterBy.push(localctx._expression);
2019-09-25 16:53:32 +08:00
this.state = 1311;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1307;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1308;
2019-09-25 15:43:36 +08:00
localctx._expression = this.expression();
localctx.clusterBy.push(localctx._expression);
2019-09-25 16:53:32 +08:00
this.state = 1313;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
}
2019-09-25 16:53:32 +08:00
this.state = 1326;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.DISTRIBUTE) {
2019-09-25 16:53:32 +08:00
this.state = 1316;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DISTRIBUTE);
2019-09-25 16:53:32 +08:00
this.state = 1317;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1318;
2019-09-25 15:43:36 +08:00
localctx._expression = this.expression();
localctx.distributeBy.push(localctx._expression);
2019-09-25 16:53:32 +08:00
this.state = 1323;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1319;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1320;
2019-09-25 15:43:36 +08:00
localctx._expression = this.expression();
localctx.distributeBy.push(localctx._expression);
2019-09-25 16:53:32 +08:00
this.state = 1325;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
}
2019-09-25 16:53:32 +08:00
this.state = 1338;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.SORT) {
2019-09-25 16:53:32 +08:00
this.state = 1328;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SORT);
2019-09-25 16:53:32 +08:00
this.state = 1329;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1330;
2019-09-25 15:43:36 +08:00
localctx._sortItem = this.sortItem();
localctx.sort.push(localctx._sortItem);
2019-09-25 16:53:32 +08:00
this.state = 1335;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1331;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1332;
2019-09-25 15:43:36 +08:00
localctx._sortItem = this.sortItem();
localctx.sort.push(localctx._sortItem);
2019-09-25 16:53:32 +08:00
this.state = 1337;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
}
2019-09-25 16:53:32 +08:00
this.state = 1341;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.WINDOW) {
2019-09-25 16:53:32 +08:00
this.state = 1340;
2019-09-25 15:43:36 +08:00
this.windows();
}
2019-09-25 16:53:32 +08:00
this.state = 1348;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.LIMIT) {
this.state = 1343;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.LIMIT);
this.state = 1346;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 158, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
2019-09-25 16:53:32 +08:00
this.state = 1344;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ALL);
break;
case 2:
2019-09-25 16:53:32 +08:00
this.state = 1345;
2019-09-25 15:43:36 +08:00
localctx.limit = this.expression();
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 MultiInsertQueryBodyContext(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 = sqlParser.RULE_multiInsertQueryBody;
return this;
}
MultiInsertQueryBodyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
MultiInsertQueryBodyContext.prototype.constructor = MultiInsertQueryBodyContext;
MultiInsertQueryBodyContext.prototype.querySpecification = function () {
return this.getTypedRuleContext(QuerySpecificationContext, 0);
};
MultiInsertQueryBodyContext.prototype.queryOrganization = function () {
return this.getTypedRuleContext(QueryOrganizationContext, 0);
};
MultiInsertQueryBodyContext.prototype.insertInto = function () {
return this.getTypedRuleContext(InsertIntoContext, 0);
};
MultiInsertQueryBodyContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterMultiInsertQueryBody(this);
}
};
MultiInsertQueryBodyContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitMultiInsertQueryBody(this);
}
};
MultiInsertQueryBodyContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitMultiInsertQueryBody(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.MultiInsertQueryBodyContext = MultiInsertQueryBodyContext;
sqlParser.prototype.multiInsertQueryBody = function () {
var localctx = new MultiInsertQueryBodyContext(this, this._ctx, this.state);
this.enterRule(localctx, 68, sqlParser.RULE_multiInsertQueryBody);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1351;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.INSERT) {
2019-09-25 16:53:32 +08:00
this.state = 1350;
2019-09-25 15:43:36 +08:00
this.insertInto();
}
2019-09-25 16:53:32 +08:00
this.state = 1353;
2019-09-25 15:43:36 +08:00
this.querySpecification();
2019-09-25 16:53:32 +08:00
this.state = 1354;
2019-09-25 15:43:36 +08:00
this.queryOrganization();
}
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 QueryTermContext(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 = sqlParser.RULE_queryTerm;
return this;
}
QueryTermContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
QueryTermContext.prototype.constructor = QueryTermContext;
QueryTermContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function QueryTermDefaultContext(parser, ctx) {
QueryTermContext.call(this, parser);
QueryTermContext.prototype.copyFrom.call(this, ctx);
return this;
}
QueryTermDefaultContext.prototype = Object.create(QueryTermContext.prototype);
QueryTermDefaultContext.prototype.constructor = QueryTermDefaultContext;
sqlParser.QueryTermDefaultContext = QueryTermDefaultContext;
QueryTermDefaultContext.prototype.queryPrimary = function () {
return this.getTypedRuleContext(QueryPrimaryContext, 0);
};
QueryTermDefaultContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterQueryTermDefault(this);
}
};
QueryTermDefaultContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitQueryTermDefault(this);
}
};
QueryTermDefaultContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitQueryTermDefault(this);
}
else {
return visitor.visitChildren(this);
}
};
function SetOperationContext(parser, ctx) {
QueryTermContext.call(this, parser);
this.left = null; // QueryTermContext;
this.operator = null; // Token;
this.right = null; // QueryTermContext;
QueryTermContext.prototype.copyFrom.call(this, ctx);
return this;
}
SetOperationContext.prototype = Object.create(QueryTermContext.prototype);
SetOperationContext.prototype.constructor = SetOperationContext;
sqlParser.SetOperationContext = SetOperationContext;
SetOperationContext.prototype.queryTerm = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(QueryTermContext);
}
else {
return this.getTypedRuleContext(QueryTermContext, i);
}
};
SetOperationContext.prototype.INTERSECT = function () {
return this.getToken(sqlParser.INTERSECT, 0);
};
SetOperationContext.prototype.UNION = function () {
return this.getToken(sqlParser.UNION, 0);
};
SetOperationContext.prototype.EXCEPT = function () {
return this.getToken(sqlParser.EXCEPT, 0);
};
SetOperationContext.prototype.SETMINUS = function () {
return this.getToken(sqlParser.SETMINUS, 0);
};
SetOperationContext.prototype.setQuantifier = function () {
return this.getTypedRuleContext(SetQuantifierContext, 0);
};
SetOperationContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSetOperation(this);
}
};
SetOperationContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSetOperation(this);
}
};
SetOperationContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSetOperation(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.prototype.queryTerm = function (_p) {
if (_p === undefined) {
_p = 0;
}
var _parentctx = this._ctx;
var _parentState = this.state;
var localctx = new QueryTermContext(this, this._ctx, _parentState);
var _prevctx = localctx;
var _startState = 70;
this.enterRecursionRule(localctx, 70, sqlParser.RULE_queryTerm, _p);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
localctx = new QueryTermDefaultContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 1357;
2019-09-25 15:43:36 +08:00
this.queryPrimary();
this._ctx.stop = this._input.LT(-1);
2019-09-25 16:53:32 +08:00
this.state = 1382;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 165, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
if (this._parseListeners !== null) {
this.triggerExitRuleEvent();
}
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 1380;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 164, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new SetOperationContext(this, new QueryTermContext(this, _parentctx, _parentState));
localctx.left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_queryTerm);
2019-09-25 16:53:32 +08:00
this.state = 1359;
2019-09-25 15:43:36 +08:00
if (!(this.precpred(this._ctx, 3))) {
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)");
}
2019-09-25 16:53:32 +08:00
this.state = 1360;
2019-09-25 15:43:36 +08:00
if (!(this.legacy_setops_precedence_enbled)) {
throw new antlr4.error.FailedPredicateException(this, "this.legacy_setops_precedence_enbled");
}
2019-09-25 16:53:32 +08:00
this.state = 1361;
2019-09-25 15:43:36 +08:00
localctx.operator = this._input.LT(1);
_la = this._input.LA(1);
if (!(((((_la - 102)) & ~0x1f) == 0 && ((1 << (_la - 102)) & ((1 << (sqlParser.UNION - 102)) | (1 << (sqlParser.EXCEPT - 102)) | (1 << (sqlParser.SETMINUS - 102)) | (1 << (sqlParser.INTERSECT - 102)))) !== 0))) {
localctx.operator = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 1363;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.ALL || _la === sqlParser.DISTINCT) {
2019-09-25 16:53:32 +08:00
this.state = 1362;
2019-09-25 15:43:36 +08:00
this.setQuantifier();
}
2019-09-25 16:53:32 +08:00
this.state = 1365;
2019-09-25 15:43:36 +08:00
localctx.right = this.queryTerm(4);
break;
case 2:
localctx = new SetOperationContext(this, new QueryTermContext(this, _parentctx, _parentState));
localctx.left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_queryTerm);
2019-09-25 16:53:32 +08:00
this.state = 1366;
2019-09-25 15:43:36 +08:00
if (!(this.precpred(this._ctx, 2))) {
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)");
}
2019-09-25 16:53:32 +08:00
this.state = 1367;
2019-09-25 15:43:36 +08:00
if (!(!this.legacy_setops_precedence_enbled)) {
throw new antlr4.error.FailedPredicateException(this, "!this.legacy_setops_precedence_enbled");
}
2019-09-25 16:53:32 +08:00
this.state = 1368;
2019-09-25 15:43:36 +08:00
localctx.operator = this.match(sqlParser.INTERSECT);
2019-09-25 16:53:32 +08:00
this.state = 1370;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.ALL || _la === sqlParser.DISTINCT) {
2019-09-25 16:53:32 +08:00
this.state = 1369;
2019-09-25 15:43:36 +08:00
this.setQuantifier();
}
2019-09-25 16:53:32 +08:00
this.state = 1372;
2019-09-25 15:43:36 +08:00
localctx.right = this.queryTerm(3);
break;
case 3:
localctx = new SetOperationContext(this, new QueryTermContext(this, _parentctx, _parentState));
localctx.left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_queryTerm);
2019-09-25 16:53:32 +08:00
this.state = 1373;
2019-09-25 15:43:36 +08:00
if (!(this.precpred(this._ctx, 1))) {
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)");
}
2019-09-25 16:53:32 +08:00
this.state = 1374;
2019-09-25 15:43:36 +08:00
if (!(!this.legacy_setops_precedence_enbled)) {
throw new antlr4.error.FailedPredicateException(this, "!this.legacy_setops_precedence_enbled");
}
2019-09-25 16:53:32 +08:00
this.state = 1375;
2019-09-25 15:43:36 +08:00
localctx.operator = this._input.LT(1);
_la = this._input.LA(1);
if (!(((((_la - 102)) & ~0x1f) == 0 && ((1 << (_la - 102)) & ((1 << (sqlParser.UNION - 102)) | (1 << (sqlParser.EXCEPT - 102)) | (1 << (sqlParser.SETMINUS - 102)))) !== 0))) {
localctx.operator = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 1377;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.ALL || _la === sqlParser.DISTINCT) {
2019-09-25 16:53:32 +08:00
this.state = 1376;
2019-09-25 15:43:36 +08:00
this.setQuantifier();
}
2019-09-25 16:53:32 +08:00
this.state = 1379;
2019-09-25 15:43:36 +08:00
localctx.right = this.queryTerm(2);
break;
}
}
2019-09-25 16:53:32 +08:00
this.state = 1384;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 165, this._ctx);
2019-09-25 15:43:36 +08:00
}
}
catch (error) {
if (error instanceof antlr4.error.RecognitionException) {
localctx.exception = error;
this._errHandler.reportError(this, error);
this._errHandler.recover(this, error);
}
else {
throw error;
}
}
finally {
this.unrollRecursionContexts(_parentctx);
}
return localctx;
};
function QueryPrimaryContext(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 = sqlParser.RULE_queryPrimary;
return this;
}
QueryPrimaryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
QueryPrimaryContext.prototype.constructor = QueryPrimaryContext;
QueryPrimaryContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function SubqueryContext(parser, ctx) {
QueryPrimaryContext.call(this, parser);
QueryPrimaryContext.prototype.copyFrom.call(this, ctx);
return this;
}
SubqueryContext.prototype = Object.create(QueryPrimaryContext.prototype);
SubqueryContext.prototype.constructor = SubqueryContext;
sqlParser.SubqueryContext = SubqueryContext;
SubqueryContext.prototype.queryNoWith = function () {
return this.getTypedRuleContext(QueryNoWithContext, 0);
};
SubqueryContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSubquery(this);
}
};
SubqueryContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSubquery(this);
}
};
SubqueryContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSubquery(this);
}
else {
return visitor.visitChildren(this);
}
};
function QueryPrimaryDefaultContext(parser, ctx) {
QueryPrimaryContext.call(this, parser);
QueryPrimaryContext.prototype.copyFrom.call(this, ctx);
return this;
}
QueryPrimaryDefaultContext.prototype = Object.create(QueryPrimaryContext.prototype);
QueryPrimaryDefaultContext.prototype.constructor = QueryPrimaryDefaultContext;
sqlParser.QueryPrimaryDefaultContext = QueryPrimaryDefaultContext;
QueryPrimaryDefaultContext.prototype.querySpecification = function () {
return this.getTypedRuleContext(QuerySpecificationContext, 0);
};
QueryPrimaryDefaultContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterQueryPrimaryDefault(this);
}
};
QueryPrimaryDefaultContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitQueryPrimaryDefault(this);
}
};
QueryPrimaryDefaultContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitQueryPrimaryDefault(this);
}
else {
return visitor.visitChildren(this);
}
};
function InlineTableDefault1Context(parser, ctx) {
QueryPrimaryContext.call(this, parser);
QueryPrimaryContext.prototype.copyFrom.call(this, ctx);
return this;
}
InlineTableDefault1Context.prototype = Object.create(QueryPrimaryContext.prototype);
InlineTableDefault1Context.prototype.constructor = InlineTableDefault1Context;
sqlParser.InlineTableDefault1Context = InlineTableDefault1Context;
InlineTableDefault1Context.prototype.inlineTable = function () {
return this.getTypedRuleContext(InlineTableContext, 0);
};
InlineTableDefault1Context.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterInlineTableDefault1(this);
}
};
InlineTableDefault1Context.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitInlineTableDefault1(this);
}
};
InlineTableDefault1Context.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitInlineTableDefault1(this);
}
else {
return visitor.visitChildren(this);
}
};
function TableContext(parser, ctx) {
QueryPrimaryContext.call(this, parser);
QueryPrimaryContext.prototype.copyFrom.call(this, ctx);
return this;
}
TableContext.prototype = Object.create(QueryPrimaryContext.prototype);
TableContext.prototype.constructor = TableContext;
sqlParser.TableContext = TableContext;
TableContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
TableContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
TableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterTable(this);
}
};
TableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitTable(this);
}
};
TableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitTable(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.QueryPrimaryContext = QueryPrimaryContext;
sqlParser.prototype.queryPrimary = function () {
var localctx = new QueryPrimaryContext(this, this._ctx, this.state);
this.enterRule(localctx, 72, sqlParser.RULE_queryPrimary);
try {
2019-09-25 16:53:32 +08:00
this.state = 1393;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.SELECT:
case sqlParser.FROM:
case sqlParser.MAP:
case sqlParser.REDUCE:
localctx = new QueryPrimaryDefaultContext(this, localctx);
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1385;
2019-09-25 15:43:36 +08:00
this.querySpecification();
break;
case sqlParser.TABLE:
localctx = new TableContext(this, localctx);
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1386;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLE);
2019-09-25 16:53:32 +08:00
this.state = 1387;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
break;
case sqlParser.VALUES:
localctx = new InlineTableDefault1Context(this, localctx);
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 1388;
2019-09-25 15:43:36 +08:00
this.inlineTable();
break;
case sqlParser.T__0:
localctx = new SubqueryContext(this, localctx);
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 1389;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1390;
2019-09-25 15:43:36 +08:00
this.queryNoWith();
2019-09-25 16:53:32 +08:00
this.state = 1391;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
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 SortItemContext(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 = sqlParser.RULE_sortItem;
this.ordering = null; // Token
this.nullOrder = null; // Token
return this;
}
SortItemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SortItemContext.prototype.constructor = SortItemContext;
SortItemContext.prototype.expression = function () {
return this.getTypedRuleContext(ExpressionContext, 0);
};
SortItemContext.prototype.NULLS = function () {
return this.getToken(sqlParser.NULLS, 0);
};
SortItemContext.prototype.ASC = function () {
return this.getToken(sqlParser.ASC, 0);
};
SortItemContext.prototype.DESC = function () {
return this.getToken(sqlParser.DESC, 0);
};
SortItemContext.prototype.LAST = function () {
return this.getToken(sqlParser.LAST, 0);
};
SortItemContext.prototype.FIRST = function () {
return this.getToken(sqlParser.FIRST, 0);
};
SortItemContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSortItem(this);
}
};
SortItemContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSortItem(this);
}
};
SortItemContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSortItem(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.SortItemContext = SortItemContext;
sqlParser.prototype.sortItem = function () {
var localctx = new SortItemContext(this, this._ctx, this.state);
this.enterRule(localctx, 74, sqlParser.RULE_sortItem);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1395;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 1397;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.ASC || _la === sqlParser.DESC) {
2019-09-25 16:53:32 +08:00
this.state = 1396;
2019-09-25 15:43:36 +08:00
localctx.ordering = this._input.LT(1);
_la = this._input.LA(1);
if (!(_la === sqlParser.ASC || _la === sqlParser.DESC)) {
localctx.ordering = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
}
2019-09-25 16:53:32 +08:00
this.state = 1401;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.NULLS) {
2019-09-25 16:53:32 +08:00
this.state = 1399;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NULLS);
2019-09-25 16:53:32 +08:00
this.state = 1400;
2019-09-25 15:43:36 +08:00
localctx.nullOrder = this._input.LT(1);
_la = this._input.LA(1);
if (!(_la === sqlParser.FIRST || _la === sqlParser.LAST)) {
localctx.nullOrder = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
}
}
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 QuerySpecificationContext(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 = sqlParser.RULE_querySpecification;
this.kind = null; // Token
this.inRowFormat = null; // RowFormatContext
this.recordWriter = null; // Token
this.script = null; // Token
this.outRowFormat = null; // RowFormatContext
this.recordReader = null; // Token
this.where = null; // BooleanExpressionContext
this._hint = null; // HintContext
this.hints = []; // of HintContexts
this.having = null; // BooleanExpressionContext
return this;
}
QuerySpecificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
QuerySpecificationContext.prototype.constructor = QuerySpecificationContext;
QuerySpecificationContext.prototype.USING = function () {
return this.getToken(sqlParser.USING, 0);
};
QuerySpecificationContext.prototype.STRING = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.STRING);
}
else {
return this.getToken(sqlParser.STRING, i);
}
};
QuerySpecificationContext.prototype.RECORDWRITER = function () {
return this.getToken(sqlParser.RECORDWRITER, 0);
};
QuerySpecificationContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
QuerySpecificationContext.prototype.RECORDREADER = function () {
return this.getToken(sqlParser.RECORDREADER, 0);
};
QuerySpecificationContext.prototype.fromClause = function () {
return this.getTypedRuleContext(FromClauseContext, 0);
};
QuerySpecificationContext.prototype.WHERE = function () {
return this.getToken(sqlParser.WHERE, 0);
};
QuerySpecificationContext.prototype.SELECT = function () {
return this.getToken(sqlParser.SELECT, 0);
};
QuerySpecificationContext.prototype.namedExpressionSeq = function () {
return this.getTypedRuleContext(NamedExpressionSeqContext, 0);
};
QuerySpecificationContext.prototype.rowFormat = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(RowFormatContext);
}
else {
return this.getTypedRuleContext(RowFormatContext, i);
}
};
QuerySpecificationContext.prototype.booleanExpression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(BooleanExpressionContext);
}
else {
return this.getTypedRuleContext(BooleanExpressionContext, i);
}
};
QuerySpecificationContext.prototype.TRANSFORM = function () {
return this.getToken(sqlParser.TRANSFORM, 0);
};
QuerySpecificationContext.prototype.MAP = function () {
return this.getToken(sqlParser.MAP, 0);
};
QuerySpecificationContext.prototype.REDUCE = function () {
return this.getToken(sqlParser.REDUCE, 0);
};
QuerySpecificationContext.prototype.identifierSeq = function () {
return this.getTypedRuleContext(IdentifierSeqContext, 0);
};
QuerySpecificationContext.prototype.colTypeList = function () {
return this.getTypedRuleContext(ColTypeListContext, 0);
};
QuerySpecificationContext.prototype.lateralView = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(LateralViewContext);
}
else {
return this.getTypedRuleContext(LateralViewContext, i);
}
};
QuerySpecificationContext.prototype.aggregation = function () {
return this.getTypedRuleContext(AggregationContext, 0);
};
QuerySpecificationContext.prototype.HAVING = function () {
return this.getToken(sqlParser.HAVING, 0);
};
QuerySpecificationContext.prototype.windows = function () {
return this.getTypedRuleContext(WindowsContext, 0);
};
QuerySpecificationContext.prototype.setQuantifier = function () {
return this.getTypedRuleContext(SetQuantifierContext, 0);
};
QuerySpecificationContext.prototype.hint = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(HintContext);
}
else {
return this.getTypedRuleContext(HintContext, i);
}
};
QuerySpecificationContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterQuerySpecification(this);
}
};
QuerySpecificationContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitQuerySpecification(this);
}
};
QuerySpecificationContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitQuerySpecification(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.QuerySpecificationContext = QuerySpecificationContext;
sqlParser.prototype.querySpecification = function () {
var localctx = new QuerySpecificationContext(this, this._ctx, this.state);
this.enterRule(localctx, 76, sqlParser.RULE_querySpecification);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 1496;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 190, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1413;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.SELECT:
2019-09-25 16:53:32 +08:00
this.state = 1403;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SELECT);
2019-09-25 16:53:32 +08:00
this.state = 1404;
2019-09-25 15:43:36 +08:00
localctx.kind = this.match(sqlParser.TRANSFORM);
2019-09-25 16:53:32 +08:00
this.state = 1405;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1406;
2019-09-25 15:43:36 +08:00
this.namedExpressionSeq();
2019-09-25 16:53:32 +08:00
this.state = 1407;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case sqlParser.MAP:
2019-09-25 16:53:32 +08:00
this.state = 1409;
2019-09-25 15:43:36 +08:00
localctx.kind = this.match(sqlParser.MAP);
2019-09-25 16:53:32 +08:00
this.state = 1410;
2019-09-25 15:43:36 +08:00
this.namedExpressionSeq();
break;
case sqlParser.REDUCE:
2019-09-25 16:53:32 +08:00
this.state = 1411;
2019-09-25 15:43:36 +08:00
localctx.kind = this.match(sqlParser.REDUCE);
2019-09-25 16:53:32 +08:00
this.state = 1412;
2019-09-25 15:43:36 +08:00
this.namedExpressionSeq();
break;
default:
throw new antlr4.error.NoViableAltException(this);
}
2019-09-25 16:53:32 +08:00
this.state = 1416;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.ROW) {
2019-09-25 16:53:32 +08:00
this.state = 1415;
2019-09-25 15:43:36 +08:00
localctx.inRowFormat = this.rowFormat();
}
2019-09-25 16:53:32 +08:00
this.state = 1420;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.RECORDWRITER) {
2019-09-25 16:53:32 +08:00
this.state = 1418;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.RECORDWRITER);
2019-09-25 16:53:32 +08:00
this.state = 1419;
2019-09-25 15:43:36 +08:00
localctx.recordWriter = this.match(sqlParser.STRING);
}
2019-09-25 16:53:32 +08:00
this.state = 1422;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.USING);
2019-09-25 16:53:32 +08:00
this.state = 1423;
2019-09-25 15:43:36 +08:00
localctx.script = this.match(sqlParser.STRING);
2019-09-25 16:53:32 +08:00
this.state = 1436;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 174, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1424;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
2019-09-25 16:53:32 +08:00
this.state = 1434;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 173, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
2019-09-25 16:53:32 +08:00
this.state = 1425;
2019-09-25 15:43:36 +08:00
this.identifierSeq();
break;
case 2:
2019-09-25 16:53:32 +08:00
this.state = 1426;
2019-09-25 15:43:36 +08:00
this.colTypeList();
break;
case 3:
this.state = 1427;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.T__0);
this.state = 1430;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 172, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
2019-09-25 16:53:32 +08:00
this.state = 1428;
2019-09-25 15:43:36 +08:00
this.identifierSeq();
break;
case 2:
2019-09-25 16:53:32 +08:00
this.state = 1429;
2019-09-25 15:43:36 +08:00
this.colTypeList();
break;
}
2019-09-25 16:53:32 +08:00
this.state = 1432;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
}
}
2019-09-25 16:53:32 +08:00
this.state = 1439;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
var la_ = this._interp.adaptivePredict(this._input, 175, this._ctx);
if (la_ === 1) {
this.state = 1438;
2019-09-25 16:53:32 +08:00
localctx.outRowFormat = this.rowFormat();
2019-09-25 15:43:36 +08:00
}
this.state = 1443;
this._errHandler.sync(this);
var la_ = this._interp.adaptivePredict(this._input, 176, this._ctx);
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1441;
this.match(sqlParser.RECORDREADER);
2019-09-25 15:43:36 +08:00
this.state = 1442;
2019-09-25 16:53:32 +08:00
localctx.recordReader = this.match(sqlParser.STRING);
2019-09-25 15:43:36 +08:00
}
2019-09-25 16:53:32 +08:00
this.state = 1446;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
var la_ = this._interp.adaptivePredict(this._input, 177, this._ctx);
if (la_ === 1) {
this.state = 1445;
2019-09-25 16:53:32 +08:00
this.fromClause();
}
this.state = 1450;
this._errHandler.sync(this);
var la_ = this._interp.adaptivePredict(this._input, 178, this._ctx);
if (la_ === 1) {
this.state = 1448;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.WHERE);
2019-09-25 16:53:32 +08:00
this.state = 1449;
2019-09-25 15:43:36 +08:00
localctx.where = this.booleanExpression(0);
}
break;
case 2:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1474;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.SELECT:
2019-09-25 16:53:32 +08:00
this.state = 1452;
2019-09-25 15:43:36 +08:00
localctx.kind = this.match(sqlParser.SELECT);
2019-09-25 16:53:32 +08:00
this.state = 1456;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__4) {
2019-09-25 16:53:32 +08:00
this.state = 1453;
2019-09-25 15:43:36 +08:00
localctx._hint = this.hint();
localctx.hints.push(localctx._hint);
2019-09-25 16:53:32 +08:00
this.state = 1458;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 1460;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 180, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1459;
2019-09-25 15:43:36 +08:00
this.setQuantifier();
}
2019-09-25 16:53:32 +08:00
this.state = 1462;
2019-09-25 15:43:36 +08:00
this.namedExpressionSeq();
2019-09-25 16:53:32 +08:00
this.state = 1464;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 181, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1463;
2019-09-25 15:43:36 +08:00
this.fromClause();
}
break;
case sqlParser.FROM:
2019-09-25 16:53:32 +08:00
this.state = 1466;
2019-09-25 15:43:36 +08:00
this.fromClause();
2019-09-25 16:53:32 +08:00
this.state = 1472;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 183, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1467;
2019-09-25 15:43:36 +08:00
localctx.kind = this.match(sqlParser.SELECT);
2019-09-25 16:53:32 +08:00
this.state = 1469;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 182, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1468;
2019-09-25 15:43:36 +08:00
this.setQuantifier();
}
2019-09-25 16:53:32 +08:00
this.state = 1471;
2019-09-25 15:43:36 +08:00
this.namedExpressionSeq();
}
break;
default:
throw new antlr4.error.NoViableAltException(this);
}
2019-09-25 16:53:32 +08:00
this.state = 1479;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 185, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1476;
2019-09-25 15:43:36 +08:00
this.lateralView();
}
2019-09-25 16:53:32 +08:00
this.state = 1481;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 185, this._ctx);
2019-09-25 15:43:36 +08:00
}
this.state = 1484;
this._errHandler.sync(this);
var la_ = this._interp.adaptivePredict(this._input, 186, this._ctx);
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1482;
this.match(sqlParser.WHERE);
2019-09-25 15:43:36 +08:00
this.state = 1483;
2019-09-25 16:53:32 +08:00
localctx.where = this.booleanExpression(0);
2019-09-25 15:43:36 +08:00
}
2019-09-25 16:53:32 +08:00
this.state = 1487;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
var la_ = this._interp.adaptivePredict(this._input, 187, this._ctx);
if (la_ === 1) {
this.state = 1486;
2019-09-25 16:53:32 +08:00
this.aggregation();
2019-09-25 15:43:36 +08:00
}
this.state = 1491;
this._errHandler.sync(this);
var la_ = this._interp.adaptivePredict(this._input, 188, this._ctx);
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1489;
this.match(sqlParser.HAVING);
2019-09-25 15:43:36 +08:00
this.state = 1490;
2019-09-25 16:53:32 +08:00
localctx.having = this.booleanExpression(0);
}
this.state = 1494;
this._errHandler.sync(this);
var la_ = this._interp.adaptivePredict(this._input, 189, this._ctx);
if (la_ === 1) {
this.state = 1493;
2019-09-25 15:43:36 +08:00
this.windows();
}
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 HintContext(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 = sqlParser.RULE_hint;
this._hintStatement = null; // HintStatementContext
this.hintStatements = []; // of HintStatementContexts
return this;
}
HintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
HintContext.prototype.constructor = HintContext;
HintContext.prototype.hintStatement = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(HintStatementContext);
}
else {
return this.getTypedRuleContext(HintStatementContext, i);
}
};
HintContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterHint(this);
}
};
HintContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitHint(this);
}
};
HintContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitHint(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.HintContext = HintContext;
sqlParser.prototype.hint = function () {
var localctx = new HintContext(this, this._ctx, this.state);
this.enterRule(localctx, 78, sqlParser.RULE_hint);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1498;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__4);
2019-09-25 16:53:32 +08:00
this.state = 1499;
2019-09-25 15:43:36 +08:00
localctx._hintStatement = this.hintStatement();
localctx.hintStatements.push(localctx._hintStatement);
2019-09-25 16:53:32 +08:00
this.state = 1506;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__3) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER) | (1 << sqlParser.HAVING) | (1 << sqlParser.LIMIT) | (1 << sqlParser.AT) | (1 << sqlParser.OR) | (1 << sqlParser.AND) | (1 << sqlParser.IN))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)) | (1 << (sqlParser.RIGHT - 32)) | (1 << (sqlParser.FULL - 32)) | (1 << (sqlParser.NATURAL - 32)) | (1 << (sqlParser.ON - 32)) | (1 << (sqlParser.PIVOT - 32)) | (1 << (sqlParser.LATERAL - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.VALUES - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)) | (1 << (sqlParser.LOGICAL - 64)) | (1 << (sqlParser.CODEGEN - 64)) | (1 << (sqlParser.COST - 64)) | (1 << (sqlParser.CAST - 64)) | (1 << (sqlParser.SHOW - 64)) | (1 << (sqlParser.TABLES - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)) | (1 << (sqlParser.MACRO - 96)) | (1 << (sqlParser.IGNORE - 96)) | (1 << (sqlParser.BOTH - 96)) | (1 << (sqlParser.LEADING - 96)) | (1 << (sqlParser.TRAILING - 96)) | (1 << (sqlParser.IF - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.PERCENTLIT - 12
2019-09-25 16:53:32 +08:00
this.state = 1501;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1500;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
}
2019-09-25 16:53:32 +08:00
this.state = 1503;
2019-09-25 15:43:36 +08:00
localctx._hintStatement = this.hintStatement();
localctx.hintStatements.push(localctx._hintStatement);
2019-09-25 16:53:32 +08:00
this.state = 1508;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 1509;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__5);
}
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 HintStatementContext(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 = sqlParser.RULE_hintStatement;
this.hintName = null; // IdentifierContext
this._primaryExpression = null; // PrimaryExpressionContext
this.parameters = []; // of PrimaryExpressionContexts
return this;
}
HintStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
HintStatementContext.prototype.constructor = HintStatementContext;
HintStatementContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
HintStatementContext.prototype.primaryExpression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(PrimaryExpressionContext);
}
else {
return this.getTypedRuleContext(PrimaryExpressionContext, i);
}
};
HintStatementContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterHintStatement(this);
}
};
HintStatementContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitHintStatement(this);
}
};
HintStatementContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitHintStatement(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.HintStatementContext = HintStatementContext;
sqlParser.prototype.hintStatement = function () {
var localctx = new HintStatementContext(this, this._ctx, this.state);
this.enterRule(localctx, 80, sqlParser.RULE_hintStatement);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 1524;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 194, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1511;
2019-09-25 15:43:36 +08:00
localctx.hintName = this.identifier();
break;
case 2:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1512;
2019-09-25 15:43:36 +08:00
localctx.hintName = this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 1513;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1514;
2019-09-25 15:43:36 +08:00
localctx._primaryExpression = this.primaryExpression(0);
localctx.parameters.push(localctx._primaryExpression);
2019-09-25 16:53:32 +08:00
this.state = 1519;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1515;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1516;
2019-09-25 15:43:36 +08:00
localctx._primaryExpression = this.primaryExpression(0);
localctx.parameters.push(localctx._primaryExpression);
2019-09-25 16:53:32 +08:00
this.state = 1521;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 1522;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
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 FromClauseContext(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 = sqlParser.RULE_fromClause;
return this;
}
FromClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FromClauseContext.prototype.constructor = FromClauseContext;
FromClauseContext.prototype.FROM = function () {
return this.getToken(sqlParser.FROM, 0);
};
FromClauseContext.prototype.relation = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(RelationContext);
}
else {
return this.getTypedRuleContext(RelationContext, i);
}
};
FromClauseContext.prototype.lateralView = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(LateralViewContext);
}
else {
return this.getTypedRuleContext(LateralViewContext, i);
}
};
FromClauseContext.prototype.pivotClause = function () {
return this.getTypedRuleContext(PivotClauseContext, 0);
};
FromClauseContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterFromClause(this);
}
};
FromClauseContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitFromClause(this);
}
};
FromClauseContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitFromClause(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.FromClauseContext = FromClauseContext;
sqlParser.prototype.fromClause = function () {
var localctx = new FromClauseContext(this, this._ctx, this.state);
this.enterRule(localctx, 82, sqlParser.RULE_fromClause);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1526;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FROM);
2019-09-25 16:53:32 +08:00
this.state = 1527;
2019-09-25 15:43:36 +08:00
this.relation();
2019-09-25 16:53:32 +08:00
this.state = 1532;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 195, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1528;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1529;
2019-09-25 15:43:36 +08:00
this.relation();
}
2019-09-25 16:53:32 +08:00
this.state = 1534;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 195, this._ctx);
2019-09-25 15:43:36 +08:00
}
2019-09-25 16:53:32 +08:00
this.state = 1538;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 196, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1535;
2019-09-25 15:43:36 +08:00
this.lateralView();
}
2019-09-25 16:53:32 +08:00
this.state = 1540;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 196, this._ctx);
2019-09-25 15:43:36 +08:00
}
2019-09-25 16:53:32 +08:00
this.state = 1542;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 197, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1541;
2019-09-25 15:43:36 +08:00
this.pivotClause();
}
}
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 AggregationContext(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 = sqlParser.RULE_aggregation;
this._expression = null; // ExpressionContext
this.groupingExpressions = []; // of ExpressionContexts
this.kind = null; // Token
return this;
}
AggregationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AggregationContext.prototype.constructor = AggregationContext;
AggregationContext.prototype.GROUP = function () {
return this.getToken(sqlParser.GROUP, 0);
};
AggregationContext.prototype.BY = function () {
return this.getToken(sqlParser.BY, 0);
};
AggregationContext.prototype.expression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ExpressionContext);
}
else {
return this.getTypedRuleContext(ExpressionContext, i);
}
};
AggregationContext.prototype.WITH = function () {
return this.getToken(sqlParser.WITH, 0);
};
AggregationContext.prototype.SETS = function () {
return this.getToken(sqlParser.SETS, 0);
};
AggregationContext.prototype.groupingSet = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(GroupingSetContext);
}
else {
return this.getTypedRuleContext(GroupingSetContext, i);
}
};
AggregationContext.prototype.ROLLUP = function () {
return this.getToken(sqlParser.ROLLUP, 0);
};
AggregationContext.prototype.CUBE = function () {
return this.getToken(sqlParser.CUBE, 0);
};
AggregationContext.prototype.GROUPING = function () {
return this.getToken(sqlParser.GROUPING, 0);
};
AggregationContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterAggregation(this);
}
};
AggregationContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitAggregation(this);
}
};
AggregationContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitAggregation(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.AggregationContext = AggregationContext;
sqlParser.prototype.aggregation = function () {
var localctx = new AggregationContext(this, this._ctx, this.state);
this.enterRule(localctx, 84, sqlParser.RULE_aggregation);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 1588;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 202, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1544;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.GROUP);
2019-09-25 16:53:32 +08:00
this.state = 1545;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1546;
2019-09-25 15:43:36 +08:00
localctx._expression = this.expression();
localctx.groupingExpressions.push(localctx._expression);
2019-09-25 16:53:32 +08:00
this.state = 1551;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 198, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1547;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1548;
2019-09-25 15:43:36 +08:00
localctx._expression = this.expression();
localctx.groupingExpressions.push(localctx._expression);
}
2019-09-25 16:53:32 +08:00
this.state = 1553;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 198, this._ctx);
2019-09-25 15:43:36 +08:00
}
2019-09-25 16:53:32 +08:00
this.state = 1571;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 200, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1554;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.WITH);
2019-09-25 16:53:32 +08:00
this.state = 1555;
2019-09-25 15:43:36 +08:00
localctx.kind = this.match(sqlParser.ROLLUP);
}
else if (la_ === 2) {
2019-09-25 16:53:32 +08:00
this.state = 1556;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.WITH);
2019-09-25 16:53:32 +08:00
this.state = 1557;
2019-09-25 15:43:36 +08:00
localctx.kind = this.match(sqlParser.CUBE);
}
else if (la_ === 3) {
2019-09-25 16:53:32 +08:00
this.state = 1558;
2019-09-25 15:43:36 +08:00
localctx.kind = this.match(sqlParser.GROUPING);
2019-09-25 16:53:32 +08:00
this.state = 1559;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SETS);
2019-09-25 16:53:32 +08:00
this.state = 1560;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1561;
2019-09-25 15:43:36 +08:00
this.groupingSet();
2019-09-25 16:53:32 +08:00
this.state = 1566;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1562;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1563;
2019-09-25 15:43:36 +08:00
this.groupingSet();
2019-09-25 16:53:32 +08:00
this.state = 1568;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 1569;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
}
break;
case 2:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1573;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.GROUP);
2019-09-25 16:53:32 +08:00
this.state = 1574;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1575;
2019-09-25 15:43:36 +08:00
localctx.kind = this.match(sqlParser.GROUPING);
2019-09-25 16:53:32 +08:00
this.state = 1576;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SETS);
2019-09-25 16:53:32 +08:00
this.state = 1577;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1578;
2019-09-25 15:43:36 +08:00
this.groupingSet();
2019-09-25 16:53:32 +08:00
this.state = 1583;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1579;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1580;
2019-09-25 15:43:36 +08:00
this.groupingSet();
2019-09-25 16:53:32 +08:00
this.state = 1585;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 1586;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
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 GroupingSetContext(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 = sqlParser.RULE_groupingSet;
return this;
}
GroupingSetContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
GroupingSetContext.prototype.constructor = GroupingSetContext;
GroupingSetContext.prototype.expression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ExpressionContext);
}
else {
return this.getTypedRuleContext(ExpressionContext, i);
}
};
GroupingSetContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterGroupingSet(this);
}
};
GroupingSetContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitGroupingSet(this);
}
};
GroupingSetContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitGroupingSet(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.GroupingSetContext = GroupingSetContext;
sqlParser.prototype.groupingSet = function () {
var localctx = new GroupingSetContext(this, this._ctx, this.state);
this.enterRule(localctx, 86, sqlParser.RULE_groupingSet);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 1603;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 205, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1590;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1599;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER) | (1 << sqlParser.HAVING) | (1 << sqlParser.LIMIT) | (1 << sqlParser.AT) | (1 << sqlParser.OR) | (1 << sqlParser.AND) | (1 << sqlParser.IN))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)) | (1 << (sqlParser.RIGHT - 32)) | (1 << (sqlParser.FULL - 32)) | (1 << (sqlParser.NATURAL - 32)) | (1 << (sqlParser.ON - 32)) | (1 << (sqlParser.PIVOT - 32)) | (1 << (sqlParser.LATERAL - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.VALUES - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)) | (1 << (sqlParser.LOGICAL - 64)) | (1 << (sqlParser.CODEGEN - 64)) | (1 << (sqlParser.COST - 64)) | (1 << (sqlParser.CAST - 64)) | (1 << (sqlParser.SHOW - 64)) | (1 << (sqlParser.TABLES - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)) | (1 << (sqlParser.MACRO - 96)) | (1 << (sqlParser.IGNORE - 96)) | (1 << (sqlParser.BOTH - 96)) | (1 << (sqlParser.LEADING - 96)) | (1 << (sqlParser.TRAILING - 96)) | (1 << (sqlParser.IF - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 1
2019-09-25 16:53:32 +08:00
this.state = 1591;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 1596;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1592;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1593;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 1598;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
}
2019-09-25 16:53:32 +08:00
this.state = 1601;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case 2:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1602;
2019-09-25 15:43:36 +08:00
this.expression();
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 PivotClauseContext(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 = sqlParser.RULE_pivotClause;
this.aggregates = null; // NamedExpressionSeqContext
this._pivotValue = null; // PivotValueContext
this.pivotValues = []; // of PivotValueContexts
return this;
}
PivotClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PivotClauseContext.prototype.constructor = PivotClauseContext;
PivotClauseContext.prototype.PIVOT = function () {
return this.getToken(sqlParser.PIVOT, 0);
};
PivotClauseContext.prototype.FOR = function () {
return this.getToken(sqlParser.FOR, 0);
};
PivotClauseContext.prototype.pivotColumn = function () {
return this.getTypedRuleContext(PivotColumnContext, 0);
};
PivotClauseContext.prototype.IN = function () {
return this.getToken(sqlParser.IN, 0);
};
PivotClauseContext.prototype.namedExpressionSeq = function () {
return this.getTypedRuleContext(NamedExpressionSeqContext, 0);
};
PivotClauseContext.prototype.pivotValue = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(PivotValueContext);
}
else {
return this.getTypedRuleContext(PivotValueContext, i);
}
};
PivotClauseContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterPivotClause(this);
}
};
PivotClauseContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitPivotClause(this);
}
};
PivotClauseContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitPivotClause(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.PivotClauseContext = PivotClauseContext;
sqlParser.prototype.pivotClause = function () {
var localctx = new PivotClauseContext(this, this._ctx, this.state);
this.enterRule(localctx, 88, sqlParser.RULE_pivotClause);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1605;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.PIVOT);
2019-09-25 16:53:32 +08:00
this.state = 1606;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1607;
2019-09-25 15:43:36 +08:00
localctx.aggregates = this.namedExpressionSeq();
2019-09-25 16:53:32 +08:00
this.state = 1608;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FOR);
2019-09-25 16:53:32 +08:00
this.state = 1609;
2019-09-25 15:43:36 +08:00
this.pivotColumn();
2019-09-25 16:53:32 +08:00
this.state = 1610;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IN);
2019-09-25 16:53:32 +08:00
this.state = 1611;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1612;
2019-09-25 15:43:36 +08:00
localctx._pivotValue = this.pivotValue();
localctx.pivotValues.push(localctx._pivotValue);
2019-09-25 16:53:32 +08:00
this.state = 1617;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1613;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1614;
2019-09-25 15:43:36 +08:00
localctx._pivotValue = this.pivotValue();
localctx.pivotValues.push(localctx._pivotValue);
2019-09-25 16:53:32 +08:00
this.state = 1619;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 1620;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
2019-09-25 16:53:32 +08:00
this.state = 1621;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__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 PivotColumnContext(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 = sqlParser.RULE_pivotColumn;
this._identifier = null; // IdentifierContext
this.identifiers = []; // of IdentifierContexts
return this;
}
PivotColumnContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PivotColumnContext.prototype.constructor = PivotColumnContext;
PivotColumnContext.prototype.identifier = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(IdentifierContext);
}
else {
return this.getTypedRuleContext(IdentifierContext, i);
}
};
PivotColumnContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterPivotColumn(this);
}
};
PivotColumnContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitPivotColumn(this);
}
};
PivotColumnContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitPivotColumn(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.PivotColumnContext = PivotColumnContext;
sqlParser.prototype.pivotColumn = function () {
var localctx = new PivotColumnContext(this, this._ctx, this.state);
this.enterRule(localctx, 90, sqlParser.RULE_pivotColumn);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 1635;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.SELECT:
case sqlParser.FROM:
case sqlParser.ADD:
case sqlParser.AS:
case sqlParser.ALL:
case sqlParser.ANY:
case sqlParser.DISTINCT:
case sqlParser.WHERE:
case sqlParser.GROUP:
case sqlParser.BY:
case sqlParser.GROUPING:
case sqlParser.SETS:
case sqlParser.CUBE:
case sqlParser.ROLLUP:
case sqlParser.ORDER:
case sqlParser.HAVING:
case sqlParser.LIMIT:
case sqlParser.AT:
case sqlParser.OR:
case sqlParser.AND:
case sqlParser.IN:
case sqlParser.NOT:
case sqlParser.NO:
case sqlParser.EXISTS:
case sqlParser.BETWEEN:
case sqlParser.LIKE:
case sqlParser.RLIKE:
case sqlParser.IS:
case sqlParser.NULL:
case sqlParser.TRUE:
case sqlParser.FALSE:
case sqlParser.NULLS:
case sqlParser.ASC:
case sqlParser.DESC:
case sqlParser.FOR:
case sqlParser.INTERVAL:
case sqlParser.CASE:
case sqlParser.WHEN:
case sqlParser.THEN:
case sqlParser.ELSE:
case sqlParser.END:
case sqlParser.JOIN:
case sqlParser.CROSS:
case sqlParser.OUTER:
case sqlParser.INNER:
case sqlParser.LEFT:
case sqlParser.SEMI:
case sqlParser.RIGHT:
case sqlParser.FULL:
case sqlParser.NATURAL:
case sqlParser.ON:
case sqlParser.PIVOT:
case sqlParser.LATERAL:
case sqlParser.WINDOW:
case sqlParser.OVER:
case sqlParser.PARTITION:
case sqlParser.RANGE:
case sqlParser.ROWS:
case sqlParser.UNBOUNDED:
case sqlParser.PRECEDING:
case sqlParser.FOLLOWING:
case sqlParser.CURRENT:
case sqlParser.FIRST:
case sqlParser.AFTER:
case sqlParser.LAST:
case sqlParser.ROW:
case sqlParser.WITH:
case sqlParser.VALUES:
case sqlParser.CREATE:
case sqlParser.TABLE:
case sqlParser.DIRECTORY:
case sqlParser.VIEW:
case sqlParser.REPLACE:
case sqlParser.INSERT:
case sqlParser.DELETE:
case sqlParser.INTO:
case sqlParser.DESCRIBE:
case sqlParser.EXPLAIN:
case sqlParser.FORMAT:
case sqlParser.LOGICAL:
case sqlParser.CODEGEN:
case sqlParser.COST:
case sqlParser.CAST:
case sqlParser.SHOW:
case sqlParser.TABLES:
case sqlParser.COLUMNS:
case sqlParser.COLUMN:
case sqlParser.USE:
case sqlParser.PARTITIONS:
case sqlParser.FUNCTIONS:
case sqlParser.DROP:
case sqlParser.UNION:
case sqlParser.EXCEPT:
case sqlParser.SETMINUS:
case sqlParser.INTERSECT:
case sqlParser.TO:
case sqlParser.TABLESAMPLE:
case sqlParser.STRATIFY:
case sqlParser.ALTER:
case sqlParser.RENAME:
case sqlParser.ARRAY:
case sqlParser.MAP:
case sqlParser.STRUCT:
case sqlParser.COMMENT:
case sqlParser.SET:
case sqlParser.RESET:
case sqlParser.DATA:
case sqlParser.START:
case sqlParser.TRANSACTION:
case sqlParser.COMMIT:
case sqlParser.ROLLBACK:
case sqlParser.MACRO:
case sqlParser.IGNORE:
case sqlParser.BOTH:
case sqlParser.LEADING:
case sqlParser.TRAILING:
case sqlParser.IF:
case sqlParser.POSITION:
case sqlParser.EXTRACT:
case sqlParser.DIV:
case sqlParser.PERCENTLIT:
case sqlParser.BUCKET:
case sqlParser.OUT:
case sqlParser.OF:
case sqlParser.SORT:
case sqlParser.CLUSTER:
case sqlParser.DISTRIBUTE:
case sqlParser.OVERWRITE:
case sqlParser.TRANSFORM:
case sqlParser.REDUCE:
case sqlParser.SERDE:
case sqlParser.SERDEPROPERTIES:
case sqlParser.RECORDREADER:
case sqlParser.RECORDWRITER:
case sqlParser.DELIMITED:
case sqlParser.FIELDS:
case sqlParser.TERMINATED:
case sqlParser.COLLECTION:
case sqlParser.ITEMS:
case sqlParser.KEYS:
case sqlParser.ESCAPED:
case sqlParser.LINES:
case sqlParser.SEPARATED:
case sqlParser.FUNCTION:
case sqlParser.EXTENDED:
case sqlParser.REFRESH:
case sqlParser.CLEAR:
case sqlParser.CACHE:
case sqlParser.UNCACHE:
case sqlParser.LAZY:
case sqlParser.FORMATTED:
case sqlParser.GLOBAL:
case sqlParser.TEMPORARY:
case sqlParser.OPTIONS:
case sqlParser.UNSET:
case sqlParser.TBLPROPERTIES:
case sqlParser.DBPROPERTIES:
case sqlParser.BUCKETS:
case sqlParser.SKEWED:
case sqlParser.STORED:
case sqlParser.DIRECTORIES:
case sqlParser.LOCATION:
case sqlParser.EXCHANGE:
case sqlParser.ARCHIVE:
case sqlParser.UNARCHIVE:
case sqlParser.FILEFORMAT:
case sqlParser.TOUCH:
case sqlParser.COMPACT:
case sqlParser.CONCATENATE:
case sqlParser.CHANGE:
case sqlParser.CASCADE:
case sqlParser.RESTRICT:
case sqlParser.CLUSTERED:
case sqlParser.SORTED:
case sqlParser.PURGE:
case sqlParser.INPUTFORMAT:
case sqlParser.OUTPUTFORMAT:
case sqlParser.DATABASE:
case sqlParser.DATABASES:
case sqlParser.DFS:
case sqlParser.TRUNCATE:
case sqlParser.ANALYZE:
case sqlParser.COMPUTE:
case sqlParser.LIST:
case sqlParser.STATISTICS:
case sqlParser.PARTITIONED:
case sqlParser.EXTERNAL:
case sqlParser.DEFINED:
case sqlParser.REVOKE:
case sqlParser.GRANT:
case sqlParser.LOCK:
case sqlParser.UNLOCK:
case sqlParser.MSCK:
case sqlParser.REPAIR:
case sqlParser.RECOVER:
case sqlParser.EXPORT:
case sqlParser.IMPORT:
case sqlParser.LOAD:
case sqlParser.ROLE:
case sqlParser.ROLES:
case sqlParser.COMPACTIONS:
case sqlParser.PRINCIPALS:
case sqlParser.TRANSACTIONS:
case sqlParser.INDEX:
case sqlParser.INDEXES:
case sqlParser.LOCKS:
case sqlParser.OPTION:
case sqlParser.ANTI:
case sqlParser.LOCAL:
case sqlParser.INPATH:
case sqlParser.IDENTIFIER:
case sqlParser.BACKQUOTED_IDENTIFIER:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1623;
2019-09-25 15:43:36 +08:00
localctx._identifier = this.identifier();
localctx.identifiers.push(localctx._identifier);
break;
case sqlParser.T__0:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1624;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1625;
2019-09-25 15:43:36 +08:00
localctx._identifier = this.identifier();
localctx.identifiers.push(localctx._identifier);
2019-09-25 16:53:32 +08:00
this.state = 1630;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1626;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1627;
2019-09-25 15:43:36 +08:00
localctx._identifier = this.identifier();
localctx.identifiers.push(localctx._identifier);
2019-09-25 16:53:32 +08:00
this.state = 1632;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 1633;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
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 PivotValueContext(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 = sqlParser.RULE_pivotValue;
return this;
}
PivotValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PivotValueContext.prototype.constructor = PivotValueContext;
PivotValueContext.prototype.expression = function () {
return this.getTypedRuleContext(ExpressionContext, 0);
};
PivotValueContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
PivotValueContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
PivotValueContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterPivotValue(this);
}
};
PivotValueContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitPivotValue(this);
}
};
PivotValueContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitPivotValue(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.PivotValueContext = PivotValueContext;
sqlParser.prototype.pivotValue = function () {
var localctx = new PivotValueContext(this, this._ctx, this.state);
this.enterRule(localctx, 92, sqlParser.RULE_pivotValue);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1637;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 1642;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER) | (1 << sqlParser.HAVING) | (1 << sqlParser.LIMIT) | (1 << sqlParser.AT) | (1 << sqlParser.OR) | (1 << sqlParser.AND) | (1 << sqlParser.IN))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)) | (1 << (sqlParser.RIGHT - 32)) | (1 << (sqlParser.FULL - 32)) | (1 << (sqlParser.NATURAL - 32)) | (1 << (sqlParser.ON - 32)) | (1 << (sqlParser.PIVOT - 32)) | (1 << (sqlParser.LATERAL - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.VALUES - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)) | (1 << (sqlParser.LOGICAL - 64)) | (1 << (sqlParser.CODEGEN - 64)) | (1 << (sqlParser.COST - 64)) | (1 << (sqlParser.CAST - 64)) | (1 << (sqlParser.SHOW - 64)) | (1 << (sqlParser.TABLES - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)) | (1 << (sqlParser.MACRO - 96)) | (1 << (sqlParser.IGNORE - 96)) | (1 << (sqlParser.BOTH - 96)) | (1 << (sqlParser.LEADING - 96)) | (1 << (sqlParser.TRAILING - 96)) | (1 << (sqlParser.IF - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCK
2019-09-25 16:53:32 +08:00
this.state = 1639;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 209, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1638;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
}
2019-09-25 16:53:32 +08:00
this.state = 1641;
2019-09-25 15:43:36 +08:00
this.identifier();
}
}
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 LateralViewContext(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 = sqlParser.RULE_lateralView;
this.tblName = null; // IdentifierContext
this._identifier = null; // IdentifierContext
this.colName = []; // of IdentifierContexts
return this;
}
LateralViewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LateralViewContext.prototype.constructor = LateralViewContext;
LateralViewContext.prototype.LATERAL = function () {
return this.getToken(sqlParser.LATERAL, 0);
};
LateralViewContext.prototype.VIEW = function () {
return this.getToken(sqlParser.VIEW, 0);
};
LateralViewContext.prototype.qualifiedName = function () {
return this.getTypedRuleContext(QualifiedNameContext, 0);
};
LateralViewContext.prototype.identifier = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(IdentifierContext);
}
else {
return this.getTypedRuleContext(IdentifierContext, i);
}
};
LateralViewContext.prototype.OUTER = function () {
return this.getToken(sqlParser.OUTER, 0);
};
LateralViewContext.prototype.expression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ExpressionContext);
}
else {
return this.getTypedRuleContext(ExpressionContext, i);
}
};
LateralViewContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
LateralViewContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterLateralView(this);
}
};
LateralViewContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitLateralView(this);
}
};
LateralViewContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitLateralView(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.LateralViewContext = LateralViewContext;
sqlParser.prototype.lateralView = function () {
var localctx = new LateralViewContext(this, this._ctx, this.state);
this.enterRule(localctx, 94, sqlParser.RULE_lateralView);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1644;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LATERAL);
2019-09-25 16:53:32 +08:00
this.state = 1645;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.VIEW);
2019-09-25 16:53:32 +08:00
this.state = 1647;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 211, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1646;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OUTER);
}
2019-09-25 16:53:32 +08:00
this.state = 1649;
2019-09-25 15:43:36 +08:00
this.qualifiedName();
2019-09-25 16:53:32 +08:00
this.state = 1650;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1659;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER) | (1 << sqlParser.HAVING) | (1 << sqlParser.LIMIT) | (1 << sqlParser.AT) | (1 << sqlParser.OR) | (1 << sqlParser.AND) | (1 << sqlParser.IN))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)) | (1 << (sqlParser.RIGHT - 32)) | (1 << (sqlParser.FULL - 32)) | (1 << (sqlParser.NATURAL - 32)) | (1 << (sqlParser.ON - 32)) | (1 << (sqlParser.PIVOT - 32)) | (1 << (sqlParser.LATERAL - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.VALUES - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)) | (1 << (sqlParser.LOGICAL - 64)) | (1 << (sqlParser.CODEGEN - 64)) | (1 << (sqlParser.COST - 64)) | (1 << (sqlParser.CAST - 64)) | (1 << (sqlParser.SHOW - 64)) | (1 << (sqlParser.TABLES - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)) | (1 << (sqlParser.MACRO - 96)) | (1 << (sqlParser.IGNORE - 96)) | (1 << (sqlParser.BOTH - 96)) | (1 << (sqlParser.LEADING - 96)) | (1 << (sqlParser.TRAILING - 96)) | (1 << (sqlParser.IF - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (
2019-09-25 16:53:32 +08:00
this.state = 1651;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 1656;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1652;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1653;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 1658;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
}
2019-09-25 16:53:32 +08:00
this.state = 1661;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
2019-09-25 16:53:32 +08:00
this.state = 1662;
2019-09-25 15:43:36 +08:00
localctx.tblName = this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 1674;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 216, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1664;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 214, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1663;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
}
2019-09-25 16:53:32 +08:00
this.state = 1666;
2019-09-25 15:43:36 +08:00
localctx._identifier = this.identifier();
localctx.colName.push(localctx._identifier);
2019-09-25 16:53:32 +08:00
this.state = 1671;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 215, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1667;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1668;
2019-09-25 15:43:36 +08:00
localctx._identifier = this.identifier();
localctx.colName.push(localctx._identifier);
}
2019-09-25 16:53:32 +08:00
this.state = 1673;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 215, this._ctx);
2019-09-25 15:43:36 +08:00
}
}
}
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 SetQuantifierContext(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 = sqlParser.RULE_setQuantifier;
return this;
}
SetQuantifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SetQuantifierContext.prototype.constructor = SetQuantifierContext;
SetQuantifierContext.prototype.DISTINCT = function () {
return this.getToken(sqlParser.DISTINCT, 0);
};
SetQuantifierContext.prototype.ALL = function () {
return this.getToken(sqlParser.ALL, 0);
};
SetQuantifierContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSetQuantifier(this);
}
};
SetQuantifierContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSetQuantifier(this);
}
};
SetQuantifierContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSetQuantifier(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.SetQuantifierContext = SetQuantifierContext;
sqlParser.prototype.setQuantifier = function () {
var localctx = new SetQuantifierContext(this, this._ctx, this.state);
this.enterRule(localctx, 96, sqlParser.RULE_setQuantifier);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1676;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.ALL || _la === sqlParser.DISTINCT)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
}
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 RelationContext(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 = sqlParser.RULE_relation;
return this;
}
RelationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RelationContext.prototype.constructor = RelationContext;
RelationContext.prototype.relationPrimary = function () {
return this.getTypedRuleContext(RelationPrimaryContext, 0);
};
RelationContext.prototype.joinRelation = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(JoinRelationContext);
}
else {
return this.getTypedRuleContext(JoinRelationContext, i);
}
};
RelationContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterRelation(this);
}
};
RelationContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitRelation(this);
}
};
RelationContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitRelation(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.RelationContext = RelationContext;
sqlParser.prototype.relation = function () {
var localctx = new RelationContext(this, this._ctx, this.state);
this.enterRule(localctx, 98, sqlParser.RULE_relation);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1678;
2019-09-25 15:43:36 +08:00
this.relationPrimary();
2019-09-25 16:53:32 +08:00
this.state = 1682;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 217, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1679;
2019-09-25 15:43:36 +08:00
this.joinRelation();
}
2019-09-25 16:53:32 +08:00
this.state = 1684;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 217, this._ctx);
2019-09-25 15:43:36 +08:00
}
}
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 JoinRelationContext(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 = sqlParser.RULE_joinRelation;
this.right = null; // RelationPrimaryContext
return this;
}
JoinRelationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
JoinRelationContext.prototype.constructor = JoinRelationContext;
JoinRelationContext.prototype.JOIN = function () {
return this.getToken(sqlParser.JOIN, 0);
};
JoinRelationContext.prototype.relationPrimary = function () {
return this.getTypedRuleContext(RelationPrimaryContext, 0);
};
JoinRelationContext.prototype.joinType = function () {
return this.getTypedRuleContext(JoinTypeContext, 0);
};
JoinRelationContext.prototype.joinCriteria = function () {
return this.getTypedRuleContext(JoinCriteriaContext, 0);
};
JoinRelationContext.prototype.NATURAL = function () {
return this.getToken(sqlParser.NATURAL, 0);
};
JoinRelationContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterJoinRelation(this);
}
};
JoinRelationContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitJoinRelation(this);
}
};
JoinRelationContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitJoinRelation(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.JoinRelationContext = JoinRelationContext;
sqlParser.prototype.joinRelation = function () {
var localctx = new JoinRelationContext(this, this._ctx, this.state);
this.enterRule(localctx, 100, sqlParser.RULE_joinRelation);
try {
2019-09-25 16:53:32 +08:00
this.state = 1696;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.JOIN:
case sqlParser.CROSS:
case sqlParser.INNER:
case sqlParser.LEFT:
case sqlParser.RIGHT:
case sqlParser.FULL:
case sqlParser.ANTI:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1685;
2019-09-25 15:43:36 +08:00
this.joinType();
2019-09-25 16:53:32 +08:00
this.state = 1686;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.JOIN);
2019-09-25 16:53:32 +08:00
this.state = 1687;
2019-09-25 15:43:36 +08:00
localctx.right = this.relationPrimary();
2019-09-25 16:53:32 +08:00
this.state = 1689;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 218, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1688;
2019-09-25 15:43:36 +08:00
this.joinCriteria();
}
break;
case sqlParser.NATURAL:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1691;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NATURAL);
2019-09-25 16:53:32 +08:00
this.state = 1692;
2019-09-25 15:43:36 +08:00
this.joinType();
2019-09-25 16:53:32 +08:00
this.state = 1693;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.JOIN);
2019-09-25 16:53:32 +08:00
this.state = 1694;
2019-09-25 15:43:36 +08:00
localctx.right = this.relationPrimary();
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 JoinTypeContext(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 = sqlParser.RULE_joinType;
return this;
}
JoinTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
JoinTypeContext.prototype.constructor = JoinTypeContext;
JoinTypeContext.prototype.INNER = function () {
return this.getToken(sqlParser.INNER, 0);
};
JoinTypeContext.prototype.CROSS = function () {
return this.getToken(sqlParser.CROSS, 0);
};
JoinTypeContext.prototype.LEFT = function () {
return this.getToken(sqlParser.LEFT, 0);
};
JoinTypeContext.prototype.OUTER = function () {
return this.getToken(sqlParser.OUTER, 0);
};
JoinTypeContext.prototype.SEMI = function () {
return this.getToken(sqlParser.SEMI, 0);
};
JoinTypeContext.prototype.RIGHT = function () {
return this.getToken(sqlParser.RIGHT, 0);
};
JoinTypeContext.prototype.FULL = function () {
return this.getToken(sqlParser.FULL, 0);
};
JoinTypeContext.prototype.ANTI = function () {
return this.getToken(sqlParser.ANTI, 0);
};
JoinTypeContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterJoinType(this);
}
};
JoinTypeContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitJoinType(this);
}
};
JoinTypeContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitJoinType(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.JoinTypeContext = JoinTypeContext;
sqlParser.prototype.joinType = function () {
var localctx = new JoinTypeContext(this, this._ctx, this.state);
this.enterRule(localctx, 102, sqlParser.RULE_joinType);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 1720;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 225, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1699;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.INNER) {
2019-09-25 16:53:32 +08:00
this.state = 1698;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INNER);
}
break;
case 2:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1701;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CROSS);
break;
case 3:
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 1702;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LEFT);
2019-09-25 16:53:32 +08:00
this.state = 1704;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.OUTER) {
2019-09-25 16:53:32 +08:00
this.state = 1703;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OUTER);
}
break;
case 4:
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 1706;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LEFT);
2019-09-25 16:53:32 +08:00
this.state = 1707;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SEMI);
break;
case 5:
this.enterOuterAlt(localctx, 5);
2019-09-25 16:53:32 +08:00
this.state = 1708;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.RIGHT);
2019-09-25 16:53:32 +08:00
this.state = 1710;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.OUTER) {
2019-09-25 16:53:32 +08:00
this.state = 1709;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OUTER);
}
break;
case 6:
this.enterOuterAlt(localctx, 6);
2019-09-25 16:53:32 +08:00
this.state = 1712;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FULL);
2019-09-25 16:53:32 +08:00
this.state = 1714;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.OUTER) {
2019-09-25 16:53:32 +08:00
this.state = 1713;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OUTER);
}
break;
case 7:
this.enterOuterAlt(localctx, 7);
2019-09-25 16:53:32 +08:00
this.state = 1717;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.LEFT) {
2019-09-25 16:53:32 +08:00
this.state = 1716;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LEFT);
}
2019-09-25 16:53:32 +08:00
this.state = 1719;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ANTI);
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 JoinCriteriaContext(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 = sqlParser.RULE_joinCriteria;
return this;
}
JoinCriteriaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
JoinCriteriaContext.prototype.constructor = JoinCriteriaContext;
JoinCriteriaContext.prototype.ON = function () {
return this.getToken(sqlParser.ON, 0);
};
JoinCriteriaContext.prototype.booleanExpression = function () {
return this.getTypedRuleContext(BooleanExpressionContext, 0);
};
JoinCriteriaContext.prototype.USING = function () {
return this.getToken(sqlParser.USING, 0);
};
JoinCriteriaContext.prototype.identifierList = function () {
return this.getTypedRuleContext(IdentifierListContext, 0);
};
JoinCriteriaContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterJoinCriteria(this);
}
};
JoinCriteriaContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitJoinCriteria(this);
}
};
JoinCriteriaContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitJoinCriteria(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.JoinCriteriaContext = JoinCriteriaContext;
sqlParser.prototype.joinCriteria = function () {
var localctx = new JoinCriteriaContext(this, this._ctx, this.state);
this.enterRule(localctx, 104, sqlParser.RULE_joinCriteria);
try {
2019-09-25 16:53:32 +08:00
this.state = 1726;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.ON:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1722;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ON);
2019-09-25 16:53:32 +08:00
this.state = 1723;
2019-09-25 15:43:36 +08:00
this.booleanExpression(0);
break;
case sqlParser.USING:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1724;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.USING);
2019-09-25 16:53:32 +08:00
this.state = 1725;
2019-09-25 15:43:36 +08:00
this.identifierList();
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 SampleContext(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 = sqlParser.RULE_sample;
return this;
}
SampleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SampleContext.prototype.constructor = SampleContext;
SampleContext.prototype.TABLESAMPLE = function () {
return this.getToken(sqlParser.TABLESAMPLE, 0);
};
SampleContext.prototype.sampleMethod = function () {
return this.getTypedRuleContext(SampleMethodContext, 0);
};
SampleContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSample(this);
}
};
SampleContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSample(this);
}
};
SampleContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSample(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.SampleContext = SampleContext;
sqlParser.prototype.sample = function () {
var localctx = new SampleContext(this, this._ctx, this.state);
this.enterRule(localctx, 106, sqlParser.RULE_sample);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1728;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TABLESAMPLE);
2019-09-25 16:53:32 +08:00
this.state = 1729;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1731;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER) | (1 << sqlParser.HAVING) | (1 << sqlParser.LIMIT) | (1 << sqlParser.AT) | (1 << sqlParser.OR) | (1 << sqlParser.AND) | (1 << sqlParser.IN))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)) | (1 << (sqlParser.RIGHT - 32)) | (1 << (sqlParser.FULL - 32)) | (1 << (sqlParser.NATURAL - 32)) | (1 << (sqlParser.ON - 32)) | (1 << (sqlParser.PIVOT - 32)) | (1 << (sqlParser.LATERAL - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.VALUES - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)) | (1 << (sqlParser.LOGICAL - 64)) | (1 << (sqlParser.CODEGEN - 64)) | (1 << (sqlParser.COST - 64)) | (1 << (sqlParser.CAST - 64)) | (1 << (sqlParser.SHOW - 64)) | (1 << (sqlParser.TABLES - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)) | (1 << (sqlParser.MACRO - 96)) | (1 << (sqlParser.IGNORE - 96)) | (1 << (sqlParser.BOTH - 96)) | (1 << (sqlParser.LEADING - 96)) | (1 << (sqlParser.TRAILING - 96)) | (1 << (sqlParser.IF - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (
2019-09-25 16:53:32 +08:00
this.state = 1730;
2019-09-25 15:43:36 +08:00
this.sampleMethod();
}
2019-09-25 16:53:32 +08:00
this.state = 1733;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__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 SampleMethodContext(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 = sqlParser.RULE_sampleMethod;
return this;
}
SampleMethodContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SampleMethodContext.prototype.constructor = SampleMethodContext;
SampleMethodContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function SampleByRowsContext(parser, ctx) {
SampleMethodContext.call(this, parser);
SampleMethodContext.prototype.copyFrom.call(this, ctx);
return this;
}
SampleByRowsContext.prototype = Object.create(SampleMethodContext.prototype);
SampleByRowsContext.prototype.constructor = SampleByRowsContext;
sqlParser.SampleByRowsContext = SampleByRowsContext;
SampleByRowsContext.prototype.expression = function () {
return this.getTypedRuleContext(ExpressionContext, 0);
};
SampleByRowsContext.prototype.ROWS = function () {
return this.getToken(sqlParser.ROWS, 0);
};
SampleByRowsContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSampleByRows(this);
}
};
SampleByRowsContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSampleByRows(this);
}
};
SampleByRowsContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSampleByRows(this);
}
else {
return visitor.visitChildren(this);
}
};
function SampleByPercentileContext(parser, ctx) {
SampleMethodContext.call(this, parser);
this.negativeSign = null; // Token;
this.percentage = null; // Token;
SampleMethodContext.prototype.copyFrom.call(this, ctx);
return this;
}
SampleByPercentileContext.prototype = Object.create(SampleMethodContext.prototype);
SampleByPercentileContext.prototype.constructor = SampleByPercentileContext;
sqlParser.SampleByPercentileContext = SampleByPercentileContext;
SampleByPercentileContext.prototype.PERCENTLIT = function () {
return this.getToken(sqlParser.PERCENTLIT, 0);
};
SampleByPercentileContext.prototype.INTEGER_VALUE = function () {
return this.getToken(sqlParser.INTEGER_VALUE, 0);
};
SampleByPercentileContext.prototype.DECIMAL_VALUE = function () {
return this.getToken(sqlParser.DECIMAL_VALUE, 0);
};
SampleByPercentileContext.prototype.MINUS = function () {
return this.getToken(sqlParser.MINUS, 0);
};
SampleByPercentileContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSampleByPercentile(this);
}
};
SampleByPercentileContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSampleByPercentile(this);
}
};
SampleByPercentileContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSampleByPercentile(this);
}
else {
return visitor.visitChildren(this);
}
};
function SampleByBucketContext(parser, ctx) {
SampleMethodContext.call(this, parser);
this.sampleType = null; // Token;
this.numerator = null; // Token;
this.denominator = null; // Token;
SampleMethodContext.prototype.copyFrom.call(this, ctx);
return this;
}
SampleByBucketContext.prototype = Object.create(SampleMethodContext.prototype);
SampleByBucketContext.prototype.constructor = SampleByBucketContext;
sqlParser.SampleByBucketContext = SampleByBucketContext;
SampleByBucketContext.prototype.OUT = function () {
return this.getToken(sqlParser.OUT, 0);
};
SampleByBucketContext.prototype.OF = function () {
return this.getToken(sqlParser.OF, 0);
};
SampleByBucketContext.prototype.BUCKET = function () {
return this.getToken(sqlParser.BUCKET, 0);
};
SampleByBucketContext.prototype.INTEGER_VALUE = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.INTEGER_VALUE);
}
else {
return this.getToken(sqlParser.INTEGER_VALUE, i);
}
};
SampleByBucketContext.prototype.ON = function () {
return this.getToken(sqlParser.ON, 0);
};
SampleByBucketContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
SampleByBucketContext.prototype.qualifiedName = function () {
return this.getTypedRuleContext(QualifiedNameContext, 0);
};
SampleByBucketContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSampleByBucket(this);
}
};
SampleByBucketContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSampleByBucket(this);
}
};
SampleByBucketContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSampleByBucket(this);
}
else {
return visitor.visitChildren(this);
}
};
function SampleByBytesContext(parser, ctx) {
SampleMethodContext.call(this, parser);
this.bytes = null; // ExpressionContext;
SampleMethodContext.prototype.copyFrom.call(this, ctx);
return this;
}
SampleByBytesContext.prototype = Object.create(SampleMethodContext.prototype);
SampleByBytesContext.prototype.constructor = SampleByBytesContext;
sqlParser.SampleByBytesContext = SampleByBytesContext;
SampleByBytesContext.prototype.expression = function () {
return this.getTypedRuleContext(ExpressionContext, 0);
};
SampleByBytesContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSampleByBytes(this);
}
};
SampleByBytesContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSampleByBytes(this);
}
};
SampleByBytesContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSampleByBytes(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.SampleMethodContext = SampleMethodContext;
sqlParser.prototype.sampleMethod = function () {
var localctx = new SampleMethodContext(this, this._ctx, this.state);
this.enterRule(localctx, 108, sqlParser.RULE_sampleMethod);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 1759;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 231, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new SampleByPercentileContext(this, localctx);
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1736;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.MINUS) {
2019-09-25 16:53:32 +08:00
this.state = 1735;
2019-09-25 15:43:36 +08:00
localctx.negativeSign = this.match(sqlParser.MINUS);
}
2019-09-25 16:53:32 +08:00
this.state = 1738;
2019-09-25 15:43:36 +08:00
localctx.percentage = this._input.LT(1);
_la = this._input.LA(1);
if (!(_la === sqlParser.INTEGER_VALUE || _la === sqlParser.DECIMAL_VALUE)) {
localctx.percentage = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 1739;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.PERCENTLIT);
break;
case 2:
localctx = new SampleByRowsContext(this, localctx);
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1740;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 1741;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ROWS);
break;
case 3:
localctx = new SampleByBucketContext(this, localctx);
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 1743;
2019-09-25 15:43:36 +08:00
localctx.sampleType = this.match(sqlParser.BUCKET);
2019-09-25 16:53:32 +08:00
this.state = 1744;
2019-09-25 15:43:36 +08:00
localctx.numerator = this.match(sqlParser.INTEGER_VALUE);
2019-09-25 16:53:32 +08:00
this.state = 1745;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OUT);
2019-09-25 16:53:32 +08:00
this.state = 1746;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OF);
2019-09-25 16:53:32 +08:00
this.state = 1747;
2019-09-25 15:43:36 +08:00
localctx.denominator = this.match(sqlParser.INTEGER_VALUE);
2019-09-25 16:53:32 +08:00
this.state = 1756;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.ON) {
2019-09-25 16:53:32 +08:00
this.state = 1748;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ON);
2019-09-25 16:53:32 +08:00
this.state = 1754;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 229, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
2019-09-25 16:53:32 +08:00
this.state = 1749;
2019-09-25 15:43:36 +08:00
this.identifier();
break;
case 2:
2019-09-25 16:53:32 +08:00
this.state = 1750;
2019-09-25 15:43:36 +08:00
this.qualifiedName();
2019-09-25 16:53:32 +08:00
this.state = 1751;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1752;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
}
}
break;
case 4:
localctx = new SampleByBytesContext(this, localctx);
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 1758;
2019-09-25 15:43:36 +08:00
localctx.bytes = this.expression();
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 IdentifierListContext(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 = sqlParser.RULE_identifierList;
return this;
}
IdentifierListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IdentifierListContext.prototype.constructor = IdentifierListContext;
IdentifierListContext.prototype.identifierSeq = function () {
return this.getTypedRuleContext(IdentifierSeqContext, 0);
};
IdentifierListContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterIdentifierList(this);
}
};
IdentifierListContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitIdentifierList(this);
}
};
IdentifierListContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitIdentifierList(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.IdentifierListContext = IdentifierListContext;
sqlParser.prototype.identifierList = function () {
var localctx = new IdentifierListContext(this, this._ctx, this.state);
this.enterRule(localctx, 110, sqlParser.RULE_identifierList);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1761;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1762;
2019-09-25 15:43:36 +08:00
this.identifierSeq();
2019-09-25 16:53:32 +08:00
this.state = 1763;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__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 IdentifierSeqContext(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 = sqlParser.RULE_identifierSeq;
return this;
}
IdentifierSeqContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IdentifierSeqContext.prototype.constructor = IdentifierSeqContext;
IdentifierSeqContext.prototype.identifier = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(IdentifierContext);
}
else {
return this.getTypedRuleContext(IdentifierContext, i);
}
};
IdentifierSeqContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterIdentifierSeq(this);
}
};
IdentifierSeqContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitIdentifierSeq(this);
}
};
IdentifierSeqContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitIdentifierSeq(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.IdentifierSeqContext = IdentifierSeqContext;
sqlParser.prototype.identifierSeq = function () {
var localctx = new IdentifierSeqContext(this, this._ctx, this.state);
this.enterRule(localctx, 112, sqlParser.RULE_identifierSeq);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1765;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 1770;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 232, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1766;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1767;
2019-09-25 15:43:36 +08:00
this.identifier();
}
2019-09-25 16:53:32 +08:00
this.state = 1772;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 232, this._ctx);
2019-09-25 15:43:36 +08:00
}
}
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 OrderedIdentifierListContext(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 = sqlParser.RULE_orderedIdentifierList;
return this;
}
OrderedIdentifierListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
OrderedIdentifierListContext.prototype.constructor = OrderedIdentifierListContext;
OrderedIdentifierListContext.prototype.orderedIdentifier = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(OrderedIdentifierContext);
}
else {
return this.getTypedRuleContext(OrderedIdentifierContext, i);
}
};
OrderedIdentifierListContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterOrderedIdentifierList(this);
}
};
OrderedIdentifierListContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitOrderedIdentifierList(this);
}
};
OrderedIdentifierListContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitOrderedIdentifierList(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.OrderedIdentifierListContext = OrderedIdentifierListContext;
sqlParser.prototype.orderedIdentifierList = function () {
var localctx = new OrderedIdentifierListContext(this, this._ctx, this.state);
this.enterRule(localctx, 114, sqlParser.RULE_orderedIdentifierList);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1773;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1774;
2019-09-25 15:43:36 +08:00
this.orderedIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 1779;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1775;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1776;
2019-09-25 15:43:36 +08:00
this.orderedIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 1781;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 1782;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__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 OrderedIdentifierContext(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 = sqlParser.RULE_orderedIdentifier;
this.ordering = null; // Token
return this;
}
OrderedIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
OrderedIdentifierContext.prototype.constructor = OrderedIdentifierContext;
OrderedIdentifierContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
OrderedIdentifierContext.prototype.ASC = function () {
return this.getToken(sqlParser.ASC, 0);
};
OrderedIdentifierContext.prototype.DESC = function () {
return this.getToken(sqlParser.DESC, 0);
};
OrderedIdentifierContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterOrderedIdentifier(this);
}
};
OrderedIdentifierContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitOrderedIdentifier(this);
}
};
OrderedIdentifierContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitOrderedIdentifier(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.OrderedIdentifierContext = OrderedIdentifierContext;
sqlParser.prototype.orderedIdentifier = function () {
var localctx = new OrderedIdentifierContext(this, this._ctx, this.state);
this.enterRule(localctx, 116, sqlParser.RULE_orderedIdentifier);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1784;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 1786;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.ASC || _la === sqlParser.DESC) {
2019-09-25 16:53:32 +08:00
this.state = 1785;
2019-09-25 15:43:36 +08:00
localctx.ordering = this._input.LT(1);
_la = this._input.LA(1);
if (!(_la === sqlParser.ASC || _la === sqlParser.DESC)) {
localctx.ordering = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
}
}
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 IdentifierCommentListContext(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 = sqlParser.RULE_identifierCommentList;
return this;
}
IdentifierCommentListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IdentifierCommentListContext.prototype.constructor = IdentifierCommentListContext;
IdentifierCommentListContext.prototype.identifierComment = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(IdentifierCommentContext);
}
else {
return this.getTypedRuleContext(IdentifierCommentContext, i);
}
};
IdentifierCommentListContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterIdentifierCommentList(this);
}
};
IdentifierCommentListContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitIdentifierCommentList(this);
}
};
IdentifierCommentListContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitIdentifierCommentList(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.IdentifierCommentListContext = IdentifierCommentListContext;
sqlParser.prototype.identifierCommentList = function () {
var localctx = new IdentifierCommentListContext(this, this._ctx, this.state);
this.enterRule(localctx, 118, sqlParser.RULE_identifierCommentList);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1788;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1789;
2019-09-25 15:43:36 +08:00
this.identifierComment();
2019-09-25 16:53:32 +08:00
this.state = 1794;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1790;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1791;
2019-09-25 15:43:36 +08:00
this.identifierComment();
2019-09-25 16:53:32 +08:00
this.state = 1796;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 1797;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__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 IdentifierCommentContext(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 = sqlParser.RULE_identifierComment;
return this;
}
IdentifierCommentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IdentifierCommentContext.prototype.constructor = IdentifierCommentContext;
IdentifierCommentContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
IdentifierCommentContext.prototype.COMMENT = function () {
return this.getToken(sqlParser.COMMENT, 0);
};
IdentifierCommentContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
IdentifierCommentContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterIdentifierComment(this);
}
};
IdentifierCommentContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitIdentifierComment(this);
}
};
IdentifierCommentContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitIdentifierComment(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.IdentifierCommentContext = IdentifierCommentContext;
sqlParser.prototype.identifierComment = function () {
var localctx = new IdentifierCommentContext(this, this._ctx, this.state);
this.enterRule(localctx, 120, sqlParser.RULE_identifierComment);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
this.state = 1799;
2019-09-25 16:53:32 +08:00
this.identifier();
this.state = 1802;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.COMMENT) {
2019-09-25 16:53:32 +08:00
this.state = 1800;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COMMENT);
2019-09-25 16:53:32 +08:00
this.state = 1801;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
}
}
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 RelationPrimaryContext(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 = sqlParser.RULE_relationPrimary;
return this;
}
RelationPrimaryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RelationPrimaryContext.prototype.constructor = RelationPrimaryContext;
RelationPrimaryContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function TableValuedFunctionContext(parser, ctx) {
RelationPrimaryContext.call(this, parser);
RelationPrimaryContext.prototype.copyFrom.call(this, ctx);
return this;
}
TableValuedFunctionContext.prototype = Object.create(RelationPrimaryContext.prototype);
TableValuedFunctionContext.prototype.constructor = TableValuedFunctionContext;
sqlParser.TableValuedFunctionContext = TableValuedFunctionContext;
TableValuedFunctionContext.prototype.functionTable = function () {
return this.getTypedRuleContext(FunctionTableContext, 0);
};
TableValuedFunctionContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterTableValuedFunction(this);
}
};
TableValuedFunctionContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitTableValuedFunction(this);
}
};
TableValuedFunctionContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitTableValuedFunction(this);
}
else {
return visitor.visitChildren(this);
}
};
function InlineTableDefault2Context(parser, ctx) {
RelationPrimaryContext.call(this, parser);
RelationPrimaryContext.prototype.copyFrom.call(this, ctx);
return this;
}
InlineTableDefault2Context.prototype = Object.create(RelationPrimaryContext.prototype);
InlineTableDefault2Context.prototype.constructor = InlineTableDefault2Context;
sqlParser.InlineTableDefault2Context = InlineTableDefault2Context;
InlineTableDefault2Context.prototype.inlineTable = function () {
return this.getTypedRuleContext(InlineTableContext, 0);
};
InlineTableDefault2Context.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterInlineTableDefault2(this);
}
};
InlineTableDefault2Context.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitInlineTableDefault2(this);
}
};
InlineTableDefault2Context.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitInlineTableDefault2(this);
}
else {
return visitor.visitChildren(this);
}
};
function AliasedRelationContext(parser, ctx) {
RelationPrimaryContext.call(this, parser);
RelationPrimaryContext.prototype.copyFrom.call(this, ctx);
return this;
}
AliasedRelationContext.prototype = Object.create(RelationPrimaryContext.prototype);
AliasedRelationContext.prototype.constructor = AliasedRelationContext;
sqlParser.AliasedRelationContext = AliasedRelationContext;
AliasedRelationContext.prototype.relation = function () {
return this.getTypedRuleContext(RelationContext, 0);
};
AliasedRelationContext.prototype.tableAlias = function () {
return this.getTypedRuleContext(TableAliasContext, 0);
};
AliasedRelationContext.prototype.sample = function () {
return this.getTypedRuleContext(SampleContext, 0);
};
AliasedRelationContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterAliasedRelation(this);
}
};
AliasedRelationContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitAliasedRelation(this);
}
};
AliasedRelationContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitAliasedRelation(this);
}
else {
return visitor.visitChildren(this);
}
};
function AliasedQueryContext(parser, ctx) {
RelationPrimaryContext.call(this, parser);
RelationPrimaryContext.prototype.copyFrom.call(this, ctx);
return this;
}
AliasedQueryContext.prototype = Object.create(RelationPrimaryContext.prototype);
AliasedQueryContext.prototype.constructor = AliasedQueryContext;
sqlParser.AliasedQueryContext = AliasedQueryContext;
AliasedQueryContext.prototype.queryNoWith = function () {
return this.getTypedRuleContext(QueryNoWithContext, 0);
};
AliasedQueryContext.prototype.tableAlias = function () {
return this.getTypedRuleContext(TableAliasContext, 0);
};
AliasedQueryContext.prototype.sample = function () {
return this.getTypedRuleContext(SampleContext, 0);
};
AliasedQueryContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterAliasedQuery(this);
}
};
AliasedQueryContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitAliasedQuery(this);
}
};
AliasedQueryContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitAliasedQuery(this);
}
else {
return visitor.visitChildren(this);
}
};
function TableNameContext(parser, ctx) {
RelationPrimaryContext.call(this, parser);
RelationPrimaryContext.prototype.copyFrom.call(this, ctx);
return this;
}
TableNameContext.prototype = Object.create(RelationPrimaryContext.prototype);
TableNameContext.prototype.constructor = TableNameContext;
sqlParser.TableNameContext = TableNameContext;
TableNameContext.prototype.tableIdentifier = function () {
return this.getTypedRuleContext(TableIdentifierContext, 0);
};
TableNameContext.prototype.tableAlias = function () {
return this.getTypedRuleContext(TableAliasContext, 0);
};
TableNameContext.prototype.sample = function () {
return this.getTypedRuleContext(SampleContext, 0);
};
TableNameContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterTableName(this);
}
};
TableNameContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitTableName(this);
}
};
TableNameContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitTableName(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.RelationPrimaryContext = RelationPrimaryContext;
sqlParser.prototype.relationPrimary = function () {
var localctx = new RelationPrimaryContext(this, this._ctx, this.state);
this.enterRule(localctx, 122, sqlParser.RULE_relationPrimary);
try {
2019-09-25 16:53:32 +08:00
this.state = 1828;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 240, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new TableNameContext(this, localctx);
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1804;
2019-09-25 15:43:36 +08:00
this.tableIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 1806;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 237, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1805;
2019-09-25 15:43:36 +08:00
this.sample();
}
2019-09-25 16:53:32 +08:00
this.state = 1808;
2019-09-25 15:43:36 +08:00
this.tableAlias();
break;
case 2:
localctx = new AliasedQueryContext(this, localctx);
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1810;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1811;
2019-09-25 15:43:36 +08:00
this.queryNoWith();
2019-09-25 16:53:32 +08:00
this.state = 1812;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
2019-09-25 16:53:32 +08:00
this.state = 1814;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 238, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1813;
2019-09-25 15:43:36 +08:00
this.sample();
}
2019-09-25 16:53:32 +08:00
this.state = 1816;
2019-09-25 15:43:36 +08:00
this.tableAlias();
break;
case 3:
localctx = new AliasedRelationContext(this, localctx);
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 1818;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1819;
2019-09-25 15:43:36 +08:00
this.relation();
2019-09-25 16:53:32 +08:00
this.state = 1820;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
2019-09-25 16:53:32 +08:00
this.state = 1822;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 239, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1821;
2019-09-25 15:43:36 +08:00
this.sample();
}
2019-09-25 16:53:32 +08:00
this.state = 1824;
2019-09-25 15:43:36 +08:00
this.tableAlias();
break;
case 4:
localctx = new InlineTableDefault2Context(this, localctx);
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 1826;
2019-09-25 15:43:36 +08:00
this.inlineTable();
break;
case 5:
localctx = new TableValuedFunctionContext(this, localctx);
this.enterOuterAlt(localctx, 5);
2019-09-25 16:53:32 +08:00
this.state = 1827;
2019-09-25 15:43:36 +08:00
this.functionTable();
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 InlineTableContext(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 = sqlParser.RULE_inlineTable;
return this;
}
InlineTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
InlineTableContext.prototype.constructor = InlineTableContext;
InlineTableContext.prototype.VALUES = function () {
return this.getToken(sqlParser.VALUES, 0);
};
InlineTableContext.prototype.expression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ExpressionContext);
}
else {
return this.getTypedRuleContext(ExpressionContext, i);
}
};
InlineTableContext.prototype.tableAlias = function () {
return this.getTypedRuleContext(TableAliasContext, 0);
};
InlineTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterInlineTable(this);
}
};
InlineTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitInlineTable(this);
}
};
InlineTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitInlineTable(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.InlineTableContext = InlineTableContext;
sqlParser.prototype.inlineTable = function () {
var localctx = new InlineTableContext(this, this._ctx, this.state);
this.enterRule(localctx, 124, sqlParser.RULE_inlineTable);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1830;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.VALUES);
2019-09-25 16:53:32 +08:00
this.state = 1831;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 1836;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 241, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1832;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1833;
2019-09-25 15:43:36 +08:00
this.expression();
}
2019-09-25 16:53:32 +08:00
this.state = 1838;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 241, this._ctx);
2019-09-25 15:43:36 +08:00
}
2019-09-25 16:53:32 +08:00
this.state = 1839;
2019-09-25 15:43:36 +08:00
this.tableAlias();
}
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 FunctionTableContext(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 = sqlParser.RULE_functionTable;
return this;
}
FunctionTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FunctionTableContext.prototype.constructor = FunctionTableContext;
FunctionTableContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
FunctionTableContext.prototype.tableAlias = function () {
return this.getTypedRuleContext(TableAliasContext, 0);
};
FunctionTableContext.prototype.expression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ExpressionContext);
}
else {
return this.getTypedRuleContext(ExpressionContext, i);
}
};
FunctionTableContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterFunctionTable(this);
}
};
FunctionTableContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitFunctionTable(this);
}
};
FunctionTableContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitFunctionTable(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.FunctionTableContext = FunctionTableContext;
sqlParser.prototype.functionTable = function () {
var localctx = new FunctionTableContext(this, this._ctx, this.state);
this.enterRule(localctx, 126, sqlParser.RULE_functionTable);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1841;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 1842;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1851;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER) | (1 << sqlParser.HAVING) | (1 << sqlParser.LIMIT) | (1 << sqlParser.AT) | (1 << sqlParser.OR) | (1 << sqlParser.AND) | (1 << sqlParser.IN))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)) | (1 << (sqlParser.RIGHT - 32)) | (1 << (sqlParser.FULL - 32)) | (1 << (sqlParser.NATURAL - 32)) | (1 << (sqlParser.ON - 32)) | (1 << (sqlParser.PIVOT - 32)) | (1 << (sqlParser.LATERAL - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.VALUES - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)) | (1 << (sqlParser.LOGICAL - 64)) | (1 << (sqlParser.CODEGEN - 64)) | (1 << (sqlParser.COST - 64)) | (1 << (sqlParser.CAST - 64)) | (1 << (sqlParser.SHOW - 64)) | (1 << (sqlParser.TABLES - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)) | (1 << (sqlParser.MACRO - 96)) | (1 << (sqlParser.IGNORE - 96)) | (1 << (sqlParser.BOTH - 96)) | (1 << (sqlParser.LEADING - 96)) | (1 << (sqlParser.TRAILING - 96)) | (1 << (sqlParser.IF - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (
2019-09-25 16:53:32 +08:00
this.state = 1843;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 1848;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1844;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1845;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 1850;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
}
2019-09-25 16:53:32 +08:00
this.state = 1853;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
2019-09-25 16:53:32 +08:00
this.state = 1854;
2019-09-25 15:43:36 +08:00
this.tableAlias();
}
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 TableAliasContext(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 = sqlParser.RULE_tableAlias;
return this;
}
TableAliasContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TableAliasContext.prototype.constructor = TableAliasContext;
TableAliasContext.prototype.strictIdentifier = function () {
return this.getTypedRuleContext(StrictIdentifierContext, 0);
};
TableAliasContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
TableAliasContext.prototype.identifierList = function () {
return this.getTypedRuleContext(IdentifierListContext, 0);
};
TableAliasContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterTableAlias(this);
}
};
TableAliasContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitTableAlias(this);
}
};
TableAliasContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitTableAlias(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.TableAliasContext = TableAliasContext;
sqlParser.prototype.tableAlias = function () {
var localctx = new TableAliasContext(this, this._ctx, this.state);
this.enterRule(localctx, 128, sqlParser.RULE_tableAlias);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1863;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 246, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1857;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 244, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1856;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
}
2019-09-25 16:53:32 +08:00
this.state = 1859;
2019-09-25 15:43:36 +08:00
this.strictIdentifier();
2019-09-25 16:53:32 +08:00
this.state = 1861;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 245, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1860;
2019-09-25 15:43:36 +08:00
this.identifierList();
}
}
}
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 RowFormatContext(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 = sqlParser.RULE_rowFormat;
return this;
}
RowFormatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RowFormatContext.prototype.constructor = RowFormatContext;
RowFormatContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function RowFormatSerdeContext(parser, ctx) {
RowFormatContext.call(this, parser);
this.name = null; // Token;
this.props = null; // TablePropertyListContext;
RowFormatContext.prototype.copyFrom.call(this, ctx);
return this;
}
RowFormatSerdeContext.prototype = Object.create(RowFormatContext.prototype);
RowFormatSerdeContext.prototype.constructor = RowFormatSerdeContext;
sqlParser.RowFormatSerdeContext = RowFormatSerdeContext;
RowFormatSerdeContext.prototype.ROW = function () {
return this.getToken(sqlParser.ROW, 0);
};
RowFormatSerdeContext.prototype.FORMAT = function () {
return this.getToken(sqlParser.FORMAT, 0);
};
RowFormatSerdeContext.prototype.SERDE = function () {
return this.getToken(sqlParser.SERDE, 0);
};
RowFormatSerdeContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
RowFormatSerdeContext.prototype.WITH = function () {
return this.getToken(sqlParser.WITH, 0);
};
RowFormatSerdeContext.prototype.SERDEPROPERTIES = function () {
return this.getToken(sqlParser.SERDEPROPERTIES, 0);
};
RowFormatSerdeContext.prototype.tablePropertyList = function () {
return this.getTypedRuleContext(TablePropertyListContext, 0);
};
RowFormatSerdeContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterRowFormatSerde(this);
}
};
RowFormatSerdeContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitRowFormatSerde(this);
}
};
RowFormatSerdeContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitRowFormatSerde(this);
}
else {
return visitor.visitChildren(this);
}
};
function RowFormatDelimitedContext(parser, ctx) {
RowFormatContext.call(this, parser);
this.fieldsTerminatedBy = null; // Token;
this.escapedBy = null; // Token;
this.collectionItemsTerminatedBy = null; // Token;
this.keysTerminatedBy = null; // Token;
this.linesSeparatedBy = null; // Token;
this.nullDefinedAs = null; // Token;
RowFormatContext.prototype.copyFrom.call(this, ctx);
return this;
}
RowFormatDelimitedContext.prototype = Object.create(RowFormatContext.prototype);
RowFormatDelimitedContext.prototype.constructor = RowFormatDelimitedContext;
sqlParser.RowFormatDelimitedContext = RowFormatDelimitedContext;
RowFormatDelimitedContext.prototype.ROW = function () {
return this.getToken(sqlParser.ROW, 0);
};
RowFormatDelimitedContext.prototype.FORMAT = function () {
return this.getToken(sqlParser.FORMAT, 0);
};
RowFormatDelimitedContext.prototype.DELIMITED = function () {
return this.getToken(sqlParser.DELIMITED, 0);
};
RowFormatDelimitedContext.prototype.FIELDS = function () {
return this.getToken(sqlParser.FIELDS, 0);
};
RowFormatDelimitedContext.prototype.TERMINATED = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.TERMINATED);
}
else {
return this.getToken(sqlParser.TERMINATED, i);
}
};
RowFormatDelimitedContext.prototype.BY = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.BY);
}
else {
return this.getToken(sqlParser.BY, i);
}
};
RowFormatDelimitedContext.prototype.COLLECTION = function () {
return this.getToken(sqlParser.COLLECTION, 0);
};
RowFormatDelimitedContext.prototype.ITEMS = function () {
return this.getToken(sqlParser.ITEMS, 0);
};
RowFormatDelimitedContext.prototype.MAP = function () {
return this.getToken(sqlParser.MAP, 0);
};
RowFormatDelimitedContext.prototype.KEYS = function () {
return this.getToken(sqlParser.KEYS, 0);
};
RowFormatDelimitedContext.prototype.LINES = function () {
return this.getToken(sqlParser.LINES, 0);
};
RowFormatDelimitedContext.prototype.NULL = function () {
return this.getToken(sqlParser.NULL, 0);
};
RowFormatDelimitedContext.prototype.DEFINED = function () {
return this.getToken(sqlParser.DEFINED, 0);
};
RowFormatDelimitedContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
RowFormatDelimitedContext.prototype.STRING = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.STRING);
}
else {
return this.getToken(sqlParser.STRING, i);
}
};
RowFormatDelimitedContext.prototype.ESCAPED = function () {
return this.getToken(sqlParser.ESCAPED, 0);
};
RowFormatDelimitedContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterRowFormatDelimited(this);
}
};
RowFormatDelimitedContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitRowFormatDelimited(this);
}
};
RowFormatDelimitedContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitRowFormatDelimited(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.RowFormatContext = RowFormatContext;
sqlParser.prototype.rowFormat = function () {
var localctx = new RowFormatContext(this, this._ctx, this.state);
this.enterRule(localctx, 130, sqlParser.RULE_rowFormat);
try {
2019-09-25 16:53:32 +08:00
this.state = 1914;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 254, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new RowFormatSerdeContext(this, localctx);
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1865;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ROW);
2019-09-25 16:53:32 +08:00
this.state = 1866;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FORMAT);
2019-09-25 16:53:32 +08:00
this.state = 1867;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SERDE);
2019-09-25 16:53:32 +08:00
this.state = 1868;
2019-09-25 15:43:36 +08:00
localctx.name = this.match(sqlParser.STRING);
2019-09-25 16:53:32 +08:00
this.state = 1872;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 247, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1869;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.WITH);
2019-09-25 16:53:32 +08:00
this.state = 1870;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SERDEPROPERTIES);
2019-09-25 16:53:32 +08:00
this.state = 1871;
2019-09-25 15:43:36 +08:00
localctx.props = this.tablePropertyList();
}
break;
case 2:
localctx = new RowFormatDelimitedContext(this, localctx);
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1874;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ROW);
2019-09-25 16:53:32 +08:00
this.state = 1875;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FORMAT);
2019-09-25 16:53:32 +08:00
this.state = 1876;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DELIMITED);
2019-09-25 16:53:32 +08:00
this.state = 1886;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 249, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1877;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FIELDS);
2019-09-25 16:53:32 +08:00
this.state = 1878;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TERMINATED);
2019-09-25 16:53:32 +08:00
this.state = 1879;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1880;
2019-09-25 15:43:36 +08:00
localctx.fieldsTerminatedBy = this.match(sqlParser.STRING);
2019-09-25 16:53:32 +08:00
this.state = 1884;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 248, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1881;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ESCAPED);
2019-09-25 16:53:32 +08:00
this.state = 1882;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1883;
2019-09-25 15:43:36 +08:00
localctx.escapedBy = this.match(sqlParser.STRING);
}
}
2019-09-25 16:53:32 +08:00
this.state = 1893;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 250, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1888;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COLLECTION);
2019-09-25 16:53:32 +08:00
this.state = 1889;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ITEMS);
2019-09-25 16:53:32 +08:00
this.state = 1890;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TERMINATED);
2019-09-25 16:53:32 +08:00
this.state = 1891;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1892;
2019-09-25 15:43:36 +08:00
localctx.collectionItemsTerminatedBy = this.match(sqlParser.STRING);
}
2019-09-25 16:53:32 +08:00
this.state = 1900;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 251, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1895;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.MAP);
2019-09-25 16:53:32 +08:00
this.state = 1896;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.KEYS);
2019-09-25 16:53:32 +08:00
this.state = 1897;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TERMINATED);
2019-09-25 16:53:32 +08:00
this.state = 1898;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1899;
2019-09-25 15:43:36 +08:00
localctx.keysTerminatedBy = this.match(sqlParser.STRING);
}
2019-09-25 16:53:32 +08:00
this.state = 1906;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 252, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1902;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LINES);
2019-09-25 16:53:32 +08:00
this.state = 1903;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TERMINATED);
2019-09-25 16:53:32 +08:00
this.state = 1904;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 1905;
2019-09-25 15:43:36 +08:00
localctx.linesSeparatedBy = this.match(sqlParser.STRING);
}
2019-09-25 16:53:32 +08:00
this.state = 1912;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 253, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1908;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NULL);
2019-09-25 16:53:32 +08:00
this.state = 1909;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DEFINED);
2019-09-25 16:53:32 +08:00
this.state = 1910;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
2019-09-25 16:53:32 +08:00
this.state = 1911;
2019-09-25 15:43:36 +08:00
localctx.nullDefinedAs = this.match(sqlParser.STRING);
}
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 TableIdentifierContext(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 = sqlParser.RULE_tableIdentifier;
this.db = null; // IdentifierContext
this.table = null; // IdentifierContext
return this;
}
TableIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TableIdentifierContext.prototype.constructor = TableIdentifierContext;
TableIdentifierContext.prototype.identifier = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(IdentifierContext);
}
else {
return this.getTypedRuleContext(IdentifierContext, i);
}
};
TableIdentifierContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterTableIdentifier(this);
}
};
TableIdentifierContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitTableIdentifier(this);
}
};
TableIdentifierContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitTableIdentifier(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.TableIdentifierContext = TableIdentifierContext;
sqlParser.prototype.tableIdentifier = function () {
var localctx = new TableIdentifierContext(this, this._ctx, this.state);
this.enterRule(localctx, 132, sqlParser.RULE_tableIdentifier);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1919;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 255, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1916;
2019-09-25 15:43:36 +08:00
localctx.db = this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 1917;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__2);
}
2019-09-25 16:53:32 +08:00
this.state = 1921;
2019-09-25 15:43:36 +08:00
localctx.table = this.identifier();
}
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 FunctionIdentifierContext(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 = sqlParser.RULE_functionIdentifier;
this.db = null; // IdentifierContext
this.j_function = null; // IdentifierContext
return this;
}
FunctionIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FunctionIdentifierContext.prototype.constructor = FunctionIdentifierContext;
FunctionIdentifierContext.prototype.identifier = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(IdentifierContext);
}
else {
return this.getTypedRuleContext(IdentifierContext, i);
}
};
FunctionIdentifierContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterFunctionIdentifier(this);
}
};
FunctionIdentifierContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitFunctionIdentifier(this);
}
};
FunctionIdentifierContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitFunctionIdentifier(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.FunctionIdentifierContext = FunctionIdentifierContext;
sqlParser.prototype.functionIdentifier = function () {
var localctx = new FunctionIdentifierContext(this, this._ctx, this.state);
this.enterRule(localctx, 134, sqlParser.RULE_functionIdentifier);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1926;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 256, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1923;
2019-09-25 15:43:36 +08:00
localctx.db = this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 1924;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__2);
}
2019-09-25 16:53:32 +08:00
this.state = 1928;
2019-09-25 15:43:36 +08:00
localctx.j_function = this.identifier();
}
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 NamedExpressionContext(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 = sqlParser.RULE_namedExpression;
return this;
}
NamedExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
NamedExpressionContext.prototype.constructor = NamedExpressionContext;
NamedExpressionContext.prototype.expression = function () {
return this.getTypedRuleContext(ExpressionContext, 0);
};
NamedExpressionContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
NamedExpressionContext.prototype.identifierList = function () {
return this.getTypedRuleContext(IdentifierListContext, 0);
};
NamedExpressionContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
NamedExpressionContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterNamedExpression(this);
}
};
NamedExpressionContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitNamedExpression(this);
}
};
NamedExpressionContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitNamedExpression(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.NamedExpressionContext = NamedExpressionContext;
sqlParser.prototype.namedExpression = function () {
var localctx = new NamedExpressionContext(this, this._ctx, this.state);
this.enterRule(localctx, 136, sqlParser.RULE_namedExpression);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1930;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 1938;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 259, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1932;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 257, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1931;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
}
2019-09-25 16:53:32 +08:00
this.state = 1936;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.SELECT:
case sqlParser.FROM:
case sqlParser.ADD:
case sqlParser.AS:
case sqlParser.ALL:
case sqlParser.ANY:
case sqlParser.DISTINCT:
case sqlParser.WHERE:
case sqlParser.GROUP:
case sqlParser.BY:
case sqlParser.GROUPING:
case sqlParser.SETS:
case sqlParser.CUBE:
case sqlParser.ROLLUP:
case sqlParser.ORDER:
case sqlParser.HAVING:
case sqlParser.LIMIT:
case sqlParser.AT:
case sqlParser.OR:
case sqlParser.AND:
case sqlParser.IN:
case sqlParser.NOT:
case sqlParser.NO:
case sqlParser.EXISTS:
case sqlParser.BETWEEN:
case sqlParser.LIKE:
case sqlParser.RLIKE:
case sqlParser.IS:
case sqlParser.NULL:
case sqlParser.TRUE:
case sqlParser.FALSE:
case sqlParser.NULLS:
case sqlParser.ASC:
case sqlParser.DESC:
case sqlParser.FOR:
case sqlParser.INTERVAL:
case sqlParser.CASE:
case sqlParser.WHEN:
case sqlParser.THEN:
case sqlParser.ELSE:
case sqlParser.END:
case sqlParser.JOIN:
case sqlParser.CROSS:
case sqlParser.OUTER:
case sqlParser.INNER:
case sqlParser.LEFT:
case sqlParser.SEMI:
case sqlParser.RIGHT:
case sqlParser.FULL:
case sqlParser.NATURAL:
case sqlParser.ON:
case sqlParser.PIVOT:
case sqlParser.LATERAL:
case sqlParser.WINDOW:
case sqlParser.OVER:
case sqlParser.PARTITION:
case sqlParser.RANGE:
case sqlParser.ROWS:
case sqlParser.UNBOUNDED:
case sqlParser.PRECEDING:
case sqlParser.FOLLOWING:
case sqlParser.CURRENT:
case sqlParser.FIRST:
case sqlParser.AFTER:
case sqlParser.LAST:
case sqlParser.ROW:
case sqlParser.WITH:
case sqlParser.VALUES:
case sqlParser.CREATE:
case sqlParser.TABLE:
case sqlParser.DIRECTORY:
case sqlParser.VIEW:
case sqlParser.REPLACE:
case sqlParser.INSERT:
case sqlParser.DELETE:
case sqlParser.INTO:
case sqlParser.DESCRIBE:
case sqlParser.EXPLAIN:
case sqlParser.FORMAT:
case sqlParser.LOGICAL:
case sqlParser.CODEGEN:
case sqlParser.COST:
case sqlParser.CAST:
case sqlParser.SHOW:
case sqlParser.TABLES:
case sqlParser.COLUMNS:
case sqlParser.COLUMN:
case sqlParser.USE:
case sqlParser.PARTITIONS:
case sqlParser.FUNCTIONS:
case sqlParser.DROP:
case sqlParser.UNION:
case sqlParser.EXCEPT:
case sqlParser.SETMINUS:
case sqlParser.INTERSECT:
case sqlParser.TO:
case sqlParser.TABLESAMPLE:
case sqlParser.STRATIFY:
case sqlParser.ALTER:
case sqlParser.RENAME:
case sqlParser.ARRAY:
case sqlParser.MAP:
case sqlParser.STRUCT:
case sqlParser.COMMENT:
case sqlParser.SET:
case sqlParser.RESET:
case sqlParser.DATA:
case sqlParser.START:
case sqlParser.TRANSACTION:
case sqlParser.COMMIT:
case sqlParser.ROLLBACK:
case sqlParser.MACRO:
case sqlParser.IGNORE:
case sqlParser.BOTH:
case sqlParser.LEADING:
case sqlParser.TRAILING:
case sqlParser.IF:
case sqlParser.POSITION:
case sqlParser.EXTRACT:
case sqlParser.DIV:
case sqlParser.PERCENTLIT:
case sqlParser.BUCKET:
case sqlParser.OUT:
case sqlParser.OF:
case sqlParser.SORT:
case sqlParser.CLUSTER:
case sqlParser.DISTRIBUTE:
case sqlParser.OVERWRITE:
case sqlParser.TRANSFORM:
case sqlParser.REDUCE:
case sqlParser.SERDE:
case sqlParser.SERDEPROPERTIES:
case sqlParser.RECORDREADER:
case sqlParser.RECORDWRITER:
case sqlParser.DELIMITED:
case sqlParser.FIELDS:
case sqlParser.TERMINATED:
case sqlParser.COLLECTION:
case sqlParser.ITEMS:
case sqlParser.KEYS:
case sqlParser.ESCAPED:
case sqlParser.LINES:
case sqlParser.SEPARATED:
case sqlParser.FUNCTION:
case sqlParser.EXTENDED:
case sqlParser.REFRESH:
case sqlParser.CLEAR:
case sqlParser.CACHE:
case sqlParser.UNCACHE:
case sqlParser.LAZY:
case sqlParser.FORMATTED:
case sqlParser.GLOBAL:
case sqlParser.TEMPORARY:
case sqlParser.OPTIONS:
case sqlParser.UNSET:
case sqlParser.TBLPROPERTIES:
case sqlParser.DBPROPERTIES:
case sqlParser.BUCKETS:
case sqlParser.SKEWED:
case sqlParser.STORED:
case sqlParser.DIRECTORIES:
case sqlParser.LOCATION:
case sqlParser.EXCHANGE:
case sqlParser.ARCHIVE:
case sqlParser.UNARCHIVE:
case sqlParser.FILEFORMAT:
case sqlParser.TOUCH:
case sqlParser.COMPACT:
case sqlParser.CONCATENATE:
case sqlParser.CHANGE:
case sqlParser.CASCADE:
case sqlParser.RESTRICT:
case sqlParser.CLUSTERED:
case sqlParser.SORTED:
case sqlParser.PURGE:
case sqlParser.INPUTFORMAT:
case sqlParser.OUTPUTFORMAT:
case sqlParser.DATABASE:
case sqlParser.DATABASES:
case sqlParser.DFS:
case sqlParser.TRUNCATE:
case sqlParser.ANALYZE:
case sqlParser.COMPUTE:
case sqlParser.LIST:
case sqlParser.STATISTICS:
case sqlParser.PARTITIONED:
case sqlParser.EXTERNAL:
case sqlParser.DEFINED:
case sqlParser.REVOKE:
case sqlParser.GRANT:
case sqlParser.LOCK:
case sqlParser.UNLOCK:
case sqlParser.MSCK:
case sqlParser.REPAIR:
case sqlParser.RECOVER:
case sqlParser.EXPORT:
case sqlParser.IMPORT:
case sqlParser.LOAD:
case sqlParser.ROLE:
case sqlParser.ROLES:
case sqlParser.COMPACTIONS:
case sqlParser.PRINCIPALS:
case sqlParser.TRANSACTIONS:
case sqlParser.INDEX:
case sqlParser.INDEXES:
case sqlParser.LOCKS:
case sqlParser.OPTION:
case sqlParser.ANTI:
case sqlParser.LOCAL:
case sqlParser.INPATH:
case sqlParser.IDENTIFIER:
case sqlParser.BACKQUOTED_IDENTIFIER:
2019-09-25 16:53:32 +08:00
this.state = 1934;
2019-09-25 15:43:36 +08:00
this.identifier();
break;
case sqlParser.T__0:
2019-09-25 16:53:32 +08:00
this.state = 1935;
2019-09-25 15:43:36 +08:00
this.identifierList();
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 NamedExpressionSeqContext(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 = sqlParser.RULE_namedExpressionSeq;
return this;
}
NamedExpressionSeqContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
NamedExpressionSeqContext.prototype.constructor = NamedExpressionSeqContext;
NamedExpressionSeqContext.prototype.namedExpression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(NamedExpressionContext);
}
else {
return this.getTypedRuleContext(NamedExpressionContext, i);
}
};
NamedExpressionSeqContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterNamedExpressionSeq(this);
}
};
NamedExpressionSeqContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitNamedExpressionSeq(this);
}
};
NamedExpressionSeqContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitNamedExpressionSeq(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.NamedExpressionSeqContext = NamedExpressionSeqContext;
sqlParser.prototype.namedExpressionSeq = function () {
var localctx = new NamedExpressionSeqContext(this, this._ctx, this.state);
this.enterRule(localctx, 138, sqlParser.RULE_namedExpressionSeq);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1940;
2019-09-25 15:43:36 +08:00
this.namedExpression();
2019-09-25 16:53:32 +08:00
this.state = 1945;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 260, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1941;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1942;
2019-09-25 15:43:36 +08:00
this.namedExpression();
}
2019-09-25 16:53:32 +08:00
this.state = 1947;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 260, this._ctx);
2019-09-25 15:43:36 +08:00
}
}
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 ExpressionContext(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 = sqlParser.RULE_expression;
return this;
}
ExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ExpressionContext.prototype.constructor = ExpressionContext;
ExpressionContext.prototype.booleanExpression = function () {
return this.getTypedRuleContext(BooleanExpressionContext, 0);
};
ExpressionContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterExpression(this);
}
};
ExpressionContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitExpression(this);
}
};
ExpressionContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitExpression(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.ExpressionContext = ExpressionContext;
sqlParser.prototype.expression = function () {
var localctx = new ExpressionContext(this, this._ctx, this.state);
this.enterRule(localctx, 140, sqlParser.RULE_expression);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1948;
2019-09-25 15:43:36 +08:00
this.booleanExpression(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 BooleanExpressionContext(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 = sqlParser.RULE_booleanExpression;
return this;
}
BooleanExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
BooleanExpressionContext.prototype.constructor = BooleanExpressionContext;
BooleanExpressionContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function LogicalNotContext(parser, ctx) {
BooleanExpressionContext.call(this, parser);
BooleanExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
LogicalNotContext.prototype = Object.create(BooleanExpressionContext.prototype);
LogicalNotContext.prototype.constructor = LogicalNotContext;
sqlParser.LogicalNotContext = LogicalNotContext;
LogicalNotContext.prototype.NOT = function () {
return this.getToken(sqlParser.NOT, 0);
};
LogicalNotContext.prototype.booleanExpression = function () {
return this.getTypedRuleContext(BooleanExpressionContext, 0);
};
LogicalNotContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterLogicalNot(this);
}
};
LogicalNotContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitLogicalNot(this);
}
};
LogicalNotContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitLogicalNot(this);
}
else {
return visitor.visitChildren(this);
}
};
function PredicatedContext(parser, ctx) {
BooleanExpressionContext.call(this, parser);
BooleanExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
PredicatedContext.prototype = Object.create(BooleanExpressionContext.prototype);
PredicatedContext.prototype.constructor = PredicatedContext;
sqlParser.PredicatedContext = PredicatedContext;
PredicatedContext.prototype.valueExpression = function () {
return this.getTypedRuleContext(ValueExpressionContext, 0);
};
PredicatedContext.prototype.predicate = function () {
return this.getTypedRuleContext(PredicateContext, 0);
};
PredicatedContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterPredicated(this);
}
};
PredicatedContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitPredicated(this);
}
};
PredicatedContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitPredicated(this);
}
else {
return visitor.visitChildren(this);
}
};
function ExistsContext(parser, ctx) {
BooleanExpressionContext.call(this, parser);
BooleanExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
ExistsContext.prototype = Object.create(BooleanExpressionContext.prototype);
ExistsContext.prototype.constructor = ExistsContext;
sqlParser.ExistsContext = ExistsContext;
ExistsContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
ExistsContext.prototype.query = function () {
return this.getTypedRuleContext(QueryContext, 0);
};
ExistsContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterExists(this);
}
};
ExistsContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitExists(this);
}
};
ExistsContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitExists(this);
}
else {
return visitor.visitChildren(this);
}
};
function LogicalBinaryContext(parser, ctx) {
BooleanExpressionContext.call(this, parser);
this.left = null; // BooleanExpressionContext;
this.operator = null; // Token;
this.right = null; // BooleanExpressionContext;
BooleanExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
LogicalBinaryContext.prototype = Object.create(BooleanExpressionContext.prototype);
LogicalBinaryContext.prototype.constructor = LogicalBinaryContext;
sqlParser.LogicalBinaryContext = LogicalBinaryContext;
LogicalBinaryContext.prototype.booleanExpression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(BooleanExpressionContext);
}
else {
return this.getTypedRuleContext(BooleanExpressionContext, i);
}
};
LogicalBinaryContext.prototype.AND = function () {
return this.getToken(sqlParser.AND, 0);
};
LogicalBinaryContext.prototype.OR = function () {
return this.getToken(sqlParser.OR, 0);
};
LogicalBinaryContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterLogicalBinary(this);
}
};
LogicalBinaryContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitLogicalBinary(this);
}
};
LogicalBinaryContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitLogicalBinary(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.prototype.booleanExpression = function (_p) {
if (_p === undefined) {
_p = 0;
}
var _parentctx = this._ctx;
var _parentState = this.state;
var localctx = new BooleanExpressionContext(this, this._ctx, _parentState);
var _prevctx = localctx;
var _startState = 142;
this.enterRecursionRule(localctx, 142, sqlParser.RULE_booleanExpression, _p);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1962;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 262, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new LogicalNotContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 1951;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
2019-09-25 16:53:32 +08:00
this.state = 1952;
2019-09-25 15:43:36 +08:00
this.booleanExpression(5);
break;
case 2:
localctx = new ExistsContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 1953;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXISTS);
2019-09-25 16:53:32 +08:00
this.state = 1954;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1955;
2019-09-25 15:43:36 +08:00
this.query();
2019-09-25 16:53:32 +08:00
this.state = 1956;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case 3:
localctx = new PredicatedContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 1958;
2019-09-25 15:43:36 +08:00
this.valueExpression(0);
2019-09-25 16:53:32 +08:00
this.state = 1960;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 261, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 1959;
2019-09-25 15:43:36 +08:00
this.predicate();
}
break;
}
this._ctx.stop = this._input.LT(-1);
2019-09-25 16:53:32 +08:00
this.state = 1972;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 264, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
if (this._parseListeners !== null) {
this.triggerExitRuleEvent();
}
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 1970;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 263, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new LogicalBinaryContext(this, new BooleanExpressionContext(this, _parentctx, _parentState));
localctx.left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_booleanExpression);
2019-09-25 16:53:32 +08:00
this.state = 1964;
2019-09-25 15:43:36 +08:00
if (!(this.precpred(this._ctx, 2))) {
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)");
}
2019-09-25 16:53:32 +08:00
this.state = 1965;
2019-09-25 15:43:36 +08:00
localctx.operator = this.match(sqlParser.AND);
2019-09-25 16:53:32 +08:00
this.state = 1966;
2019-09-25 15:43:36 +08:00
localctx.right = this.booleanExpression(3);
break;
case 2:
localctx = new LogicalBinaryContext(this, new BooleanExpressionContext(this, _parentctx, _parentState));
localctx.left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_booleanExpression);
2019-09-25 16:53:32 +08:00
this.state = 1967;
2019-09-25 15:43:36 +08:00
if (!(this.precpred(this._ctx, 1))) {
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)");
}
2019-09-25 16:53:32 +08:00
this.state = 1968;
2019-09-25 15:43:36 +08:00
localctx.operator = this.match(sqlParser.OR);
2019-09-25 16:53:32 +08:00
this.state = 1969;
2019-09-25 15:43:36 +08:00
localctx.right = this.booleanExpression(2);
break;
}
}
2019-09-25 16:53:32 +08:00
this.state = 1974;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 264, this._ctx);
2019-09-25 15:43:36 +08:00
}
}
catch (error) {
if (error instanceof antlr4.error.RecognitionException) {
localctx.exception = error;
this._errHandler.reportError(this, error);
this._errHandler.recover(this, error);
}
else {
throw error;
}
}
finally {
this.unrollRecursionContexts(_parentctx);
}
return localctx;
};
function PredicateContext(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 = sqlParser.RULE_predicate;
this.kind = null; // Token
this.lower = null; // ValueExpressionContext
this.upper = null; // ValueExpressionContext
this.pattern = null; // ValueExpressionContext
this.right = null; // ValueExpressionContext
return this;
}
PredicateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PredicateContext.prototype.constructor = PredicateContext;
PredicateContext.prototype.AND = function () {
return this.getToken(sqlParser.AND, 0);
};
PredicateContext.prototype.BETWEEN = function () {
return this.getToken(sqlParser.BETWEEN, 0);
};
PredicateContext.prototype.valueExpression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ValueExpressionContext);
}
else {
return this.getTypedRuleContext(ValueExpressionContext, i);
}
};
PredicateContext.prototype.NOT = function () {
return this.getToken(sqlParser.NOT, 0);
};
PredicateContext.prototype.expression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ExpressionContext);
}
else {
return this.getTypedRuleContext(ExpressionContext, i);
}
};
PredicateContext.prototype.IN = function () {
return this.getToken(sqlParser.IN, 0);
};
PredicateContext.prototype.query = function () {
return this.getTypedRuleContext(QueryContext, 0);
};
PredicateContext.prototype.RLIKE = function () {
return this.getToken(sqlParser.RLIKE, 0);
};
PredicateContext.prototype.LIKE = function () {
return this.getToken(sqlParser.LIKE, 0);
};
PredicateContext.prototype.IS = function () {
return this.getToken(sqlParser.IS, 0);
};
PredicateContext.prototype.NULL = function () {
return this.getToken(sqlParser.NULL, 0);
};
PredicateContext.prototype.FROM = function () {
return this.getToken(sqlParser.FROM, 0);
};
PredicateContext.prototype.DISTINCT = function () {
return this.getToken(sqlParser.DISTINCT, 0);
};
PredicateContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterPredicate(this);
}
};
PredicateContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitPredicate(this);
}
};
PredicateContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitPredicate(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.PredicateContext = PredicateContext;
sqlParser.prototype.predicate = function () {
var localctx = new PredicateContext(this, this._ctx, this.state);
this.enterRule(localctx, 144, sqlParser.RULE_predicate);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 2023;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 272, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 1976;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.NOT) {
2019-09-25 16:53:32 +08:00
this.state = 1975;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
}
2019-09-25 16:53:32 +08:00
this.state = 1978;
2019-09-25 15:43:36 +08:00
localctx.kind = this.match(sqlParser.BETWEEN);
2019-09-25 16:53:32 +08:00
this.state = 1979;
2019-09-25 15:43:36 +08:00
localctx.lower = this.valueExpression(0);
2019-09-25 16:53:32 +08:00
this.state = 1980;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AND);
2019-09-25 16:53:32 +08:00
this.state = 1981;
2019-09-25 15:43:36 +08:00
localctx.upper = this.valueExpression(0);
break;
case 2:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 1984;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.NOT) {
2019-09-25 16:53:32 +08:00
this.state = 1983;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
}
2019-09-25 16:53:32 +08:00
this.state = 1986;
2019-09-25 15:43:36 +08:00
localctx.kind = this.match(sqlParser.IN);
2019-09-25 16:53:32 +08:00
this.state = 1987;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 1988;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 1993;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 1989;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 1990;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 1995;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 1996;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case 3:
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 1999;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.NOT) {
2019-09-25 16:53:32 +08:00
this.state = 1998;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
}
2019-09-25 16:53:32 +08:00
this.state = 2001;
2019-09-25 15:43:36 +08:00
localctx.kind = this.match(sqlParser.IN);
2019-09-25 16:53:32 +08:00
this.state = 2002;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 2003;
2019-09-25 15:43:36 +08:00
this.query();
2019-09-25 16:53:32 +08:00
this.state = 2004;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case 4:
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 2007;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.NOT) {
2019-09-25 16:53:32 +08:00
this.state = 2006;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
}
2019-09-25 16:53:32 +08:00
this.state = 2009;
2019-09-25 15:43:36 +08:00
localctx.kind = this._input.LT(1);
_la = this._input.LA(1);
if (!(_la === sqlParser.LIKE || _la === sqlParser.RLIKE)) {
localctx.kind = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 2010;
2019-09-25 15:43:36 +08:00
localctx.pattern = this.valueExpression(0);
break;
case 5:
this.enterOuterAlt(localctx, 5);
2019-09-25 16:53:32 +08:00
this.state = 2011;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IS);
2019-09-25 16:53:32 +08:00
this.state = 2013;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.NOT) {
2019-09-25 16:53:32 +08:00
this.state = 2012;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
}
2019-09-25 16:53:32 +08:00
this.state = 2015;
2019-09-25 15:43:36 +08:00
localctx.kind = this.match(sqlParser.NULL);
break;
case 6:
this.enterOuterAlt(localctx, 6);
2019-09-25 16:53:32 +08:00
this.state = 2016;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IS);
2019-09-25 16:53:32 +08:00
this.state = 2018;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.NOT) {
2019-09-25 16:53:32 +08:00
this.state = 2017;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NOT);
}
2019-09-25 16:53:32 +08:00
this.state = 2020;
2019-09-25 15:43:36 +08:00
localctx.kind = this.match(sqlParser.DISTINCT);
2019-09-25 16:53:32 +08:00
this.state = 2021;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FROM);
2019-09-25 16:53:32 +08:00
this.state = 2022;
2019-09-25 15:43:36 +08:00
localctx.right = this.valueExpression(0);
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 ValueExpressionContext(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 = sqlParser.RULE_valueExpression;
return this;
}
ValueExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ValueExpressionContext.prototype.constructor = ValueExpressionContext;
ValueExpressionContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function ValueExpressionDefaultContext(parser, ctx) {
ValueExpressionContext.call(this, parser);
ValueExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
ValueExpressionDefaultContext.prototype = Object.create(ValueExpressionContext.prototype);
ValueExpressionDefaultContext.prototype.constructor = ValueExpressionDefaultContext;
sqlParser.ValueExpressionDefaultContext = ValueExpressionDefaultContext;
ValueExpressionDefaultContext.prototype.primaryExpression = function () {
return this.getTypedRuleContext(PrimaryExpressionContext, 0);
};
ValueExpressionDefaultContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterValueExpressionDefault(this);
}
};
ValueExpressionDefaultContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitValueExpressionDefault(this);
}
};
ValueExpressionDefaultContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitValueExpressionDefault(this);
}
else {
return visitor.visitChildren(this);
}
};
function ComparisonContext(parser, ctx) {
ValueExpressionContext.call(this, parser);
this.left = null; // ValueExpressionContext;
this.right = null; // ValueExpressionContext;
ValueExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
ComparisonContext.prototype = Object.create(ValueExpressionContext.prototype);
ComparisonContext.prototype.constructor = ComparisonContext;
sqlParser.ComparisonContext = ComparisonContext;
ComparisonContext.prototype.comparisonOperator = function () {
return this.getTypedRuleContext(ComparisonOperatorContext, 0);
};
ComparisonContext.prototype.valueExpression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ValueExpressionContext);
}
else {
return this.getTypedRuleContext(ValueExpressionContext, i);
}
};
ComparisonContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterComparison(this);
}
};
ComparisonContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitComparison(this);
}
};
ComparisonContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitComparison(this);
}
else {
return visitor.visitChildren(this);
}
};
function ArithmeticBinaryContext(parser, ctx) {
ValueExpressionContext.call(this, parser);
this.left = null; // ValueExpressionContext;
this.operator = null; // Token;
this.right = null; // ValueExpressionContext;
ValueExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
ArithmeticBinaryContext.prototype = Object.create(ValueExpressionContext.prototype);
ArithmeticBinaryContext.prototype.constructor = ArithmeticBinaryContext;
sqlParser.ArithmeticBinaryContext = ArithmeticBinaryContext;
ArithmeticBinaryContext.prototype.valueExpression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ValueExpressionContext);
}
else {
return this.getTypedRuleContext(ValueExpressionContext, i);
}
};
ArithmeticBinaryContext.prototype.ASTERISK = function () {
return this.getToken(sqlParser.ASTERISK, 0);
};
ArithmeticBinaryContext.prototype.SLASH = function () {
return this.getToken(sqlParser.SLASH, 0);
};
ArithmeticBinaryContext.prototype.PERCENT = function () {
return this.getToken(sqlParser.PERCENT, 0);
};
ArithmeticBinaryContext.prototype.DIV = function () {
return this.getToken(sqlParser.DIV, 0);
};
ArithmeticBinaryContext.prototype.PLUS = function () {
return this.getToken(sqlParser.PLUS, 0);
};
ArithmeticBinaryContext.prototype.MINUS = function () {
return this.getToken(sqlParser.MINUS, 0);
};
ArithmeticBinaryContext.prototype.CONCAT_PIPE = function () {
return this.getToken(sqlParser.CONCAT_PIPE, 0);
};
ArithmeticBinaryContext.prototype.AMPERSAND = function () {
return this.getToken(sqlParser.AMPERSAND, 0);
};
ArithmeticBinaryContext.prototype.HAT = function () {
return this.getToken(sqlParser.HAT, 0);
};
ArithmeticBinaryContext.prototype.PIPE = function () {
return this.getToken(sqlParser.PIPE, 0);
};
ArithmeticBinaryContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterArithmeticBinary(this);
}
};
ArithmeticBinaryContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitArithmeticBinary(this);
}
};
ArithmeticBinaryContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitArithmeticBinary(this);
}
else {
return visitor.visitChildren(this);
}
};
function ArithmeticUnaryContext(parser, ctx) {
ValueExpressionContext.call(this, parser);
this.operator = null; // Token;
ValueExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
ArithmeticUnaryContext.prototype = Object.create(ValueExpressionContext.prototype);
ArithmeticUnaryContext.prototype.constructor = ArithmeticUnaryContext;
sqlParser.ArithmeticUnaryContext = ArithmeticUnaryContext;
ArithmeticUnaryContext.prototype.valueExpression = function () {
return this.getTypedRuleContext(ValueExpressionContext, 0);
};
ArithmeticUnaryContext.prototype.MINUS = function () {
return this.getToken(sqlParser.MINUS, 0);
};
ArithmeticUnaryContext.prototype.PLUS = function () {
return this.getToken(sqlParser.PLUS, 0);
};
ArithmeticUnaryContext.prototype.TILDE = function () {
return this.getToken(sqlParser.TILDE, 0);
};
ArithmeticUnaryContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterArithmeticUnary(this);
}
};
ArithmeticUnaryContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitArithmeticUnary(this);
}
};
ArithmeticUnaryContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitArithmeticUnary(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.prototype.valueExpression = function (_p) {
if (_p === undefined) {
_p = 0;
}
var _parentctx = this._ctx;
var _parentState = this.state;
var localctx = new ValueExpressionContext(this, this._ctx, _parentState);
var _prevctx = localctx;
var _startState = 146;
this.enterRecursionRule(localctx, 146, sqlParser.RULE_valueExpression, _p);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2029;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 273, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new ValueExpressionDefaultContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2026;
2019-09-25 15:43:36 +08:00
this.primaryExpression(0);
break;
case 2:
localctx = new ArithmeticUnaryContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2027;
2019-09-25 15:43:36 +08:00
localctx.operator = this._input.LT(1);
_la = this._input.LA(1);
if (!(((((_la - 138)) & ~0x1f) == 0 && ((1 << (_la - 138)) & ((1 << (sqlParser.PLUS - 138)) | (1 << (sqlParser.MINUS - 138)) | (1 << (sqlParser.TILDE - 138)))) !== 0))) {
localctx.operator = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 2028;
2019-09-25 15:43:36 +08:00
this.valueExpression(7);
break;
}
this._ctx.stop = this._input.LT(-1);
2019-09-25 16:53:32 +08:00
this.state = 2052;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 275, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
if (this._parseListeners !== null) {
this.triggerExitRuleEvent();
}
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2050;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 274, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState));
localctx.left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression);
2019-09-25 16:53:32 +08:00
this.state = 2031;
2019-09-25 15:43:36 +08:00
if (!(this.precpred(this._ctx, 6))) {
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 6)");
}
2019-09-25 16:53:32 +08:00
this.state = 2032;
2019-09-25 15:43:36 +08:00
localctx.operator = this._input.LT(1);
_la = this._input.LA(1);
if (!(((((_la - 140)) & ~0x1f) == 0 && ((1 << (_la - 140)) & ((1 << (sqlParser.ASTERISK - 140)) | (1 << (sqlParser.SLASH - 140)) | (1 << (sqlParser.PERCENT - 140)) | (1 << (sqlParser.DIV - 140)))) !== 0))) {
localctx.operator = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 2033;
2019-09-25 15:43:36 +08:00
localctx.right = this.valueExpression(7);
break;
case 2:
localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState));
localctx.left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression);
2019-09-25 16:53:32 +08:00
this.state = 2034;
2019-09-25 15:43:36 +08:00
if (!(this.precpred(this._ctx, 5))) {
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)");
}
2019-09-25 16:53:32 +08:00
this.state = 2035;
2019-09-25 15:43:36 +08:00
localctx.operator = this._input.LT(1);
_la = this._input.LA(1);
if (!(((((_la - 138)) & ~0x1f) == 0 && ((1 << (_la - 138)) & ((1 << (sqlParser.PLUS - 138)) | (1 << (sqlParser.MINUS - 138)) | (1 << (sqlParser.CONCAT_PIPE - 138)))) !== 0))) {
localctx.operator = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 2036;
2019-09-25 15:43:36 +08:00
localctx.right = this.valueExpression(6);
break;
case 3:
localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState));
localctx.left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression);
2019-09-25 16:53:32 +08:00
this.state = 2037;
2019-09-25 15:43:36 +08:00
if (!(this.precpred(this._ctx, 4))) {
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 4)");
}
2019-09-25 16:53:32 +08:00
this.state = 2038;
2019-09-25 15:43:36 +08:00
localctx.operator = this.match(sqlParser.AMPERSAND);
2019-09-25 16:53:32 +08:00
this.state = 2039;
2019-09-25 15:43:36 +08:00
localctx.right = this.valueExpression(5);
break;
case 4:
localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState));
localctx.left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression);
2019-09-25 16:53:32 +08:00
this.state = 2040;
2019-09-25 15:43:36 +08:00
if (!(this.precpred(this._ctx, 3))) {
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)");
}
2019-09-25 16:53:32 +08:00
this.state = 2041;
2019-09-25 15:43:36 +08:00
localctx.operator = this.match(sqlParser.HAT);
2019-09-25 16:53:32 +08:00
this.state = 2042;
2019-09-25 15:43:36 +08:00
localctx.right = this.valueExpression(4);
break;
case 5:
localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState));
localctx.left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression);
2019-09-25 16:53:32 +08:00
this.state = 2043;
2019-09-25 15:43:36 +08:00
if (!(this.precpred(this._ctx, 2))) {
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)");
}
2019-09-25 16:53:32 +08:00
this.state = 2044;
2019-09-25 15:43:36 +08:00
localctx.operator = this.match(sqlParser.PIPE);
2019-09-25 16:53:32 +08:00
this.state = 2045;
2019-09-25 15:43:36 +08:00
localctx.right = this.valueExpression(3);
break;
case 6:
localctx = new ComparisonContext(this, new ValueExpressionContext(this, _parentctx, _parentState));
localctx.left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression);
2019-09-25 16:53:32 +08:00
this.state = 2046;
2019-09-25 15:43:36 +08:00
if (!(this.precpred(this._ctx, 1))) {
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)");
}
2019-09-25 16:53:32 +08:00
this.state = 2047;
2019-09-25 15:43:36 +08:00
this.comparisonOperator();
2019-09-25 16:53:32 +08:00
this.state = 2048;
2019-09-25 15:43:36 +08:00
localctx.right = this.valueExpression(2);
break;
}
}
2019-09-25 16:53:32 +08:00
this.state = 2054;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 275, this._ctx);
2019-09-25 15:43:36 +08:00
}
}
catch (error) {
if (error instanceof antlr4.error.RecognitionException) {
localctx.exception = error;
this._errHandler.reportError(this, error);
this._errHandler.recover(this, error);
}
else {
throw error;
}
}
finally {
this.unrollRecursionContexts(_parentctx);
}
return localctx;
};
function PrimaryExpressionContext(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 = sqlParser.RULE_primaryExpression;
return this;
}
PrimaryExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PrimaryExpressionContext.prototype.constructor = PrimaryExpressionContext;
PrimaryExpressionContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function StructContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
this._namedExpression = null; // NamedExpressionContext;
this.argument = []; // of NamedExpressionContexts;
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
StructContext.prototype = Object.create(PrimaryExpressionContext.prototype);
StructContext.prototype.constructor = StructContext;
sqlParser.StructContext = StructContext;
StructContext.prototype.STRUCT = function () {
return this.getToken(sqlParser.STRUCT, 0);
};
StructContext.prototype.namedExpression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(NamedExpressionContext);
}
else {
return this.getTypedRuleContext(NamedExpressionContext, i);
}
};
StructContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterStruct(this);
}
};
StructContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitStruct(this);
}
};
StructContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitStruct(this);
}
else {
return visitor.visitChildren(this);
}
};
function DereferenceContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
this.base = null; // PrimaryExpressionContext;
this.fieldName = null; // IdentifierContext;
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
DereferenceContext.prototype = Object.create(PrimaryExpressionContext.prototype);
DereferenceContext.prototype.constructor = DereferenceContext;
sqlParser.DereferenceContext = DereferenceContext;
DereferenceContext.prototype.primaryExpression = function () {
return this.getTypedRuleContext(PrimaryExpressionContext, 0);
};
DereferenceContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
DereferenceContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterDereference(this);
}
};
DereferenceContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitDereference(this);
}
};
DereferenceContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitDereference(this);
}
else {
return visitor.visitChildren(this);
}
};
function SimpleCaseContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
this.value = null; // ExpressionContext;
this.elseExpression = null; // ExpressionContext;
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
SimpleCaseContext.prototype = Object.create(PrimaryExpressionContext.prototype);
SimpleCaseContext.prototype.constructor = SimpleCaseContext;
sqlParser.SimpleCaseContext = SimpleCaseContext;
SimpleCaseContext.prototype.CASE = function () {
return this.getToken(sqlParser.CASE, 0);
};
SimpleCaseContext.prototype.END = function () {
return this.getToken(sqlParser.END, 0);
};
SimpleCaseContext.prototype.expression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ExpressionContext);
}
else {
return this.getTypedRuleContext(ExpressionContext, i);
}
};
SimpleCaseContext.prototype.whenClause = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(WhenClauseContext);
}
else {
return this.getTypedRuleContext(WhenClauseContext, i);
}
};
SimpleCaseContext.prototype.ELSE = function () {
return this.getToken(sqlParser.ELSE, 0);
};
SimpleCaseContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSimpleCase(this);
}
};
SimpleCaseContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSimpleCase(this);
}
};
SimpleCaseContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSimpleCase(this);
}
else {
return visitor.visitChildren(this);
}
};
function ColumnReferenceContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
ColumnReferenceContext.prototype = Object.create(PrimaryExpressionContext.prototype);
ColumnReferenceContext.prototype.constructor = ColumnReferenceContext;
sqlParser.ColumnReferenceContext = ColumnReferenceContext;
ColumnReferenceContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
ColumnReferenceContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterColumnReference(this);
}
};
ColumnReferenceContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitColumnReference(this);
}
};
ColumnReferenceContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitColumnReference(this);
}
else {
return visitor.visitChildren(this);
}
};
function RowConstructorContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
RowConstructorContext.prototype = Object.create(PrimaryExpressionContext.prototype);
RowConstructorContext.prototype.constructor = RowConstructorContext;
sqlParser.RowConstructorContext = RowConstructorContext;
RowConstructorContext.prototype.namedExpression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(NamedExpressionContext);
}
else {
return this.getTypedRuleContext(NamedExpressionContext, i);
}
};
RowConstructorContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterRowConstructor(this);
}
};
RowConstructorContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitRowConstructor(this);
}
};
RowConstructorContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitRowConstructor(this);
}
else {
return visitor.visitChildren(this);
}
};
function LastContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
LastContext.prototype = Object.create(PrimaryExpressionContext.prototype);
LastContext.prototype.constructor = LastContext;
sqlParser.LastContext = LastContext;
LastContext.prototype.LAST = function () {
return this.getToken(sqlParser.LAST, 0);
};
LastContext.prototype.expression = function () {
return this.getTypedRuleContext(ExpressionContext, 0);
};
LastContext.prototype.IGNORE = function () {
return this.getToken(sqlParser.IGNORE, 0);
};
LastContext.prototype.NULLS = function () {
return this.getToken(sqlParser.NULLS, 0);
};
LastContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterLast(this);
}
};
LastContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitLast(this);
}
};
LastContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitLast(this);
}
else {
return visitor.visitChildren(this);
}
};
function StarContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
StarContext.prototype = Object.create(PrimaryExpressionContext.prototype);
StarContext.prototype.constructor = StarContext;
sqlParser.StarContext = StarContext;
StarContext.prototype.ASTERISK = function () {
return this.getToken(sqlParser.ASTERISK, 0);
};
StarContext.prototype.qualifiedName = function () {
return this.getTypedRuleContext(QualifiedNameContext, 0);
};
StarContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterStar(this);
}
};
StarContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitStar(this);
}
};
StarContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitStar(this);
}
else {
return visitor.visitChildren(this);
}
};
function SubscriptContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
this.value = null; // PrimaryExpressionContext;
this.index = null; // ValueExpressionContext;
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
SubscriptContext.prototype = Object.create(PrimaryExpressionContext.prototype);
SubscriptContext.prototype.constructor = SubscriptContext;
sqlParser.SubscriptContext = SubscriptContext;
SubscriptContext.prototype.primaryExpression = function () {
return this.getTypedRuleContext(PrimaryExpressionContext, 0);
};
SubscriptContext.prototype.valueExpression = function () {
return this.getTypedRuleContext(ValueExpressionContext, 0);
};
SubscriptContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSubscript(this);
}
};
SubscriptContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSubscript(this);
}
};
SubscriptContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSubscript(this);
}
else {
return visitor.visitChildren(this);
}
};
function SubqueryExpressionContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
SubqueryExpressionContext.prototype = Object.create(PrimaryExpressionContext.prototype);
SubqueryExpressionContext.prototype.constructor = SubqueryExpressionContext;
sqlParser.SubqueryExpressionContext = SubqueryExpressionContext;
SubqueryExpressionContext.prototype.query = function () {
return this.getTypedRuleContext(QueryContext, 0);
};
SubqueryExpressionContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSubqueryExpression(this);
}
};
SubqueryExpressionContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSubqueryExpression(this);
}
};
SubqueryExpressionContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSubqueryExpression(this);
}
else {
return visitor.visitChildren(this);
}
};
function CastContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
CastContext.prototype = Object.create(PrimaryExpressionContext.prototype);
CastContext.prototype.constructor = CastContext;
sqlParser.CastContext = CastContext;
CastContext.prototype.CAST = function () {
return this.getToken(sqlParser.CAST, 0);
};
CastContext.prototype.expression = function () {
return this.getTypedRuleContext(ExpressionContext, 0);
};
CastContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
CastContext.prototype.dataType = function () {
return this.getTypedRuleContext(DataTypeContext, 0);
};
CastContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterCast(this);
}
};
CastContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitCast(this);
}
};
CastContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitCast(this);
}
else {
return visitor.visitChildren(this);
}
};
function ConstantDefaultContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
ConstantDefaultContext.prototype = Object.create(PrimaryExpressionContext.prototype);
ConstantDefaultContext.prototype.constructor = ConstantDefaultContext;
sqlParser.ConstantDefaultContext = ConstantDefaultContext;
ConstantDefaultContext.prototype.constant = function () {
return this.getTypedRuleContext(ConstantContext, 0);
};
ConstantDefaultContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterConstantDefault(this);
}
};
ConstantDefaultContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitConstantDefault(this);
}
};
ConstantDefaultContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitConstantDefault(this);
}
else {
return visitor.visitChildren(this);
}
};
function LambdaContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
LambdaContext.prototype = Object.create(PrimaryExpressionContext.prototype);
LambdaContext.prototype.constructor = LambdaContext;
sqlParser.LambdaContext = LambdaContext;
LambdaContext.prototype.IDENTIFIER = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.IDENTIFIER);
}
else {
return this.getToken(sqlParser.IDENTIFIER, i);
}
};
LambdaContext.prototype.expression = function () {
return this.getTypedRuleContext(ExpressionContext, 0);
};
LambdaContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterLambda(this);
}
};
LambdaContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitLambda(this);
}
};
LambdaContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitLambda(this);
}
else {
return visitor.visitChildren(this);
}
};
function ParenthesizedExpressionContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
ParenthesizedExpressionContext.prototype = Object.create(PrimaryExpressionContext.prototype);
ParenthesizedExpressionContext.prototype.constructor = ParenthesizedExpressionContext;
sqlParser.ParenthesizedExpressionContext = ParenthesizedExpressionContext;
ParenthesizedExpressionContext.prototype.expression = function () {
return this.getTypedRuleContext(ExpressionContext, 0);
};
ParenthesizedExpressionContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterParenthesizedExpression(this);
}
};
ParenthesizedExpressionContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitParenthesizedExpression(this);
}
};
ParenthesizedExpressionContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitParenthesizedExpression(this);
}
else {
return visitor.visitChildren(this);
}
};
function ExtractContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
this.field = null; // IdentifierContext;
this.source = null; // ValueExpressionContext;
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
ExtractContext.prototype = Object.create(PrimaryExpressionContext.prototype);
ExtractContext.prototype.constructor = ExtractContext;
sqlParser.ExtractContext = ExtractContext;
ExtractContext.prototype.EXTRACT = function () {
return this.getToken(sqlParser.EXTRACT, 0);
};
ExtractContext.prototype.FROM = function () {
return this.getToken(sqlParser.FROM, 0);
};
ExtractContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
ExtractContext.prototype.valueExpression = function () {
return this.getTypedRuleContext(ValueExpressionContext, 0);
};
ExtractContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterExtract(this);
}
};
ExtractContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitExtract(this);
}
};
ExtractContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitExtract(this);
}
else {
return visitor.visitChildren(this);
}
};
function FunctionCallContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
this._expression = null; // ExpressionContext;
this.argument = []; // of ExpressionContexts;
this.trimOption = null; // Token;
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
FunctionCallContext.prototype = Object.create(PrimaryExpressionContext.prototype);
FunctionCallContext.prototype.constructor = FunctionCallContext;
sqlParser.FunctionCallContext = FunctionCallContext;
FunctionCallContext.prototype.qualifiedName = function () {
return this.getTypedRuleContext(QualifiedNameContext, 0);
};
FunctionCallContext.prototype.OVER = function () {
return this.getToken(sqlParser.OVER, 0);
};
FunctionCallContext.prototype.windowSpec = function () {
return this.getTypedRuleContext(WindowSpecContext, 0);
};
FunctionCallContext.prototype.expression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ExpressionContext);
}
else {
return this.getTypedRuleContext(ExpressionContext, i);
}
};
FunctionCallContext.prototype.setQuantifier = function () {
return this.getTypedRuleContext(SetQuantifierContext, 0);
};
FunctionCallContext.prototype.FROM = function () {
return this.getToken(sqlParser.FROM, 0);
};
FunctionCallContext.prototype.BOTH = function () {
return this.getToken(sqlParser.BOTH, 0);
};
FunctionCallContext.prototype.LEADING = function () {
return this.getToken(sqlParser.LEADING, 0);
};
FunctionCallContext.prototype.TRAILING = function () {
return this.getToken(sqlParser.TRAILING, 0);
};
FunctionCallContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterFunctionCall(this);
}
};
FunctionCallContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitFunctionCall(this);
}
};
FunctionCallContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitFunctionCall(this);
}
else {
return visitor.visitChildren(this);
}
};
function SearchedCaseContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
this.elseExpression = null; // ExpressionContext;
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
SearchedCaseContext.prototype = Object.create(PrimaryExpressionContext.prototype);
SearchedCaseContext.prototype.constructor = SearchedCaseContext;
sqlParser.SearchedCaseContext = SearchedCaseContext;
SearchedCaseContext.prototype.CASE = function () {
return this.getToken(sqlParser.CASE, 0);
};
SearchedCaseContext.prototype.END = function () {
return this.getToken(sqlParser.END, 0);
};
SearchedCaseContext.prototype.whenClause = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(WhenClauseContext);
}
else {
return this.getTypedRuleContext(WhenClauseContext, i);
}
};
SearchedCaseContext.prototype.ELSE = function () {
return this.getToken(sqlParser.ELSE, 0);
};
SearchedCaseContext.prototype.expression = function () {
return this.getTypedRuleContext(ExpressionContext, 0);
};
SearchedCaseContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSearchedCase(this);
}
};
SearchedCaseContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSearchedCase(this);
}
};
SearchedCaseContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSearchedCase(this);
}
else {
return visitor.visitChildren(this);
}
};
function PositionContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
this.substr = null; // ValueExpressionContext;
this.str = null; // ValueExpressionContext;
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
PositionContext.prototype = Object.create(PrimaryExpressionContext.prototype);
PositionContext.prototype.constructor = PositionContext;
sqlParser.PositionContext = PositionContext;
PositionContext.prototype.POSITION = function () {
return this.getToken(sqlParser.POSITION, 0);
};
PositionContext.prototype.IN = function () {
return this.getToken(sqlParser.IN, 0);
};
PositionContext.prototype.valueExpression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ValueExpressionContext);
}
else {
return this.getTypedRuleContext(ValueExpressionContext, i);
}
};
PositionContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterPosition(this);
}
};
PositionContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitPosition(this);
}
};
PositionContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitPosition(this);
}
else {
return visitor.visitChildren(this);
}
};
function FirstContext(parser, ctx) {
PrimaryExpressionContext.call(this, parser);
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
return this;
}
FirstContext.prototype = Object.create(PrimaryExpressionContext.prototype);
FirstContext.prototype.constructor = FirstContext;
sqlParser.FirstContext = FirstContext;
FirstContext.prototype.FIRST = function () {
return this.getToken(sqlParser.FIRST, 0);
};
FirstContext.prototype.expression = function () {
return this.getTypedRuleContext(ExpressionContext, 0);
};
FirstContext.prototype.IGNORE = function () {
return this.getToken(sqlParser.IGNORE, 0);
};
FirstContext.prototype.NULLS = function () {
return this.getToken(sqlParser.NULLS, 0);
};
FirstContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterFirst(this);
}
};
FirstContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitFirst(this);
}
};
FirstContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitFirst(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.prototype.primaryExpression = function (_p) {
if (_p === undefined) {
_p = 0;
}
var _parentctx = this._ctx;
var _parentState = this.state;
var localctx = new PrimaryExpressionContext(this, this._ctx, _parentState);
var _prevctx = localctx;
var _startState = 148;
this.enterRecursionRule(localctx, 148, sqlParser.RULE_primaryExpression, _p);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2200;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 290, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new SearchedCaseContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2056;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CASE);
2019-09-25 16:53:32 +08:00
this.state = 2058;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
do {
this.state = 2057;
2019-09-25 16:53:32 +08:00
this.whenClause();
this.state = 2060;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
} while (_la === sqlParser.WHEN);
2019-09-25 16:53:32 +08:00
this.state = 2064;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.ELSE) {
2019-09-25 16:53:32 +08:00
this.state = 2062;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ELSE);
2019-09-25 16:53:32 +08:00
this.state = 2063;
2019-09-25 15:43:36 +08:00
localctx.elseExpression = this.expression();
}
2019-09-25 16:53:32 +08:00
this.state = 2066;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.END);
break;
case 2:
localctx = new SimpleCaseContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2068;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CASE);
2019-09-25 16:53:32 +08:00
this.state = 2069;
2019-09-25 15:43:36 +08:00
localctx.value = this.expression();
2019-09-25 16:53:32 +08:00
this.state = 2071;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
do {
this.state = 2070;
2019-09-25 16:53:32 +08:00
this.whenClause();
this.state = 2073;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
} while (_la === sqlParser.WHEN);
2019-09-25 16:53:32 +08:00
this.state = 2077;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.ELSE) {
2019-09-25 16:53:32 +08:00
this.state = 2075;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ELSE);
2019-09-25 16:53:32 +08:00
this.state = 2076;
2019-09-25 15:43:36 +08:00
localctx.elseExpression = this.expression();
}
2019-09-25 16:53:32 +08:00
this.state = 2079;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.END);
break;
case 3:
localctx = new CastContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2081;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CAST);
2019-09-25 16:53:32 +08:00
this.state = 2082;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 2083;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 2084;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
2019-09-25 16:53:32 +08:00
this.state = 2085;
2019-09-25 15:43:36 +08:00
this.dataType();
2019-09-25 16:53:32 +08:00
this.state = 2086;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case 4:
localctx = new StructContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2088;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRUCT);
2019-09-25 16:53:32 +08:00
this.state = 2089;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 2098;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER) | (1 << sqlParser.HAVING) | (1 << sqlParser.LIMIT) | (1 << sqlParser.AT) | (1 << sqlParser.OR) | (1 << sqlParser.AND) | (1 << sqlParser.IN))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)) | (1 << (sqlParser.RIGHT - 32)) | (1 << (sqlParser.FULL - 32)) | (1 << (sqlParser.NATURAL - 32)) | (1 << (sqlParser.ON - 32)) | (1 << (sqlParser.PIVOT - 32)) | (1 << (sqlParser.LATERAL - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.VALUES - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)) | (1 << (sqlParser.LOGICAL - 64)) | (1 << (sqlParser.CODEGEN - 64)) | (1 << (sqlParser.COST - 64)) | (1 << (sqlParser.CAST - 64)) | (1 << (sqlParser.SHOW - 64)) | (1 << (sqlParser.TABLES - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)) | (1 << (sqlParser.MACRO - 96)) | (1 << (sqlParser.IGNORE - 96)) | (1 << (sqlParser.BOTH - 96)) | (1 << (sqlParser.LEADING - 96)) | (1 << (sqlParser.TRAILING - 96)) | (1 << (sqlParser.IF - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 1
2019-09-25 16:53:32 +08:00
this.state = 2090;
2019-09-25 15:43:36 +08:00
localctx._namedExpression = this.namedExpression();
localctx.argument.push(localctx._namedExpression);
2019-09-25 16:53:32 +08:00
this.state = 2095;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 2091;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 2092;
2019-09-25 15:43:36 +08:00
localctx._namedExpression = this.namedExpression();
localctx.argument.push(localctx._namedExpression);
2019-09-25 16:53:32 +08:00
this.state = 2097;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
}
2019-09-25 16:53:32 +08:00
this.state = 2100;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case 5:
localctx = new FirstContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2101;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FIRST);
2019-09-25 16:53:32 +08:00
this.state = 2102;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
this.state = 2103;
2019-09-25 16:53:32 +08:00
this.expression();
this.state = 2106;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.IGNORE) {
2019-09-25 16:53:32 +08:00
this.state = 2104;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IGNORE);
2019-09-25 16:53:32 +08:00
this.state = 2105;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NULLS);
}
2019-09-25 16:53:32 +08:00
this.state = 2108;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case 6:
localctx = new LastContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2110;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LAST);
2019-09-25 16:53:32 +08:00
this.state = 2111;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
this.state = 2112;
2019-09-25 16:53:32 +08:00
this.expression();
this.state = 2115;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.IGNORE) {
2019-09-25 16:53:32 +08:00
this.state = 2113;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IGNORE);
2019-09-25 16:53:32 +08:00
this.state = 2114;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NULLS);
}
2019-09-25 16:53:32 +08:00
this.state = 2117;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case 7:
localctx = new PositionContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2119;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.POSITION);
2019-09-25 16:53:32 +08:00
this.state = 2120;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 2121;
2019-09-25 15:43:36 +08:00
localctx.substr = this.valueExpression(0);
2019-09-25 16:53:32 +08:00
this.state = 2122;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IN);
2019-09-25 16:53:32 +08:00
this.state = 2123;
2019-09-25 15:43:36 +08:00
localctx.str = this.valueExpression(0);
2019-09-25 16:53:32 +08:00
this.state = 2124;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case 8:
localctx = new ConstantDefaultContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2126;
2019-09-25 15:43:36 +08:00
this.constant();
break;
case 9:
localctx = new StarContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2127;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ASTERISK);
break;
case 10:
localctx = new StarContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2128;
2019-09-25 15:43:36 +08:00
this.qualifiedName();
2019-09-25 16:53:32 +08:00
this.state = 2129;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__2);
2019-09-25 16:53:32 +08:00
this.state = 2130;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ASTERISK);
break;
case 11:
localctx = new RowConstructorContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2132;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
this.state = 2133;
2019-09-25 16:53:32 +08:00
this.namedExpression();
this.state = 2136;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
do {
2019-09-25 16:53:32 +08:00
this.state = 2134;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
this.state = 2135;
2019-09-25 16:53:32 +08:00
this.namedExpression();
this.state = 2138;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
} while (_la === sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 2140;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case 12:
localctx = new SubqueryExpressionContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2142;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 2143;
2019-09-25 15:43:36 +08:00
this.query();
2019-09-25 16:53:32 +08:00
this.state = 2144;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case 13:
localctx = new FunctionCallContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2146;
2019-09-25 15:43:36 +08:00
this.qualifiedName();
2019-09-25 16:53:32 +08:00
this.state = 2147;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 2159;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER) | (1 << sqlParser.HAVING) | (1 << sqlParser.LIMIT) | (1 << sqlParser.AT) | (1 << sqlParser.OR) | (1 << sqlParser.AND) | (1 << sqlParser.IN))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)) | (1 << (sqlParser.RIGHT - 32)) | (1 << (sqlParser.FULL - 32)) | (1 << (sqlParser.NATURAL - 32)) | (1 << (sqlParser.ON - 32)) | (1 << (sqlParser.PIVOT - 32)) | (1 << (sqlParser.LATERAL - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.VALUES - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)) | (1 << (sqlParser.LOGICAL - 64)) | (1 << (sqlParser.CODEGEN - 64)) | (1 << (sqlParser.COST - 64)) | (1 << (sqlParser.CAST - 64)) | (1 << (sqlParser.SHOW - 64)) | (1 << (sqlParser.TABLES - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)) | (1 << (sqlParser.MACRO - 96)) | (1 << (sqlParser.IGNORE - 96)) | (1 << (sqlParser.BOTH - 96)) | (1 << (sqlParser.LEADING - 96)) | (1 << (sqlParser.TRAILING - 96)) | (1 << (sqlParser.IF - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 1
2019-09-25 16:53:32 +08:00
this.state = 2149;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 285, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 2148;
2019-09-25 15:43:36 +08:00
this.setQuantifier();
}
2019-09-25 16:53:32 +08:00
this.state = 2151;
2019-09-25 15:43:36 +08:00
localctx._expression = this.expression();
localctx.argument.push(localctx._expression);
2019-09-25 16:53:32 +08:00
this.state = 2156;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 2152;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 2153;
2019-09-25 15:43:36 +08:00
localctx._expression = this.expression();
localctx.argument.push(localctx._expression);
2019-09-25 16:53:32 +08:00
this.state = 2158;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
}
this.state = 2161;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.T__1);
this.state = 2164;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 288, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 2162;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.OVER);
2019-09-25 16:53:32 +08:00
this.state = 2163;
2019-09-25 15:43:36 +08:00
this.windowSpec();
}
break;
case 14:
localctx = new FunctionCallContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2166;
2019-09-25 15:43:36 +08:00
this.qualifiedName();
2019-09-25 16:53:32 +08:00
this.state = 2167;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 2168;
2019-09-25 15:43:36 +08:00
localctx.trimOption = this._input.LT(1);
_la = this._input.LA(1);
if (!(((((_la - 124)) & ~0x1f) == 0 && ((1 << (_la - 124)) & ((1 << (sqlParser.BOTH - 124)) | (1 << (sqlParser.LEADING - 124)) | (1 << (sqlParser.TRAILING - 124)))) !== 0))) {
localctx.trimOption = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 2169;
2019-09-25 15:43:36 +08:00
localctx._expression = this.expression();
localctx.argument.push(localctx._expression);
2019-09-25 16:53:32 +08:00
this.state = 2170;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FROM);
2019-09-25 16:53:32 +08:00
this.state = 2171;
2019-09-25 15:43:36 +08:00
localctx._expression = this.expression();
localctx.argument.push(localctx._expression);
2019-09-25 16:53:32 +08:00
this.state = 2172;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case 15:
localctx = new LambdaContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2174;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IDENTIFIER);
2019-09-25 16:53:32 +08:00
this.state = 2175;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__6);
2019-09-25 16:53:32 +08:00
this.state = 2176;
2019-09-25 15:43:36 +08:00
this.expression();
break;
case 16:
localctx = new LambdaContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2177;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
this.state = 2178;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.IDENTIFIER);
this.state = 2181;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
do {
2019-09-25 16:53:32 +08:00
this.state = 2179;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
this.state = 2180;
2019-09-25 16:53:32 +08:00
this.match(sqlParser.IDENTIFIER);
this.state = 2183;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
} while (_la === sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 2185;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
2019-09-25 16:53:32 +08:00
this.state = 2186;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__6);
2019-09-25 16:53:32 +08:00
this.state = 2187;
2019-09-25 15:43:36 +08:00
this.expression();
break;
case 17:
localctx = new ColumnReferenceContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2188;
2019-09-25 15:43:36 +08:00
this.identifier();
break;
case 18:
localctx = new ParenthesizedExpressionContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2189;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 2190;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 2191;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
case 19:
localctx = new ExtractContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2193;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXTRACT);
2019-09-25 16:53:32 +08:00
this.state = 2194;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 2195;
2019-09-25 15:43:36 +08:00
localctx.field = this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 2196;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FROM);
2019-09-25 16:53:32 +08:00
this.state = 2197;
2019-09-25 15:43:36 +08:00
localctx.source = this.valueExpression(0);
2019-09-25 16:53:32 +08:00
this.state = 2198;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
break;
}
this._ctx.stop = this._input.LT(-1);
2019-09-25 16:53:32 +08:00
this.state = 2212;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 292, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
if (this._parseListeners !== null) {
this.triggerExitRuleEvent();
}
_prevctx = localctx;
2019-09-25 16:53:32 +08:00
this.state = 2210;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 291, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new SubscriptContext(this, new PrimaryExpressionContext(this, _parentctx, _parentState));
localctx.value = _prevctx;
this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_primaryExpression);
2019-09-25 16:53:32 +08:00
this.state = 2202;
2019-09-25 15:43:36 +08:00
if (!(this.precpred(this._ctx, 5))) {
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)");
}
2019-09-25 16:53:32 +08:00
this.state = 2203;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__7);
2019-09-25 16:53:32 +08:00
this.state = 2204;
2019-09-25 15:43:36 +08:00
localctx.index = this.valueExpression(0);
2019-09-25 16:53:32 +08:00
this.state = 2205;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__8);
break;
case 2:
localctx = new DereferenceContext(this, new PrimaryExpressionContext(this, _parentctx, _parentState));
localctx.base = _prevctx;
this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_primaryExpression);
2019-09-25 16:53:32 +08:00
this.state = 2207;
2019-09-25 15:43:36 +08:00
if (!(this.precpred(this._ctx, 3))) {
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)");
}
2019-09-25 16:53:32 +08:00
this.state = 2208;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__2);
2019-09-25 16:53:32 +08:00
this.state = 2209;
2019-09-25 15:43:36 +08:00
localctx.fieldName = this.identifier();
break;
}
}
2019-09-25 16:53:32 +08:00
this.state = 2214;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 292, this._ctx);
2019-09-25 15:43:36 +08:00
}
}
catch (error) {
if (error instanceof antlr4.error.RecognitionException) {
localctx.exception = error;
this._errHandler.reportError(this, error);
this._errHandler.recover(this, error);
}
else {
throw error;
}
}
finally {
this.unrollRecursionContexts(_parentctx);
}
return localctx;
};
function ConstantContext(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 = sqlParser.RULE_constant;
return this;
}
ConstantContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ConstantContext.prototype.constructor = ConstantContext;
ConstantContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function NullLiteralContext(parser, ctx) {
ConstantContext.call(this, parser);
ConstantContext.prototype.copyFrom.call(this, ctx);
return this;
}
NullLiteralContext.prototype = Object.create(ConstantContext.prototype);
NullLiteralContext.prototype.constructor = NullLiteralContext;
sqlParser.NullLiteralContext = NullLiteralContext;
NullLiteralContext.prototype.NULL = function () {
return this.getToken(sqlParser.NULL, 0);
};
NullLiteralContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterNullLiteral(this);
}
};
NullLiteralContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitNullLiteral(this);
}
};
NullLiteralContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitNullLiteral(this);
}
else {
return visitor.visitChildren(this);
}
};
function StringLiteralContext(parser, ctx) {
ConstantContext.call(this, parser);
ConstantContext.prototype.copyFrom.call(this, ctx);
return this;
}
StringLiteralContext.prototype = Object.create(ConstantContext.prototype);
StringLiteralContext.prototype.constructor = StringLiteralContext;
sqlParser.StringLiteralContext = StringLiteralContext;
StringLiteralContext.prototype.STRING = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.STRING);
}
else {
return this.getToken(sqlParser.STRING, i);
}
};
StringLiteralContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterStringLiteral(this);
}
};
StringLiteralContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitStringLiteral(this);
}
};
StringLiteralContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitStringLiteral(this);
}
else {
return visitor.visitChildren(this);
}
};
function TypeConstructorContext(parser, ctx) {
ConstantContext.call(this, parser);
ConstantContext.prototype.copyFrom.call(this, ctx);
return this;
}
TypeConstructorContext.prototype = Object.create(ConstantContext.prototype);
TypeConstructorContext.prototype.constructor = TypeConstructorContext;
sqlParser.TypeConstructorContext = TypeConstructorContext;
TypeConstructorContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
TypeConstructorContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
TypeConstructorContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterTypeConstructor(this);
}
};
TypeConstructorContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitTypeConstructor(this);
}
};
TypeConstructorContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitTypeConstructor(this);
}
else {
return visitor.visitChildren(this);
}
};
function IntervalLiteralContext(parser, ctx) {
ConstantContext.call(this, parser);
ConstantContext.prototype.copyFrom.call(this, ctx);
return this;
}
IntervalLiteralContext.prototype = Object.create(ConstantContext.prototype);
IntervalLiteralContext.prototype.constructor = IntervalLiteralContext;
sqlParser.IntervalLiteralContext = IntervalLiteralContext;
IntervalLiteralContext.prototype.interval = function () {
return this.getTypedRuleContext(IntervalContext, 0);
};
IntervalLiteralContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterIntervalLiteral(this);
}
};
IntervalLiteralContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitIntervalLiteral(this);
}
};
IntervalLiteralContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitIntervalLiteral(this);
}
else {
return visitor.visitChildren(this);
}
};
function NumericLiteralContext(parser, ctx) {
ConstantContext.call(this, parser);
ConstantContext.prototype.copyFrom.call(this, ctx);
return this;
}
NumericLiteralContext.prototype = Object.create(ConstantContext.prototype);
NumericLiteralContext.prototype.constructor = NumericLiteralContext;
sqlParser.NumericLiteralContext = NumericLiteralContext;
NumericLiteralContext.prototype.number = function () {
return this.getTypedRuleContext(NumberContext, 0);
};
NumericLiteralContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterNumericLiteral(this);
}
};
NumericLiteralContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitNumericLiteral(this);
}
};
NumericLiteralContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitNumericLiteral(this);
}
else {
return visitor.visitChildren(this);
}
};
function BooleanLiteralContext(parser, ctx) {
ConstantContext.call(this, parser);
ConstantContext.prototype.copyFrom.call(this, ctx);
return this;
}
BooleanLiteralContext.prototype = Object.create(ConstantContext.prototype);
BooleanLiteralContext.prototype.constructor = BooleanLiteralContext;
sqlParser.BooleanLiteralContext = BooleanLiteralContext;
BooleanLiteralContext.prototype.booleanValue = function () {
return this.getTypedRuleContext(BooleanValueContext, 0);
};
BooleanLiteralContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterBooleanLiteral(this);
}
};
BooleanLiteralContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitBooleanLiteral(this);
}
};
BooleanLiteralContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitBooleanLiteral(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.ConstantContext = ConstantContext;
sqlParser.prototype.constant = function () {
var localctx = new ConstantContext(this, this._ctx, this.state);
this.enterRule(localctx, 150, sqlParser.RULE_constant);
try {
2019-09-25 16:53:32 +08:00
this.state = 2227;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 294, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new NullLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2215;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NULL);
break;
case 2:
localctx = new IntervalLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 2216;
2019-09-25 15:43:36 +08:00
this.interval();
break;
case 3:
localctx = new TypeConstructorContext(this, localctx);
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 2217;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 2218;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
break;
case 4:
localctx = new NumericLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 2220;
2019-09-25 15:43:36 +08:00
this.number();
break;
case 5:
localctx = new BooleanLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 5);
2019-09-25 16:53:32 +08:00
this.state = 2221;
2019-09-25 15:43:36 +08:00
this.booleanValue();
break;
case 6:
localctx = new StringLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 6);
2019-09-25 16:53:32 +08:00
this.state = 2223;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
var _alt = 1;
do {
switch (_alt) {
case 1:
2019-09-25 16:53:32 +08:00
this.state = 2222;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
break;
default:
throw new antlr4.error.NoViableAltException(this);
}
2019-09-25 16:53:32 +08:00
this.state = 2225;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 293, this._ctx);
2019-09-25 15:43:36 +08:00
} while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER);
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 ComparisonOperatorContext(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 = sqlParser.RULE_comparisonOperator;
return this;
}
ComparisonOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ComparisonOperatorContext.prototype.constructor = ComparisonOperatorContext;
ComparisonOperatorContext.prototype.EQ = function () {
return this.getToken(sqlParser.EQ, 0);
};
ComparisonOperatorContext.prototype.NEQ = function () {
return this.getToken(sqlParser.NEQ, 0);
};
ComparisonOperatorContext.prototype.NEQJ = function () {
return this.getToken(sqlParser.NEQJ, 0);
};
ComparisonOperatorContext.prototype.LT = function () {
return this.getToken(sqlParser.LT, 0);
};
ComparisonOperatorContext.prototype.LTE = function () {
return this.getToken(sqlParser.LTE, 0);
};
ComparisonOperatorContext.prototype.GT = function () {
return this.getToken(sqlParser.GT, 0);
};
ComparisonOperatorContext.prototype.GTE = function () {
return this.getToken(sqlParser.GTE, 0);
};
ComparisonOperatorContext.prototype.NSEQ = function () {
return this.getToken(sqlParser.NSEQ, 0);
};
ComparisonOperatorContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterComparisonOperator(this);
}
};
ComparisonOperatorContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitComparisonOperator(this);
}
};
ComparisonOperatorContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitComparisonOperator(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.ComparisonOperatorContext = ComparisonOperatorContext;
sqlParser.prototype.comparisonOperator = function () {
var localctx = new ComparisonOperatorContext(this, this._ctx, this.state);
this.enterRule(localctx, 152, sqlParser.RULE_comparisonOperator);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2229;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(((((_la - 130)) & ~0x1f) == 0 && ((1 << (_la - 130)) & ((1 << (sqlParser.EQ - 130)) | (1 << (sqlParser.NSEQ - 130)) | (1 << (sqlParser.NEQ - 130)) | (1 << (sqlParser.NEQJ - 130)) | (1 << (sqlParser.LT - 130)) | (1 << (sqlParser.LTE - 130)) | (1 << (sqlParser.GT - 130)) | (1 << (sqlParser.GTE - 130)))) !== 0))) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
}
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 ArithmeticOperatorContext(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 = sqlParser.RULE_arithmeticOperator;
return this;
}
ArithmeticOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ArithmeticOperatorContext.prototype.constructor = ArithmeticOperatorContext;
ArithmeticOperatorContext.prototype.PLUS = function () {
return this.getToken(sqlParser.PLUS, 0);
};
ArithmeticOperatorContext.prototype.MINUS = function () {
return this.getToken(sqlParser.MINUS, 0);
};
ArithmeticOperatorContext.prototype.ASTERISK = function () {
return this.getToken(sqlParser.ASTERISK, 0);
};
ArithmeticOperatorContext.prototype.SLASH = function () {
return this.getToken(sqlParser.SLASH, 0);
};
ArithmeticOperatorContext.prototype.PERCENT = function () {
return this.getToken(sqlParser.PERCENT, 0);
};
ArithmeticOperatorContext.prototype.DIV = function () {
return this.getToken(sqlParser.DIV, 0);
};
ArithmeticOperatorContext.prototype.TILDE = function () {
return this.getToken(sqlParser.TILDE, 0);
};
ArithmeticOperatorContext.prototype.AMPERSAND = function () {
return this.getToken(sqlParser.AMPERSAND, 0);
};
ArithmeticOperatorContext.prototype.PIPE = function () {
return this.getToken(sqlParser.PIPE, 0);
};
ArithmeticOperatorContext.prototype.CONCAT_PIPE = function () {
return this.getToken(sqlParser.CONCAT_PIPE, 0);
};
ArithmeticOperatorContext.prototype.HAT = function () {
return this.getToken(sqlParser.HAT, 0);
};
ArithmeticOperatorContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterArithmeticOperator(this);
}
};
ArithmeticOperatorContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitArithmeticOperator(this);
}
};
ArithmeticOperatorContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitArithmeticOperator(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.ArithmeticOperatorContext = ArithmeticOperatorContext;
sqlParser.prototype.arithmeticOperator = function () {
var localctx = new ArithmeticOperatorContext(this, this._ctx, this.state);
this.enterRule(localctx, 154, sqlParser.RULE_arithmeticOperator);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2231;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(((((_la - 138)) & ~0x1f) == 0 && ((1 << (_la - 138)) & ((1 << (sqlParser.PLUS - 138)) | (1 << (sqlParser.MINUS - 138)) | (1 << (sqlParser.ASTERISK - 138)) | (1 << (sqlParser.SLASH - 138)) | (1 << (sqlParser.PERCENT - 138)) | (1 << (sqlParser.DIV - 138)) | (1 << (sqlParser.TILDE - 138)) | (1 << (sqlParser.AMPERSAND - 138)) | (1 << (sqlParser.PIPE - 138)) | (1 << (sqlParser.CONCAT_PIPE - 138)) | (1 << (sqlParser.HAT - 138)))) !== 0))) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
}
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 PredicateOperatorContext(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 = sqlParser.RULE_predicateOperator;
return this;
}
PredicateOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PredicateOperatorContext.prototype.constructor = PredicateOperatorContext;
PredicateOperatorContext.prototype.OR = function () {
return this.getToken(sqlParser.OR, 0);
};
PredicateOperatorContext.prototype.AND = function () {
return this.getToken(sqlParser.AND, 0);
};
PredicateOperatorContext.prototype.IN = function () {
return this.getToken(sqlParser.IN, 0);
};
PredicateOperatorContext.prototype.NOT = function () {
return this.getToken(sqlParser.NOT, 0);
};
PredicateOperatorContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterPredicateOperator(this);
}
};
PredicateOperatorContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitPredicateOperator(this);
}
};
PredicateOperatorContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitPredicateOperator(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.PredicateOperatorContext = PredicateOperatorContext;
sqlParser.prototype.predicateOperator = function () {
var localctx = new PredicateOperatorContext(this, this._ctx, this.state);
this.enterRule(localctx, 156, sqlParser.RULE_predicateOperator);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2233;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(((((_la - 29)) & ~0x1f) == 0 && ((1 << (_la - 29)) & ((1 << (sqlParser.OR - 29)) | (1 << (sqlParser.AND - 29)) | (1 << (sqlParser.IN - 29)) | (1 << (sqlParser.NOT - 29)))) !== 0))) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
}
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 BooleanValueContext(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 = sqlParser.RULE_booleanValue;
return this;
}
BooleanValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
BooleanValueContext.prototype.constructor = BooleanValueContext;
BooleanValueContext.prototype.TRUE = function () {
return this.getToken(sqlParser.TRUE, 0);
};
BooleanValueContext.prototype.FALSE = function () {
return this.getToken(sqlParser.FALSE, 0);
};
BooleanValueContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterBooleanValue(this);
}
};
BooleanValueContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitBooleanValue(this);
}
};
BooleanValueContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitBooleanValue(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.BooleanValueContext = BooleanValueContext;
sqlParser.prototype.booleanValue = function () {
var localctx = new BooleanValueContext(this, this._ctx, this.state);
this.enterRule(localctx, 158, sqlParser.RULE_booleanValue);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2235;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.TRUE || _la === sqlParser.FALSE)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
}
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 IntervalContext(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 = sqlParser.RULE_interval;
return this;
}
IntervalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IntervalContext.prototype.constructor = IntervalContext;
IntervalContext.prototype.INTERVAL = function () {
return this.getToken(sqlParser.INTERVAL, 0);
};
IntervalContext.prototype.intervalField = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(IntervalFieldContext);
}
else {
return this.getTypedRuleContext(IntervalFieldContext, i);
}
};
IntervalContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterInterval(this);
}
};
IntervalContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitInterval(this);
}
};
IntervalContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitInterval(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.IntervalContext = IntervalContext;
sqlParser.prototype.interval = function () {
var localctx = new IntervalContext(this, this._ctx, this.state);
this.enterRule(localctx, 160, sqlParser.RULE_interval);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2237;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INTERVAL);
2019-09-25 16:53:32 +08:00
this.state = 2241;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 295, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
2019-09-25 16:53:32 +08:00
this.state = 2238;
2019-09-25 15:43:36 +08:00
this.intervalField();
}
2019-09-25 16:53:32 +08:00
this.state = 2243;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 295, this._ctx);
2019-09-25 15:43:36 +08:00
}
}
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 IntervalFieldContext(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 = sqlParser.RULE_intervalField;
this.value = null; // IntervalValueContext
this.unit = null; // IdentifierContext
this.to = null; // IdentifierContext
return this;
}
IntervalFieldContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IntervalFieldContext.prototype.constructor = IntervalFieldContext;
IntervalFieldContext.prototype.intervalValue = function () {
return this.getTypedRuleContext(IntervalValueContext, 0);
};
IntervalFieldContext.prototype.identifier = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(IdentifierContext);
}
else {
return this.getTypedRuleContext(IdentifierContext, i);
}
};
IntervalFieldContext.prototype.TO = function () {
return this.getToken(sqlParser.TO, 0);
};
IntervalFieldContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterIntervalField(this);
}
};
IntervalFieldContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitIntervalField(this);
}
};
IntervalFieldContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitIntervalField(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.IntervalFieldContext = IntervalFieldContext;
sqlParser.prototype.intervalField = function () {
var localctx = new IntervalFieldContext(this, this._ctx, this.state);
this.enterRule(localctx, 162, sqlParser.RULE_intervalField);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2244;
2019-09-25 15:43:36 +08:00
localctx.value = this.intervalValue();
this.state = 2245;
2019-09-25 16:53:32 +08:00
localctx.unit = this.identifier();
this.state = 2248;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 296, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 2246;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TO);
2019-09-25 16:53:32 +08:00
this.state = 2247;
2019-09-25 15:43:36 +08:00
localctx.to = this.identifier();
}
}
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 IntervalValueContext(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 = sqlParser.RULE_intervalValue;
return this;
}
IntervalValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IntervalValueContext.prototype.constructor = IntervalValueContext;
IntervalValueContext.prototype.INTEGER_VALUE = function () {
return this.getToken(sqlParser.INTEGER_VALUE, 0);
};
IntervalValueContext.prototype.DECIMAL_VALUE = function () {
return this.getToken(sqlParser.DECIMAL_VALUE, 0);
};
IntervalValueContext.prototype.PLUS = function () {
return this.getToken(sqlParser.PLUS, 0);
};
IntervalValueContext.prototype.MINUS = function () {
return this.getToken(sqlParser.MINUS, 0);
};
IntervalValueContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
IntervalValueContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterIntervalValue(this);
}
};
IntervalValueContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitIntervalValue(this);
}
};
IntervalValueContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitIntervalValue(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.IntervalValueContext = IntervalValueContext;
sqlParser.prototype.intervalValue = function () {
var localctx = new IntervalValueContext(this, this._ctx, this.state);
this.enterRule(localctx, 164, sqlParser.RULE_intervalValue);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 2255;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.PLUS:
case sqlParser.MINUS:
case sqlParser.INTEGER_VALUE:
case sqlParser.DECIMAL_VALUE:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2251;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PLUS || _la === sqlParser.MINUS) {
2019-09-25 16:53:32 +08:00
this.state = 2250;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.PLUS || _la === sqlParser.MINUS)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
}
2019-09-25 16:53:32 +08:00
this.state = 2253;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.INTEGER_VALUE || _la === sqlParser.DECIMAL_VALUE)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
break;
case sqlParser.STRING:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 2254;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
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 ColPositionContext(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 = sqlParser.RULE_colPosition;
return this;
}
ColPositionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ColPositionContext.prototype.constructor = ColPositionContext;
ColPositionContext.prototype.FIRST = function () {
return this.getToken(sqlParser.FIRST, 0);
};
ColPositionContext.prototype.AFTER = function () {
return this.getToken(sqlParser.AFTER, 0);
};
ColPositionContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
ColPositionContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterColPosition(this);
}
};
ColPositionContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitColPosition(this);
}
};
ColPositionContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitColPosition(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.ColPositionContext = ColPositionContext;
sqlParser.prototype.colPosition = function () {
var localctx = new ColPositionContext(this, this._ctx, this.state);
this.enterRule(localctx, 166, sqlParser.RULE_colPosition);
try {
2019-09-25 16:53:32 +08:00
this.state = 2260;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.FIRST:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2257;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FIRST);
break;
case sqlParser.AFTER:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 2258;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AFTER);
2019-09-25 16:53:32 +08:00
this.state = 2259;
2019-09-25 15:43:36 +08:00
this.identifier();
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 DataTypeContext(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 = sqlParser.RULE_dataType;
return this;
}
DataTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DataTypeContext.prototype.constructor = DataTypeContext;
DataTypeContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function ComplexDataTypeContext(parser, ctx) {
DataTypeContext.call(this, parser);
this.complex = null; // Token;
DataTypeContext.prototype.copyFrom.call(this, ctx);
return this;
}
ComplexDataTypeContext.prototype = Object.create(DataTypeContext.prototype);
ComplexDataTypeContext.prototype.constructor = ComplexDataTypeContext;
sqlParser.ComplexDataTypeContext = ComplexDataTypeContext;
ComplexDataTypeContext.prototype.dataType = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(DataTypeContext);
}
else {
return this.getTypedRuleContext(DataTypeContext, i);
}
};
ComplexDataTypeContext.prototype.ARRAY = function () {
return this.getToken(sqlParser.ARRAY, 0);
};
ComplexDataTypeContext.prototype.MAP = function () {
return this.getToken(sqlParser.MAP, 0);
};
ComplexDataTypeContext.prototype.STRUCT = function () {
return this.getToken(sqlParser.STRUCT, 0);
};
ComplexDataTypeContext.prototype.NEQ = function () {
return this.getToken(sqlParser.NEQ, 0);
};
ComplexDataTypeContext.prototype.complexColTypeList = function () {
return this.getTypedRuleContext(ComplexColTypeListContext, 0);
};
ComplexDataTypeContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterComplexDataType(this);
}
};
ComplexDataTypeContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitComplexDataType(this);
}
};
ComplexDataTypeContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitComplexDataType(this);
}
else {
return visitor.visitChildren(this);
}
};
function PrimitiveDataTypeContext(parser, ctx) {
DataTypeContext.call(this, parser);
DataTypeContext.prototype.copyFrom.call(this, ctx);
return this;
}
PrimitiveDataTypeContext.prototype = Object.create(DataTypeContext.prototype);
PrimitiveDataTypeContext.prototype.constructor = PrimitiveDataTypeContext;
sqlParser.PrimitiveDataTypeContext = PrimitiveDataTypeContext;
PrimitiveDataTypeContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
PrimitiveDataTypeContext.prototype.INTEGER_VALUE = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.INTEGER_VALUE);
}
else {
return this.getToken(sqlParser.INTEGER_VALUE, i);
}
};
PrimitiveDataTypeContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterPrimitiveDataType(this);
}
};
PrimitiveDataTypeContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitPrimitiveDataType(this);
}
};
PrimitiveDataTypeContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitPrimitiveDataType(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.DataTypeContext = DataTypeContext;
sqlParser.prototype.dataType = function () {
var localctx = new DataTypeContext(this, this._ctx, this.state);
this.enterRule(localctx, 168, sqlParser.RULE_dataType);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 2296;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 304, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new ComplexDataTypeContext(this, localctx);
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2262;
2019-09-25 15:43:36 +08:00
localctx.complex = this.match(sqlParser.ARRAY);
2019-09-25 16:53:32 +08:00
this.state = 2263;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LT);
2019-09-25 16:53:32 +08:00
this.state = 2264;
2019-09-25 15:43:36 +08:00
this.dataType();
2019-09-25 16:53:32 +08:00
this.state = 2265;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.GT);
break;
case 2:
localctx = new ComplexDataTypeContext(this, localctx);
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 2267;
2019-09-25 15:43:36 +08:00
localctx.complex = this.match(sqlParser.MAP);
2019-09-25 16:53:32 +08:00
this.state = 2268;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LT);
2019-09-25 16:53:32 +08:00
this.state = 2269;
2019-09-25 15:43:36 +08:00
this.dataType();
2019-09-25 16:53:32 +08:00
this.state = 2270;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 2271;
2019-09-25 15:43:36 +08:00
this.dataType();
2019-09-25 16:53:32 +08:00
this.state = 2272;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.GT);
break;
case 3:
localctx = new ComplexDataTypeContext(this, localctx);
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 2274;
2019-09-25 15:43:36 +08:00
localctx.complex = this.match(sqlParser.STRUCT);
2019-09-25 16:53:32 +08:00
this.state = 2281;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.LT:
2019-09-25 16:53:32 +08:00
this.state = 2275;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LT);
2019-09-25 16:53:32 +08:00
this.state = 2277;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER) | (1 << sqlParser.HAVING) | (1 << sqlParser.LIMIT) | (1 << sqlParser.AT) | (1 << sqlParser.OR) | (1 << sqlParser.AND) | (1 << sqlParser.IN))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)) | (1 << (sqlParser.RIGHT - 32)) | (1 << (sqlParser.FULL - 32)) | (1 << (sqlParser.NATURAL - 32)) | (1 << (sqlParser.ON - 32)) | (1 << (sqlParser.PIVOT - 32)) | (1 << (sqlParser.LATERAL - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.VALUES - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)) | (1 << (sqlParser.LOGICAL - 64)) | (1 << (sqlParser.CODEGEN - 64)) | (1 << (sqlParser.COST - 64)) | (1 << (sqlParser.CAST - 64)) | (1 << (sqlParser.SHOW - 64)) | (1 << (sqlParser.TABLES - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)) | (1 << (sqlParser.MACRO - 96)) | (1 << (sqlParser.IGNORE - 96)) | (1 << (sqlParser.BOTH - 96)) | (1 << (sqlParser.LEADING - 96)) | (1 << (sqlParser.TRAILING - 96)) | (1 << (sqlParser.IF - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 <<
2019-09-25 16:53:32 +08:00
this.state = 2276;
2019-09-25 15:43:36 +08:00
this.complexColTypeList();
}
2019-09-25 16:53:32 +08:00
this.state = 2279;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.GT);
break;
case sqlParser.NEQ:
2019-09-25 16:53:32 +08:00
this.state = 2280;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NEQ);
break;
default:
throw new antlr4.error.NoViableAltException(this);
}
break;
case 4:
localctx = new PrimitiveDataTypeContext(this, localctx);
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 2283;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 2294;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 303, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 2284;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 2285;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INTEGER_VALUE);
2019-09-25 16:53:32 +08:00
this.state = 2290;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 2286;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 2287;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INTEGER_VALUE);
2019-09-25 16:53:32 +08:00
this.state = 2292;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
2019-09-25 16:53:32 +08:00
this.state = 2293;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
}
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 ColTypeListContext(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 = sqlParser.RULE_colTypeList;
return this;
}
ColTypeListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ColTypeListContext.prototype.constructor = ColTypeListContext;
ColTypeListContext.prototype.colType = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ColTypeContext);
}
else {
return this.getTypedRuleContext(ColTypeContext, i);
}
};
ColTypeListContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterColTypeList(this);
}
};
ColTypeListContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitColTypeList(this);
}
};
ColTypeListContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitColTypeList(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.ColTypeListContext = ColTypeListContext;
sqlParser.prototype.colTypeList = function () {
var localctx = new ColTypeListContext(this, this._ctx, this.state);
this.enterRule(localctx, 170, sqlParser.RULE_colTypeList);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2298;
2019-09-25 15:43:36 +08:00
this.colType();
2019-09-25 16:53:32 +08:00
this.state = 2303;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 305, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
2019-09-25 16:53:32 +08:00
this.state = 2299;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 2300;
2019-09-25 15:43:36 +08:00
this.colType();
}
2019-09-25 16:53:32 +08:00
this.state = 2305;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 305, this._ctx);
2019-09-25 15:43:36 +08:00
}
}
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 ColTypeContext(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 = sqlParser.RULE_colType;
return this;
}
ColTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ColTypeContext.prototype.constructor = ColTypeContext;
ColTypeContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
ColTypeContext.prototype.dataType = function () {
return this.getTypedRuleContext(DataTypeContext, 0);
};
ColTypeContext.prototype.COMMENT = function () {
return this.getToken(sqlParser.COMMENT, 0);
};
ColTypeContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
ColTypeContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterColType(this);
}
};
ColTypeContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitColType(this);
}
};
ColTypeContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitColType(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.ColTypeContext = ColTypeContext;
sqlParser.prototype.colType = function () {
var localctx = new ColTypeContext(this, this._ctx, this.state);
this.enterRule(localctx, 172, sqlParser.RULE_colType);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2306;
2019-09-25 15:43:36 +08:00
this.identifier();
this.state = 2307;
2019-09-25 16:53:32 +08:00
this.dataType();
this.state = 2310;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 306, this._ctx);
2019-09-25 15:43:36 +08:00
if (la_ === 1) {
2019-09-25 16:53:32 +08:00
this.state = 2308;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COMMENT);
2019-09-25 16:53:32 +08:00
this.state = 2309;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
}
}
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 DtColTypeListContext(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 = sqlParser.RULE_dtColTypeList;
return this;
}
DtColTypeListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DtColTypeListContext.prototype.constructor = DtColTypeListContext;
DtColTypeListContext.prototype.dtColType = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(DtColTypeContext);
}
else {
return this.getTypedRuleContext(DtColTypeContext, i);
}
};
DtColTypeListContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterDtColTypeList(this);
}
};
DtColTypeListContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitDtColTypeList(this);
}
};
DtColTypeListContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitDtColTypeList(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.DtColTypeListContext = DtColTypeListContext;
sqlParser.prototype.dtColTypeList = function () {
var localctx = new DtColTypeListContext(this, this._ctx, this.state);
this.enterRule(localctx, 174, sqlParser.RULE_dtColTypeList);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2312;
2019-09-25 15:43:36 +08:00
this.dtColType();
2019-09-25 16:53:32 +08:00
this.state = 2317;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 2313;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 2314;
2019-09-25 15:43:36 +08:00
this.dtColType();
2019-09-25 16:53:32 +08:00
this.state = 2319;
2019-09-25 15:43:36 +08:00
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 DtColTypeContext(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 = sqlParser.RULE_dtColType;
return this;
}
DtColTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DtColTypeContext.prototype.constructor = DtColTypeContext;
DtColTypeContext.prototype.identifier = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(IdentifierContext);
}
else {
return this.getTypedRuleContext(IdentifierContext, i);
}
};
DtColTypeContext.prototype.dataType = function () {
return this.getTypedRuleContext(DataTypeContext, 0);
};
DtColTypeContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
DtColTypeContext.prototype.COMMENT = function () {
return this.getToken(sqlParser.COMMENT, 0);
};
DtColTypeContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
DtColTypeContext.prototype.WATERMARK = function () {
return this.getToken(sqlParser.WATERMARK, 0);
};
DtColTypeContext.prototype.FOR = function () {
return this.getToken(sqlParser.FOR, 0);
};
DtColTypeContext.prototype.primaryExpression = function () {
return this.getTypedRuleContext(PrimaryExpressionContext, 0);
};
DtColTypeContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterDtColType(this);
}
};
DtColTypeContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitDtColType(this);
}
};
DtColTypeContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitDtColType(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.DtColTypeContext = DtColTypeContext;
sqlParser.prototype.dtColType = function () {
var localctx = new DtColTypeContext(this, this._ctx, this.state);
this.enterRule(localctx, 176, sqlParser.RULE_dtColType);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 2343;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.SELECT:
case sqlParser.FROM:
case sqlParser.ADD:
case sqlParser.AS:
case sqlParser.ALL:
case sqlParser.ANY:
case sqlParser.DISTINCT:
case sqlParser.WHERE:
case sqlParser.GROUP:
case sqlParser.BY:
case sqlParser.GROUPING:
case sqlParser.SETS:
case sqlParser.CUBE:
case sqlParser.ROLLUP:
case sqlParser.ORDER:
case sqlParser.HAVING:
case sqlParser.LIMIT:
case sqlParser.AT:
case sqlParser.OR:
case sqlParser.AND:
case sqlParser.IN:
case sqlParser.NOT:
case sqlParser.NO:
case sqlParser.EXISTS:
case sqlParser.BETWEEN:
case sqlParser.LIKE:
case sqlParser.RLIKE:
case sqlParser.IS:
case sqlParser.NULL:
case sqlParser.TRUE:
case sqlParser.FALSE:
case sqlParser.NULLS:
case sqlParser.ASC:
case sqlParser.DESC:
case sqlParser.FOR:
case sqlParser.INTERVAL:
case sqlParser.CASE:
case sqlParser.WHEN:
case sqlParser.THEN:
case sqlParser.ELSE:
case sqlParser.END:
case sqlParser.JOIN:
case sqlParser.CROSS:
case sqlParser.OUTER:
case sqlParser.INNER:
case sqlParser.LEFT:
case sqlParser.SEMI:
case sqlParser.RIGHT:
case sqlParser.FULL:
case sqlParser.NATURAL:
case sqlParser.ON:
case sqlParser.PIVOT:
case sqlParser.LATERAL:
case sqlParser.WINDOW:
case sqlParser.OVER:
case sqlParser.PARTITION:
case sqlParser.RANGE:
case sqlParser.ROWS:
case sqlParser.UNBOUNDED:
case sqlParser.PRECEDING:
case sqlParser.FOLLOWING:
case sqlParser.CURRENT:
case sqlParser.FIRST:
case sqlParser.AFTER:
case sqlParser.LAST:
case sqlParser.ROW:
case sqlParser.WITH:
case sqlParser.VALUES:
case sqlParser.CREATE:
case sqlParser.TABLE:
case sqlParser.DIRECTORY:
case sqlParser.VIEW:
case sqlParser.REPLACE:
case sqlParser.INSERT:
case sqlParser.DELETE:
case sqlParser.INTO:
case sqlParser.DESCRIBE:
case sqlParser.EXPLAIN:
case sqlParser.FORMAT:
case sqlParser.LOGICAL:
case sqlParser.CODEGEN:
case sqlParser.COST:
case sqlParser.CAST:
case sqlParser.SHOW:
case sqlParser.TABLES:
case sqlParser.COLUMNS:
case sqlParser.COLUMN:
case sqlParser.USE:
case sqlParser.PARTITIONS:
case sqlParser.FUNCTIONS:
case sqlParser.DROP:
case sqlParser.UNION:
case sqlParser.EXCEPT:
case sqlParser.SETMINUS:
case sqlParser.INTERSECT:
case sqlParser.TO:
case sqlParser.TABLESAMPLE:
case sqlParser.STRATIFY:
case sqlParser.ALTER:
case sqlParser.RENAME:
case sqlParser.ARRAY:
case sqlParser.MAP:
case sqlParser.STRUCT:
case sqlParser.COMMENT:
case sqlParser.SET:
case sqlParser.RESET:
case sqlParser.DATA:
case sqlParser.START:
case sqlParser.TRANSACTION:
case sqlParser.COMMIT:
case sqlParser.ROLLBACK:
case sqlParser.MACRO:
case sqlParser.IGNORE:
case sqlParser.BOTH:
case sqlParser.LEADING:
case sqlParser.TRAILING:
case sqlParser.IF:
case sqlParser.POSITION:
case sqlParser.EXTRACT:
case sqlParser.DIV:
case sqlParser.PERCENTLIT:
case sqlParser.BUCKET:
case sqlParser.OUT:
case sqlParser.OF:
case sqlParser.SORT:
case sqlParser.CLUSTER:
case sqlParser.DISTRIBUTE:
case sqlParser.OVERWRITE:
case sqlParser.TRANSFORM:
case sqlParser.REDUCE:
case sqlParser.SERDE:
case sqlParser.SERDEPROPERTIES:
case sqlParser.RECORDREADER:
case sqlParser.RECORDWRITER:
case sqlParser.DELIMITED:
case sqlParser.FIELDS:
case sqlParser.TERMINATED:
case sqlParser.COLLECTION:
case sqlParser.ITEMS:
case sqlParser.KEYS:
case sqlParser.ESCAPED:
case sqlParser.LINES:
case sqlParser.SEPARATED:
case sqlParser.FUNCTION:
case sqlParser.EXTENDED:
case sqlParser.REFRESH:
case sqlParser.CLEAR:
case sqlParser.CACHE:
case sqlParser.UNCACHE:
case sqlParser.LAZY:
case sqlParser.FORMATTED:
case sqlParser.GLOBAL:
case sqlParser.TEMPORARY:
case sqlParser.OPTIONS:
case sqlParser.UNSET:
case sqlParser.TBLPROPERTIES:
case sqlParser.DBPROPERTIES:
case sqlParser.BUCKETS:
case sqlParser.SKEWED:
case sqlParser.STORED:
case sqlParser.DIRECTORIES:
case sqlParser.LOCATION:
case sqlParser.EXCHANGE:
case sqlParser.ARCHIVE:
case sqlParser.UNARCHIVE:
case sqlParser.FILEFORMAT:
case sqlParser.TOUCH:
case sqlParser.COMPACT:
case sqlParser.CONCATENATE:
case sqlParser.CHANGE:
case sqlParser.CASCADE:
case sqlParser.RESTRICT:
case sqlParser.CLUSTERED:
case sqlParser.SORTED:
case sqlParser.PURGE:
case sqlParser.INPUTFORMAT:
case sqlParser.OUTPUTFORMAT:
case sqlParser.DATABASE:
case sqlParser.DATABASES:
case sqlParser.DFS:
case sqlParser.TRUNCATE:
case sqlParser.ANALYZE:
case sqlParser.COMPUTE:
case sqlParser.LIST:
case sqlParser.STATISTICS:
case sqlParser.PARTITIONED:
case sqlParser.EXTERNAL:
case sqlParser.DEFINED:
case sqlParser.REVOKE:
case sqlParser.GRANT:
case sqlParser.LOCK:
case sqlParser.UNLOCK:
case sqlParser.MSCK:
case sqlParser.REPAIR:
case sqlParser.RECOVER:
case sqlParser.EXPORT:
case sqlParser.IMPORT:
case sqlParser.LOAD:
case sqlParser.ROLE:
case sqlParser.ROLES:
case sqlParser.COMPACTIONS:
case sqlParser.PRINCIPALS:
case sqlParser.TRANSACTIONS:
case sqlParser.INDEX:
case sqlParser.INDEXES:
case sqlParser.LOCKS:
case sqlParser.OPTION:
case sqlParser.ANTI:
case sqlParser.LOCAL:
case sqlParser.INPATH:
case sqlParser.IDENTIFIER:
case sqlParser.BACKQUOTED_IDENTIFIER:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2320;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 2325;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__2) {
2019-09-25 16:53:32 +08:00
this.state = 2321;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__2);
2019-09-25 16:53:32 +08:00
this.state = 2322;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 2327;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
this.state = 2328;
2019-09-25 16:53:32 +08:00
this.dataType();
this.state = 2331;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.AS) {
2019-09-25 16:53:32 +08:00
this.state = 2329;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
2019-09-25 16:53:32 +08:00
this.state = 2330;
2019-09-25 15:43:36 +08:00
this.identifier();
}
2019-09-25 16:53:32 +08:00
this.state = 2335;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.COMMENT) {
2019-09-25 16:53:32 +08:00
this.state = 2333;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COMMENT);
2019-09-25 16:53:32 +08:00
this.state = 2334;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
}
break;
case sqlParser.WATERMARK:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 2337;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.WATERMARK);
2019-09-25 16:53:32 +08:00
this.state = 2338;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FOR);
2019-09-25 16:53:32 +08:00
this.state = 2339;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 2340;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
2019-09-25 16:53:32 +08:00
this.state = 2341;
2019-09-25 15:43:36 +08:00
this.primaryExpression(0);
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 ComplexColTypeListContext(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 = sqlParser.RULE_complexColTypeList;
return this;
}
ComplexColTypeListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ComplexColTypeListContext.prototype.constructor = ComplexColTypeListContext;
ComplexColTypeListContext.prototype.complexColType = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ComplexColTypeContext);
}
else {
return this.getTypedRuleContext(ComplexColTypeContext, i);
}
};
ComplexColTypeListContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterComplexColTypeList(this);
}
};
ComplexColTypeListContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitComplexColTypeList(this);
}
};
ComplexColTypeListContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitComplexColTypeList(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.ComplexColTypeListContext = ComplexColTypeListContext;
sqlParser.prototype.complexColTypeList = function () {
var localctx = new ComplexColTypeListContext(this, this._ctx, this.state);
this.enterRule(localctx, 178, sqlParser.RULE_complexColTypeList);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2345;
2019-09-25 15:43:36 +08:00
this.complexColType();
2019-09-25 16:53:32 +08:00
this.state = 2350;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 2346;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 2347;
2019-09-25 15:43:36 +08:00
this.complexColType();
2019-09-25 16:53:32 +08:00
this.state = 2352;
2019-09-25 15:43:36 +08:00
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 ComplexColTypeContext(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 = sqlParser.RULE_complexColType;
return this;
}
ComplexColTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ComplexColTypeContext.prototype.constructor = ComplexColTypeContext;
ComplexColTypeContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
ComplexColTypeContext.prototype.dataType = function () {
return this.getTypedRuleContext(DataTypeContext, 0);
};
ComplexColTypeContext.prototype.COMMENT = function () {
return this.getToken(sqlParser.COMMENT, 0);
};
ComplexColTypeContext.prototype.STRING = function () {
return this.getToken(sqlParser.STRING, 0);
};
ComplexColTypeContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterComplexColType(this);
}
};
ComplexColTypeContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitComplexColType(this);
}
};
ComplexColTypeContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitComplexColType(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.ComplexColTypeContext = ComplexColTypeContext;
sqlParser.prototype.complexColType = function () {
var localctx = new ComplexColTypeContext(this, this._ctx, this.state);
this.enterRule(localctx, 180, sqlParser.RULE_complexColType);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2353;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 2354;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__9);
this.state = 2355;
2019-09-25 16:53:32 +08:00
this.dataType();
this.state = 2358;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.COMMENT) {
2019-09-25 16:53:32 +08:00
this.state = 2356;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.COMMENT);
2019-09-25 16:53:32 +08:00
this.state = 2357;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.STRING);
}
}
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 WhenClauseContext(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 = sqlParser.RULE_whenClause;
this.condition = null; // ExpressionContext
this.result = null; // ExpressionContext
return this;
}
WhenClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
WhenClauseContext.prototype.constructor = WhenClauseContext;
WhenClauseContext.prototype.WHEN = function () {
return this.getToken(sqlParser.WHEN, 0);
};
WhenClauseContext.prototype.THEN = function () {
return this.getToken(sqlParser.THEN, 0);
};
WhenClauseContext.prototype.expression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ExpressionContext);
}
else {
return this.getTypedRuleContext(ExpressionContext, i);
}
};
WhenClauseContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterWhenClause(this);
}
};
WhenClauseContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitWhenClause(this);
}
};
WhenClauseContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitWhenClause(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.WhenClauseContext = WhenClauseContext;
sqlParser.prototype.whenClause = function () {
var localctx = new WhenClauseContext(this, this._ctx, this.state);
this.enterRule(localctx, 182, sqlParser.RULE_whenClause);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2360;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.WHEN);
2019-09-25 16:53:32 +08:00
this.state = 2361;
2019-09-25 15:43:36 +08:00
localctx.condition = this.expression();
2019-09-25 16:53:32 +08:00
this.state = 2362;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.THEN);
2019-09-25 16:53:32 +08:00
this.state = 2363;
2019-09-25 15:43:36 +08:00
localctx.result = this.expression();
}
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 WindowsContext(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 = sqlParser.RULE_windows;
return this;
}
WindowsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
WindowsContext.prototype.constructor = WindowsContext;
WindowsContext.prototype.WINDOW = function () {
return this.getToken(sqlParser.WINDOW, 0);
};
WindowsContext.prototype.namedWindow = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(NamedWindowContext);
}
else {
return this.getTypedRuleContext(NamedWindowContext, i);
}
};
WindowsContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterWindows(this);
}
};
WindowsContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitWindows(this);
}
};
WindowsContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitWindows(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.WindowsContext = WindowsContext;
sqlParser.prototype.windows = function () {
var localctx = new WindowsContext(this, this._ctx, this.state);
this.enterRule(localctx, 184, sqlParser.RULE_windows);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2365;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.WINDOW);
2019-09-25 16:53:32 +08:00
this.state = 2366;
2019-09-25 15:43:36 +08:00
this.namedWindow();
2019-09-25 16:53:32 +08:00
this.state = 2371;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 314, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
2019-09-25 16:53:32 +08:00
this.state = 2367;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 2368;
2019-09-25 15:43:36 +08:00
this.namedWindow();
}
2019-09-25 16:53:32 +08:00
this.state = 2373;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 314, this._ctx);
2019-09-25 15:43:36 +08:00
}
}
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 NamedWindowContext(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 = sqlParser.RULE_namedWindow;
return this;
}
NamedWindowContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
NamedWindowContext.prototype.constructor = NamedWindowContext;
NamedWindowContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
NamedWindowContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
NamedWindowContext.prototype.windowSpec = function () {
return this.getTypedRuleContext(WindowSpecContext, 0);
};
NamedWindowContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterNamedWindow(this);
}
};
NamedWindowContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitNamedWindow(this);
}
};
NamedWindowContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitNamedWindow(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.NamedWindowContext = NamedWindowContext;
sqlParser.prototype.namedWindow = function () {
var localctx = new NamedWindowContext(this, this._ctx, this.state);
this.enterRule(localctx, 186, sqlParser.RULE_namedWindow);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2374;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 2375;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AS);
2019-09-25 16:53:32 +08:00
this.state = 2376;
2019-09-25 15:43:36 +08:00
this.windowSpec();
}
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 WindowSpecContext(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 = sqlParser.RULE_windowSpec;
return this;
}
WindowSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
WindowSpecContext.prototype.constructor = WindowSpecContext;
WindowSpecContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function WindowRefContext(parser, ctx) {
WindowSpecContext.call(this, parser);
this.name = null; // IdentifierContext;
WindowSpecContext.prototype.copyFrom.call(this, ctx);
return this;
}
WindowRefContext.prototype = Object.create(WindowSpecContext.prototype);
WindowRefContext.prototype.constructor = WindowRefContext;
sqlParser.WindowRefContext = WindowRefContext;
WindowRefContext.prototype.identifier = function () {
return this.getTypedRuleContext(IdentifierContext, 0);
};
WindowRefContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterWindowRef(this);
}
};
WindowRefContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitWindowRef(this);
}
};
WindowRefContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitWindowRef(this);
}
else {
return visitor.visitChildren(this);
}
};
function WindowDefContext(parser, ctx) {
WindowSpecContext.call(this, parser);
this._expression = null; // ExpressionContext;
this.partition = []; // of ExpressionContexts;
WindowSpecContext.prototype.copyFrom.call(this, ctx);
return this;
}
WindowDefContext.prototype = Object.create(WindowSpecContext.prototype);
WindowDefContext.prototype.constructor = WindowDefContext;
sqlParser.WindowDefContext = WindowDefContext;
WindowDefContext.prototype.CLUSTER = function () {
return this.getToken(sqlParser.CLUSTER, 0);
};
WindowDefContext.prototype.BY = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTokens(sqlParser.BY);
}
else {
return this.getToken(sqlParser.BY, i);
}
};
WindowDefContext.prototype.expression = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(ExpressionContext);
}
else {
return this.getTypedRuleContext(ExpressionContext, i);
}
};
WindowDefContext.prototype.windowFrame = function () {
return this.getTypedRuleContext(WindowFrameContext, 0);
};
WindowDefContext.prototype.sortItem = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(SortItemContext);
}
else {
return this.getTypedRuleContext(SortItemContext, i);
}
};
WindowDefContext.prototype.PARTITION = function () {
return this.getToken(sqlParser.PARTITION, 0);
};
WindowDefContext.prototype.DISTRIBUTE = function () {
return this.getToken(sqlParser.DISTRIBUTE, 0);
};
WindowDefContext.prototype.ORDER = function () {
return this.getToken(sqlParser.ORDER, 0);
};
WindowDefContext.prototype.SORT = function () {
return this.getToken(sqlParser.SORT, 0);
};
WindowDefContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterWindowDef(this);
}
};
WindowDefContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitWindowDef(this);
}
};
WindowDefContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitWindowDef(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.WindowSpecContext = WindowSpecContext;
sqlParser.prototype.windowSpec = function () {
var localctx = new WindowSpecContext(this, this._ctx, this.state);
this.enterRule(localctx, 188, sqlParser.RULE_windowSpec);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 2420;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.SELECT:
case sqlParser.FROM:
case sqlParser.ADD:
case sqlParser.AS:
case sqlParser.ALL:
case sqlParser.ANY:
case sqlParser.DISTINCT:
case sqlParser.WHERE:
case sqlParser.GROUP:
case sqlParser.BY:
case sqlParser.GROUPING:
case sqlParser.SETS:
case sqlParser.CUBE:
case sqlParser.ROLLUP:
case sqlParser.ORDER:
case sqlParser.HAVING:
case sqlParser.LIMIT:
case sqlParser.AT:
case sqlParser.OR:
case sqlParser.AND:
case sqlParser.IN:
case sqlParser.NOT:
case sqlParser.NO:
case sqlParser.EXISTS:
case sqlParser.BETWEEN:
case sqlParser.LIKE:
case sqlParser.RLIKE:
case sqlParser.IS:
case sqlParser.NULL:
case sqlParser.TRUE:
case sqlParser.FALSE:
case sqlParser.NULLS:
case sqlParser.ASC:
case sqlParser.DESC:
case sqlParser.FOR:
case sqlParser.INTERVAL:
case sqlParser.CASE:
case sqlParser.WHEN:
case sqlParser.THEN:
case sqlParser.ELSE:
case sqlParser.END:
case sqlParser.JOIN:
case sqlParser.CROSS:
case sqlParser.OUTER:
case sqlParser.INNER:
case sqlParser.LEFT:
case sqlParser.SEMI:
case sqlParser.RIGHT:
case sqlParser.FULL:
case sqlParser.NATURAL:
case sqlParser.ON:
case sqlParser.PIVOT:
case sqlParser.LATERAL:
case sqlParser.WINDOW:
case sqlParser.OVER:
case sqlParser.PARTITION:
case sqlParser.RANGE:
case sqlParser.ROWS:
case sqlParser.UNBOUNDED:
case sqlParser.PRECEDING:
case sqlParser.FOLLOWING:
case sqlParser.CURRENT:
case sqlParser.FIRST:
case sqlParser.AFTER:
case sqlParser.LAST:
case sqlParser.ROW:
case sqlParser.WITH:
case sqlParser.VALUES:
case sqlParser.CREATE:
case sqlParser.TABLE:
case sqlParser.DIRECTORY:
case sqlParser.VIEW:
case sqlParser.REPLACE:
case sqlParser.INSERT:
case sqlParser.DELETE:
case sqlParser.INTO:
case sqlParser.DESCRIBE:
case sqlParser.EXPLAIN:
case sqlParser.FORMAT:
case sqlParser.LOGICAL:
case sqlParser.CODEGEN:
case sqlParser.COST:
case sqlParser.CAST:
case sqlParser.SHOW:
case sqlParser.TABLES:
case sqlParser.COLUMNS:
case sqlParser.COLUMN:
case sqlParser.USE:
case sqlParser.PARTITIONS:
case sqlParser.FUNCTIONS:
case sqlParser.DROP:
case sqlParser.UNION:
case sqlParser.EXCEPT:
case sqlParser.SETMINUS:
case sqlParser.INTERSECT:
case sqlParser.TO:
case sqlParser.TABLESAMPLE:
case sqlParser.STRATIFY:
case sqlParser.ALTER:
case sqlParser.RENAME:
case sqlParser.ARRAY:
case sqlParser.MAP:
case sqlParser.STRUCT:
case sqlParser.COMMENT:
case sqlParser.SET:
case sqlParser.RESET:
case sqlParser.DATA:
case sqlParser.START:
case sqlParser.TRANSACTION:
case sqlParser.COMMIT:
case sqlParser.ROLLBACK:
case sqlParser.MACRO:
case sqlParser.IGNORE:
case sqlParser.BOTH:
case sqlParser.LEADING:
case sqlParser.TRAILING:
case sqlParser.IF:
case sqlParser.POSITION:
case sqlParser.EXTRACT:
case sqlParser.DIV:
case sqlParser.PERCENTLIT:
case sqlParser.BUCKET:
case sqlParser.OUT:
case sqlParser.OF:
case sqlParser.SORT:
case sqlParser.CLUSTER:
case sqlParser.DISTRIBUTE:
case sqlParser.OVERWRITE:
case sqlParser.TRANSFORM:
case sqlParser.REDUCE:
case sqlParser.SERDE:
case sqlParser.SERDEPROPERTIES:
case sqlParser.RECORDREADER:
case sqlParser.RECORDWRITER:
case sqlParser.DELIMITED:
case sqlParser.FIELDS:
case sqlParser.TERMINATED:
case sqlParser.COLLECTION:
case sqlParser.ITEMS:
case sqlParser.KEYS:
case sqlParser.ESCAPED:
case sqlParser.LINES:
case sqlParser.SEPARATED:
case sqlParser.FUNCTION:
case sqlParser.EXTENDED:
case sqlParser.REFRESH:
case sqlParser.CLEAR:
case sqlParser.CACHE:
case sqlParser.UNCACHE:
case sqlParser.LAZY:
case sqlParser.FORMATTED:
case sqlParser.GLOBAL:
case sqlParser.TEMPORARY:
case sqlParser.OPTIONS:
case sqlParser.UNSET:
case sqlParser.TBLPROPERTIES:
case sqlParser.DBPROPERTIES:
case sqlParser.BUCKETS:
case sqlParser.SKEWED:
case sqlParser.STORED:
case sqlParser.DIRECTORIES:
case sqlParser.LOCATION:
case sqlParser.EXCHANGE:
case sqlParser.ARCHIVE:
case sqlParser.UNARCHIVE:
case sqlParser.FILEFORMAT:
case sqlParser.TOUCH:
case sqlParser.COMPACT:
case sqlParser.CONCATENATE:
case sqlParser.CHANGE:
case sqlParser.CASCADE:
case sqlParser.RESTRICT:
case sqlParser.CLUSTERED:
case sqlParser.SORTED:
case sqlParser.PURGE:
case sqlParser.INPUTFORMAT:
case sqlParser.OUTPUTFORMAT:
case sqlParser.DATABASE:
case sqlParser.DATABASES:
case sqlParser.DFS:
case sqlParser.TRUNCATE:
case sqlParser.ANALYZE:
case sqlParser.COMPUTE:
case sqlParser.LIST:
case sqlParser.STATISTICS:
case sqlParser.PARTITIONED:
case sqlParser.EXTERNAL:
case sqlParser.DEFINED:
case sqlParser.REVOKE:
case sqlParser.GRANT:
case sqlParser.LOCK:
case sqlParser.UNLOCK:
case sqlParser.MSCK:
case sqlParser.REPAIR:
case sqlParser.RECOVER:
case sqlParser.EXPORT:
case sqlParser.IMPORT:
case sqlParser.LOAD:
case sqlParser.ROLE:
case sqlParser.ROLES:
case sqlParser.COMPACTIONS:
case sqlParser.PRINCIPALS:
case sqlParser.TRANSACTIONS:
case sqlParser.INDEX:
case sqlParser.INDEXES:
case sqlParser.LOCKS:
case sqlParser.OPTION:
case sqlParser.ANTI:
case sqlParser.LOCAL:
case sqlParser.INPATH:
case sqlParser.IDENTIFIER:
case sqlParser.BACKQUOTED_IDENTIFIER:
localctx = new WindowRefContext(this, localctx);
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2378;
2019-09-25 15:43:36 +08:00
localctx.name = this.identifier();
break;
case sqlParser.T__0:
localctx = new WindowDefContext(this, localctx);
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 2379;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__0);
2019-09-25 16:53:32 +08:00
this.state = 2414;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.CLUSTER:
2019-09-25 16:53:32 +08:00
this.state = 2380;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CLUSTER);
2019-09-25 16:53:32 +08:00
this.state = 2381;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 2382;
2019-09-25 15:43:36 +08:00
localctx._expression = this.expression();
localctx.partition.push(localctx._expression);
2019-09-25 16:53:32 +08:00
this.state = 2387;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 2383;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 2384;
2019-09-25 15:43:36 +08:00
localctx._expression = this.expression();
localctx.partition.push(localctx._expression);
2019-09-25 16:53:32 +08:00
this.state = 2389;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
break;
case sqlParser.T__1:
case sqlParser.ORDER:
case sqlParser.PARTITION:
case sqlParser.RANGE:
case sqlParser.ROWS:
case sqlParser.SORT:
case sqlParser.DISTRIBUTE:
2019-09-25 16:53:32 +08:00
this.state = 2400;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.PARTITION || _la === sqlParser.DISTRIBUTE) {
2019-09-25 16:53:32 +08:00
this.state = 2390;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.PARTITION || _la === sqlParser.DISTRIBUTE)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 2391;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 2392;
2019-09-25 15:43:36 +08:00
localctx._expression = this.expression();
localctx.partition.push(localctx._expression);
2019-09-25 16:53:32 +08:00
this.state = 2397;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 2393;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 2394;
2019-09-25 15:43:36 +08:00
localctx._expression = this.expression();
localctx.partition.push(localctx._expression);
2019-09-25 16:53:32 +08:00
this.state = 2399;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
}
2019-09-25 16:53:32 +08:00
this.state = 2412;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.ORDER || _la === sqlParser.SORT) {
2019-09-25 16:53:32 +08:00
this.state = 2402;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!(_la === sqlParser.ORDER || _la === sqlParser.SORT)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
2019-09-25 16:53:32 +08:00
this.state = 2403;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BY);
2019-09-25 16:53:32 +08:00
this.state = 2404;
2019-09-25 15:43:36 +08:00
this.sortItem();
2019-09-25 16:53:32 +08:00
this.state = 2409;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la === sqlParser.T__3) {
2019-09-25 16:53:32 +08:00
this.state = 2405;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__3);
2019-09-25 16:53:32 +08:00
this.state = 2406;
2019-09-25 15:43:36 +08:00
this.sortItem();
2019-09-25 16:53:32 +08:00
this.state = 2411;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
}
}
break;
default:
throw new antlr4.error.NoViableAltException(this);
}
2019-09-25 16:53:32 +08:00
this.state = 2417;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.RANGE || _la === sqlParser.ROWS) {
2019-09-25 16:53:32 +08:00
this.state = 2416;
2019-09-25 15:43:36 +08:00
this.windowFrame();
}
2019-09-25 16:53:32 +08:00
this.state = 2419;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__1);
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 WindowFrameContext(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 = sqlParser.RULE_windowFrame;
this.frameType = null; // Token
this.start = null; // FrameBoundContext
this.end = null; // FrameBoundContext
return this;
}
WindowFrameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
WindowFrameContext.prototype.constructor = WindowFrameContext;
WindowFrameContext.prototype.RANGE = function () {
return this.getToken(sqlParser.RANGE, 0);
};
WindowFrameContext.prototype.frameBound = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(FrameBoundContext);
}
else {
return this.getTypedRuleContext(FrameBoundContext, i);
}
};
WindowFrameContext.prototype.ROWS = function () {
return this.getToken(sqlParser.ROWS, 0);
};
WindowFrameContext.prototype.BETWEEN = function () {
return this.getToken(sqlParser.BETWEEN, 0);
};
WindowFrameContext.prototype.AND = function () {
return this.getToken(sqlParser.AND, 0);
};
WindowFrameContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterWindowFrame(this);
}
};
WindowFrameContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitWindowFrame(this);
}
};
WindowFrameContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitWindowFrame(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.WindowFrameContext = WindowFrameContext;
sqlParser.prototype.windowFrame = function () {
var localctx = new WindowFrameContext(this, this._ctx, this.state);
this.enterRule(localctx, 190, sqlParser.RULE_windowFrame);
try {
2019-09-25 16:53:32 +08:00
this.state = 2438;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 323, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2422;
2019-09-25 15:43:36 +08:00
localctx.frameType = this.match(sqlParser.RANGE);
2019-09-25 16:53:32 +08:00
this.state = 2423;
2019-09-25 15:43:36 +08:00
localctx.start = this.frameBound();
break;
case 2:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 2424;
2019-09-25 15:43:36 +08:00
localctx.frameType = this.match(sqlParser.ROWS);
2019-09-25 16:53:32 +08:00
this.state = 2425;
2019-09-25 15:43:36 +08:00
localctx.start = this.frameBound();
break;
case 3:
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 2426;
2019-09-25 15:43:36 +08:00
localctx.frameType = this.match(sqlParser.RANGE);
2019-09-25 16:53:32 +08:00
this.state = 2427;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BETWEEN);
2019-09-25 16:53:32 +08:00
this.state = 2428;
2019-09-25 15:43:36 +08:00
localctx.start = this.frameBound();
2019-09-25 16:53:32 +08:00
this.state = 2429;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AND);
2019-09-25 16:53:32 +08:00
this.state = 2430;
2019-09-25 15:43:36 +08:00
localctx.end = this.frameBound();
break;
case 4:
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 2432;
2019-09-25 15:43:36 +08:00
localctx.frameType = this.match(sqlParser.ROWS);
2019-09-25 16:53:32 +08:00
this.state = 2433;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BETWEEN);
2019-09-25 16:53:32 +08:00
this.state = 2434;
2019-09-25 15:43:36 +08:00
localctx.start = this.frameBound();
2019-09-25 16:53:32 +08:00
this.state = 2435;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.AND);
2019-09-25 16:53:32 +08:00
this.state = 2436;
2019-09-25 15:43:36 +08:00
localctx.end = this.frameBound();
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 FrameBoundContext(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 = sqlParser.RULE_frameBound;
this.boundType = null; // Token
return this;
}
FrameBoundContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FrameBoundContext.prototype.constructor = FrameBoundContext;
FrameBoundContext.prototype.UNBOUNDED = function () {
return this.getToken(sqlParser.UNBOUNDED, 0);
};
FrameBoundContext.prototype.PRECEDING = function () {
return this.getToken(sqlParser.PRECEDING, 0);
};
FrameBoundContext.prototype.FOLLOWING = function () {
return this.getToken(sqlParser.FOLLOWING, 0);
};
FrameBoundContext.prototype.ROW = function () {
return this.getToken(sqlParser.ROW, 0);
};
FrameBoundContext.prototype.CURRENT = function () {
return this.getToken(sqlParser.CURRENT, 0);
};
FrameBoundContext.prototype.expression = function () {
return this.getTypedRuleContext(ExpressionContext, 0);
};
FrameBoundContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterFrameBound(this);
}
};
FrameBoundContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitFrameBound(this);
}
};
FrameBoundContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitFrameBound(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.FrameBoundContext = FrameBoundContext;
sqlParser.prototype.frameBound = function () {
var localctx = new FrameBoundContext(this, this._ctx, this.state);
this.enterRule(localctx, 192, sqlParser.RULE_frameBound);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 2447;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 324, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2440;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.UNBOUNDED);
2019-09-25 16:53:32 +08:00
this.state = 2441;
2019-09-25 15:43:36 +08:00
localctx.boundType = this._input.LT(1);
_la = this._input.LA(1);
if (!(_la === sqlParser.PRECEDING || _la === sqlParser.FOLLOWING)) {
localctx.boundType = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
break;
case 2:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 2442;
2019-09-25 15:43:36 +08:00
localctx.boundType = this.match(sqlParser.CURRENT);
2019-09-25 16:53:32 +08:00
this.state = 2443;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ROW);
break;
case 3:
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 2444;
2019-09-25 15:43:36 +08:00
this.expression();
2019-09-25 16:53:32 +08:00
this.state = 2445;
2019-09-25 15:43:36 +08:00
localctx.boundType = this._input.LT(1);
_la = this._input.LA(1);
if (!(_la === sqlParser.PRECEDING || _la === sqlParser.FOLLOWING)) {
localctx.boundType = this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
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 QualifiedNameContext(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 = sqlParser.RULE_qualifiedName;
return this;
}
QualifiedNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
QualifiedNameContext.prototype.constructor = QualifiedNameContext;
QualifiedNameContext.prototype.identifier = function (i) {
if (i === undefined) {
i = null;
}
if (i === null) {
return this.getTypedRuleContexts(IdentifierContext);
}
else {
return this.getTypedRuleContext(IdentifierContext, i);
}
};
QualifiedNameContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterQualifiedName(this);
}
};
QualifiedNameContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitQualifiedName(this);
}
};
QualifiedNameContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitQualifiedName(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.QualifiedNameContext = QualifiedNameContext;
sqlParser.prototype.qualifiedName = function () {
var localctx = new QualifiedNameContext(this, this._ctx, this.state);
this.enterRule(localctx, 194, sqlParser.RULE_qualifiedName);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2449;
2019-09-25 15:43:36 +08:00
this.identifier();
2019-09-25 16:53:32 +08:00
this.state = 2454;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var _alt = this._interp.adaptivePredict(this._input, 325, this._ctx);
2019-09-25 15:43:36 +08:00
while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
2019-09-25 16:53:32 +08:00
this.state = 2450;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.T__2);
2019-09-25 16:53:32 +08:00
this.state = 2451;
2019-09-25 15:43:36 +08:00
this.identifier();
}
2019-09-25 16:53:32 +08:00
this.state = 2456;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
_alt = this._interp.adaptivePredict(this._input, 325, this._ctx);
2019-09-25 15:43:36 +08:00
}
}
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 IdentifierContext(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 = sqlParser.RULE_identifier;
return this;
}
IdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IdentifierContext.prototype.constructor = IdentifierContext;
IdentifierContext.prototype.strictIdentifier = function () {
return this.getTypedRuleContext(StrictIdentifierContext, 0);
};
IdentifierContext.prototype.ANTI = function () {
return this.getToken(sqlParser.ANTI, 0);
};
IdentifierContext.prototype.FULL = function () {
return this.getToken(sqlParser.FULL, 0);
};
IdentifierContext.prototype.INNER = function () {
return this.getToken(sqlParser.INNER, 0);
};
IdentifierContext.prototype.LEFT = function () {
return this.getToken(sqlParser.LEFT, 0);
};
IdentifierContext.prototype.SEMI = function () {
return this.getToken(sqlParser.SEMI, 0);
};
IdentifierContext.prototype.RIGHT = function () {
return this.getToken(sqlParser.RIGHT, 0);
};
IdentifierContext.prototype.NATURAL = function () {
return this.getToken(sqlParser.NATURAL, 0);
};
IdentifierContext.prototype.JOIN = function () {
return this.getToken(sqlParser.JOIN, 0);
};
IdentifierContext.prototype.CROSS = function () {
return this.getToken(sqlParser.CROSS, 0);
};
IdentifierContext.prototype.ON = function () {
return this.getToken(sqlParser.ON, 0);
};
IdentifierContext.prototype.UNION = function () {
return this.getToken(sqlParser.UNION, 0);
};
IdentifierContext.prototype.INTERSECT = function () {
return this.getToken(sqlParser.INTERSECT, 0);
};
IdentifierContext.prototype.EXCEPT = function () {
return this.getToken(sqlParser.EXCEPT, 0);
};
IdentifierContext.prototype.SETMINUS = function () {
return this.getToken(sqlParser.SETMINUS, 0);
};
IdentifierContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterIdentifier(this);
}
};
IdentifierContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitIdentifier(this);
}
};
IdentifierContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitIdentifier(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.IdentifierContext = IdentifierContext;
sqlParser.prototype.identifier = function () {
var localctx = new IdentifierContext(this, this._ctx, this.state);
this.enterRule(localctx, 196, sqlParser.RULE_identifier);
try {
2019-09-25 16:53:32 +08:00
this.state = 2472;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.SELECT:
case sqlParser.FROM:
case sqlParser.ADD:
case sqlParser.AS:
case sqlParser.ALL:
case sqlParser.ANY:
case sqlParser.DISTINCT:
case sqlParser.WHERE:
case sqlParser.GROUP:
case sqlParser.BY:
case sqlParser.GROUPING:
case sqlParser.SETS:
case sqlParser.CUBE:
case sqlParser.ROLLUP:
case sqlParser.ORDER:
case sqlParser.HAVING:
case sqlParser.LIMIT:
case sqlParser.AT:
case sqlParser.OR:
case sqlParser.AND:
case sqlParser.IN:
case sqlParser.NOT:
case sqlParser.NO:
case sqlParser.EXISTS:
case sqlParser.BETWEEN:
case sqlParser.LIKE:
case sqlParser.RLIKE:
case sqlParser.IS:
case sqlParser.NULL:
case sqlParser.TRUE:
case sqlParser.FALSE:
case sqlParser.NULLS:
case sqlParser.ASC:
case sqlParser.DESC:
case sqlParser.FOR:
case sqlParser.INTERVAL:
case sqlParser.CASE:
case sqlParser.WHEN:
case sqlParser.THEN:
case sqlParser.ELSE:
case sqlParser.END:
case sqlParser.OUTER:
case sqlParser.PIVOT:
case sqlParser.LATERAL:
case sqlParser.WINDOW:
case sqlParser.OVER:
case sqlParser.PARTITION:
case sqlParser.RANGE:
case sqlParser.ROWS:
case sqlParser.UNBOUNDED:
case sqlParser.PRECEDING:
case sqlParser.FOLLOWING:
case sqlParser.CURRENT:
case sqlParser.FIRST:
case sqlParser.AFTER:
case sqlParser.LAST:
case sqlParser.ROW:
case sqlParser.WITH:
case sqlParser.VALUES:
case sqlParser.CREATE:
case sqlParser.TABLE:
case sqlParser.DIRECTORY:
case sqlParser.VIEW:
case sqlParser.REPLACE:
case sqlParser.INSERT:
case sqlParser.DELETE:
case sqlParser.INTO:
case sqlParser.DESCRIBE:
case sqlParser.EXPLAIN:
case sqlParser.FORMAT:
case sqlParser.LOGICAL:
case sqlParser.CODEGEN:
case sqlParser.COST:
case sqlParser.CAST:
case sqlParser.SHOW:
case sqlParser.TABLES:
case sqlParser.COLUMNS:
case sqlParser.COLUMN:
case sqlParser.USE:
case sqlParser.PARTITIONS:
case sqlParser.FUNCTIONS:
case sqlParser.DROP:
case sqlParser.TO:
case sqlParser.TABLESAMPLE:
case sqlParser.STRATIFY:
case sqlParser.ALTER:
case sqlParser.RENAME:
case sqlParser.ARRAY:
case sqlParser.MAP:
case sqlParser.STRUCT:
case sqlParser.COMMENT:
case sqlParser.SET:
case sqlParser.RESET:
case sqlParser.DATA:
case sqlParser.START:
case sqlParser.TRANSACTION:
case sqlParser.COMMIT:
case sqlParser.ROLLBACK:
case sqlParser.MACRO:
case sqlParser.IGNORE:
case sqlParser.BOTH:
case sqlParser.LEADING:
case sqlParser.TRAILING:
case sqlParser.IF:
case sqlParser.POSITION:
case sqlParser.EXTRACT:
case sqlParser.DIV:
case sqlParser.PERCENTLIT:
case sqlParser.BUCKET:
case sqlParser.OUT:
case sqlParser.OF:
case sqlParser.SORT:
case sqlParser.CLUSTER:
case sqlParser.DISTRIBUTE:
case sqlParser.OVERWRITE:
case sqlParser.TRANSFORM:
case sqlParser.REDUCE:
case sqlParser.SERDE:
case sqlParser.SERDEPROPERTIES:
case sqlParser.RECORDREADER:
case sqlParser.RECORDWRITER:
case sqlParser.DELIMITED:
case sqlParser.FIELDS:
case sqlParser.TERMINATED:
case sqlParser.COLLECTION:
case sqlParser.ITEMS:
case sqlParser.KEYS:
case sqlParser.ESCAPED:
case sqlParser.LINES:
case sqlParser.SEPARATED:
case sqlParser.FUNCTION:
case sqlParser.EXTENDED:
case sqlParser.REFRESH:
case sqlParser.CLEAR:
case sqlParser.CACHE:
case sqlParser.UNCACHE:
case sqlParser.LAZY:
case sqlParser.FORMATTED:
case sqlParser.GLOBAL:
case sqlParser.TEMPORARY:
case sqlParser.OPTIONS:
case sqlParser.UNSET:
case sqlParser.TBLPROPERTIES:
case sqlParser.DBPROPERTIES:
case sqlParser.BUCKETS:
case sqlParser.SKEWED:
case sqlParser.STORED:
case sqlParser.DIRECTORIES:
case sqlParser.LOCATION:
case sqlParser.EXCHANGE:
case sqlParser.ARCHIVE:
case sqlParser.UNARCHIVE:
case sqlParser.FILEFORMAT:
case sqlParser.TOUCH:
case sqlParser.COMPACT:
case sqlParser.CONCATENATE:
case sqlParser.CHANGE:
case sqlParser.CASCADE:
case sqlParser.RESTRICT:
case sqlParser.CLUSTERED:
case sqlParser.SORTED:
case sqlParser.PURGE:
case sqlParser.INPUTFORMAT:
case sqlParser.OUTPUTFORMAT:
case sqlParser.DATABASE:
case sqlParser.DATABASES:
case sqlParser.DFS:
case sqlParser.TRUNCATE:
case sqlParser.ANALYZE:
case sqlParser.COMPUTE:
case sqlParser.LIST:
case sqlParser.STATISTICS:
case sqlParser.PARTITIONED:
case sqlParser.EXTERNAL:
case sqlParser.DEFINED:
case sqlParser.REVOKE:
case sqlParser.GRANT:
case sqlParser.LOCK:
case sqlParser.UNLOCK:
case sqlParser.MSCK:
case sqlParser.REPAIR:
case sqlParser.RECOVER:
case sqlParser.EXPORT:
case sqlParser.IMPORT:
case sqlParser.LOAD:
case sqlParser.ROLE:
case sqlParser.ROLES:
case sqlParser.COMPACTIONS:
case sqlParser.PRINCIPALS:
case sqlParser.TRANSACTIONS:
case sqlParser.INDEX:
case sqlParser.INDEXES:
case sqlParser.LOCKS:
case sqlParser.OPTION:
case sqlParser.LOCAL:
case sqlParser.INPATH:
case sqlParser.IDENTIFIER:
case sqlParser.BACKQUOTED_IDENTIFIER:
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2457;
2019-09-25 15:43:36 +08:00
this.strictIdentifier();
break;
case sqlParser.ANTI:
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 2458;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ANTI);
break;
case sqlParser.FULL:
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 2459;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.FULL);
break;
case sqlParser.INNER:
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 2460;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INNER);
break;
case sqlParser.LEFT:
this.enterOuterAlt(localctx, 5);
2019-09-25 16:53:32 +08:00
this.state = 2461;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.LEFT);
break;
case sqlParser.SEMI:
this.enterOuterAlt(localctx, 6);
2019-09-25 16:53:32 +08:00
this.state = 2462;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SEMI);
break;
case sqlParser.RIGHT:
this.enterOuterAlt(localctx, 7);
2019-09-25 16:53:32 +08:00
this.state = 2463;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.RIGHT);
break;
case sqlParser.NATURAL:
this.enterOuterAlt(localctx, 8);
2019-09-25 16:53:32 +08:00
this.state = 2464;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.NATURAL);
break;
case sqlParser.JOIN:
this.enterOuterAlt(localctx, 9);
2019-09-25 16:53:32 +08:00
this.state = 2465;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.JOIN);
break;
case sqlParser.CROSS:
this.enterOuterAlt(localctx, 10);
2019-09-25 16:53:32 +08:00
this.state = 2466;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.CROSS);
break;
case sqlParser.ON:
this.enterOuterAlt(localctx, 11);
2019-09-25 16:53:32 +08:00
this.state = 2467;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.ON);
break;
case sqlParser.UNION:
this.enterOuterAlt(localctx, 12);
2019-09-25 16:53:32 +08:00
this.state = 2468;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.UNION);
break;
case sqlParser.INTERSECT:
this.enterOuterAlt(localctx, 13);
2019-09-25 16:53:32 +08:00
this.state = 2469;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INTERSECT);
break;
case sqlParser.EXCEPT:
this.enterOuterAlt(localctx, 14);
2019-09-25 16:53:32 +08:00
this.state = 2470;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.EXCEPT);
break;
case sqlParser.SETMINUS:
this.enterOuterAlt(localctx, 15);
2019-09-25 16:53:32 +08:00
this.state = 2471;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SETMINUS);
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 StrictIdentifierContext(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 = sqlParser.RULE_strictIdentifier;
return this;
}
StrictIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
StrictIdentifierContext.prototype.constructor = StrictIdentifierContext;
StrictIdentifierContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function QuotedIdentifierAlternativeContext(parser, ctx) {
StrictIdentifierContext.call(this, parser);
StrictIdentifierContext.prototype.copyFrom.call(this, ctx);
return this;
}
QuotedIdentifierAlternativeContext.prototype = Object.create(StrictIdentifierContext.prototype);
QuotedIdentifierAlternativeContext.prototype.constructor = QuotedIdentifierAlternativeContext;
sqlParser.QuotedIdentifierAlternativeContext = QuotedIdentifierAlternativeContext;
QuotedIdentifierAlternativeContext.prototype.quotedIdentifier = function () {
return this.getTypedRuleContext(QuotedIdentifierContext, 0);
};
QuotedIdentifierAlternativeContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterQuotedIdentifierAlternative(this);
}
};
QuotedIdentifierAlternativeContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitQuotedIdentifierAlternative(this);
}
};
QuotedIdentifierAlternativeContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitQuotedIdentifierAlternative(this);
}
else {
return visitor.visitChildren(this);
}
};
function UnquotedIdentifierContext(parser, ctx) {
StrictIdentifierContext.call(this, parser);
StrictIdentifierContext.prototype.copyFrom.call(this, ctx);
return this;
}
UnquotedIdentifierContext.prototype = Object.create(StrictIdentifierContext.prototype);
UnquotedIdentifierContext.prototype.constructor = UnquotedIdentifierContext;
sqlParser.UnquotedIdentifierContext = UnquotedIdentifierContext;
UnquotedIdentifierContext.prototype.IDENTIFIER = function () {
return this.getToken(sqlParser.IDENTIFIER, 0);
};
UnquotedIdentifierContext.prototype.nonReserved = function () {
return this.getTypedRuleContext(NonReservedContext, 0);
};
UnquotedIdentifierContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterUnquotedIdentifier(this);
}
};
UnquotedIdentifierContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitUnquotedIdentifier(this);
}
};
UnquotedIdentifierContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitUnquotedIdentifier(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.StrictIdentifierContext = StrictIdentifierContext;
sqlParser.prototype.strictIdentifier = function () {
var localctx = new StrictIdentifierContext(this, this._ctx, this.state);
this.enterRule(localctx, 198, sqlParser.RULE_strictIdentifier);
try {
2019-09-25 16:53:32 +08:00
this.state = 2477;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case sqlParser.IDENTIFIER:
localctx = new UnquotedIdentifierContext(this, localctx);
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2474;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.IDENTIFIER);
break;
case sqlParser.BACKQUOTED_IDENTIFIER:
localctx = new QuotedIdentifierAlternativeContext(this, localctx);
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 2475;
2019-09-25 15:43:36 +08:00
this.quotedIdentifier();
break;
case sqlParser.SELECT:
case sqlParser.FROM:
case sqlParser.ADD:
case sqlParser.AS:
case sqlParser.ALL:
case sqlParser.ANY:
case sqlParser.DISTINCT:
case sqlParser.WHERE:
case sqlParser.GROUP:
case sqlParser.BY:
case sqlParser.GROUPING:
case sqlParser.SETS:
case sqlParser.CUBE:
case sqlParser.ROLLUP:
case sqlParser.ORDER:
case sqlParser.HAVING:
case sqlParser.LIMIT:
case sqlParser.AT:
case sqlParser.OR:
case sqlParser.AND:
case sqlParser.IN:
case sqlParser.NOT:
case sqlParser.NO:
case sqlParser.EXISTS:
case sqlParser.BETWEEN:
case sqlParser.LIKE:
case sqlParser.RLIKE:
case sqlParser.IS:
case sqlParser.NULL:
case sqlParser.TRUE:
case sqlParser.FALSE:
case sqlParser.NULLS:
case sqlParser.ASC:
case sqlParser.DESC:
case sqlParser.FOR:
case sqlParser.INTERVAL:
case sqlParser.CASE:
case sqlParser.WHEN:
case sqlParser.THEN:
case sqlParser.ELSE:
case sqlParser.END:
case sqlParser.OUTER:
case sqlParser.PIVOT:
case sqlParser.LATERAL:
case sqlParser.WINDOW:
case sqlParser.OVER:
case sqlParser.PARTITION:
case sqlParser.RANGE:
case sqlParser.ROWS:
case sqlParser.UNBOUNDED:
case sqlParser.PRECEDING:
case sqlParser.FOLLOWING:
case sqlParser.CURRENT:
case sqlParser.FIRST:
case sqlParser.AFTER:
case sqlParser.LAST:
case sqlParser.ROW:
case sqlParser.WITH:
case sqlParser.VALUES:
case sqlParser.CREATE:
case sqlParser.TABLE:
case sqlParser.DIRECTORY:
case sqlParser.VIEW:
case sqlParser.REPLACE:
case sqlParser.INSERT:
case sqlParser.DELETE:
case sqlParser.INTO:
case sqlParser.DESCRIBE:
case sqlParser.EXPLAIN:
case sqlParser.FORMAT:
case sqlParser.LOGICAL:
case sqlParser.CODEGEN:
case sqlParser.COST:
case sqlParser.CAST:
case sqlParser.SHOW:
case sqlParser.TABLES:
case sqlParser.COLUMNS:
case sqlParser.COLUMN:
case sqlParser.USE:
case sqlParser.PARTITIONS:
case sqlParser.FUNCTIONS:
case sqlParser.DROP:
case sqlParser.TO:
case sqlParser.TABLESAMPLE:
case sqlParser.STRATIFY:
case sqlParser.ALTER:
case sqlParser.RENAME:
case sqlParser.ARRAY:
case sqlParser.MAP:
case sqlParser.STRUCT:
case sqlParser.COMMENT:
case sqlParser.SET:
case sqlParser.RESET:
case sqlParser.DATA:
case sqlParser.START:
case sqlParser.TRANSACTION:
case sqlParser.COMMIT:
case sqlParser.ROLLBACK:
case sqlParser.MACRO:
case sqlParser.IGNORE:
case sqlParser.BOTH:
case sqlParser.LEADING:
case sqlParser.TRAILING:
case sqlParser.IF:
case sqlParser.POSITION:
case sqlParser.EXTRACT:
case sqlParser.DIV:
case sqlParser.PERCENTLIT:
case sqlParser.BUCKET:
case sqlParser.OUT:
case sqlParser.OF:
case sqlParser.SORT:
case sqlParser.CLUSTER:
case sqlParser.DISTRIBUTE:
case sqlParser.OVERWRITE:
case sqlParser.TRANSFORM:
case sqlParser.REDUCE:
case sqlParser.SERDE:
case sqlParser.SERDEPROPERTIES:
case sqlParser.RECORDREADER:
case sqlParser.RECORDWRITER:
case sqlParser.DELIMITED:
case sqlParser.FIELDS:
case sqlParser.TERMINATED:
case sqlParser.COLLECTION:
case sqlParser.ITEMS:
case sqlParser.KEYS:
case sqlParser.ESCAPED:
case sqlParser.LINES:
case sqlParser.SEPARATED:
case sqlParser.FUNCTION:
case sqlParser.EXTENDED:
case sqlParser.REFRESH:
case sqlParser.CLEAR:
case sqlParser.CACHE:
case sqlParser.UNCACHE:
case sqlParser.LAZY:
case sqlParser.FORMATTED:
case sqlParser.GLOBAL:
case sqlParser.TEMPORARY:
case sqlParser.OPTIONS:
case sqlParser.UNSET:
case sqlParser.TBLPROPERTIES:
case sqlParser.DBPROPERTIES:
case sqlParser.BUCKETS:
case sqlParser.SKEWED:
case sqlParser.STORED:
case sqlParser.DIRECTORIES:
case sqlParser.LOCATION:
case sqlParser.EXCHANGE:
case sqlParser.ARCHIVE:
case sqlParser.UNARCHIVE:
case sqlParser.FILEFORMAT:
case sqlParser.TOUCH:
case sqlParser.COMPACT:
case sqlParser.CONCATENATE:
case sqlParser.CHANGE:
case sqlParser.CASCADE:
case sqlParser.RESTRICT:
case sqlParser.CLUSTERED:
case sqlParser.SORTED:
case sqlParser.PURGE:
case sqlParser.INPUTFORMAT:
case sqlParser.OUTPUTFORMAT:
case sqlParser.DATABASE:
case sqlParser.DATABASES:
case sqlParser.DFS:
case sqlParser.TRUNCATE:
case sqlParser.ANALYZE:
case sqlParser.COMPUTE:
case sqlParser.LIST:
case sqlParser.STATISTICS:
case sqlParser.PARTITIONED:
case sqlParser.EXTERNAL:
case sqlParser.DEFINED:
case sqlParser.REVOKE:
case sqlParser.GRANT:
case sqlParser.LOCK:
case sqlParser.UNLOCK:
case sqlParser.MSCK:
case sqlParser.REPAIR:
case sqlParser.RECOVER:
case sqlParser.EXPORT:
case sqlParser.IMPORT:
case sqlParser.LOAD:
case sqlParser.ROLE:
case sqlParser.ROLES:
case sqlParser.COMPACTIONS:
case sqlParser.PRINCIPALS:
case sqlParser.TRANSACTIONS:
case sqlParser.INDEX:
case sqlParser.INDEXES:
case sqlParser.LOCKS:
case sqlParser.OPTION:
case sqlParser.LOCAL:
case sqlParser.INPATH:
localctx = new UnquotedIdentifierContext(this, localctx);
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 2476;
2019-09-25 15:43:36 +08:00
this.nonReserved();
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 QuotedIdentifierContext(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 = sqlParser.RULE_quotedIdentifier;
return this;
}
QuotedIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
QuotedIdentifierContext.prototype.constructor = QuotedIdentifierContext;
QuotedIdentifierContext.prototype.BACKQUOTED_IDENTIFIER = function () {
return this.getToken(sqlParser.BACKQUOTED_IDENTIFIER, 0);
};
QuotedIdentifierContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterQuotedIdentifier(this);
}
};
QuotedIdentifierContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitQuotedIdentifier(this);
}
};
QuotedIdentifierContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitQuotedIdentifier(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.QuotedIdentifierContext = QuotedIdentifierContext;
sqlParser.prototype.quotedIdentifier = function () {
var localctx = new QuotedIdentifierContext(this, this._ctx, this.state);
this.enterRule(localctx, 200, sqlParser.RULE_quotedIdentifier);
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2479;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BACKQUOTED_IDENTIFIER);
}
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 NumberContext(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 = sqlParser.RULE_number;
return this;
}
NumberContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
NumberContext.prototype.constructor = NumberContext;
NumberContext.prototype.copyFrom = function (ctx) {
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};
function DecimalLiteralContext(parser, ctx) {
NumberContext.call(this, parser);
NumberContext.prototype.copyFrom.call(this, ctx);
return this;
}
DecimalLiteralContext.prototype = Object.create(NumberContext.prototype);
DecimalLiteralContext.prototype.constructor = DecimalLiteralContext;
sqlParser.DecimalLiteralContext = DecimalLiteralContext;
DecimalLiteralContext.prototype.DECIMAL_VALUE = function () {
return this.getToken(sqlParser.DECIMAL_VALUE, 0);
};
DecimalLiteralContext.prototype.MINUS = function () {
return this.getToken(sqlParser.MINUS, 0);
};
DecimalLiteralContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterDecimalLiteral(this);
}
};
DecimalLiteralContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitDecimalLiteral(this);
}
};
DecimalLiteralContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitDecimalLiteral(this);
}
else {
return visitor.visitChildren(this);
}
};
function BigIntLiteralContext(parser, ctx) {
NumberContext.call(this, parser);
NumberContext.prototype.copyFrom.call(this, ctx);
return this;
}
BigIntLiteralContext.prototype = Object.create(NumberContext.prototype);
BigIntLiteralContext.prototype.constructor = BigIntLiteralContext;
sqlParser.BigIntLiteralContext = BigIntLiteralContext;
BigIntLiteralContext.prototype.BIGINT_LITERAL = function () {
return this.getToken(sqlParser.BIGINT_LITERAL, 0);
};
BigIntLiteralContext.prototype.MINUS = function () {
return this.getToken(sqlParser.MINUS, 0);
};
BigIntLiteralContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterBigIntLiteral(this);
}
};
BigIntLiteralContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitBigIntLiteral(this);
}
};
BigIntLiteralContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitBigIntLiteral(this);
}
else {
return visitor.visitChildren(this);
}
};
function TinyIntLiteralContext(parser, ctx) {
NumberContext.call(this, parser);
NumberContext.prototype.copyFrom.call(this, ctx);
return this;
}
TinyIntLiteralContext.prototype = Object.create(NumberContext.prototype);
TinyIntLiteralContext.prototype.constructor = TinyIntLiteralContext;
sqlParser.TinyIntLiteralContext = TinyIntLiteralContext;
TinyIntLiteralContext.prototype.TINYINT_LITERAL = function () {
return this.getToken(sqlParser.TINYINT_LITERAL, 0);
};
TinyIntLiteralContext.prototype.MINUS = function () {
return this.getToken(sqlParser.MINUS, 0);
};
TinyIntLiteralContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterTinyIntLiteral(this);
}
};
TinyIntLiteralContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitTinyIntLiteral(this);
}
};
TinyIntLiteralContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitTinyIntLiteral(this);
}
else {
return visitor.visitChildren(this);
}
};
function BigDecimalLiteralContext(parser, ctx) {
NumberContext.call(this, parser);
NumberContext.prototype.copyFrom.call(this, ctx);
return this;
}
BigDecimalLiteralContext.prototype = Object.create(NumberContext.prototype);
BigDecimalLiteralContext.prototype.constructor = BigDecimalLiteralContext;
sqlParser.BigDecimalLiteralContext = BigDecimalLiteralContext;
BigDecimalLiteralContext.prototype.BIGDECIMAL_LITERAL = function () {
return this.getToken(sqlParser.BIGDECIMAL_LITERAL, 0);
};
BigDecimalLiteralContext.prototype.MINUS = function () {
return this.getToken(sqlParser.MINUS, 0);
};
BigDecimalLiteralContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterBigDecimalLiteral(this);
}
};
BigDecimalLiteralContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitBigDecimalLiteral(this);
}
};
BigDecimalLiteralContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitBigDecimalLiteral(this);
}
else {
return visitor.visitChildren(this);
}
};
function DoubleLiteralContext(parser, ctx) {
NumberContext.call(this, parser);
NumberContext.prototype.copyFrom.call(this, ctx);
return this;
}
DoubleLiteralContext.prototype = Object.create(NumberContext.prototype);
DoubleLiteralContext.prototype.constructor = DoubleLiteralContext;
sqlParser.DoubleLiteralContext = DoubleLiteralContext;
DoubleLiteralContext.prototype.DOUBLE_LITERAL = function () {
return this.getToken(sqlParser.DOUBLE_LITERAL, 0);
};
DoubleLiteralContext.prototype.MINUS = function () {
return this.getToken(sqlParser.MINUS, 0);
};
DoubleLiteralContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterDoubleLiteral(this);
}
};
DoubleLiteralContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitDoubleLiteral(this);
}
};
DoubleLiteralContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitDoubleLiteral(this);
}
else {
return visitor.visitChildren(this);
}
};
function IntegerLiteralContext(parser, ctx) {
NumberContext.call(this, parser);
NumberContext.prototype.copyFrom.call(this, ctx);
return this;
}
IntegerLiteralContext.prototype = Object.create(NumberContext.prototype);
IntegerLiteralContext.prototype.constructor = IntegerLiteralContext;
sqlParser.IntegerLiteralContext = IntegerLiteralContext;
IntegerLiteralContext.prototype.INTEGER_VALUE = function () {
return this.getToken(sqlParser.INTEGER_VALUE, 0);
};
IntegerLiteralContext.prototype.MINUS = function () {
return this.getToken(sqlParser.MINUS, 0);
};
IntegerLiteralContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterIntegerLiteral(this);
}
};
IntegerLiteralContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitIntegerLiteral(this);
}
};
IntegerLiteralContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitIntegerLiteral(this);
}
else {
return visitor.visitChildren(this);
}
};
function SmallIntLiteralContext(parser, ctx) {
NumberContext.call(this, parser);
NumberContext.prototype.copyFrom.call(this, ctx);
return this;
}
SmallIntLiteralContext.prototype = Object.create(NumberContext.prototype);
SmallIntLiteralContext.prototype.constructor = SmallIntLiteralContext;
sqlParser.SmallIntLiteralContext = SmallIntLiteralContext;
SmallIntLiteralContext.prototype.SMALLINT_LITERAL = function () {
return this.getToken(sqlParser.SMALLINT_LITERAL, 0);
};
SmallIntLiteralContext.prototype.MINUS = function () {
return this.getToken(sqlParser.MINUS, 0);
};
SmallIntLiteralContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterSmallIntLiteral(this);
}
};
SmallIntLiteralContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitSmallIntLiteral(this);
}
};
SmallIntLiteralContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitSmallIntLiteral(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.NumberContext = NumberContext;
sqlParser.prototype.number = function () {
var localctx = new NumberContext(this, this._ctx, this.state);
this.enterRule(localctx, 202, sqlParser.RULE_number);
var _la = 0; // Token type
try {
2019-09-25 16:53:32 +08:00
this.state = 2509;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
2019-09-25 16:53:32 +08:00
var la_ = this._interp.adaptivePredict(this._input, 335, this._ctx);
2019-09-25 15:43:36 +08:00
switch (la_) {
case 1:
localctx = new DecimalLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2482;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.MINUS) {
2019-09-25 16:53:32 +08:00
this.state = 2481;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.MINUS);
}
2019-09-25 16:53:32 +08:00
this.state = 2484;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DECIMAL_VALUE);
break;
case 2:
localctx = new IntegerLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 2);
2019-09-25 16:53:32 +08:00
this.state = 2486;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.MINUS) {
2019-09-25 16:53:32 +08:00
this.state = 2485;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.MINUS);
}
2019-09-25 16:53:32 +08:00
this.state = 2488;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.INTEGER_VALUE);
break;
case 3:
localctx = new BigIntLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 3);
2019-09-25 16:53:32 +08:00
this.state = 2490;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.MINUS) {
2019-09-25 16:53:32 +08:00
this.state = 2489;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.MINUS);
}
2019-09-25 16:53:32 +08:00
this.state = 2492;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BIGINT_LITERAL);
break;
case 4:
localctx = new SmallIntLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 4);
2019-09-25 16:53:32 +08:00
this.state = 2494;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.MINUS) {
2019-09-25 16:53:32 +08:00
this.state = 2493;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.MINUS);
}
2019-09-25 16:53:32 +08:00
this.state = 2496;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.SMALLINT_LITERAL);
break;
case 5:
localctx = new TinyIntLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 5);
2019-09-25 16:53:32 +08:00
this.state = 2498;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.MINUS) {
2019-09-25 16:53:32 +08:00
this.state = 2497;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.MINUS);
}
2019-09-25 16:53:32 +08:00
this.state = 2500;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.TINYINT_LITERAL);
break;
case 6:
localctx = new DoubleLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 6);
2019-09-25 16:53:32 +08:00
this.state = 2502;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.MINUS) {
2019-09-25 16:53:32 +08:00
this.state = 2501;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.MINUS);
}
2019-09-25 16:53:32 +08:00
this.state = 2504;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.DOUBLE_LITERAL);
break;
case 7:
localctx = new BigDecimalLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 7);
2019-09-25 16:53:32 +08:00
this.state = 2506;
2019-09-25 15:43:36 +08:00
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === sqlParser.MINUS) {
2019-09-25 16:53:32 +08:00
this.state = 2505;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.MINUS);
}
2019-09-25 16:53:32 +08:00
this.state = 2508;
2019-09-25 15:43:36 +08:00
this.match(sqlParser.BIGDECIMAL_LITERAL);
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 NonReservedContext(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 = sqlParser.RULE_nonReserved;
return this;
}
NonReservedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
NonReservedContext.prototype.constructor = NonReservedContext;
NonReservedContext.prototype.SHOW = function () {
return this.getToken(sqlParser.SHOW, 0);
};
NonReservedContext.prototype.TABLES = function () {
return this.getToken(sqlParser.TABLES, 0);
};
NonReservedContext.prototype.COLUMNS = function () {
return this.getToken(sqlParser.COLUMNS, 0);
};
NonReservedContext.prototype.COLUMN = function () {
return this.getToken(sqlParser.COLUMN, 0);
};
NonReservedContext.prototype.PARTITIONS = function () {
return this.getToken(sqlParser.PARTITIONS, 0);
};
NonReservedContext.prototype.FUNCTIONS = function () {
return this.getToken(sqlParser.FUNCTIONS, 0);
};
NonReservedContext.prototype.DATABASES = function () {
return this.getToken(sqlParser.DATABASES, 0);
};
NonReservedContext.prototype.ADD = function () {
return this.getToken(sqlParser.ADD, 0);
};
NonReservedContext.prototype.OVER = function () {
return this.getToken(sqlParser.OVER, 0);
};
NonReservedContext.prototype.PARTITION = function () {
return this.getToken(sqlParser.PARTITION, 0);
};
NonReservedContext.prototype.RANGE = function () {
return this.getToken(sqlParser.RANGE, 0);
};
NonReservedContext.prototype.ROWS = function () {
return this.getToken(sqlParser.ROWS, 0);
};
NonReservedContext.prototype.PRECEDING = function () {
return this.getToken(sqlParser.PRECEDING, 0);
};
NonReservedContext.prototype.FOLLOWING = function () {
return this.getToken(sqlParser.FOLLOWING, 0);
};
NonReservedContext.prototype.CURRENT = function () {
return this.getToken(sqlParser.CURRENT, 0);
};
NonReservedContext.prototype.ROW = function () {
return this.getToken(sqlParser.ROW, 0);
};
NonReservedContext.prototype.LAST = function () {
return this.getToken(sqlParser.LAST, 0);
};
NonReservedContext.prototype.FIRST = function () {
return this.getToken(sqlParser.FIRST, 0);
};
NonReservedContext.prototype.AFTER = function () {
return this.getToken(sqlParser.AFTER, 0);
};
NonReservedContext.prototype.MAP = function () {
return this.getToken(sqlParser.MAP, 0);
};
NonReservedContext.prototype.ARRAY = function () {
return this.getToken(sqlParser.ARRAY, 0);
};
NonReservedContext.prototype.STRUCT = function () {
return this.getToken(sqlParser.STRUCT, 0);
};
NonReservedContext.prototype.PIVOT = function () {
return this.getToken(sqlParser.PIVOT, 0);
};
NonReservedContext.prototype.LATERAL = function () {
return this.getToken(sqlParser.LATERAL, 0);
};
NonReservedContext.prototype.WINDOW = function () {
return this.getToken(sqlParser.WINDOW, 0);
};
NonReservedContext.prototype.REDUCE = function () {
return this.getToken(sqlParser.REDUCE, 0);
};
NonReservedContext.prototype.TRANSFORM = function () {
return this.getToken(sqlParser.TRANSFORM, 0);
};
NonReservedContext.prototype.SERDE = function () {
return this.getToken(sqlParser.SERDE, 0);
};
NonReservedContext.prototype.SERDEPROPERTIES = function () {
return this.getToken(sqlParser.SERDEPROPERTIES, 0);
};
NonReservedContext.prototype.RECORDREADER = function () {
return this.getToken(sqlParser.RECORDREADER, 0);
};
NonReservedContext.prototype.DELIMITED = function () {
return this.getToken(sqlParser.DELIMITED, 0);
};
NonReservedContext.prototype.FIELDS = function () {
return this.getToken(sqlParser.FIELDS, 0);
};
NonReservedContext.prototype.TERMINATED = function () {
return this.getToken(sqlParser.TERMINATED, 0);
};
NonReservedContext.prototype.COLLECTION = function () {
return this.getToken(sqlParser.COLLECTION, 0);
};
NonReservedContext.prototype.ITEMS = function () {
return this.getToken(sqlParser.ITEMS, 0);
};
NonReservedContext.prototype.KEYS = function () {
return this.getToken(sqlParser.KEYS, 0);
};
NonReservedContext.prototype.ESCAPED = function () {
return this.getToken(sqlParser.ESCAPED, 0);
};
NonReservedContext.prototype.LINES = function () {
return this.getToken(sqlParser.LINES, 0);
};
NonReservedContext.prototype.SEPARATED = function () {
return this.getToken(sqlParser.SEPARATED, 0);
};
NonReservedContext.prototype.EXTENDED = function () {
return this.getToken(sqlParser.EXTENDED, 0);
};
NonReservedContext.prototype.REFRESH = function () {
return this.getToken(sqlParser.REFRESH, 0);
};
NonReservedContext.prototype.CLEAR = function () {
return this.getToken(sqlParser.CLEAR, 0);
};
NonReservedContext.prototype.CACHE = function () {
return this.getToken(sqlParser.CACHE, 0);
};
NonReservedContext.prototype.UNCACHE = function () {
return this.getToken(sqlParser.UNCACHE, 0);
};
NonReservedContext.prototype.LAZY = function () {
return this.getToken(sqlParser.LAZY, 0);
};
NonReservedContext.prototype.GLOBAL = function () {
return this.getToken(sqlParser.GLOBAL, 0);
};
NonReservedContext.prototype.TEMPORARY = function () {
return this.getToken(sqlParser.TEMPORARY, 0);
};
NonReservedContext.prototype.OPTIONS = function () {
return this.getToken(sqlParser.OPTIONS, 0);
};
NonReservedContext.prototype.GROUPING = function () {
return this.getToken(sqlParser.GROUPING, 0);
};
NonReservedContext.prototype.CUBE = function () {
return this.getToken(sqlParser.CUBE, 0);
};
NonReservedContext.prototype.ROLLUP = function () {
return this.getToken(sqlParser.ROLLUP, 0);
};
NonReservedContext.prototype.EXPLAIN = function () {
return this.getToken(sqlParser.EXPLAIN, 0);
};
NonReservedContext.prototype.FORMAT = function () {
return this.getToken(sqlParser.FORMAT, 0);
};
NonReservedContext.prototype.LOGICAL = function () {
return this.getToken(sqlParser.LOGICAL, 0);
};
NonReservedContext.prototype.FORMATTED = function () {
return this.getToken(sqlParser.FORMATTED, 0);
};
NonReservedContext.prototype.CODEGEN = function () {
return this.getToken(sqlParser.CODEGEN, 0);
};
NonReservedContext.prototype.COST = function () {
return this.getToken(sqlParser.COST, 0);
};
NonReservedContext.prototype.TABLESAMPLE = function () {
return this.getToken(sqlParser.TABLESAMPLE, 0);
};
NonReservedContext.prototype.USE = function () {
return this.getToken(sqlParser.USE, 0);
};
NonReservedContext.prototype.TO = function () {
return this.getToken(sqlParser.TO, 0);
};
NonReservedContext.prototype.BUCKET = function () {
return this.getToken(sqlParser.BUCKET, 0);
};
NonReservedContext.prototype.PERCENTLIT = function () {
return this.getToken(sqlParser.PERCENTLIT, 0);
};
NonReservedContext.prototype.OUT = function () {
return this.getToken(sqlParser.OUT, 0);
};
NonReservedContext.prototype.OF = function () {
return this.getToken(sqlParser.OF, 0);
};
NonReservedContext.prototype.SET = function () {
return this.getToken(sqlParser.SET, 0);
};
NonReservedContext.prototype.RESET = function () {
return this.getToken(sqlParser.RESET, 0);
};
NonReservedContext.prototype.VIEW = function () {
return this.getToken(sqlParser.VIEW, 0);
};
NonReservedContext.prototype.REPLACE = function () {
return this.getToken(sqlParser.REPLACE, 0);
};
NonReservedContext.prototype.IF = function () {
return this.getToken(sqlParser.IF, 0);
};
NonReservedContext.prototype.POSITION = function () {
return this.getToken(sqlParser.POSITION, 0);
};
NonReservedContext.prototype.EXTRACT = function () {
return this.getToken(sqlParser.EXTRACT, 0);
};
NonReservedContext.prototype.NO = function () {
return this.getToken(sqlParser.NO, 0);
};
NonReservedContext.prototype.DATA = function () {
return this.getToken(sqlParser.DATA, 0);
};
NonReservedContext.prototype.START = function () {
return this.getToken(sqlParser.START, 0);
};
NonReservedContext.prototype.TRANSACTION = function () {
return this.getToken(sqlParser.TRANSACTION, 0);
};
NonReservedContext.prototype.COMMIT = function () {
return this.getToken(sqlParser.COMMIT, 0);
};
NonReservedContext.prototype.ROLLBACK = function () {
return this.getToken(sqlParser.ROLLBACK, 0);
};
NonReservedContext.prototype.IGNORE = function () {
return this.getToken(sqlParser.IGNORE, 0);
};
NonReservedContext.prototype.SORT = function () {
return this.getToken(sqlParser.SORT, 0);
};
NonReservedContext.prototype.CLUSTER = function () {
return this.getToken(sqlParser.CLUSTER, 0);
};
NonReservedContext.prototype.DISTRIBUTE = function () {
return this.getToken(sqlParser.DISTRIBUTE, 0);
};
NonReservedContext.prototype.UNSET = function () {
return this.getToken(sqlParser.UNSET, 0);
};
NonReservedContext.prototype.TBLPROPERTIES = function () {
return this.getToken(sqlParser.TBLPROPERTIES, 0);
};
NonReservedContext.prototype.SKEWED = function () {
return this.getToken(sqlParser.SKEWED, 0);
};
NonReservedContext.prototype.STORED = function () {
return this.getToken(sqlParser.STORED, 0);
};
NonReservedContext.prototype.DIRECTORIES = function () {
return this.getToken(sqlParser.DIRECTORIES, 0);
};
NonReservedContext.prototype.LOCATION = function () {
return this.getToken(sqlParser.LOCATION, 0);
};
NonReservedContext.prototype.EXCHANGE = function () {
return this.getToken(sqlParser.EXCHANGE, 0);
};
NonReservedContext.prototype.ARCHIVE = function () {
return this.getToken(sqlParser.ARCHIVE, 0);
};
NonReservedContext.prototype.UNARCHIVE = function () {
return this.getToken(sqlParser.UNARCHIVE, 0);
};
NonReservedContext.prototype.FILEFORMAT = function () {
return this.getToken(sqlParser.FILEFORMAT, 0);
};
NonReservedContext.prototype.TOUCH = function () {
return this.getToken(sqlParser.TOUCH, 0);
};
NonReservedContext.prototype.COMPACT = function () {
return this.getToken(sqlParser.COMPACT, 0);
};
NonReservedContext.prototype.CONCATENATE = function () {
return this.getToken(sqlParser.CONCATENATE, 0);
};
NonReservedContext.prototype.CHANGE = function () {
return this.getToken(sqlParser.CHANGE, 0);
};
NonReservedContext.prototype.CASCADE = function () {
return this.getToken(sqlParser.CASCADE, 0);
};
NonReservedContext.prototype.RESTRICT = function () {
return this.getToken(sqlParser.RESTRICT, 0);
};
NonReservedContext.prototype.BUCKETS = function () {
return this.getToken(sqlParser.BUCKETS, 0);
};
NonReservedContext.prototype.CLUSTERED = function () {
return this.getToken(sqlParser.CLUSTERED, 0);
};
NonReservedContext.prototype.SORTED = function () {
return this.getToken(sqlParser.SORTED, 0);
};
NonReservedContext.prototype.PURGE = function () {
return this.getToken(sqlParser.PURGE, 0);
};
NonReservedContext.prototype.INPUTFORMAT = function () {
return this.getToken(sqlParser.INPUTFORMAT, 0);
};
NonReservedContext.prototype.OUTPUTFORMAT = function () {
return this.getToken(sqlParser.OUTPUTFORMAT, 0);
};
NonReservedContext.prototype.DBPROPERTIES = function () {
return this.getToken(sqlParser.DBPROPERTIES, 0);
};
NonReservedContext.prototype.DFS = function () {
return this.getToken(sqlParser.DFS, 0);
};
NonReservedContext.prototype.TRUNCATE = function () {
return this.getToken(sqlParser.TRUNCATE, 0);
};
NonReservedContext.prototype.COMPUTE = function () {
return this.getToken(sqlParser.COMPUTE, 0);
};
NonReservedContext.prototype.LIST = function () {
return this.getToken(sqlParser.LIST, 0);
};
NonReservedContext.prototype.STATISTICS = function () {
return this.getToken(sqlParser.STATISTICS, 0);
};
NonReservedContext.prototype.ANALYZE = function () {
return this.getToken(sqlParser.ANALYZE, 0);
};
NonReservedContext.prototype.PARTITIONED = function () {
return this.getToken(sqlParser.PARTITIONED, 0);
};
NonReservedContext.prototype.EXTERNAL = function () {
return this.getToken(sqlParser.EXTERNAL, 0);
};
NonReservedContext.prototype.DEFINED = function () {
return this.getToken(sqlParser.DEFINED, 0);
};
NonReservedContext.prototype.RECORDWRITER = function () {
return this.getToken(sqlParser.RECORDWRITER, 0);
};
NonReservedContext.prototype.REVOKE = function () {
return this.getToken(sqlParser.REVOKE, 0);
};
NonReservedContext.prototype.GRANT = function () {
return this.getToken(sqlParser.GRANT, 0);
};
NonReservedContext.prototype.LOCK = function () {
return this.getToken(sqlParser.LOCK, 0);
};
NonReservedContext.prototype.UNLOCK = function () {
return this.getToken(sqlParser.UNLOCK, 0);
};
NonReservedContext.prototype.MSCK = function () {
return this.getToken(sqlParser.MSCK, 0);
};
NonReservedContext.prototype.REPAIR = function () {
return this.getToken(sqlParser.REPAIR, 0);
};
NonReservedContext.prototype.RECOVER = function () {
return this.getToken(sqlParser.RECOVER, 0);
};
NonReservedContext.prototype.EXPORT = function () {
return this.getToken(sqlParser.EXPORT, 0);
};
NonReservedContext.prototype.IMPORT = function () {
return this.getToken(sqlParser.IMPORT, 0);
};
NonReservedContext.prototype.LOAD = function () {
return this.getToken(sqlParser.LOAD, 0);
};
NonReservedContext.prototype.VALUES = function () {
return this.getToken(sqlParser.VALUES, 0);
};
NonReservedContext.prototype.COMMENT = function () {
return this.getToken(sqlParser.COMMENT, 0);
};
NonReservedContext.prototype.ROLE = function () {
return this.getToken(sqlParser.ROLE, 0);
};
NonReservedContext.prototype.ROLES = function () {
return this.getToken(sqlParser.ROLES, 0);
};
NonReservedContext.prototype.COMPACTIONS = function () {
return this.getToken(sqlParser.COMPACTIONS, 0);
};
NonReservedContext.prototype.PRINCIPALS = function () {
return this.getToken(sqlParser.PRINCIPALS, 0);
};
NonReservedContext.prototype.TRANSACTIONS = function () {
return this.getToken(sqlParser.TRANSACTIONS, 0);
};
NonReservedContext.prototype.INDEX = function () {
return this.getToken(sqlParser.INDEX, 0);
};
NonReservedContext.prototype.INDEXES = function () {
return this.getToken(sqlParser.INDEXES, 0);
};
NonReservedContext.prototype.LOCKS = function () {
return this.getToken(sqlParser.LOCKS, 0);
};
NonReservedContext.prototype.OPTION = function () {
return this.getToken(sqlParser.OPTION, 0);
};
NonReservedContext.prototype.LOCAL = function () {
return this.getToken(sqlParser.LOCAL, 0);
};
NonReservedContext.prototype.INPATH = function () {
return this.getToken(sqlParser.INPATH, 0);
};
NonReservedContext.prototype.ASC = function () {
return this.getToken(sqlParser.ASC, 0);
};
NonReservedContext.prototype.DESC = function () {
return this.getToken(sqlParser.DESC, 0);
};
NonReservedContext.prototype.LIMIT = function () {
return this.getToken(sqlParser.LIMIT, 0);
};
NonReservedContext.prototype.RENAME = function () {
return this.getToken(sqlParser.RENAME, 0);
};
NonReservedContext.prototype.SETS = function () {
return this.getToken(sqlParser.SETS, 0);
};
NonReservedContext.prototype.AT = function () {
return this.getToken(sqlParser.AT, 0);
};
NonReservedContext.prototype.NULLS = function () {
return this.getToken(sqlParser.NULLS, 0);
};
NonReservedContext.prototype.OVERWRITE = function () {
return this.getToken(sqlParser.OVERWRITE, 0);
};
NonReservedContext.prototype.ALL = function () {
return this.getToken(sqlParser.ALL, 0);
};
NonReservedContext.prototype.ANY = function () {
return this.getToken(sqlParser.ANY, 0);
};
NonReservedContext.prototype.ALTER = function () {
return this.getToken(sqlParser.ALTER, 0);
};
NonReservedContext.prototype.AS = function () {
return this.getToken(sqlParser.AS, 0);
};
NonReservedContext.prototype.BETWEEN = function () {
return this.getToken(sqlParser.BETWEEN, 0);
};
NonReservedContext.prototype.BY = function () {
return this.getToken(sqlParser.BY, 0);
};
NonReservedContext.prototype.CREATE = function () {
return this.getToken(sqlParser.CREATE, 0);
};
NonReservedContext.prototype.DELETE = function () {
return this.getToken(sqlParser.DELETE, 0);
};
NonReservedContext.prototype.DESCRIBE = function () {
return this.getToken(sqlParser.DESCRIBE, 0);
};
NonReservedContext.prototype.DROP = function () {
return this.getToken(sqlParser.DROP, 0);
};
NonReservedContext.prototype.EXISTS = function () {
return this.getToken(sqlParser.EXISTS, 0);
};
NonReservedContext.prototype.FALSE = function () {
return this.getToken(sqlParser.FALSE, 0);
};
NonReservedContext.prototype.FOR = function () {
return this.getToken(sqlParser.FOR, 0);
};
NonReservedContext.prototype.GROUP = function () {
return this.getToken(sqlParser.GROUP, 0);
};
NonReservedContext.prototype.IN = function () {
return this.getToken(sqlParser.IN, 0);
};
NonReservedContext.prototype.INSERT = function () {
return this.getToken(sqlParser.INSERT, 0);
};
NonReservedContext.prototype.INTO = function () {
return this.getToken(sqlParser.INTO, 0);
};
NonReservedContext.prototype.IS = function () {
return this.getToken(sqlParser.IS, 0);
};
NonReservedContext.prototype.LIKE = function () {
return this.getToken(sqlParser.LIKE, 0);
};
NonReservedContext.prototype.NULL = function () {
return this.getToken(sqlParser.NULL, 0);
};
NonReservedContext.prototype.ORDER = function () {
return this.getToken(sqlParser.ORDER, 0);
};
NonReservedContext.prototype.OUTER = function () {
return this.getToken(sqlParser.OUTER, 0);
};
NonReservedContext.prototype.TABLE = function () {
return this.getToken(sqlParser.TABLE, 0);
};
NonReservedContext.prototype.TRUE = function () {
return this.getToken(sqlParser.TRUE, 0);
};
NonReservedContext.prototype.WITH = function () {
return this.getToken(sqlParser.WITH, 0);
};
NonReservedContext.prototype.RLIKE = function () {
return this.getToken(sqlParser.RLIKE, 0);
};
NonReservedContext.prototype.AND = function () {
return this.getToken(sqlParser.AND, 0);
};
NonReservedContext.prototype.CASE = function () {
return this.getToken(sqlParser.CASE, 0);
};
NonReservedContext.prototype.CAST = function () {
return this.getToken(sqlParser.CAST, 0);
};
NonReservedContext.prototype.DISTINCT = function () {
return this.getToken(sqlParser.DISTINCT, 0);
};
NonReservedContext.prototype.DIV = function () {
return this.getToken(sqlParser.DIV, 0);
};
NonReservedContext.prototype.ELSE = function () {
return this.getToken(sqlParser.ELSE, 0);
};
NonReservedContext.prototype.END = function () {
return this.getToken(sqlParser.END, 0);
};
NonReservedContext.prototype.FUNCTION = function () {
return this.getToken(sqlParser.FUNCTION, 0);
};
NonReservedContext.prototype.INTERVAL = function () {
return this.getToken(sqlParser.INTERVAL, 0);
};
NonReservedContext.prototype.MACRO = function () {
return this.getToken(sqlParser.MACRO, 0);
};
NonReservedContext.prototype.OR = function () {
return this.getToken(sqlParser.OR, 0);
};
NonReservedContext.prototype.STRATIFY = function () {
return this.getToken(sqlParser.STRATIFY, 0);
};
NonReservedContext.prototype.THEN = function () {
return this.getToken(sqlParser.THEN, 0);
};
NonReservedContext.prototype.UNBOUNDED = function () {
return this.getToken(sqlParser.UNBOUNDED, 0);
};
NonReservedContext.prototype.WHEN = function () {
return this.getToken(sqlParser.WHEN, 0);
};
NonReservedContext.prototype.DATABASE = function () {
return this.getToken(sqlParser.DATABASE, 0);
};
NonReservedContext.prototype.SELECT = function () {
return this.getToken(sqlParser.SELECT, 0);
};
NonReservedContext.prototype.FROM = function () {
return this.getToken(sqlParser.FROM, 0);
};
NonReservedContext.prototype.WHERE = function () {
return this.getToken(sqlParser.WHERE, 0);
};
NonReservedContext.prototype.HAVING = function () {
return this.getToken(sqlParser.HAVING, 0);
};
NonReservedContext.prototype.NOT = function () {
return this.getToken(sqlParser.NOT, 0);
};
NonReservedContext.prototype.DIRECTORY = function () {
return this.getToken(sqlParser.DIRECTORY, 0);
};
NonReservedContext.prototype.BOTH = function () {
return this.getToken(sqlParser.BOTH, 0);
};
NonReservedContext.prototype.LEADING = function () {
return this.getToken(sqlParser.LEADING, 0);
};
NonReservedContext.prototype.TRAILING = function () {
return this.getToken(sqlParser.TRAILING, 0);
};
NonReservedContext.prototype.enterRule = function (listener) {
if (listener instanceof sqlListener) {
listener.enterNonReserved(this);
}
};
NonReservedContext.prototype.exitRule = function (listener) {
if (listener instanceof sqlListener) {
listener.exitNonReserved(this);
}
};
NonReservedContext.prototype.accept = function (visitor) {
if (visitor instanceof sqlVisitor) {
return visitor.visitNonReserved(this);
}
else {
return visitor.visitChildren(this);
}
};
sqlParser.NonReservedContext = NonReservedContext;
sqlParser.prototype.nonReserved = function () {
var localctx = new NonReservedContext(this, this._ctx, this.state);
this.enterRule(localctx, 204, sqlParser.RULE_nonReserved);
var _la = 0; // Token type
try {
this.enterOuterAlt(localctx, 1);
2019-09-25 16:53:32 +08:00
this.state = 2511;
2019-09-25 15:43:36 +08:00
_la = this._input.LA(1);
if (!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER) | (1 << sqlParser.HAVING) | (1 << sqlParser.LIMIT) | (1 << sqlParser.AT) | (1 << sqlParser.OR) | (1 << sqlParser.AND) | (1 << sqlParser.IN))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.PIVOT - 32)) | (1 << (sqlParser.LATERAL - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.VALUES - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)) | (1 << (sqlParser.LOGICAL - 64)) | (1 << (sqlParser.CODEGEN - 64)) | (1 << (sqlParser.COST - 64)) | (1 << (sqlParser.CAST - 64)) | (1 << (sqlParser.SHOW - 64)) | (1 << (sqlParser.TABLES - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)) | (1 << (sqlParser.MACRO - 96)) | (1 << (sqlParser.IGNORE - 96)) | (1 << (sqlParser.BOTH - 96)) | (1 << (sqlParser.LEADING - 96)) | (1 << (sqlParser.TRAILING - 96)) | (1 << (sqlParser.IF - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)) | (1 << (sqlParser.OF - 128)) | (1 << (sqlParser.SORT - 128)) | (1 << (sqlParser.CLUSTER - 128)) | (1 << (sqlParser.DISTRIBUTE - 128)) | (1 << (sqlParser.OVERWRITE - 128)) | (1 << (sqlParser.TRANSFORM - 128)) | (1 << (sqlParser.REDUCE - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIE
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
}
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;
};
sqlParser.prototype.sempred = function (localctx, ruleIndex, predIndex) {
switch (ruleIndex) {
case 35:
return this.queryTerm_sempred(localctx, predIndex);
case 71:
return this.booleanExpression_sempred(localctx, predIndex);
case 73:
return this.valueExpression_sempred(localctx, predIndex);
case 74:
return this.primaryExpression_sempred(localctx, predIndex);
default:
throw "No predicate with index:" + ruleIndex;
}
};
sqlParser.prototype.queryTerm_sempred = function (localctx, predIndex) {
switch (predIndex) {
case 0:
return this.precpred(this._ctx, 3);
case 1:
return this.legacy_setops_precedence_enbled;
case 2:
return this.precpred(this._ctx, 2);
case 3:
return !this.legacy_setops_precedence_enbled;
case 4:
return this.precpred(this._ctx, 1);
case 5:
return !this.legacy_setops_precedence_enbled;
default:
throw "No predicate with index:" + predIndex;
}
};
sqlParser.prototype.booleanExpression_sempred = function (localctx, predIndex) {
switch (predIndex) {
case 6:
return this.precpred(this._ctx, 2);
case 7:
return this.precpred(this._ctx, 1);
default:
throw "No predicate with index:" + predIndex;
}
};
sqlParser.prototype.valueExpression_sempred = function (localctx, predIndex) {
switch (predIndex) {
case 8:
return this.precpred(this._ctx, 6);
case 9:
return this.precpred(this._ctx, 5);
case 10:
return this.precpred(this._ctx, 4);
case 11:
return this.precpred(this._ctx, 3);
case 12:
return this.precpred(this._ctx, 2);
case 13:
return this.precpred(this._ctx, 1);
default:
throw "No predicate with index:" + predIndex;
}
};
sqlParser.prototype.primaryExpression_sempred = function (localctx, predIndex) {
switch (predIndex) {
case 14:
return this.precpred(this._ctx, 5);
case 15:
return this.precpred(this._ctx, 3);
default:
throw "No predicate with index:" + predIndex;
}
};
exports.sqlParser = sqlParser;