// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/generic/SqlParser.g4 by ANTLR 4.8
// jshint ignore: start
var antlr4 = require('antlr4/index');
var SqlParserListener = require('./SqlParserListener').SqlParserListener;
var SqlParserVisitor = require('./SqlParserVisitor').SqlParserVisitor;

var grammarFileName = "SqlParser.g4";


var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964",
    "\u0003\u041a\u18f0\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004",
    "\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007",
    "\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004\f\t\f",
    "\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010\t\u0010",
    "\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013\u0004\u0014",
    "\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017\t\u0017",
    "\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a\u0004\u001b",
    "\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e\t\u001e",
    "\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#\t#\u0004",
    "$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004*\t*\u0004",
    "+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u00041\t1\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\u0004i\ti\u0004",
    "j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004p\tp\u0004",
    "q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004w\tw\u0004",
    "x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004~\t~\u0004",
    "\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004\u0082\t",
    "\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t\u0085\u0004",
    "\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004\u0089\t",
    "\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0004\u008c\t\u008c\u0004",
    "\u008d\t\u008d\u0004\u008e\t\u008e\u0004\u008f\t\u008f\u0004\u0090\t",
    "\u0090\u0004\u0091\t\u0091\u0004\u0092\t\u0092\u0004\u0093\t\u0093\u0004",
    "\u0094\t\u0094\u0004\u0095\t\u0095\u0004\u0096\t\u0096\u0004\u0097\t",
    "\u0097\u0004\u0098\t\u0098\u0004\u0099\t\u0099\u0004\u009a\t\u009a\u0004",
    "\u009b\t\u009b\u0004\u009c\t\u009c\u0004\u009d\t\u009d\u0004\u009e\t",
    "\u009e\u0004\u009f\t\u009f\u0004\u00a0\t\u00a0\u0004\u00a1\t\u00a1\u0004",
    "\u00a2\t\u00a2\u0004\u00a3\t\u00a3\u0004\u00a4\t\u00a4\u0004\u00a5\t",
    "\u00a5\u0004\u00a6\t\u00a6\u0004\u00a7\t\u00a7\u0004\u00a8\t\u00a8\u0004",
    "\u00a9\t\u00a9\u0004\u00aa\t\u00aa\u0004\u00ab\t\u00ab\u0004\u00ac\t",
    "\u00ac\u0004\u00ad\t\u00ad\u0004\u00ae\t\u00ae\u0004\u00af\t\u00af\u0004",
    "\u00b0\t\u00b0\u0004\u00b1\t\u00b1\u0004\u00b2\t\u00b2\u0004\u00b3\t",
    "\u00b3\u0004\u00b4\t\u00b4\u0004\u00b5\t\u00b5\u0004\u00b6\t\u00b6\u0004",
    "\u00b7\t\u00b7\u0004\u00b8\t\u00b8\u0004\u00b9\t\u00b9\u0004\u00ba\t",
    "\u00ba\u0004\u00bb\t\u00bb\u0004\u00bc\t\u00bc\u0004\u00bd\t\u00bd\u0004",
    "\u00be\t\u00be\u0004\u00bf\t\u00bf\u0004\u00c0\t\u00c0\u0004\u00c1\t",
    "\u00c1\u0004\u00c2\t\u00c2\u0004\u00c3\t\u00c3\u0004\u00c4\t\u00c4\u0004",
    "\u00c5\t\u00c5\u0004\u00c6\t\u00c6\u0004\u00c7\t\u00c7\u0004\u00c8\t",
    "\u00c8\u0004\u00c9\t\u00c9\u0004\u00ca\t\u00ca\u0004\u00cb\t\u00cb\u0004",
    "\u00cc\t\u00cc\u0004\u00cd\t\u00cd\u0004\u00ce\t\u00ce\u0004\u00cf\t",
    "\u00cf\u0004\u00d0\t\u00d0\u0004\u00d1\t\u00d1\u0004\u00d2\t\u00d2\u0004",
    "\u00d3\t\u00d3\u0004\u00d4\t\u00d4\u0004\u00d5\t\u00d5\u0004\u00d6\t",
    "\u00d6\u0004\u00d7\t\u00d7\u0004\u00d8\t\u00d8\u0004\u00d9\t\u00d9\u0004",
    "\u00da\t\u00da\u0004\u00db\t\u00db\u0004\u00dc\t\u00dc\u0004\u00dd\t",
    "\u00dd\u0004\u00de\t\u00de\u0004\u00df\t\u00df\u0004\u00e0\t\u00e0\u0004",
    "\u00e1\t\u00e1\u0004\u00e2\t\u00e2\u0004\u00e3\t\u00e3\u0004\u00e4\t",
    "\u00e4\u0004\u00e5\t\u00e5\u0004\u00e6\t\u00e6\u0004\u00e7\t\u00e7\u0004",
    "\u00e8\t\u00e8\u0004\u00e9\t\u00e9\u0004\u00ea\t\u00ea\u0004\u00eb\t",
    "\u00eb\u0004\u00ec\t\u00ec\u0004\u00ed\t\u00ed\u0004\u00ee\t\u00ee\u0004",
    "\u00ef\t\u00ef\u0004\u00f0\t\u00f0\u0004\u00f1\t\u00f1\u0004\u00f2\t",
    "\u00f2\u0004\u00f3\t\u00f3\u0004\u00f4\t\u00f4\u0004\u00f5\t\u00f5\u0004",
    "\u00f6\t\u00f6\u0004\u00f7\t\u00f7\u0004\u00f8\t\u00f8\u0004\u00f9\t",
    "\u00f9\u0004\u00fa\t\u00fa\u0004\u00fb\t\u00fb\u0004\u00fc\t\u00fc\u0004",
    "\u00fd\t\u00fd\u0004\u00fe\t\u00fe\u0004\u00ff\t\u00ff\u0004\u0100\t",
    "\u0100\u0004\u0101\t\u0101\u0004\u0102\t\u0102\u0004\u0103\t\u0103\u0004",
    "\u0104\t\u0104\u0004\u0105\t\u0105\u0004\u0106\t\u0106\u0004\u0107\t",
    "\u0107\u0004\u0108\t\u0108\u0004\u0109\t\u0109\u0004\u010a\t\u010a\u0004",
    "\u010b\t\u010b\u0004\u010c\t\u010c\u0004\u010d\t\u010d\u0004\u010e\t",
    "\u010e\u0004\u010f\t\u010f\u0004\u0110\t\u0110\u0004\u0111\t\u0111\u0004",
    "\u0112\t\u0112\u0004\u0113\t\u0113\u0004\u0114\t\u0114\u0004\u0115\t",
    "\u0115\u0004\u0116\t\u0116\u0004\u0117\t\u0117\u0004\u0118\t\u0118\u0004",
    "\u0119\t\u0119\u0004\u011a\t\u011a\u0004\u011b\t\u011b\u0004\u011c\t",
    "\u011c\u0004\u011d\t\u011d\u0004\u011e\t\u011e\u0004\u011f\t\u011f\u0004",
    "\u0120\t\u0120\u0004\u0121\t\u0121\u0004\u0122\t\u0122\u0004\u0123\t",
    "\u0123\u0004\u0124\t\u0124\u0004\u0125\t\u0125\u0004\u0126\t\u0126\u0004",
    "\u0127\t\u0127\u0004\u0128\t\u0128\u0004\u0129\t\u0129\u0004\u012a\t",
    "\u012a\u0004\u012b\t\u012b\u0004\u012c\t\u012c\u0004\u012d\t\u012d\u0004",
    "\u012e\t\u012e\u0004\u012f\t\u012f\u0004\u0130\t\u0130\u0004\u0131\t",
    "\u0131\u0004\u0132\t\u0132\u0004\u0133\t\u0133\u0004\u0134\t\u0134\u0004",
    "\u0135\t\u0135\u0004\u0136\t\u0136\u0004\u0137\t\u0137\u0004\u0138\t",
    "\u0138\u0004\u0139\t\u0139\u0004\u013a\t\u013a\u0004\u013b\t\u013b\u0004",
    "\u013c\t\u013c\u0004\u013d\t\u013d\u0003\u0002\u0003\u0002\u0003\u0002",
    "\u0003\u0003\u0005\u0003\u027f\n\u0003\u0003\u0003\u0005\u0003\u0282",
    "\n\u0003\u0003\u0003\u0003\u0003\u0003\u0004\u0003\u0004\u0005\u0004",
    "\u0288\n\u0004\u0003\u0004\u0005\u0004\u028b\n\u0004\u0003\u0004\u0007",
    "\u0004\u028e\n\u0004\f\u0004\u000e\u0004\u0291\u000b\u0004\u0003\u0004",
    "\u0003\u0004\u0005\u0004\u0295\n\u0004\u0003\u0004\u0005\u0004\u0298",
    "\n\u0004\u0003\u0004\u0005\u0004\u029b\n\u0004\u0003\u0005\u0003\u0005",
    "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005",
    "\u02a4\n\u0005\u0003\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003",
    "\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003",
    "\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003",
    "\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003",
    "\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003",
    "\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003",
    "\u0007\u0003\u0007\u0003\u0007\u0005\u0007\u02cb\n\u0007\u0003\b\u0003",
    "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005",
    "\b\u02d7\n\b\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t",
    "\u0003\t\u0003\t\u0005\t\u02e2\n\t\u0003\n\u0003\n\u0003\n\u0003\n\u0003",
    "\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003",
    "\n\u0003\n\u0005\n\u02f3\n\n\u0003\u000b\u0003\u000b\u0003\u000b\u0005",
    "\u000b\u02f8\n\u000b\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f",
    "\u0003\f\u0003\f\u0003\f\u0003\f\u0005\f\u0304\n\f\u0003\r\u0003\r\u0003",
    "\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003",
    "\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003",
    "\r\u0003\r\u0003\r\u0003\r\u0003\r\u0005\r\u031f\n\r\u0003\u000e\u0003",
    "\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0005",
    "\u000e\u0328\n\u000e\u0003\u000f\u0003\u000f\u0003\u000f\u0005\u000f",
    "\u032d\n\u000f\u0003\u000f\u0003\u000f\u0007\u000f\u0331\n\u000f\f\u000f",
    "\u000e\u000f\u0334\u000b\u000f\u0003\u0010\u0003\u0010\u0005\u0010\u0338",
    "\n\u0010\u0003\u0010\u0003\u0010\u0005\u0010\u033c\n\u0010\u0003\u0010",
    "\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010",
    "\u0005\u0010\u0345\n\u0010\u0003\u0010\u0005\u0010\u0348\n\u0010\u0003",
    "\u0010\u0005\u0010\u034b\n\u0010\u0003\u0010\u0003\u0010\u0005\u0010",
    "\u034f\n\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0011\u0003",
    "\u0011\u0005\u0011\u0356\n\u0011\u0003\u0011\u0005\u0011\u0359\n\u0011",
    "\u0003\u0011\u0003\u0011\u0003\u0011\u0005\u0011\u035e\n\u0011\u0003",
    "\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0007\u0011\u0364\n\u0011",
    "\f\u0011\u000e\u0011\u0367\u000b\u0011\u0003\u0011\u0003\u0011\u0005",
    "\u0011\u036b\n\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0005\u0011",
    "\u0370\n\u0011\u0003\u0011\u0007\u0011\u0373\n\u0011\f\u0011\u000e\u0011",
    "\u0376\u000b\u0011\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003",
    "\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0005\u0012\u0381",
    "\n\u0012\u0003\u0012\u0005\u0012\u0384\n\u0012\u0003\u0012\u0003\u0012",
    "\u0005\u0012\u0388\n\u0012\u0003\u0012\u0005\u0012\u038b\n\u0012\u0003",
    "\u0012\u0003\u0012\u0005\u0012\u038f\n\u0012\u0003\u0012\u0005\u0012",
    "\u0392\n\u0012\u0003\u0012\u0003\u0012\u0005\u0012\u0396\n\u0012\u0003",
    "\u0012\u0005\u0012\u0399\n\u0012\u0003\u0012\u0005\u0012\u039c\n\u0012",
    "\u0003\u0012\u0003\u0012\u0005\u0012\u03a0\n\u0012\u0003\u0012\u0005",
    "\u0012\u03a3\n\u0012\u0003\u0012\u0003\u0012\u0005\u0012\u03a7\n\u0012",
    "\u0003\u0012\u0003\u0012\u0003\u0013\u0003\u0013\u0005\u0013\u03ad\n",
    "\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0005\u0013\u03b3",
    "\n\u0013\u0003\u0013\u0003\u0013\u0007\u0013\u03b7\n\u0013\f\u0013\u000e",
    "\u0013\u03ba\u000b\u0013\u0003\u0013\u0003\u0013\u0007\u0013\u03be\n",
    "\u0013\f\u0013\u000e\u0013\u03c1\u000b\u0013\u0003\u0013\u0003\u0013",
    "\u0003\u0014\u0003\u0014\u0005\u0014\u03c7\n\u0014\u0003\u0014\u0003",
    "\u0014\u0003\u0014\u0003\u0014\u0005\u0014\u03cd\n\u0014\u0003\u0014",
    "\u0003\u0014\u0007\u0014\u03d1\n\u0014\f\u0014\u000e\u0014\u03d4\u000b",
    "\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0007\u0014\u03da",
    "\n\u0014\f\u0014\u000e\u0014\u03dd\u000b\u0014\u0003\u0014\u0003\u0014",
    "\u0005\u0014\u03e1\n\u0014\u0003\u0015\u0003\u0015\u0003\u0015\u0003",
    "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003",
    "\u0015\u0003\u0015\u0003\u0015\u0007\u0015\u03ef\n\u0015\f\u0015\u000e",
    "\u0015\u03f2\u000b\u0015\u0003\u0015\u0003\u0015\u0003\u0016\u0003\u0016",
    "\u0005\u0016\u03f8\n\u0016\u0003\u0016\u0003\u0016\u0005\u0016\u03fc",
    "\n\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016",
    "\u0003\u0016\u0003\u0016\u0003\u0016\u0005\u0016\u0406\n\u0016\u0003",
    "\u0016\u0003\u0016\u0005\u0016\u040a\n\u0016\u0003\u0016\u0003\u0016",
    "\u0005\u0016\u040e\n\u0016\u0003\u0016\u0003\u0016\u0005\u0016\u0412",
    "\n\u0016\u0003\u0016\u0003\u0016\u0005\u0016\u0416\n\u0016\u0003\u0016",
    "\u0007\u0016\u0419\n\u0016\f\u0016\u000e\u0016\u041c\u000b\u0016\u0005",
    "\u0016\u041e\n\u0016\u0003\u0016\u0005\u0016\u0421\n\u0016\u0003\u0016",
    "\u0005\u0016\u0424\n\u0016\u0003\u0016\u0005\u0016\u0427\n\u0016\u0003",
    "\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0005\u0016\u042d\n\u0016",
    "\u0003\u0016\u0003\u0016\u0005\u0016\u0431\n\u0016\u0003\u0016\u0003",
    "\u0016\u0003\u0016\u0003\u0016\u0005\u0016\u0437\n\u0016\u0003\u0016",
    "\u0007\u0016\u043a\n\u0016\f\u0016\u000e\u0016\u043d\u000b\u0016\u0005",
    "\u0016\u043f\n\u0016\u0003\u0016\u0005\u0016\u0442\n\u0016\u0005\u0016",
    "\u0444\n\u0016\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003",
    "\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0005\u0017\u044f",
    "\n\u0017\u0003\u0017\u0003\u0017\u0005\u0017\u0453\n\u0017\u0003\u0017",
    "\u0005\u0017\u0456\n\u0017\u0003\u0018\u0003\u0018\u0003\u0018\u0003",
    "\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003",
    "\u0018\u0003\u0018\u0003\u0018\u0005\u0018\u0464\n\u0018\u0003\u0018",
    "\u0005\u0018\u0467\n\u0018\u0003\u0018\u0003\u0018\u0005\u0018\u046b",
    "\n\u0018\u0003\u0018\u0005\u0018\u046e\n\u0018\u0003\u0018\u0003\u0018",
    "\u0005\u0018\u0472\n\u0018\u0003\u0018\u0005\u0018\u0475\n\u0018\u0003",
    "\u0018\u0003\u0018\u0005\u0018\u0479\n\u0018\u0003\u0018\u0005\u0018",
    "\u047c\n\u0018\u0003\u0018\u0003\u0018\u0005\u0018\u0480\n\u0018\u0003",
    "\u0018\u0005\u0018\u0483\n\u0018\u0003\u0018\u0005\u0018\u0486\n\u0018",
    "\u0003\u0018\u0003\u0018\u0005\u0018\u048a\n\u0018\u0003\u0018\u0005",
    "\u0018\u048d\n\u0018\u0003\u0018\u0003\u0018\u0005\u0018\u0491\n\u0018",
    "\u0003\u0018\u0003\u0018\u0003\u0019\u0003\u0019\u0005\u0019\u0497\n",
    "\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003",
    "\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0005",
    "\u0019\u04a4\n\u0019\u0003\u0019\u0003\u0019\u0003\u001a\u0003\u001a",
    "\u0003\u001a\u0005\u001a\u04ab\n\u001a\u0003\u001a\u0003\u001a\u0003",
    "\u001a\u0005\u001a\u04b0\n\u001a\u0003\u001a\u0005\u001a\u04b3\n\u001a",
    "\u0003\u001a\u0003\u001a\u0003\u001a\u0005\u001a\u04b8\n\u001a\u0003",
    "\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0005",
    "\u001a\u04c0\n\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a",
    "\u0005\u001a\u04c6\n\u001a\u0003\u001a\u0003\u001a\u0005\u001a\u04ca",
    "\n\u001a\u0003\u001b\u0005\u001b\u04cd\n\u001b\u0003\u001b\u0003\u001b",
    "\u0003\u001b\u0005\u001b\u04d2\n\u001b\u0003\u001b\u0005\u001b\u04d5",
    "\n\u001b\u0003\u001b\u0003\u001b\u0005\u001b\u04d9\n\u001b\u0003\u001b",
    "\u0005\u001b\u04dc\n\u001b\u0003\u001b\u0003\u001b\u0005\u001b\u04e0",
    "\n\u001b\u0003\u001b\u0005\u001b\u04e3\n\u001b\u0003\u001c\u0003\u001c",
    "\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0005\u001c\u04eb\n",
    "\u001c\u0005\u001c\u04ed\n\u001c\u0003\u001d\u0003\u001d\u0003\u001d",
    "\u0007\u001d\u04f2\n\u001d\f\u001d\u000e\u001d\u04f5\u000b\u001d\u0003",
    "\u001d\u0003\u001d\u0003\u001d\u0005\u001d\u04fa\n\u001d\u0003\u001d",
    "\u0003\u001d\u0003\u001d\u0003\u001d\u0007\u001d\u0500\n\u001d\f\u001d",
    "\u000e\u001d\u0503\u000b\u001d\u0005\u001d\u0505\n\u001d\u0003\u001d",
    "\u0003\u001d\u0003\u001d\u0007\u001d\u050a\n\u001d\f\u001d\u000e\u001d",
    "\u050d\u000b\u001d\u0005\u001d\u050f\n\u001d\u0005\u001d\u0511\n\u001d",
    "\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0005\u001e\u0517\n",
    "\u001e\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0005\u001f\u051d",
    "\n\u001f\u0003\u001f\u0003\u001f\u0003 \u0003 \u0003 \u0003 \u0003 ",
    "\u0003 \u0003 \u0003 \u0003 \u0003 \u0003 \u0003 \u0003 \u0005 \u052e",
    "\n \u0003!\u0003!\u0003!\u0003!\u0003!\u0005!\u0535\n!\u0003\"\u0003",
    "\"\u0003\"\u0003#\u0003#\u0005#\u053c\n#\u0003#\u0003#\u0003#\u0003",
    "#\u0003#\u0003#\u0003#\u0003#\u0003#\u0005#\u0547\n#\u0003$\u0005$\u054a",
    "\n$\u0003$\u0003$\u0003$\u0003%\u0003%\u0003%\u0003&\u0003&\u0003&\u0003",
    "&\u0003&\u0005&\u0557\n&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003",
    "&\u0003&\u0003&\u0003&\u0003&\u0005&\u0564\n&\u0003&\u0003&\u0003&\u0005",
    "&\u0569\n&\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003",
    "\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0005\'\u0579\n\'",
    "\u0003(\u0003(\u0003(\u0003(\u0007(\u057f\n(\f(\u000e(\u0582\u000b(",
    "\u0003(\u0003(\u0003)\u0003)\u0003)\u0003)\u0003)\u0005)\u058b\n)\u0003",
    "*\u0003*\u0007*\u058f\n*\f*\u000e*\u0592\u000b*\u0003+\u0003+\u0003",
    "+\u0003+\u0003+\u0003+\u0003+\u0005+\u059b\n+\u0003+\u0005+\u059e\n",
    "+\u0003+\u0003+\u0003+\u0005+\u05a3\n+\u0003+\u0003+\u0003+\u0003+\u0003",
    "+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0005+\u05b0\n+\u0003+\u0003",
    "+\u0003+\u0003+\u0003+\u0005+\u05b7\n+\u0003+\u0003+\u0003+\u0003+\u0003",
    "+\u0005+\u05be\n+\u0005+\u05c0\n+\u0003+\u0003+\u0003+\u0003+\u0003",
    "+\u0005+\u05c7\n+\u0003,\u0003,\u0005,\u05cb\n,\u0005,\u05cd\n,\u0003",
    ",\u0003,\u0003,\u0005,\u05d2\n,\u0003,\u0005,\u05d5\n,\u0003,\u0003",
    ",\u0007,\u05d9\n,\f,\u000e,\u05dc\u000b,\u0003,\u0003,\u0005,\u05e0",
    "\n,\u0005,\u05e2\n,\u0003,\u0003,\u0005,\u05e6\n,\u0003,\u0005,\u05e9",
    "\n,\u0003,\u0005,\u05ec\n,\u0003,\u0003,\u0007,\u05f0\n,\f,\u000e,\u05f3",
    "\u000b,\u0003,\u0003,\u0005,\u05f7\n,\u0005,\u05f9\n,\u0003,\u0003,",
    "\u0003,\u0005,\u05fe\n,\u0003,\u0003,\u0003,\u0003,\u0003,\u0005,\u0605",
    "\n,\u0005,\u0607\n,\u0003,\u0003,\u0003,\u0003,\u0003,\u0005,\u060e",
    "\n,\u0003-\u0003-\u0003-\u0005-\u0613\n-\u0003-\u0003-\u0005-\u0617",
    "\n-\u0003-\u0005-\u061a\n-\u0003.\u0003.\u0003.\u0003.\u0003.\u0003",
    ".\u0005.\u0622\n.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0005.\u062a",
    "\n.\u0005.\u062c\n.\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0005",
    "/\u0634\n/\u00030\u00030\u00050\u0638\n0\u00030\u00050\u063b\n0\u0003",
    "0\u00030\u00070\u063f\n0\f0\u000e0\u0642\u000b0\u00030\u00030\u0005",
    "0\u0646\n0\u00030\u00050\u0649\n0\u00030\u00030\u00070\u064d\n0\f0\u000e",
    "0\u0650\u000b0\u00050\u0652\n0\u00031\u00031\u00051\u0656\n1\u00031",
    "\u00031\u00031\u00051\u065b\n1\u00031\u00031\u00031\u00051\u0660\n1",
    "\u00031\u00031\u00051\u0664\n1\u00031\u00031\u00031\u00051\u0669\n1",
    "\u00031\u00051\u066c\n1\u00031\u00031\u00051\u0670\n1\u00031\u00031",
    "\u00051\u0674\n1\u00031\u00031\u00051\u0678\n1\u00031\u00031\u00051",
    "\u067c\n1\u00031\u00031\u00031\u00051\u0681\n1\u00031\u00031\u00031",
    "\u00051\u0686\n1\u00031\u00031\u00031\u00051\u068b\n1\u00031\u00031",
    "\u00031\u00031\u00051\u0691\n1\u00031\u00031\u00031\u00051\u0696\n1",
    "\u00031\u00031\u00031\u00051\u069b\n1\u00031\u00031\u00031\u00031\u0005",
    "1\u06a1\n1\u00031\u00031\u00031\u00051\u06a6\n1\u00031\u00031\u0003",
    "1\u00051\u06ab\n1\u00031\u00031\u00031\u00051\u06b0\n1\u00031\u0003",
    "1\u00031\u00051\u06b5\n1\u00031\u00031\u00031\u00051\u06ba\n1\u0003",
    "1\u00031\u00031\u00051\u06bf\n1\u00031\u00031\u00031\u00051\u06c4\n",
    "1\u00031\u00031\u00031\u00051\u06c9\n1\u00031\u00031\u00031\u00051\u06ce",
    "\n1\u00031\u00031\u00031\u00051\u06d3\n1\u00031\u00031\u00031\u0003",
    "1\u00051\u06d9\n1\u00031\u00031\u00031\u00051\u06de\n1\u00031\u0003",
    "1\u00031\u00031\u00051\u06e4\n1\u00032\u00032\u00032\u00033\u00033\u0003",
    "3\u00033\u00033\u00053\u06ee\n3\u00033\u00033\u00033\u00033\u00033\u0005",
    "3\u06f5\n3\u00053\u06f7\n3\u00033\u00033\u00033\u00033\u00073\u06fd",
    "\n3\f3\u000e3\u0700\u000b3\u00033\u00033\u00053\u0704\n3\u00034\u0005",
    "4\u0707\n4\u00034\u00034\u00034\u00034\u00034\u00034\u00054\u070f\n",
    "4\u00034\u00034\u00034\u00034\u00054\u0715\n4\u00034\u00034\u00034\u0003",
    "4\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u0003",
    "4\u00054\u0725\n4\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u0003",
    "4\u00034\u00034\u00054\u0731\n4\u00054\u0733\n4\u00035\u00055\u0736",
    "\n5\u00035\u00035\u00035\u00035\u00035\u00035\u00055\u073e\n5\u0003",
    "5\u00035\u00035\u00035\u00055\u0744\n5\u00035\u00035\u00035\u00035\u0005",
    "5\u074a\n5\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u0003",
    "6\u00076\u0755\n6\f6\u000e6\u0758\u000b6\u00036\u00036\u00076\u075c",
    "\n6\f6\u000e6\u075f\u000b6\u00036\u00036\u00036\u00076\u0764\n6\f6\u000e",
    "6\u0767\u000b6\u00056\u0769\n6\u00036\u00036\u00036\u00036\u00036\u0003",
    "6\u00036\u00076\u0772\n6\f6\u000e6\u0775\u000b6\u00036\u00036\u0003",
    "6\u00076\u077a\n6\f6\u000e6\u077d\u000b6\u00056\u077f\n6\u00036\u0003",
    "6\u00036\u00036\u00036\u00036\u00036\u00036\u00076\u0789\n6\f6\u000e",
    "6\u078c\u000b6\u00036\u00036\u00076\u0790\n6\f6\u000e6\u0793\u000b6",
    "\u00036\u00036\u00036\u00076\u0798\n6\f6\u000e6\u079b\u000b6\u00056",
    "\u079d\n6\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u0007",
    "6\u07a7\n6\f6\u000e6\u07aa\u000b6\u00036\u00036\u00076\u07ae\n6\f6\u000e",
    "6\u07b1\u000b6\u00036\u00036\u00036\u00076\u07b6\n6\f6\u000e6\u07b9",
    "\u000b6\u00056\u07bb\n6\u00036\u00036\u00036\u00076\u07c0\n6\f6\u000e",
    "6\u07c3\u000b6\u00036\u00036\u00036\u00076\u07c8\n6\f6\u000e6\u07cb",
    "\u000b6\u00056\u07cd\n6\u00056\u07cf\n6\u00037\u00037\u00037\u00057",
    "\u07d4\n7\u00038\u00038\u00038\u00038\u00068\u07da\n8\r8\u000e8\u07db",
    "\u00038\u00038\u00039\u00039\u00039\u00079\u07e3\n9\f9\u000e9\u07e6",
    "\u000b9\u0003:\u0005:\u07e9\n:\u0003:\u0003:\u0005:\u07ed\n:\u0003:",
    "\u0003:\u0003:\u0005:\u07f2\n:\u0003:\u0003:\u0003:\u0003:\u0005:\u07f8",
    "\n:\u0003:\u0003:\u0003:\u0003:\u0005:\u07fe\n:\u0003:\u0003:\u0003",
    ":\u0005:\u0803\n:\u0003:\u0003:\u0003:\u0005:\u0808\n:\u0003:\u0003",
    ":\u0003:\u0005:\u080d\n:\u0003:\u0003:\u0003:\u0005:\u0812\n:\u0003",
    ":\u0005:\u0815\n:\u0003;\u0003;\u0003;\u0005;\u081a\n;\u0003;\u0006",
    ";\u081d\n;\r;\u000e;\u081e\u0003;\u0003;\u0003;\u0003;\u0003;\u0003",
    ";\u0003;\u0003;\u0005;\u0829\n;\u0003<\u0003<\u0005<\u082d\n<\u0003",
    "<\u0003<\u0003<\u0003<\u0003<\u0005<\u0834\n<\u0003<\u0003<\u0003<\u0005",
    "<\u0839\n<\u0003<\u0005<\u083c\n<\u0003<\u0003<\u0003<\u0005<\u0841",
    "\n<\u0003<\u0005<\u0844\n<\u0003<\u0003<\u0005<\u0848\n<\u0003<\u0003",
    "<\u0005<\u084c\n<\u0003=\u0003=\u0003=\u0003=\u0007=\u0852\n=\f=\u000e",
    "=\u0855\u000b=\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003",
    "?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0005?\u0867",
    "\n?\u0003?\u0005?\u086a\n?\u0003?\u0005?\u086d\n?\u0003?\u0003?\u0005",
    "?\u0871\n?\u0003?\u0003?\u0003@\u0003@\u0003@\u0003@\u0007@\u0879\n",
    "@\f@\u000e@\u087c\u000b@\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003",
    "A\u0003A\u0007A\u0886\nA\fA\u000eA\u0889\u000bA\u0003A\u0003A\u0003",
    "B\u0003B\u0005B\u088f\nB\u0003B\u0005B\u0892\nB\u0003B\u0003B\u0003",
    "B\u0003B\u0003B\u0007B\u0899\nB\fB\u000eB\u089c\u000bB\u0005B\u089e",
    "\nB\u0003B\u0005B\u08a1\nB\u0003C\u0003C\u0003C\u0003C\u0003C\u0003",
    "C\u0003C\u0003C\u0003C\u0005C\u08ac\nC\u0003C\u0005C\u08af\nC\u0003",
    "C\u0003C\u0005C\u08b3\nC\u0003C\u0003C\u0003D\u0003D\u0003D\u0003D\u0005",
    "D\u08bb\nD\u0003D\u0005D\u08be\nD\u0003D\u0003D\u0003D\u0005D\u08c3",
    "\nD\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0005D\u08cb\nD\u0003",
    "D\u0003D\u0003D\u0003D\u0005D\u08d1\nD\u0003D\u0003D\u0005D\u08d5\n",
    "D\u0003E\u0003E\u0005E\u08d9\nE\u0003E\u0007E\u08dc\nE\fE\u000eE\u08df",
    "\u000bE\u0003E\u0003E\u0005E\u08e3\nE\u0003E\u0003E\u0003E\u0003E\u0003",
    "E\u0005E\u08ea\nE\u0003E\u0003E\u0005E\u08ee\nE\u0003E\u0003E\u0003",
    "E\u0003E\u0003E\u0003E\u0003E\u0007E\u08f7\nE\fE\u000eE\u08fa\u000b",
    "E\u0003E\u0003E\u0003E\u0003E\u0003E\u0005E\u0901\nE\u0003E\u0005E\u0904",
    "\nE\u0003E\u0003E\u0007E\u0908\nE\fE\u000eE\u090b\u000bE\u0003E\u0003",
    "E\u0003E\u0005E\u0910\nE\u0005E\u0912\nE\u0003E\u0003E\u0003E\u0005",
    "E\u0917\nE\u0003E\u0005E\u091a\nE\u0003E\u0003E\u0007E\u091e\nE\fE\u000e",
    "E\u0921\u000bE\u0003E\u0003E\u0003E\u0005E\u0926\nE\u0005E\u0928\nE",
    "\u0003E\u0003E\u0005E\u092c\nE\u0003E\u0005E\u092f\nE\u0003E\u0005E",
    "\u0932\nE\u0003E\u0003E\u0007E\u0936\nE\fE\u000eE\u0939\u000bE\u0003",
    "E\u0003E\u0003E\u0005E\u093e\nE\u0003E\u0005E\u0941\nE\u0003E\u0003",
    "E\u0007E\u0945\nE\fE\u000eE\u0948\u000bE\u0003E\u0003E\u0003E\u0005",
    "E\u094d\nE\u0005E\u094f\nE\u0003E\u0003E\u0003E\u0005E\u0954\nE\u0003",
    "E\u0003E\u0003E\u0003E\u0003E\u0003E\u0005E\u095c\nE\u0005E\u095e\n",
    "E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0005E\u0967\nE\u0003",
    "E\u0003E\u0003E\u0005E\u096c\nE\u0003E\u0003E\u0003E\u0003E\u0003E\u0003",
    "E\u0005E\u0974\nE\u0003E\u0003E\u0005E\u0978\nE\u0003E\u0003E\u0003",
    "E\u0003E\u0003E\u0003E\u0005E\u0980\nE\u0003E\u0003E\u0003E\u0003E\u0003",
    "E\u0003E\u0003E\u0003E\u0005E\u098a\nE\u0003E\u0003E\u0003E\u0005E\u098f",
    "\nE\u0003E\u0003E\u0003E\u0003E\u0003E\u0005E\u0996\nE\u0003E\u0003",
    "E\u0005E\u099a\nE\u0003E\u0003E\u0005E\u099e\nE\u0003E\u0003E\u0003",
    "E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003",
    "E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003",
    "E\u0003E\u0003E\u0003E\u0003E\u0005E\u09bb\nE\u0003E\u0003E\u0005E\u09bf",
    "\nE\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003",
    "E\u0005E\u09cb\nE\u0003E\u0005E\u09ce\nE\u0003E\u0003E\u0003E\u0003",
    "E\u0003E\u0003E\u0003E\u0005E\u09d7\nE\u0003E\u0003E\u0003E\u0003E\u0003",
    "E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0007E\u09e6",
    "\nE\fE\u000eE\u09e9\u000bE\u0003E\u0003E\u0003E\u0003E\u0003E\u0003",
    "E\u0003E\u0003E\u0003E\u0005E\u09f4\nE\u0003E\u0003E\u0003E\u0003E\u0003",
    "E\u0005E\u09fb\nE\u0003E\u0003E\u0003E\u0003E\u0003E\u0005E\u0a02\n",
    "E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003",
    "E\u0003E\u0007E\u0a0f\nE\fE\u000eE\u0a12\u000bE\u0003E\u0003E\u0003",
    "E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0005E\u0a1e\nE\u0003",
    "E\u0003E\u0003E\u0003E\u0005E\u0a24\nE\u0003E\u0003E\u0003E\u0003E\u0005",
    "E\u0a2a\nE\u0003E\u0003E\u0003E\u0003E\u0005E\u0a30\nE\u0003E\u0003",
    "E\u0003E\u0003E\u0005E\u0a36\nE\u0003E\u0003E\u0003E\u0003E\u0005E\u0a3c",
    "\nE\u0003E\u0003E\u0003E\u0003E\u0005E\u0a42\nE\u0003F\u0003F\u0003",
    "F\u0005F\u0a47\nF\u0003F\u0003F\u0003G\u0003G\u0003G\u0005G\u0a4e\n",
    "G\u0003G\u0003G\u0003H\u0003H\u0003H\u0005H\u0a55\nH\u0003H\u0003H\u0003",
    "H\u0003H\u0003H\u0005H\u0a5c\nH\u0003H\u0003H\u0003H\u0005H\u0a61\n",
    "H\u0003H\u0007H\u0a64\nH\fH\u000eH\u0a67\u000bH\u0003I\u0003I\u0003",
    "I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003J\u0003J\u0003J\u0005J\u0a74",
    "\nJ\u0003J\u0003J\u0003K\u0003K\u0003K\u0005K\u0a7b\nK\u0003K\u0003",
    "K\u0003L\u0003L\u0003L\u0005L\u0a82\nL\u0003L\u0003L\u0003M\u0003M\u0005",
    "M\u0a88\nM\u0003M\u0003M\u0005M\u0a8c\nM\u0003M\u0003M\u0005M\u0a90",
    "\nM\u0003N\u0003N\u0003N\u0003N\u0003N\u0005N\u0a97\nN\u0003N\u0005",
    "N\u0a9a\nN\u0003O\u0003O\u0003O\u0005O\u0a9f\nO\u0003O\u0003O\u0003",
    "P\u0003P\u0003P\u0005P\u0aa6\nP\u0003P\u0003P\u0003P\u0007P\u0aab\n",
    "P\fP\u000eP\u0aae\u000bP\u0003P\u0005P\u0ab1\nP\u0003Q\u0003Q\u0003",
    "Q\u0003Q\u0003Q\u0007Q\u0ab8\nQ\fQ\u000eQ\u0abb\u000bQ\u0003R\u0003",
    "R\u0003R\u0003R\u0003S\u0003S\u0005S\u0ac3\nS\u0003S\u0003S\u0003T\u0003",
    "T\u0003T\u0003T\u0003T\u0005T\u0acc\nT\u0003T\u0005T\u0acf\nT\u0003",
    "U\u0003U\u0005U\u0ad3\nU\u0003V\u0003V\u0003V\u0003W\u0003W\u0003W\u0003",
    "W\u0005W\u0adc\nW\u0003X\u0003X\u0005X\u0ae0\nX\u0003X\u0005X\u0ae3",
    "\nX\u0003X\u0005X\u0ae6\nX\u0003X\u0003X\u0003X\u0003X\u0005X\u0aec",
    "\nX\u0003X\u0005X\u0aef\nX\u0003X\u0003X\u0003X\u0003X\u0005X\u0af5",
    "\nX\u0003X\u0003X\u0003X\u0003X\u0003X\u0007X\u0afc\nX\fX\u000eX\u0aff",
    "\u000bX\u0005X\u0b01\nX\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003",
    "X\u0007X\u0b0a\nX\fX\u000eX\u0b0d\u000bX\u0005X\u0b0f\nX\u0003Y\u0003",
    "Y\u0003Y\u0005Y\u0b14\nY\u0003Y\u0005Y\u0b17\nY\u0003Y\u0003Y\u0003",
    "Y\u0005Y\u0b1c\nY\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003",
    "Y\u0005Y\u0b26\nY\u0003Y\u0003Y\u0003Y\u0005Y\u0b2b\nY\u0003Y\u0003",
    "Y\u0006Y\u0b2f\nY\rY\u000eY\u0b30\u0005Y\u0b33\nY\u0003Y\u0003Y\u0006",
    "Y\u0b37\nY\rY\u000eY\u0b38\u0005Y\u0b3b\nY\u0003Y\u0003Y\u0003Y\u0003",
    "Y\u0005Y\u0b41\nY\u0003Y\u0003Y\u0003Y\u0003Y\u0007Y\u0b47\nY\fY\u000e",
    "Y\u0b4a\u000bY\u0003Y\u0003Y\u0005Y\u0b4e\nY\u0003Y\u0003Y\u0003Y\u0003",
    "Y\u0007Y\u0b54\nY\fY\u000eY\u0b57\u000bY\u0005Y\u0b59\nY\u0003Z\u0003",
    "Z\u0003Z\u0005Z\u0b5e\nZ\u0003Z\u0005Z\u0b61\nZ\u0003Z\u0003Z\u0003",
    "Z\u0005Z\u0b66\nZ\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0005Z\u0b6e",
    "\nZ\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0005Z\u0b76\nZ\u0003",
    "Z\u0003Z\u0003Z\u0003Z\u0005Z\u0b7c\nZ\u0003Z\u0003Z\u0003Z\u0003Z\u0007",
    "Z\u0b82\nZ\fZ\u000eZ\u0b85\u000bZ\u0003Z\u0003Z\u0005Z\u0b89\nZ\u0003",
    "Z\u0003Z\u0003Z\u0003Z\u0007Z\u0b8f\nZ\fZ\u000eZ\u0b92\u000bZ\u0005",
    "Z\u0b94\nZ\u0003[\u0003[\u0005[\u0b98\n[\u0003[\u0005[\u0b9b\n[\u0003",
    "[\u0003[\u0003[\u0003[\u0003[\u0003[\u0005[\u0ba3\n[\u0003[\u0003[\u0003",
    "[\u0003[\u0005[\u0ba9\n[\u0003[\u0003[\u0003[\u0003[\u0003[\u0007[\u0bb0",
    "\n[\f[\u000e[\u0bb3\u000b[\u0005[\u0bb5\n[\u0003\\\u0003\\\u0005\\\u0bb9",
    "\n\\\u0003\\\u0003\\\u0005\\\u0bbd\n\\\u0003\\\u0003\\\u0006\\\u0bc1",
    "\n\\\r\\\u000e\\\u0bc2\u0003\\\u0003\\\u0005\\\u0bc7\n\\\u0003\\\u0003",
    "\\\u0005\\\u0bcb\n\\\u0005\\\u0bcd\n\\\u0003\\\u0005\\\u0bd0\n\\\u0003",
    "\\\u0005\\\u0bd3\n\\\u0003\\\u0005\\\u0bd6\n\\\u0003\\\u0003\\\u0006",
    "\\\u0bda\n\\\r\\\u000e\\\u0bdb\u0003\\\u0003\\\u0005\\\u0be0\n\\\u0003",
    "\\\u0005\\\u0be3\n\\\u0003\\\u0005\\\u0be6\n\\\u0003\\\u0005\\\u0be9",
    "\n\\\u0003\\\u0005\\\u0bec\n\\\u0005\\\u0bee\n\\\u0003]\u0003]\u0005",
    "]\u0bf2\n]\u0003^\u0003^\u0003^\u0003^\u0005^\u0bf8\n^\u0003^\u0003",
    "^\u0003^\u0003^\u0005^\u0bfe\n^\u0003^\u0007^\u0c01\n^\f^\u000e^\u0c04",
    "\u000b^\u0005^\u0c06\n^\u0003_\u0003_\u0003_\u0003_\u0005_\u0c0c\n_",
    "\u0003`\u0003`\u0005`\u0c10\n`\u0003a\u0003a\u0003a\u0003a\u0003a\u0003",
    "a\u0005a\u0c18\na\u0003b\u0003b\u0005b\u0c1c\nb\u0003b\u0005b\u0c1f",
    "\nb\u0003b\u0005b\u0c22\nb\u0003b\u0003b\u0003b\u0003b\u0003b\u0003",
    "b\u0003b\u0005b\u0c2b\nb\u0003b\u0003b\u0005b\u0c2f\nb\u0003b\u0005",
    "b\u0c32\nb\u0003b\u0003b\u0005b\u0c36\nb\u0003c\u0003c\u0005c\u0c3a",
    "\nc\u0003c\u0005c\u0c3d\nc\u0003c\u0005c\u0c40\nc\u0003c\u0003c\u0003",
    "c\u0005c\u0c45\nc\u0003c\u0003c\u0003c\u0003c\u0005c\u0c4b\nc\u0007",
    "c\u0c4d\nc\fc\u000ec\u0c50\u000bc\u0003c\u0003c\u0003c\u0003c\u0003",
    "c\u0003c\u0003c\u0005c\u0c59\nc\u0003c\u0003c\u0003c\u0003c\u0005c\u0c5f",
    "\nc\u0007c\u0c61\nc\fc\u000ec\u0c64\u000bc\u0003c\u0003c\u0003c\u0005",
    "c\u0c69\nc\u0003c\u0003c\u0005c\u0c6d\nc\u0003d\u0003d\u0003d\u0003",
    "d\u0005d\u0c73\nd\u0003d\u0005d\u0c76\nd\u0003e\u0003e\u0003e\u0003",
    "e\u0003e\u0003e\u0003e\u0003e\u0003e\u0003e\u0005e\u0c82\ne\u0003e\u0003",
    "e\u0005e\u0c86\ne\u0003e\u0003e\u0005e\u0c8a\ne\u0003f\u0003f\u0003",
    "f\u0003f\u0003f\u0003f\u0005f\u0c92\nf\u0003f\u0003f\u0005f\u0c96\n",
    "f\u0003g\u0003g\u0003g\u0003g\u0003h\u0003h\u0005h\u0c9e\nh\u0003h\u0005",
    "h\u0ca1\nh\u0003h\u0003h\u0005h\u0ca5\nh\u0003h\u0005h\u0ca8\nh\u0003",
    "h\u0003h\u0003h\u0003h\u0007h\u0cae\nh\fh\u000eh\u0cb1\u000bh\u0003",
    "h\u0003h\u0005h\u0cb5\nh\u0003h\u0005h\u0cb8\nh\u0003h\u0005h\u0cbb",
    "\nh\u0003i\u0003i\u0005i\u0cbf\ni\u0003i\u0005i\u0cc2\ni\u0003i\u0003",
    "i\u0003i\u0003i\u0003i\u0007i\u0cc9\ni\fi\u000ei\u0ccc\u000bi\u0003",
    "i\u0003i\u0005i\u0cd0\ni\u0003j\u0003j\u0003j\u0003j\u0003j\u0007j\u0cd7",
    "\nj\fj\u000ej\u0cda\u000bj\u0003k\u0003k\u0005k\u0cde\nk\u0003l\u0003",
    "l\u0003l\u0007l\u0ce3\nl\fl\u000el\u0ce6\u000bl\u0003m\u0003m\u0007",
    "m\u0cea\nm\fm\u000em\u0ced\u000bm\u0003m\u0003m\u0003m\u0007m\u0cf2",
    "\nm\fm\u000em\u0cf5\u000bm\u0003m\u0003m\u0005m\u0cf9\nm\u0003n\u0003",
    "n\u0003n\u0003n\u0003n\u0003n\u0005n\u0d01\nn\u0003n\u0005n\u0d04\n",
    "n\u0003n\u0005n\u0d07\nn\u0003n\u0003n\u0003n\u0007n\u0d0c\nn\fn\u000e",
    "n\u0d0f\u000bn\u0005n\u0d11\nn\u0003n\u0003n\u0003n\u0003n\u0003n\u0005",
    "n\u0d18\nn\u0003n\u0005n\u0d1b\nn\u0003n\u0003n\u0003n\u0003n\u0003",
    "n\u0003n\u0005n\u0d23\nn\u0003o\u0003o\u0003o\u0003o\u0005o\u0d29\n",
    "o\u0003o\u0003o\u0003o\u0003o\u0003p\u0003p\u0003p\u0003p\u0003p\u0005",
    "p\u0d34\np\u0003q\u0005q\u0d37\nq\u0003q\u0003q\u0003q\u0003q\u0003",
    "q\u0003q\u0003q\u0003q\u0003q\u0005q\u0d42\nq\u0003q\u0003q\u0003q\u0003",
    "q\u0005q\u0d48\nq\u0003q\u0003q\u0005q\u0d4c\nq\u0003q\u0003q\u0003",
    "q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0005q\u0d57\nq\u0003q\u0003",
    "q\u0003q\u0005q\u0d5c\nq\u0005q\u0d5e\nq\u0003q\u0003q\u0005q\u0d62",
    "\nq\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0005r\u0d6c",
    "\nr\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0005s\u0d76",
    "\ns\u0003t\u0003t\u0007t\u0d7a\nt\ft\u000et\u0d7d\u000bt\u0003t\u0003",
    "t\u0005t\u0d81\nt\u0003t\u0005t\u0d84\nt\u0003t\u0005t\u0d87\nt\u0003",
    "t\u0005t\u0d8a\nt\u0003t\u0003t\u0007t\u0d8e\nt\ft\u000et\u0d91\u000b",
    "t\u0003t\u0003t\u0005t\u0d95\nt\u0003t\u0005t\u0d98\nt\u0003t\u0005",
    "t\u0d9b\nt\u0003t\u0005t\u0d9e\nt\u0005t\u0da0\nt\u0003u\u0003u\u0007",
    "u\u0da4\nu\fu\u000eu\u0da7\u000bu\u0003u\u0003u\u0005u\u0dab\nu\u0003",
    "u\u0005u\u0dae\nu\u0003u\u0005u\u0db1\nu\u0003v\u0003v\u0005v\u0db5",
    "\nv\u0003v\u0003v\u0003w\u0003w\u0005w\u0dbb\nw\u0003w\u0003w\u0005",
    "w\u0dbf\nw\u0003x\u0003x\u0003x\u0003x\u0003x\u0003x\u0003x\u0003x\u0005",
    "x\u0dc9\nx\u0003y\u0003y\u0005y\u0dcd\ny\u0003y\u0003y\u0007y\u0dd1",
    "\ny\fy\u000ey\u0dd4\u000by\u0003z\u0003z\u0003z\u0003z\u0003z\u0003",
    "z\u0005z\u0ddc\nz\u0003z\u0005z\u0ddf\nz\u0003z\u0003z\u0005z\u0de3",
    "\nz\u0003z\u0005z\u0de6\nz\u0003z\u0003z\u0005z\u0dea\nz\u0003z\u0003",
    "z\u0005z\u0dee\nz\u0003z\u0005z\u0df1\nz\u0005z\u0df3\nz\u0003{\u0003",
    "{\u0003{\u0003{\u0007{\u0df9\n{\f{\u000e{\u0dfc\u000b{\u0003{\u0003",
    "{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0005{\u0e07\n{\u0003",
    "{\u0003{\u0006{\u0e0b\n{\r{\u000e{\u0e0c\u0005{\u0e0f\n{\u0003{\u0003",
    "{\u0006{\u0e13\n{\r{\u000e{\u0e14\u0005{\u0e17\n{\u0005{\u0e19\n{\u0003",
    "|\u0003|\u0003|\u0003|\u0005|\u0e1f\n|\u0003|\u0003|\u0003|\u0003|\u0003",
    "|\u0003|\u0005|\u0e27\n|\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0005",
    "}\u0e2f\n}\u0003~\u0003~\u0003~\u0003~\u0005~\u0e35\n~\u0003~\u0003",
    "~\u0003~\u0003~\u0003~\u0007~\u0e3c\n~\f~\u000e~\u0e3f\u000b~\u0003",
    "~\u0003~\u0005~\u0e43\n~\u0005~\u0e45\n~\u0003~\u0003~\u0005~\u0e49",
    "\n~\u0003\u007f\u0003\u007f\u0005\u007f\u0e4d\n\u007f\u0003\u0080\u0003",
    "\u0080\u0003\u0080\u0003\u0080\u0005\u0080\u0e53\n\u0080\u0003\u0080",
    "\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0005\u0080\u0e5a\n",
    "\u0080\u0003\u0081\u0003\u0081\u0005\u0081\u0e5e\n\u0081\u0003\u0082",
    "\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0007\u0082\u0e65\n",
    "\u0082\f\u0082\u000e\u0082\u0e68\u000b\u0082\u0005\u0082\u0e6a\n\u0082",
    "\u0003\u0083\u0003\u0083\u0005\u0083\u0e6e\n\u0083\u0003\u0084\u0003",
    "\u0084\u0005\u0084\u0e72\n\u0084\u0003\u0084\u0003\u0084\u0005\u0084",
    "\u0e76\n\u0084\u0003\u0084\u0005\u0084\u0e79\n\u0084\u0003\u0084\u0005",
    "\u0084\u0e7c\n\u0084\u0003\u0084\u0005\u0084\u0e7f\n\u0084\u0003\u0085",
    "\u0003\u0085\u0005\u0085\u0e83\n\u0085\u0003\u0085\u0003\u0085\u0005",
    "\u0085\u0e87\n\u0085\u0003\u0085\u0005\u0085\u0e8a\n\u0085\u0003\u0085",
    "\u0005\u0085\u0e8d\n\u0085\u0003\u0085\u0005\u0085\u0e90\n\u0085\u0003",
    "\u0086\u0003\u0086\u0003\u0086\u0003\u0087\u0003\u0087\u0005\u0087\u0e97",
    "\n\u0087\u0003\u0087\u0003\u0087\u0005\u0087\u0e9b\n\u0087\u0003\u0087",
    "\u0003\u0087\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0089",
    "\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0007\u0089\u0ea8\n",
    "\u0089\f\u0089\u000e\u0089\u0eab\u000b\u0089\u0003\u008a\u0003\u008a",
    "\u0003\u008a\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b",
    "\u0003\u008c\u0003\u008c\u0005\u008c\u0eb7\n\u008c\u0003\u008c\u0003",
    "\u008c\u0003\u008c\u0003\u008c\u0007\u008c\u0ebd\n\u008c\f\u008c\u000e",
    "\u008c\u0ec0\u000b\u008c\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d",
    "\u0003\u008d\u0003\u008d\u0003\u008d\u0005\u008d\u0ec9\n\u008d\u0003",
    "\u008e\u0003\u008e\u0005\u008e\u0ecd\n\u008e\u0003\u008e\u0005\u008e",
    "\u0ed0\n\u008e\u0003\u008e\u0003\u008e\u0003\u008f\u0003\u008f\u0005",
    "\u008f\u0ed6\n\u008f\u0003\u008f\u0005\u008f\u0ed9\n\u008f\u0003\u008f",
    "\u0005\u008f\u0edc\n\u008f\u0003\u0090\u0003\u0090\u0003\u0090\u0003",
    "\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0005\u0090\u0ee5\n\u0090",
    "\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091",
    "\u0003\u0091\u0005\u0091\u0eee\n\u0091\u0003\u0092\u0003\u0092\u0003",
    "\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0007\u0092\u0ef6\n\u0092",
    "\f\u0092\u000e\u0092\u0ef9\u000b\u0092\u0003\u0092\u0005\u0092\u0efc",
    "\n\u0092\u0003\u0093\u0003\u0093\u0003\u0093\u0003\u0093\u0003\u0093",
    "\u0003\u0093\u0007\u0093\u0f04\n\u0093\f\u0093\u000e\u0093\u0f07\u000b",
    "\u0093\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003",
    "\u0094\u0003\u0094\u0005\u0094\u0f10\n\u0094\u0003\u0095\u0003\u0095",
    "\u0003\u0095\u0003\u0096\u0003\u0096\u0003\u0096\u0005\u0096\u0f18\n",
    "\u0096\u0003\u0096\u0005\u0096\u0f1b\n\u0096\u0003\u0097\u0003\u0097",
    "\u0003\u0097\u0003\u0097\u0003\u0097\u0007\u0097\u0f22\n\u0097\f\u0097",
    "\u000e\u0097\u0f25\u000b\u0097\u0005\u0097\u0f27\n\u0097\u0003\u0097",
    "\u0003\u0097\u0005\u0097\u0f2b\n\u0097\u0003\u0097\u0007\u0097\u0f2e",
    "\n\u0097\f\u0097\u000e\u0097\u0f31\u000b\u0097\u0003\u0097\u0005\u0097",
    "\u0f34\n\u0097\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003",
    "\u0098\u0007\u0098\u0f3b\n\u0098\f\u0098\u000e\u0098\u0f3e\u000b\u0098",
    "\u0005\u0098\u0f40\n\u0098\u0003\u0099\u0003\u0099\u0003\u0099\u0003",
    "\u009a\u0003\u009a\u0003\u009a\u0003\u009b\u0003\u009b\u0003\u009b\u0003",
    "\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003",
    "\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003",
    "\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0007",
    "\u009b\u0f5d\n\u009b\f\u009b\u000e\u009b\u0f60\u000b\u009b\u0005\u009b",
    "\u0f62\n\u009b\u0003\u009b\u0005\u009b\u0f65\n\u009b\u0003\u009c\u0003",
    "\u009c\u0003\u009d\u0003\u009d\u0003\u009e\u0003\u009e\u0003\u009f\u0003",
    "\u009f\u0003\u009f\u0003\u009f\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003",
    "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003",
    "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003",
    "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003",
    "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003",
    "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003",
    "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003",
    "\u00a0\u0003\u00a0\u0003\u00a0\u0007\u00a0\u0f9b\n\u00a0\f\u00a0\u000e",
    "\u00a0\u0f9e\u000b\u00a0\u0003\u00a0\u0003\u00a0\u0005\u00a0\u0fa2\n",
    "\u00a0\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003",
    "\u00a1\u0003\u00a2\u0003\u00a2\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003",
    "\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003",
    "\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003",
    "\u00a3\u0003\u00a3\u0003\u00a3\u0005\u00a3\u0fbe\n\u00a3\u0003\u00a4",
    "\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4",
    "\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0005\u00a4",
    "\u0fcc\n\u00a4\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0007\u00a5\u0fd1",
    "\n\u00a5\f\u00a5\u000e\u00a5\u0fd4\u000b\u00a5\u0003\u00a5\u0005\u00a5",
    "\u0fd7\n\u00a5\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0005",
    "\u00a6\u0fdd\n\u00a6\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7",
    "\u0003\u00a7\u0003\u00a7\u0005\u00a7\u0fe5\n\u00a7\u0005\u00a7\u0fe7",
    "\n\u00a7\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a9",
    "\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0005\u00a9\u0ff2\n",
    "\u00a9\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00ab\u0003",
    "\u00ab\u0003\u00ab\u0003\u00ab\u0005\u00ab\u0ffc\n\u00ab\u0003\u00ac",
    "\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0005\u00ac\u1003\n",
    "\u00ac\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0005\u00ad\u1009",
    "\n\u00ad\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00af",
    "\u0003\u00af\u0005\u00af\u1011\n\u00af\u0003\u00b0\u0003\u00b0\u0003",
    "\u00b0\u0005\u00b0\u1016\n\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0",
    "\u0003\u00b0\u0007\u00b0\u101c\n\u00b0\f\u00b0\u000e\u00b0\u101f\u000b",
    "\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0007\u00b0\u1024\n\u00b0",
    "\f\u00b0\u000e\u00b0\u1027\u000b\u00b0\u0003\u00b0\u0003\u00b0\u0003",
    "\u00b0\u0007\u00b0\u102c\n\u00b0\f\u00b0\u000e\u00b0\u102f\u000b\u00b0",
    "\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0007\u00b0\u1034\n\u00b0\f\u00b0",
    "\u000e\u00b0\u1037\u000b\u00b0\u0003\u00b0\u0007\u00b0\u103a\n\u00b0",
    "\f\u00b0\u000e\u00b0\u103d\u000b\u00b0\u0005\u00b0\u103f\n\u00b0\u0003",
    "\u00b0\u0003\u00b0\u0005\u00b0\u1043\n\u00b0\u0003\u00b1\u0003\u00b1",
    "\u0003\u00b1\u0005\u00b1\u1048\n\u00b1\u0003\u00b1\u0006\u00b1\u104b",
    "\n\u00b1\r\u00b1\u000e\u00b1\u104c\u0003\u00b1\u0003\u00b1\u0006\u00b1",
    "\u1051\n\u00b1\r\u00b1\u000e\u00b1\u1052\u0005\u00b1\u1055\n\u00b1\u0003",
    "\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003",
    "\u00b2\u0006\u00b2\u105e\n\u00b2\r\u00b2\u000e\u00b2\u105f\u0003\u00b2",
    "\u0007\u00b2\u1063\n\u00b2\f\u00b2\u000e\u00b2\u1066\u000b\u00b2\u0003",
    "\u00b2\u0003\u00b2\u0006\u00b2\u106a\n\u00b2\r\u00b2\u000e\u00b2\u106b",
    "\u0005\u00b2\u106e\n\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003",
    "\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003",
    "\u00b5\u0003\u00b5\u0003\u00b5\u0005\u00b5\u107c\n\u00b5\u0003\u00b5",
    "\u0003\u00b5\u0006\u00b5\u1080\n\u00b5\r\u00b5\u000e\u00b5\u1081\u0003",
    "\u00b5\u0003\u00b5\u0003\u00b5\u0005\u00b5\u1087\n\u00b5\u0003\u00b6",
    "\u0003\u00b6\u0003\u00b6\u0005\u00b6\u108c\n\u00b6\u0003\u00b6\u0003",
    "\u00b6\u0006\u00b6\u1090\n\u00b6\r\u00b6\u000e\u00b6\u1091\u0003\u00b6",
    "\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0005\u00b6\u1099\n",
    "\u00b6\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b8\u0003\u00b8\u0003",
    "\u00b8\u0005\u00b8\u10a1\n\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8",
    "\u0003\u00b8\u0006\u00b8\u10a7\n\u00b8\r\u00b8\u000e\u00b8\u10a8\u0003",
    "\u00b8\u0003\u00b8\u0003\u00b8\u0005\u00b8\u10ae\n\u00b8\u0003\u00b9",
    "\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0005\u00b9\u10b4\n\u00b9\u0003",
    "\u00b9\u0005\u00b9\u10b7\n\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9",
    "\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0005\u00b9\u10bf\n\u00b9\u0003",
    "\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0005\u00ba\u10c6",
    "\n\u00ba\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb",
    "\u0003\u00bb\u0003\u00bb\u0005\u00bb\u10cf\n\u00bb\u0003\u00bb\u0005",
    "\u00bb\u10d2\n\u00bb\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc",
    "\u0003\u00bc\u0003\u00bc\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd",
    "\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0007\u00bd\u10e1\n\u00bd\f\u00bd",
    "\u000e\u00bd\u10e4\u000b\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00be\u0003",
    "\u00be\u0003\u00be\u0005\u00be\u10eb\n\u00be\u0003\u00be\u0003\u00be",
    "\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0005\u00be\u10f3\n",
    "\u00be\u0003\u00bf\u0003\u00bf\u0005\u00bf\u10f7\n\u00bf\u0003\u00bf",
    "\u0003\u00bf\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0005\u00c0\u10fe\n",
    "\u00c0\u0003\u00c0\u0003\u00c0\u0006\u00c0\u1102\n\u00c0\r\u00c0\u000e",
    "\u00c0\u1103\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0006\u00c1",
    "\u110a\n\u00c1\r\u00c1\u000e\u00c1\u110b\u0003\u00c2\u0003\u00c2\u0003",
    "\u00c2\u0003\u00c2\u0003\u00c2\u0007\u00c2\u1113\n\u00c2\f\u00c2\u000e",
    "\u00c2\u1116\u000b\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0005\u00c2",
    "\u111b\n\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0007\u00c2\u1120",
    "\n\u00c2\f\u00c2\u000e\u00c2\u1123\u000b\u00c2\u0003\u00c2\u0003\u00c2",
    "\u0003\u00c2\u0003\u00c2\u0005\u00c2\u1129\n\u00c2\u0003\u00c2\u0007",
    "\u00c2\u112c\n\u00c2\f\u00c2\u000e\u00c2\u112f\u000b\u00c2\u0005\u00c2",
    "\u1131\n\u00c2\u0005\u00c2\u1133\n\u00c2\u0003\u00c2\u0003\u00c2\u0006",
    "\u00c2\u1137\n\u00c2\r\u00c2\u000e\u00c2\u1138\u0005\u00c2\u113b\n\u00c2",
    "\u0003\u00c2\u0003\u00c2\u0007\u00c2\u113f\n\u00c2\f\u00c2\u000e\u00c2",
    "\u1142\u000b\u00c2\u0005\u00c2\u1144\n\u00c2\u0003\u00c3\u0003\u00c3",
    "\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0007\u00c3\u114b\n\u00c3\f\u00c3",
    "\u000e\u00c3\u114e\u000b\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0005",
    "\u00c3\u1153\n\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0007\u00c3",
    "\u1158\n\u00c3\f\u00c3\u000e\u00c3\u115b\u000b\u00c3\u0003\u00c3\u0003",
    "\u00c3\u0003\u00c3\u0003\u00c3\u0005\u00c3\u1161\n\u00c3\u0003\u00c3",
    "\u0007\u00c3\u1164\n\u00c3\f\u00c3\u000e\u00c3\u1167\u000b\u00c3\u0005",
    "\u00c3\u1169\n\u00c3\u0005\u00c3\u116b\n\u00c3\u0003\u00c3\u0003\u00c3",
    "\u0006\u00c3\u116f\n\u00c3\r\u00c3\u000e\u00c3\u1170\u0005\u00c3\u1173",
    "\n\u00c3\u0003\u00c3\u0003\u00c3\u0007\u00c3\u1177\n\u00c3\f\u00c3\u000e",
    "\u00c3\u117a\u000b\u00c3\u0005\u00c3\u117c\n\u00c3\u0003\u00c4\u0003",
    "\u00c4\u0003\u00c4\u0005\u00c4\u1181\n\u00c4\u0003\u00c4\u0003\u00c4",
    "\u0003\u00c4\u0007\u00c4\u1186\n\u00c4\f\u00c4\u000e\u00c4\u1189\u000b",
    "\u00c4\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0007\u00c5\u118f",
    "\n\u00c5\f\u00c5\u000e\u00c5\u1192\u000b\u00c5\u0003\u00c5\u0003\u00c5",
    "\u0005\u00c5\u1196\n\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003",
    "\u00c5\u0003\u00c5\u0007\u00c5\u119d\n\u00c5\f\u00c5\u000e\u00c5\u11a0",
    "\u000b\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0005\u00c5",
    "\u11a6\n\u00c5\u0003\u00c5\u0007\u00c5\u11a9\n\u00c5\f\u00c5\u000e\u00c5",
    "\u11ac\u000b\u00c5\u0005\u00c5\u11ae\n\u00c5\u0005\u00c5\u11b0\n\u00c5",
    "\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0007\u00c5\u11b6\n",
    "\u00c5\f\u00c5\u000e\u00c5\u11b9\u000b\u00c5\u0005\u00c5\u11bb\n\u00c5",
    "\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6",
    "\u0003\u00c6\u0003\u00c6\u0007\u00c6\u11c5\n\u00c6\f\u00c6\u000e\u00c6",
    "\u11c8\u000b\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0005\u00c6\u11cd",
    "\n\u00c6\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7",
    "\u0007\u00c7\u11d4\n\u00c7\f\u00c7\u000e\u00c7\u11d7\u000b\u00c7\u0003",
    "\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0007\u00c8\u11dd\n\u00c8",
    "\f\u00c8\u000e\u00c8\u11e0\u000b\u00c8\u0003\u00c8\u0003\u00c8\u0005",
    "\u00c8\u11e4\n\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8",
    "\u0003\u00c8\u0007\u00c8\u11eb\n\u00c8\f\u00c8\u000e\u00c8\u11ee\u000b",
    "\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0005\u00c8\u11f3\n\u00c8",
    "\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8",
    "\u0003\u00c8\u0007\u00c8\u11fc\n\u00c8\f\u00c8\u000e\u00c8\u11ff\u000b",
    "\u00c8\u0005\u00c8\u1201\n\u00c8\u0003\u00c9\u0003\u00c9\u0003\u00c9",
    "\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0007\u00c9",
    "\u120b\n\u00c9\f\u00c9\u000e\u00c9\u120e\u000b\u00c9\u0003\u00ca\u0003",
    "\u00ca\u0003\u00ca\u0003\u00ca\u0005\u00ca\u1214\n\u00ca\u0003\u00ca",
    "\u0003\u00ca\u0003\u00ca\u0005\u00ca\u1219\n\u00ca\u0003\u00cb\u0003",
    "\u00cb\u0003\u00cb\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003",
    "\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0005",
    "\u00cc\u1228\n\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc",
    "\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0005\u00cc",
    "\u1233\n\u00cc\u0003\u00cc\u0005\u00cc\u1236\n\u00cc\u0003\u00cd\u0003",
    "\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003",
    "\u00cd\u0005\u00cd\u1240\n\u00cd\u0003\u00ce\u0003\u00ce\u0003\u00ce",
    "\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0005\u00ce",
    "\u124a\n\u00ce\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003",
    "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005\u00cf\u1254\n\u00cf",
    "\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d1\u0003\u00d1\u0003\u00d1",
    "\u0003\u00d1\u0003\u00d1\u0005\u00d1\u125e\n\u00d1\u0003\u00d2\u0003",
    "\u00d2\u0005\u00d2\u1262\n\u00d2\u0003\u00d2\u0003\u00d2\u0005\u00d2",
    "\u1266\n\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003",
    "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0005\u00d2\u1270\n\u00d2",
    "\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0005\u00d2\u1275\n\u00d2\u0003",
    "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003",
    "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003",
    "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003",
    "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003",
    "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003",
    "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003",
    "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003",
    "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0005",
    "\u00d2\u12a7\n\u00d2\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3",
    "\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3",
    "\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3",
    "\u0005\u00d3\u12b9\n\u00d3\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003",
    "\u00d4\u0003\u00d5\u0003\u00d5\u0005\u00d5\u12c1\n\u00d5\u0003\u00d5",
    "\u0003\u00d5\u0003\u00d5\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6",
    "\u0007\u00d6\u12ca\n\u00d6\f\u00d6\u000e\u00d6\u12cd\u000b\u00d6\u0003",
    "\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0005\u00d7\u12d3\n\u00d7",
    "\u0003\u00d8\u0003\u00d8\u0005\u00d8\u12d7\n\u00d8\u0003\u00d8\u0003",
    "\u00d8\u0003\u00d8\u0003\u00d9\u0003\u00d9\u0005\u00d9\u12de\n\u00d9",
    "\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0005\u00d9\u12e3\n\u00d9\u0003",
    "\u00d9\u0005\u00d9\u12e6\n\u00d9\u0003\u00d9\u0005\u00d9\u12e9\n\u00d9",
    "\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da",
    "\u0003\u00da\u0005\u00da\u12f2\n\u00da\u0003\u00db\u0003\u00db\u0005",
    "\u00db\u12f6\n\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db",
    "\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00dc\u0003\u00dc\u0003\u00dc",
    "\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dd\u0003\u00dd\u0003\u00dd",
    "\u0003\u00dd\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de",
    "\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0007\u00de\u1312\n",
    "\u00de\f\u00de\u000e\u00de\u1315\u000b\u00de\u0003\u00de\u0003\u00de",
    "\u0003\u00de\u0003\u00de\u0005\u00de\u131b\n\u00de\u0003\u00de\u0003",
    "\u00de\u0005\u00de\u131f\n\u00de\u0003\u00de\u0003\u00de\u0003\u00de",
    "\u0003\u00de\u0003\u00de\u0005\u00de\u1326\n\u00de\u0003\u00de\u0005",
    "\u00de\u1329\n\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de",
    "\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de",
    "\u0003\u00de\u0003\u00de\u0007\u00de\u1337\n\u00de\f\u00de\u000e\u00de",
    "\u133a\u000b\u00de\u0005\u00de\u133c\n\u00de\u0003\u00df\u0003\u00df",
    "\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df",
    "\u0005\u00df\u1346\n\u00df\u0003\u00df\u0003\u00df\u0005\u00df\u134a",
    "\n\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0005\u00df",
    "\u1350\n\u00df\u0003\u00df\u0005\u00df\u1353\n\u00df\u0003\u00df\u0003",
    "\u00df\u0003\u00df\u0005\u00df\u1358\n\u00df\u0003\u00df\u0003\u00df",
    "\u0005\u00df\u135c\n\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003",
    "\u00df\u0003\u00df\u0005\u00df\u1363\n\u00df\u0003\u00df\u0005\u00df",
    "\u1366\n\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0005",
    "\u00df\u136c\n\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df",
    "\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df",
    "\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df",
    "\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df",
    "\u0005\u00df\u1384\n\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003",
    "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003",
    "\u00df\u0003\u00df\u0005\u00df\u1391\n\u00df\u0003\u00df\u0005\u00df",
    "\u1394\n\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003",
    "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0005\u00df\u139e\n\u00df",
    "\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df",
    "\u0005\u00df\u13a6\n\u00df\u0003\u00df\u0003\u00df\u0005\u00df\u13aa",
    "\n\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df",
    "\u0005\u00df\u13b1\n\u00df\u0003\u00df\u0005\u00df\u13b4\n\u00df\u0003",
    "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0007\u00df\u13bb",
    "\n\u00df\f\u00df\u000e\u00df\u13be\u000b\u00df\u0003\u00df\u0003\u00df",
    "\u0003\u00df\u0005\u00df\u13c3\n\u00df\u0003\u00df\u0003\u00df\u0003",
    "\u00df\u0003\u00df\u0005\u00df\u13c9\n\u00df\u0003\u00df\u0003\u00df",
    "\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df",
    "\u0005\u00df\u13d3\n\u00df\u0005\u00df\u13d5\n\u00df\u0003\u00e0\u0003",
    "\u00e0\u0003\u00e0\u0003\u00e0\u0005\u00e0\u13db\n\u00e0\u0003\u00e0",
    "\u0005\u00e0\u13de\n\u00e0\u0003\u00e0\u0005\u00e0\u13e1\n\u00e0\u0003",
    "\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003",
    "\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0005\u00e1\u13ed\n\u00e1",
    "\u0003\u00e1\u0005\u00e1\u13f0\n\u00e1\u0003\u00e2\u0003\u00e2\u0003",
    "\u00e2\u0003\u00e2\u0005\u00e2\u13f6\n\u00e2\u0003\u00e3\u0005\u00e3",
    "\u13f9\n\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003",
    "\u00e3\u0003\u00e3\u0005\u00e3\u1401\n\u00e3\u0003\u00e3\u0003\u00e3",
    "\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0005\u00e3\u1409\n",
    "\u00e3\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0005\u00e4\u140f",
    "\n\u00e4\u0003\u00e4\u0003\u00e4\u0005\u00e4\u1413\n\u00e4\u0003\u00e5",
    "\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5",
    "\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0005\u00e5",
    "\u1421\n\u00e5\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e7\u0003",
    "\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0007\u00e7\u142b\n\u00e7",
    "\f\u00e7\u000e\u00e7\u142e\u000b\u00e7\u0003\u00e7\u0003\u00e7\u0003",
    "\u00e7\u0003\u00e7\u0005\u00e7\u1434\n\u00e7\u0003\u00e7\u0005\u00e7",
    "\u1437\n\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e8\u0003",
    "\u00e8\u0005\u00e8\u143e\n\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8",
    "\u0007\u00e8\u1443\n\u00e8\f\u00e8\u000e\u00e8\u1446\u000b\u00e8\u0003",
    "\u00e9\u0003\u00e9\u0005\u00e9\u144a\n\u00e9\u0003\u00e9\u0006\u00e9",
    "\u144d\n\u00e9\r\u00e9\u000e\u00e9\u144e\u0003\u00ea\u0003\u00ea\u0003",
    "\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0007\u00ea\u1458",
    "\n\u00ea\f\u00ea\u000e\u00ea\u145b\u000b\u00ea\u0003\u00eb\u0003\u00eb",
    "\u0003\u00eb\u0003\u00eb\u0003\u00ec\u0003\u00ec\u0003\u00ed\u0003\u00ed",
    "\u0005\u00ed\u1465\n\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003",
    "\u00ed\u0005\u00ed\u146b\n\u00ed\u0003\u00ee\u0003\u00ee\u0003\u00ee",
    "\u0005\u00ee\u1470\n\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003",
    "\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003",
    "\u00ee\u0003\u00ee\u0005\u00ee\u147d\n\u00ee\u0005\u00ee\u147f\n\u00ee",
    "\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0005\u00ee\u1484\n\u00ee\u0003",
    "\u00ee\u0003\u00ee\u0003\u00ee\u0005\u00ee\u1489\n\u00ee\u0005\u00ee",
    "\u148b\n\u00ee\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003",
    "\u00ef\u0005\u00ef\u1492\n\u00ef\u0003\u00f0\u0003\u00f0\u0003\u00f0",
    "\u0003\u00f0\u0003\u00f0\u0005\u00f0\u1499\n\u00f0\u0003\u00f0\u0005",
    "\u00f0\u149c\n\u00f0\u0003\u00f0\u0005\u00f0\u149f\n\u00f0\u0003\u00f0",
    "\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0005\u00f0\u14a5\n\u00f0\u0003",
    "\u00f0\u0003\u00f0\u0005\u00f0\u14a9\n\u00f0\u0003\u00f1\u0003\u00f1",
    "\u0003\u00f1\u0003\u00f1\u0005\u00f1\u14af\n\u00f1\u0003\u00f2\u0003",
    "\u00f2\u0003\u00f2\u0003\u00f2\u0005\u00f2\u14b5\n\u00f2\u0003\u00f2",
    "\u0003\u00f2\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f4\u0003\u00f4",
    "\u0003\u00f4\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0005\u00f5\u14c2\n",
    "\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0005\u00f5\u14c7\n\u00f5",
    "\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0007\u00f5\u14cd\n",
    "\u00f5\f\u00f5\u000e\u00f5\u14d0\u000b\u00f5\u0005\u00f5\u14d2\n\u00f5",
    "\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0005\u00f6\u14d7\n\u00f6\u0003",
    "\u00f6\u0003\u00f6\u0003\u00f6\u0005\u00f6\u14dc\n\u00f6\u0003\u00f6",
    "\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0007\u00f6\u14e2\n\u00f6\f\u00f6",
    "\u000e\u00f6\u14e5\u000b\u00f6\u0005\u00f6\u14e7\n\u00f6\u0003\u00f7",
    "\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0005\u00f7\u14ed\n\u00f7\u0003",
    "\u00f8\u0003\u00f8\u0005\u00f8\u14f1\n\u00f8\u0003\u00f8\u0003\u00f8",
    "\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8",
    "\u0003\u00f8\u0007\u00f8\u14fc\n\u00f8\f\u00f8\u000e\u00f8\u14ff\u000b",
    "\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0005\u00f8\u1504\n\u00f8",
    "\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8",
    "\u0003\u00f8\u0003\u00f8\u0007\u00f8\u150e\n\u00f8\f\u00f8\u000e\u00f8",
    "\u1511\u000b\u00f8\u0005\u00f8\u1513\n\u00f8\u0003\u00f9\u0003\u00f9",
    "\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0005\u00fa",
    "\u151c\n\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0005\u00fa\u1521",
    "\n\u00fa\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0005\u00fb",
    "\u1527\n\u00fb\u0003\u00fc\u0003\u00fc\u0003\u00fd\u0003\u00fd\u0003",
    "\u00fd\u0005\u00fd\u152e\n\u00fd\u0005\u00fd\u1530\n\u00fd\u0003\u00fe",
    "\u0003\u00fe\u0005\u00fe\u1534\n\u00fe\u0003\u00fe\u0003\u00fe\u0003",
    "\u00fe\u0003\u00fe\u0005\u00fe\u153a\n\u00fe\u0003\u00fe\u0005\u00fe",
    "\u153d\n\u00fe\u0003\u00ff\u0003\u00ff\u0003\u0100\u0003\u0100\u0003",
    "\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0005\u0101\u1547\n\u0101",
    "\u0003\u0102\u0003\u0102\u0005\u0102\u154b\n\u0102\u0003\u0103\u0003",
    "\u0103\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003",
    "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003",
    "\u0104\u0003\u0104\u0003\u0104\u0006\u0104\u155d\n\u0104\r\u0104\u000e",
    "\u0104\u155e\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105",
    "\u0005\u0105\u1566\n\u0105\u0005\u0105\u1568\n\u0105\u0003\u0106\u0003",
    "\u0106\u0003\u0106\u0006\u0106\u156d\n\u0106\r\u0106\u000e\u0106\u156e",
    "\u0005\u0106\u1571\n\u0106\u0003\u0107\u0003\u0107\u0005\u0107\u1575",
    "\n\u0107\u0003\u0108\u0003\u0108\u0003\u0108\u0005\u0108\u157a\n\u0108",
    "\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u0109",
    "\u0003\u0109\u0003\u0109\u0003\u0109\u0005\u0109\u1585\n\u0109\u0003",
    "\u010a\u0003\u010a\u0003\u010a\u0005\u010a\u158a\n\u010a\u0003\u010b",
    "\u0003\u010b\u0003\u010c\u0003\u010c\u0005\u010c\u1590\n\u010c\u0003",
    "\u010d\u0005\u010d\u1593\n\u010d\u0003\u010d\u0003\u010d\u0005\u010d",
    "\u1597\n\u010d\u0003\u010d\u0006\u010d\u159a\n\u010d\r\u010d\u000e\u010d",
    "\u159b\u0003\u010d\u0005\u010d\u159f\n\u010d\u0003\u010d\u0003\u010d",
    "\u0005\u010d\u15a3\n\u010d\u0003\u010d\u0003\u010d\u0005\u010d\u15a7",
    "\n\u010d\u0005\u010d\u15a9\n\u010d\u0003\u010e\u0003\u010e\u0003\u010f",
    "\u0005\u010f\u15ae\n\u010f\u0003\u010f\u0003\u010f\u0003\u0110\u0005",
    "\u0110\u15b3\n\u0110\u0003\u0110\u0003\u0110\u0003\u0111\u0003\u0111",
    "\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111",
    "\u0003\u0111\u0005\u0111\u15c0\n\u0111\u0003\u0111\u0005\u0111\u15c3",
    "\n\u0111\u0003\u0112\u0003\u0112\u0005\u0112\u15c7\n\u0112\u0003\u0112",
    "\u0005\u0112\u15ca\n\u0112\u0003\u0112\u0003\u0112\u0003\u0112\u0005",
    "\u0112\u15cf\n\u0112\u0003\u0112\u0005\u0112\u15d2\n\u0112\u0003\u0112",
    "\u0003\u0112\u0005\u0112\u15d6\n\u0112\u0003\u0112\u0003\u0112\u0003",
    "\u0112\u0005\u0112\u15db\n\u0112\u0003\u0112\u0005\u0112\u15de\n\u0112",
    "\u0003\u0112\u0003\u0112\u0003\u0112\u0005\u0112\u15e3\n\u0112\u0003",
    "\u0112\u0005\u0112\u15e6\n\u0112\u0003\u0112\u0003\u0112\u0003\u0112",
    "\u0003\u0112\u0005\u0112\u15ec\n\u0112\u0003\u0112\u0005\u0112\u15ef",
    "\n\u0112\u0003\u0112\u0003\u0112\u0005\u0112\u15f3\n\u0112\u0003\u0112",
    "\u0005\u0112\u15f6\n\u0112\u0003\u0112\u0005\u0112\u15f9\n\u0112\u0003",
    "\u0112\u0003\u0112\u0005\u0112\u15fd\n\u0112\u0003\u0112\u0005\u0112",
    "\u1600\n\u0112\u0003\u0112\u0005\u0112\u1603\n\u0112\u0003\u0112\u0003",
    "\u0112\u0005\u0112\u1607\n\u0112\u0003\u0112\u0005\u0112\u160a\n\u0112",
    "\u0003\u0112\u0005\u0112\u160d\n\u0112\u0003\u0112\u0005\u0112\u1610",
    "\n\u0112\u0003\u0112\u0003\u0112\u0005\u0112\u1614\n\u0112\u0003\u0112",
    "\u0005\u0112\u1617\n\u0112\u0003\u0112\u0005\u0112\u161a\n\u0112\u0003",
    "\u0112\u0003\u0112\u0003\u0112\u0005\u0112\u161f\n\u0112\u0003\u0112",
    "\u0003\u0112\u0003\u0112\u0005\u0112\u1624\n\u0112\u0003\u0112\u0003",
    "\u0112\u0003\u0112\u0005\u0112\u1629\n\u0112\u0003\u0112\u0005\u0112",
    "\u162c\n\u0112\u0003\u0112\u0003\u0112\u0003\u0112\u0005\u0112\u1631",
    "\n\u0112\u0003\u0112\u0005\u0112\u1634\n\u0112\u0003\u0112\u0003\u0112",
    "\u0003\u0112\u0005\u0112\u1639\n\u0112\u0003\u0112\u0005\u0112\u163c",
    "\n\u0112\u0003\u0112\u0003\u0112\u0005\u0112\u1640\n\u0112\u0003\u0112",
    "\u0003\u0112\u0005\u0112\u1644\n\u0112\u0003\u0113\u0003\u0113\u0003",
    "\u0113\u0003\u0113\u0007\u0113\u164a\n\u0113\f\u0113\u000e\u0113\u164d",
    "\u000b\u0113\u0003\u0113\u0003\u0113\u0003\u0114\u0003\u0114\u0005\u0114",
    "\u1653\n\u0114\u0003\u0114\u0003\u0114\u0005\u0114\u1657\n\u0114\u0003",
    "\u0114\u0003\u0114\u0003\u0114\u0005\u0114\u165c\n\u0114\u0003\u0114",
    "\u0005\u0114\u165f\n\u0114\u0003\u0114\u0003\u0114\u0003\u0114\u0005",
    "\u0114\u1664\n\u0114\u0003\u0114\u0003\u0114\u0005\u0114\u1668\n\u0114",
    "\u0005\u0114\u166a\n\u0114\u0003\u0115\u0003\u0115\u0003\u0115\u0003",
    "\u0115\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003",
    "\u0116\u0003\u0117\u0003\u0117\u0003\u0117\u0003\u0117\u0005\u0117\u167a",
    "\n\u0117\u0003\u0117\u0003\u0117\u0003\u0118\u0003\u0118\u0003\u0118",
    "\u0007\u0118\u1681\n\u0118\f\u0118\u000e\u0118\u1684\u000b\u0118\u0003",
    "\u0119\u0003\u0119\u0003\u0119\u0007\u0119\u1689\n\u0119\f\u0119\u000e",
    "\u0119\u168c\u000b\u0119\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a",
    "\u0007\u011a\u1692\n\u011a\f\u011a\u000e\u011a\u1695\u000b\u011a\u0003",
    "\u011a\u0003\u011a\u0003\u011b\u0003\u011b\u0003\u011b\u0007\u011b\u169c",
    "\n\u011b\f\u011b\u000e\u011b\u169f\u000b\u011b\u0003\u011c\u0003\u011c",
    "\u0003\u011c\u0007\u011c\u16a4\n\u011c\f\u011c\u000e\u011c\u16a7\u000b",
    "\u011c\u0003\u011d\u0003\u011d\u0003\u011d\u0007\u011d\u16ac\n\u011d",
    "\f\u011d\u000e\u011d\u16af\u000b\u011d\u0003\u011e\u0003\u011e\u0003",
    "\u011e\u0007\u011e\u16b4\n\u011e\f\u011e\u000e\u011e\u16b7\u000b\u011e",
    "\u0003\u011f\u0003\u011f\u0003\u011f\u0007\u011f\u16bc\n\u011f\f\u011f",
    "\u000e\u011f\u16bf\u000b\u011f\u0003\u0120\u0003\u0120\u0005\u0120\u16c3",
    "\n\u0120\u0003\u0120\u0003\u0120\u0003\u0120\u0003\u0120\u0003\u0120",
    "\u0005\u0120\u16ca\n\u0120\u0005\u0120\u16cc\n\u0120\u0003\u0121\u0003",
    "\u0121\u0003\u0121\u0005\u0121\u16d1\n\u0121\u0003\u0121\u0005\u0121",
    "\u16d4\n\u0121\u0003\u0121\u0003\u0121\u0003\u0121\u0005\u0121\u16d9",
    "\n\u0121\u0003\u0121\u0005\u0121\u16dc\n\u0121\u0003\u0122\u0003\u0122",
    "\u0005\u0122\u16e0\n\u0122\u0003\u0123\u0003\u0123\u0003\u0123\u0003",
    "\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0125\u0003\u0125\u0003",
    "\u0125\u0003\u0125\u0003\u0125\u0005\u0125\u16ee\n\u0125\u0003\u0125",
    "\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0005\u0125\u16f5\n",
    "\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0005\u0125\u16fa\n\u0125",
    "\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126",
    "\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126",
    "\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126",
    "\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126",
    "\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126",
    "\u0006\u0126\u171a\n\u0126\r\u0126\u000e\u0126\u171b\u0003\u0126\u0003",
    "\u0126\u0005\u0126\u1720\n\u0126\u0003\u0126\u0003\u0126\u0003\u0126",
    "\u0003\u0126\u0006\u0126\u1726\n\u0126\r\u0126\u000e\u0126\u1727\u0003",
    "\u0126\u0003\u0126\u0005\u0126\u172c\n\u0126\u0003\u0126\u0003\u0126",
    "\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0005\u0126",
    "\u1735\n\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003",
    "\u0126\u0003\u0126\u0005\u0126\u173d\n\u0126\u0003\u0126\u0003\u0126",
    "\u0003\u0126\u0005\u0126\u1742\n\u0126\u0003\u0126\u0003\u0126\u0003",
    "\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0005\u0126\u174a\n\u0126",
    "\u0003\u0126\u0003\u0126\u0003\u0126\u0005\u0126\u174f\n\u0126\u0003",
    "\u0126\u0003\u0126\u0003\u0126\u0005\u0126\u1754\n\u0126\u0005\u0126",
    "\u1756\n\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003",
    "\u0126\u0003\u0126\u0003\u0126\u0005\u0126\u175f\n\u0126\u0003\u0126",
    "\u0003\u0126\u0003\u0126\u0005\u0126\u1764\n\u0126\u0003\u0126\u0003",
    "\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0005\u0126\u176c",
    "\n\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0005\u0126\u1771\n\u0126",
    "\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126",
    "\u0005\u0126\u1779\n\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003",
    "\u0126\u0003\u0126\u0003\u0126\u0005\u0126\u1781\n\u0126\u0003\u0126",
    "\u0005\u0126\u1784\n\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003",
    "\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0005\u0126\u178e",
    "\n\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126",
    "\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0005\u0126\u1799\n",
    "\u0126\u0003\u0127\u0003\u0127\u0003\u0127\u0003\u0127\u0003\u0127\u0003",
    "\u0128\u0003\u0128\u0003\u0128\u0003\u0128\u0007\u0128\u17a4\n\u0128",
    "\f\u0128\u000e\u0128\u17a7\u000b\u0128\u0003\u0128\u0003\u0128\u0003",
    "\u0128\u0003\u0128\u0003\u0128\u0005\u0128\u17ae\n\u0128\u0003\u0129",
    "\u0003\u0129\u0005\u0129\u17b2\n\u0129\u0003\u012a\u0003\u012a\u0003",
    "\u012a\u0005\u012a\u17b7\n\u012a\u0003\u012a\u0003\u012a\u0003\u012a",
    "\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0005\u012a\u17c0\n",
    "\u012a\u0003\u012a\u0005\u012a\u17c3\n\u012a\u0003\u012a\u0003\u012a",
    "\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a",
    "\u0003\u012a\u0003\u012a\u0005\u012a\u17cf\n\u012a\u0003\u012a\u0003",
    "\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0005\u012a\u17d7",
    "\n\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a",
    "\u0003\u012a\u0007\u012a\u17df\n\u012a\f\u012a\u000e\u012a\u17e2\u000b",
    "\u012a\u0005\u012a\u17e4\n\u012a\u0003\u012a\u0003\u012a\u0005\u012a",
    "\u17e8\n\u012a\u0003\u012a\u0003\u012a\u0005\u012a\u17ec\n\u012a\u0003",
    "\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003",
    "\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003",
    "\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003",
    "\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0005\u012b\u1805",
    "\n\u012b\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012c",
    "\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0005\u012d\u1810\n",
    "\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0005",
    "\u012d\u1817\n\u012d\u0007\u012d\u1819\n\u012d\f\u012d\u000e\u012d\u181c",
    "\u000b\u012d\u0003\u012e\u0003\u012e\u0003\u012e\u0003\u012e\u0005\u012e",
    "\u1822\n\u012e\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003",
    "\u012f\u0003\u012f\u0005\u012f\u182a\n\u012f\u0003\u012f\u0003\u012f",
    "\u0003\u012f\u0005\u012f\u182f\n\u012f\u0003\u012f\u0003\u012f\u0003",
    "\u012f\u0003\u012f\u0007\u012f\u1835\n\u012f\f\u012f\u000e\u012f\u1838",
    "\u000b\u012f\u0003\u0130\u0003\u0130\u0003\u0130\u0005\u0130\u183d\n",
    "\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003",
    "\u0130\u0003\u0130\u0003\u0130\u0005\u0130\u1847\n\u0130\u0003\u0130",
    "\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130",
    "\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0005\u0130\u1854\n",
    "\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0005\u0130\u185a",
    "\n\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0005\u0130",
    "\u1860\n\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003",
    "\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003",
    "\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0005\u0130\u1870\n\u0130",
    "\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0005\u0130\u1876\n",
    "\u0130\u0007\u0130\u1878\n\u0130\f\u0130\u000e\u0130\u187b\u000b\u0130",
    "\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131",
    "\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131",
    "\u0003\u0131\u0003\u0131\u0007\u0131\u188b\n\u0131\f\u0131\u000e\u0131",
    "\u188e\u000b\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003",
    "\u0131\u0003\u0131\u0003\u0131\u0006\u0131\u1897\n\u0131\r\u0131\u000e",
    "\u0131\u1898\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131",
    "\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131",
    "\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0005\u0131\u18aa\n",
    "\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003",
    "\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0007",
    "\u0131\u18b7\n\u0131\f\u0131\u000e\u0131\u18ba\u000b\u0131\u0003\u0132",
    "\u0003\u0132\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133",
    "\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133",
    "\u0003\u0133\u0003\u0133\u0003\u0133\u0005\u0133\u18cc\n\u0133\u0003",
    "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003",
    "\u0134\u0005\u0134\u18d5\n\u0134\u0003\u0135\u0003\u0135\u0003\u0135",
    "\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u18de\n",
    "\u0135\u0003\u0136\u0003\u0136\u0003\u0137\u0003\u0137\u0003\u0138\u0003",
    "\u0138\u0003\u0139\u0003\u0139\u0003\u013a\u0003\u013a\u0003\u013b\u0003",
    "\u013b\u0003\u013c\u0003\u013c\u0003\u013d\u0003\u013d\u0003\u013d\u0002",
    "\u0005\u025c\u025e\u0260\u013e\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\u00d0\u00d2\u00d4\u00d6",
    "\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee",
    "\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106",
    "\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e",
    "\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136",
    "\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148\u014a\u014c\u014e",
    "\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166",
    "\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u017a\u017c\u017e",
    "\u0180\u0182\u0184\u0186\u0188\u018a\u018c\u018e\u0190\u0192\u0194\u0196",
    "\u0198\u019a\u019c\u019e\u01a0\u01a2\u01a4\u01a6\u01a8\u01aa\u01ac\u01ae",
    "\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u01c4\u01c6",
    "\u01c8\u01ca\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\u01de",
    "\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f0\u01f2\u01f4\u01f6",
    "\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e",
    "\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226",
    "\u0228\u022a\u022c\u022e\u0230\u0232\u0234\u0236\u0238\u023a\u023c\u023e",
    "\u0240\u0242\u0244\u0246\u0248\u024a\u024c\u024e\u0250\u0252\u0254\u0256",
    "\u0258\u025a\u025c\u025e\u0260\u0262\u0264\u0266\u0268\u026a\u026c\u026e",
    "\u0270\u0272\u0274\u0276\u0278\u0002\u0080\u0004\u0002%%\u0089\u0089",
    "\u0004\u0002\u01c5\u01c5\u01ca\u01ca\u0005\u0002@@\u0090\u0090\u00a5",
    "\u00a5\u0005\u0002((\u0142\u0142\u0181\u0181\u0006\u0002((\u0162\u0162",
    "\u01c4\u01c4\u020a\u020a\u0004\u0002\u01bb\u01bb\u040d\u040d\u0004\u0002",
    "HH\u0081\u0081\u0004\u0002\u000f\u000f\u0112\u0112\u0005\u0002**NN\u00a8",
    "\u00a8\u0004\u0002\u016f\u016f\u01dc\u01dc\u0005\u0002\u01b3\u01b3\u0230",
    "\u0230\u0237\u0237\u0004\u0002\u0149\u0149\u0186\u0186\u0004\u0002\u0124",
    "\u0124\u0194\u0194\u0004\u0002\u0122\u0122\u0178\u0178\u0005\u0002I",
    "IMMrr\u0005\u0002((\u0153\u0153\u016d\u016d\u0005\u0002((\u014f\u014f",
    "\u02ac\u02ac\u0004\u0002\u0224\u0224\u0245\u0245\u0004\u0002JJTT\u0005",
    "\u0002\u0171\u0171\u01d3\u01d3\u020c\u020c\u0004\u0002@@\u0090\u0090",
    "\u0003\u0002\u0128\u0129\u0003\u0002\u0403\u0404\u0004\u0002\u040d\u040d",
    "\u0415\u0415\u0005\u0002\u016c\u016c\u018f\u018f\u01c2\u01c2\u0004\u0002",
    "((\u0403\u0404\b\u0002((\u0135\u0135\u0137\u0137\u0153\u0153\u016d\u016d",
    "\u01e9\u01e9\u0003\u0002\u0404\u0405\u0004\u0002\u0007\u000711\u0004",
    "\u0002\u0185\u0185\u0246\u0246\u0004\u0002\r\r\u009f\u009f\u0004\u0002",
    "\u00b0\u00b0\u0249\u0249\u0004\u0002\u0014\u0014\u0084\u0084\u0005\u0002",
    "))FFaa\u0004\u0002aa\u0139\u0139\u0004\u0002\u0130\u0130\u0169\u0169",
    "\u0004\u0002]]\u0202\u0202\u0004\u0002))aa\u0004\u0002\b\b//\u0004\u0002",
    "\u00ac\u00ac\u0242\u0242\u0006\u0002\u016c\u016c\u018f\u018f\u01c1\u01c1",
    "\u01df\u01df\u0004\u0002\u016c\u016c\u01c1\u01c1\u0004\u0002\u000e\u000e",
    "++\u0005\u0002==HH\u00aa\u00aa\u0004\u0002!!LL\u0004\u0002YY\u0087\u0087",
    "\u0004\u0002\b\b/0\u0003\u0002\u0219\u021a\u0004\u0002\u0174\u0174\u0208",
    "\u0208\u0004\u0002\u00d2\u00d2\u0197\u0197\u0007\u0002bb\u019c\u019d",
    "\u019f\u019f\u01a3\u01ab\u01eb\u01eb\u0006\u0002\u0199\u019a\u019e\u019e",
    "\u01a0\u01a1\u01ec\u01ec\u0005\u0002cc\u0198\u0198\u01a2\u01a2\u0004",
    "\u0002\u0188\u0188\u021b\u021b\u0004\u0002\u0215\u0215\u0217\u0217\u0004",
    "\u0002\u011c\u011c\u021c\u021c\u0004\u0002SS\u01fa\u01fa\u0004\u0002",
    "11\u0147\u0147\u0005\u0002\u001e\u001e88\u00a3\u00a3\u0005\u0002ww\u009c",
    "\u009c\u0172\u0172\u0004\u0002__\u00a6\u00a6\u0004\u0002\u012c\u012c",
    "\u020d\u020d\u0004\u0002&&\u0244\u0244\u0004\u0002ii\u0194\u0194\u0004",
    "\u0002\u0165\u0165\u01e5\u01e5\u0006\u0002\u00be\u00be\u00c0\u00c0\u00c6",
    "\u00c6\u0225\u0225\u0004\u0002\u03e4\u03e4\u03f5\u03f5\u0004\u0002\u011d",
    "\u011d\u01ed\u01ed\u0004\u0002??II\b\u0002ww\u009c\u009c\u00a1\u00a1",
    "\u015e\u015e\u0172\u0172\u0244\u0244\u0004\u0002\u01ba\u01ba\u0221\u0221",
    "\u0004\u0002\u015b\u015b\u0248\u0248\u0004\u0002ww\u0172\u0172\u0005",
    "\u0002JJUU\u017f\u017f\u0005\u0002\u0174\u0174\u0194\u0194\u0208\u0208",
    "\u0004\u0002\u0221\u0221\u0243\u0243\u0004\u0002\u013a\u013a\u01e4\u01e4",
    "\b\u0002\u00d2\u00d2\u0158\u0158\u015a\u015a\u0173\u0173\u01ea\u01ea",
    "\u020e\u020e\u0004\u0002+,99\u0005\u0002\u0165\u0165\u01d5\u01d5\u0308",
    "\u0308\u0004\u0002\u018c\u018c\u0232\u0232\f\u0002\u012b\u012b\u0132",
    "\u0132\u013c\u013e\u0144\u0144\u01b4\u01b4\u01bc\u01bc\u0226\u0226\u022d",
    "\u022d\u02d8\u02d8\u037e\u037e\u0004\u0002\"\"\u0099\u0099\u0004\u0002",
    "kk\u0376\u0376\r\u0002\u012b\u012b\u0132\u0132\u013c\u013e\u0144\u0144",
    "\u01b4\u01b4\u01bc\u01bc\u01fb\u01fb\u0226\u0226\u022d\u022d\u02d8\u02d8",
    "\u037e\u037e\u0005\u0002\u040d\u040d\u0415\u0415\u0417\u0417\u0003\u0002",
    "\u0418\u0419\u0005\u0002\u02a7\u02b2\u040d\u040d\u0415\u0416\u0004\u0002",
    "\u0403\u0405\u040e\u040e\u0004\u0002::\u00a2\u00a2\u0004\u0002jj\u0411",
    "\u0411\u0007\u0002\u0018\u0018\u00ce\u00d0\u00d7\u00d7\u00d9\u00dc\u01bf",
    "\u01bf\u0004\u0002\u0018\u0018\u00cf\u00cf\u0004\u0002\u0018\u0018\u00ce",
    "\u00ce\u0003\u0002\u00b4\u00bf\u0004\u0002\u00a7\u00a7\u020b\u020b\u0004",
    "\u0002\u00c3\u00c8\u016d\u016d\u0007\u0002\u00c9\u00c9\u00d4\u00d6\u00d8",
    "\u00d8\u00df\u00df\u0120\u0121\u0005\u0002\u00ca\u00cd\u00d2\u00d3\u011e",
    "\u011e\u0004\u0002\u008c\u008c\u00dd\u00dd\u0004\u0002\u018c\u018c\u02b7",
    "\u02bf\u0004\u0002\u00d2\u00d2\u01bf\u01bf\u0005\u0002\u00c9\u00ca\u00cc",
    "\u00cc\u018c\u018c\u0004\u0002\u00ff\u0100\u0106\u0106\u0004\u0002#",
    "#\u00fd\u0100\u0003\u0002\u0109\u010a\u0005\u0002\u0011\u0011WW\u00a0",
    "\u00a0\u0004\u0002\u00ce\u00ce\u00d2\u00d2\u0004\u0002\u00c9\u00ca\u00cc",
    "\u00cc\u0005\u0002\u000e\u000e++\u0374\u0374\u0005\u0002\u00ed\u00ed",
    "\u00f3\u00f4\u00f9\u00f9\u0005\u0002\u00ee\u00f0\u00f5\u00f8\u00fa\u00fc",
    "\u0004\u0002\u01c8\u01c8\u01d6\u01d6\u0004\u0002hh\u03f8\u03f8\u0005",
    "\u0002::\u00a2\u00a2\u023b\u023b\u0004\u0002}}\u0088\u0088\u0005\u0002",
    "\b\b\u0115\u0115\u0211\u0211\u0006\u0002hh\u03f0\u03f0\u03f2\u03f2\u03f8",
    "\u03f9\u0003\u0002\u03ed\u03f4\u0003\u0002\u027f\u02a6\u0003\u0002\u02b3",
    "\u02b6\u0003\u0002\u025c\u0264\u0003\u0002\u0254\u025b\u0005\u0002\u00c9",
    "\u00cd\u00da\u00da\u00dd\u00dd\u0010\u0002\"\"..kk\u0099\u0099\u00df",
    "\u00df\u0110\u0184\u0186\u0223\u0225\u0244\u0247\u024e\u0253\u0253\u0266",
    "\u027e\u02ac\u02ac\u02d8\u02d8\u037e\u037e\u0012\u0002%%YY\u0087\u0087",
    "\u00c9\u00cb\u00cd\u00cd\u00eb\u00ec\u00f1\u00f1\u0108\u0108\u0185\u0185",
    "\u0246\u0246\u0254\u025b\u0278\u0278\u02b7\u02b7\u02ba\u02d7\u02d9\u037d",
    "\u037f\u03e3\u0002\u1d51\u0002\u027a\u0003\u0002\u0002\u0002\u0004\u027e",
    "\u0003\u0002\u0002\u0002\u0006\u028f\u0003\u0002\u0002\u0002\b\u02a3",
    "\u0003\u0002\u0002\u0002\n\u02a5\u0003\u0002\u0002\u0002\f\u02ca\u0003",
    "\u0002\u0002\u0002\u000e\u02d6\u0003\u0002\u0002\u0002\u0010\u02e1\u0003",
    "\u0002\u0002\u0002\u0012\u02f2\u0003\u0002\u0002\u0002\u0014\u02f7\u0003",
    "\u0002\u0002\u0002\u0016\u0303\u0003\u0002\u0002\u0002\u0018\u031e\u0003",
    "\u0002\u0002\u0002\u001a\u0327\u0003\u0002\u0002\u0002\u001c\u0329\u0003",
    "\u0002\u0002\u0002\u001e\u0335\u0003\u0002\u0002\u0002 \u0353\u0003",
    "\u0002\u0002\u0002\"\u0377\u0003\u0002\u0002\u0002$\u03aa\u0003\u0002",
    "\u0002\u0002&\u03c4\u0003\u0002\u0002\u0002(\u03e2\u0003\u0002\u0002",
    "\u0002*\u0443\u0003\u0002\u0002\u0002,\u0445\u0003\u0002\u0002\u0002",
    ".\u0457\u0003\u0002\u0002\u00020\u0494\u0003\u0002\u0002\u00022\u04a7",
    "\u0003\u0002\u0002\u00024\u04e2\u0003\u0002\u0002\u00026\u04e4\u0003",
    "\u0002\u0002\u00028\u0510\u0003\u0002\u0002\u0002:\u0516\u0003\u0002",
    "\u0002\u0002<\u0518\u0003\u0002\u0002\u0002>\u052d\u0003\u0002\u0002",
    "\u0002@\u0534\u0003\u0002\u0002\u0002B\u0536\u0003\u0002\u0002\u0002",
    "D\u0546\u0003\u0002\u0002\u0002F\u0549\u0003\u0002\u0002\u0002H\u054e",
    "\u0003\u0002\u0002\u0002J\u0568\u0003\u0002\u0002\u0002L\u0578\u0003",
    "\u0002\u0002\u0002N\u057a\u0003\u0002\u0002\u0002P\u058a\u0003\u0002",
    "\u0002\u0002R\u058c\u0003\u0002\u0002\u0002T\u05c6\u0003\u0002\u0002",
    "\u0002V\u060d\u0003\u0002\u0002\u0002X\u060f\u0003\u0002\u0002\u0002",
    "Z\u062b\u0003\u0002\u0002\u0002\\\u0633\u0003\u0002\u0002\u0002^\u0651",
    "\u0003\u0002\u0002\u0002`\u06e3\u0003\u0002\u0002\u0002b\u06e5\u0003",
    "\u0002\u0002\u0002d\u06e8\u0003\u0002\u0002\u0002f\u0732\u0003\u0002",
    "\u0002\u0002h\u0749\u0003\u0002\u0002\u0002j\u07ce\u0003\u0002\u0002",
    "\u0002l\u07d3\u0003\u0002\u0002\u0002n\u07d5\u0003\u0002\u0002\u0002",
    "p\u07df\u0003\u0002\u0002\u0002r\u0814\u0003\u0002\u0002\u0002t\u0828",
    "\u0003\u0002\u0002\u0002v\u082a\u0003\u0002\u0002\u0002x\u084d\u0003",
    "\u0002\u0002\u0002z\u0856\u0003\u0002\u0002\u0002|\u085d\u0003\u0002",
    "\u0002\u0002~\u0874\u0003\u0002\u0002\u0002\u0080\u087d\u0003\u0002",
    "\u0002\u0002\u0082\u088c\u0003\u0002\u0002\u0002\u0084\u08a2\u0003\u0002",
    "\u0002\u0002\u0086\u08b6\u0003\u0002\u0002\u0002\u0088\u0a41\u0003\u0002",
    "\u0002\u0002\u008a\u0a43\u0003\u0002\u0002\u0002\u008c\u0a4a\u0003\u0002",
    "\u0002\u0002\u008e\u0a51\u0003\u0002\u0002\u0002\u0090\u0a68\u0003\u0002",
    "\u0002\u0002\u0092\u0a70\u0003\u0002\u0002\u0002\u0094\u0a77\u0003\u0002",
    "\u0002\u0002\u0096\u0a7e\u0003\u0002\u0002\u0002\u0098\u0a85\u0003\u0002",
    "\u0002\u0002\u009a\u0a91\u0003\u0002\u0002\u0002\u009c\u0a9b\u0003\u0002",
    "\u0002\u0002\u009e\u0aa2\u0003\u0002\u0002\u0002\u00a0\u0ab2\u0003\u0002",
    "\u0002\u0002\u00a2\u0abc\u0003\u0002\u0002\u0002\u00a4\u0ac0\u0003\u0002",
    "\u0002\u0002\u00a6\u0ac6\u0003\u0002\u0002\u0002\u00a8\u0ad2\u0003\u0002",
    "\u0002\u0002\u00aa\u0ad4\u0003\u0002\u0002\u0002\u00ac\u0adb\u0003\u0002",
    "\u0002\u0002\u00ae\u0add\u0003\u0002\u0002\u0002\u00b0\u0b10\u0003\u0002",
    "\u0002\u0002\u00b2\u0b5a\u0003\u0002\u0002\u0002\u00b4\u0b95\u0003\u0002",
    "\u0002\u0002\u00b6\u0bed\u0003\u0002\u0002\u0002\u00b8\u0bf1\u0003\u0002",
    "\u0002\u0002\u00ba\u0c05\u0003\u0002\u0002\u0002\u00bc\u0c07\u0003\u0002",
    "\u0002\u0002\u00be\u0c0f\u0003\u0002\u0002\u0002\u00c0\u0c17\u0003\u0002",
    "\u0002\u0002\u00c2\u0c19\u0003\u0002\u0002\u0002\u00c4\u0c37\u0003\u0002",
    "\u0002\u0002\u00c6\u0c6e\u0003\u0002\u0002\u0002\u00c8\u0c77\u0003\u0002",
    "\u0002\u0002\u00ca\u0c8b\u0003\u0002\u0002\u0002\u00cc\u0c97\u0003\u0002",
    "\u0002\u0002\u00ce\u0c9b\u0003\u0002\u0002\u0002\u00d0\u0cbc\u0003\u0002",
    "\u0002\u0002\u00d2\u0cd1\u0003\u0002\u0002\u0002\u00d4\u0cdb\u0003\u0002",
    "\u0002\u0002\u00d6\u0cdf\u0003\u0002\u0002\u0002\u00d8\u0cf8\u0003\u0002",
    "\u0002\u0002\u00da\u0d22\u0003\u0002\u0002\u0002\u00dc\u0d24\u0003\u0002",
    "\u0002\u0002\u00de\u0d33\u0003\u0002\u0002\u0002\u00e0\u0d61\u0003\u0002",
    "\u0002\u0002\u00e2\u0d6b\u0003\u0002\u0002\u0002\u00e4\u0d75\u0003\u0002",
    "\u0002\u0002\u00e6\u0d9f\u0003\u0002\u0002\u0002\u00e8\u0da1\u0003\u0002",
    "\u0002\u0002\u00ea\u0db2\u0003\u0002\u0002\u0002\u00ec\u0db8\u0003\u0002",
    "\u0002\u0002\u00ee\u0dc8\u0003\u0002\u0002\u0002\u00f0\u0dcc\u0003\u0002",
    "\u0002\u0002\u00f2\u0df2\u0003\u0002\u0002\u0002\u00f4\u0e18\u0003\u0002",
    "\u0002\u0002\u00f6\u0e26\u0003\u0002\u0002\u0002\u00f8\u0e2e\u0003\u0002",
    "\u0002\u0002\u00fa\u0e30\u0003\u0002\u0002\u0002\u00fc\u0e4a\u0003\u0002",
    "\u0002\u0002\u00fe\u0e4e\u0003\u0002\u0002\u0002\u0100\u0e5d\u0003\u0002",
    "\u0002\u0002\u0102\u0e5f\u0003\u0002\u0002\u0002\u0104\u0e6b\u0003\u0002",
    "\u0002\u0002\u0106\u0e6f\u0003\u0002\u0002\u0002\u0108\u0e80\u0003\u0002",
    "\u0002\u0002\u010a\u0e91\u0003\u0002\u0002\u0002\u010c\u0e94\u0003\u0002",
    "\u0002\u0002\u010e\u0e9e\u0003\u0002\u0002\u0002\u0110\u0ea2\u0003\u0002",
    "\u0002\u0002\u0112\u0eac\u0003\u0002\u0002\u0002\u0114\u0eaf\u0003\u0002",
    "\u0002\u0002\u0116\u0eb4\u0003\u0002\u0002\u0002\u0118\u0ec8\u0003\u0002",
    "\u0002\u0002\u011a\u0eca\u0003\u0002\u0002\u0002\u011c\u0edb\u0003\u0002",
    "\u0002\u0002\u011e\u0ee4\u0003\u0002\u0002\u0002\u0120\u0eed\u0003\u0002",
    "\u0002\u0002\u0122\u0eef\u0003\u0002\u0002\u0002\u0124\u0efd\u0003\u0002",
    "\u0002\u0002\u0126\u0f08\u0003\u0002\u0002\u0002\u0128\u0f11\u0003\u0002",
    "\u0002\u0002\u012a\u0f14\u0003\u0002\u0002\u0002\u012c\u0f1c\u0003\u0002",
    "\u0002\u0002\u012e\u0f35\u0003\u0002\u0002\u0002\u0130\u0f41\u0003\u0002",
    "\u0002\u0002\u0132\u0f44\u0003\u0002\u0002\u0002\u0134\u0f64\u0003\u0002",
    "\u0002\u0002\u0136\u0f66\u0003\u0002\u0002\u0002\u0138\u0f68\u0003\u0002",
    "\u0002\u0002\u013a\u0f6a\u0003\u0002\u0002\u0002\u013c\u0f6c\u0003\u0002",
    "\u0002\u0002\u013e\u0fa1\u0003\u0002\u0002\u0002\u0140\u0fa3\u0003\u0002",
    "\u0002\u0002\u0142\u0fa9\u0003\u0002\u0002\u0002\u0144\u0fbd\u0003\u0002",
    "\u0002\u0002\u0146\u0fcb\u0003\u0002\u0002\u0002\u0148\u0fd6\u0003\u0002",
    "\u0002\u0002\u014a\u0fd8\u0003\u0002\u0002\u0002\u014c\u0fde\u0003\u0002",
    "\u0002\u0002\u014e\u0fe8\u0003\u0002\u0002\u0002\u0150\u0fec\u0003\u0002",
    "\u0002\u0002\u0152\u0ff3\u0003\u0002\u0002\u0002\u0154\u0ff7\u0003\u0002",
    "\u0002\u0002\u0156\u0ffd\u0003\u0002\u0002\u0002\u0158\u1004\u0003\u0002",
    "\u0002\u0002\u015a\u100a\u0003\u0002\u0002\u0002\u015c\u1010\u0003\u0002",
    "\u0002\u0002\u015e\u1015\u0003\u0002\u0002\u0002\u0160\u1044\u0003\u0002",
    "\u0002\u0002\u0162\u1059\u0003\u0002\u0002\u0002\u0164\u1072\u0003\u0002",
    "\u0002\u0002\u0166\u1075\u0003\u0002\u0002\u0002\u0168\u107b\u0003\u0002",
    "\u0002\u0002\u016a\u108b\u0003\u0002\u0002\u0002\u016c\u109a\u0003\u0002",
    "\u0002\u0002\u016e\u10a0\u0003\u0002\u0002\u0002\u0170\u10be\u0003\u0002",
    "\u0002\u0002\u0172\u10c0\u0003\u0002\u0002\u0002\u0174\u10c7\u0003\u0002",
    "\u0002\u0002\u0176\u10d3\u0003\u0002\u0002\u0002\u0178\u10d9\u0003\u0002",
    "\u0002\u0002\u017a\u10f2\u0003\u0002\u0002\u0002\u017c\u10f6\u0003\u0002",
    "\u0002\u0002\u017e\u10fa\u0003\u0002\u0002\u0002\u0180\u1105\u0003\u0002",
    "\u0002\u0002\u0182\u1143\u0003\u0002\u0002\u0002\u0184\u117b\u0003\u0002",
    "\u0002\u0002\u0186\u117d\u0003\u0002\u0002\u0002\u0188\u118a\u0003\u0002",
    "\u0002\u0002\u018a\u11bc\u0003\u0002\u0002\u0002\u018c\u11ce\u0003\u0002",
    "\u0002\u0002\u018e\u1200\u0003\u0002\u0002\u0002\u0190\u1202\u0003\u0002",
    "\u0002\u0002\u0192\u120f\u0003\u0002\u0002\u0002\u0194\u121a\u0003\u0002",
    "\u0002\u0002\u0196\u1235\u0003\u0002\u0002\u0002\u0198\u123f\u0003\u0002",
    "\u0002\u0002\u019a\u1249\u0003\u0002\u0002\u0002\u019c\u124b\u0003\u0002",
    "\u0002\u0002\u019e\u1255\u0003\u0002\u0002\u0002\u01a0\u1258\u0003\u0002",
    "\u0002\u0002\u01a2\u12a6\u0003\u0002\u0002\u0002\u01a4\u12b8\u0003\u0002",
    "\u0002\u0002\u01a6\u12ba\u0003\u0002\u0002\u0002\u01a8\u12be\u0003\u0002",
    "\u0002\u0002\u01aa\u12c5\u0003\u0002\u0002\u0002\u01ac\u12ce\u0003\u0002",
    "\u0002\u0002\u01ae\u12d4\u0003\u0002\u0002\u0002\u01b0\u12db\u0003\u0002",
    "\u0002\u0002\u01b2\u12f1\u0003\u0002\u0002\u0002\u01b4\u12f3\u0003\u0002",
    "\u0002\u0002\u01b6\u12fe\u0003\u0002\u0002\u0002\u01b8\u1304\u0003\u0002",
    "\u0002\u0002\u01ba\u133b\u0003\u0002\u0002\u0002\u01bc\u13d4\u0003\u0002",
    "\u0002\u0002\u01be\u13e0\u0003\u0002\u0002\u0002\u01c0\u13ef\u0003\u0002",
    "\u0002\u0002\u01c2\u13f5\u0003\u0002\u0002\u0002\u01c4\u1408\u0003\u0002",
    "\u0002\u0002\u01c6\u1412\u0003\u0002\u0002\u0002\u01c8\u1420\u0003\u0002",
    "\u0002\u0002\u01ca\u1422\u0003\u0002\u0002\u0002\u01cc\u1425\u0003\u0002",
    "\u0002\u0002\u01ce\u143b\u0003\u0002\u0002\u0002\u01d0\u1447\u0003\u0002",
    "\u0002\u0002\u01d2\u1450\u0003\u0002\u0002\u0002\u01d4\u145c\u0003\u0002",
    "\u0002\u0002\u01d6\u1460\u0003\u0002\u0002\u0002\u01d8\u1462\u0003\u0002",
    "\u0002\u0002\u01da\u148a\u0003\u0002\u0002\u0002\u01dc\u1491\u0003\u0002",
    "\u0002\u0002\u01de\u1493\u0003\u0002\u0002\u0002\u01e0\u14aa\u0003\u0002",
    "\u0002\u0002\u01e2\u14b0\u0003\u0002\u0002\u0002\u01e4\u14b8\u0003\u0002",
    "\u0002\u0002\u01e6\u14bb\u0003\u0002\u0002\u0002\u01e8\u14be\u0003\u0002",
    "\u0002\u0002\u01ea\u14d3\u0003\u0002\u0002\u0002\u01ec\u14e8\u0003\u0002",
    "\u0002\u0002\u01ee\u14ee\u0003\u0002\u0002\u0002\u01f0\u1514\u0003\u0002",
    "\u0002\u0002\u01f2\u1520\u0003\u0002\u0002\u0002\u01f4\u1522\u0003\u0002",
    "\u0002\u0002\u01f6\u1528\u0003\u0002\u0002\u0002\u01f8\u152a\u0003\u0002",
    "\u0002\u0002\u01fa\u1533\u0003\u0002\u0002\u0002\u01fc\u153e\u0003\u0002",
    "\u0002\u0002\u01fe\u1540\u0003\u0002\u0002\u0002\u0200\u1546\u0003\u0002",
    "\u0002\u0002\u0202\u154a\u0003\u0002\u0002\u0002\u0204\u154c\u0003\u0002",
    "\u0002\u0002\u0206\u154e\u0003\u0002\u0002\u0002\u0208\u1560\u0003\u0002",
    "\u0002\u0002\u020a\u1570\u0003\u0002\u0002\u0002\u020c\u1574\u0003\u0002",
    "\u0002\u0002\u020e\u1579\u0003\u0002\u0002\u0002\u0210\u1584\u0003\u0002",
    "\u0002\u0002\u0212\u1589\u0003\u0002\u0002\u0002\u0214\u158b\u0003\u0002",
    "\u0002\u0002\u0216\u158f\u0003\u0002\u0002\u0002\u0218\u15a8\u0003\u0002",
    "\u0002\u0002\u021a\u15aa\u0003\u0002\u0002\u0002\u021c\u15ad\u0003\u0002",
    "\u0002\u0002\u021e\u15b2\u0003\u0002\u0002\u0002\u0220\u15c2\u0003\u0002",
    "\u0002\u0002\u0222\u1643\u0003\u0002\u0002\u0002\u0224\u1645\u0003\u0002",
    "\u0002\u0002\u0226\u1669\u0003\u0002\u0002\u0002\u0228\u166b\u0003\u0002",
    "\u0002\u0002\u022a\u166f\u0003\u0002\u0002\u0002\u022c\u1675\u0003\u0002",
    "\u0002\u0002\u022e\u167d\u0003\u0002\u0002\u0002\u0230\u1685\u0003\u0002",
    "\u0002\u0002\u0232\u168d\u0003\u0002\u0002\u0002\u0234\u1698\u0003\u0002",
    "\u0002\u0002\u0236\u16a0\u0003\u0002\u0002\u0002\u0238\u16a8\u0003\u0002",
    "\u0002\u0002\u023a\u16b0\u0003\u0002\u0002\u0002\u023c\u16b8\u0003\u0002",
    "\u0002\u0002\u023e\u16cb\u0003\u0002\u0002\u0002\u0240\u16db\u0003\u0002",
    "\u0002\u0002\u0242\u16df\u0003\u0002\u0002\u0002\u0244\u16e1\u0003\u0002",
    "\u0002\u0002\u0246\u16e4\u0003\u0002\u0002\u0002\u0248\u16f9\u0003\u0002",
    "\u0002\u0002\u024a\u1798\u0003\u0002\u0002\u0002\u024c\u179a\u0003\u0002",
    "\u0002\u0002\u024e\u17ad\u0003\u0002\u0002\u0002\u0250\u17af\u0003\u0002",
    "\u0002\u0002\u0252\u17eb\u0003\u0002\u0002\u0002\u0254\u1804\u0003\u0002",
    "\u0002\u0002\u0256\u1806\u0003\u0002\u0002\u0002\u0258\u180f\u0003\u0002",
    "\u0002\u0002\u025a\u1821\u0003\u0002\u0002\u0002\u025c\u182e\u0003\u0002",
    "\u0002\u0002\u025e\u1839\u0003\u0002\u0002\u0002\u0260\u18a9\u0003\u0002",
    "\u0002\u0002\u0262\u18bb\u0003\u0002\u0002\u0002\u0264\u18cb\u0003\u0002",
    "\u0002\u0002\u0266\u18d4\u0003\u0002\u0002\u0002\u0268\u18dd\u0003\u0002",
    "\u0002\u0002\u026a\u18df\u0003\u0002\u0002\u0002\u026c\u18e1\u0003\u0002",
    "\u0002\u0002\u026e\u18e3\u0003\u0002\u0002\u0002\u0270\u18e5\u0003\u0002",
    "\u0002\u0002\u0272\u18e7\u0003\u0002\u0002\u0002\u0274\u18e9\u0003\u0002",
    "\u0002\u0002\u0276\u18eb\u0003\u0002\u0002\u0002\u0278\u18ed\u0003\u0002",
    "\u0002\u0002\u027a\u027b\u0005\u0004\u0003\u0002\u027b\u027c\u0007\u0002",
    "\u0002\u0003\u027c\u0003\u0003\u0002\u0002\u0002\u027d\u027f\u0005\u0006",
    "\u0004\u0002\u027e\u027d\u0003\u0002\u0002\u0002\u027e\u027f\u0003\u0002",
    "\u0002\u0002\u027f\u0281\u0003\u0002\u0002\u0002\u0280\u0282\u0007\u03f1",
    "\u0002\u0002\u0281\u0280\u0003\u0002\u0002\u0002\u0281\u0282\u0003\u0002",
    "\u0002\u0002\u0282\u0283\u0003\u0002\u0002\u0002\u0283\u0284\u0007\u0002",
    "\u0002\u0003\u0284\u0005\u0003\u0002\u0002\u0002\u0285\u0287\u0005\b",
    "\u0005\u0002\u0286\u0288\u0007\u03f1\u0002\u0002\u0287\u0286\u0003\u0002",
    "\u0002\u0002\u0287\u0288\u0003\u0002\u0002\u0002\u0288\u028a\u0003\u0002",
    "\u0002\u0002\u0289\u028b\u0007\u0401\u0002\u0002\u028a\u0289\u0003\u0002",
    "\u0002\u0002\u028a\u028b\u0003\u0002\u0002\u0002\u028b\u028e\u0003\u0002",
    "\u0002\u0002\u028c\u028e\u0005\n\u0006\u0002\u028d\u0285\u0003\u0002",
    "\u0002\u0002\u028d\u028c\u0003\u0002\u0002\u0002\u028e\u0291\u0003\u0002",
    "\u0002\u0002\u028f\u028d\u0003\u0002\u0002\u0002\u028f\u0290\u0003\u0002",
    "\u0002\u0002\u0290\u029a\u0003\u0002\u0002\u0002\u0291\u028f\u0003\u0002",
    "\u0002\u0002\u0292\u0297\u0005\b\u0005\u0002\u0293\u0295\u0007\u03f1",
    "\u0002\u0002\u0294\u0293\u0003\u0002\u0002\u0002\u0294\u0295\u0003\u0002",
    "\u0002\u0002\u0295\u0296\u0003\u0002\u0002\u0002\u0296\u0298\u0007\u0401",
    "\u0002\u0002\u0297\u0294\u0003\u0002\u0002\u0002\u0297\u0298\u0003\u0002",
    "\u0002\u0002\u0298\u029b\u0003\u0002\u0002\u0002\u0299\u029b\u0005\n",
    "\u0006\u0002\u029a\u0292\u0003\u0002\u0002\u0002\u029a\u0299\u0003\u0002",
    "\u0002\u0002\u029b\u0007\u0003\u0002\u0002\u0002\u029c\u02a4\u0005\f",
    "\u0007\u0002\u029d\u02a4\u0005\u000e\b\u0002\u029e\u02a4\u0005\u0010",
    "\t\u0002\u029f\u02a4\u0005\u0012\n\u0002\u02a0\u02a4\u0005\u0014\u000b",
    "\u0002\u02a1\u02a4\u0005\u0018\r\u0002\u02a2\u02a4\u0005\u001a\u000e",
    "\u0002\u02a3\u029c\u0003\u0002\u0002\u0002\u02a3\u029d\u0003\u0002\u0002",
    "\u0002\u02a3\u029e\u0003\u0002\u0002\u0002\u02a3\u029f\u0003\u0002\u0002",
    "\u0002\u02a3\u02a0\u0003\u0002\u0002\u0002\u02a3\u02a1\u0003\u0002\u0002",
    "\u0002\u02a3\u02a2\u0003\u0002\u0002\u0002\u02a4\t\u0003\u0002\u0002",
    "\u0002\u02a5\u02a6\u0007\u0401\u0002\u0002\u02a6\u000b\u0003\u0002\u0002",
    "\u0002\u02a7\u02cb\u0005\u001c\u000f\u0002\u02a8\u02cb\u0005\u001e\u0010",
    "\u0002\u02a9\u02cb\u0005 \u0011\u0002\u02aa\u02cb\u0005\"\u0012\u0002",
    "\u02ab\u02cb\u0005$\u0013\u0002\u02ac\u02cb\u0005&\u0014\u0002\u02ad",
    "\u02cb\u0005(\u0015\u0002\u02ae\u02cb\u0005*\u0016\u0002\u02af\u02cb",
    "\u0005,\u0017\u0002\u02b0\u02cb\u0005.\u0018\u0002\u02b1\u02cb\u0005",
    "0\u0019\u0002\u02b2\u02cb\u00052\u001a\u0002\u02b3\u02cb\u0005t;\u0002",
    "\u02b4\u02cb\u0005v<\u0002\u02b5\u02cb\u0005x=\u0002\u02b6\u02cb\u0005",
    "z>\u0002\u02b7\u02cb\u0005|?\u0002\u02b8\u02cb\u0005~@\u0002\u02b9\u02cb",
    "\u0005\u0080A\u0002\u02ba\u02cb\u0005\u0082B\u0002\u02bb\u02cb\u0005",
    "\u0084C\u0002\u02bc\u02cb\u0005\u0086D\u0002\u02bd\u02cb\u0005\u008a",
    "F\u0002\u02be\u02cb\u0005\u008cG\u0002\u02bf\u02cb\u0005\u008eH\u0002",
    "\u02c0\u02cb\u0005\u0090I\u0002\u02c1\u02cb\u0005\u0092J\u0002\u02c2",
    "\u02cb\u0005\u0094K\u0002\u02c3\u02cb\u0005\u0096L\u0002\u02c4\u02cb",
    "\u0005\u0098M\u0002\u02c5\u02cb\u0005\u009aN\u0002\u02c6\u02cb\u0005",
    "\u009cO\u0002\u02c7\u02cb\u0005\u009eP\u0002\u02c8\u02cb\u0005\u00a0",
    "Q\u0002\u02c9\u02cb\u0005\u00a4S\u0002\u02ca\u02a7\u0003\u0002\u0002",
    "\u0002\u02ca\u02a8\u0003\u0002\u0002\u0002\u02ca\u02a9\u0003\u0002\u0002",
    "\u0002\u02ca\u02aa\u0003\u0002\u0002\u0002\u02ca\u02ab\u0003\u0002\u0002",
    "\u0002\u02ca\u02ac\u0003\u0002\u0002\u0002\u02ca\u02ad\u0003\u0002\u0002",
    "\u0002\u02ca\u02ae\u0003\u0002\u0002\u0002\u02ca\u02af\u0003\u0002\u0002",
    "\u0002\u02ca\u02b0\u0003\u0002\u0002\u0002\u02ca\u02b1\u0003\u0002\u0002",
    "\u0002\u02ca\u02b2\u0003\u0002\u0002\u0002\u02ca\u02b3\u0003\u0002\u0002",
    "\u0002\u02ca\u02b4\u0003\u0002\u0002\u0002\u02ca\u02b5\u0003\u0002\u0002",
    "\u0002\u02ca\u02b6\u0003\u0002\u0002\u0002\u02ca\u02b7\u0003\u0002\u0002",
    "\u0002\u02ca\u02b8\u0003\u0002\u0002\u0002\u02ca\u02b9\u0003\u0002\u0002",
    "\u0002\u02ca\u02ba\u0003\u0002\u0002\u0002\u02ca\u02bb\u0003\u0002\u0002",
    "\u0002\u02ca\u02bc\u0003\u0002\u0002\u0002\u02ca\u02bd\u0003\u0002\u0002",
    "\u0002\u02ca\u02be\u0003\u0002\u0002\u0002\u02ca\u02bf\u0003\u0002\u0002",
    "\u0002\u02ca\u02c0\u0003\u0002\u0002\u0002\u02ca\u02c1\u0003\u0002\u0002",
    "\u0002\u02ca\u02c2\u0003\u0002\u0002\u0002\u02ca\u02c3\u0003\u0002\u0002",
    "\u0002\u02ca\u02c4\u0003\u0002\u0002\u0002\u02ca\u02c5\u0003\u0002\u0002",
    "\u0002\u02ca\u02c6\u0003\u0002\u0002\u0002\u02ca\u02c7\u0003\u0002\u0002",
    "\u0002\u02ca\u02c8\u0003\u0002\u0002\u0002\u02ca\u02c9\u0003\u0002\u0002",
    "\u0002\u02cb\r\u0003\u0002\u0002\u0002\u02cc\u02d7\u0005\u00b6\\\u0002",
    "\u02cd\u02d7\u0005\u00aeX\u0002\u02ce\u02d7\u0005\u00b8]\u0002\u02cf",
    "\u02d7\u0005\u00a8U\u0002\u02d0\u02d7\u0005\u00b4[\u0002\u02d1\u02d7",
    "\u0005\u00a6T\u0002\u02d2\u02d7\u0005\u00b0Y\u0002\u02d3\u02d7\u0005",
    "\u00b2Z\u0002\u02d4\u02d7\u0005\u00aaV\u0002\u02d5\u02d7\u0005\u00ac",
    "W\u0002\u02d6\u02cc\u0003\u0002\u0002\u0002\u02d6\u02cd\u0003\u0002",
    "\u0002\u0002\u02d6\u02ce\u0003\u0002\u0002\u0002\u02d6\u02cf\u0003\u0002",
    "\u0002\u0002\u02d6\u02d0\u0003\u0002\u0002\u0002\u02d6\u02d1\u0003\u0002",
    "\u0002\u0002\u02d6\u02d2\u0003\u0002\u0002\u0002\u02d6\u02d3\u0003\u0002",
    "\u0002\u0002\u02d6\u02d4\u0003\u0002\u0002\u0002\u02d6\u02d5\u0003\u0002",
    "\u0002\u0002\u02d7\u000f\u0003\u0002\u0002\u0002\u02d8\u02e2\u0005\u0102",
    "\u0082\u0002\u02d9\u02e2\u0005\u0104\u0083\u0002\u02da\u02e2\u0005\u0106",
    "\u0084\u0002\u02db\u02e2\u0005\u0108\u0085\u0002\u02dc\u02e2\u0005\u010a",
    "\u0086\u0002\u02dd\u02e2\u0005\u010c\u0087\u0002\u02de\u02e2\u0005\u010e",
    "\u0088\u0002\u02df\u02e2\u0005\u0110\u0089\u0002\u02e0\u02e2\u0005\u0112",
    "\u008a\u0002\u02e1\u02d8\u0003\u0002\u0002\u0002\u02e1\u02d9\u0003\u0002",
    "\u0002\u0002\u02e1\u02da\u0003\u0002\u0002\u0002\u02e1\u02db\u0003\u0002",
    "\u0002\u0002\u02e1\u02dc\u0003\u0002\u0002\u0002\u02e1\u02dd\u0003\u0002",
    "\u0002\u0002\u02e1\u02de\u0003\u0002\u0002\u0002\u02e1\u02df\u0003\u0002",
    "\u0002\u0002\u02e1\u02e0\u0003\u0002\u0002\u0002\u02e2\u0011\u0003\u0002",
    "\u0002\u0002\u02e3\u02f3\u0005\u0122\u0092\u0002\u02e4\u02f3\u0005\u0124",
    "\u0093\u0002\u02e5\u02f3\u0005\u0126\u0094\u0002\u02e6\u02f3\u0005\u0128",
    "\u0095\u0002\u02e7\u02f3\u0005\u012a\u0096\u0002\u02e8\u02f3\u0005\u012c",
    "\u0097\u0002\u02e9\u02f3\u0005\u012e\u0098\u0002\u02ea\u02f3\u0005\u0130",
    "\u0099\u0002\u02eb\u02f3\u0005\u0132\u009a\u0002\u02ec\u02f3\u0005\u014a",
    "\u00a6\u0002\u02ed\u02f3\u0005\u014c\u00a7\u0002\u02ee\u02f3\u0005\u014e",
    "\u00a8\u0002\u02ef\u02f3\u0005\u0150\u00a9\u0002\u02f0\u02f3\u0005\u0152",
    "\u00aa\u0002\u02f1\u02f3\u0005\u0154\u00ab\u0002\u02f2\u02e3\u0003\u0002",
    "\u0002\u0002\u02f2\u02e4\u0003\u0002\u0002\u0002\u02f2\u02e5\u0003\u0002",
    "\u0002\u0002\u02f2\u02e6\u0003\u0002\u0002\u0002\u02f2\u02e7\u0003\u0002",
    "\u0002\u0002\u02f2\u02e8\u0003\u0002\u0002\u0002\u02f2\u02e9\u0003\u0002",
    "\u0002\u0002\u02f2\u02ea\u0003\u0002\u0002\u0002\u02f2\u02eb\u0003\u0002",
    "\u0002\u0002\u02f2\u02ec\u0003\u0002\u0002\u0002\u02f2\u02ed\u0003\u0002",
    "\u0002\u0002\u02f2\u02ee\u0003\u0002\u0002\u0002\u02f2\u02ef\u0003\u0002",
    "\u0002\u0002\u02f2\u02f0\u0003\u0002\u0002\u0002\u02f2\u02f1\u0003\u0002",
    "\u0002\u0002\u02f3\u0013\u0003\u0002\u0002\u0002\u02f4\u02f8\u0005\u0156",
    "\u00ac\u0002\u02f5\u02f8\u0005\u0158\u00ad\u0002\u02f6\u02f8\u0005\u015a",
    "\u00ae\u0002\u02f7\u02f4\u0003\u0002\u0002\u0002\u02f7\u02f5\u0003\u0002",
    "\u0002\u0002\u02f7\u02f6\u0003\u0002\u0002\u0002\u02f8\u0015\u0003\u0002",
    "\u0002\u0002\u02f9\u0304\u0005\u015e\u00b0\u0002\u02fa\u0304\u0005\u0160",
    "\u00b1\u0002\u02fb\u0304\u0005\u0162\u00b2\u0002\u02fc\u0304\u0005\u0166",
    "\u00b4\u0002\u02fd\u0304\u0005\u0168\u00b5\u0002\u02fe\u0304\u0005\u016a",
    "\u00b6\u0002\u02ff\u0304\u0005\u016e\u00b8\u0002\u0300\u0304\u0005\u0164",
    "\u00b3\u0002\u0301\u0304\u0005\u016c\u00b7\u0002\u0302\u0304\u0005\u0170",
    "\u00b9\u0002\u0303\u02f9\u0003\u0002\u0002\u0002\u0303\u02fa\u0003\u0002",
    "\u0002\u0002\u0303\u02fb\u0003\u0002\u0002\u0002\u0303\u02fc\u0003\u0002",
    "\u0002\u0002\u0303\u02fd\u0003\u0002\u0002\u0002\u0303\u02fe\u0003\u0002",
    "\u0002\u0002\u0303\u02ff\u0003\u0002\u0002\u0002\u0303\u0300\u0003\u0002",
    "\u0002\u0002\u0303\u0301\u0003\u0002\u0002\u0002\u0303\u0302\u0003\u0002",
    "\u0002\u0002\u0304\u0017\u0003\u0002\u0002\u0002\u0305\u031f\u0005\u0182",
    "\u00c2\u0002\u0306\u031f\u0005\u0184\u00c3\u0002\u0307\u031f\u0005\u0186",
    "\u00c4\u0002\u0308\u031f\u0005\u0188\u00c5\u0002\u0309\u031f\u0005\u018a",
    "\u00c6\u0002\u030a\u031f\u0005\u018c\u00c7\u0002\u030b\u031f\u0005\u018e",
    "\u00c8\u0002\u030c\u031f\u0005\u0190\u00c9\u0002\u030d\u031f\u0005\u01a8",
    "\u00d5\u0002\u030e\u031f\u0005\u01aa\u00d6\u0002\u030f\u031f\u0005\u01ac",
    "\u00d7\u0002\u0310\u031f\u0005\u01ae\u00d8\u0002\u0311\u031f\u0005\u01b0",
    "\u00d9\u0002\u0312\u031f\u0005\u01b4\u00db\u0002\u0313\u031f\u0005\u01b6",
    "\u00dc\u0002\u0314\u031f\u0005\u01b8\u00dd\u0002\u0315\u031f\u0005\u01ba",
    "\u00de\u0002\u0316\u031f\u0005\u01bc\u00df\u0002\u0317\u031f\u0005\u01ca",
    "\u00e6\u0002\u0318\u031f\u0005\u01cc\u00e7\u0002\u0319\u031f\u0005\u01ce",
    "\u00e8\u0002\u031a\u031f\u0005\u01d0\u00e9\u0002\u031b\u031f\u0005\u01d2",
    "\u00ea\u0002\u031c\u031f\u0005\u01d4\u00eb\u0002\u031d\u031f\u0005\u01d6",
    "\u00ec\u0002\u031e\u0305\u0003\u0002\u0002\u0002\u031e\u0306\u0003\u0002",
    "\u0002\u0002\u031e\u0307\u0003\u0002\u0002\u0002\u031e\u0308\u0003\u0002",
    "\u0002\u0002\u031e\u0309\u0003\u0002\u0002\u0002\u031e\u030a\u0003\u0002",
    "\u0002\u0002\u031e\u030b\u0003\u0002\u0002\u0002\u031e\u030c\u0003\u0002",
    "\u0002\u0002\u031e\u030d\u0003\u0002\u0002\u0002\u031e\u030e\u0003\u0002",
    "\u0002\u0002\u031e\u030f\u0003\u0002\u0002\u0002\u031e\u0310\u0003\u0002",
    "\u0002\u0002\u031e\u0311\u0003\u0002\u0002\u0002\u031e\u0312\u0003\u0002",
    "\u0002\u0002\u031e\u0313\u0003\u0002\u0002\u0002\u031e\u0314\u0003\u0002",
    "\u0002\u0002\u031e\u0315\u0003\u0002\u0002\u0002\u031e\u0316\u0003\u0002",
    "\u0002\u0002\u031e\u0317\u0003\u0002\u0002\u0002\u031e\u0318\u0003\u0002",
    "\u0002\u0002\u031e\u0319\u0003\u0002\u0002\u0002\u031e\u031a\u0003\u0002",
    "\u0002\u0002\u031e\u031b\u0003\u0002\u0002\u0002\u031e\u031c\u0003\u0002",
    "\u0002\u0002\u031e\u031d\u0003\u0002\u0002\u0002\u031f\u0019\u0003\u0002",
    "\u0002\u0002\u0320\u0328\u0005\u01e0\u00f1\u0002\u0321\u0328\u0005\u01e2",
    "\u00f2\u0002\u0322\u0328\u0005\u01e4\u00f3\u0002\u0323\u0328\u0005\u01e6",
    "\u00f4\u0002\u0324\u0328\u0005\u01e8\u00f5\u0002\u0325\u0328\u0005\u01ea",
    "\u00f6\u0002\u0326\u0328\u0005\u01ee\u00f8\u0002\u0327\u0320\u0003\u0002",
    "\u0002\u0002\u0327\u0321\u0003\u0002\u0002\u0002\u0327\u0322\u0003\u0002",
    "\u0002\u0002\u0327\u0323\u0003\u0002\u0002\u0002\u0327\u0324\u0003\u0002",
    "\u0002\u0002\u0327\u0325\u0003\u0002\u0002\u0002\u0327\u0326\u0003\u0002",
    "\u0002\u0002\u0328\u001b\u0003\u0002\u0002\u0002\u0329\u032a\u0007 ",
    "\u0002\u0002\u032a\u032c\t\u0002\u0002\u0002\u032b\u032d\u0005\u0246",
    "\u0124\u0002\u032c\u032b\u0003\u0002\u0002\u0002\u032c\u032d\u0003\u0002",
    "\u0002\u0002\u032d\u032e\u0003\u0002\u0002\u0002\u032e\u0332\u0005\u020e",
    "\u0108\u0002\u032f\u0331\u00054\u001b\u0002\u0330\u032f\u0003\u0002",
    "\u0002\u0002\u0331\u0334\u0003\u0002\u0002\u0002\u0332\u0330\u0003\u0002",
    "\u0002\u0002\u0332\u0333\u0003\u0002\u0002\u0002\u0333\u001d\u0003\u0002",
    "\u0002\u0002\u0334\u0332\u0003\u0002\u0002\u0002\u0335\u0337\u0007 ",
    "\u0002\u0002\u0336\u0338\u00056\u001c\u0002\u0337\u0336\u0003\u0002",
    "\u0002\u0002\u0337\u0338\u0003\u0002\u0002\u0002\u0338\u0339\u0003\u0002",
    "\u0002\u0002\u0339\u033b\u0007\u015e\u0002\u0002\u033a\u033c\u0005\u0246",
    "\u0124\u0002\u033b\u033a\u0003\u0002\u0002\u0002\u033b\u033c\u0003\u0002",
    "\u0002\u0002\u033c\u033d\u0003\u0002\u0002\u0002\u033d\u033e\u0005\u01f4",
    "\u00fb\u0002\u033e\u033f\u0007l\u0002\u0002\u033f\u0340\u0007\u0205",
    "\u0002\u0002\u0340\u0347\u00058\u001d\u0002\u0341\u0342\u0007l\u0002",
    "\u0002\u0342\u0344\u0007\u0136\u0002\u0002\u0343\u0345\u0007h\u0002",
    "\u0002\u0344\u0343\u0003\u0002\u0002\u0002\u0344\u0345\u0003\u0002\u0002",
    "\u0002\u0345\u0346\u0003\u0002\u0002\u0002\u0346\u0348\u0007\u01de\u0002",
    "\u0002\u0347\u0341\u0003\u0002\u0002\u0002\u0347\u0348\u0003\u0002\u0002",
    "\u0002\u0348\u034a\u0003\u0002\u0002\u0002\u0349\u034b\u0005@!\u0002",
    "\u034a\u0349\u0003\u0002\u0002\u0002\u034a\u034b\u0003\u0002\u0002\u0002",
    "\u034b\u034e\u0003\u0002\u0002\u0002\u034c\u034d\u0007\u0133\u0002\u0002",
    "\u034d\u034f\u0007\u040d\u0002\u0002\u034e\u034c\u0003\u0002\u0002\u0002",
    "\u034e\u034f\u0003\u0002\u0002\u0002\u034f\u0350\u0003\u0002\u0002\u0002",
    "\u0350\u0351\u0007\u0150\u0002\u0002\u0351\u0352\u0005\u015c\u00af\u0002",
    "\u0352\u001f\u0003\u0002\u0002\u0002\u0353\u0355\u0007 \u0002\u0002",
    "\u0354\u0356\t\u0003\u0002\u0002\u0355\u0354\u0003\u0002\u0002\u0002",
    "\u0355\u0356\u0003\u0002\u0002\u0002\u0356\u0358\u0003\u0002\u0002\u0002",
    "\u0357\u0359\t\u0004\u0002\u0002\u0358\u0357\u0003\u0002\u0002\u0002",
    "\u0358\u0359\u0003\u0002\u0002\u0002\u0359\u035a\u0003\u0002\u0002\u0002",
    "\u035a\u035b\u0007J\u0002\u0002\u035b\u035d\u0005\u020e\u0108\u0002",
    "\u035c\u035e\u0005B\"\u0002\u035d\u035c\u0003\u0002\u0002\u0002\u035d",
    "\u035e\u0003\u0002\u0002\u0002\u035e\u035f\u0003\u0002\u0002\u0002\u035f",
    "\u0360\u0007l\u0002\u0002\u0360\u0361\u0005\u01f6\u00fc\u0002\u0361",
    "\u0365\u0005\u0232\u011a\u0002\u0362\u0364\u0005D#\u0002\u0363\u0362",
    "\u0003\u0002\u0002\u0002\u0364\u0367\u0003\u0002\u0002\u0002\u0365\u0363",
    "\u0003\u0002\u0002\u0002\u0365\u0366\u0003\u0002\u0002\u0002\u0366\u0374",
    "\u0003\u0002\u0002\u0002\u0367\u0365\u0003\u0002\u0002\u0002\u0368\u036a",
    "\u0007\u0114\u0002\u0002\u0369\u036b\u0007\u03f5\u0002\u0002\u036a\u0369",
    "\u0003\u0002\u0002\u0002\u036a\u036b\u0003\u0002\u0002\u0002\u036b\u036c",
    "\u0003\u0002\u0002\u0002\u036c\u0373\t\u0005\u0002\u0002\u036d\u036f",
    "\u0007_\u0002\u0002\u036e\u0370\u0007\u03f5\u0002\u0002\u036f\u036e",
    "\u0003\u0002\u0002\u0002\u036f\u0370\u0003\u0002\u0002\u0002\u0370\u0371",
    "\u0003\u0002\u0002\u0002\u0371\u0373\t\u0006\u0002\u0002\u0372\u0368",
    "\u0003\u0002\u0002\u0002\u0372\u036d\u0003\u0002\u0002\u0002\u0373\u0376",
    "\u0003\u0002\u0002\u0002\u0374\u0372\u0003\u0002\u0002\u0002\u0374\u0375",
    "\u0003\u0002\u0002\u0002\u0375!\u0003\u0002\u0002\u0002\u0376\u0374",
    "\u0003\u0002\u0002\u0002\u0377\u0378\u0007 \u0002\u0002\u0378\u0379",
    "\u0007\u0195\u0002\u0002\u0379\u037a\u0007D\u0002\u0002\u037a\u037b",
    "\u0005\u020e\u0108\u0002\u037b\u037c\u0007\u0007\u0002\u0002\u037c\u037d",
    "\u0007\u0238\u0002\u0002\u037d\u0383\u0007\u040d\u0002\u0002\u037e\u0380",
    "\u0007\u0180\u0002\u0002\u037f\u0381\u0007\u03f5\u0002\u0002\u0380\u037f",
    "\u0003\u0002\u0002\u0002\u0380\u0381\u0003\u0002\u0002\u0002\u0381\u0382",
    "\u0003\u0002\u0002\u0002\u0382\u0384\u0005\u0216\u010c\u0002\u0383\u037e",
    "\u0003\u0002\u0002\u0002\u0383\u0384\u0003\u0002\u0002\u0002\u0384\u038a",
    "\u0003\u0002\u0002\u0002\u0385\u0387\u0007\u0239\u0002\u0002\u0386\u0388",
    "\u0007\u03f5\u0002\u0002\u0387\u0386\u0003\u0002\u0002\u0002\u0387\u0388",
    "\u0003\u0002\u0002\u0002\u0388\u0389\u0003\u0002\u0002\u0002\u0389\u038b",
    "\u0005\u0216\u010c\u0002\u038a\u0385\u0003\u0002\u0002\u0002\u038a\u038b",
    "\u0003\u0002\u0002\u0002\u038b\u0391\u0003\u0002\u0002\u0002\u038c\u038e",
    "\u0007\u01e8\u0002\u0002\u038d\u038f\u0007\u03f5\u0002\u0002\u038e\u038d",
    "\u0003\u0002\u0002\u0002\u038e\u038f\u0003\u0002\u0002\u0002\u038f\u0390",
    "\u0003\u0002\u0002\u0002\u0390\u0392\u0005\u0216\u010c\u0002\u0391\u038c",
    "\u0003\u0002\u0002\u0002\u0391\u0392\u0003\u0002\u0002\u0002\u0392\u0398",
    "\u0003\u0002\u0002\u0002\u0393\u0395\u0007\u01c3\u0002\u0002\u0394\u0396",
    "\u0007\u03f5\u0002\u0002\u0395\u0394\u0003\u0002\u0002\u0002\u0395\u0396",
    "\u0003\u0002\u0002\u0002\u0396\u0397\u0003\u0002\u0002\u0002\u0397\u0399",
    "\u0005\u020e\u0108\u0002\u0398\u0393\u0003\u0002\u0002\u0002\u0398\u0399",
    "\u0003\u0002\u0002\u0002\u0399\u039b\u0003\u0002\u0002\u0002\u039a\u039c",
    "\u0007\u0247\u0002\u0002\u039b\u039a\u0003\u0002\u0002\u0002\u039b\u039c",
    "\u0003\u0002\u0002\u0002\u039c\u03a2\u0003\u0002\u0002\u0002\u039d\u039f",
    "\u0007\u0133\u0002\u0002\u039e\u03a0\u0007\u03f5\u0002\u0002\u039f\u039e",
    "\u0003\u0002\u0002\u0002\u039f\u03a0\u0003\u0002\u0002\u0002\u03a0\u03a1",
    "\u0003\u0002\u0002\u0002\u03a1\u03a3\u0007\u040d\u0002\u0002\u03a2\u039d",
    "\u0003\u0002\u0002\u0002\u03a2\u03a3\u0003\u0002\u0002\u0002\u03a3\u03a4",
    "\u0003\u0002\u0002\u0002\u03a4\u03a6\u0007\u0158\u0002\u0002\u03a5\u03a7",
    "\u0007\u03f5\u0002\u0002\u03a6\u03a5\u0003\u0002\u0002\u0002\u03a6\u03a7",
    "\u0003\u0002\u0002\u0002\u03a7\u03a8\u0003\u0002\u0002\u0002\u03a8\u03a9",
    "\u0005\u0204\u0103\u0002\u03a9#\u0003\u0002\u0002\u0002\u03aa\u03ac",
    "\u0007 \u0002\u0002\u03ab\u03ad\u00056\u001c\u0002\u03ac\u03ab\u0003",
    "\u0002\u0002\u0002\u03ac\u03ad\u0003\u0002\u0002\u0002\u03ad\u03ae\u0003",
    "\u0002\u0002\u0002\u03ae\u03af\u0007w\u0002\u0002\u03af\u03b0\u0005",
    "\u01f4\u00fb\u0002\u03b0\u03b2\u0007\u03fe\u0002\u0002\u03b1\u03b3\u0005",
    "F$\u0002\u03b2\u03b1\u0003\u0002\u0002\u0002\u03b2\u03b3\u0003\u0002",
    "\u0002\u0002\u03b3\u03b8\u0003\u0002\u0002\u0002\u03b4\u03b5\u0007\u0400",
    "\u0002\u0002\u03b5\u03b7\u0005F$\u0002\u03b6\u03b4\u0003\u0002\u0002",
    "\u0002\u03b7\u03ba\u0003\u0002\u0002\u0002\u03b8\u03b6\u0003\u0002\u0002",
    "\u0002\u03b8\u03b9\u0003\u0002\u0002\u0002\u03b9\u03bb\u0003\u0002\u0002",
    "\u0002\u03ba\u03b8\u0003\u0002\u0002\u0002\u03bb\u03bf\u0007\u03ff\u0002",
    "\u0002\u03bc\u03be\u0005J&\u0002\u03bd\u03bc\u0003\u0002\u0002\u0002",
    "\u03be\u03c1\u0003\u0002\u0002\u0002\u03bf\u03bd\u0003\u0002\u0002\u0002",
    "\u03bf\u03c0\u0003\u0002\u0002\u0002\u03c0\u03c2\u0003\u0002\u0002\u0002",
    "\u03c1\u03bf\u0003\u0002\u0002\u0002\u03c2\u03c3\u0005\u015c\u00af\u0002",
    "\u03c3%\u0003\u0002\u0002\u0002\u03c4\u03c6\u0007 \u0002\u0002\u03c5",
    "\u03c7\u00056\u001c\u0002\u03c6\u03c5\u0003\u0002\u0002\u0002\u03c6",
    "\u03c7\u0003\u0002\u0002\u0002\u03c7\u03c8\u0003\u0002\u0002\u0002\u03c8",
    "\u03c9\u0007\u0172\u0002\u0002\u03c9\u03ca\u0005\u01f4\u00fb\u0002\u03ca",
    "\u03cc\u0007\u03fe\u0002\u0002\u03cb\u03cd\u0005H%\u0002\u03cc\u03cb",
    "\u0003\u0002\u0002\u0002\u03cc\u03cd\u0003\u0002\u0002\u0002\u03cd\u03d2",
    "\u0003\u0002\u0002\u0002\u03ce\u03cf\u0007\u0400\u0002\u0002\u03cf\u03d1",
    "\u0005H%\u0002\u03d0\u03ce\u0003\u0002\u0002\u0002\u03d1\u03d4\u0003",
    "\u0002\u0002\u0002\u03d2\u03d0\u0003\u0002\u0002\u0002\u03d2\u03d3\u0003",
    "\u0002\u0002\u0002\u03d3\u03d5\u0003\u0002\u0002\u0002\u03d4\u03d2\u0003",
    "\u0002\u0002\u0002\u03d5\u03d6\u0007\u03ff\u0002\u0002\u03d6\u03d7\u0007",
    "\u01fc\u0002\u0002\u03d7\u03db\u0005\u0222\u0112\u0002\u03d8\u03da\u0005",
    "J&\u0002\u03d9\u03d8\u0003\u0002\u0002\u0002\u03da\u03dd\u0003\u0002",
    "\u0002\u0002\u03db\u03d9\u0003\u0002\u0002\u0002\u03db\u03dc\u0003\u0002",
    "\u0002\u0002\u03dc\u03e0\u0003\u0002\u0002\u0002\u03dd\u03db\u0003\u0002",
    "\u0002\u0002\u03de\u03e1\u0005\u015c\u00af\u0002\u03df\u03e1\u0005\u016c",
    "\u00b7\u0002\u03e0\u03de\u0003\u0002\u0002\u0002\u03e0\u03df\u0003\u0002",
    "\u0002\u0002\u03e1\'\u0003\u0002\u0002\u0002\u03e2\u03e3\u0007 \u0002",
    "\u0002\u03e3\u03e4\u0007\u0207\u0002\u0002\u03e4\u03e5\u0005\u020e\u0108",
    "\u0002\u03e5\u03e6\u0007>\u0002\u0002\u03e6\u03e7\u0007\u0145\u0002",
    "\u0002\u03e7\u03e8\u0007\u024b\u0002\u0002\u03e8\u03e9\t\u0007\u0002",
    "\u0002\u03e9\u03ea\u0007\u01ce\u0002\u0002\u03ea\u03eb\u0007\u03fe\u0002",
    "\u0002\u03eb\u03f0\u0005L\'\u0002\u03ec\u03ed\u0007\u0400\u0002\u0002",
    "\u03ed\u03ef\u0005L\'\u0002\u03ee\u03ec\u0003\u0002\u0002\u0002\u03ef",
    "\u03f2\u0003\u0002\u0002\u0002\u03f0\u03ee\u0003\u0002\u0002\u0002\u03f0",
    "\u03f1\u0003\u0002\u0002\u0002\u03f1\u03f3\u0003\u0002\u0002\u0002\u03f2",
    "\u03f0\u0003\u0002\u0002\u0002\u03f3\u03f4\u0007\u03ff\u0002\u0002\u03f4",
    ")\u0003\u0002\u0002\u0002\u03f5\u03f7\u0007 \u0002\u0002\u03f6\u03f8",
    "\u0007\u022f\u0002\u0002\u03f7\u03f6\u0003\u0002\u0002\u0002\u03f7\u03f8",
    "\u0003\u0002\u0002\u0002\u03f8\u03f9\u0003\u0002\u0002\u0002\u03f9\u03fb",
    "\u0007\u009c\u0002\u0002\u03fa\u03fc\u0005\u0246\u0124\u0002\u03fb\u03fa",
    "\u0003\u0002\u0002\u0002\u03fb\u03fc\u0003\u0002\u0002\u0002\u03fc\u03fd",
    "\u0003\u0002\u0002\u0002\u03fd\u0405\u0005\u01f6\u00fc\u0002\u03fe\u03ff",
    "\u0007Z\u0002\u0002\u03ff\u0406\u0005\u01f6\u00fc\u0002\u0400\u0401",
    "\u0007\u03fe\u0002\u0002\u0401\u0402\u0007Z\u0002\u0002\u0402\u0403",
    "\u0005\u01f6\u00fc\u0002\u0403\u0404\u0007\u03ff\u0002\u0002\u0404\u0406",
    "\u0003\u0002\u0002\u0002\u0405\u03fe\u0003\u0002\u0002\u0002\u0405\u0400",
    "\u0003\u0002\u0002\u0002\u0406\u0444\u0003\u0002\u0002\u0002\u0407\u0409",
    "\u0007 \u0002\u0002\u0408\u040a\u0007\u022f\u0002\u0002\u0409\u0408",
    "\u0003\u0002\u0002\u0002\u0409\u040a\u0003\u0002\u0002\u0002\u040a\u040b",
    "\u0003\u0002\u0002\u0002\u040b\u040d\u0007\u009c\u0002\u0002\u040c\u040e",
    "\u0005\u0246\u0124\u0002\u040d\u040c\u0003\u0002\u0002\u0002\u040d\u040e",
    "\u0003\u0002\u0002\u0002\u040e\u040f\u0003\u0002\u0002\u0002\u040f\u0411",
    "\u0005\u01f6\u00fc\u0002\u0410\u0412\u0005N(\u0002\u0411\u0410\u0003",
    "\u0002\u0002\u0002\u0411\u0412\u0003\u0002\u0002\u0002\u0412\u041d\u0003",
    "\u0002\u0002\u0002\u0413\u041a\u0005`1\u0002\u0414\u0416\u0007\u0400",
    "\u0002\u0002\u0415\u0414\u0003\u0002\u0002\u0002\u0415\u0416\u0003\u0002",
    "\u0002\u0002\u0416\u0417\u0003\u0002\u0002\u0002\u0417\u0419\u0005`",
    "1\u0002\u0418\u0415\u0003\u0002\u0002\u0002\u0419\u041c\u0003\u0002",
    "\u0002\u0002\u041a\u0418\u0003\u0002\u0002\u0002\u041a\u041b\u0003\u0002",
    "\u0002\u0002\u041b\u041e\u0003\u0002\u0002\u0002\u041c\u041a\u0003\u0002",
    "\u0002\u0002\u041d\u0413\u0003\u0002\u0002\u0002\u041d\u041e\u0003\u0002",
    "\u0002\u0002\u041e\u0420\u0003\u0002\u0002\u0002\u041f\u0421\u0005d",
    "3\u0002\u0420\u041f\u0003\u0002\u0002\u0002\u0420\u0421\u0003\u0002",
    "\u0002\u0002\u0421\u0423\u0003\u0002\u0002\u0002\u0422\u0424\t\b\u0002",
    "\u0002\u0423\u0422\u0003\u0002\u0002\u0002\u0423\u0424\u0003\u0002\u0002",
    "\u0002\u0424\u0426\u0003\u0002\u0002\u0002\u0425\u0427\u0007\r\u0002",
    "\u0002\u0426\u0425\u0003\u0002\u0002\u0002\u0426\u0427\u0003\u0002\u0002",
    "\u0002\u0427\u0428\u0003\u0002\u0002\u0002\u0428\u0429\u0005\u00b6\\",
    "\u0002\u0429\u0444\u0003\u0002\u0002\u0002\u042a\u042c\u0007 \u0002",
    "\u0002\u042b\u042d\u0007\u022f\u0002\u0002\u042c\u042b\u0003\u0002\u0002",
    "\u0002\u042c\u042d\u0003\u0002\u0002\u0002\u042d\u042e\u0003\u0002\u0002",
    "\u0002\u042e\u0430\u0007\u009c\u0002\u0002\u042f\u0431\u0005\u0246\u0124",
    "\u0002\u0430\u042f\u0003\u0002\u0002\u0002\u0430\u0431\u0003\u0002\u0002",
    "\u0002\u0431\u0432\u0003\u0002\u0002\u0002\u0432\u0433\u0005\u01f6\u00fc",
    "\u0002\u0433\u043e\u0005N(\u0002\u0434\u043b\u0005`1\u0002\u0435\u0437",
    "\u0007\u0400\u0002\u0002\u0436\u0435\u0003\u0002\u0002\u0002\u0436\u0437",
    "\u0003\u0002\u0002\u0002\u0437\u0438\u0003\u0002\u0002\u0002\u0438\u043a",
    "\u0005`1\u0002\u0439\u0436\u0003\u0002\u0002\u0002\u043a\u043d\u0003",
    "\u0002\u0002\u0002\u043b\u0439\u0003\u0002\u0002\u0002\u043b\u043c\u0003",
    "\u0002\u0002\u0002\u043c\u043f\u0003\u0002\u0002\u0002\u043d\u043b\u0003",
    "\u0002\u0002\u0002\u043e\u0434\u0003\u0002\u0002\u0002\u043e\u043f\u0003",
    "\u0002\u0002\u0002\u043f\u0441\u0003\u0002\u0002\u0002\u0440\u0442\u0005",
    "d3\u0002\u0441\u0440\u0003\u0002\u0002\u0002\u0441\u0442\u0003\u0002",
    "\u0002\u0002\u0442\u0444\u0003\u0002\u0002\u0002\u0443\u03f5\u0003\u0002",
    "\u0002\u0002\u0443\u0407\u0003\u0002\u0002\u0002\u0443\u042a\u0003\u0002",
    "\u0002\u0002\u0444+\u0003\u0002\u0002\u0002\u0445\u0446\u0007 \u0002",
    "\u0002\u0446\u0447\u0007\u022e\u0002\u0002\u0447\u0448\u0005\u020e\u0108",
    "\u0002\u0448\u0449\u0007\u0007\u0002\u0002\u0449\u044a\u0007\u0146\u0002",
    "\u0002\u044a\u044e\u0007\u040d\u0002\u0002\u044b\u044c\u0007\u016a\u0002",
    "\u0002\u044c\u044d\u0007\u03f5\u0002\u0002\u044d\u044f\u0005\u0216\u010c",
    "\u0002\u044e\u044b\u0003\u0002\u0002\u0002\u044e\u044f\u0003\u0002\u0002",
    "\u0002\u044f\u0455\u0003\u0002\u0002\u0002\u0450\u0452\u0007\u0158\u0002",
    "\u0002\u0451\u0453\u0007\u03f5\u0002\u0002\u0452\u0451\u0003\u0002\u0002",
    "\u0002\u0452\u0453\u0003\u0002\u0002\u0002\u0453\u0454\u0003\u0002\u0002",
    "\u0002\u0454\u0456\u0005\u0204\u0103\u0002\u0455\u0450\u0003\u0002\u0002",
    "\u0002\u0455\u0456\u0003\u0002\u0002\u0002\u0456-\u0003\u0002\u0002",
    "\u0002\u0457\u0458\u0007 \u0002\u0002\u0458\u0459\u0007\u022e\u0002",
    "\u0002\u0459\u045a\u0005\u020e\u0108\u0002\u045a\u045b\u0007\u0007\u0002",
    "\u0002\u045b\u045c\u0007\u0146\u0002\u0002\u045c\u045d\u0007\u040d\u0002",
    "\u0002\u045d\u045e\u0007\u00aa\u0002\u0002\u045e\u045f\u0007\u0195\u0002",
    "\u0002\u045f\u0460\u0007D\u0002\u0002\u0460\u0466\u0005\u020e\u0108",
    "\u0002\u0461\u0463\u0007\u0166\u0002\u0002\u0462\u0464\u0007\u03f5\u0002",
    "\u0002\u0463\u0462\u0003\u0002\u0002\u0002\u0463\u0464\u0003\u0002\u0002",
    "\u0002\u0464\u0465\u0003\u0002\u0002\u0002\u0465\u0467\u0005\u0216\u010c",
    "\u0002\u0466\u0461\u0003\u0002\u0002\u0002\u0466\u0467\u0003\u0002\u0002",
    "\u0002\u0467\u046d\u0003\u0002\u0002\u0002\u0468\u046a\u0007\u0180\u0002",
    "\u0002\u0469\u046b\u0007\u03f5\u0002\u0002\u046a\u0469\u0003\u0002\u0002",
    "\u0002\u046a\u046b\u0003\u0002\u0002\u0002\u046b\u046c\u0003\u0002\u0002",
    "\u0002\u046c\u046e\u0005\u0216\u010c\u0002\u046d\u0468\u0003\u0002\u0002",
    "\u0002\u046d\u046e\u0003\u0002\u0002\u0002\u046e\u0474\u0003\u0002\u0002",
    "\u0002\u046f\u0471\u0007\u0119\u0002\u0002\u0470\u0472\u0007\u03f5\u0002",
    "\u0002\u0471\u0470\u0003\u0002\u0002\u0002\u0471\u0472\u0003\u0002\u0002",
    "\u0002\u0472\u0473\u0003\u0002\u0002\u0002\u0473\u0475\u0005\u0216\u010c",
    "\u0002\u0474\u046f\u0003\u0002\u0002\u0002\u0474\u0475\u0003\u0002\u0002",
    "\u0002\u0475\u047b\u0003\u0002\u0002\u0002\u0476\u0478\u0007\u01af\u0002",
    "\u0002\u0477\u0479\u0007\u03f5\u0002\u0002\u0478\u0477\u0003\u0002\u0002",
    "\u0002\u0478\u0479\u0003\u0002\u0002\u0002\u0479\u047a\u0003\u0002\u0002",
    "\u0002\u047a\u047c\u0005\u0216\u010c\u0002\u047b\u0476\u0003\u0002\u0002",
    "\u0002\u047b\u047c\u0003\u0002\u0002\u0002\u047c\u0482\u0003\u0002\u0002",
    "\u0002\u047d\u047f\u0007\u01c3\u0002\u0002\u047e\u0480\u0007\u03f5\u0002",
    "\u0002\u047f\u047e\u0003\u0002\u0002\u0002\u047f\u0480\u0003\u0002\u0002",
    "\u0002\u0480\u0481\u0003\u0002\u0002\u0002\u0481\u0483\u0005\u020e\u0108",
    "\u0002\u0482\u047d\u0003\u0002\u0002\u0002\u0482\u0483\u0003\u0002\u0002",
    "\u0002\u0483\u0485\u0003\u0002\u0002\u0002\u0484\u0486\u0007\u0247\u0002",
    "\u0002\u0485\u0484\u0003\u0002\u0002\u0002\u0485\u0486\u0003\u0002\u0002",
    "\u0002\u0486\u048c\u0003\u0002\u0002\u0002\u0487\u0489\u0007\u0133\u0002",
    "\u0002\u0488\u048a\u0007\u03f5\u0002\u0002\u0489\u0488\u0003\u0002\u0002",
    "\u0002\u0489\u048a\u0003\u0002\u0002\u0002\u048a\u048b\u0003\u0002\u0002",
    "\u0002\u048b\u048d\u0007\u040d\u0002\u0002\u048c\u0487\u0003\u0002\u0002",
    "\u0002\u048c\u048d\u0003\u0002\u0002\u0002\u048d\u048e\u0003\u0002\u0002",
    "\u0002\u048e\u0490\u0007\u0158\u0002\u0002\u048f\u0491\u0007\u03f5\u0002",
    "\u0002\u0490\u048f\u0003\u0002\u0002\u0002\u0490\u0491\u0003\u0002\u0002",
    "\u0002\u0491\u0492\u0003\u0002\u0002\u0002\u0492\u0493\u0005\u0204\u0103",
    "\u0002\u0493/\u0003\u0002\u0002\u0002\u0494\u0496\u0007 \u0002\u0002",
    "\u0495\u0497\u00056\u001c\u0002\u0496\u0495\u0003\u0002\u0002\u0002",
    "\u0496\u0497\u0003\u0002\u0002\u0002\u0497\u0498\u0003\u0002\u0002\u0002",
    "\u0498\u0499\u0007\u00a1\u0002\u0002\u0499\u049a\u0005\u01f4\u00fb\u0002",
    "\u049a\u049b\t\t\u0002\u0002\u049b\u049c\t\n\u0002\u0002\u049c\u049d",
    "\u0007l\u0002\u0002\u049d\u049e\u0005\u01f6\u00fc\u0002\u049e\u049f",
    "\u0007<\u0002\u0002\u049f\u04a0\u00072\u0002\u0002\u04a0\u04a3\u0007",
    "\u0201\u0002\u0002\u04a1\u04a2\t\u000b\u0002\u0002\u04a2\u04a4\u0005",
    "\u01f4\u00fb\u0002\u04a3\u04a1\u0003\u0002\u0002\u0002\u04a3\u04a4\u0003",
    "\u0002\u0002\u0002\u04a4\u04a5\u0003\u0002\u0002\u0002\u04a5\u04a6\u0005",
    "\u015c\u00af\u0002\u04a61\u0003\u0002\u0002\u0002\u04a7\u04aa\u0007",
    " \u0002\u0002\u04a8\u04a9\u0007p\u0002\u0002\u04a9\u04ab\u0007\u0081",
    "\u0002\u0002\u04aa\u04a8\u0003\u0002\u0002\u0002\u04aa\u04ab\u0003\u0002",
    "\u0002\u0002\u04ab\u04af\u0003\u0002\u0002\u0002\u04ac\u04ad\u0007\u0114",
    "\u0002\u0002\u04ad\u04ae\u0007\u03f5\u0002\u0002\u04ae\u04b0\t\f\u0002",
    "\u0002\u04af\u04ac\u0003\u0002\u0002\u0002\u04af\u04b0\u0003\u0002\u0002",
    "\u0002\u04b0\u04b2\u0003\u0002\u0002\u0002\u04b1\u04b3\u00056\u001c",
    "\u0002\u04b2\u04b1\u0003\u0002\u0002\u0002\u04b2\u04b3\u0003\u0002\u0002",
    "\u0002\u04b3\u04b7\u0003\u0002\u0002\u0002\u04b4\u04b5\u0007\u0091\u0002",
    "\u0002\u04b5\u04b6\u0007\u0206\u0002\u0002\u04b6\u04b8\t\r\u0002\u0002",
    "\u04b7\u04b4\u0003\u0002\u0002\u0002\u04b7\u04b8\u0003\u0002\u0002\u0002",
    "\u04b8\u04b9\u0003\u0002\u0002\u0002\u04b9\u04ba\u0007\u0244\u0002\u0002",
    "\u04ba\u04bf\u0005\u01f4\u00fb\u0002\u04bb\u04bc\u0007\u03fe\u0002\u0002",
    "\u04bc\u04bd\u0005\u022e\u0118\u0002\u04bd\u04be\u0007\u03ff\u0002\u0002",
    "\u04be\u04c0\u0003\u0002\u0002\u0002\u04bf\u04bb\u0003\u0002\u0002\u0002",
    "\u04bf\u04c0\u0003\u0002\u0002\u0002\u04c0\u04c1\u0003\u0002\u0002\u0002",
    "\u04c1\u04c2\u0007\r\u0002\u0002\u04c2\u04c9\u0005\u00b6\\\u0002\u04c3",
    "\u04c5\u0007\u00b0\u0002\u0002\u04c4\u04c6\t\u000e\u0002\u0002\u04c5",
    "\u04c4\u0003\u0002\u0002\u0002\u04c5\u04c6\u0003\u0002\u0002\u0002\u04c6",
    "\u04c7\u0003\u0002\u0002\u0002\u04c7\u04c8\u0007\u0019\u0002\u0002\u04c8",
    "\u04ca\u0007n\u0002\u0002\u04c9\u04c3\u0003\u0002\u0002\u0002\u04c9",
    "\u04ca\u0003\u0002\u0002\u0002\u04ca3\u0003\u0002\u0002\u0002\u04cb",
    "\u04cd\u0007(\u0002\u0002\u04cc\u04cb\u0003\u0002\u0002\u0002\u04cc",
    "\u04cd\u0003\u0002\u0002\u0002\u04cd\u04d1\u0003\u0002\u0002\u0002\u04ce",
    "\u04cf\u0007\u0018\u0002\u0002\u04cf\u04d2\u0007\u008c\u0002\u0002\u04d0",
    "\u04d2\u0007\u02dd\u0002\u0002\u04d1\u04ce\u0003\u0002\u0002\u0002\u04d1",
    "\u04d0\u0003\u0002\u0002\u0002\u04d2\u04d4\u0003\u0002\u0002\u0002\u04d3",
    "\u04d5\u0007\u03f5\u0002\u0002\u04d4\u04d3\u0003\u0002\u0002\u0002\u04d4",
    "\u04d5\u0003\u0002\u0002\u0002\u04d5\u04d8\u0003\u0002\u0002\u0002\u04d6",
    "\u04d9\u0005\u0200\u0101\u0002\u04d7\u04d9\u0007(\u0002\u0002\u04d8",
    "\u04d6\u0003\u0002\u0002\u0002\u04d8\u04d7\u0003\u0002\u0002\u0002\u04d9",
    "\u04e3\u0003\u0002\u0002\u0002\u04da\u04dc\u0007(\u0002\u0002\u04db",
    "\u04da\u0003\u0002\u0002\u0002\u04db\u04dc\u0003\u0002\u0002\u0002\u04dc",
    "\u04dd\u0003\u0002\u0002\u0002\u04dd\u04df\u0007\u001a\u0002\u0002\u04de",
    "\u04e0\u0007\u03f5\u0002\u0002\u04df\u04de\u0003\u0002\u0002\u0002\u04df",
    "\u04e0\u0003\u0002\u0002\u0002\u04e0\u04e1\u0003\u0002\u0002\u0002\u04e1",
    "\u04e3\u0005\u0202\u0102\u0002\u04e2\u04cc\u0003\u0002\u0002\u0002\u04e2",
    "\u04db\u0003\u0002\u0002\u0002\u04e35\u0003\u0002\u0002\u0002\u04e4",
    "\u04e5\u0007\u0149\u0002\u0002\u04e5\u04ec\u0007\u03f5\u0002\u0002\u04e6",
    "\u04ed\u0005\u01fc\u00ff\u0002\u04e7\u04ea\u0007#\u0002\u0002\u04e8",
    "\u04e9\u0007\u03fe\u0002\u0002\u04e9\u04eb\u0007\u03ff\u0002\u0002\u04ea",
    "\u04e8\u0003\u0002\u0002\u0002\u04ea\u04eb\u0003\u0002\u0002\u0002\u04eb",
    "\u04ed\u0003\u0002\u0002\u0002\u04ec\u04e6\u0003\u0002\u0002\u0002\u04ec",
    "\u04e7\u0003\u0002\u0002\u0002\u04ed7\u0003\u0002\u0002\u0002\u04ee",
    "\u04ef\u0007\u0116\u0002\u0002\u04ef\u04f3\u0005:\u001e\u0002\u04f0",
    "\u04f2\u0005<\u001f\u0002\u04f1\u04f0\u0003\u0002\u0002\u0002\u04f2",
    "\u04f5\u0003\u0002\u0002\u0002\u04f3\u04f1\u0003\u0002\u0002\u0002\u04f3",
    "\u04f4\u0003\u0002\u0002\u0002\u04f4\u0511\u0003\u0002\u0002\u0002\u04f5",
    "\u04f3\u0003\u0002\u0002\u0002\u04f6\u04f9\u0007\u0160\u0002\u0002\u04f7",
    "\u04fa\u0005\u0214\u010b\u0002\u04f8\u04fa\u0005\u025c\u012f\u0002\u04f9",
    "\u04f7\u0003\u0002\u0002\u0002\u04f9\u04f8\u0003\u0002\u0002\u0002\u04fa",
    "\u04fb\u0003\u0002\u0002\u0002\u04fb\u0504\u0005> \u0002\u04fc\u04fd",
    "\u0007\u021d\u0002\u0002\u04fd\u0501\u0005:\u001e\u0002\u04fe\u0500",
    "\u0005<\u001f\u0002\u04ff\u04fe\u0003\u0002\u0002\u0002\u0500\u0503",
    "\u0003\u0002\u0002\u0002\u0501\u04ff\u0003\u0002\u0002\u0002\u0501\u0502",
    "\u0003\u0002\u0002\u0002\u0502\u0505\u0003\u0002\u0002\u0002\u0503\u0501",
    "\u0003\u0002\u0002\u0002\u0504\u04fc\u0003\u0002\u0002\u0002\u0504\u0505",
    "\u0003\u0002\u0002\u0002\u0505\u050e\u0003\u0002\u0002\u0002\u0506\u0507",
    "\u0007\u0157\u0002\u0002\u0507\u050b\u0005:\u001e\u0002\u0508\u050a",
    "\u0005<\u001f\u0002\u0509\u0508\u0003\u0002\u0002\u0002\u050a\u050d",
    "\u0003\u0002\u0002\u0002\u050b\u0509\u0003\u0002\u0002\u0002\u050b\u050c",
    "\u0003\u0002\u0002\u0002\u050c\u050f\u0003\u0002\u0002\u0002\u050d\u050b",
    "\u0003\u0002\u0002\u0002\u050e\u0506\u0003\u0002\u0002\u0002\u050e\u050f",
    "\u0003\u0002\u0002\u0002\u050f\u0511\u0003\u0002\u0002\u0002\u0510\u04ee",
    "\u0003\u0002\u0002\u0002\u0510\u04f6\u0003\u0002\u0002\u0002\u05119",
    "\u0003\u0002\u0002\u0002\u0512\u0517\u0007\u00ff\u0002\u0002\u0513\u0517",
    "\u0005\u0218\u010d\u0002\u0514\u0517\u0005\u0214\u010b\u0002\u0515\u0517",
    "\u0005\u025c\u012f\u0002\u0516\u0512\u0003\u0002\u0002\u0002\u0516\u0513",
    "\u0003\u0002\u0002\u0002\u0516\u0514\u0003\u0002\u0002\u0002\u0516\u0515",
    "\u0003\u0002\u0002\u0002\u0517;\u0003\u0002\u0002\u0002\u0518\u0519",
    "\u0007\u03f0\u0002\u0002\u0519\u051c\u0007O\u0002\u0002\u051a\u051d",
    "\u0005\u0214\u010b\u0002\u051b\u051d\u0005\u025c\u012f\u0002\u051c\u051a",
    "\u0003\u0002\u0002\u0002\u051c\u051b\u0003\u0002\u0002\u0002\u051d\u051e",
    "\u0003\u0002\u0002\u0002\u051e\u051f\u0005> \u0002\u051f=\u0003\u0002",
    "\u0002\u0002\u0520\u052e\u0005\u0272\u013a\u0002\u0521\u052e\u0007\u00cd",
    "\u0002\u0002\u0522\u052e\u0007\u00e0\u0002\u0002\u0523\u052e\u0007\u00e1",
    "\u0002\u0002\u0524\u052e\u0007\u00e2\u0002\u0002\u0525\u052e\u0007\u00e3",
    "\u0002\u0002\u0526\u052e\u0007\u00e4\u0002\u0002\u0527\u052e\u0007\u00e5",
    "\u0002\u0002\u0528\u052e\u0007\u00e6\u0002\u0002\u0529\u052e\u0007\u00e7",
    "\u0002\u0002\u052a\u052e\u0007\u00e8\u0002\u0002\u052b\u052e\u0007\u00e9",
    "\u0002\u0002\u052c\u052e\u0007\u00ea\u0002\u0002\u052d\u0520\u0003\u0002",
    "\u0002\u0002\u052d\u0521\u0003\u0002\u0002\u0002\u052d\u0522\u0003\u0002",
    "\u0002\u0002\u052d\u0523\u0003\u0002\u0002\u0002\u052d\u0524\u0003\u0002",
    "\u0002\u0002\u052d\u0525\u0003\u0002\u0002\u0002\u052d\u0526\u0003\u0002",
    "\u0002\u0002\u052d\u0527\u0003\u0002\u0002\u0002\u052d\u0528\u0003\u0002",
    "\u0002\u0002\u052d\u0529\u0003\u0002\u0002\u0002\u052d\u052a\u0003\u0002",
    "\u0002\u0002\u052d\u052b\u0003\u0002\u0002\u0002\u052d\u052c\u0003\u0002",
    "\u0002\u0002\u052e?\u0003\u0002\u0002\u0002\u052f\u0535\u0007\u0154",
    "\u0002\u0002\u0530\u0535\u0007\u014d\u0002\u0002\u0531\u0532\u0007\u014d",
    "\u0002\u0002\u0532\u0533\u0007l\u0002\u0002\u0533\u0535\u0007\u020d",
    "\u0002\u0002\u0534\u052f\u0003\u0002\u0002\u0002\u0534\u0530\u0003\u0002",
    "\u0002\u0002\u0534\u0531\u0003\u0002\u0002\u0002\u0535A\u0003\u0002",
    "\u0002\u0002\u0536\u0537\u0007\u00ab\u0002\u0002\u0537\u0538\t\u000f",
    "\u0002\u0002\u0538C\u0003\u0002\u0002\u0002\u0539\u053b\u0007\u018d",
    "\u0002\u0002\u053a\u053c\u0007\u03f5\u0002\u0002\u053b\u053a\u0003\u0002",
    "\u0002\u0002\u053b\u053c\u0003\u0002\u0002\u0002\u053c\u053d\u0003\u0002",
    "\u0002\u0002\u053d\u0547\u0005\u0216\u010c\u0002\u053e\u0547\u0005B",
    "\"\u0002\u053f\u0540\u0007\u00b0\u0002\u0002\u0540\u0541\u0007\u01d2",
    "\u0002\u0002\u0541\u0547\u0005\u020e\u0108\u0002\u0542\u0543\u0007\u0133",
    "\u0002\u0002\u0543\u0547\u0007\u040d\u0002\u0002\u0544\u0547\u0007\u0185",
    "\u0002\u0002\u0545\u0547\u0007\u0246\u0002\u0002\u0546\u0539\u0003\u0002",
    "\u0002\u0002\u0546\u053e\u0003\u0002\u0002\u0002\u0546\u053f\u0003\u0002",
    "\u0002\u0002\u0546\u0542\u0003\u0002\u0002\u0002\u0546\u0544\u0003\u0002",
    "\u0002\u0002\u0546\u0545\u0003\u0002\u0002\u0002\u0547E\u0003\u0002",
    "\u0002\u0002\u0548\u054a\t\u0010\u0002\u0002\u0549\u0548\u0003\u0002",
    "\u0002\u0002\u0549\u054a\u0003\u0002\u0002\u0002\u054a\u054b\u0003\u0002",
    "\u0002\u0002\u054b\u054c\u0005\u020e\u0108\u0002\u054c\u054d\u0005\u0222",
    "\u0112\u0002\u054dG\u0003\u0002\u0002\u0002\u054e\u054f\u0005\u020e",
    "\u0108\u0002\u054f\u0550\u0005\u0222\u0112\u0002\u0550I\u0003\u0002",
    "\u0002\u0002\u0551\u0552\u0007\u0133\u0002\u0002\u0552\u0569\u0007\u040d",
    "\u0002\u0002\u0553\u0554\u0007\u018e\u0002\u0002\u0554\u0569\u0007\u0091",
    "\u0002\u0002\u0555\u0557\u0007h\u0002\u0002\u0556\u0555\u0003\u0002",
    "\u0002\u0002\u0556\u0557\u0003\u0002\u0002\u0002\u0557\u0558\u0003\u0002",
    "\u0002\u0002\u0558\u0569\u0007-\u0002\u0002\u0559\u055a\u0007\u013f",
    "\u0002\u0002\u055a\u0564\u0007\u0091\u0002\u0002\u055b\u055c\u0007\u01c2",
    "\u0002\u0002\u055c\u0564\u0007\u0091\u0002\u0002\u055d\u055e\u0007{",
    "\u0002\u0002\u055e\u055f\u0007\u0091\u0002\u0002\u055f\u0564\u0007\u0145",
    "\u0002\u0002\u0560\u0561\u0007f\u0002\u0002\u0561\u0562\u0007\u0091",
    "\u0002\u0002\u0562\u0564\u0007\u0145\u0002\u0002\u0563\u0559\u0003\u0002",
    "\u0002\u0002\u0563\u055b\u0003\u0002\u0002\u0002\u0563\u055d\u0003\u0002",
    "\u0002\u0002\u0563\u0560\u0003\u0002\u0002\u0002\u0564\u0569\u0003\u0002",
    "\u0002\u0002\u0565\u0566\u0007\u0091\u0002\u0002\u0566\u0567\u0007\u0206",
    "\u0002\u0002\u0567\u0569\t\r\u0002\u0002\u0568\u0551\u0003\u0002\u0002",
    "\u0002\u0568\u0553\u0003\u0002\u0002\u0002\u0568\u0556\u0003\u0002\u0002",
    "\u0002\u0568\u0563\u0003\u0002\u0002\u0002\u0568\u0565\u0003\u0002\u0002",
    "\u0002\u0569K\u0003\u0002\u0002\u0002\u056a\u056b\u0007\u017a\u0002",
    "\u0002\u056b\u0579\u0007\u040d\u0002\u0002\u056c\u056d\u0007%\u0002",
    "\u0002\u056d\u0579\u0007\u040d\u0002\u0002\u056e\u056f\u0007\u023e\u0002",
    "\u0002\u056f\u0579\u0007\u040d\u0002\u0002\u0570\u0571\u0007\u01d6\u0002",
    "\u0002\u0571\u0579\u0007\u040d\u0002\u0002\u0572\u0573\u0007\u0210\u0002",
    "\u0002\u0573\u0579\u0007\u040d\u0002\u0002\u0574\u0575\u0007\u01cf\u0002",
    "\u0002\u0575\u0579\u0007\u040d\u0002\u0002\u0576\u0577\u0007\u01db\u0002",
    "\u0002\u0577\u0579\u0005\u0214\u010b\u0002\u0578\u056a\u0003\u0002\u0002",
    "\u0002\u0578\u056c\u0003\u0002\u0002\u0002\u0578\u056e\u0003\u0002\u0002",
    "\u0002\u0578\u0570\u0003\u0002\u0002\u0002\u0578\u0572\u0003\u0002\u0002",
    "\u0002\u0578\u0574\u0003\u0002\u0002\u0002\u0578\u0576\u0003\u0002\u0002",
    "\u0002\u0579M\u0003\u0002\u0002\u0002\u057a\u057b\u0007\u03fe\u0002",
    "\u0002\u057b\u0580\u0005P)\u0002\u057c\u057d\u0007\u0400\u0002\u0002",
    "\u057d\u057f\u0005P)\u0002\u057e\u057c\u0003\u0002\u0002\u0002\u057f",
    "\u0582\u0003\u0002\u0002\u0002\u0580\u057e\u0003\u0002\u0002\u0002\u0580",
    "\u0581\u0003\u0002\u0002\u0002\u0581\u0583\u0003\u0002\u0002\u0002\u0582",
    "\u0580\u0003\u0002\u0002\u0002\u0583\u0584\u0007\u03ff\u0002\u0002\u0584",
    "O\u0003\u0002\u0002\u0002\u0585\u0586\u0005\u020e\u0108\u0002\u0586",
    "\u0587\u0005R*\u0002\u0587\u058b\u0003\u0002\u0002\u0002\u0588\u058b",
    "\u0005V,\u0002\u0589\u058b\u0005^0\u0002\u058a\u0585\u0003\u0002\u0002",
    "\u0002\u058a\u0588\u0003\u0002\u0002\u0002\u058a\u0589\u0003\u0002\u0002",
    "\u0002\u058bQ\u0003\u0002\u0002\u0002\u058c\u0590\u0005\u0222\u0112",
    "\u0002\u058d\u058f\u0005T+\u0002\u058e\u058d\u0003\u0002\u0002\u0002",
    "\u058f\u0592\u0003\u0002\u0002\u0002\u0590\u058e\u0003\u0002\u0002\u0002",
    "\u0590\u0591\u0003\u0002\u0002\u0002\u0591S\u0003\u0002\u0002\u0002",
    "\u0592\u0590\u0003\u0002\u0002\u0002\u0593\u05c7\u0005\u021e\u0110\u0002",
    "\u0594\u0595\u0007(\u0002\u0002\u0595\u05c7\u0005\u023e\u0120\u0002",
    "\u0596\u059b\u0007\u011a\u0002\u0002\u0597\u0598\u0007l\u0002\u0002",
    "\u0598\u0599\u0007\u00a8\u0002\u0002\u0599\u059b\u0005\u0240\u0121\u0002",
    "\u059a\u0596\u0003\u0002\u0002\u0002\u059a\u0597\u0003\u0002\u0002\u0002",
    "\u059b\u05c7\u0003\u0002\u0002\u0002\u059c\u059e\u0007v\u0002\u0002",
    "\u059d\u059c\u0003\u0002\u0002\u0002\u059d\u059e\u0003\u0002\u0002\u0002",
    "\u059e\u059f\u0003\u0002\u0002\u0002\u059f\u05c7\u0007T\u0002\u0002",
    "\u05a0\u05a2\u0007\u00a5\u0002\u0002\u05a1\u05a3\u0007T\u0002\u0002",
    "\u05a2\u05a1\u0003\u0002\u0002\u0002\u05a2\u05a3\u0003\u0002\u0002\u0002",
    "\u05a3\u05c7\u0003\u0002\u0002\u0002\u05a4\u05a5\u0007\u0133\u0002\u0002",
    "\u05a5\u05c7\u0007\u040d\u0002\u0002\u05a6\u05a7\u0007\u0131\u0002\u0002",
    "\u05a7\u05c7\t\u0011\u0002\u0002\u05a8\u05a9\u0007\u0223\u0002\u0002",
    "\u05a9\u05c7\t\u0012\u0002\u0002\u05aa\u05c7\u0005X-\u0002\u05ab\u05ac",
    "\u0007\u001a\u0002\u0002\u05ac\u05c7\u0005\u0202\u0102\u0002\u05ad\u05ae",
    "\u0007A\u0002\u0002\u05ae\u05b0\u0007\n\u0002\u0002\u05af\u05ad\u0003",
    "\u0002\u0002\u0002\u05af\u05b0\u0003\u0002\u0002\u0002\u05b0\u05b1\u0003",
    "\u0002\u0002\u0002\u05b1\u05b2\u0007\r\u0002\u0002\u05b2\u05b3\u0007",
    "\u03fe\u0002\u0002\u05b3\u05b4\u0005\u025c\u012f\u0002\u05b4\u05b6\u0007",
    "\u03ff\u0002\u0002\u05b5\u05b7\t\u0013\u0002\u0002\u05b6\u05b5\u0003",
    "\u0002\u0002\u0002\u05b6\u05b7\u0003\u0002\u0002\u0002\u05b7\u05c7\u0003",
    "\u0002\u0002\u0002\u05b8\u05b9\u0007\u00df\u0002\u0002\u05b9\u05ba\u0007",
    "(\u0002\u0002\u05ba\u05c7\u0007\u0242\u0002\u0002\u05bb\u05bd\u0007",
    "\u001d\u0002\u0002\u05bc\u05be\u0005\u020e\u0108\u0002\u05bd\u05bc\u0003",
    "\u0002\u0002\u0002\u05bd\u05be\u0003\u0002\u0002\u0002\u05be\u05c0\u0003",
    "\u0002\u0002\u0002\u05bf\u05bb\u0003\u0002\u0002\u0002\u05bf\u05c0\u0003",
    "\u0002\u0002\u0002\u05c0\u05c1\u0003\u0002\u0002\u0002\u05c1\u05c2\u0007",
    "\u0019\u0002\u0002\u05c2\u05c3\u0007\u03fe\u0002\u0002\u05c3\u05c4\u0005",
    "\u025c\u012f\u0002\u05c4\u05c5\u0007\u03ff\u0002\u0002\u05c5\u05c7\u0003",
    "\u0002\u0002\u0002\u05c6\u0593\u0003\u0002\u0002\u0002\u05c6\u0594\u0003",
    "\u0002\u0002\u0002\u05c6\u059a\u0003\u0002\u0002\u0002\u05c6\u059d\u0003",
    "\u0002\u0002\u0002\u05c6\u05a0\u0003\u0002\u0002\u0002\u05c6\u05a4\u0003",
    "\u0002\u0002\u0002\u05c6\u05a6\u0003\u0002\u0002\u0002\u05c6\u05a8\u0003",
    "\u0002\u0002\u0002\u05c6\u05aa\u0003\u0002\u0002\u0002\u05c6\u05ab\u0003",
    "\u0002\u0002\u0002\u05c6\u05af\u0003\u0002\u0002\u0002\u05c6\u05b8\u0003",
    "\u0002\u0002\u0002\u05c6\u05bf\u0003\u0002\u0002\u0002\u05c7U\u0003",
    "\u0002\u0002\u0002\u05c8\u05ca\u0007\u001d\u0002\u0002\u05c9\u05cb\u0005",
    "\u020e\u0108\u0002\u05ca\u05c9\u0003\u0002\u0002\u0002\u05ca\u05cb\u0003",
    "\u0002\u0002\u0002\u05cb\u05cd\u0003\u0002\u0002\u0002\u05cc\u05c8\u0003",
    "\u0002\u0002\u0002\u05cc\u05cd\u0003\u0002\u0002\u0002\u05cd\u05ce\u0003",
    "\u0002\u0002\u0002\u05ce\u05cf\u0007v\u0002\u0002\u05cf\u05d1\u0007",
    "T\u0002\u0002\u05d0\u05d2\u0005\u020e\u0108\u0002\u05d1\u05d0\u0003",
    "\u0002\u0002\u0002\u05d1\u05d2\u0003\u0002\u0002\u0002\u05d2\u05d4\u0003",
    "\u0002\u0002\u0002\u05d3\u05d5\u0005B\"\u0002\u05d4\u05d3\u0003\u0002",
    "\u0002\u0002\u05d4\u05d5\u0003\u0002\u0002\u0002\u05d5\u05d6\u0003\u0002",
    "\u0002\u0002\u05d6\u05da\u0005\u0232\u011a\u0002\u05d7\u05d9\u0005D",
    "#\u0002\u05d8\u05d7\u0003\u0002\u0002\u0002\u05d9\u05dc\u0003\u0002",
    "\u0002\u0002\u05da\u05d8\u0003\u0002\u0002\u0002\u05da\u05db\u0003\u0002",
    "\u0002\u0002\u05db\u060e\u0003\u0002\u0002\u0002\u05dc\u05da\u0003\u0002",
    "\u0002\u0002\u05dd\u05df\u0007\u001d\u0002\u0002\u05de\u05e0\u0005\u020e",
    "\u0108\u0002\u05df\u05de\u0003\u0002\u0002\u0002\u05df\u05e0\u0003\u0002",
    "\u0002\u0002\u05e0\u05e2\u0003\u0002\u0002\u0002\u05e1\u05dd\u0003\u0002",
    "\u0002\u0002\u05e1\u05e2\u0003\u0002\u0002\u0002\u05e2\u05e3\u0003\u0002",
    "\u0002\u0002\u05e3\u05e5\u0007\u00a5\u0002\u0002\u05e4\u05e6\t\u0014",
    "\u0002\u0002\u05e5\u05e4\u0003\u0002\u0002\u0002\u05e5\u05e6\u0003\u0002",
    "\u0002\u0002\u05e6\u05e8\u0003\u0002\u0002\u0002\u05e7\u05e9\u0005\u020e",
    "\u0108\u0002\u05e8\u05e7\u0003\u0002\u0002\u0002\u05e8\u05e9\u0003\u0002",
    "\u0002\u0002\u05e9\u05eb\u0003\u0002\u0002\u0002\u05ea\u05ec\u0005B",
    "\"\u0002\u05eb\u05ea\u0003\u0002\u0002\u0002\u05eb\u05ec\u0003\u0002",
    "\u0002\u0002\u05ec\u05ed\u0003\u0002\u0002\u0002\u05ed\u05f1\u0005\u0232",
    "\u011a\u0002\u05ee\u05f0\u0005D#\u0002\u05ef\u05ee\u0003\u0002\u0002",
    "\u0002\u05f0\u05f3\u0003\u0002\u0002\u0002\u05f1\u05ef\u0003\u0002\u0002",
    "\u0002\u05f1\u05f2\u0003\u0002\u0002\u0002\u05f2\u060e\u0003\u0002\u0002",
    "\u0002\u05f3\u05f1\u0003\u0002\u0002\u0002\u05f4\u05f6\u0007\u001d\u0002",
    "\u0002\u05f5\u05f7\u0005\u020e\u0108\u0002\u05f6\u05f5\u0003\u0002\u0002",
    "\u0002\u05f6\u05f7\u0003\u0002\u0002\u0002\u05f7\u05f9\u0003\u0002\u0002",
    "\u0002\u05f8\u05f4\u0003\u0002\u0002\u0002\u05f8\u05f9\u0003\u0002\u0002",
    "\u0002\u05f9\u05fa\u0003\u0002\u0002\u0002\u05fa\u05fb\u0007>\u0002",
    "\u0002\u05fb\u05fd\u0007T\u0002\u0002\u05fc\u05fe\u0005\u020e\u0108",
    "\u0002\u05fd\u05fc\u0003\u0002\u0002\u0002\u05fd\u05fe\u0003\u0002\u0002",
    "\u0002\u05fe\u05ff\u0003\u0002\u0002\u0002\u05ff\u0600\u0005\u0232\u011a",
    "\u0002\u0600\u0601\u0005X-\u0002\u0601\u060e\u0003\u0002\u0002\u0002",
    "\u0602\u0604\u0007\u001d\u0002\u0002\u0603\u0605\u0005\u020e\u0108\u0002",
    "\u0604\u0603\u0003\u0002\u0002\u0002\u0604\u0605\u0003\u0002\u0002\u0002",
    "\u0605\u0607\u0003\u0002\u0002\u0002\u0606\u0602\u0003\u0002\u0002\u0002",
    "\u0606\u0607\u0003\u0002\u0002\u0002\u0607\u0608\u0003\u0002\u0002\u0002",
    "\u0608\u0609\u0007\u0019\u0002\u0002\u0609\u060a\u0007\u03fe\u0002\u0002",
    "\u060a\u060b\u0005\u025c\u012f\u0002\u060b\u060c\u0007\u03ff\u0002\u0002",
    "\u060c\u060e\u0003\u0002\u0002\u0002\u060d\u05cc\u0003\u0002\u0002\u0002",
    "\u060d\u05e1\u0003\u0002\u0002\u0002\u060d\u05f8\u0003\u0002\u0002\u0002",
    "\u060d\u0606\u0003\u0002\u0002\u0002\u060eW\u0003\u0002\u0002\u0002",
    "\u060f\u0610\u0007|\u0002\u0002\u0610\u0612\u0005\u01f6\u00fc\u0002",
    "\u0611\u0613\u0005\u0232\u011a\u0002\u0612\u0611\u0003\u0002\u0002\u0002",
    "\u0612\u0613\u0003\u0002\u0002\u0002\u0613\u0616\u0003\u0002\u0002\u0002",
    "\u0614\u0615\u0007d\u0002\u0002\u0615\u0617\t\u0015\u0002\u0002\u0616",
    "\u0614\u0003\u0002\u0002\u0002\u0616\u0617\u0003\u0002\u0002\u0002\u0617",
    "\u0619\u0003\u0002\u0002\u0002\u0618\u061a\u0005Z.\u0002\u0619\u0618",
    "\u0003\u0002\u0002\u0002\u0619\u061a\u0003\u0002\u0002\u0002\u061aY",
    "\u0003\u0002\u0002\u0002\u061b\u061c\u0007l\u0002\u0002\u061c\u061d",
    "\u0007*\u0002\u0002\u061d\u0621\u0005\\/\u0002\u061e\u061f\u0007l\u0002",
    "\u0002\u061f\u0620\u0007\u00a8\u0002\u0002\u0620\u0622\u0005\\/\u0002",
    "\u0621\u061e\u0003\u0002\u0002\u0002\u0621\u0622\u0003\u0002\u0002\u0002",
    "\u0622\u062c\u0003\u0002\u0002\u0002\u0623\u0624\u0007l\u0002\u0002",
    "\u0624\u0625\u0007\u00a8\u0002\u0002\u0625\u0629\u0005\\/\u0002\u0626",
    "\u0627\u0007l\u0002\u0002\u0627\u0628\u0007*\u0002\u0002\u0628\u062a",
    "\u0005\\/\u0002\u0629\u0626\u0003\u0002\u0002\u0002\u0629\u062a\u0003",
    "\u0002\u0002\u0002\u062a\u062c\u0003\u0002\u0002\u0002\u062b\u061b\u0003",
    "\u0002\u0002\u0002\u062b\u0623\u0003\u0002\u0002\u0002\u062c[\u0003",
    "\u0002\u0002\u0002\u062d\u0634\u0007\u0084\u0002\u0002\u062e\u0634\u0007",
    "\u0014\u0002\u0002\u062f\u0630\u0007\u008c\u0002\u0002\u0630\u0634\u0007",
    "j\u0002\u0002\u0631\u0632\u0007\u01c2\u0002\u0002\u0632\u0634\u0007",
    "\u0111\u0002\u0002\u0633\u062d\u0003\u0002\u0002\u0002\u0633\u062e\u0003",
    "\u0002\u0002\u0002\u0633\u062f\u0003\u0002\u0002\u0002\u0633\u0631\u0003",
    "\u0002\u0002\u0002\u0634]\u0003\u0002\u0002\u0002\u0635\u0637\t\u0014",
    "\u0002\u0002\u0636\u0638\u0005\u020e\u0108\u0002\u0637\u0636\u0003\u0002",
    "\u0002\u0002\u0637\u0638\u0003\u0002\u0002\u0002\u0638\u063a\u0003\u0002",
    "\u0002\u0002\u0639\u063b\u0005B\"\u0002\u063a\u0639\u0003\u0002\u0002",
    "\u0002\u063a\u063b\u0003\u0002\u0002\u0002\u063b\u063c\u0003\u0002\u0002",
    "\u0002\u063c\u0640\u0005\u0232\u011a\u0002\u063d\u063f\u0005D#\u0002",
    "\u063e\u063d\u0003\u0002\u0002\u0002\u063f\u0642\u0003\u0002\u0002\u0002",
    "\u0640\u063e\u0003\u0002\u0002\u0002\u0640\u0641\u0003\u0002\u0002\u0002",
    "\u0641\u0652\u0003\u0002\u0002\u0002\u0642\u0640\u0003\u0002\u0002\u0002",
    "\u0643\u0645\t\u0016\u0002\u0002\u0644\u0646\t\u0014\u0002\u0002\u0645",
    "\u0644\u0003\u0002\u0002\u0002\u0645\u0646\u0003\u0002\u0002\u0002\u0646",
    "\u0648\u0003\u0002\u0002\u0002\u0647\u0649\u0005\u020e\u0108\u0002\u0648",
    "\u0647\u0003\u0002\u0002\u0002\u0648\u0649\u0003\u0002\u0002\u0002\u0649",
    "\u064a\u0003\u0002\u0002\u0002\u064a\u064e\u0005\u0232\u011a\u0002\u064b",
    "\u064d\u0005D#\u0002\u064c\u064b\u0003\u0002\u0002\u0002\u064d\u0650",
    "\u0003\u0002\u0002\u0002\u064e\u064c\u0003\u0002\u0002\u0002\u064e\u064f",
    "\u0003\u0002\u0002\u0002\u064f\u0652\u0003\u0002\u0002\u0002\u0650\u064e",
    "\u0003\u0002\u0002\u0002\u0651\u0635\u0003\u0002\u0002\u0002\u0651\u0643",
    "\u0003\u0002\u0002\u0002\u0652_\u0003\u0002\u0002\u0002\u0653\u0655",
    "\u0007\u0158\u0002\u0002\u0654\u0656\u0007\u03f5\u0002\u0002\u0655\u0654",
    "\u0003\u0002\u0002\u0002\u0655\u0656\u0003\u0002\u0002\u0002\u0656\u0657",
    "\u0003\u0002\u0002\u0002\u0657\u06e4\u0005\u0204\u0103\u0002\u0658\u065a",
    "\u0007\u011a\u0002\u0002\u0659\u065b\u0007\u03f5\u0002\u0002\u065a\u0659",
    "\u0003\u0002\u0002\u0002\u065a\u065b\u0003\u0002\u0002\u0002\u065b\u065c",
    "\u0003\u0002\u0002\u0002\u065c\u06e4\u0005\u0214\u010b\u0002\u065d\u065f",
    "\u0007\u011b\u0002\u0002\u065e\u0660\u0007\u03f5\u0002\u0002\u065f\u065e",
    "\u0003\u0002\u0002\u0002\u065f\u0660\u0003\u0002\u0002\u0002\u0660\u0661",
    "\u0003\u0002\u0002\u0002\u0661\u06e4\u0005\u0214\u010b\u0002\u0662\u0664",
    "\u0007(\u0002\u0002\u0663\u0662\u0003\u0002\u0002\u0002\u0663\u0664",
    "\u0003\u0002\u0002\u0002\u0664\u0668\u0003\u0002\u0002\u0002\u0665\u0666",
    "\u0007\u0018\u0002\u0002\u0666\u0669\u0007\u008c\u0002\u0002\u0667\u0669",
    "\u0007\u02dd\u0002\u0002\u0668\u0665\u0003\u0002\u0002\u0002\u0668\u0667",
    "\u0003\u0002\u0002\u0002\u0669\u066b\u0003\u0002\u0002\u0002\u066a\u066c",
    "\u0007\u03f5\u0002\u0002\u066b\u066a\u0003\u0002\u0002\u0002\u066b\u066c",
    "\u0003\u0002\u0002\u0002\u066c\u066f\u0003\u0002\u0002\u0002\u066d\u0670",
    "\u0005\u0200\u0101\u0002\u066e\u0670\u0007(\u0002\u0002\u066f\u066d",
    "\u0003\u0002\u0002\u0002\u066f\u066e\u0003\u0002\u0002\u0002\u0670\u06e4",
    "\u0003\u0002\u0002\u0002\u0671\u0673\t\u0017\u0002\u0002\u0672\u0674",
    "\u0007\u03f5\u0002\u0002\u0673\u0672\u0003\u0002\u0002\u0002\u0673\u0674",
    "\u0003\u0002\u0002\u0002\u0674\u0675\u0003\u0002\u0002\u0002\u0675\u06e4",
    "\t\u0018\u0002\u0002\u0676\u0678\u0007(\u0002\u0002\u0677\u0676\u0003",
    "\u0002\u0002\u0002\u0677\u0678\u0003\u0002\u0002\u0002\u0678\u0679\u0003",
    "\u0002\u0002\u0002\u0679\u067b\u0007\u001a\u0002\u0002\u067a\u067c\u0007",
    "\u03f5\u0002\u0002\u067b\u067a\u0003\u0002\u0002\u0002\u067b\u067c\u0003",
    "\u0002\u0002\u0002\u067c\u067d\u0003\u0002\u0002\u0002\u067d\u06e4\u0005",
    "\u0202\u0102\u0002\u067e\u0680\u0007\u0133\u0002\u0002\u067f\u0681\u0007",
    "\u03f5\u0002\u0002\u0680\u067f\u0003\u0002\u0002\u0002\u0680\u0681\u0003",
    "\u0002\u0002\u0002\u0681\u0682\u0003\u0002\u0002\u0002\u0682\u06e4\u0007",
    "\u040d\u0002\u0002\u0683\u0685\u0007\u0138\u0002\u0002\u0684\u0686\u0007",
    "\u03f5\u0002\u0002\u0685\u0684\u0003\u0002\u0002\u0002\u0685\u0686\u0003",
    "\u0002\u0002\u0002\u0686\u0687\u0003\u0002\u0002\u0002\u0687\u06e4\t",
    "\u0019\u0002\u0002\u0688\u068a\u0007\u013a\u0002\u0002\u0689\u068b\u0007",
    "\u03f5\u0002\u0002\u068a\u0689\u0003\u0002\u0002\u0002\u068a\u068b\u0003",
    "\u0002\u0002\u0002\u068b\u068c\u0003\u0002\u0002\u0002\u068c\u06e4\u0007",
    "\u040d\u0002\u0002\u068d\u068e\u0007\u0145\u0002\u0002\u068e\u0690\u0007",
    "\u014c\u0002\u0002\u068f\u0691\u0007\u03f5\u0002\u0002\u0690\u068f\u0003",
    "\u0002\u0002\u0002\u0690\u0691\u0003\u0002\u0002\u0002\u0691\u0692\u0003",
    "\u0002\u0002\u0002\u0692\u06e4\u0007\u040d\u0002\u0002\u0693\u0695\u0007",
    "\u014a\u0002\u0002\u0694\u0696\u0007\u03f5\u0002\u0002\u0695\u0694\u0003",
    "\u0002\u0002\u0002\u0695\u0696\u0003\u0002\u0002\u0002\u0696\u0697\u0003",
    "\u0002\u0002\u0002\u0697\u06e4\t\u0018\u0002\u0002\u0698\u069a\u0007",
    "\u0155\u0002\u0002\u0699\u069b\u0007\u03f5\u0002\u0002\u069a\u0699\u0003",
    "\u0002\u0002\u0002\u069a\u069b\u0003\u0002\u0002\u0002\u069b\u069c\u0003",
    "\u0002\u0002\u0002\u069c\u06e4\u0007\u040d\u0002\u0002\u069d\u069e\u0007",
    "J\u0002\u0002\u069e\u06a0\u0007\u014c\u0002\u0002\u069f\u06a1\u0007",
    "\u03f5\u0002\u0002\u06a0\u069f\u0003\u0002\u0002\u0002\u06a0\u06a1\u0003",
    "\u0002\u0002\u0002\u06a1\u06a2\u0003\u0002\u0002\u0002\u06a2\u06e4\u0007",
    "\u040d\u0002\u0002\u06a3\u06a5\u0007\u0182\u0002\u0002\u06a4\u06a6\u0007",
    "\u03f5\u0002\u0002\u06a5\u06a4\u0003\u0002\u0002\u0002\u06a5\u06a6\u0003",
    "\u0002\u0002\u0002\u06a6\u06a7\u0003\u0002\u0002\u0002\u06a7\u06e4\t",
    "\u001a\u0002\u0002\u06a8\u06aa\u0007\u018d\u0002\u0002\u06a9\u06ab\u0007",
    "\u03f5\u0002\u0002\u06aa\u06a9\u0003\u0002\u0002\u0002\u06aa\u06ab\u0003",
    "\u0002\u0002\u0002\u06ab\u06ac\u0003\u0002\u0002\u0002\u06ac\u06e4\u0005",
    "\u0216\u010c\u0002\u06ad\u06af\u0007\u01ae\u0002\u0002\u06ae\u06b0\u0007",
    "\u03f5\u0002\u0002\u06af\u06ae\u0003\u0002\u0002\u0002\u06af\u06b0\u0003",
    "\u0002\u0002\u0002\u06b0\u06b1\u0003\u0002\u0002\u0002\u06b1\u06e4\u0005",
    "\u0214\u010b\u0002\u06b2\u06b4\u0007\u01b7\u0002\u0002\u06b3\u06b5\u0007",
    "\u03f5\u0002\u0002\u06b4\u06b3\u0003\u0002\u0002\u0002\u06b4\u06b5\u0003",
    "\u0002\u0002\u0002\u06b5\u06b6\u0003\u0002\u0002\u0002\u06b6\u06e4\u0005",
    "\u0214\u010b\u0002\u06b7\u06b9\u0007\u01d0\u0002\u0002\u06b8\u06ba\u0007",
    "\u03f5\u0002\u0002\u06b9\u06b8\u0003\u0002\u0002\u0002\u06b9\u06ba\u0003",
    "\u0002\u0002\u0002\u06ba\u06bb\u0003\u0002\u0002\u0002\u06bb\u06e4\t",
    "\u001b\u0002\u0002\u06bc\u06be\u0007\u01d6\u0002\u0002\u06bd\u06bf\u0007",
    "\u03f5\u0002\u0002\u06be\u06bd\u0003\u0002\u0002\u0002\u06be\u06bf\u0003",
    "\u0002\u0002\u0002\u06bf\u06c0\u0003\u0002\u0002\u0002\u06c0\u06e4\u0007",
    "\u040d\u0002\u0002\u06c1\u06c3\u0007\u0203\u0002\u0002\u06c2\u06c4\u0007",
    "\u03f5\u0002\u0002\u06c3\u06c2\u0003\u0002\u0002\u0002\u06c3\u06c4\u0003",
    "\u0002\u0002\u0002\u06c4\u06c5\u0003\u0002\u0002\u0002\u06c5\u06e4\t",
    "\u001c\u0002\u0002\u06c6\u06c8\u0007\u021e\u0002\u0002\u06c7\u06c9\u0007",
    "\u03f5\u0002\u0002\u06c8\u06c7\u0003\u0002\u0002\u0002\u06c8\u06c9\u0003",
    "\u0002\u0002\u0002\u06c9\u06ca\u0003\u0002\u0002\u0002\u06ca\u06e4\t",
    "\u001b\u0002\u0002\u06cb\u06cd\u0007\u021f\u0002\u0002\u06cc\u06ce\u0007",
    "\u03f5\u0002\u0002\u06cd\u06cc\u0003\u0002\u0002\u0002\u06cd\u06ce\u0003",
    "\u0002\u0002\u0002\u06ce\u06cf\u0003\u0002\u0002\u0002\u06cf\u06e4\t",
    "\u001b\u0002\u0002\u06d0\u06d2\u0007\u0220\u0002\u0002\u06d1\u06d3\u0007",
    "\u03f5\u0002\u0002\u06d2\u06d1\u0003\u0002\u0002\u0002\u06d2\u06d3\u0003",
    "\u0002\u0002\u0002\u06d3\u06d4\u0003\u0002\u0002\u0002\u06d4\u06e4\u0005",
    "\u0214\u010b\u0002\u06d5\u06d6\u0007\u022e\u0002\u0002\u06d6\u06d8\u0005",
    "\u020e\u0108\u0002\u06d7\u06d9\u0005b2\u0002\u06d8\u06d7\u0003\u0002",
    "\u0002\u0002\u06d8\u06d9\u0003\u0002\u0002\u0002\u06d9\u06e4\u0003\u0002",
    "\u0002\u0002\u06da\u06e4\u0005b2\u0002\u06db\u06dd\u0007\u00a4\u0002",
    "\u0002\u06dc\u06de\u0007\u03f5\u0002\u0002\u06dd\u06dc\u0003\u0002\u0002",
    "\u0002\u06dd\u06de\u0003\u0002\u0002\u0002\u06de\u06df\u0003\u0002\u0002",
    "\u0002\u06df\u06e0\u0007\u03fe\u0002\u0002\u06e0\u06e1\u0005\u0230\u0119",
    "\u0002\u06e1\u06e2\u0007\u03ff\u0002\u0002\u06e2\u06e4\u0003\u0002\u0002",
    "\u0002\u06e3\u0653\u0003\u0002\u0002\u0002\u06e3\u0658\u0003\u0002\u0002",
    "\u0002\u06e3\u065d\u0003\u0002\u0002\u0002\u06e3\u0663\u0003\u0002\u0002",
    "\u0002\u06e3\u0671\u0003\u0002\u0002\u0002\u06e3\u0677\u0003\u0002\u0002",
    "\u0002\u06e3\u067e\u0003\u0002\u0002\u0002\u06e3\u0683\u0003\u0002\u0002",
    "\u0002\u06e3\u0688\u0003\u0002\u0002\u0002\u06e3\u068d\u0003\u0002\u0002",
    "\u0002\u06e3\u0693\u0003\u0002\u0002\u0002\u06e3\u0698\u0003\u0002\u0002",
    "\u0002\u06e3\u069d\u0003\u0002\u0002\u0002\u06e3\u06a3\u0003\u0002\u0002",
    "\u0002\u06e3\u06a8\u0003\u0002\u0002\u0002\u06e3\u06ad\u0003\u0002\u0002",
    "\u0002\u06e3\u06b2\u0003\u0002\u0002\u0002\u06e3\u06b7\u0003\u0002\u0002",
    "\u0002\u06e3\u06bc\u0003\u0002\u0002\u0002\u06e3\u06c1\u0003\u0002\u0002",
    "\u0002\u06e3\u06c6\u0003\u0002\u0002\u0002\u06e3\u06cb\u0003\u0002\u0002",
    "\u0002\u06e3\u06d0\u0003\u0002\u0002\u0002\u06e3\u06d5\u0003\u0002\u0002",
    "\u0002\u06e3\u06da\u0003\u0002\u0002\u0002\u06e3\u06db\u0003\u0002\u0002",
    "\u0002\u06e4a\u0003\u0002\u0002\u0002\u06e5\u06e6\u0007\u0223\u0002",
    "\u0002\u06e6\u06e7\t\u0012\u0002\u0002\u06e7c\u0003\u0002\u0002\u0002",
    "\u06e8\u06e9\u0007u\u0002\u0002\u06e9\u06ea\u0007\u0012\u0002\u0002",
    "\u06ea\u06ed\u0005f4\u0002\u06eb\u06ec\u0007\u01d5\u0002\u0002\u06ec",
    "\u06ee\u0005\u0214\u010b\u0002\u06ed\u06eb\u0003\u0002\u0002\u0002\u06ed",
    "\u06ee\u0003\u0002\u0002\u0002\u06ee\u06f6\u0003\u0002\u0002\u0002\u06ef",
    "\u06f0\u0007\u0228\u0002\u0002\u06f0\u06f1\u0007\u0012\u0002\u0002\u06f1",
    "\u06f4\u0005h5\u0002\u06f2\u06f3\u0007\u0229\u0002\u0002\u06f3\u06f5",
    "\u0005\u0214\u010b\u0002\u06f4\u06f2\u0003\u0002\u0002\u0002\u06f4\u06f5",
    "\u0003\u0002\u0002\u0002\u06f5\u06f7\u0003\u0002\u0002\u0002\u06f6\u06ef",
    "\u0003\u0002\u0002\u0002\u06f6\u06f7\u0003\u0002\u0002\u0002\u06f7\u0703",
    "\u0003\u0002\u0002\u0002\u06f8\u06f9\u0007\u03fe\u0002\u0002\u06f9\u06fe",
    "\u0005j6\u0002\u06fa\u06fb\u0007\u0400\u0002\u0002\u06fb\u06fd\u0005",
    "j6\u0002\u06fc\u06fa\u0003\u0002\u0002\u0002\u06fd\u0700\u0003\u0002",
    "\u0002\u0002\u06fe\u06fc\u0003\u0002\u0002\u0002\u06fe\u06ff\u0003\u0002",
    "\u0002\u0002\u06ff\u0701\u0003\u0002\u0002\u0002\u0700\u06fe\u0003\u0002",
    "\u0002\u0002\u0701\u0702\u0007\u03ff\u0002\u0002\u0702\u0704\u0003\u0002",
    "\u0002\u0002\u0703\u06f8\u0003\u0002\u0002\u0002\u0703\u0704\u0003\u0002",
    "\u0002\u0002\u0704e\u0003\u0002\u0002\u0002\u0705\u0707\u0007\\\u0002",
    "\u0002\u0706\u0705\u0003\u0002\u0002\u0002\u0706\u0707\u0003\u0002\u0002",
    "\u0002\u0707\u0708\u0003\u0002\u0002\u0002\u0708\u0709\u0007\u0178\u0002",
    "\u0002\u0709\u070a\u0007\u03fe\u0002\u0002\u070a\u070b\u0005\u025c\u012f",
    "\u0002\u070b\u070c\u0007\u03ff\u0002\u0002\u070c\u0733\u0003\u0002\u0002",
    "\u0002\u070d\u070f\u0007\\\u0002\u0002\u070e\u070d\u0003\u0002\u0002",
    "\u0002\u070e\u070f\u0003\u0002\u0002\u0002\u070f\u0710\u0003\u0002\u0002",
    "\u0002\u0710\u0714\u0007T\u0002\u0002\u0711\u0712\u0007\u0114\u0002",
    "\u0002\u0712\u0713\u0007\u03f5\u0002\u0002\u0713\u0715\t\u001d\u0002",
    "\u0002\u0714\u0711\u0003\u0002\u0002\u0002\u0714\u0715\u0003\u0002\u0002",
    "\u0002\u0715\u0716\u0003\u0002\u0002\u0002\u0716\u0717\u0007\u03fe\u0002",
    "\u0002\u0717\u0718\u0005\u022e\u0118\u0002\u0718\u0719\u0007\u03ff\u0002",
    "\u0002\u0719\u0733\u0003\u0002\u0002\u0002\u071a\u0724\u0007y\u0002",
    "\u0002\u071b\u071c\u0007\u03fe\u0002\u0002\u071c\u071d\u0005\u025c\u012f",
    "\u0002\u071d\u071e\u0007\u03ff\u0002\u0002\u071e\u0725\u0003\u0002\u0002",
    "\u0002\u071f\u0720\u0007\u0130\u0002\u0002\u0720\u0721\u0007\u03fe\u0002",
    "\u0002\u0721\u0722\u0005\u022e\u0118\u0002\u0722\u0723\u0007\u03ff\u0002",
    "\u0002\u0723\u0725\u0003\u0002\u0002\u0002\u0724\u071b\u0003\u0002\u0002",
    "\u0002\u0724\u071f\u0003\u0002\u0002\u0002\u0725\u0733\u0003\u0002\u0002",
    "\u0002\u0726\u0730\u0007\u0193\u0002\u0002\u0727\u0728\u0007\u03fe\u0002",
    "\u0002\u0728\u0729\u0005\u025c\u012f\u0002\u0729\u072a\u0007\u03ff\u0002",
    "\u0002\u072a\u0731\u0003\u0002\u0002\u0002\u072b\u072c\u0007\u0130\u0002",
    "\u0002\u072c\u072d\u0007\u03fe\u0002\u0002\u072d\u072e\u0005\u022e\u0118",
    "\u0002\u072e\u072f\u0007\u03ff\u0002\u0002\u072f\u0731\u0003\u0002\u0002",
    "\u0002\u0730\u0727\u0003\u0002\u0002\u0002\u0730\u072b\u0003\u0002\u0002",
    "\u0002\u0731\u0733\u0003\u0002\u0002\u0002\u0732\u0706\u0003\u0002\u0002",
    "\u0002\u0732\u070e\u0003\u0002\u0002\u0002\u0732\u071a\u0003\u0002\u0002",
    "\u0002\u0732\u0726\u0003\u0002\u0002\u0002\u0733g\u0003\u0002\u0002",
    "\u0002\u0734\u0736\u0007\\\u0002\u0002\u0735\u0734\u0003\u0002\u0002",
    "\u0002\u0735\u0736\u0003\u0002\u0002\u0002\u0736\u0737\u0003\u0002\u0002",
    "\u0002\u0737\u0738\u0007\u0178\u0002\u0002\u0738\u0739\u0007\u03fe\u0002",
    "\u0002\u0739\u073a\u0005\u025c\u012f\u0002\u073a\u073b\u0007\u03ff\u0002",
    "\u0002\u073b\u074a\u0003\u0002\u0002\u0002\u073c\u073e\u0007\\\u0002",
    "\u0002\u073d\u073c\u0003\u0002\u0002\u0002\u073d\u073e\u0003\u0002\u0002",
    "\u0002\u073e\u073f\u0003\u0002\u0002\u0002\u073f\u0743\u0007T\u0002",
    "\u0002\u0740\u0741\u0007\u0114\u0002\u0002\u0741\u0742\u0007\u03f5\u0002",
    "\u0002\u0742\u0744\t\u001d\u0002\u0002\u0743\u0740\u0003\u0002\u0002",
    "\u0002\u0743\u0744\u0003\u0002\u0002\u0002\u0744\u0745\u0003\u0002\u0002",
    "\u0002\u0745\u0746\u0007\u03fe\u0002\u0002\u0746\u0747\u0005\u022e\u0118",
    "\u0002\u0747\u0748\u0007\u03ff\u0002\u0002\u0748\u074a\u0003\u0002\u0002",
    "\u0002\u0749\u0735\u0003\u0002\u0002\u0002\u0749\u073d\u0003\u0002\u0002",
    "\u0002\u074ai\u0003\u0002\u0002\u0002\u074b\u074c\u0007u\u0002\u0002",
    "\u074c\u074d\u0005\u020e\u0108\u0002\u074d\u074e\u0007\u00ac\u0002\u0002",
    "\u074e\u074f\u0007\u0191\u0002\u0002\u074f\u0750\u0007\u0231\u0002\u0002",
    "\u0750\u0751\u0007\u03fe\u0002\u0002\u0751\u0756\u0005l7\u0002\u0752",
    "\u0753\u0007\u0400\u0002\u0002\u0753\u0755\u0005l7\u0002\u0754\u0752",
    "\u0003\u0002\u0002\u0002\u0755\u0758\u0003\u0002\u0002\u0002\u0756\u0754",
    "\u0003\u0002\u0002\u0002\u0756\u0757\u0003\u0002\u0002\u0002\u0757\u0759",
    "\u0003\u0002\u0002\u0002\u0758\u0756\u0003\u0002\u0002\u0002\u0759\u075d",
    "\u0007\u03ff\u0002\u0002\u075a\u075c\u0005r:\u0002\u075b\u075a\u0003",
    "\u0002\u0002\u0002\u075c\u075f\u0003\u0002\u0002\u0002\u075d\u075b\u0003",
    "\u0002\u0002\u0002\u075d\u075e\u0003\u0002\u0002\u0002\u075e\u0768\u0003",
    "\u0002\u0002\u0002\u075f\u075d\u0003\u0002\u0002\u0002\u0760\u0765\u0005",
    "p9\u0002\u0761\u0762\u0007\u0400\u0002\u0002\u0762\u0764\u0005p9\u0002",
    "\u0763\u0761\u0003\u0002\u0002\u0002\u0764\u0767\u0003\u0002\u0002\u0002",
    "\u0765\u0763\u0003\u0002\u0002\u0002\u0765\u0766\u0003\u0002\u0002\u0002",
    "\u0766\u0769\u0003\u0002\u0002\u0002\u0767\u0765\u0003\u0002\u0002\u0002",
    "\u0768\u0760\u0003\u0002\u0002\u0002\u0768\u0769\u0003\u0002\u0002\u0002",
    "\u0769\u07cf\u0003\u0002\u0002\u0002\u076a\u076b\u0007u\u0002\u0002",
    "\u076b\u076c\u0005\u020e\u0108\u0002\u076c\u076d\u0007\u00ac\u0002\u0002",
    "\u076d\u076e\u0007\u0191\u0002\u0002\u076e\u076f\u0007\u0231\u0002\u0002",
    "\u076f\u0773\u0005l7\u0002\u0770\u0772\u0005r:\u0002\u0771\u0770\u0003",
    "\u0002\u0002\u0002\u0772\u0775\u0003\u0002\u0002\u0002\u0773\u0771\u0003",
    "\u0002\u0002\u0002\u0773\u0774\u0003\u0002\u0002\u0002\u0774\u077e\u0003",
    "\u0002\u0002\u0002\u0775\u0773\u0003\u0002\u0002\u0002\u0776\u077b\u0005",
    "p9\u0002\u0777\u0778\u0007\u0400\u0002\u0002\u0778\u077a\u0005p9\u0002",
    "\u0779\u0777\u0003\u0002\u0002\u0002\u077a\u077d\u0003\u0002\u0002\u0002",
    "\u077b\u0779\u0003\u0002\u0002\u0002\u077b\u077c\u0003\u0002\u0002\u0002",
    "\u077c\u077f\u0003\u0002\u0002\u0002\u077d\u077b\u0003\u0002\u0002\u0002",
    "\u077e\u0776\u0003\u0002\u0002\u0002\u077e\u077f\u0003\u0002\u0002\u0002",
    "\u077f\u07cf\u0003\u0002\u0002\u0002\u0780\u0781\u0007u\u0002\u0002",
    "\u0781\u0782\u0005\u020e\u0108\u0002\u0782\u0783\u0007\u00ac\u0002\u0002",
    "\u0783\u0784\u0007I\u0002\u0002\u0784\u0785\u0007\u03fe\u0002\u0002",
    "\u0785\u078a\u0005l7\u0002\u0786\u0787\u0007\u0400\u0002\u0002\u0787",
    "\u0789\u0005l7\u0002\u0788\u0786\u0003\u0002\u0002\u0002\u0789\u078c",
    "\u0003\u0002\u0002\u0002\u078a\u0788\u0003\u0002\u0002\u0002\u078a\u078b",
    "\u0003\u0002\u0002\u0002\u078b\u078d\u0003\u0002\u0002\u0002\u078c\u078a",
    "\u0003\u0002\u0002\u0002\u078d\u0791\u0007\u03ff\u0002\u0002\u078e\u0790",
    "\u0005r:\u0002\u078f\u078e\u0003\u0002\u0002\u0002\u0790\u0793\u0003",
    "\u0002\u0002\u0002\u0791\u078f\u0003\u0002\u0002\u0002\u0791\u0792\u0003",
    "\u0002\u0002\u0002\u0792\u079c\u0003\u0002\u0002\u0002\u0793\u0791\u0003",
    "\u0002\u0002\u0002\u0794\u0799\u0005p9\u0002\u0795\u0796\u0007\u0400",
    "\u0002\u0002\u0796\u0798\u0005p9\u0002\u0797\u0795\u0003\u0002\u0002",
    "\u0002\u0798\u079b\u0003\u0002\u0002\u0002\u0799\u0797\u0003\u0002\u0002",
    "\u0002\u0799\u079a\u0003\u0002\u0002\u0002\u079a\u079d\u0003\u0002\u0002",
    "\u0002\u079b\u0799\u0003\u0002\u0002\u0002\u079c\u0794\u0003\u0002\u0002",
    "\u0002\u079c\u079d\u0003\u0002\u0002\u0002\u079d\u07cf\u0003\u0002\u0002",
    "\u0002\u079e\u079f\u0007u\u0002\u0002\u079f\u07a0\u0005\u020e\u0108",
    "\u0002\u07a0\u07a1\u0007\u00ac\u0002\u0002\u07a1\u07a2\u0007I\u0002",
    "\u0002\u07a2\u07a3\u0007\u03fe\u0002\u0002\u07a3\u07a8\u0005n8\u0002",
    "\u07a4\u07a5\u0007\u0400\u0002\u0002\u07a5\u07a7\u0005n8\u0002\u07a6",
    "\u07a4\u0003\u0002\u0002\u0002\u07a7\u07aa\u0003\u0002\u0002\u0002\u07a8",
    "\u07a6\u0003\u0002\u0002\u0002\u07a8\u07a9\u0003\u0002\u0002\u0002\u07a9",
    "\u07ab\u0003\u0002\u0002\u0002\u07aa\u07a8\u0003\u0002\u0002\u0002\u07ab",
    "\u07af\u0007\u03ff\u0002\u0002\u07ac\u07ae\u0005r:\u0002\u07ad\u07ac",
    "\u0003\u0002\u0002\u0002\u07ae\u07b1\u0003\u0002\u0002\u0002\u07af\u07ad",
    "\u0003\u0002\u0002\u0002\u07af\u07b0\u0003\u0002\u0002\u0002\u07b0\u07ba",
    "\u0003\u0002\u0002\u0002\u07b1\u07af\u0003\u0002\u0002\u0002\u07b2\u07b7",
    "\u0005p9\u0002\u07b3\u07b4\u0007\u0400\u0002\u0002\u07b4\u07b6\u0005",
    "p9\u0002\u07b5\u07b3\u0003\u0002\u0002\u0002\u07b6\u07b9\u0003\u0002",
    "\u0002\u0002\u07b7\u07b5\u0003\u0002\u0002\u0002\u07b7\u07b8\u0003\u0002",
    "\u0002\u0002\u07b8\u07bb\u0003\u0002\u0002\u0002\u07b9\u07b7\u0003\u0002",
    "\u0002\u0002\u07ba\u07b2\u0003\u0002\u0002\u0002\u07ba\u07bb\u0003\u0002",
    "\u0002\u0002\u07bb\u07cf\u0003\u0002\u0002\u0002\u07bc\u07bd\u0007u",
    "\u0002\u0002\u07bd\u07c1\u0005\u020e\u0108\u0002\u07be\u07c0\u0005r",
    ":\u0002\u07bf\u07be\u0003\u0002\u0002\u0002\u07c0\u07c3\u0003\u0002",
    "\u0002\u0002\u07c1\u07bf\u0003\u0002\u0002\u0002\u07c1\u07c2\u0003\u0002",
    "\u0002\u0002\u07c2\u07cc\u0003\u0002\u0002\u0002\u07c3\u07c1\u0003\u0002",
    "\u0002\u0002\u07c4\u07c9\u0005p9\u0002\u07c5\u07c6\u0007\u0400\u0002",
    "\u0002\u07c6\u07c8\u0005p9\u0002\u07c7\u07c5\u0003\u0002\u0002\u0002",
    "\u07c8\u07cb\u0003\u0002\u0002\u0002\u07c9\u07c7\u0003\u0002\u0002\u0002",
    "\u07c9\u07ca\u0003\u0002\u0002\u0002\u07ca\u07cd\u0003\u0002\u0002\u0002",
    "\u07cb\u07c9\u0003\u0002\u0002\u0002\u07cc\u07c4\u0003\u0002\u0002\u0002",
    "\u07cc\u07cd\u0003\u0002\u0002\u0002\u07cd\u07cf\u0003\u0002\u0002\u0002",
    "\u07ce\u074b\u0003\u0002\u0002\u0002\u07ce\u076a\u0003\u0002\u0002\u0002",
    "\u07ce\u0780\u0003\u0002\u0002\u0002\u07ce\u079e\u0003\u0002\u0002\u0002",
    "\u07ce\u07bc\u0003\u0002\u0002\u0002\u07cfk\u0003\u0002\u0002\u0002",
    "\u07d0\u07d4\u0005\u0220\u0111\u0002\u07d1\u07d4\u0005\u025c\u012f\u0002",
    "\u07d2\u07d4\u0007e\u0002\u0002\u07d3\u07d0\u0003\u0002\u0002\u0002",
    "\u07d3\u07d1\u0003\u0002\u0002\u0002\u07d3\u07d2\u0003\u0002\u0002\u0002",
    "\u07d4m\u0003\u0002\u0002\u0002\u07d5\u07d6\u0007\u03fe\u0002\u0002",
    "\u07d6\u07d9\u0005l7\u0002\u07d7\u07d8\u0007\u0400\u0002\u0002\u07d8",
    "\u07da\u0005l7\u0002\u07d9\u07d7\u0003\u0002\u0002\u0002\u07da\u07db",
    "\u0003\u0002\u0002\u0002\u07db\u07d9\u0003\u0002\u0002\u0002\u07db\u07dc",
    "\u0003\u0002\u0002\u0002\u07dc\u07dd\u0003\u0002\u0002\u0002\u07dd\u07de",
    "\u0007\u03ff\u0002\u0002\u07deo\u0003\u0002\u0002\u0002\u07df\u07e0",
    "\u0007\u0228\u0002\u0002\u07e0\u07e4\u0005\u020e\u0108\u0002\u07e1\u07e3",
    "\u0005r:\u0002\u07e2\u07e1\u0003\u0002\u0002\u0002\u07e3\u07e6\u0003",
    "\u0002\u0002\u0002\u07e4\u07e2\u0003\u0002\u0002\u0002\u07e4\u07e5\u0003",
    "\u0002\u0002\u0002\u07e5q\u0003\u0002\u0002\u0002\u07e6\u07e4\u0003",
    "\u0002\u0002\u0002\u07e7\u07e9\u0007\u0223\u0002\u0002\u07e8\u07e7\u0003",
    "\u0002\u0002\u0002\u07e8\u07e9\u0003\u0002\u0002\u0002\u07e9\u07ea\u0003",
    "\u0002\u0002\u0002\u07ea\u07ec\u0007\u0158\u0002\u0002\u07eb\u07ed\u0007",
    "\u03f5\u0002\u0002\u07ec\u07eb\u0003\u0002\u0002\u0002\u07ec\u07ed\u0003",
    "\u0002\u0002\u0002\u07ed\u07ee\u0003\u0002\u0002\u0002\u07ee\u0815\u0005",
    "\u0204\u0103\u0002\u07ef\u07f1\u0007\u0133\u0002\u0002\u07f0\u07f2\u0007",
    "\u03f5\u0002\u0002\u07f1\u07f0\u0003\u0002\u0002\u0002\u07f1\u07f2\u0003",
    "\u0002\u0002\u0002\u07f2\u07f3\u0003\u0002\u0002\u0002\u07f3\u0815\u0007",
    "\u040d\u0002\u0002\u07f4\u07f5\u0007\u0145\u0002\u0002\u07f5\u07f7\u0007",
    "\u014c\u0002\u0002\u07f6\u07f8\u0007\u03f5\u0002\u0002\u07f7\u07f6\u0003",
    "\u0002\u0002\u0002\u07f7\u07f8\u0003\u0002\u0002\u0002\u07f8\u07f9\u0003",
    "\u0002\u0002\u0002\u07f9\u0815\u0007\u040d\u0002\u0002\u07fa\u07fb\u0007",
    "J\u0002\u0002\u07fb\u07fd\u0007\u014c\u0002\u0002\u07fc\u07fe\u0007",
    "\u03f5\u0002\u0002\u07fd\u07fc\u0003\u0002\u0002\u0002\u07fd\u07fe\u0003",
    "\u0002\u0002\u0002\u07fe\u07ff\u0003\u0002\u0002\u0002\u07ff\u0815\u0007",
    "\u040d\u0002\u0002\u0800\u0802\u0007\u01ae\u0002\u0002\u0801\u0803\u0007",
    "\u03f5\u0002\u0002\u0802\u0801\u0003\u0002\u0002\u0002\u0802\u0803\u0003",
    "\u0002\u0002\u0002\u0803\u0804\u0003\u0002\u0002\u0002\u0804\u0815\u0005",
    "\u0214\u010b\u0002\u0805\u0807\u0007\u01b7\u0002\u0002\u0806\u0808\u0007",
    "\u03f5\u0002\u0002\u0807\u0806\u0003\u0002\u0002\u0002\u0807\u0808\u0003",
    "\u0002\u0002\u0002\u0808\u0809\u0003\u0002\u0002\u0002\u0809\u0815\u0005",
    "\u0214\u010b\u0002\u080a\u080c\u0007\u022e\u0002\u0002\u080b\u080d\u0007",
    "\u03f5\u0002\u0002\u080c\u080b\u0003\u0002\u0002\u0002\u080c\u080d\u0003",
    "\u0002\u0002\u0002\u080d\u080e\u0003\u0002\u0002\u0002\u080e\u0815\u0005",
    "\u020e\u0108\u0002\u080f\u0811\u0007\u01c3\u0002\u0002\u0810\u0812\u0007",
    "\u03f5\u0002\u0002\u0811\u0810\u0003\u0002\u0002\u0002\u0811\u0812\u0003",
    "\u0002\u0002\u0002\u0812\u0813\u0003\u0002\u0002\u0002\u0813\u0815\u0005",
    "\u020e\u0108\u0002\u0814\u07e8\u0003\u0002\u0002\u0002\u0814\u07ef\u0003",
    "\u0002\u0002\u0002\u0814\u07f4\u0003\u0002\u0002\u0002\u0814\u07fa\u0003",
    "\u0002\u0002\u0002\u0814\u0800\u0003\u0002\u0002\u0002\u0814\u0805\u0003",
    "\u0002\u0002\u0002\u0814\u080a\u0003\u0002\u0002\u0002\u0814\u080f\u0003",
    "\u0002\u0002\u0002\u0815s\u0003\u0002\u0002\u0002\u0816\u0817\u0007",
    "\t\u0002\u0002\u0817\u0819\t\u0002\u0002\u0002\u0818\u081a\u0005\u020e",
    "\u0108\u0002\u0819\u0818\u0003\u0002\u0002\u0002\u0819\u081a\u0003\u0002",
    "\u0002\u0002\u081a\u081c\u0003\u0002\u0002\u0002\u081b\u081d\u00054",
    "\u001b\u0002\u081c\u081b\u0003\u0002\u0002\u0002\u081d\u081e\u0003\u0002",
    "\u0002\u0002\u081e\u081c\u0003\u0002\u0002\u0002\u081e\u081f\u0003\u0002",
    "\u0002\u0002\u081f\u0829\u0003\u0002\u0002\u0002\u0820\u0821\u0007\t",
    "\u0002\u0002\u0821\u0822\t\u0002\u0002\u0002\u0822\u0823\u0005\u020e",
    "\u0108\u0002\u0823\u0824\u0007\u023d\u0002\u0002\u0824\u0825\u0007\u0145",
    "\u0002\u0002\u0825\u0826\u0007\u014c\u0002\u0002\u0826\u0827\u0007\u01bd",
    "\u0002\u0002\u0827\u0829\u0003\u0002\u0002\u0002\u0828\u0816\u0003\u0002",
    "\u0002\u0002\u0828\u0820\u0003\u0002\u0002\u0002\u0829u\u0003\u0002",
    "\u0002\u0002\u082a\u082c\u0007\t\u0002\u0002\u082b\u082d\u00056\u001c",
    "\u0002\u082c\u082b\u0003\u0002\u0002\u0002\u082c\u082d\u0003\u0002\u0002",
    "\u0002\u082d\u082e\u0003\u0002\u0002\u0002\u082e\u082f\u0007\u015e\u0002",
    "\u0002\u082f\u0833\u0005\u01f4\u00fb\u0002\u0830\u0831\u0007l\u0002",
    "\u0002\u0831\u0832\u0007\u0205\u0002\u0002\u0832\u0834\u00058\u001d",
    "\u0002\u0833\u0830\u0003\u0002\u0002\u0002\u0833\u0834\u0003\u0002\u0002",
    "\u0002\u0834\u083b\u0003\u0002\u0002\u0002\u0835\u0836\u0007l\u0002",
    "\u0002\u0836\u0838\u0007\u0136\u0002\u0002\u0837\u0839\u0007h\u0002",
    "\u0002\u0838\u0837\u0003\u0002\u0002\u0002\u0838\u0839\u0003\u0002\u0002",
    "\u0002\u0839\u083a\u0003\u0002\u0002\u0002\u083a\u083c\u0007\u01de\u0002",
    "\u0002\u083b\u0835\u0003\u0002\u0002\u0002\u083b\u083c\u0003\u0002\u0002",
    "\u0002\u083c\u0840\u0003\u0002\u0002\u0002\u083d\u083e\u0007\u007f\u0002",
    "\u0002\u083e\u083f\u0007\u009f\u0002\u0002\u083f\u0841\u0005\u01f4\u00fb",
    "\u0002\u0840\u083d\u0003\u0002\u0002\u0002\u0840\u0841\u0003\u0002\u0002",
    "\u0002\u0841\u0843\u0003\u0002\u0002\u0002\u0842\u0844\u0005@!\u0002",
    "\u0843\u0842\u0003\u0002\u0002\u0002\u0843\u0844\u0003\u0002\u0002\u0002",
    "\u0844\u0847\u0003\u0002\u0002\u0002\u0845\u0846\u0007\u0133\u0002\u0002",
    "\u0846\u0848\u0007\u040d\u0002\u0002\u0847\u0845\u0003\u0002\u0002\u0002",
    "\u0847\u0848\u0003\u0002\u0002\u0002\u0848\u084b\u0003\u0002\u0002\u0002",
    "\u0849\u084a\u0007\u0150\u0002\u0002\u084a\u084c\u0005\u015c\u00af\u0002",
    "\u084b\u0849\u0003\u0002\u0002\u0002\u084b\u084c\u0003\u0002\u0002\u0002",
    "\u084cw\u0003\u0002\u0002\u0002\u084d\u084e\u0007\t\u0002\u0002\u084e",
    "\u084f\u0007\u0172\u0002\u0002\u084f\u0853\u0005\u01f4\u00fb\u0002\u0850",
    "\u0852\u0005J&\u0002\u0851\u0850\u0003\u0002\u0002\u0002\u0852\u0855",
    "\u0003\u0002\u0002\u0002\u0853\u0851\u0003\u0002\u0002\u0002\u0853\u0854",
    "\u0003\u0002\u0002\u0002\u0854y\u0003\u0002\u0002\u0002\u0855\u0853",
    "\u0003\u0002\u0002\u0002\u0856\u0857\u0007\t\u0002\u0002\u0857\u0858",
    "\u0007\u0184\u0002\u0002\u0858\u0859\u0007\u0200\u0002\u0002\u0859\u085a",
    "\u0007\u02ab\u0002\u0002\u085a\u085b\u0007\u0197\u0002\u0002\u085b\u085c",
    "\u0007T\u0002\u0002\u085c{\u0003\u0002\u0002\u0002\u085d\u085e\u0007",
    "\t\u0002\u0002\u085e\u085f\u0007\u0195\u0002\u0002\u085f\u0860\u0007",
    "D\u0002\u0002\u0860\u0861\u0005\u020e\u0108\u0002\u0861\u0862\u0007",
    "\u0007\u0002\u0002\u0862\u0863\u0007\u0238\u0002\u0002\u0863\u0869\u0007",
    "\u040d\u0002\u0002\u0864\u0866\u0007\u0180\u0002\u0002\u0865\u0867\u0007",
    "\u03f5\u0002\u0002\u0866\u0865\u0003\u0002\u0002\u0002\u0866\u0867\u0003",
    "\u0002\u0002\u0002\u0867\u0868\u0003\u0002\u0002\u0002\u0868\u086a\u0005",
    "\u0216\u010c\u0002\u0869\u0864\u0003\u0002\u0002\u0002\u0869\u086a\u0003",
    "\u0002\u0002\u0002\u086a\u086c\u0003\u0002\u0002\u0002\u086b\u086d\u0007",
    "\u0247\u0002\u0002\u086c\u086b\u0003\u0002\u0002\u0002\u086c\u086d\u0003",
    "\u0002\u0002\u0002\u086d\u086e\u0003\u0002\u0002\u0002\u086e\u0870\u0007",
    "\u0158\u0002\u0002\u086f\u0871\u0007\u03f5\u0002\u0002\u0870\u086f\u0003",
    "\u0002\u0002\u0002\u0870\u0871\u0003\u0002\u0002\u0002\u0871\u0872\u0003",
    "\u0002\u0002\u0002\u0872\u0873\u0005\u0204\u0103\u0002\u0873}\u0003",
    "\u0002\u0002\u0002\u0874\u0875\u0007\t\u0002\u0002\u0875\u0876\u0007",
    "w\u0002\u0002\u0876\u087a\u0005\u01f4\u00fb\u0002\u0877\u0879\u0005",
    "J&\u0002\u0878\u0877\u0003\u0002\u0002\u0002\u0879\u087c\u0003\u0002",
    "\u0002\u0002\u087a\u0878\u0003\u0002\u0002\u0002\u087a\u087b\u0003\u0002",
    "\u0002\u0002\u087b\u007f\u0003\u0002\u0002\u0002\u087c\u087a\u0003\u0002",
    "\u0002\u0002\u087d\u087e\u0007\t\u0002\u0002\u087e\u087f\u0007\u0207",
    "\u0002\u0002\u087f\u0880\u0005\u020e\u0108\u0002\u0880\u0881\u0007\u01ce",
    "\u0002\u0002\u0881\u0882\u0007\u03fe\u0002\u0002\u0882\u0887\u0005L",
    "\'\u0002\u0883\u0884\u0007\u0400\u0002\u0002\u0884\u0886\u0005L\'\u0002",
    "\u0885\u0883\u0003\u0002\u0002\u0002\u0886\u0889\u0003\u0002\u0002\u0002",
    "\u0887\u0885\u0003\u0002\u0002\u0002\u0887\u0888\u0003\u0002\u0002\u0002",
    "\u0888\u088a\u0003\u0002\u0002\u0002\u0889\u0887\u0003\u0002\u0002\u0002",
    "\u088a\u088b\u0007\u03ff\u0002\u0002\u088b\u0081\u0003\u0002\u0002\u0002",
    "\u088c\u088e\u0007\t\u0002\u0002\u088d\u088f\t\u0003\u0002\u0002\u088e",
    "\u088d\u0003\u0002\u0002\u0002\u088e\u088f\u0003\u0002\u0002\u0002\u088f",
    "\u0891\u0003\u0002\u0002\u0002\u0890\u0892\u0007H\u0002\u0002\u0891",
    "\u0890\u0003\u0002\u0002\u0002\u0891\u0892\u0003\u0002\u0002\u0002\u0892",
    "\u0893\u0003\u0002\u0002\u0002\u0893\u0894\u0007\u009c\u0002\u0002\u0894",
    "\u089d\u0005\u01f6\u00fc\u0002\u0895\u089a\u0005\u0088E\u0002\u0896",
    "\u0897\u0007\u0400\u0002\u0002\u0897\u0899\u0005\u0088E\u0002\u0898",
    "\u0896\u0003\u0002\u0002\u0002\u0899\u089c\u0003\u0002\u0002\u0002\u089a",
    "\u0898\u0003\u0002\u0002\u0002\u089a\u089b\u0003\u0002\u0002\u0002\u089b",
    "\u089e\u0003\u0002\u0002\u0002\u089c\u089a\u0003\u0002\u0002\u0002\u089d",
    "\u0895\u0003\u0002\u0002\u0002\u089d\u089e\u0003\u0002\u0002\u0002\u089e",
    "\u08a0\u0003\u0002\u0002\u0002\u089f\u08a1\u0005d3\u0002\u08a0\u089f",
    "\u0003\u0002\u0002\u0002\u08a0\u08a1\u0003\u0002\u0002\u0002\u08a1\u0083",
    "\u0003\u0002\u0002\u0002\u08a2\u08a3\u0007\t\u0002\u0002\u08a3\u08a4",
    "\u0007\u022e\u0002\u0002\u08a4\u08a5\u0005\u020e\u0108\u0002\u08a5\u08a6",
    "\t\u001e\u0002\u0002\u08a6\u08a7\u0007\u0146\u0002\u0002\u08a7\u08ab",
    "\u0007\u040d\u0002\u0002\u08a8\u08a9\u0007\u0180\u0002\u0002\u08a9\u08aa",
    "\u0007\u03f5\u0002\u0002\u08aa\u08ac\u0005\u0216\u010c\u0002\u08ab\u08a8",
    "\u0003\u0002\u0002\u0002\u08ab\u08ac\u0003\u0002\u0002\u0002\u08ac\u08ae",
    "\u0003\u0002\u0002\u0002\u08ad\u08af\u0007\u0247\u0002\u0002\u08ae\u08ad",
    "\u0003\u0002\u0002\u0002\u08ae\u08af\u0003\u0002\u0002\u0002\u08af\u08b0",
    "\u0003\u0002\u0002\u0002\u08b0\u08b2\u0007\u0158\u0002\u0002\u08b1\u08b3",
    "\u0007\u03f5\u0002\u0002\u08b2\u08b1\u0003\u0002\u0002\u0002\u08b2\u08b3",
    "\u0003\u0002\u0002\u0002\u08b3\u08b4\u0003\u0002\u0002\u0002\u08b4\u08b5",
    "\u0005\u0204\u0103\u0002\u08b5\u0085\u0003\u0002\u0002\u0002\u08b6\u08ba",
    "\u0007\t\u0002\u0002\u08b7\u08b8\u0007\u0114\u0002\u0002\u08b8\u08b9",
    "\u0007\u03f5\u0002\u0002\u08b9\u08bb\t\f\u0002\u0002\u08ba\u08b7\u0003",
    "\u0002\u0002\u0002\u08ba\u08bb\u0003\u0002\u0002\u0002\u08bb\u08bd\u0003",
    "\u0002\u0002\u0002\u08bc\u08be\u00056\u001c\u0002\u08bd\u08bc\u0003",
    "\u0002\u0002\u0002\u08bd\u08be\u0003\u0002\u0002\u0002\u08be\u08c2\u0003",
    "\u0002\u0002\u0002\u08bf\u08c0\u0007\u0091\u0002\u0002\u08c0\u08c1\u0007",
    "\u0206\u0002\u0002\u08c1\u08c3\t\r\u0002\u0002\u08c2\u08bf\u0003\u0002",
    "\u0002\u0002\u08c2\u08c3\u0003\u0002\u0002\u0002\u08c3\u08c4\u0003\u0002",
    "\u0002\u0002\u08c4\u08c5\u0007\u0244\u0002\u0002\u08c5\u08ca\u0005\u01f4",
    "\u00fb\u0002\u08c6\u08c7\u0007\u03fe\u0002\u0002\u08c7\u08c8\u0005\u022e",
    "\u0118\u0002\u08c8\u08c9\u0007\u03ff\u0002\u0002\u08c9\u08cb\u0003\u0002",
    "\u0002\u0002\u08ca\u08c6\u0003\u0002\u0002\u0002\u08ca\u08cb\u0003\u0002",
    "\u0002\u0002\u08cb\u08cc\u0003\u0002\u0002\u0002\u08cc\u08cd\u0007\r",
    "\u0002\u0002\u08cd\u08d4\u0005\u00b6\\\u0002\u08ce\u08d0\u0007\u00b0",
    "\u0002\u0002\u08cf\u08d1\t\u000e\u0002\u0002\u08d0\u08cf\u0003\u0002",
    "\u0002\u0002\u08d0\u08d1\u0003\u0002\u0002\u0002\u08d1\u08d2\u0003\u0002",
    "\u0002\u0002\u08d2\u08d3\u0007\u0019\u0002\u0002\u08d3\u08d5\u0007n",
    "\u0002\u0002\u08d4\u08ce\u0003\u0002\u0002\u0002\u08d4\u08d5\u0003\u0002",
    "\u0002\u0002\u08d5\u0087\u0003\u0002\u0002\u0002\u08d6\u08dd\u0005`",
    "1\u0002\u08d7\u08d9\u0007\u0400\u0002\u0002\u08d8\u08d7\u0003\u0002",
    "\u0002\u0002\u08d8\u08d9\u0003\u0002\u0002\u0002\u08d9\u08da\u0003\u0002",
    "\u0002\u0002\u08da\u08dc\u0005`1\u0002\u08db\u08d8\u0003\u0002\u0002",
    "\u0002\u08dc\u08df\u0003\u0002\u0002\u0002\u08dd\u08db\u0003\u0002\u0002",
    "\u0002\u08dd\u08de\u0003\u0002\u0002\u0002\u08de\u0a42\u0003\u0002\u0002",
    "\u0002\u08df\u08dd\u0003\u0002\u0002\u0002\u08e0\u08e2\u0007\u0007\u0002",
    "\u0002\u08e1\u08e3\u0007\u001b\u0002\u0002\u08e2\u08e1\u0003\u0002\u0002",
    "\u0002\u08e2\u08e3\u0003\u0002\u0002\u0002\u08e3\u08e4\u0003\u0002\u0002",
    "\u0002\u08e4\u08e5\u0005\u020e\u0108\u0002\u08e5\u08e9\u0005R*\u0002",
    "\u08e6\u08ea\u0007\u016c\u0002\u0002\u08e7\u08e8\u0007\u0112\u0002\u0002",
    "\u08e8\u08ea\u0005\u020e\u0108\u0002\u08e9\u08e6\u0003\u0002\u0002\u0002",
    "\u08e9\u08e7\u0003\u0002\u0002\u0002\u08e9\u08ea\u0003\u0002\u0002\u0002",
    "\u08ea\u0a42\u0003\u0002\u0002\u0002\u08eb\u08ed\u0007\u0007\u0002\u0002",
    "\u08ec\u08ee\u0007\u001b\u0002\u0002\u08ed\u08ec\u0003\u0002\u0002\u0002",
    "\u08ed\u08ee\u0003\u0002\u0002\u0002\u08ee\u08ef\u0003\u0002\u0002\u0002",
    "\u08ef\u08f0\u0007\u03fe\u0002\u0002\u08f0\u08f1\u0005\u020e\u0108\u0002",
    "\u08f1\u08f8\u0005R*\u0002\u08f2\u08f3\u0007\u0400\u0002\u0002\u08f3",
    "\u08f4\u0005\u020e\u0108\u0002\u08f4\u08f5\u0005R*\u0002\u08f5\u08f7",
    "\u0003\u0002\u0002\u0002\u08f6\u08f2\u0003\u0002\u0002\u0002\u08f7\u08fa",
    "\u0003\u0002\u0002\u0002\u08f8\u08f6\u0003\u0002\u0002\u0002\u08f8\u08f9",
    "\u0003\u0002\u0002\u0002\u08f9\u08fb\u0003\u0002\u0002\u0002\u08fa\u08f8",
    "\u0003\u0002\u0002\u0002\u08fb\u08fc\u0007\u03ff\u0002\u0002\u08fc\u0a42",
    "\u0003\u0002\u0002\u0002\u08fd\u08fe\u0007\u0007\u0002\u0002\u08fe\u0900",
    "\t\u0014\u0002\u0002\u08ff\u0901\u0005\u020e\u0108\u0002\u0900\u08ff",
    "\u0003\u0002\u0002\u0002\u0900\u0901\u0003\u0002\u0002\u0002\u0901\u0903",
    "\u0003\u0002\u0002\u0002\u0902\u0904\u0005B\"\u0002\u0903\u0902\u0003",
    "\u0002\u0002\u0002\u0903\u0904\u0003\u0002\u0002\u0002\u0904\u0905\u0003",
    "\u0002\u0002\u0002\u0905\u0909\u0005\u0232\u011a\u0002\u0906\u0908\u0005",
    "D#\u0002\u0907\u0906\u0003\u0002\u0002\u0002\u0908\u090b\u0003\u0002",
    "\u0002\u0002\u0909\u0907\u0003\u0002\u0002\u0002\u0909\u090a\u0003\u0002",
    "\u0002\u0002\u090a\u0a42\u0003\u0002\u0002\u0002\u090b\u0909\u0003\u0002",
    "\u0002\u0002\u090c\u0911\u0007\u0007\u0002\u0002\u090d\u090f\u0007\u001d",
    "\u0002\u0002\u090e\u0910\u0005\u020e\u0108\u0002\u090f\u090e\u0003\u0002",
    "\u0002\u0002\u090f\u0910\u0003\u0002\u0002\u0002\u0910\u0912\u0003\u0002",
    "\u0002\u0002\u0911\u090d\u0003\u0002\u0002\u0002\u0911\u0912\u0003\u0002",
    "\u0002\u0002\u0912\u0913\u0003\u0002\u0002\u0002\u0913\u0914\u0007v",
    "\u0002\u0002\u0914\u0916\u0007T\u0002\u0002\u0915\u0917\u0005\u020e",
    "\u0108\u0002\u0916\u0915\u0003\u0002\u0002\u0002\u0916\u0917\u0003\u0002",
    "\u0002\u0002\u0917\u0919\u0003\u0002\u0002\u0002\u0918\u091a\u0005B",
    "\"\u0002\u0919\u0918\u0003\u0002\u0002\u0002\u0919\u091a\u0003\u0002",
    "\u0002\u0002\u091a\u091b\u0003\u0002\u0002\u0002\u091b\u091f\u0005\u0232",
    "\u011a\u0002\u091c\u091e\u0005D#\u0002\u091d\u091c\u0003\u0002\u0002",
    "\u0002\u091e\u0921\u0003\u0002\u0002\u0002\u091f\u091d\u0003\u0002\u0002",
    "\u0002\u091f\u0920\u0003\u0002\u0002\u0002\u0920\u0a42\u0003\u0002\u0002",
    "\u0002\u0921\u091f\u0003\u0002\u0002\u0002\u0922\u0927\u0007\u0007\u0002",
    "\u0002\u0923\u0925\u0007\u001d\u0002\u0002\u0924\u0926\u0005\u020e\u0108",
    "\u0002\u0925\u0924\u0003\u0002\u0002\u0002\u0925\u0926\u0003\u0002\u0002",
    "\u0002\u0926\u0928\u0003\u0002\u0002\u0002\u0927\u0923\u0003\u0002\u0002",
    "\u0002\u0927\u0928\u0003\u0002\u0002\u0002\u0928\u0929\u0003\u0002\u0002",
    "\u0002\u0929\u092b\u0007\u00a5\u0002\u0002\u092a\u092c\t\u0014\u0002",
    "\u0002\u092b\u092a\u0003\u0002\u0002\u0002\u092b\u092c\u0003\u0002\u0002",
    "\u0002\u092c\u092e\u0003\u0002\u0002\u0002\u092d\u092f\u0005\u020e\u0108",
    "\u0002\u092e\u092d\u0003\u0002\u0002\u0002\u092e\u092f\u0003\u0002\u0002",
    "\u0002\u092f\u0931\u0003\u0002\u0002\u0002\u0930\u0932\u0005B\"\u0002",
    "\u0931\u0930\u0003\u0002\u0002\u0002\u0931\u0932\u0003\u0002\u0002\u0002",
    "\u0932\u0933\u0003\u0002\u0002\u0002\u0933\u0937\u0005\u0232\u011a\u0002",
    "\u0934\u0936\u0005D#\u0002\u0935\u0934\u0003\u0002\u0002\u0002\u0936",
    "\u0939\u0003\u0002\u0002\u0002\u0937\u0935\u0003\u0002\u0002\u0002\u0937",
    "\u0938\u0003\u0002\u0002\u0002\u0938\u0a42\u0003\u0002\u0002\u0002\u0939",
    "\u0937\u0003\u0002\u0002\u0002\u093a\u093b\u0007\u0007\u0002\u0002\u093b",
    "\u093d\t\u0016\u0002\u0002\u093c\u093e\t\u0014\u0002\u0002\u093d\u093c",
    "\u0003\u0002\u0002\u0002\u093d\u093e\u0003\u0002\u0002\u0002\u093e\u0940",
    "\u0003\u0002\u0002\u0002\u093f\u0941\u0005\u020e\u0108\u0002\u0940\u093f",
    "\u0003\u0002\u0002\u0002\u0940\u0941\u0003\u0002\u0002\u0002\u0941\u0942",
    "\u0003\u0002\u0002\u0002\u0942\u0946\u0005\u0232\u011a\u0002\u0943\u0945",
    "\u0005D#\u0002\u0944\u0943\u0003\u0002\u0002\u0002\u0945\u0948\u0003",
    "\u0002\u0002\u0002\u0946\u0944\u0003\u0002\u0002\u0002\u0946\u0947\u0003",
    "\u0002\u0002\u0002\u0947\u0a42\u0003\u0002\u0002\u0002\u0948\u0946\u0003",
    "\u0002\u0002\u0002\u0949\u094e\u0007\u0007\u0002\u0002\u094a\u094c\u0007",
    "\u001d\u0002\u0002\u094b\u094d\u0005\u020e\u0108\u0002\u094c\u094b\u0003",
    "\u0002\u0002\u0002\u094c\u094d\u0003\u0002\u0002\u0002\u094d\u094f\u0003",
    "\u0002\u0002\u0002\u094e\u094a\u0003\u0002\u0002\u0002\u094e\u094f\u0003",
    "\u0002\u0002\u0002\u094f\u0950\u0003\u0002\u0002\u0002\u0950\u0951\u0007",
    ">\u0002\u0002\u0951\u0953\u0007T\u0002\u0002\u0952\u0954\u0005\u020e",
    "\u0108\u0002\u0953\u0952\u0003\u0002\u0002\u0002\u0953\u0954\u0003\u0002",
    "\u0002\u0002\u0954\u0955\u0003\u0002\u0002\u0002\u0955\u0956\u0005\u0232",
    "\u011a\u0002\u0956\u0957\u0005X-\u0002\u0957\u0a42\u0003\u0002\u0002",
    "\u0002\u0958\u095d\u0007\u0007\u0002\u0002\u0959\u095b\u0007\u001d\u0002",
    "\u0002\u095a\u095c\u0005\u020e\u0108\u0002\u095b\u095a\u0003\u0002\u0002",
    "\u0002\u095b\u095c\u0003\u0002\u0002\u0002\u095c\u095e\u0003\u0002\u0002",
    "\u0002\u095d\u0959\u0003\u0002\u0002\u0002\u095d\u095e\u0003\u0002\u0002",
    "\u0002\u095e\u095f\u0003\u0002\u0002\u0002\u095f\u0960\u0007\u0019\u0002",
    "\u0002\u0960\u0961\u0007\u03fe\u0002\u0002\u0961\u0962\u0005\u025c\u012f",
    "\u0002\u0962\u0963\u0007\u03ff\u0002\u0002\u0963\u0a42\u0003\u0002\u0002",
    "\u0002\u0964\u0966\u0007\u0114\u0002\u0002\u0965\u0967\u0007\u03f5\u0002",
    "\u0002\u0966\u0965\u0003\u0002\u0002\u0002\u0966\u0967\u0003\u0002\u0002",
    "\u0002\u0967\u0968\u0003\u0002\u0002\u0002\u0968\u0a42\t\u0005\u0002",
    "\u0002\u0969\u096b\u0007\t\u0002\u0002\u096a\u096c\u0007\u001b\u0002",
    "\u0002\u096b\u096a\u0003\u0002\u0002\u0002\u096b\u096c\u0003\u0002\u0002",
    "\u0002\u096c\u096d\u0003\u0002\u0002\u0002\u096d\u0973\u0005\u020e\u0108",
    "\u0002\u096e\u096f\u0007\u008c\u0002\u0002\u096f\u0970\u0007(\u0002",
    "\u0002\u0970\u0974\u0005\u023e\u0120\u0002\u0971\u0972\u00071\u0002",
    "\u0002\u0972\u0974\u0007(\u0002\u0002\u0973\u096e\u0003\u0002\u0002",
    "\u0002\u0973\u0971\u0003\u0002\u0002\u0002\u0974\u0a42\u0003\u0002\u0002",
    "\u0002\u0975\u0977\u0007\u0017\u0002\u0002\u0976\u0978\u0007\u001b\u0002",
    "\u0002\u0977\u0976\u0003\u0002\u0002\u0002\u0977\u0978\u0003\u0002\u0002",
    "\u0002\u0978\u0979\u0003\u0002\u0002\u0002\u0979\u097a\u0005\u020e\u0108",
    "\u0002\u097a\u097b\u0005\u020e\u0108\u0002\u097b\u097f\u0005R*\u0002",
    "\u097c\u0980\u0007\u016c\u0002\u0002\u097d\u097e\u0007\u0112\u0002\u0002",
    "\u097e\u0980\u0005\u020e\u0108\u0002\u097f\u097c\u0003\u0002\u0002\u0002",
    "\u097f\u097d\u0003\u0002\u0002\u0002\u097f\u0980\u0003\u0002\u0002\u0002",
    "\u0980\u0a42\u0003\u0002\u0002\u0002\u0981\u0982\u0007\u007f\u0002\u0002",
    "\u0982\u0983\u0007\u001b\u0002\u0002\u0983\u0984\u0005\u020e\u0108\u0002",
    "\u0984\u0985\u0007\u009f\u0002\u0002\u0985\u0986\u0005\u020e\u0108\u0002",
    "\u0986\u0a42\u0003\u0002\u0002\u0002\u0987\u0989\u0007_\u0002\u0002",
    "\u0988\u098a\u0007\u03f5\u0002\u0002\u0989\u0988\u0003\u0002\u0002\u0002",
    "\u0989\u098a\u0003\u0002\u0002\u0002\u098a\u098b\u0003\u0002\u0002\u0002",
    "\u098b\u0a42\t\u0006\u0002\u0002\u098c\u098e\u0007\u01b9\u0002\u0002",
    "\u098d\u098f\u0007\u001b\u0002\u0002\u098e\u098d\u0003\u0002\u0002\u0002",
    "\u098e\u098f\u0003\u0002\u0002\u0002\u098f\u0990\u0003\u0002\u0002\u0002",
    "\u0990\u0991\u0005\u020e\u0108\u0002\u0991\u0995\u0005R*\u0002\u0992",
    "\u0996\u0007\u016c\u0002\u0002\u0993\u0994\u0007\u0112\u0002\u0002\u0994",
    "\u0996\u0005\u020e\u0108\u0002\u0995\u0992\u0003\u0002\u0002\u0002\u0995",
    "\u0993\u0003\u0002\u0002\u0002\u0995\u0996\u0003\u0002\u0002\u0002\u0996",
    "\u0a42\u0003\u0002\u0002\u0002\u0997\u0999\u00071\u0002\u0002\u0998",
    "\u099a\u0007\u001b\u0002\u0002\u0999\u0998\u0003\u0002\u0002\u0002\u0999",
    "\u099a\u0003\u0002\u0002\u0002\u099a\u099b\u0003\u0002\u0002\u0002\u099b",
    "\u099d\u0005\u020e\u0108\u0002\u099c\u099e\u0007\u0084\u0002\u0002\u099d",
    "\u099c\u0003\u0002\u0002\u0002\u099d\u099e\u0003\u0002\u0002\u0002\u099e",
    "\u0a42\u0003\u0002\u0002\u0002\u099f\u09a0\u00071\u0002\u0002\u09a0",
    "\u09a1\u0007v\u0002\u0002\u09a1\u0a42\u0007T\u0002\u0002\u09a2\u09a3",
    "\u0007\u007f\u0002\u0002\u09a3\u09a4\t\u0014\u0002\u0002\u09a4\u09a5",
    "\u0005\u020e\u0108\u0002\u09a5\u09a6\u0007\u009f\u0002\u0002\u09a6\u09a7",
    "\u0005\u020e\u0108\u0002\u09a7\u0a42\u0003\u0002\u0002\u0002\u09a8\u09a9",
    "\u0007\t\u0002\u0002\u09a9\u09aa\u0007J\u0002\u0002\u09aa\u09ab\u0005",
    "\u020e\u0108\u0002\u09ab\u09ac\t\u001f\u0002\u0002\u09ac\u0a42\u0003",
    "\u0002\u0002\u0002\u09ad\u09ae\u00071\u0002\u0002\u09ae\u09af\t\u0014",
    "\u0002\u0002\u09af\u0a42\u0005\u020e\u0108\u0002\u09b0\u09b1\u00071",
    "\u0002\u0002\u09b1\u09b2\u0007>\u0002\u0002\u09b2\u09b3\u0007T\u0002",
    "\u0002\u09b3\u0a42\u0005\u020e\u0108\u0002\u09b4\u09b5\u0007\u014d\u0002",
    "\u0002\u09b5\u0a42\u0007U\u0002\u0002\u09b6\u09b7\u0007\u0154\u0002",
    "\u0002\u09b7\u0a42\u0007U\u0002\u0002\u09b8\u09ba\u0007\u007f\u0002",
    "\u0002\u09b9\u09bb\t \u0002\u0002\u09ba\u09b9\u0003\u0002\u0002\u0002",
    "\u09ba\u09bb\u0003\u0002\u0002\u0002\u09bb\u09be\u0003\u0002\u0002\u0002",
    "\u09bc\u09bf\u0005\u020e\u0108\u0002\u09bd\u09bf\u0005\u01f4\u00fb\u0002",
    "\u09be\u09bc\u0003\u0002\u0002\u0002\u09be\u09bd\u0003\u0002\u0002\u0002",
    "\u09bf\u0a42\u0003\u0002\u0002\u0002\u09c0\u09c1\u0007q\u0002\u0002",
    "\u09c1\u09c2\u0007\u0012\u0002\u0002\u09c2\u0a42\u0005\u022e\u0118\u0002",
    "\u09c3\u09c4\u0007\u001f\u0002\u0002\u09c4\u09c5\u0007\u009f\u0002\u0002",
    "\u09c5\u09c6\u0007\u0018\u0002\u0002\u09c6\u09c7\u0007\u008c\u0002\u0002",
    "\u09c7\u09ca\u0005\u0200\u0101\u0002\u09c8\u09c9\u0007\u001a\u0002\u0002",
    "\u09c9\u09cb\u0005\u0202\u0102\u0002\u09ca\u09c8\u0003\u0002\u0002\u0002",
    "\u09ca\u09cb\u0003\u0002\u0002\u0002\u09cb\u0a42\u0003\u0002\u0002\u0002",
    "\u09cc\u09ce\u0007(\u0002\u0002\u09cd\u09cc\u0003\u0002\u0002\u0002",
    "\u09cd\u09ce\u0003\u0002\u0002\u0002\u09ce\u09cf\u0003\u0002\u0002\u0002",
    "\u09cf\u09d0\u0007\u0018\u0002\u0002\u09d0\u09d1\u0007\u008c\u0002\u0002",
    "\u09d1\u09d2\u0007\u03f5\u0002\u0002\u09d2\u09d6\u0005\u0200\u0101\u0002",
    "\u09d3\u09d4\u0007\u001a\u0002\u0002\u09d4\u09d5\u0007\u03f5\u0002\u0002",
    "\u09d5\u09d7\u0005\u0202\u0102\u0002\u09d6\u09d3\u0003\u0002\u0002\u0002",
    "\u09d6\u09d7\u0003\u0002\u0002\u0002\u09d7\u0a42\u0003\u0002\u0002\u0002",
    "\u09d8\u09d9\u0007\u014e\u0002\u0002\u09d9\u0a42\u0007\u022e\u0002\u0002",
    "\u09da\u09db\u0007\u017e\u0002\u0002\u09db\u0a42\u0007\u022e\u0002\u0002",
    "\u09dc\u0a42\u0007=\u0002\u0002\u09dd\u09de\t!\u0002\u0002\u09de\u0a42",
    "\u0007\u0241\u0002\u0002\u09df\u09e0\u0007\u0007\u0002\u0002\u09e0\u09e1",
    "\u0007u\u0002\u0002\u09e1\u09e2\u0007\u03fe\u0002\u0002\u09e2\u09e7",
    "\u0005j6\u0002\u09e3\u09e4\u0007\u0400\u0002\u0002\u09e4\u09e6\u0005",
    "j6\u0002\u09e5\u09e3\u0003\u0002\u0002\u0002\u09e6\u09e9\u0003\u0002",
    "\u0002\u0002\u09e7\u09e5\u0003\u0002\u0002\u0002\u09e7\u09e8\u0003\u0002",
    "\u0002\u0002\u09e8\u09ea\u0003\u0002\u0002\u0002\u09e9\u09e7\u0003\u0002",
    "\u0002\u0002\u09ea\u09eb\u0007\u03ff\u0002\u0002\u09eb\u0a42\u0003\u0002",
    "\u0002\u0002\u09ec\u09ed\u00071\u0002\u0002\u09ed\u09ee\u0007u\u0002",
    "\u0002\u09ee\u0a42\u0005\u022e\u0118\u0002\u09ef\u09f0\u0007\u014e\u0002",
    "\u0002\u09f0\u09f3\u0007u\u0002\u0002\u09f1\u09f4\u0005\u022e\u0118",
    "\u0002\u09f2\u09f4\u0007\b\u0002\u0002\u09f3\u09f1\u0003\u0002\u0002",
    "\u0002\u09f3\u09f2\u0003\u0002\u0002\u0002\u09f4\u09f5\u0003\u0002\u0002",
    "\u0002\u09f5\u0a42\u0007\u022e\u0002\u0002\u09f6\u09f7\u0007\u017e\u0002",
    "\u0002\u09f7\u09fa\u0007u\u0002\u0002\u09f8\u09fb\u0005\u022e\u0118",
    "\u0002\u09f9\u09fb\u0007\b\u0002\u0002\u09fa\u09f8\u0003\u0002\u0002",
    "\u0002\u09fa\u09f9\u0003\u0002\u0002\u0002\u09fb\u09fc\u0003\u0002\u0002",
    "\u0002\u09fc\u0a42\u0007\u022e\u0002\u0002\u09fd\u09fe\u0007\u0236\u0002",
    "\u0002\u09fe\u0a01\u0007u\u0002\u0002\u09ff\u0a02\u0005\u022e\u0118",
    "\u0002\u0a00\u0a02\u0007\b\u0002\u0002\u0a01\u09ff\u0003\u0002\u0002",
    "\u0002\u0a01\u0a00\u0003\u0002\u0002\u0002\u0a02\u0a42\u0003\u0002\u0002",
    "\u0002\u0a03\u0a04\u0007\u012e\u0002\u0002\u0a04\u0a05\u0007u\u0002",
    "\u0002\u0a05\u0a42\u0005\u0214\u010b\u0002\u0a06\u0a07\u0007\u01ef\u0002",
    "\u0002\u0a07\u0a08\u0007u\u0002\u0002\u0a08\u0a09\u0005\u022e\u0118",
    "\u0002\u0a09\u0a0a\u0007P\u0002\u0002\u0a0a\u0a0b\u0007\u03fe\u0002",
    "\u0002\u0a0b\u0a10\u0005j6\u0002\u0a0c\u0a0d\u0007\u0400\u0002\u0002",
    "\u0a0d\u0a0f\u0005j6\u0002\u0a0e\u0a0c\u0003\u0002\u0002\u0002\u0a0f",
    "\u0a12\u0003\u0002\u0002\u0002\u0a10\u0a0e\u0003\u0002\u0002\u0002\u0a10",
    "\u0a11\u0003\u0002\u0002\u0002\u0a11\u0a13\u0003\u0002\u0002\u0002\u0a12",
    "\u0a10\u0003\u0002\u0002\u0002\u0a13\u0a14\u0007\u03ff\u0002\u0002\u0a14",
    "\u0a42\u0003\u0002\u0002\u0002\u0a15\u0a16\u0007\u0161\u0002\u0002\u0a16",
    "\u0a17\u0007u\u0002\u0002\u0a17\u0a18\u0005\u020e\u0108\u0002\u0a18",
    "\u0a19\u0007\u00b0\u0002\u0002\u0a19\u0a1a\u0007\u009c\u0002\u0002\u0a1a",
    "\u0a1d\u0005\u01f6\u00fc\u0002\u0a1b\u0a1c\t!\u0002\u0002\u0a1c\u0a1e",
    "\u0007\u0241\u0002\u0002\u0a1d\u0a1b\u0003\u0002\u0002\u0002\u0a1d\u0a1e",
    "\u0003\u0002\u0002\u0002\u0a1e\u0a42\u0003\u0002\u0002\u0002\u0a1f\u0a20",
    "\u0007\u000b\u0002\u0002\u0a20\u0a23\u0007u\u0002\u0002\u0a21\u0a24",
    "\u0005\u022e\u0118\u0002\u0a22\u0a24\u0007\b\u0002\u0002\u0a23\u0a21",
    "\u0003\u0002\u0002\u0002\u0a23\u0a22\u0003\u0002\u0002\u0002\u0a24\u0a42",
    "\u0003\u0002\u0002\u0002\u0a25\u0a26\u0007\u0019\u0002\u0002\u0a26\u0a29",
    "\u0007u\u0002\u0002\u0a27\u0a2a\u0005\u022e\u0118\u0002\u0a28\u0a2a",
    "\u0007\b\u0002\u0002\u0a29\u0a27\u0003\u0002\u0002\u0002\u0a29\u0a28",
    "\u0003\u0002\u0002\u0002\u0a2a\u0a42\u0003\u0002\u0002\u0002\u0a2b\u0a2c",
    "\u0007m\u0002\u0002\u0a2c\u0a2f\u0007u\u0002\u0002\u0a2d\u0a30\u0005",
    "\u022e\u0118\u0002\u0a2e\u0a30\u0007\b\u0002\u0002\u0a2f\u0a2d\u0003",
    "\u0002\u0002\u0002\u0a2f\u0a2e\u0003\u0002\u0002\u0002\u0a30\u0a42\u0003",
    "\u0002\u0002\u0002\u0a31\u0a32\u0007\u01e6\u0002\u0002\u0a32\u0a35\u0007",
    "u\u0002\u0002\u0a33\u0a36\u0005\u022e\u0118\u0002\u0a34\u0a36\u0007",
    "\b\u0002\u0002\u0a35\u0a33\u0003\u0002\u0002\u0002\u0a35\u0a34\u0003",
    "\u0002\u0002\u0002\u0a36\u0a42\u0003\u0002\u0002\u0002\u0a37\u0a38\u0007",
    "\u01f0\u0002\u0002\u0a38\u0a3b\u0007u\u0002\u0002\u0a39\u0a3c\u0005",
    "\u022e\u0118\u0002\u0a3a\u0a3c\u0007\b\u0002\u0002\u0a3b\u0a39\u0003",
    "\u0002\u0002\u0002\u0a3b\u0a3a\u0003\u0002\u0002\u0002\u0a3c\u0a42\u0003",
    "\u0002\u0002\u0002\u0a3d\u0a3e\u0007\u01ee\u0002\u0002\u0a3e\u0a42\u0007",
    "\u01d4\u0002\u0002\u0a3f\u0a40\u0007\u023d\u0002\u0002\u0a40\u0a42\u0007",
    "\u01d4\u0002\u0002\u0a41\u08d6\u0003\u0002\u0002\u0002\u0a41\u08e0\u0003",
    "\u0002\u0002\u0002\u0a41\u08eb\u0003\u0002\u0002\u0002\u0a41\u08fd\u0003",
    "\u0002\u0002\u0002\u0a41\u090c\u0003\u0002\u0002\u0002\u0a41\u0922\u0003",
    "\u0002\u0002\u0002\u0a41\u093a\u0003\u0002\u0002\u0002\u0a41\u0949\u0003",
    "\u0002\u0002\u0002\u0a41\u0958\u0003\u0002\u0002\u0002\u0a41\u0964\u0003",
    "\u0002\u0002\u0002\u0a41\u0969\u0003\u0002\u0002\u0002\u0a41\u0975\u0003",
    "\u0002\u0002\u0002\u0a41\u0981\u0003\u0002\u0002\u0002\u0a41\u0987\u0003",
    "\u0002\u0002\u0002\u0a41\u098c\u0003\u0002\u0002\u0002\u0a41\u0997\u0003",
    "\u0002\u0002\u0002\u0a41\u099f\u0003\u0002\u0002\u0002\u0a41\u09a2\u0003",
    "\u0002\u0002\u0002\u0a41\u09a8\u0003\u0002\u0002\u0002\u0a41\u09ad\u0003",
    "\u0002\u0002\u0002\u0a41\u09b0\u0003\u0002\u0002\u0002\u0a41\u09b4\u0003",
    "\u0002\u0002\u0002\u0a41\u09b6\u0003\u0002\u0002\u0002\u0a41\u09b8\u0003",
    "\u0002\u0002\u0002\u0a41\u09c0\u0003\u0002\u0002\u0002\u0a41\u09c3\u0003",
    "\u0002\u0002\u0002\u0a41\u09cd\u0003\u0002\u0002\u0002\u0a41\u09d8\u0003",
    "\u0002\u0002\u0002\u0a41\u09da\u0003\u0002\u0002\u0002\u0a41\u09dc\u0003",
    "\u0002\u0002\u0002\u0a41\u09dd\u0003\u0002\u0002\u0002\u0a41\u09df\u0003",
    "\u0002\u0002\u0002\u0a41\u09ec\u0003\u0002\u0002\u0002\u0a41\u09ef\u0003",
    "\u0002\u0002\u0002\u0a41\u09f6\u0003\u0002\u0002\u0002\u0a41\u09fd\u0003",
    "\u0002\u0002\u0002\u0a41\u0a03\u0003\u0002\u0002\u0002\u0a41\u0a06\u0003",
    "\u0002\u0002\u0002\u0a41\u0a15\u0003\u0002\u0002\u0002\u0a41\u0a1f\u0003",
    "\u0002\u0002\u0002\u0a41\u0a25\u0003\u0002\u0002\u0002\u0a41\u0a2b\u0003",
    "\u0002\u0002\u0002\u0a41\u0a31\u0003\u0002\u0002\u0002\u0a41\u0a37\u0003",
    "\u0002\u0002\u0002\u0a41\u0a3d\u0003\u0002\u0002\u0002\u0a41\u0a3f\u0003",
    "\u0002\u0002\u0002\u0a42\u0089\u0003\u0002\u0002\u0002\u0a43\u0a44\u0007",
    "1\u0002\u0002\u0a44\u0a46\t\u0002\u0002\u0002\u0a45\u0a47\u0005\u0244",
    "\u0123\u0002\u0a46\u0a45\u0003\u0002\u0002\u0002\u0a46\u0a47\u0003\u0002",
    "\u0002\u0002\u0a47\u0a48\u0003\u0002\u0002\u0002\u0a48\u0a49\u0005\u020e",
    "\u0108\u0002\u0a49\u008b\u0003\u0002\u0002\u0002\u0a4a\u0a4b\u00071",
    "\u0002\u0002\u0a4b\u0a4d\u0007\u015e\u0002\u0002\u0a4c\u0a4e\u0005\u0244",
    "\u0123\u0002\u0a4d\u0a4c\u0003\u0002\u0002\u0002\u0a4d\u0a4e\u0003\u0002",
    "\u0002\u0002\u0a4e\u0a4f\u0003\u0002\u0002\u0002\u0a4f\u0a50\u0005\u01f4",
    "\u00fb\u0002\u0a50\u008d\u0003\u0002\u0002\u0002\u0a51\u0a52\u00071",
    "\u0002\u0002\u0a52\u0a54\u0007J\u0002\u0002\u0a53\u0a55\t\u0003\u0002",
    "\u0002\u0a54\u0a53\u0003\u0002\u0002\u0002\u0a54\u0a55\u0003\u0002\u0002",
    "\u0002\u0a55\u0a56\u0003\u0002\u0002\u0002\u0a56\u0a57\u0005\u020e\u0108",
    "\u0002\u0a57\u0a58\u0007l\u0002\u0002\u0a58\u0a65\u0005\u01f6\u00fc",
    "\u0002\u0a59\u0a5b\u0007\u0114\u0002\u0002\u0a5a\u0a5c\u0007\u03f5\u0002",
    "\u0002\u0a5b\u0a5a\u0003\u0002\u0002\u0002\u0a5b\u0a5c\u0003\u0002\u0002",
    "\u0002\u0a5c\u0a5d\u0003\u0002\u0002\u0002\u0a5d\u0a64\t\u0005\u0002",
    "\u0002\u0a5e\u0a60\u0007_\u0002\u0002\u0a5f\u0a61\u0007\u03f5\u0002",
    "\u0002\u0a60\u0a5f\u0003\u0002\u0002\u0002\u0a60\u0a61\u0003\u0002\u0002",
    "\u0002\u0a61\u0a62\u0003\u0002\u0002\u0002\u0a62\u0a64\t\u0006\u0002",
    "\u0002\u0a63\u0a59\u0003\u0002\u0002\u0002\u0a63\u0a5e\u0003\u0002\u0002",
    "\u0002\u0a64\u0a67\u0003\u0002\u0002\u0002\u0a65\u0a63\u0003\u0002\u0002",
    "\u0002\u0a65\u0a66\u0003\u0002\u0002\u0002\u0a66\u008f\u0003\u0002\u0002",
    "\u0002\u0a67\u0a65\u0003\u0002\u0002\u0002\u0a68\u0a69\u00071\u0002",
    "\u0002\u0a69\u0a6a\u0007\u0195\u0002\u0002\u0a6a\u0a6b\u0007D\u0002",
    "\u0002\u0a6b\u0a6c\u0005\u020e\u0108\u0002\u0a6c\u0a6d\u0007\u0158\u0002",
    "\u0002\u0a6d\u0a6e\u0007\u03f5\u0002\u0002\u0a6e\u0a6f\u0005\u0204\u0103",
    "\u0002\u0a6f\u0091\u0003\u0002\u0002\u0002\u0a70\u0a71\u00071\u0002",
    "\u0002\u0a71\u0a73\u0007w\u0002\u0002\u0a72\u0a74\u0005\u0244\u0123",
    "\u0002\u0a73\u0a72\u0003\u0002\u0002\u0002\u0a73\u0a74\u0003\u0002\u0002",
    "\u0002\u0a74\u0a75\u0003\u0002\u0002\u0002\u0a75\u0a76\u0005\u01f4\u00fb",
    "\u0002\u0a76\u0093\u0003\u0002\u0002\u0002\u0a77\u0a78\u00071\u0002",
    "\u0002\u0a78\u0a7a\u0007\u0172\u0002\u0002\u0a79\u0a7b\u0005\u0244\u0123",
    "\u0002\u0a7a\u0a79\u0003\u0002\u0002\u0002\u0a7a\u0a7b\u0003\u0002\u0002",
    "\u0002\u0a7b\u0a7c\u0003\u0002\u0002\u0002\u0a7c\u0a7d\u0005\u01f4\u00fb",
    "\u0002\u0a7d\u0095\u0003\u0002\u0002\u0002\u0a7e\u0a7f\u00071\u0002",
    "\u0002\u0a7f\u0a81\u0007\u0207\u0002\u0002\u0a80\u0a82\u0005\u0244\u0123",
    "\u0002\u0a81\u0a80\u0003\u0002\u0002\u0002\u0a81\u0a82\u0003\u0002\u0002",
    "\u0002\u0a82\u0a83\u0003\u0002\u0002\u0002\u0a83\u0a84\u0005\u020e\u0108",
    "\u0002\u0a84\u0097\u0003\u0002\u0002\u0002\u0a85\u0a87\u00071\u0002",
    "\u0002\u0a86\u0a88\u0007\u022f\u0002\u0002\u0a87\u0a86\u0003\u0002\u0002",
    "\u0002\u0a87\u0a88\u0003\u0002\u0002\u0002\u0a88\u0a89\u0003\u0002\u0002",
    "\u0002\u0a89\u0a8b\u0007\u009c\u0002\u0002\u0a8a\u0a8c\u0005\u0244\u0123",
    "\u0002\u0a8b\u0a8a\u0003\u0002\u0002\u0002\u0a8b\u0a8c\u0003\u0002\u0002",
    "\u0002\u0a8c\u0a8d\u0003\u0002\u0002\u0002\u0a8d\u0a8f\u0005\u0230\u0119",
    "\u0002\u0a8e\u0a90\t\"\u0002\u0002\u0a8f\u0a8e\u0003\u0002\u0002\u0002",
    "\u0a8f\u0a90\u0003\u0002\u0002\u0002\u0a90\u0099\u0003\u0002\u0002\u0002",
    "\u0a91\u0a92\u00071\u0002\u0002\u0a92\u0a93\u0007\u022e\u0002\u0002",
    "\u0a93\u0a99\u0005\u020e\u0108\u0002\u0a94\u0a96\u0007\u0158\u0002\u0002",
    "\u0a95\u0a97\u0007\u03f5\u0002\u0002\u0a96\u0a95\u0003\u0002\u0002\u0002",
    "\u0a96\u0a97\u0003\u0002\u0002\u0002\u0a97\u0a98\u0003\u0002\u0002\u0002",
    "\u0a98\u0a9a\u0005\u0204\u0103\u0002\u0a99\u0a94\u0003\u0002\u0002\u0002",
    "\u0a99\u0a9a\u0003\u0002\u0002\u0002\u0a9a\u009b\u0003\u0002\u0002\u0002",
    "\u0a9b\u0a9c\u00071\u0002\u0002\u0a9c\u0a9e\u0007\u00a1\u0002\u0002",
    "\u0a9d\u0a9f\u0005\u0244\u0123\u0002\u0a9e\u0a9d\u0003\u0002\u0002\u0002",
    "\u0a9e\u0a9f\u0003\u0002\u0002\u0002\u0a9f\u0aa0\u0003\u0002\u0002\u0002",
    "\u0aa0\u0aa1\u0005\u01f4\u00fb\u0002\u0aa1\u009d\u0003\u0002\u0002\u0002",
    "\u0aa2\u0aa3\u00071\u0002\u0002\u0aa3\u0aa5\u0007\u0244\u0002\u0002",
    "\u0aa4\u0aa6\u0005\u0244\u0123\u0002\u0aa5\u0aa4\u0003\u0002\u0002\u0002",
    "\u0aa5\u0aa6\u0003\u0002\u0002\u0002\u0aa6\u0aa7\u0003\u0002\u0002\u0002",
    "\u0aa7\u0aac\u0005\u01f4\u00fb\u0002\u0aa8\u0aa9\u0007\u0400\u0002\u0002",
    "\u0aa9\u0aab\u0005\u01f4\u00fb\u0002\u0aaa\u0aa8\u0003\u0002\u0002\u0002",
    "\u0aab\u0aae\u0003\u0002\u0002\u0002\u0aac\u0aaa\u0003\u0002\u0002\u0002",
    "\u0aac\u0aad\u0003\u0002\u0002\u0002\u0aad\u0ab0\u0003\u0002\u0002\u0002",
    "\u0aae\u0aac\u0003\u0002\u0002\u0002\u0aaf\u0ab1\t\"\u0002\u0002\u0ab0",
    "\u0aaf\u0003\u0002\u0002\u0002\u0ab0\u0ab1\u0003\u0002\u0002\u0002\u0ab1",
    "\u009f\u0003\u0002\u0002\u0002\u0ab2\u0ab3\u0007\u007f\u0002\u0002\u0ab3",
    "\u0ab4\u0007\u009c\u0002\u0002\u0ab4\u0ab9\u0005\u00a2R\u0002\u0ab5",
    "\u0ab6\u0007\u0400\u0002\u0002\u0ab6\u0ab8\u0005\u00a2R\u0002\u0ab7",
    "\u0ab5\u0003\u0002\u0002\u0002\u0ab8\u0abb\u0003\u0002\u0002\u0002\u0ab9",
    "\u0ab7\u0003\u0002\u0002\u0002\u0ab9\u0aba\u0003\u0002\u0002\u0002\u0aba",
    "\u00a1\u0003\u0002\u0002\u0002\u0abb\u0ab9\u0003\u0002\u0002\u0002\u0abc",
    "\u0abd\u0005\u01f6\u00fc\u0002\u0abd\u0abe\u0007\u009f\u0002\u0002\u0abe",
    "\u0abf\u0005\u01f6\u00fc\u0002\u0abf\u00a3\u0003\u0002\u0002\u0002\u0ac0",
    "\u0ac2\u0007\u0236\u0002\u0002\u0ac1\u0ac3\u0007\u009c\u0002\u0002\u0ac2",
    "\u0ac1\u0003\u0002\u0002\u0002\u0ac2\u0ac3\u0003\u0002\u0002\u0002\u0ac3",
    "\u0ac4\u0003\u0002\u0002\u0002\u0ac4\u0ac5\u0005\u01f6\u00fc\u0002\u0ac5",
    "\u00a5\u0003\u0002\u0002\u0002\u0ac6\u0ac7\u0007\u0013\u0002\u0002\u0ac7",
    "\u0ace\u0005\u01f4\u00fb\u0002\u0ac8\u0acb\u0007\u03fe\u0002\u0002\u0ac9",
    "\u0acc\u0005\u0238\u011d\u0002\u0aca\u0acc\u0005\u0234\u011b\u0002\u0acb",
    "\u0ac9\u0003\u0002\u0002\u0002\u0acb\u0aca\u0003\u0002\u0002\u0002\u0acb",
    "\u0acc\u0003\u0002\u0002\u0002\u0acc\u0acd\u0003\u0002\u0002\u0002\u0acd",
    "\u0acf\u0007\u03ff\u0002\u0002\u0ace\u0ac8\u0003\u0002\u0002\u0002\u0ace",
    "\u0acf\u0003\u0002\u0002\u0002\u0acf\u00a7\u0003\u0002\u0002\u0002\u0ad0",
    "\u0ad3\u0005\u00c2b\u0002\u0ad1\u0ad3\u0005\u00c4c\u0002\u0ad2\u0ad0",
    "\u0003\u0002\u0002\u0002\u0ad2\u0ad1\u0003\u0002\u0002\u0002\u0ad3\u00a9",
    "\u0003\u0002\u0002\u0002\u0ad4\u0ad5\u0007\u0150\u0002\u0002\u0ad5\u0ad6",
    "\u0005\u0234\u011b\u0002\u0ad6\u00ab\u0003\u0002\u0002\u0002\u0ad7\u0adc",
    "\u0005\u00c6d\u0002\u0ad8\u0adc\u0005\u00c8e\u0002\u0ad9\u0adc\u0005",
    "\u00caf\u0002\u0ada\u0adc\u0005\u00ccg\u0002\u0adb\u0ad7\u0003\u0002",
    "\u0002\u0002\u0adb\u0ad8\u0003\u0002\u0002\u0002\u0adb\u0ad9\u0003\u0002",
    "\u0002\u0002\u0adb\u0ada\u0003\u0002\u0002\u0002\u0adc\u00ad\u0003\u0002",
    "\u0002\u0002\u0add\u0adf\u0007N\u0002\u0002\u0ade\u0ae0\t#\u0002\u0002",
    "\u0adf\u0ade\u0003\u0002\u0002\u0002\u0adf\u0ae0\u0003\u0002\u0002\u0002",
    "\u0ae0\u0ae2\u0003\u0002\u0002\u0002\u0ae1\u0ae3\u0007H\u0002\u0002",
    "\u0ae2\u0ae1\u0003\u0002\u0002\u0002\u0ae2\u0ae3\u0003\u0002\u0002\u0002",
    "\u0ae3\u0ae5\u0003\u0002\u0002\u0002\u0ae4\u0ae6\u0007P\u0002\u0002",
    "\u0ae5\u0ae4\u0003\u0002\u0002\u0002\u0ae5\u0ae6\u0003\u0002\u0002\u0002",
    "\u0ae6\u0ae7\u0003\u0002\u0002\u0002\u0ae7\u0aee\u0005\u01f6\u00fc\u0002",
    "\u0ae8\u0ae9\u0007u\u0002\u0002\u0ae9\u0aeb\u0007\u03fe\u0002\u0002",
    "\u0aea\u0aec\u0005\u022e\u0118\u0002\u0aeb\u0aea\u0003\u0002\u0002\u0002",
    "\u0aeb\u0aec\u0003\u0002\u0002\u0002\u0aec\u0aed\u0003\u0002\u0002\u0002",
    "\u0aed\u0aef\u0007\u03ff\u0002\u0002\u0aee\u0ae8\u0003\u0002\u0002\u0002",
    "\u0aee\u0aef\u0003\u0002\u0002\u0002\u0aef\u0b00\u0003\u0002\u0002\u0002",
    "\u0af0\u0af1\u0007\u03fe\u0002\u0002\u0af1\u0af2\u0005\u022e\u0118\u0002",
    "\u0af2\u0af3\u0007\u03ff\u0002\u0002\u0af3\u0af5\u0003\u0002\u0002\u0002",
    "\u0af4\u0af0\u0003\u0002\u0002\u0002\u0af4\u0af5\u0003\u0002\u0002\u0002",
    "\u0af5\u0af6\u0003\u0002\u0002\u0002\u0af6\u0b01\u0005\u00ba^\u0002",
    "\u0af7\u0af8\u0007\u008c\u0002\u0002\u0af8\u0afd\u0005\u00bc_\u0002",
    "\u0af9\u0afa\u0007\u0400\u0002\u0002\u0afa\u0afc\u0005\u00bc_\u0002",
    "\u0afb\u0af9\u0003\u0002\u0002\u0002\u0afc\u0aff\u0003\u0002\u0002\u0002",
    "\u0afd\u0afb\u0003\u0002\u0002\u0002\u0afd\u0afe\u0003\u0002\u0002\u0002",
    "\u0afe\u0b01\u0003\u0002\u0002\u0002\u0aff\u0afd\u0003\u0002\u0002\u0002",
    "\u0b00\u0af4\u0003\u0002\u0002\u0002\u0b00\u0af7\u0003\u0002\u0002\u0002",
    "\u0b01\u0b0e\u0003\u0002\u0002\u0002\u0b02\u0b03\u0007l\u0002\u0002",
    "\u0b03\u0b04\u0007\u0152\u0002\u0002\u0b04\u0b05\u0007T\u0002\u0002",
    "\u0b05\u0b06\u0007\u00a8\u0002\u0002\u0b06\u0b0b\u0005\u00bc_\u0002",
    "\u0b07\u0b08\u0007\u0400\u0002\u0002\u0b08\u0b0a\u0005\u00bc_\u0002",
    "\u0b09\u0b07\u0003\u0002\u0002\u0002\u0b0a\u0b0d\u0003\u0002\u0002\u0002",
    "\u0b0b\u0b09\u0003\u0002\u0002\u0002\u0b0b\u0b0c\u0003\u0002\u0002\u0002",
    "\u0b0c\u0b0f\u0003\u0002\u0002\u0002\u0b0d\u0b0b\u0003\u0002\u0002\u0002",
    "\u0b0e\u0b02\u0003\u0002\u0002\u0002\u0b0e\u0b0f\u0003\u0002\u0002\u0002",
    "\u0b0f\u00af\u0003\u0002\u0002\u0002\u0b10\u0b11\u0007^\u0002\u0002",
    "\u0b11\u0b13\u0007\u0145\u0002\u0002\u0b12\u0b14\t$\u0002\u0002\u0b13",
    "\u0b12\u0003\u0002\u0002\u0002\u0b13\u0b14\u0003\u0002\u0002\u0002\u0b14",
    "\u0b16\u0003\u0002\u0002\u0002\u0b15\u0b17\u0007\u0194\u0002\u0002\u0b16",
    "\u0b15\u0003\u0002\u0002\u0002\u0b16\u0b17\u0003\u0002\u0002\u0002\u0b17",
    "\u0b18\u0003\u0002\u0002\u0002\u0b18\u0b19\u0007K\u0002\u0002\u0b19",
    "\u0b1b\u0007\u040d\u0002\u0002\u0b1a\u0b1c\t\b\u0002\u0002\u0b1b\u0b1a",
    "\u0003\u0002\u0002\u0002\u0b1b\u0b1c\u0003\u0002\u0002\u0002\u0b1c\u0b1d",
    "\u0003\u0002\u0002\u0002\u0b1d\u0b1e\u0007P\u0002\u0002\u0b1e\u0b1f",
    "\u0007\u009c\u0002\u0002\u0b1f\u0b25\u0005\u01f6\u00fc\u0002\u0b20\u0b21",
    "\u0007u\u0002\u0002\u0b21\u0b22\u0007\u03fe\u0002\u0002\u0b22\u0b23",
    "\u0005\u022e\u0118\u0002\u0b23\u0b24\u0007\u03ff\u0002\u0002\u0b24\u0b26",
    "\u0003\u0002\u0002\u0002\u0b25\u0b20\u0003\u0002\u0002\u0002\u0b25\u0b26",
    "\u0003\u0002\u0002\u0002\u0b26\u0b2a\u0003\u0002\u0002\u0002\u0b27\u0b28",
    "\u0007\u0018\u0002\u0002\u0b28\u0b29\u0007\u008c\u0002\u0002\u0b29\u0b2b",
    "\u0005\u0200\u0101\u0002\u0b2a\u0b27\u0003\u0002\u0002\u0002\u0b2a\u0b2b",
    "\u0003\u0002\u0002\u0002\u0b2b\u0b32\u0003\u0002\u0002\u0002\u0b2c\u0b2e",
    "\t%\u0002\u0002\u0b2d\u0b2f\u0005\u00f6|\u0002\u0b2e\u0b2d\u0003\u0002",
    "\u0002\u0002\u0b2f\u0b30\u0003\u0002\u0002\u0002\u0b30\u0b2e\u0003\u0002",
    "\u0002\u0002\u0b30\u0b31\u0003\u0002\u0002\u0002\u0b31\u0b33\u0003\u0002",
    "\u0002\u0002\u0b32\u0b2c\u0003\u0002\u0002\u0002\u0b32\u0b33\u0003\u0002",
    "\u0002\u0002\u0b33\u0b3a\u0003\u0002\u0002\u0002\u0b34\u0b36\u0007]",
    "\u0002\u0002\u0b35\u0b37\u0005\u00f8}\u0002\u0b36\u0b35\u0003\u0002",
    "\u0002\u0002\u0b37\u0b38\u0003\u0002\u0002\u0002\u0b38\u0b36\u0003\u0002",
    "\u0002\u0002\u0b38\u0b39\u0003\u0002\u0002\u0002\u0b39\u0b3b\u0003\u0002",
    "\u0002\u0002\u0b3a\u0b34\u0003\u0002\u0002\u0002\u0b3a\u0b3b\u0003\u0002",
    "\u0002\u0002\u0b3b\u0b40\u0003\u0002\u0002\u0002\u0b3c\u0b3d\u0007H",
    "\u0002\u0002\u0b3d\u0b3e\u0005\u0214\u010b\u0002\u0b3e\u0b3f\t&\u0002",
    "\u0002\u0b3f\u0b41\u0003\u0002\u0002\u0002\u0b40\u0b3c\u0003\u0002\u0002",
    "\u0002\u0b40\u0b41\u0003\u0002\u0002\u0002\u0b41\u0b4d\u0003\u0002\u0002",
    "\u0002\u0b42\u0b43\u0007\u03fe\u0002\u0002\u0b43\u0b48\u0005\u00be`",
    "\u0002\u0b44\u0b45\u0007\u0400\u0002\u0002\u0b45\u0b47\u0005\u00be`",
    "\u0002\u0b46\u0b44\u0003\u0002\u0002\u0002\u0b47\u0b4a\u0003\u0002\u0002",
    "\u0002\u0b48\u0b46\u0003\u0002\u0002\u0002\u0b48\u0b49\u0003\u0002\u0002",
    "\u0002\u0b49\u0b4b\u0003\u0002\u0002\u0002\u0b4a\u0b48\u0003\u0002\u0002",
    "\u0002\u0b4b\u0b4c\u0007\u03ff\u0002\u0002\u0b4c\u0b4e\u0003\u0002\u0002",
    "\u0002\u0b4d\u0b42\u0003\u0002\u0002\u0002\u0b4d\u0b4e\u0003\u0002\u0002",
    "\u0002\u0b4e\u0b58\u0003\u0002\u0002\u0002\u0b4f\u0b50\u0007\u008c\u0002",
    "\u0002\u0b50\u0b55\u0005\u00bc_\u0002\u0b51\u0b52\u0007\u0400\u0002",
    "\u0002\u0b52\u0b54\u0005\u00bc_\u0002\u0b53\u0b51\u0003\u0002\u0002",
    "\u0002\u0b54\u0b57\u0003\u0002\u0002\u0002\u0b55\u0b53\u0003\u0002\u0002",
    "\u0002\u0b55\u0b56\u0003\u0002\u0002\u0002\u0b56\u0b59\u0003\u0002\u0002",
    "\u0002\u0b57\u0b55\u0003\u0002\u0002\u0002\u0b58\u0b4f\u0003\u0002\u0002",
    "\u0002\u0b58\u0b59\u0003\u0002\u0002\u0002\u0b59\u00b1\u0003\u0002\u0002",
    "\u0002\u0b5a\u0b5b\u0007^\u0002\u0002\u0b5b\u0b5d\u0007\u024e\u0002",
    "\u0002\u0b5c\u0b5e\t$\u0002\u0002\u0b5d\u0b5c\u0003\u0002\u0002\u0002",
    "\u0b5d\u0b5e\u0003\u0002\u0002\u0002\u0b5e\u0b60\u0003\u0002\u0002\u0002",
    "\u0b5f\u0b61\u0007\u0194\u0002\u0002\u0b60\u0b5f\u0003\u0002\u0002\u0002",
    "\u0b60\u0b61\u0003\u0002\u0002\u0002\u0b61\u0b62\u0003\u0002\u0002\u0002",
    "\u0b62\u0b63\u0007K\u0002\u0002\u0b63\u0b65\u0007\u040d\u0002\u0002",
    "\u0b64\u0b66\t\b\u0002\u0002\u0b65\u0b64\u0003\u0002\u0002\u0002\u0b65",
    "\u0b66\u0003\u0002\u0002\u0002\u0b66\u0b67\u0003\u0002\u0002\u0002\u0b67",
    "\u0b68\u0007P\u0002\u0002\u0b68\u0b69\u0007\u009c\u0002\u0002\u0b69",
    "\u0b6d\u0005\u01f6\u00fc\u0002\u0b6a\u0b6b\u0007\u0018\u0002\u0002\u0b6b",
    "\u0b6c\u0007\u008c\u0002\u0002\u0b6c\u0b6e\u0005\u0200\u0101\u0002\u0b6d",
    "\u0b6a\u0003\u0002\u0002\u0002\u0b6d\u0b6e\u0003\u0002\u0002\u0002\u0b6e",
    "\u0b75\u0003\u0002\u0002\u0002\u0b6f\u0b70\u0007\u0202\u0002\u0002\u0b70",
    "\u0b71\u0007\u017c\u0002\u0002\u0b71\u0b72\u0007\u0012\u0002\u0002\u0b72",
    "\u0b73\u0007\u03f7\u0002\u0002\u0b73\u0b74\u0007\u040d\u0002\u0002\u0b74",
    "\u0b76\u0007\u03f6\u0002\u0002\u0b75\u0b6f\u0003\u0002\u0002\u0002\u0b75",
    "\u0b76\u0003\u0002\u0002\u0002\u0b76\u0b7b\u0003\u0002\u0002\u0002\u0b77",
    "\u0b78\u0007H\u0002\u0002\u0b78\u0b79\u0005\u0214\u010b\u0002\u0b79",
    "\u0b7a\t&\u0002\u0002\u0b7a\u0b7c\u0003\u0002\u0002\u0002\u0b7b\u0b77",
    "\u0003\u0002\u0002\u0002\u0b7b\u0b7c\u0003\u0002\u0002\u0002\u0b7c\u0b88",
    "\u0003\u0002\u0002\u0002\u0b7d\u0b7e\u0007\u03fe\u0002\u0002\u0b7e\u0b83",
    "\u0005\u00be`\u0002\u0b7f\u0b80\u0007\u0400\u0002\u0002\u0b80\u0b82",
    "\u0005\u00be`\u0002\u0b81\u0b7f\u0003\u0002\u0002\u0002\u0b82\u0b85",
    "\u0003\u0002\u0002\u0002\u0b83\u0b81\u0003\u0002\u0002\u0002\u0b83\u0b84",
    "\u0003\u0002\u0002\u0002\u0b84\u0b86\u0003\u0002\u0002\u0002\u0b85\u0b83",
    "\u0003\u0002\u0002\u0002\u0b86\u0b87\u0007\u03ff\u0002\u0002\u0b87\u0b89",
    "\u0003\u0002\u0002\u0002\u0b88\u0b7d\u0003\u0002\u0002\u0002\u0b88\u0b89",
    "\u0003\u0002\u0002\u0002\u0b89\u0b93\u0003\u0002\u0002\u0002\u0b8a\u0b8b",
    "\u0007\u008c\u0002\u0002\u0b8b\u0b90\u0005\u00bc_\u0002\u0b8c\u0b8d",
    "\u0007\u0400\u0002\u0002\u0b8d\u0b8f\u0005\u00bc_\u0002\u0b8e\u0b8c",
    "\u0003\u0002\u0002\u0002\u0b8f\u0b92\u0003\u0002\u0002\u0002\u0b90\u0b8e",
    "\u0003\u0002\u0002\u0002\u0b90\u0b91\u0003\u0002\u0002\u0002\u0b91\u0b94",
    "\u0003\u0002\u0002\u0002\u0b92\u0b90\u0003\u0002\u0002\u0002\u0b93\u0b8a",
    "\u0003\u0002\u0002\u0002\u0b93\u0b94\u0003\u0002\u0002\u0002\u0b94\u00b3",
    "\u0003\u0002\u0002\u0002\u0b95\u0b97\u0007\u0081\u0002\u0002\u0b96\u0b98",
    "\t\'\u0002\u0002\u0b97\u0b96\u0003\u0002\u0002\u0002\u0b97\u0b98\u0003",
    "\u0002\u0002\u0002\u0b98\u0b9a\u0003\u0002\u0002\u0002\u0b99\u0b9b\u0007",
    "P\u0002\u0002\u0b9a\u0b99\u0003\u0002\u0002\u0002\u0b9a\u0b9b\u0003",
    "\u0002\u0002\u0002\u0b9b\u0b9c\u0003\u0002\u0002\u0002\u0b9c\u0ba2\u0005",
    "\u01f6\u00fc\u0002\u0b9d\u0b9e\u0007u\u0002\u0002\u0b9e\u0b9f\u0007",
    "\u03fe\u0002\u0002\u0b9f\u0ba0\u0005\u022e\u0118\u0002\u0ba0\u0ba1\u0007",
    "\u03ff\u0002\u0002\u0ba1\u0ba3\u0003\u0002\u0002\u0002\u0ba2\u0b9d\u0003",
    "\u0002\u0002\u0002\u0ba2\u0ba3\u0003\u0002\u0002\u0002\u0ba3\u0bb4\u0003",
    "\u0002\u0002\u0002\u0ba4\u0ba5\u0007\u03fe\u0002\u0002\u0ba5\u0ba6\u0005",
    "\u022e\u0118\u0002\u0ba6\u0ba7\u0007\u03ff\u0002\u0002\u0ba7\u0ba9\u0003",
    "\u0002\u0002\u0002\u0ba8\u0ba4\u0003\u0002\u0002\u0002\u0ba8\u0ba9\u0003",
    "\u0002\u0002\u0002\u0ba9\u0baa\u0003\u0002\u0002\u0002\u0baa\u0bb5\u0005",
    "\u00ba^\u0002\u0bab\u0bac\u0007\u008c\u0002\u0002\u0bac\u0bb1\u0005",
    "\u00bc_\u0002\u0bad\u0bae\u0007\u0400\u0002\u0002\u0bae\u0bb0\u0005",
    "\u00bc_\u0002\u0baf\u0bad\u0003\u0002\u0002\u0002\u0bb0\u0bb3\u0003",
    "\u0002\u0002\u0002\u0bb1\u0baf\u0003\u0002\u0002\u0002\u0bb1\u0bb2\u0003",
    "\u0002\u0002\u0002\u0bb2\u0bb5\u0003\u0002\u0002\u0002\u0bb3\u0bb1\u0003",
    "\u0002\u0002\u0002\u0bb4\u0ba8\u0003\u0002\u0002\u0002\u0bb4\u0bab\u0003",
    "\u0002\u0002\u0002\u0bb5\u00b5\u0003\u0002\u0002\u0002\u0bb6\u0bb8\u0005",
    "\u00e6t\u0002\u0bb7\u0bb9\u0005\u00c0a\u0002\u0bb8\u0bb7\u0003\u0002",
    "\u0002\u0002\u0bb8\u0bb9\u0003\u0002\u0002\u0002\u0bb9\u0bee\u0003\u0002",
    "\u0002\u0002\u0bba\u0bbc\u0005\u00e2r\u0002\u0bbb\u0bbd\u0005\u00c0",
    "a\u0002\u0bbc\u0bbb\u0003\u0002\u0002\u0002\u0bbc\u0bbd\u0003\u0002",
    "\u0002\u0002\u0bbd\u0bee\u0003\u0002\u0002\u0002\u0bbe\u0bc0\u0005\u00e8",
    "u\u0002\u0bbf\u0bc1\u0005\u00ecw\u0002\u0bc0\u0bbf\u0003\u0002\u0002",
    "\u0002\u0bc1\u0bc2\u0003\u0002\u0002\u0002\u0bc2\u0bc0\u0003\u0002\u0002",
    "\u0002\u0bc2\u0bc3\u0003\u0002\u0002\u0002\u0bc3\u0bcc\u0003\u0002\u0002",
    "\u0002\u0bc4\u0bc6\u0007\u00a4\u0002\u0002\u0bc5\u0bc7\t(\u0002\u0002",
    "\u0bc6\u0bc5\u0003\u0002\u0002\u0002\u0bc6\u0bc7\u0003\u0002\u0002\u0002",
    "\u0bc7\u0bca\u0003\u0002\u0002\u0002\u0bc8\u0bcb\u0005\u00e6t\u0002",
    "\u0bc9\u0bcb\u0005\u00e2r\u0002\u0bca\u0bc8\u0003\u0002\u0002\u0002",
    "\u0bca\u0bc9\u0003\u0002\u0002\u0002\u0bcb\u0bcd\u0003\u0002\u0002\u0002",
    "\u0bcc\u0bc4\u0003\u0002\u0002\u0002\u0bcc\u0bcd\u0003\u0002\u0002\u0002",
    "\u0bcd\u0bcf\u0003\u0002\u0002\u0002\u0bce\u0bd0\u0005\u00d2j\u0002",
    "\u0bcf\u0bce\u0003\u0002\u0002\u0002\u0bcf\u0bd0\u0003\u0002\u0002\u0002",
    "\u0bd0\u0bd2\u0003\u0002\u0002\u0002\u0bd1\u0bd3\u0005\u00fe\u0080\u0002",
    "\u0bd2\u0bd1\u0003\u0002\u0002\u0002\u0bd2\u0bd3\u0003\u0002\u0002\u0002",
    "\u0bd3\u0bd5\u0003\u0002\u0002\u0002\u0bd4\u0bd6\u0005\u00c0a\u0002",
    "\u0bd5\u0bd4\u0003\u0002\u0002\u0002\u0bd5\u0bd6\u0003\u0002\u0002\u0002",
    "\u0bd6\u0bee\u0003\u0002\u0002\u0002\u0bd7\u0bd9\u0005\u00e4s\u0002",
    "\u0bd8\u0bda\u0005\u00eav\u0002\u0bd9\u0bd8\u0003\u0002\u0002\u0002",
    "\u0bda\u0bdb\u0003\u0002\u0002\u0002\u0bdb\u0bd9\u0003\u0002\u0002\u0002",
    "\u0bdb\u0bdc\u0003\u0002\u0002\u0002\u0bdc\u0be2\u0003\u0002\u0002\u0002",
    "\u0bdd\u0bdf\u0007\u00a4\u0002\u0002\u0bde\u0be0\t(\u0002\u0002\u0bdf",
    "\u0bde\u0003\u0002\u0002\u0002\u0bdf\u0be0\u0003\u0002\u0002\u0002\u0be0",
    "\u0be1\u0003\u0002\u0002\u0002\u0be1\u0be3\u0005\u00e2r\u0002\u0be2",
    "\u0bdd\u0003\u0002\u0002\u0002\u0be2\u0be3\u0003\u0002\u0002\u0002\u0be3",
    "\u0be5\u0003\u0002\u0002\u0002\u0be4\u0be6\u0005\u00d2j\u0002\u0be5",
    "\u0be4\u0003\u0002\u0002\u0002\u0be5\u0be6\u0003\u0002\u0002\u0002\u0be6",
    "\u0be8\u0003\u0002\u0002\u0002\u0be7\u0be9\u0005\u00fe\u0080\u0002\u0be8",
    "\u0be7\u0003\u0002\u0002\u0002\u0be8\u0be9\u0003\u0002\u0002\u0002\u0be9",
    "\u0beb\u0003\u0002\u0002\u0002\u0bea\u0bec\u0005\u00c0a\u0002\u0beb",
    "\u0bea\u0003\u0002\u0002\u0002\u0beb\u0bec\u0003\u0002\u0002\u0002\u0bec",
    "\u0bee\u0003\u0002\u0002\u0002\u0bed\u0bb6\u0003\u0002\u0002\u0002\u0bed",
    "\u0bba\u0003\u0002\u0002\u0002\u0bed\u0bbe\u0003\u0002\u0002\u0002\u0bed",
    "\u0bd7\u0003\u0002\u0002\u0002\u0bee\u00b7\u0003\u0002\u0002\u0002\u0bef",
    "\u0bf2\u0005\u00ceh\u0002\u0bf0\u0bf2\u0005\u00d0i\u0002\u0bf1\u0bef",
    "\u0003\u0002\u0002\u0002\u0bf1\u0bf0\u0003\u0002\u0002\u0002\u0bf2\u00b9",
    "\u0003\u0002\u0002\u0002\u0bf3\u0c06\u0005\u00b6\\\u0002\u0bf4\u0bf5",
    "\t)\u0002\u0002\u0bf5\u0bf7\u0007\u03fe\u0002\u0002\u0bf6\u0bf8\u0005",
    "\u0236\u011c\u0002\u0bf7\u0bf6\u0003\u0002\u0002\u0002\u0bf7\u0bf8\u0003",
    "\u0002\u0002\u0002\u0bf8\u0bf9\u0003\u0002\u0002\u0002\u0bf9\u0c02\u0007",
    "\u03ff\u0002\u0002\u0bfa\u0bfb\u0007\u0400\u0002\u0002\u0bfb\u0bfd\u0007",
    "\u03fe\u0002\u0002\u0bfc\u0bfe\u0005\u0236\u011c\u0002\u0bfd\u0bfc\u0003",
    "\u0002\u0002\u0002\u0bfd\u0bfe\u0003\u0002\u0002\u0002\u0bfe\u0bff\u0003",
    "\u0002\u0002\u0002\u0bff\u0c01\u0007\u03ff\u0002\u0002\u0c00\u0bfa\u0003",
    "\u0002\u0002\u0002\u0c01\u0c04\u0003\u0002\u0002\u0002\u0c02\u0c00\u0003",
    "\u0002\u0002\u0002\u0c02\u0c03\u0003\u0002\u0002\u0002\u0c03\u0c06\u0003",
    "\u0002\u0002\u0002\u0c04\u0c02\u0003\u0002\u0002\u0002\u0c05\u0bf3\u0003",
    "\u0002\u0002\u0002\u0c05\u0bf4\u0003\u0002\u0002\u0002\u0c06\u00bb\u0003",
    "\u0002\u0002\u0002\u0c07\u0c08\u0005\u01f8\u00fd\u0002\u0c08\u0c0b\u0007",
    "\u03f5\u0002\u0002\u0c09\u0c0c\u0005\u025c\u012f\u0002\u0c0a\u0c0c\u0007",
    "(\u0002\u0002\u0c0b\u0c09\u0003\u0002\u0002\u0002\u0c0b\u0c0a\u0003",
    "\u0002\u0002\u0002\u0c0c\u00bd\u0003\u0002\u0002\u0002\u0c0d\u0c10\u0005",
    "\u020e\u0108\u0002\u0c0e\u0c10\u0007\u0418\u0002\u0002\u0c0f\u0c0d\u0003",
    "\u0002\u0002\u0002\u0c0f\u0c0e\u0003\u0002\u0002\u0002\u0c10\u00bf\u0003",
    "\u0002\u0002\u0002\u0c11\u0c12\u0007<\u0002\u0002\u0c12\u0c18\u0007",
    "\u00a8\u0002\u0002\u0c13\u0c14\u0007_\u0002\u0002\u0c14\u0c15\u0007",
    "I\u0002\u0002\u0c15\u0c16\u0007\u0209\u0002\u0002\u0c16\u0c18\u0007",
    "\u01b8\u0002\u0002\u0c17\u0c11\u0003\u0002\u0002\u0002\u0c17\u0c13\u0003",
    "\u0002\u0002\u0002\u0c18\u00c1\u0003\u0002\u0002\u0002\u0c19\u0c1b\u0007",
    "*\u0002\u0002\u0c1a\u0c1c\u0007a\u0002\u0002\u0c1b\u0c1a\u0003\u0002",
    "\u0002\u0002\u0c1b\u0c1c\u0003\u0002\u0002\u0002\u0c1c\u0c1e\u0003\u0002",
    "\u0002\u0002\u0c1d\u0c1f\u0007\u01e5\u0002\u0002\u0c1e\u0c1d\u0003\u0002",
    "\u0002\u0002\u0c1e\u0c1f\u0003\u0002\u0002\u0002\u0c1f\u0c21\u0003\u0002",
    "\u0002\u0002\u0c20\u0c22\u0007H\u0002\u0002\u0c21\u0c20\u0003\u0002",
    "\u0002\u0002\u0c21\u0c22\u0003\u0002\u0002\u0002\u0c22\u0c23\u0003\u0002",
    "\u0002\u0002\u0c23\u0c24\u0007?\u0002\u0002\u0c24\u0c2a\u0005\u01f6",
    "\u00fc\u0002\u0c25\u0c26\u0007u\u0002\u0002\u0c26\u0c27\u0007\u03fe",
    "\u0002\u0002\u0c27\u0c28\u0005\u022e\u0118\u0002\u0c28\u0c29\u0007\u03ff",
    "\u0002\u0002\u0c29\u0c2b\u0003\u0002\u0002\u0002\u0c2a\u0c25\u0003\u0002",
    "\u0002\u0002\u0c2a\u0c2b\u0003\u0002\u0002\u0002\u0c2b\u0c2e\u0003\u0002",
    "\u0002\u0002\u0c2c\u0c2d\u0007\u00ae\u0002\u0002\u0c2d\u0c2f\u0005\u025c",
    "\u012f\u0002\u0c2e\u0c2c\u0003\u0002\u0002\u0002\u0c2e\u0c2f\u0003\u0002",
    "\u0002\u0002\u0c2f\u0c31\u0003\u0002\u0002\u0002\u0c30\u0c32\u0005\u00d2",
    "j\u0002\u0c31\u0c30\u0003\u0002\u0002\u0002\u0c31\u0c32\u0003\u0002",
    "\u0002\u0002\u0c32\u0c35\u0003\u0002\u0002\u0002\u0c33\u0c34\u0007[",
    "\u0002\u0002\u0c34\u0c36\u0005\u0100\u0081\u0002\u0c35\u0c33\u0003\u0002",
    "\u0002\u0002\u0c35\u0c36\u0003\u0002\u0002\u0002\u0c36\u00c3\u0003\u0002",
    "\u0002\u0002\u0c37\u0c39\u0007*\u0002\u0002\u0c38\u0c3a\u0007a\u0002",
    "\u0002\u0c39\u0c38\u0003\u0002\u0002\u0002\u0c39\u0c3a\u0003\u0002\u0002",
    "\u0002\u0c3a\u0c3c\u0003\u0002\u0002\u0002\u0c3b\u0c3d\u0007\u01e5\u0002",
    "\u0002\u0c3c\u0c3b\u0003\u0002\u0002\u0002\u0c3c\u0c3d\u0003\u0002\u0002",
    "\u0002\u0c3d\u0c3f\u0003\u0002\u0002\u0002\u0c3e\u0c40\u0007H\u0002",
    "\u0002\u0c3f\u0c3e\u0003\u0002\u0002\u0002\u0c3f\u0c40\u0003\u0002\u0002",
    "\u0002\u0c40\u0c68\u0003\u0002\u0002\u0002\u0c41\u0c44\u0005\u01f6\u00fc",
    "\u0002\u0c42\u0c43\u0007\u03fd\u0002\u0002\u0c43\u0c45\u0007\u03ed\u0002",
    "\u0002\u0c44\u0c42\u0003\u0002\u0002\u0002\u0c44\u0c45\u0003\u0002\u0002",
    "\u0002\u0c45\u0c4e\u0003\u0002\u0002\u0002\u0c46\u0c47\u0007\u0400\u0002",
    "\u0002\u0c47\u0c4a\u0005\u01f6\u00fc\u0002\u0c48\u0c49\u0007\u03fd\u0002",
    "\u0002\u0c49\u0c4b\u0007\u03ed\u0002\u0002\u0c4a\u0c48\u0003\u0002\u0002",
    "\u0002\u0c4a\u0c4b\u0003\u0002\u0002\u0002\u0c4b\u0c4d\u0003\u0002\u0002",
    "\u0002\u0c4c\u0c46\u0003\u0002\u0002\u0002\u0c4d\u0c50\u0003\u0002\u0002",
    "\u0002\u0c4e\u0c4c\u0003\u0002\u0002\u0002\u0c4e\u0c4f\u0003\u0002\u0002",
    "\u0002\u0c4f\u0c51\u0003\u0002\u0002\u0002\u0c50\u0c4e\u0003\u0002\u0002",
    "\u0002\u0c51\u0c52\u0007?\u0002\u0002\u0c52\u0c53\u0005\u00d6l\u0002",
    "\u0c53\u0c69\u0003\u0002\u0002\u0002\u0c54\u0c55\u0007?\u0002\u0002",
    "\u0c55\u0c58\u0005\u01f6\u00fc\u0002\u0c56\u0c57\u0007\u03fd\u0002\u0002",
    "\u0c57\u0c59\u0007\u03ed\u0002\u0002\u0c58\u0c56\u0003\u0002\u0002\u0002",
    "\u0c58\u0c59\u0003\u0002\u0002\u0002\u0c59\u0c62\u0003\u0002\u0002\u0002",
    "\u0c5a\u0c5b\u0007\u0400\u0002\u0002\u0c5b\u0c5e\u0005\u01f6\u00fc\u0002",
    "\u0c5c\u0c5d\u0007\u03fd\u0002\u0002\u0c5d\u0c5f\u0007\u03ed\u0002\u0002",
    "\u0c5e\u0c5c\u0003\u0002\u0002\u0002\u0c5e\u0c5f\u0003\u0002\u0002\u0002",
    "\u0c5f\u0c61\u0003\u0002\u0002\u0002\u0c60\u0c5a\u0003\u0002\u0002\u0002",
    "\u0c61\u0c64\u0003\u0002\u0002\u0002\u0c62\u0c60\u0003\u0002\u0002\u0002",
    "\u0c62\u0c63\u0003\u0002\u0002\u0002\u0c63\u0c65\u0003\u0002\u0002\u0002",
    "\u0c64\u0c62\u0003\u0002\u0002\u0002\u0c65\u0c66\u0007\u00ab\u0002\u0002",
    "\u0c66\u0c67\u0005\u00d6l\u0002\u0c67\u0c69\u0003\u0002\u0002\u0002",
    "\u0c68\u0c41\u0003\u0002\u0002\u0002\u0c68\u0c54\u0003\u0002\u0002\u0002",
    "\u0c69\u0c6c\u0003\u0002\u0002\u0002\u0c6a\u0c6b\u0007\u00ae\u0002\u0002",
    "\u0c6b\u0c6d\u0005\u025c\u012f\u0002\u0c6c\u0c6a\u0003\u0002\u0002\u0002",
    "\u0c6c\u0c6d\u0003\u0002\u0002\u0002\u0c6d\u00c5\u0003\u0002\u0002\u0002",
    "\u0c6e\u0c6f\u0007\u0177\u0002\u0002\u0c6f\u0c70\u0005\u01f6\u00fc\u0002",
    "\u0c70\u0c75\u0007\u01cc\u0002\u0002\u0c71\u0c73\u0007\r\u0002\u0002",
    "\u0c72\u0c71\u0003\u0002\u0002\u0002\u0c72\u0c73\u0003\u0002\u0002\u0002",
    "\u0c73\u0c74\u0003\u0002\u0002\u0002\u0c74\u0c76\u0005\u020e\u0108\u0002",
    "\u0c75\u0c72\u0003\u0002\u0002\u0002\u0c75\u0c76\u0003\u0002\u0002\u0002",
    "\u0c76\u00c7\u0003\u0002\u0002\u0002\u0c77\u0c78\u0007\u0177\u0002\u0002",
    "\u0c78\u0c79\u0005\u01f6\u00fc\u0002\u0c79\u0c7a\u0007z\u0002\u0002",
    "\u0c7a\u0c81\u0005\u020e\u0108\u0002\u0c7b\u0c7c\u0005\u0264\u0133\u0002",
    "\u0c7c\u0c7d\u0007\u03fe\u0002\u0002\u0c7d\u0c7e\u0005\u0238\u011d\u0002",
    "\u0c7e\u0c7f\u0007\u03ff\u0002\u0002\u0c7f\u0c82\u0003\u0002\u0002\u0002",
    "\u0c80\u0c82\t*\u0002\u0002\u0c81\u0c7b\u0003\u0002\u0002\u0002\u0c81",
    "\u0c80\u0003\u0002\u0002\u0002\u0c82\u0c85\u0003\u0002\u0002\u0002\u0c83",
    "\u0c84\u0007\u00ae\u0002\u0002\u0c84\u0c86\u0005\u025c\u012f\u0002\u0c85",
    "\u0c83\u0003\u0002\u0002\u0002\u0c85\u0c86\u0003\u0002\u0002\u0002\u0c86",
    "\u0c89\u0003\u0002\u0002\u0002\u0c87\u0c88\u0007[\u0002\u0002\u0c88",
    "\u0c8a\u0005\u0100\u0081\u0002\u0c89\u0c87\u0003\u0002\u0002\u0002\u0c89",
    "\u0c8a\u0003\u0002\u0002\u0002\u0c8a\u00c9\u0003\u0002\u0002\u0002\u0c8b",
    "\u0c8c\u0007\u0177\u0002\u0002\u0c8c\u0c8d\u0005\u01f6\u00fc\u0002\u0c8d",
    "\u0c8e\u0007z\u0002\u0002\u0c8e\u0c91\t+\u0002\u0002\u0c8f\u0c90\u0007",
    "\u00ae\u0002\u0002\u0c90\u0c92\u0005\u025c\u012f\u0002\u0c91\u0c8f\u0003",
    "\u0002\u0002\u0002\u0c91\u0c92\u0003\u0002\u0002\u0002\u0c92\u0c95\u0003",
    "\u0002\u0002\u0002\u0c93\u0c94\u0007[\u0002\u0002\u0c94\u0c96\u0005",
    "\u0100\u0081\u0002\u0c95\u0c93\u0003\u0002\u0002\u0002\u0c95\u0c96\u0003",
    "\u0002\u0002\u0002\u0c96\u00cb\u0003\u0002\u0002\u0002\u0c97\u0c98\u0007",
    "\u0177\u0002\u0002\u0c98\u0c99\u0005\u01f6\u00fc\u0002\u0c99\u0c9a\u0007",
    "\u012d\u0002\u0002\u0c9a\u00cd\u0003\u0002\u0002\u0002\u0c9b\u0c9d\u0007",
    "\u00a8\u0002\u0002\u0c9c\u0c9e\u0007a\u0002\u0002\u0c9d\u0c9c\u0003",
    "\u0002\u0002\u0002\u0c9d\u0c9e\u0003\u0002\u0002\u0002\u0c9e\u0ca0\u0003",
    "\u0002\u0002\u0002\u0c9f\u0ca1\u0007H\u0002\u0002\u0ca0\u0c9f\u0003",
    "\u0002\u0002\u0002\u0ca0\u0ca1\u0003\u0002\u0002\u0002\u0ca1\u0ca2\u0003",
    "\u0002\u0002\u0002\u0ca2\u0ca7\u0005\u01f6\u00fc\u0002\u0ca3\u0ca5\u0007",
    "\r\u0002\u0002\u0ca4\u0ca3\u0003\u0002\u0002\u0002\u0ca4\u0ca5\u0003",
    "\u0002\u0002\u0002\u0ca5\u0ca6\u0003\u0002\u0002\u0002\u0ca6\u0ca8\u0005",
    "\u020e\u0108\u0002\u0ca7\u0ca4\u0003\u0002\u0002\u0002\u0ca7\u0ca8\u0003",
    "\u0002\u0002\u0002\u0ca8\u0ca9\u0003\u0002\u0002\u0002\u0ca9\u0caa\u0007",
    "\u008c\u0002\u0002\u0caa\u0caf\u0005\u00bc_\u0002\u0cab\u0cac\u0007",
    "\u0400\u0002\u0002\u0cac\u0cae\u0005\u00bc_\u0002\u0cad\u0cab\u0003",
    "\u0002\u0002\u0002\u0cae\u0cb1\u0003\u0002\u0002\u0002\u0caf\u0cad\u0003",
    "\u0002\u0002\u0002\u0caf\u0cb0\u0003\u0002\u0002\u0002\u0cb0\u0cb4\u0003",
    "\u0002\u0002\u0002\u0cb1\u0caf\u0003\u0002\u0002\u0002\u0cb2\u0cb3\u0007",
    "\u00ae\u0002\u0002\u0cb3\u0cb5\u0005\u025c\u012f\u0002\u0cb4\u0cb2\u0003",
    "\u0002\u0002\u0002\u0cb4\u0cb5\u0003\u0002\u0002\u0002\u0cb5\u0cb7\u0003",
    "\u0002\u0002\u0002\u0cb6\u0cb8\u0005\u00d2j\u0002\u0cb7\u0cb6\u0003",
    "\u0002\u0002\u0002\u0cb7\u0cb8\u0003\u0002\u0002\u0002\u0cb8\u0cba\u0003",
    "\u0002\u0002\u0002\u0cb9\u0cbb\u0005\u00fe\u0080\u0002\u0cba\u0cb9\u0003",
    "\u0002\u0002\u0002\u0cba\u0cbb\u0003\u0002\u0002\u0002\u0cbb\u00cf\u0003",
    "\u0002\u0002\u0002\u0cbc\u0cbe\u0007\u00a8\u0002\u0002\u0cbd\u0cbf\u0007",
    "a\u0002\u0002\u0cbe\u0cbd\u0003\u0002\u0002\u0002\u0cbe\u0cbf\u0003",
    "\u0002\u0002\u0002\u0cbf\u0cc1\u0003\u0002\u0002\u0002\u0cc0\u0cc2\u0007",
    "H\u0002\u0002\u0cc1\u0cc0\u0003\u0002\u0002\u0002\u0cc1\u0cc2\u0003",
    "\u0002\u0002\u0002\u0cc2\u0cc3\u0003\u0002\u0002\u0002\u0cc3\u0cc4\u0005",
    "\u00d6l\u0002\u0cc4\u0cc5\u0007\u008c\u0002\u0002\u0cc5\u0cca\u0005",
    "\u00bc_\u0002\u0cc6\u0cc7\u0007\u0400\u0002\u0002\u0cc7\u0cc9\u0005",
    "\u00bc_\u0002\u0cc8\u0cc6\u0003\u0002\u0002\u0002\u0cc9\u0ccc\u0003",
    "\u0002\u0002\u0002\u0cca\u0cc8\u0003\u0002\u0002\u0002\u0cca\u0ccb\u0003",
    "\u0002\u0002\u0002\u0ccb\u0ccf\u0003\u0002\u0002\u0002\u0ccc\u0cca\u0003",
    "\u0002\u0002\u0002\u0ccd\u0cce\u0007\u00ae\u0002\u0002\u0cce\u0cd0\u0005",
    "\u025c\u012f\u0002\u0ccf\u0ccd\u0003\u0002\u0002\u0002\u0ccf\u0cd0\u0003",
    "\u0002\u0002\u0002\u0cd0\u00d1\u0003\u0002\u0002\u0002\u0cd1\u0cd2\u0007",
    "q\u0002\u0002\u0cd2\u0cd3\u0007\u0012\u0002\u0002\u0cd3\u0cd8\u0005",
    "\u00d4k\u0002\u0cd4\u0cd5\u0007\u0400\u0002\u0002\u0cd5\u0cd7\u0005",
    "\u00d4k\u0002\u0cd6\u0cd4\u0003\u0002\u0002\u0002\u0cd7\u0cda\u0003",
    "\u0002\u0002\u0002\u0cd8\u0cd6\u0003\u0002\u0002\u0002\u0cd8\u0cd9\u0003",
    "\u0002\u0002\u0002\u0cd9\u00d3\u0003\u0002\u0002\u0002\u0cda\u0cd8\u0003",
    "\u0002\u0002\u0002\u0cdb\u0cdd\u0005\u025c\u012f\u0002\u0cdc\u0cde\t",
    ",\u0002\u0002\u0cdd\u0cdc\u0003\u0002\u0002\u0002\u0cdd\u0cde\u0003",
    "\u0002\u0002\u0002\u0cde\u00d5\u0003\u0002\u0002\u0002\u0cdf\u0ce4\u0005",
    "\u00d8m\u0002\u0ce0\u0ce1\u0007\u0400\u0002\u0002\u0ce1\u0ce3\u0005",
    "\u00d8m\u0002\u0ce2\u0ce0\u0003\u0002\u0002\u0002\u0ce3\u0ce6\u0003",
    "\u0002\u0002\u0002\u0ce4\u0ce2\u0003\u0002\u0002\u0002\u0ce4\u0ce5\u0003",
    "\u0002\u0002\u0002\u0ce5\u00d7\u0003\u0002\u0002\u0002\u0ce6\u0ce4\u0003",
    "\u0002\u0002\u0002\u0ce7\u0ceb\u0005\u00dan\u0002\u0ce8\u0cea\u0005",
    "\u00e0q\u0002\u0ce9\u0ce8\u0003\u0002\u0002\u0002\u0cea\u0ced\u0003",
    "\u0002\u0002\u0002\u0ceb\u0ce9\u0003\u0002\u0002\u0002\u0ceb\u0cec\u0003",
    "\u0002\u0002\u0002\u0cec\u0cf9\u0003\u0002\u0002\u0002\u0ced\u0ceb\u0003",
    "\u0002\u0002\u0002\u0cee\u0cef\u0007\u03fe\u0002\u0002\u0cef\u0cf3\u0005",
    "\u00dan\u0002\u0cf0\u0cf2\u0005\u00e0q\u0002\u0cf1\u0cf0\u0003\u0002",
    "\u0002\u0002\u0cf2\u0cf5\u0003\u0002\u0002\u0002\u0cf3\u0cf1\u0003\u0002",
    "\u0002\u0002\u0cf3\u0cf4\u0003\u0002\u0002\u0002\u0cf4\u0cf6\u0003\u0002",
    "\u0002\u0002\u0cf5\u0cf3\u0003\u0002\u0002\u0002\u0cf6\u0cf7\u0007\u03ff",
    "\u0002\u0002\u0cf7\u0cf9\u0003\u0002\u0002\u0002\u0cf8\u0ce7\u0003\u0002",
    "\u0002\u0002\u0cf8\u0cee\u0003\u0002\u0002\u0002\u0cf9\u00d9\u0003\u0002",
    "\u0002\u0002\u0cfa\u0d00\u0005\u01f6\u00fc\u0002\u0cfb\u0cfc\u0007u",
    "\u0002\u0002\u0cfc\u0cfd\u0007\u03fe\u0002\u0002\u0cfd\u0cfe\u0005\u022e",
    "\u0118\u0002\u0cfe\u0cff\u0007\u03ff\u0002\u0002\u0cff\u0d01\u0003\u0002",
    "\u0002\u0002\u0d00\u0cfb\u0003\u0002\u0002\u0002\u0d00\u0d01\u0003\u0002",
    "\u0002\u0002\u0d01\u0d06\u0003\u0002\u0002\u0002\u0d02\u0d04\u0007\r",
    "\u0002\u0002\u0d03\u0d02\u0003\u0002\u0002\u0002\u0d03\u0d04\u0003\u0002",
    "\u0002\u0002\u0d04\u0d05\u0003\u0002\u0002\u0002\u0d05\u0d07\u0005\u020e",
    "\u0108\u0002\u0d06\u0d03\u0003\u0002\u0002\u0002\u0d06\u0d07\u0003\u0002",
    "\u0002\u0002\u0d07\u0d10\u0003\u0002\u0002\u0002\u0d08\u0d0d\u0005\u00dc",
    "o\u0002\u0d09\u0d0a\u0007\u0400\u0002\u0002\u0d0a\u0d0c\u0005\u00dc",
    "o\u0002\u0d0b\u0d09\u0003\u0002\u0002\u0002\u0d0c\u0d0f\u0003\u0002",
    "\u0002\u0002\u0d0d\u0d0b\u0003\u0002\u0002\u0002\u0d0d\u0d0e\u0003\u0002",
    "\u0002\u0002\u0d0e\u0d11\u0003\u0002\u0002\u0002\u0d0f\u0d0d\u0003\u0002",
    "\u0002\u0002\u0d10\u0d08\u0003\u0002\u0002\u0002\u0d10\u0d11\u0003\u0002",
    "\u0002\u0002\u0d11\u0d23\u0003\u0002\u0002\u0002\u0d12\u0d18\u0005\u00b6",
    "\\\u0002\u0d13\u0d14\u0007\u03fe\u0002\u0002\u0d14\u0d15\u0005\u00b6",
    "\\\u0002\u0d15\u0d16\u0007\u03ff\u0002\u0002\u0d16\u0d18\u0003\u0002",
    "\u0002\u0002\u0d17\u0d12\u0003\u0002\u0002\u0002\u0d17\u0d13\u0003\u0002",
    "\u0002\u0002\u0d18\u0d1a\u0003\u0002\u0002\u0002\u0d19\u0d1b\u0007\r",
    "\u0002\u0002\u0d1a\u0d19\u0003\u0002\u0002\u0002\u0d1a\u0d1b\u0003\u0002",
    "\u0002\u0002\u0d1b\u0d1c\u0003\u0002\u0002\u0002\u0d1c\u0d1d\u0005\u020e",
    "\u0108\u0002\u0d1d\u0d23\u0003\u0002\u0002\u0002\u0d1e\u0d1f\u0007\u03fe",
    "\u0002\u0002\u0d1f\u0d20\u0005\u00d6l\u0002\u0d20\u0d21\u0007\u03ff",
    "\u0002\u0002\u0d21\u0d23\u0003\u0002\u0002\u0002\u0d22\u0cfa\u0003\u0002",
    "\u0002\u0002\u0d22\u0d17\u0003\u0002\u0002\u0002\u0d22\u0d1e\u0003\u0002",
    "\u0002\u0002\u0d23\u00db\u0003\u0002\u0002\u0002\u0d24\u0d25\t-\u0002",
    "\u0002\u0d25\u0d28\t\u0014\u0002\u0002\u0d26\u0d27\u0007<\u0002\u0002",
    "\u0d27\u0d29\u0005\u00dep\u0002\u0d28\u0d26\u0003\u0002\u0002\u0002",
    "\u0d28\u0d29\u0003\u0002\u0002\u0002\u0d29\u0d2a\u0003\u0002\u0002\u0002",
    "\u0d2a\u0d2b\u0007\u03fe\u0002\u0002\u0d2b\u0d2c\u0005\u022e\u0118\u0002",
    "\u0d2c\u0d2d\u0007\u03ff\u0002\u0002\u0d2d\u00dd\u0003\u0002\u0002\u0002",
    "\u0d2e\u0d34\u0007S\u0002\u0002\u0d2f\u0d30\u0007q\u0002\u0002\u0d30",
    "\u0d34\u0007\u0012\u0002\u0002\u0d31\u0d32\u0007D\u0002\u0002\u0d32",
    "\u0d34\u0007\u0012\u0002\u0002\u0d33\u0d2e\u0003\u0002\u0002\u0002\u0d33",
    "\u0d2f\u0003\u0002\u0002\u0002\u0d33\u0d31\u0003\u0002\u0002\u0002\u0d34",
    "\u00df\u0003\u0002\u0002\u0002\u0d35\u0d37\t.\u0002\u0002\u0d36\u0d35",
    "\u0003\u0002\u0002\u0002\u0d36\u0d37\u0003\u0002\u0002\u0002\u0d37\u0d38",
    "\u0003\u0002\u0002\u0002\u0d38\u0d39\u0007S\u0002\u0002\u0d39\u0d41",
    "\u0005\u00dan\u0002\u0d3a\u0d3b\u0007l\u0002\u0002\u0d3b\u0d42\u0005",
    "\u025c\u012f\u0002\u0d3c\u0d3d\u0007\u00ab\u0002\u0002\u0d3d\u0d3e\u0007",
    "\u03fe\u0002\u0002\u0d3e\u0d3f\u0005\u022e\u0118\u0002\u0d3f\u0d40\u0007",
    "\u03ff\u0002\u0002\u0d40\u0d42\u0003\u0002\u0002\u0002\u0d41\u0d3a\u0003",
    "\u0002\u0002\u0002\u0d41\u0d3c\u0003\u0002\u0002\u0002\u0d41\u0d42\u0003",
    "\u0002\u0002\u0002\u0d42\u0d62\u0003\u0002\u0002\u0002\u0d43\u0d44\u0007",
    "\u009b\u0002\u0002\u0d44\u0d47\u0005\u00dan\u0002\u0d45\u0d46\u0007",
    "l\u0002\u0002\u0d46\u0d48\u0005\u025c\u012f\u0002\u0d47\u0d45\u0003",
    "\u0002\u0002\u0002\u0d47\u0d48\u0003\u0002\u0002\u0002\u0d48\u0d62\u0003",
    "\u0002\u0002\u0002\u0d49\u0d4b\t/\u0002\u0002\u0d4a\u0d4c\u0007s\u0002",
    "\u0002\u0d4b\u0d4a\u0003\u0002\u0002\u0002\u0d4b\u0d4c\u0003\u0002\u0002",
    "\u0002\u0d4c\u0d4d\u0003\u0002\u0002\u0002\u0d4d\u0d4e\u0007S\u0002",
    "\u0002\u0d4e\u0d56\u0005\u00dan\u0002\u0d4f\u0d50\u0007l\u0002\u0002",
    "\u0d50\u0d57\u0005\u025c\u012f\u0002\u0d51\u0d52\u0007\u00ab\u0002\u0002",
    "\u0d52\u0d53\u0007\u03fe\u0002\u0002\u0d53\u0d54\u0005\u022e\u0118\u0002",
    "\u0d54\u0d55\u0007\u03ff\u0002\u0002\u0d55\u0d57\u0003\u0002\u0002\u0002",
    "\u0d56\u0d4f\u0003\u0002\u0002\u0002\u0d56\u0d51\u0003\u0002\u0002\u0002",
    "\u0d57\u0d62\u0003\u0002\u0002\u0002\u0d58\u0d5d\u0007g\u0002\u0002",
    "\u0d59\u0d5b\t/\u0002\u0002\u0d5a\u0d5c\u0007s\u0002\u0002\u0d5b\u0d5a",
    "\u0003\u0002\u0002\u0002\u0d5b\u0d5c\u0003\u0002\u0002\u0002\u0d5c\u0d5e",
    "\u0003\u0002\u0002\u0002\u0d5d\u0d59\u0003\u0002\u0002\u0002\u0d5d\u0d5e",
    "\u0003\u0002\u0002\u0002\u0d5e\u0d5f\u0003\u0002\u0002\u0002\u0d5f\u0d60",
    "\u0007S\u0002\u0002\u0d60\u0d62\u0005\u00dan\u0002\u0d61\u0d36\u0003",
    "\u0002\u0002\u0002\u0d61\u0d43\u0003\u0002\u0002\u0002\u0d61\u0d49\u0003",
    "\u0002\u0002\u0002\u0d61\u0d58\u0003\u0002\u0002\u0002\u0d62\u00e1\u0003",
    "\u0002\u0002\u0002\u0d63\u0d64\u0007\u03fe\u0002\u0002\u0d64\u0d65\u0005",
    "\u00e6t\u0002\u0d65\u0d66\u0007\u03ff\u0002\u0002\u0d66\u0d6c\u0003",
    "\u0002\u0002\u0002\u0d67\u0d68\u0007\u03fe\u0002\u0002\u0d68\u0d69\u0005",
    "\u00e2r\u0002\u0d69\u0d6a\u0007\u03ff\u0002\u0002\u0d6a\u0d6c\u0003",
    "\u0002\u0002\u0002\u0d6b\u0d63\u0003\u0002\u0002\u0002\u0d6b\u0d67\u0003",
    "\u0002\u0002\u0002\u0d6c\u00e3\u0003\u0002\u0002\u0002\u0d6d\u0d6e\u0007",
    "\u03fe\u0002\u0002\u0d6e\u0d6f\u0005\u00e8u\u0002\u0d6f\u0d70\u0007",
    "\u03ff\u0002\u0002\u0d70\u0d76\u0003\u0002\u0002\u0002\u0d71\u0d72\u0007",
    "\u03fe\u0002\u0002\u0d72\u0d73\u0005\u00e4s\u0002\u0d73\u0d74\u0007",
    "\u03ff\u0002\u0002\u0d74\u0d76\u0003\u0002\u0002\u0002\u0d75\u0d6d\u0003",
    "\u0002\u0002\u0002\u0d75\u0d71\u0003\u0002\u0002\u0002\u0d76\u00e5\u0003",
    "\u0002\u0002\u0002\u0d77\u0d7b\u0007\u008b\u0002\u0002\u0d78\u0d7a\u0005",
    "\u00eex\u0002\u0d79\u0d78\u0003\u0002\u0002\u0002\u0d7a\u0d7d\u0003",
    "\u0002\u0002\u0002\u0d7b\u0d79\u0003\u0002\u0002\u0002\u0d7b\u0d7c\u0003",
    "\u0002\u0002\u0002\u0d7c\u0d7e\u0003\u0002\u0002\u0002\u0d7d\u0d7b\u0003",
    "\u0002\u0002\u0002\u0d7e\u0d80\u0005\u00f0y\u0002\u0d7f\u0d81\u0005",
    "\u00f4{\u0002\u0d80\u0d7f\u0003\u0002\u0002\u0002\u0d80\u0d81\u0003",
    "\u0002\u0002\u0002\u0d81\u0d83\u0003\u0002\u0002\u0002\u0d82\u0d84\u0005",
    "\u00fa~\u0002\u0d83\u0d82\u0003\u0002\u0002\u0002\u0d83\u0d84\u0003",
    "\u0002\u0002\u0002\u0d84\u0d86\u0003\u0002\u0002\u0002\u0d85\u0d87\u0005",
    "\u00d2j\u0002\u0d86\u0d85\u0003\u0002\u0002\u0002\u0d86\u0d87\u0003",
    "\u0002\u0002\u0002\u0d87\u0d89\u0003\u0002\u0002\u0002\u0d88\u0d8a\u0005",
    "\u00fe\u0080\u0002\u0d89\u0d88\u0003\u0002\u0002\u0002\u0d89\u0d8a\u0003",
    "\u0002\u0002\u0002\u0d8a\u0da0\u0003\u0002\u0002\u0002\u0d8b\u0d8f\u0007",
    "\u008b\u0002\u0002\u0d8c\u0d8e\u0005\u00eex\u0002\u0d8d\u0d8c\u0003",
    "\u0002\u0002\u0002\u0d8e\u0d91\u0003\u0002\u0002\u0002\u0d8f\u0d8d\u0003",
    "\u0002\u0002\u0002\u0d8f\u0d90\u0003\u0002\u0002\u0002\u0d90\u0d92\u0003",
    "\u0002\u0002\u0002\u0d91\u0d8f\u0003\u0002\u0002\u0002\u0d92\u0d94\u0005",
    "\u00f0y\u0002\u0d93\u0d95\u0005\u00fa~\u0002\u0d94\u0d93\u0003\u0002",
    "\u0002\u0002\u0d94\u0d95\u0003\u0002\u0002\u0002\u0d95\u0d97\u0003\u0002",
    "\u0002\u0002\u0d96\u0d98\u0005\u00d2j\u0002\u0d97\u0d96\u0003\u0002",
    "\u0002\u0002\u0d97\u0d98\u0003\u0002\u0002\u0002\u0d98\u0d9a\u0003\u0002",
    "\u0002\u0002\u0d99\u0d9b\u0005\u00fe\u0080\u0002\u0d9a\u0d99\u0003\u0002",
    "\u0002\u0002\u0d9a\u0d9b\u0003\u0002\u0002\u0002\u0d9b\u0d9d\u0003\u0002",
    "\u0002\u0002\u0d9c\u0d9e\u0005\u00f4{\u0002\u0d9d\u0d9c\u0003\u0002",
    "\u0002\u0002\u0d9d\u0d9e\u0003\u0002\u0002\u0002\u0d9e\u0da0\u0003\u0002",
    "\u0002\u0002\u0d9f\u0d77\u0003\u0002\u0002\u0002\u0d9f\u0d8b\u0003\u0002",
    "\u0002\u0002\u0da0\u00e7\u0003\u0002\u0002\u0002\u0da1\u0da5\u0007\u008b",
    "\u0002\u0002\u0da2\u0da4\u0005\u00eex\u0002\u0da3\u0da2\u0003\u0002",
    "\u0002\u0002\u0da4\u0da7\u0003\u0002\u0002\u0002\u0da5\u0da3\u0003\u0002",
    "\u0002\u0002\u0da5\u0da6\u0003\u0002\u0002\u0002\u0da6\u0da8\u0003\u0002",
    "\u0002\u0002\u0da7\u0da5\u0003\u0002\u0002\u0002\u0da8\u0daa\u0005\u00f0",
    "y\u0002\u0da9\u0dab\u0005\u00fa~\u0002\u0daa\u0da9\u0003\u0002\u0002",
    "\u0002\u0daa\u0dab\u0003\u0002\u0002\u0002\u0dab\u0dad\u0003\u0002\u0002",
    "\u0002\u0dac\u0dae\u0005\u00d2j\u0002\u0dad\u0dac\u0003\u0002\u0002",
    "\u0002\u0dad\u0dae\u0003\u0002\u0002\u0002\u0dae\u0db0\u0003\u0002\u0002",
    "\u0002\u0daf\u0db1\u0005\u00fe\u0080\u0002\u0db0\u0daf\u0003\u0002\u0002",
    "\u0002\u0db0\u0db1\u0003\u0002\u0002\u0002\u0db1\u00e9\u0003\u0002\u0002",
    "\u0002\u0db2\u0db4\u0007\u00a4\u0002\u0002\u0db3\u0db5\t(\u0002\u0002",
    "\u0db4\u0db3\u0003\u0002\u0002\u0002\u0db4\u0db5\u0003\u0002\u0002\u0002",
    "\u0db5\u0db6\u0003\u0002\u0002\u0002\u0db6\u0db7\u0005\u00e4s\u0002",
    "\u0db7\u00eb\u0003\u0002\u0002\u0002\u0db8\u0dba\u0007\u00a4\u0002\u0002",
    "\u0db9\u0dbb\t(\u0002\u0002\u0dba\u0db9\u0003\u0002\u0002\u0002\u0dba",
    "\u0dbb\u0003\u0002\u0002\u0002\u0dbb\u0dbe\u0003\u0002\u0002\u0002\u0dbc",
    "\u0dbf\u0005\u00e8u\u0002\u0dbd\u0dbf\u0005\u00e4s\u0002\u0dbe\u0dbc",
    "\u0003\u0002\u0002\u0002\u0dbe\u0dbd\u0003\u0002\u0002\u0002\u0dbf\u00ed",
    "\u0003\u0002\u0002\u0002\u0dc0\u0dc9\t0\u0002\u0002\u0dc1\u0dc9\u0007",
    "F\u0002\u0002\u0dc2\u0dc9\u0007\u009b\u0002\u0002\u0dc3\u0dc9\u0007",
    "\u0097\u0002\u0002\u0dc4\u0dc9\u0007\u0095\u0002\u0002\u0dc5\u0dc9\u0007",
    "\u0218\u0002\u0002\u0dc6\u0dc9\t1\u0002\u0002\u0dc7\u0dc9\u0007\u0096",
    "\u0002\u0002\u0dc8\u0dc0\u0003\u0002\u0002\u0002\u0dc8\u0dc1\u0003\u0002",
    "\u0002\u0002\u0dc8\u0dc2\u0003\u0002\u0002\u0002\u0dc8\u0dc3\u0003\u0002",
    "\u0002\u0002\u0dc8\u0dc4\u0003\u0002\u0002\u0002\u0dc8\u0dc5\u0003\u0002",
    "\u0002\u0002\u0dc8\u0dc6\u0003\u0002\u0002\u0002\u0dc8\u0dc7\u0003\u0002",
    "\u0002\u0002\u0dc9\u00ef\u0003\u0002\u0002\u0002\u0dca\u0dcd\u0007\u03ed",
    "\u0002\u0002\u0dcb\u0dcd\u0005\u00f2z\u0002\u0dcc\u0dca\u0003\u0002",
    "\u0002\u0002\u0dcc\u0dcb\u0003\u0002\u0002\u0002\u0dcd\u0dd2\u0003\u0002",
    "\u0002\u0002\u0dce\u0dcf\u0007\u0400\u0002\u0002\u0dcf\u0dd1\u0005\u00f2",
    "z\u0002\u0dd0\u0dce\u0003\u0002\u0002\u0002\u0dd1\u0dd4\u0003\u0002",
    "\u0002\u0002\u0dd2\u0dd0\u0003\u0002\u0002\u0002\u0dd2\u0dd3\u0003\u0002",
    "\u0002\u0002\u0dd3\u00f1\u0003\u0002\u0002\u0002\u0dd4\u0dd2\u0003\u0002",
    "\u0002\u0002\u0dd5\u0dd6\u0005\u01f4\u00fb\u0002\u0dd6\u0dd7\u0007\u03fd",
    "\u0002\u0002\u0dd7\u0dd8\u0007\u03ed\u0002\u0002\u0dd8\u0df3\u0003\u0002",
    "\u0002\u0002\u0dd9\u0dde\u0005\u01f8\u00fd\u0002\u0dda\u0ddc\u0007\r",
    "\u0002\u0002\u0ddb\u0dda\u0003\u0002\u0002\u0002\u0ddb\u0ddc\u0003\u0002",
    "\u0002\u0002\u0ddc\u0ddd\u0003\u0002\u0002\u0002\u0ddd\u0ddf\u0005\u020e",
    "\u0108\u0002\u0dde\u0ddb\u0003\u0002\u0002\u0002\u0dde\u0ddf\u0003\u0002",
    "\u0002\u0002\u0ddf\u0df3\u0003\u0002\u0002\u0002\u0de0\u0de5\u0005\u0248",
    "\u0125\u0002\u0de1\u0de3\u0007\r\u0002\u0002\u0de2\u0de1\u0003\u0002",
    "\u0002\u0002\u0de2\u0de3\u0003\u0002\u0002\u0002\u0de3\u0de4\u0003\u0002",
    "\u0002\u0002\u0de4\u0de6\u0005\u020e\u0108\u0002\u0de5\u0de2\u0003\u0002",
    "\u0002\u0002\u0de5\u0de6\u0003\u0002\u0002\u0002\u0de6\u0df3\u0003\u0002",
    "\u0002\u0002\u0de7\u0de8\u0007\u0418\u0002\u0002\u0de8\u0dea\u0007\u03e4",
    "\u0002\u0002\u0de9\u0de7\u0003\u0002\u0002\u0002\u0de9\u0dea\u0003\u0002",
    "\u0002\u0002\u0dea\u0deb\u0003\u0002\u0002\u0002\u0deb\u0df0\u0005\u025c",
    "\u012f\u0002\u0dec\u0dee\u0007\r\u0002\u0002\u0ded\u0dec\u0003\u0002",
    "\u0002\u0002\u0ded\u0dee\u0003\u0002\u0002\u0002\u0dee\u0def\u0003\u0002",
    "\u0002\u0002\u0def\u0df1\u0005\u020e\u0108\u0002\u0df0\u0ded\u0003\u0002",
    "\u0002\u0002\u0df0\u0df1\u0003\u0002\u0002\u0002\u0df1\u0df3\u0003\u0002",
    "\u0002\u0002\u0df2\u0dd5\u0003\u0002\u0002\u0002\u0df2\u0dd9\u0003\u0002",
    "\u0002\u0002\u0df2\u0de0\u0003\u0002\u0002\u0002\u0df2\u0de9\u0003\u0002",
    "\u0002\u0002\u0df3\u00f3\u0003\u0002\u0002\u0002\u0df4\u0df5\u0007P",
    "\u0002\u0002\u0df5\u0dfa\u0005\u00be`\u0002\u0df6\u0df7\u0007\u0400",
    "\u0002\u0002\u0df7\u0df9\u0005\u00be`\u0002\u0df8\u0df6\u0003\u0002",
    "\u0002\u0002\u0df9\u0dfc\u0003\u0002\u0002\u0002\u0dfa\u0df8\u0003\u0002",
    "\u0002\u0002\u0dfa\u0dfb\u0003\u0002\u0002\u0002\u0dfb\u0e19\u0003\u0002",
    "\u0002\u0002\u0dfc\u0dfa\u0003\u0002\u0002\u0002\u0dfd\u0dfe\u0007P",
    "\u0002\u0002\u0dfe\u0dff\u0007\u0151\u0002\u0002\u0dff\u0e19\u0007\u040d",
    "\u0002\u0002\u0e00\u0e01\u0007P\u0002\u0002\u0e01\u0e02\u0007t\u0002",
    "\u0002\u0e02\u0e06\u0007\u040d\u0002\u0002\u0e03\u0e04\u0007\u0018\u0002",
    "\u0002\u0e04\u0e05\u0007\u008c\u0002\u0002\u0e05\u0e07\u0005\u0200\u0101",
    "\u0002\u0e06\u0e03\u0003\u0002\u0002\u0002\u0e06\u0e07\u0003\u0002\u0002",
    "\u0002\u0e07\u0e0e\u0003\u0002\u0002\u0002\u0e08\u0e0a\t%\u0002\u0002",
    "\u0e09\u0e0b\u0005\u00f6|\u0002\u0e0a\u0e09\u0003\u0002\u0002\u0002",
    "\u0e0b\u0e0c\u0003\u0002\u0002\u0002\u0e0c\u0e0a\u0003\u0002\u0002\u0002",
    "\u0e0c\u0e0d\u0003\u0002\u0002\u0002\u0e0d\u0e0f\u0003\u0002\u0002\u0002",
    "\u0e0e\u0e08\u0003\u0002\u0002\u0002\u0e0e\u0e0f\u0003\u0002\u0002\u0002",
    "\u0e0f\u0e16\u0003\u0002\u0002\u0002\u0e10\u0e12\u0007]\u0002\u0002",
    "\u0e11\u0e13\u0005\u00f8}\u0002\u0e12\u0e11\u0003\u0002\u0002\u0002",
    "\u0e13\u0e14\u0003\u0002\u0002\u0002\u0e14\u0e12\u0003\u0002\u0002\u0002",
    "\u0e14\u0e15\u0003\u0002\u0002\u0002\u0e15\u0e17\u0003\u0002\u0002\u0002",
    "\u0e16\u0e10\u0003\u0002\u0002\u0002\u0e16\u0e17\u0003\u0002\u0002\u0002",
    "\u0e17\u0e19\u0003\u0002\u0002\u0002\u0e18\u0df4\u0003\u0002\u0002\u0002",
    "\u0e18\u0dfd\u0003\u0002\u0002\u0002\u0e18\u0e00\u0003\u0002\u0002\u0002",
    "\u0e19\u00f5\u0003\u0002\u0002\u0002\u0e1a\u0e1b\u0007\u009d\u0002\u0002",
    "\u0e1b\u0e1c\u0007\u0012\u0002\u0002\u0e1c\u0e27\u0007\u040d\u0002\u0002",
    "\u0e1d\u0e1f\u0007o\u0002\u0002\u0e1e\u0e1d\u0003\u0002\u0002\u0002",
    "\u0e1e\u0e1f\u0003\u0002\u0002\u0002\u0e1f\u0e20\u0003\u0002\u0002\u0002",
    "\u0e20\u0e21\u00075\u0002\u0002\u0e21\u0e22\u0007\u0012\u0002\u0002",
    "\u0e22\u0e27\u0007\u040d\u0002\u0002\u0e23\u0e24\u00076\u0002\u0002",
    "\u0e24\u0e25\u0007\u0012\u0002\u0002\u0e25\u0e27\u0007\u040d\u0002\u0002",
    "\u0e26\u0e1a\u0003\u0002\u0002\u0002\u0e26\u0e1e\u0003\u0002\u0002\u0002",
    "\u0e26\u0e23\u0003\u0002\u0002\u0002\u0e27\u00f7\u0003\u0002\u0002\u0002",
    "\u0e28\u0e29\u0007\u009a\u0002\u0002\u0e29\u0e2a\u0007\u0012\u0002\u0002",
    "\u0e2a\u0e2f\u0007\u040d\u0002\u0002\u0e2b\u0e2c\u0007\u009d\u0002\u0002",
    "\u0e2c\u0e2d\u0007\u0012\u0002\u0002\u0e2d\u0e2f\u0007\u040d\u0002\u0002",
    "\u0e2e\u0e28\u0003\u0002\u0002\u0002\u0e2e\u0e2b\u0003\u0002\u0002\u0002",
    "\u0e2f\u00f9\u0003\u0002\u0002\u0002\u0e30\u0e31\u0007?\u0002\u0002",
    "\u0e31\u0e34\u0005\u00d6l\u0002\u0e32\u0e33\u0007\u00ae\u0002\u0002",
    "\u0e33\u0e35\u0005\u025c\u012f\u0002\u0e34\u0e32\u0003\u0002\u0002\u0002",
    "\u0e34\u0e35\u0003\u0002\u0002\u0002\u0e35\u0e44\u0003\u0002\u0002\u0002",
    "\u0e36\u0e37\u0007D\u0002\u0002\u0e37\u0e38\u0007\u0012\u0002\u0002",
    "\u0e38\u0e3d\u0005\u00fc\u007f\u0002\u0e39\u0e3a\u0007\u0400\u0002\u0002",
    "\u0e3a\u0e3c\u0005\u00fc\u007f\u0002\u0e3b\u0e39\u0003\u0002\u0002\u0002",
    "\u0e3c\u0e3f\u0003\u0002\u0002\u0002\u0e3d\u0e3b\u0003\u0002\u0002\u0002",
    "\u0e3d\u0e3e\u0003\u0002\u0002\u0002\u0e3e\u0e42\u0003\u0002\u0002\u0002",
    "\u0e3f\u0e3d\u0003\u0002\u0002\u0002\u0e40\u0e41\u0007\u00b0\u0002\u0002",
    "\u0e41\u0e43\u0007\u01ff\u0002\u0002\u0e42\u0e40\u0003\u0002\u0002\u0002",
    "\u0e42\u0e43\u0003\u0002\u0002\u0002\u0e43\u0e45\u0003\u0002\u0002\u0002",
    "\u0e44\u0e36\u0003\u0002\u0002\u0002\u0e44\u0e45\u0003\u0002\u0002\u0002",
    "\u0e45\u0e48\u0003\u0002\u0002\u0002\u0e46\u0e47\u0007E\u0002\u0002",
    "\u0e47\u0e49\u0005\u025c\u012f\u0002\u0e48\u0e46\u0003\u0002\u0002\u0002",
    "\u0e48\u0e49\u0003\u0002\u0002\u0002\u0e49\u00fb\u0003\u0002\u0002\u0002",
    "\u0e4a\u0e4c\u0005\u025c\u012f\u0002\u0e4b\u0e4d\t,\u0002\u0002\u0e4c",
    "\u0e4b\u0003\u0002\u0002\u0002\u0e4c\u0e4d\u0003\u0002\u0002\u0002\u0e4d",
    "\u00fd\u0003\u0002\u0002\u0002\u0e4e\u0e59\u0007[\u0002\u0002\u0e4f",
    "\u0e50\u0005\u0100\u0081\u0002\u0e50\u0e51\u0007\u0400\u0002\u0002\u0e51",
    "\u0e53\u0003\u0002\u0002\u0002\u0e52\u0e4f\u0003\u0002\u0002\u0002\u0e52",
    "\u0e53\u0003\u0002\u0002\u0002\u0e53\u0e54\u0003\u0002\u0002\u0002\u0e54",
    "\u0e5a\u0005\u0100\u0081\u0002\u0e55\u0e56\u0005\u0100\u0081\u0002\u0e56",
    "\u0e57\u0007\u01c6\u0002\u0002\u0e57\u0e58\u0005\u0100\u0081\u0002\u0e58",
    "\u0e5a\u0003\u0002\u0002\u0002\u0e59\u0e52\u0003\u0002\u0002\u0002\u0e59",
    "\u0e55\u0003\u0002\u0002\u0002\u0e5a\u00ff\u0003\u0002\u0002\u0002\u0e5b",
    "\u0e5e\u0005\u0214\u010b\u0002\u0e5c\u0e5e\u0005\u01fe\u0100\u0002\u0e5d",
    "\u0e5b\u0003\u0002\u0002\u0002\u0e5d\u0e5c\u0003\u0002\u0002\u0002\u0e5e",
    "\u0101\u0003\u0002\u0002\u0002\u0e5f\u0e60\u0007\u021c\u0002\u0002\u0e60",
    "\u0e69\u0007\u0233\u0002\u0002\u0e61\u0e66\u0005\u0118\u008d\u0002\u0e62",
    "\u0e63\u0007\u0400\u0002\u0002\u0e63\u0e65\u0005\u0118\u008d\u0002\u0e64",
    "\u0e62\u0003\u0002\u0002\u0002\u0e65\u0e68\u0003\u0002\u0002\u0002\u0e66",
    "\u0e64\u0003\u0002\u0002\u0002\u0e66\u0e67\u0003\u0002\u0002\u0002\u0e67",
    "\u0e6a\u0003\u0002\u0002\u0002\u0e68\u0e66\u0003\u0002\u0002\u0002\u0e69",
    "\u0e61\u0003\u0002\u0002\u0002\u0e69\u0e6a\u0003\u0002\u0002\u0002\u0e6a",
    "\u0103\u0003\u0002\u0002\u0002\u0e6b\u0e6d\u0007\u011c\u0002\u0002\u0e6c",
    "\u0e6e\u0007\u024a\u0002\u0002\u0e6d\u0e6c\u0003\u0002\u0002\u0002\u0e6d",
    "\u0e6e\u0003\u0002\u0002\u0002\u0e6e\u0105\u0003\u0002\u0002\u0002\u0e6f",
    "\u0e71\u0007\u0134\u0002\u0002\u0e70\u0e72\u0007\u024a\u0002\u0002\u0e71",
    "\u0e70\u0003\u0002\u0002\u0002\u0e71\u0e72\u0003\u0002\u0002\u0002\u0e72",
    "\u0e78\u0003\u0002\u0002\u0002\u0e73\u0e75\u0007\f\u0002\u0002\u0e74",
    "\u0e76\u0007\u01c2\u0002\u0002\u0e75\u0e74\u0003\u0002\u0002\u0002\u0e75",
    "\u0e76\u0003\u0002\u0002\u0002\u0e76\u0e77\u0003\u0002\u0002\u0002\u0e77",
    "\u0e79\u0007\u0125\u0002\u0002\u0e78\u0e73\u0003\u0002\u0002\u0002\u0e78",
    "\u0e79\u0003\u0002\u0002\u0002\u0e79\u0e7e\u0003\u0002\u0002\u0002\u0e7a",
    "\u0e7c\u0007\u01c2\u0002\u0002\u0e7b\u0e7a\u0003\u0002\u0002\u0002\u0e7b",
    "\u0e7c\u0003\u0002\u0002\u0002\u0e7c\u0e7d\u0003\u0002\u0002\u0002\u0e7d",
    "\u0e7f\u0007~\u0002\u0002\u0e7e\u0e7b\u0003\u0002\u0002\u0002\u0e7e",
    "\u0e7f\u0003\u0002\u0002\u0002\u0e7f\u0107\u0003\u0002\u0002\u0002\u0e80",
    "\u0e82\u0007\u01fe\u0002\u0002\u0e81\u0e83\u0007\u024a\u0002\u0002\u0e82",
    "\u0e81\u0003\u0002\u0002\u0002\u0e82\u0e83\u0003\u0002\u0002\u0002\u0e83",
    "\u0e89\u0003\u0002\u0002\u0002\u0e84\u0e86\u0007\f\u0002\u0002\u0e85",
    "\u0e87\u0007\u01c2\u0002\u0002\u0e86\u0e85\u0003\u0002\u0002\u0002\u0e86",
    "\u0e87\u0003\u0002\u0002\u0002\u0e87\u0e88\u0003\u0002\u0002\u0002\u0e88",
    "\u0e8a\u0007\u0125\u0002\u0002\u0e89\u0e84\u0003\u0002\u0002\u0002\u0e89",
    "\u0e8a\u0003\u0002\u0002\u0002\u0e8a\u0e8f\u0003\u0002\u0002\u0002\u0e8b",
    "\u0e8d\u0007\u01c2\u0002\u0002\u0e8c\u0e8b\u0003\u0002\u0002\u0002\u0e8c",
    "\u0e8d\u0003\u0002\u0002\u0002\u0e8d\u0e8e\u0003\u0002\u0002\u0002\u0e8e",
    "\u0e90\u0007~\u0002\u0002\u0e8f\u0e8c\u0003\u0002\u0002\u0002\u0e8f",
    "\u0e90\u0003\u0002\u0002\u0002\u0e90\u0109\u0003\u0002\u0002\u0002\u0e91",
    "\u0e92\u0007\u0204\u0002\u0002\u0e92\u0e93\u0005\u020e\u0108\u0002\u0e93",
    "\u010b\u0003\u0002\u0002\u0002\u0e94\u0e96\u0007\u01fe\u0002\u0002\u0e95",
    "\u0e97\u0007\u024a\u0002\u0002\u0e96\u0e95\u0003\u0002\u0002\u0002\u0e96",
    "\u0e97\u0003\u0002\u0002\u0002\u0e97\u0e98\u0003\u0002\u0002\u0002\u0e98",
    "\u0e9a\u0007\u009f\u0002\u0002\u0e99\u0e9b\u0007\u0204\u0002\u0002\u0e9a",
    "\u0e99\u0003\u0002\u0002\u0002\u0e9a\u0e9b\u0003\u0002\u0002\u0002\u0e9b",
    "\u0e9c\u0003\u0002\u0002\u0002\u0e9c\u0e9d\u0005\u020e\u0108\u0002\u0e9d",
    "\u010d\u0003\u0002\u0002\u0002\u0e9e\u0e9f\u0007~\u0002\u0002\u0e9f",
    "\u0ea0\u0007\u0204\u0002\u0002\u0ea0\u0ea1\u0005\u020e\u0108\u0002\u0ea1",
    "\u010f\u0003\u0002\u0002\u0002\u0ea2\u0ea3\u0007_\u0002\u0002\u0ea3",
    "\u0ea4\u0007\u025c\u0002\u0002\u0ea4\u0ea9\u0005\u011a\u008e\u0002\u0ea5",
    "\u0ea6\u0007\u0400\u0002\u0002\u0ea6\u0ea8\u0005\u011a\u008e\u0002\u0ea7",
    "\u0ea5\u0003\u0002\u0002\u0002\u0ea8\u0eab\u0003\u0002\u0002\u0002\u0ea9",
    "\u0ea7\u0003\u0002\u0002\u0002\u0ea9\u0eaa\u0003\u0002\u0002\u0002\u0eaa",
    "\u0111\u0003\u0002\u0002\u0002\u0eab\u0ea9\u0003\u0002\u0002\u0002\u0eac",
    "\u0ead\u0007\u00a6\u0002\u0002\u0ead\u0eae\u0007\u025c\u0002\u0002\u0eae",
    "\u0113\u0003\u0002\u0002\u0002\u0eaf\u0eb0\u0007\u008c\u0002\u0002\u0eb0",
    "\u0eb1\u0007\u0118\u0002\u0002\u0eb1\u0eb2\u0007\u03f5\u0002\u0002\u0eb2",
    "\u0eb3\t\u0018\u0002\u0002\u0eb3\u0115\u0003\u0002\u0002\u0002\u0eb4",
    "\u0eb6\u0007\u008c\u0002\u0002\u0eb5\u0eb7\t2\u0002\u0002\u0eb6\u0eb5",
    "\u0003\u0002\u0002\u0002\u0eb6\u0eb7\u0003\u0002\u0002\u0002\u0eb7\u0eb8",
    "\u0003\u0002\u0002\u0002\u0eb8\u0eb9\u0007\u0233\u0002\u0002\u0eb9\u0ebe",
    "\u0005\u011e\u0090\u0002\u0eba\u0ebb\u0007\u0400\u0002\u0002\u0ebb\u0ebd",
    "\u0005\u011e\u0090\u0002\u0ebc\u0eba\u0003\u0002\u0002\u0002\u0ebd\u0ec0",
    "\u0003\u0002\u0002\u0002\u0ebe\u0ebc\u0003\u0002\u0002\u0002\u0ebe\u0ebf",
    "\u0003\u0002\u0002\u0002\u0ebf\u0117\u0003\u0002\u0002\u0002\u0ec0\u0ebe",
    "\u0003\u0002\u0002\u0002\u0ec1\u0ec2\u0007\u00b0\u0002\u0002\u0ec2\u0ec3",
    "\u0007\u013b\u0002\u0002\u0ec3\u0ec9\u0007\u020f\u0002\u0002\u0ec4\u0ec5",
    "\u0007z\u0002\u0002\u0ec5\u0ec9\u0007\u00b1\u0002\u0002\u0ec6\u0ec7",
    "\u0007z\u0002\u0002\u0ec7\u0ec9\u0007\u01cb\u0002\u0002\u0ec8\u0ec1",
    "\u0003\u0002\u0002\u0002\u0ec8\u0ec4\u0003\u0002\u0002\u0002\u0ec8\u0ec6",
    "\u0003\u0002\u0002\u0002\u0ec9\u0119\u0003\u0002\u0002\u0002\u0eca\u0ecf",
    "\u0005\u01f6\u00fc\u0002\u0ecb\u0ecd\u0007\r\u0002\u0002\u0ecc\u0ecb",
    "\u0003\u0002\u0002\u0002\u0ecc\u0ecd\u0003\u0002\u0002\u0002\u0ecd\u0ece",
    "\u0003\u0002\u0002\u0002\u0ece\u0ed0\u0005\u020e\u0108\u0002\u0ecf\u0ecc",
    "\u0003\u0002\u0002\u0002\u0ecf\u0ed0\u0003\u0002\u0002\u0002\u0ed0\u0ed1",
    "\u0003\u0002\u0002\u0002\u0ed1\u0ed2\u0005\u011c\u008f\u0002\u0ed2\u011b",
    "\u0003\u0002\u0002\u0002\u0ed3\u0ed5\u0007z\u0002\u0002\u0ed4\u0ed6",
    "\u0007\u0194\u0002\u0002\u0ed5\u0ed4\u0003\u0002\u0002\u0002\u0ed5\u0ed6",
    "\u0003\u0002\u0002\u0002\u0ed6\u0edc\u0003\u0002\u0002\u0002\u0ed7\u0ed9",
    "\u0007a\u0002\u0002\u0ed8\u0ed7\u0003\u0002\u0002\u0002\u0ed8\u0ed9",
    "\u0003\u0002\u0002\u0002\u0ed9\u0eda\u0003\u0002\u0002\u0002\u0eda\u0edc",
    "\u0007\u00b1\u0002\u0002\u0edb\u0ed3\u0003\u0002\u0002\u0002\u0edb\u0ed8",
    "\u0003\u0002\u0002\u0002\u0edc\u011d\u0003\u0002\u0002\u0002\u0edd\u0ede",
    "\u0007\u018a\u0002\u0002\u0ede\u0edf\u0007\u0192\u0002\u0002\u0edf\u0ee5",
    "\u0005\u0120\u0091\u0002\u0ee0\u0ee1\u0007z\u0002\u0002\u0ee1\u0ee5",
    "\u0007\u00b1\u0002\u0002\u0ee2\u0ee3\u0007z\u0002\u0002\u0ee3\u0ee5",
    "\u0007\u01cb\u0002\u0002\u0ee4\u0edd\u0003\u0002\u0002\u0002\u0ee4\u0ee0",
    "\u0003\u0002\u0002\u0002\u0ee4\u0ee2\u0003\u0002\u0002\u0002\u0ee5\u011f",
    "\u0003\u0002\u0002\u0002\u0ee6\u0ee7\u0007\u02b3\u0002\u0002\u0ee7\u0eee",
    "\u0007z\u0002\u0002\u0ee8\u0ee9\u0007z\u0002\u0002\u0ee9\u0eee\u0007",
    "\u02b4\u0002\u0002\u0eea\u0eeb\u0007z\u0002\u0002\u0eeb\u0eee\u0007",
    "\u02b5\u0002\u0002\u0eec\u0eee\u0007\u02b6\u0002\u0002\u0eed\u0ee6\u0003",
    "\u0002\u0002\u0002\u0eed\u0ee8\u0003\u0002\u0002\u0002\u0eed\u0eea\u0003",
    "\u0002\u0002\u0002\u0eed\u0eec\u0003\u0002\u0002\u0002\u0eee\u0121\u0003",
    "\u0002\u0002\u0002\u0eef\u0ef0\u0007\u0017\u0002\u0002\u0ef0\u0ef1\u0007",
    "\u0197\u0002\u0002\u0ef1\u0ef2\u0007\u009f\u0002\u0002\u0ef2\u0ef7\u0005",
    "\u0134\u009b\u0002\u0ef3\u0ef4\u0007\u0400\u0002\u0002\u0ef4\u0ef6\u0005",
    "\u0134\u009b\u0002\u0ef5\u0ef3\u0003\u0002\u0002\u0002\u0ef6\u0ef9\u0003",
    "\u0002\u0002\u0002\u0ef7\u0ef5\u0003\u0002\u0002\u0002\u0ef7\u0ef8\u0003",
    "\u0002\u0002\u0002\u0ef8\u0efb\u0003\u0002\u0002\u0002\u0ef9\u0ef7\u0003",
    "\u0002\u0002\u0002\u0efa\u0efc\u0005\u013c\u009f\u0002\u0efb\u0efa\u0003",
    "\u0002\u0002\u0002\u0efb\u0efc\u0003\u0002\u0002\u0002\u0efc\u0123\u0003",
    "\u0002\u0002\u0002\u0efd\u0efe\u0007\u0017\u0002\u0002\u0efe\u0eff\u0007",
    "\u01f8\u0002\u0002\u0eff\u0f00\u0007\u016b\u0002\u0002\u0f00\u0f05\u0005",
    "\u013e\u00a0\u0002\u0f01\u0f02\u0007\u0400\u0002\u0002\u0f02\u0f04\u0005",
    "\u013e\u00a0\u0002\u0f03\u0f01\u0003\u0002\u0002\u0002\u0f04\u0f07\u0003",
    "\u0002\u0002\u0002\u0f05\u0f03\u0003\u0002\u0002\u0002\u0f05\u0f06\u0003",
    "\u0002\u0002\u0002\u0f06\u0125\u0003\u0002\u0002\u0002\u0f07\u0f05\u0003",
    "\u0002\u0002\u0002\u0f08\u0f09\u0007x\u0002\u0002\u0f09\u0f0a\t3\u0002",
    "\u0002\u0f0a\u0f0f\u0007\u0196\u0002\u0002\u0f0b\u0f0c\u0007\u009f\u0002",
    "\u0002\u0f0c\u0f10\u0007\u040d\u0002\u0002\u0f0d\u0f0e\u0007\u000f\u0002",
    "\u0002\u0f0e\u0f10\u0007\u040d\u0002\u0002\u0f0f\u0f0b\u0003\u0002\u0002",
    "\u0002\u0f0f\u0f0d\u0003\u0002\u0002\u0002\u0f10\u0127\u0003\u0002\u0002",
    "\u0002\u0f11\u0f12\u0007\u01f9\u0002\u0002\u0f12\u0f13\u0007\u0197\u0002",
    "\u0002\u0f13\u0129\u0003\u0002\u0002\u0002\u0f14\u0f15\u0007\u01f9\u0002",
    "\u0002\u0f15\u0f17\u0007\u020d\u0002\u0002\u0f16\u0f18\u0007\b\u0002",
    "\u0002\u0f17\u0f16\u0003\u0002\u0002\u0002\u0f17\u0f18\u0003\u0002\u0002",
    "\u0002\u0f18\u0f1a\u0003\u0002\u0002\u0002\u0f19\u0f1b\u0005\u013c\u009f",
    "\u0002\u0f1a\u0f19\u0003\u0002\u0002\u0002\u0f1a\u0f1b\u0003\u0002\u0002",
    "\u0002\u0f1b\u012b\u0003\u0002\u0002\u0002\u0f1c\u0f1d\u0007\u021c\u0002",
    "\u0002\u0f1d\u0f26\u0007\u020d\u0002\u0002\u0f1e\u0f23\u0005\u0142\u00a2",
    "\u0002\u0f1f\u0f20\u0007\u0400\u0002\u0002\u0f20\u0f22\u0005\u0142\u00a2",
    "\u0002\u0f21\u0f1f\u0003\u0002\u0002\u0002\u0f22\u0f25\u0003\u0002\u0002",
    "\u0002\u0f23\u0f21\u0003\u0002\u0002\u0002\u0f23\u0f24\u0003\u0002\u0002",
    "\u0002\u0f24\u0f27\u0003\u0002\u0002\u0002\u0f25\u0f23\u0003\u0002\u0002",
    "\u0002\u0f26\u0f1e\u0003\u0002\u0002\u0002\u0f26\u0f27\u0003\u0002\u0002",
    "\u0002\u0f27\u0f2a\u0003\u0002\u0002\u0002\u0f28\u0f29\u0007\u023c\u0002",
    "\u0002\u0f29\u0f2b\u0005\u0144\u00a3\u0002\u0f2a\u0f28\u0003\u0002\u0002",
    "\u0002\u0f2a\u0f2b\u0003\u0002\u0002\u0002\u0f2b\u0f2f\u0003\u0002\u0002",
    "\u0002\u0f2c\u0f2e\u0005\u0146\u00a4\u0002\u0f2d\u0f2c\u0003\u0002\u0002",
    "\u0002\u0f2e\u0f31\u0003\u0002\u0002\u0002\u0f2f\u0f2d\u0003\u0002\u0002",
    "\u0002\u0f2f\u0f30\u0003\u0002\u0002\u0002\u0f30\u0f33\u0003\u0002\u0002",
    "\u0002\u0f31\u0f2f\u0003\u0002\u0002\u0002\u0f32\u0f34\u0005\u013c\u009f",
    "\u0002\u0f33\u0f32\u0003\u0002\u0002\u0002\u0f33\u0f34\u0003\u0002\u0002",
    "\u0002\u0f34\u012d\u0003\u0002\u0002\u0002\u0f35\u0f36\u0007\u0222\u0002",
    "\u0002\u0f36\u0f3f\u0007\u020d\u0002\u0002\u0f37\u0f3c\u0005\u0142\u00a2",
    "\u0002\u0f38\u0f39\u0007\u0400\u0002\u0002\u0f39\u0f3b\u0005\u0142\u00a2",
    "\u0002\u0f3a\u0f38\u0003\u0002\u0002\u0002\u0f3b\u0f3e\u0003\u0002\u0002",
    "\u0002\u0f3c\u0f3a\u0003\u0002\u0002\u0002\u0f3c\u0f3d\u0003\u0002\u0002",
    "\u0002\u0f3d\u0f40\u0003\u0002\u0002\u0002\u0f3e\u0f3c\u0003\u0002\u0002",
    "\u0002\u0f3f\u0f37\u0003\u0002\u0002\u0002\u0f3f\u0f40\u0003\u0002\u0002",
    "\u0002\u0f40\u012f\u0003\u0002\u0002\u0002\u0f41\u0f42\u0007\u021c\u0002",
    "\u0002\u0f42\u0f43\u0007\u0176\u0002\u0002\u0f43\u0131\u0003\u0002\u0002",
    "\u0002\u0f44\u0f45\u0007\u0222\u0002\u0002\u0f45\u0f46\u0007\u0176\u0002",
    "\u0002\u0f46\u0133\u0003\u0002\u0002\u0002\u0f47\u0f48\u0005\u0136\u009c",
    "\u0002\u0f48\u0f49\u0007\u03f5\u0002\u0002\u0f49\u0f4a\u0007\u040d\u0002",
    "\u0002\u0f4a\u0f65\u0003\u0002\u0002\u0002\u0f4b\u0f4c\u0005\u0138\u009d",
    "\u0002\u0f4c\u0f4d\u0007\u03f5\u0002\u0002\u0f4d\u0f4e\u0005\u0214\u010b",
    "\u0002\u0f4e\u0f65\u0003\u0002\u0002\u0002\u0f4f\u0f50\u0005\u013a\u009e",
    "\u0002\u0f50\u0f51\u0007\u03f5\u0002\u0002\u0f51\u0f52\t\u0018\u0002",
    "\u0002\u0f52\u0f65\u0003\u0002\u0002\u0002\u0f53\u0f54\u0007\u019b\u0002",
    "\u0002\u0f54\u0f55\u0007\u03f5\u0002\u0002\u0f55\u0f65\u0007\u0410\u0002",
    "\u0002\u0f56\u0f57\u0007\u017d\u0002\u0002\u0f57\u0f58\u0007\u03f5\u0002",
    "\u0002\u0f58\u0f61\u0007\u03fe\u0002\u0002\u0f59\u0f5e\u0005\u020e\u0108",
    "\u0002\u0f5a\u0f5b\u0007\u0400\u0002\u0002\u0f5b\u0f5d\u0005\u020e\u0108",
    "\u0002\u0f5c\u0f5a\u0003\u0002\u0002\u0002\u0f5d\u0f60\u0003\u0002\u0002",
    "\u0002\u0f5e\u0f5c\u0003\u0002\u0002\u0002\u0f5e\u0f5f\u0003\u0002\u0002",
    "\u0002\u0f5f\u0f62\u0003\u0002\u0002\u0002\u0f60\u0f5e\u0003\u0002\u0002",
    "\u0002\u0f61\u0f59\u0003\u0002\u0002\u0002\u0f61\u0f62\u0003\u0002\u0002",
    "\u0002\u0f62\u0f63\u0003\u0002\u0002\u0002\u0f63\u0f65\u0007\u03ff\u0002",
    "\u0002\u0f64\u0f47\u0003\u0002\u0002\u0002\u0f64\u0f4b\u0003\u0002\u0002",
    "\u0002\u0f64\u0f4f\u0003\u0002\u0002\u0002\u0f64\u0f53\u0003\u0002\u0002",
    "\u0002\u0f64\u0f56\u0003\u0002\u0002\u0002\u0f65\u0135\u0003\u0002\u0002",
    "\u0002\u0f66\u0f67\t4\u0002\u0002\u0f67\u0137\u0003\u0002\u0002\u0002",
    "\u0f68\u0f69\t5\u0002\u0002\u0f69\u0139\u0003\u0002\u0002\u0002\u0f6a",
    "\u0f6b\t6\u0002\u0002\u0f6b\u013b\u0003\u0002\u0002\u0002\u0f6c\u0f6d",
    "\u0007<\u0002\u0002\u0f6d\u0f6e\u0007\u0127\u0002\u0002\u0f6e\u0f6f",
    "\u0007\u040d\u0002\u0002\u0f6f\u013d\u0003\u0002\u0002\u0002\u0f70\u0f71",
    "\u0007\u01f1\u0002\u0002\u0f71\u0f72\u0007\u03f5\u0002\u0002\u0f72\u0f73",
    "\u0007\u03fe\u0002\u0002\u0f73\u0f74\u0005\u022e\u0118\u0002\u0f74\u0f75",
    "\u0007\u03ff\u0002\u0002\u0f75\u0fa2\u0003\u0002\u0002\u0002\u0f76\u0f77",
    "\u0007\u01f3\u0002\u0002\u0f77\u0f78\u0007\u03f5\u0002\u0002\u0f78\u0f79",
    "\u0007\u03fe\u0002\u0002\u0f79\u0f7a\u0005\u022e\u0118\u0002\u0f7a\u0f7b",
    "\u0007\u03ff\u0002\u0002\u0f7b\u0fa2\u0003\u0002\u0002\u0002\u0f7c\u0f7d",
    "\u0007\u01f2\u0002\u0002\u0f7d\u0f7e\u0007\u03f5\u0002\u0002\u0f7e\u0f7f",
    "\u0007\u03fe\u0002\u0002\u0f7f\u0f80\u0005\u0230\u0119\u0002\u0f80\u0f81",
    "\u0007\u03ff\u0002\u0002\u0f81\u0fa2\u0003\u0002\u0002\u0002\u0f82\u0f83",
    "\u0007\u01f4\u0002\u0002\u0f83\u0f84\u0007\u03f5\u0002\u0002\u0f84\u0f85",
    "\u0007\u03fe\u0002\u0002\u0f85\u0f86\u0005\u0230\u0119\u0002\u0f86\u0f87",
    "\u0007\u03ff\u0002\u0002\u0f87\u0fa2\u0003\u0002\u0002\u0002\u0f88\u0f89",
    "\u0007\u01f6\u0002\u0002\u0f89\u0f8a\u0007\u03f5\u0002\u0002\u0f8a\u0f8b",
    "\u0007\u03fe\u0002\u0002\u0f8b\u0f8c\u0005\u023a\u011e\u0002\u0f8c\u0f8d",
    "\u0007\u03ff\u0002\u0002\u0f8d\u0fa2\u0003\u0002\u0002\u0002\u0f8e\u0f8f",
    "\u0007\u01f7\u0002\u0002\u0f8f\u0f90\u0007\u03f5\u0002\u0002\u0f90\u0f91",
    "\u0007\u03fe\u0002\u0002\u0f91\u0f92\u0005\u023a\u011e\u0002\u0f92\u0f93",
    "\u0007\u03ff\u0002\u0002\u0f93\u0fa2\u0003\u0002\u0002\u0002\u0f94\u0f95",
    "\u0007\u01f5\u0002\u0002\u0f95\u0f96\u0007\u03f5\u0002\u0002\u0f96\u0f97",
    "\u0007\u03fe\u0002\u0002\u0f97\u0f9c\u0005\u0140\u00a1\u0002\u0f98\u0f99",
    "\u0007\u0400\u0002\u0002\u0f99\u0f9b\u0005\u0140\u00a1\u0002\u0f9a\u0f98",
    "\u0003\u0002\u0002\u0002\u0f9b\u0f9e\u0003\u0002\u0002\u0002\u0f9c\u0f9a",
    "\u0003\u0002\u0002\u0002\u0f9c\u0f9d\u0003\u0002\u0002\u0002\u0f9d\u0f9f",
    "\u0003\u0002\u0002\u0002\u0f9e\u0f9c\u0003\u0002\u0002\u0002\u0f9f\u0fa0",
    "\u0007\u03ff\u0002\u0002\u0fa0\u0fa2\u0003\u0002\u0002\u0002\u0fa1\u0f70",
    "\u0003\u0002\u0002\u0002\u0fa1\u0f76\u0003\u0002\u0002\u0002\u0fa1\u0f7c",
    "\u0003\u0002\u0002\u0002\u0fa1\u0f82\u0003\u0002\u0002\u0002\u0fa1\u0f88",
    "\u0003\u0002\u0002\u0002\u0fa1\u0f8e\u0003\u0002\u0002\u0002\u0fa1\u0f94",
    "\u0003\u0002\u0002\u0002\u0fa2\u013f\u0003\u0002\u0002\u0002\u0fa3\u0fa4",
    "\u0007\u03fe\u0002\u0002\u0fa4\u0fa5\u0005\u01f6\u00fc\u0002\u0fa5\u0fa6",
    "\u0007\u0400\u0002\u0002\u0fa6\u0fa7\u0005\u01f6\u00fc\u0002\u0fa7\u0fa8",
    "\u0007\u03ff\u0002\u0002\u0fa8\u0141\u0003\u0002\u0002\u0002\u0fa9\u0faa",
    "\t7\u0002\u0002\u0faa\u0143\u0003\u0002\u0002\u0002\u0fab\u0fac\t8\u0002",
    "\u0002\u0fac\u0fad\u0007\u03f5\u0002\u0002\u0fad\u0fbe\u0005\u0148\u00a5",
    "\u0002\u0fae\u0faf\u0007\u019d\u0002\u0002\u0faf\u0fb0\u0007\u03f5\u0002",
    "\u0002\u0fb0\u0fb1\u0007\u040d\u0002\u0002\u0fb1\u0fb2\u0007\u0400\u0002",
    "\u0002\u0fb2\u0fb3\u0007\u019e\u0002\u0002\u0fb3\u0fb4\u0007\u03f5\u0002",
    "\u0002\u0fb4\u0fbe\u0005\u0214\u010b\u0002\u0fb5\u0fb6\u0007\u01eb\u0002",
    "\u0002\u0fb6\u0fb7\u0007\u03f5\u0002\u0002\u0fb7\u0fb8\u0007\u040d\u0002",
    "\u0002\u0fb8\u0fb9\u0007\u0400\u0002\u0002\u0fb9\u0fba\u0007\u01ec\u0002",
    "\u0002\u0fba\u0fbb\u0007\u03f5\u0002\u0002\u0fbb\u0fbe\u0005\u0214\u010b",
    "\u0002\u0fbc\u0fbe\u0007\u0216\u0002\u0002\u0fbd\u0fab\u0003\u0002\u0002",
    "\u0002\u0fbd\u0fae\u0003\u0002\u0002\u0002\u0fbd\u0fb5\u0003\u0002\u0002",
    "\u0002\u0fbd\u0fbc\u0003\u0002\u0002\u0002\u0fbe\u0145\u0003\u0002\u0002",
    "\u0002\u0fbf\u0fc0\u0007\u023e\u0002\u0002\u0fc0\u0fc1\u0007\u03f5\u0002",
    "\u0002\u0fc1\u0fcc\u0007\u040d\u0002\u0002\u0fc2\u0fc3\u0007\u01d6\u0002",
    "\u0002\u0fc3\u0fc4\u0007\u03f5\u0002\u0002\u0fc4\u0fcc\u0007\u040d\u0002",
    "\u0002\u0fc5\u0fc6\u0007\u0148\u0002\u0002\u0fc6\u0fc7\u0007\u03f5\u0002",
    "\u0002\u0fc7\u0fcc\u0007\u040d\u0002\u0002\u0fc8\u0fc9\u0007\u01d9\u0002",
    "\u0002\u0fc9\u0fca\u0007\u03f5\u0002\u0002\u0fca\u0fcc\u0007\u040d\u0002",
    "\u0002\u0fcb\u0fbf\u0003\u0002\u0002\u0002\u0fcb\u0fc2\u0003\u0002\u0002",
    "\u0002\u0fcb\u0fc5\u0003\u0002\u0002\u0002\u0fcb\u0fc8\u0003\u0002\u0002",
    "\u0002\u0fcc\u0147\u0003\u0002\u0002\u0002\u0fcd\u0fd2\u0005\u0206\u0104",
    "\u0002\u0fce\u0fcf\u0007\u0400\u0002\u0002\u0fcf\u0fd1\u0005\u0206\u0104",
    "\u0002\u0fd0\u0fce\u0003\u0002\u0002\u0002\u0fd1\u0fd4\u0003\u0002\u0002",
    "\u0002\u0fd2\u0fd0\u0003\u0002\u0002\u0002\u0fd2\u0fd3\u0003\u0002\u0002",
    "\u0002\u0fd3\u0fd7\u0003\u0002\u0002\u0002\u0fd4\u0fd2\u0003\u0002\u0002",
    "\u0002\u0fd5\u0fd7\u0007\u040d\u0002\u0002\u0fd6\u0fcd\u0003\u0002\u0002",
    "\u0002\u0fd6\u0fd5\u0003\u0002\u0002\u0002\u0fd7\u0149\u0003\u0002\u0002",
    "\u0002\u0fd8\u0fd9\u0007\u024d\u0002\u0002\u0fd9\u0fda\t9\u0002\u0002",
    "\u0fda\u0fdc\u0005\u0208\u0105\u0002\u0fdb\u0fdd\t:\u0002\u0002\u0fdc",
    "\u0fdb\u0003\u0002\u0002\u0002\u0fdc\u0fdd\u0003\u0002\u0002\u0002\u0fdd",
    "\u014b\u0003\u0002\u0002\u0002\u0fde\u0fdf\u0007\u024d\u0002\u0002\u0fdf",
    "\u0fe0\u0007\u0156\u0002\u0002\u0fe0\u0fe6\u0005\u0208\u0105\u0002\u0fe1",
    "\u0fe4\u0007\u022a\u0002\u0002\u0fe2\u0fe3\u0007<\u0002\u0002\u0fe3",
    "\u0fe5\u0007\u01b6\u0002\u0002\u0fe4\u0fe2\u0003\u0002\u0002\u0002\u0fe4",
    "\u0fe5\u0003\u0002\u0002\u0002\u0fe5\u0fe7\u0003\u0002\u0002\u0002\u0fe6",
    "\u0fe1\u0003\u0002\u0002\u0002\u0fe6\u0fe7\u0003\u0002\u0002\u0002\u0fe7",
    "\u014d\u0003\u0002\u0002\u0002\u0fe8\u0fe9\u0007\u024d\u0002\u0002\u0fe9",
    "\u0fea\u0007\u01dd\u0002\u0002\u0fea\u0feb\u0005\u0208\u0105\u0002\u0feb",
    "\u014f\u0003\u0002\u0002\u0002\u0fec\u0fed\u0007\u024d\u0002\u0002\u0fed",
    "\u0fee\u0007\u0134\u0002\u0002\u0fee\u0ff1\u0005\u0208\u0105\u0002\u0fef",
    "\u0ff0\u0007\u01c9\u0002\u0002\u0ff0\u0ff2\u0007\u01d7\u0002\u0002\u0ff1",
    "\u0fef\u0003\u0002\u0002\u0002\u0ff1\u0ff2\u0003\u0002\u0002\u0002\u0ff2",
    "\u0151\u0003\u0002\u0002\u0002\u0ff3\u0ff4\u0007\u024d\u0002\u0002\u0ff4",
    "\u0ff5\u0007\u01fe\u0002\u0002\u0ff5\u0ff6\u0005\u0208\u0105\u0002\u0ff6",
    "\u0153\u0003\u0002\u0002\u0002\u0ff7\u0ff8\u0007\u024d\u0002\u0002\u0ff8",
    "\u0ffb\u0007\u01e7\u0002\u0002\u0ff9\u0ffa\u0007\u001f\u0002\u0002\u0ffa",
    "\u0ffc\u0005\u0208\u0105\u0002\u0ffb\u0ff9\u0003\u0002\u0002\u0002\u0ffb",
    "\u0ffc\u0003\u0002\u0002\u0002\u0ffc\u0155\u0003\u0002\u0002\u0002\u0ffd",
    "\u0ffe\u0007\u01dd\u0002\u0002\u0ffe\u0fff\u0005\u020e\u0108\u0002\u0fff",
    "\u1002\u0007?\u0002\u0002\u1000\u1003\u0007\u040d\u0002\u0002\u1001",
    "\u1003\u0007\u0418\u0002\u0002\u1002\u1000\u0003\u0002\u0002\u0002\u1002",
    "\u1001\u0003\u0002\u0002\u0002\u1003\u0157\u0003\u0002\u0002\u0002\u1004",
    "\u1005\u0007\u025e\u0002\u0002\u1005\u1008\u0005\u020e\u0108\u0002\u1006",
    "\u1007\u0007\u00ab\u0002\u0002\u1007\u1009\u0005\u023c\u011f\u0002\u1008",
    "\u1006\u0003\u0002\u0002\u0002\u1008\u1009\u0003\u0002\u0002\u0002\u1009",
    "\u0159\u0003\u0002\u0002\u0002\u100a\u100b\t;\u0002\u0002\u100b\u100c",
    "\u0007\u01dd\u0002\u0002\u100c\u100d\u0005\u020e\u0108\u0002\u100d\u015b",
    "\u0003\u0002\u0002\u0002\u100e\u1011\u0005\u015e\u00b0\u0002\u100f\u1011",
    "\u0005\b\u0005\u0002\u1010\u100e\u0003\u0002\u0002\u0002\u1010\u100f",
    "\u0003\u0002\u0002\u0002\u1011\u015d\u0003\u0002\u0002\u0002\u1012\u1013",
    "\u0005\u020e\u0108\u0002\u1013\u1014\u0007\u0409\u0002\u0002\u1014\u1016",
    "\u0003\u0002\u0002\u0002\u1015\u1012\u0003\u0002\u0002\u0002\u1015\u1016",
    "\u0003\u0002\u0002\u0002\u1016\u1017\u0003\u0002\u0002\u0002\u1017\u103e",
    "\u0007\u011c\u0002\u0002\u1018\u1019\u0005\u0172\u00ba\u0002\u1019\u101a",
    "\u0007\u0401\u0002\u0002\u101a\u101c\u0003\u0002\u0002\u0002\u101b\u1018",
    "\u0003\u0002\u0002\u0002\u101c\u101f\u0003\u0002\u0002\u0002\u101d\u101b",
    "\u0003\u0002\u0002\u0002\u101d\u101e\u0003\u0002\u0002\u0002\u101e\u1025",
    "\u0003\u0002\u0002\u0002\u101f\u101d\u0003\u0002\u0002\u0002\u1020\u1021",
    "\u0005\u0174\u00bb\u0002\u1021\u1022\u0007\u0401\u0002\u0002\u1022\u1024",
    "\u0003\u0002\u0002\u0002\u1023\u1020\u0003\u0002\u0002\u0002\u1024\u1027",
    "\u0003\u0002\u0002\u0002\u1025\u1023\u0003\u0002\u0002\u0002\u1025\u1026",
    "\u0003\u0002\u0002\u0002\u1026\u102d\u0003\u0002\u0002\u0002\u1027\u1025",
    "\u0003\u0002\u0002\u0002\u1028\u1029\u0005\u0176\u00bc\u0002\u1029\u102a",
    "\u0007\u0401\u0002\u0002\u102a\u102c\u0003\u0002\u0002\u0002\u102b\u1028",
    "\u0003\u0002\u0002\u0002\u102c\u102f\u0003\u0002\u0002\u0002\u102d\u102b",
    "\u0003\u0002\u0002\u0002\u102d\u102e\u0003\u0002\u0002\u0002\u102e\u1035",
    "\u0003\u0002\u0002\u0002\u102f\u102d\u0003\u0002\u0002\u0002\u1030\u1031",
    "\u0005\u0178\u00bd\u0002\u1031\u1032\u0007\u0401\u0002\u0002\u1032\u1034",
    "\u0003\u0002\u0002\u0002\u1033\u1030\u0003\u0002\u0002\u0002\u1034\u1037",
    "\u0003\u0002\u0002\u0002\u1035\u1033\u0003\u0002\u0002\u0002\u1035\u1036",
    "\u0003\u0002\u0002\u0002\u1036\u103b\u0003\u0002\u0002\u0002\u1037\u1035",
    "\u0003\u0002\u0002\u0002\u1038\u103a\u0005\u017c\u00bf\u0002\u1039\u1038",
    "\u0003\u0002\u0002\u0002\u103a\u103d\u0003\u0002\u0002\u0002\u103b\u1039",
    "\u0003\u0002\u0002\u0002\u103b\u103c\u0003\u0002\u0002\u0002\u103c\u103f",
    "\u0003\u0002\u0002\u0002\u103d\u103b\u0003\u0002\u0002\u0002\u103e\u101d",
    "\u0003\u0002\u0002\u0002\u103e\u103f\u0003\u0002\u0002\u0002\u103f\u1040",
    "\u0003\u0002\u0002\u0002\u1040\u1042\u0007\u0156\u0002\u0002\u1041\u1043",
    "\u0005\u020e\u0108\u0002\u1042\u1041\u0003\u0002\u0002\u0002\u1042\u1043",
    "\u0003\u0002\u0002\u0002\u1043\u015f\u0003\u0002\u0002\u0002\u1044\u1047",
    "\u0007\u0015\u0002\u0002\u1045\u1048\u0005\u020e\u0108\u0002\u1046\u1048",
    "\u0005\u025c\u012f\u0002\u1047\u1045\u0003\u0002\u0002\u0002\u1047\u1046",
    "\u0003\u0002\u0002\u0002\u1047\u1048\u0003\u0002\u0002\u0002\u1048\u104a",
    "\u0003\u0002\u0002\u0002\u1049\u104b\u0005\u017e\u00c0\u0002\u104a\u1049",
    "\u0003\u0002\u0002\u0002\u104b\u104c\u0003\u0002\u0002\u0002\u104c\u104a",
    "\u0003\u0002\u0002\u0002\u104c\u104d\u0003\u0002\u0002\u0002\u104d\u1054",
    "\u0003\u0002\u0002\u0002\u104e\u1050\u00073\u0002\u0002\u104f\u1051",
    "\u0005\u017c\u00bf\u0002\u1050\u104f\u0003\u0002\u0002\u0002\u1051\u1052",
    "\u0003\u0002\u0002\u0002\u1052\u1050\u0003\u0002\u0002\u0002\u1052\u1053",
    "\u0003\u0002\u0002\u0002\u1053\u1055\u0003\u0002\u0002\u0002\u1054\u104e",
    "\u0003\u0002\u0002\u0002\u1054\u1055\u0003\u0002\u0002\u0002\u1055\u1056",
    "\u0003\u0002\u0002\u0002\u1056\u1057\u0007\u0156\u0002\u0002\u1057\u1058",
    "\u0007\u0015\u0002\u0002\u1058\u0161\u0003\u0002\u0002\u0002\u1059\u105a",
    "\u0007G\u0002\u0002\u105a\u105b\u0005\u025c\u012f\u0002\u105b\u105d",
    "\u0007\u009e\u0002\u0002\u105c\u105e\u0005\u017c\u00bf\u0002\u105d\u105c",
    "\u0003\u0002\u0002\u0002\u105e\u105f\u0003\u0002\u0002\u0002\u105f\u105d",
    "\u0003\u0002\u0002\u0002\u105f\u1060\u0003\u0002\u0002\u0002\u1060\u1064",
    "\u0003\u0002\u0002\u0002\u1061\u1063\u0005\u0180\u00c1\u0002\u1062\u1061",
    "\u0003\u0002\u0002\u0002\u1063\u1066\u0003\u0002\u0002\u0002\u1064\u1062",
    "\u0003\u0002\u0002\u0002\u1064\u1065\u0003\u0002\u0002\u0002\u1065\u106d",
    "\u0003\u0002\u0002\u0002\u1066\u1064\u0003\u0002\u0002\u0002\u1067\u1069",
    "\u00073\u0002\u0002\u1068\u106a\u0005\u017c\u00bf\u0002\u1069\u1068",
    "\u0003\u0002\u0002\u0002\u106a\u106b\u0003\u0002\u0002\u0002\u106b\u1069",
    "\u0003\u0002\u0002\u0002\u106b\u106c\u0003\u0002\u0002\u0002\u106c\u106e",
    "\u0003\u0002\u0002\u0002\u106d\u1067\u0003\u0002\u0002\u0002\u106d\u106e",
    "\u0003\u0002\u0002\u0002\u106e\u106f\u0003\u0002\u0002\u0002\u106f\u1070",
    "\u0007\u0156\u0002\u0002\u1070\u1071\u0007G\u0002\u0002\u1071\u0163",
    "\u0003\u0002\u0002\u0002\u1072\u1073\u0007R\u0002\u0002\u1073\u1074",
    "\u0005\u020e\u0108\u0002\u1074\u0165\u0003\u0002\u0002\u0002\u1075\u1076",
    "\u0007X\u0002\u0002\u1076\u1077\u0005\u020e\u0108\u0002\u1077\u0167",
    "\u0003\u0002\u0002\u0002\u1078\u1079\u0005\u020e\u0108\u0002\u1079\u107a",
    "\u0007\u0409\u0002\u0002\u107a\u107c\u0003\u0002\u0002\u0002\u107b\u1078",
    "\u0003\u0002\u0002\u0002\u107b\u107c\u0003\u0002\u0002\u0002\u107c\u107d",
    "\u0003\u0002\u0002\u0002\u107d\u107f\u0007`\u0002\u0002\u107e\u1080",
    "\u0005\u017c\u00bf\u0002\u107f\u107e\u0003\u0002\u0002\u0002\u1080\u1081",
    "\u0003\u0002\u0002\u0002\u1081\u107f\u0003\u0002\u0002\u0002\u1081\u1082",
    "\u0003\u0002\u0002\u0002\u1082\u1083\u0003\u0002\u0002\u0002\u1083\u1084",
    "\u0007\u0156\u0002\u0002\u1084\u1086\u0007`\u0002\u0002\u1085\u1087",
    "\u0005\u020e\u0108\u0002\u1086\u1085\u0003\u0002\u0002\u0002\u1086\u1087",
    "\u0003\u0002\u0002\u0002\u1087\u0169\u0003\u0002\u0002\u0002\u1088\u1089",
    "\u0005\u020e\u0108\u0002\u1089\u108a\u0007\u0409\u0002\u0002\u108a\u108c",
    "\u0003\u0002\u0002\u0002\u108b\u1088\u0003\u0002\u0002\u0002\u108b\u108c",
    "\u0003\u0002\u0002\u0002\u108c\u108d\u0003\u0002\u0002\u0002\u108d\u108f",
    "\u0007\u0080\u0002\u0002\u108e\u1090\u0005\u017c\u00bf\u0002\u108f\u108e",
    "\u0003\u0002\u0002\u0002\u1090\u1091\u0003\u0002\u0002\u0002\u1091\u108f",
    "\u0003\u0002\u0002\u0002\u1091\u1092\u0003\u0002\u0002\u0002\u1092\u1093",
    "\u0003\u0002\u0002\u0002\u1093\u1094\u0007\u023c\u0002\u0002\u1094\u1095",
    "\u0005\u025c\u012f\u0002\u1095\u1096\u0007\u0156\u0002\u0002\u1096\u1098",
    "\u0007\u0080\u0002\u0002\u1097\u1099\u0005\u020e\u0108\u0002\u1098\u1097",
    "\u0003\u0002\u0002\u0002\u1098\u1099\u0003\u0002\u0002\u0002\u1099\u016b",
    "\u0003\u0002\u0002\u0002\u109a\u109b\u0007\u0085\u0002\u0002\u109b\u109c",
    "\u0005\u025c\u012f\u0002\u109c\u016d\u0003\u0002\u0002\u0002\u109d\u109e",
    "\u0005\u020e\u0108\u0002\u109e\u109f\u0007\u0409\u0002\u0002\u109f\u10a1",
    "\u0003\u0002\u0002\u0002\u10a0\u109d\u0003\u0002\u0002\u0002\u10a0\u10a1",
    "\u0003\u0002\u0002\u0002\u10a1\u10a2\u0003\u0002\u0002\u0002\u10a2\u10a3",
    "\u0007\u00af\u0002\u0002\u10a3\u10a4\u0005\u025c\u012f\u0002\u10a4\u10a6",
    "\u0007\u0150\u0002\u0002\u10a5\u10a7\u0005\u017c\u00bf\u0002\u10a6\u10a5",
    "\u0003\u0002\u0002\u0002\u10a7\u10a8\u0003\u0002\u0002\u0002\u10a8\u10a6",
    "\u0003\u0002\u0002\u0002\u10a8\u10a9\u0003\u0002\u0002\u0002\u10a9\u10aa",
    "\u0003\u0002\u0002\u0002\u10aa\u10ab\u0007\u0156\u0002\u0002\u10ab\u10ad",
    "\u0007\u00af\u0002\u0002\u10ac\u10ae\u0005\u020e\u0108\u0002\u10ad\u10ac",
    "\u0003\u0002\u0002\u0002\u10ad\u10ae\u0003\u0002\u0002\u0002\u10ae\u016f",
    "\u0003\u0002\u0002\u0002\u10af\u10b0\u0007\u012d\u0002\u0002\u10b0\u10bf",
    "\u0005\u020e\u0108\u0002\u10b1\u10b6\u0007;\u0002\u0002\u10b2\u10b4",
    "\u0007\u01c1\u0002\u0002\u10b3\u10b2\u0003\u0002\u0002\u0002\u10b3\u10b4",
    "\u0003\u0002\u0002\u0002\u10b4\u10b5\u0003\u0002\u0002\u0002\u10b5\u10b7",
    "\u0007?\u0002\u0002\u10b6\u10b3\u0003\u0002\u0002\u0002\u10b6\u10b7",
    "\u0003\u0002\u0002\u0002\u10b7\u10b8\u0003\u0002\u0002\u0002\u10b8\u10b9",
    "\u0005\u020e\u0108\u0002\u10b9\u10ba\u0007P\u0002\u0002\u10ba\u10bb",
    "\u0005\u022e\u0118\u0002\u10bb\u10bf\u0003\u0002\u0002\u0002\u10bc\u10bd",
    "\u0007\u01cc\u0002\u0002\u10bd\u10bf\u0005\u020e\u0108\u0002\u10be\u10af",
    "\u0003\u0002\u0002\u0002\u10be\u10b1\u0003\u0002\u0002\u0002\u10be\u10bc",
    "\u0003\u0002\u0002\u0002\u10bf\u0171\u0003\u0002\u0002\u0002\u10c0\u10c1",
    "\u0007\'\u0002\u0002\u10c1\u10c2\u0005\u022e\u0118\u0002\u10c2\u10c5",
    "\u0005\u0222\u0112\u0002\u10c3\u10c4\u0007(\u0002\u0002\u10c4\u10c6",
    "\u0005\u023e\u0120\u0002\u10c5\u10c3\u0003\u0002\u0002\u0002\u10c5\u10c6",
    "\u0003\u0002\u0002\u0002\u10c6\u0173\u0003\u0002\u0002\u0002\u10c7\u10c8",
    "\u0007\'\u0002\u0002\u10c8\u10c9\u0005\u020e\u0108\u0002\u10c9\u10ca",
    "\u0007\u001c\u0002\u0002\u10ca\u10d1\u0007<\u0002\u0002\u10cb\u10d2",
    "\u0005\u0214\u010b\u0002\u10cc\u10ce\u0007\u0093\u0002\u0002\u10cd\u10cf",
    "\u0007\u0242\u0002\u0002\u10ce\u10cd\u0003\u0002\u0002\u0002\u10ce\u10cf",
    "\u0003\u0002\u0002\u0002\u10cf\u10d0\u0003\u0002\u0002\u0002\u10d0\u10d2",
    "\u0007\u040d\u0002\u0002\u10d1\u10cb\u0003\u0002\u0002\u0002\u10d1\u10cc",
    "\u0003\u0002\u0002\u0002\u10d2\u0175\u0003\u0002\u0002\u0002\u10d3\u10d4",
    "\u0007\'\u0002\u0002\u10d4\u10d5\u0005\u020e\u0108\u0002\u10d5\u10d6",
    "\u0007$\u0002\u0002\u10d6\u10d7\u0007<\u0002\u0002\u10d7\u10d8\u0005",
    "\u00b6\\\u0002\u10d8\u0177\u0003\u0002\u0002\u0002\u10d9\u10da\u0007",
    "\'\u0002\u0002\u10da\u10db\t<\u0002\u0002\u10db\u10dc\u0007\u0177\u0002",
    "\u0002\u10dc\u10dd\u0007<\u0002\u0002\u10dd\u10e2\u0005\u017a\u00be",
    "\u0002\u10de\u10df\u0007\u0400\u0002\u0002\u10df\u10e1\u0005\u017a\u00be",
    "\u0002\u10e0\u10de\u0003\u0002\u0002\u0002\u10e1\u10e4\u0003\u0002\u0002",
    "\u0002\u10e2\u10e0\u0003\u0002\u0002\u0002\u10e2\u10e3\u0003\u0002\u0002",
    "\u0002\u10e3\u10e5\u0003\u0002\u0002\u0002\u10e4\u10e2\u0003\u0002\u0002",
    "\u0002\u10e5\u10e6\u0005\u015c\u00af\u0002\u10e6\u0179\u0003\u0002\u0002",
    "\u0002\u10e7\u10f3\u0005\u0214\u010b\u0002\u10e8\u10ea\u0007\u0093\u0002",
    "\u0002\u10e9\u10eb\u0007\u0242\u0002\u0002\u10ea\u10e9\u0003\u0002\u0002",
    "\u0002\u10ea\u10eb\u0003\u0002\u0002\u0002\u10eb\u10ec\u0003\u0002\u0002",
    "\u0002\u10ec\u10f3\u0007\u040d\u0002\u0002\u10ed\u10f3\u0005\u020e\u0108",
    "\u0002\u10ee\u10f3\u0007\u0094\u0002\u0002\u10ef\u10f0\u0007h\u0002",
    "\u0002\u10f0\u10f3\u0007\u0170\u0002\u0002\u10f1\u10f3\u0007\u0092\u0002",
    "\u0002\u10f2\u10e7\u0003\u0002\u0002\u0002\u10f2\u10e8\u0003\u0002\u0002",
    "\u0002\u10f2\u10ed\u0003\u0002\u0002\u0002\u10f2\u10ee\u0003\u0002\u0002",
    "\u0002\u10f2\u10ef\u0003\u0002\u0002\u0002\u10f2\u10f1\u0003\u0002\u0002",
    "\u0002\u10f3\u017b\u0003\u0002\u0002\u0002\u10f4\u10f7\u0005\u0016\f",
    "\u0002\u10f5\u10f7\u0005\b\u0005\u0002\u10f6\u10f4\u0003\u0002\u0002",
    "\u0002\u10f6\u10f5\u0003\u0002\u0002\u0002\u10f7\u10f8\u0003\u0002\u0002",
    "\u0002\u10f8\u10f9\u0007\u0401\u0002\u0002\u10f9\u017d\u0003\u0002\u0002",
    "\u0002\u10fa\u10fd\u0007\u00ad\u0002\u0002\u10fb\u10fe\u0005\u0220\u0111",
    "\u0002\u10fc\u10fe\u0005\u025c\u012f\u0002\u10fd\u10fb\u0003\u0002\u0002",
    "\u0002\u10fd\u10fc\u0003\u0002\u0002\u0002\u10fe\u10ff\u0003\u0002\u0002",
    "\u0002\u10ff\u1101\u0007\u009e\u0002\u0002\u1100\u1102\u0005\u017c\u00bf",
    "\u0002\u1101\u1100\u0003\u0002\u0002\u0002\u1102\u1103\u0003\u0002\u0002",
    "\u0002\u1103\u1101\u0003\u0002\u0002\u0002\u1103\u1104\u0003\u0002\u0002",
    "\u0002\u1104\u017f\u0003\u0002\u0002\u0002\u1105\u1106\u00074\u0002",
    "\u0002\u1106\u1107\u0005\u025c\u012f\u0002\u1107\u1109\u0007\u009e\u0002",
    "\u0002\u1108\u110a\u0005\u017c\u00bf\u0002\u1109\u1108\u0003\u0002\u0002",
    "\u0002\u110a\u110b\u0003\u0002\u0002\u0002\u110b\u1109\u0003\u0002\u0002",
    "\u0002\u110b\u110c\u0003\u0002\u0002\u0002\u110c\u0181\u0003\u0002\u0002",
    "\u0002\u110d\u110e\u0007\t\u0002\u0002\u110e\u110f\u0007\u023e\u0002",
    "\u0002\u110f\u1114\u0005\u0194\u00cb\u0002\u1110\u1111\u0007\u0400\u0002",
    "\u0002\u1111\u1113\u0005\u0194\u00cb\u0002\u1112\u1110\u0003\u0002\u0002",
    "\u0002\u1113\u1116\u0003\u0002\u0002\u0002\u1114\u1112\u0003\u0002\u0002",
    "\u0002\u1114\u1115\u0003\u0002\u0002\u0002\u1115\u1144\u0003\u0002\u0002",
    "\u0002\u1116\u1114\u0003\u0002\u0002\u0002\u1117\u1118\u0007\t\u0002",
    "\u0002\u1118\u111a\u0007\u023e\u0002\u0002\u1119\u111b\u0005\u0244\u0123",
    "\u0002\u111a\u1119\u0003\u0002\u0002\u0002\u111a\u111b\u0003\u0002\u0002",
    "\u0002\u111b\u111c\u0003\u0002\u0002\u0002\u111c\u1121\u0005\u0196\u00cc",
    "\u0002\u111d\u111e\u0007\u0400\u0002\u0002\u111e\u1120\u0005\u0196\u00cc",
    "\u0002\u111f\u111d\u0003\u0002\u0002\u0002\u1120\u1123\u0003\u0002\u0002",
    "\u0002\u1121\u111f\u0003\u0002\u0002\u0002\u1121\u1122\u0003\u0002\u0002",
    "\u0002\u1122\u1132\u0003\u0002\u0002\u0002\u1123\u1121\u0003\u0002\u0002",
    "\u0002\u1124\u1130\u0007\u0082\u0002\u0002\u1125\u1131\u0007\u01c4\u0002",
    "\u0002\u1126\u112d\u0005\u0198\u00cd\u0002\u1127\u1129\u0007\f\u0002",
    "\u0002\u1128\u1127\u0003\u0002\u0002\u0002\u1128\u1129\u0003\u0002\u0002",
    "\u0002\u1129\u112a\u0003\u0002\u0002\u0002\u112a\u112c\u0005\u0198\u00cd",
    "\u0002\u112b\u1128\u0003\u0002\u0002\u0002\u112c\u112f\u0003\u0002\u0002",
    "\u0002\u112d\u112b\u0003\u0002\u0002\u0002\u112d\u112e\u0003\u0002\u0002",
    "\u0002\u112e\u1131\u0003\u0002\u0002\u0002\u112f\u112d\u0003\u0002\u0002",
    "\u0002\u1130\u1125\u0003\u0002\u0002\u0002\u1130\u1126\u0003\u0002\u0002",
    "\u0002\u1131\u1133\u0003\u0002\u0002\u0002\u1132\u1124\u0003\u0002\u0002",
    "\u0002\u1132\u1133\u0003\u0002\u0002\u0002\u1133\u113a\u0003\u0002\u0002",
    "\u0002\u1134\u1136\u0007\u00b0\u0002\u0002\u1135\u1137\u0005\u019a\u00ce",
    "\u0002\u1136\u1135\u0003\u0002\u0002\u0002\u1137\u1138\u0003\u0002\u0002",
    "\u0002\u1138\u1136\u0003\u0002\u0002\u0002\u1138\u1139\u0003\u0002\u0002",
    "\u0002\u1139\u113b\u0003\u0002\u0002\u0002\u113a\u1134\u0003\u0002\u0002",
    "\u0002\u113a\u113b\u0003\u0002\u0002\u0002\u113b\u1140\u0003\u0002\u0002",
    "\u0002\u113c\u113f\u0005\u019c\u00cf\u0002\u113d\u113f\u0005\u019e\u00d0",
    "\u0002\u113e\u113c\u0003\u0002\u0002\u0002\u113e\u113d\u0003\u0002\u0002",
    "\u0002\u113f\u1142\u0003\u0002\u0002\u0002\u1140\u113e\u0003\u0002\u0002",
    "\u0002\u1140\u1141\u0003\u0002\u0002\u0002\u1141\u1144\u0003\u0002\u0002",
    "\u0002\u1142\u1140\u0003\u0002\u0002\u0002\u1143\u110d\u0003\u0002\u0002",
    "\u0002\u1143\u1117\u0003\u0002\u0002\u0002\u1144\u0183\u0003\u0002\u0002",
    "\u0002\u1145\u1146\u0007 \u0002\u0002\u1146\u1147\u0007\u023e\u0002",
    "\u0002\u1147\u114c\u0005\u0196\u00cc\u0002\u1148\u1149\u0007\u0400\u0002",
    "\u0002\u1149\u114b\u0005\u0196\u00cc\u0002\u114a\u1148\u0003\u0002\u0002",
    "\u0002\u114b\u114e\u0003\u0002\u0002\u0002\u114c\u114a\u0003\u0002\u0002",
    "\u0002\u114c\u114d\u0003\u0002\u0002\u0002\u114d\u117c\u0003\u0002\u0002",
    "\u0002\u114e\u114c\u0003\u0002\u0002\u0002\u114f\u1150\u0007 \u0002",
    "\u0002\u1150\u1152\u0007\u023e\u0002\u0002\u1151\u1153\u0005\u0246\u0124",
    "\u0002\u1152\u1151\u0003\u0002\u0002\u0002\u1152\u1153\u0003\u0002\u0002",
    "\u0002\u1153\u1154\u0003\u0002\u0002\u0002\u1154\u1159\u0005\u0196\u00cc",
    "\u0002\u1155\u1156\u0007\u0400\u0002\u0002\u1156\u1158\u0005\u0196\u00cc",
    "\u0002\u1157\u1155\u0003\u0002\u0002\u0002\u1158\u115b\u0003\u0002\u0002",
    "\u0002\u1159\u1157\u0003\u0002\u0002\u0002\u1159\u115a\u0003\u0002\u0002",
    "\u0002\u115a\u116a\u0003\u0002\u0002\u0002\u115b\u1159\u0003\u0002\u0002",
    "\u0002\u115c\u1168\u0007\u0082\u0002\u0002\u115d\u1169\u0007\u01c4\u0002",
    "\u0002\u115e\u1165\u0005\u0198\u00cd\u0002\u115f\u1161\u0007\f\u0002",
    "\u0002\u1160\u115f\u0003\u0002\u0002\u0002\u1160\u1161\u0003\u0002\u0002",
    "\u0002\u1161\u1162\u0003\u0002\u0002\u0002\u1162\u1164\u0005\u0198\u00cd",
    "\u0002\u1163\u1160\u0003\u0002\u0002\u0002\u1164\u1167\u0003\u0002\u0002",
    "\u0002\u1165\u1163\u0003\u0002\u0002\u0002\u1165\u1166\u0003\u0002\u0002",
    "\u0002\u1166\u1169\u0003\u0002\u0002\u0002\u1167\u1165\u0003\u0002\u0002",
    "\u0002\u1168\u115d\u0003\u0002\u0002\u0002\u1168\u115e\u0003\u0002\u0002",
    "\u0002\u1169\u116b\u0003\u0002\u0002\u0002\u116a\u115c\u0003\u0002\u0002",
    "\u0002\u116a\u116b\u0003\u0002\u0002\u0002\u116b\u1172\u0003\u0002\u0002",
    "\u0002\u116c\u116e\u0007\u00b0\u0002\u0002\u116d\u116f\u0005\u019a\u00ce",
    "\u0002\u116e\u116d\u0003\u0002\u0002\u0002\u116f\u1170\u0003\u0002\u0002",
    "\u0002\u1170\u116e\u0003\u0002\u0002\u0002\u1170\u1171\u0003\u0002\u0002",
    "\u0002\u1171\u1173\u0003\u0002\u0002\u0002\u1172\u116c\u0003\u0002\u0002",
    "\u0002\u1172\u1173\u0003\u0002\u0002\u0002\u1173\u1178\u0003\u0002\u0002",
    "\u0002\u1174\u1177\u0005\u019c\u00cf\u0002\u1175\u1177\u0005\u019e\u00d0",
    "\u0002\u1176\u1174\u0003\u0002\u0002\u0002\u1176\u1175\u0003\u0002\u0002",
    "\u0002\u1177\u117a\u0003\u0002\u0002\u0002\u1178\u1176\u0003\u0002\u0002",
    "\u0002\u1178\u1179\u0003\u0002\u0002\u0002\u1179\u117c\u0003\u0002\u0002",
    "\u0002\u117a\u1178\u0003\u0002\u0002\u0002\u117b\u1145\u0003\u0002\u0002",
    "\u0002\u117b\u114f\u0003\u0002\u0002\u0002\u117c\u0185\u0003\u0002\u0002",
    "\u0002\u117d\u117e\u00071\u0002\u0002\u117e\u1180\u0007\u023e\u0002",
    "\u0002\u117f\u1181\u0005\u0244\u0123\u0002\u1180\u117f\u0003\u0002\u0002",
    "\u0002\u1180\u1181\u0003\u0002\u0002\u0002\u1181\u1182\u0003\u0002\u0002",
    "\u0002\u1182\u1187\u0005\u01fc\u00ff\u0002\u1183\u1184\u0007\u0400\u0002",
    "\u0002\u1184\u1186\u0005\u01fc\u00ff\u0002\u1185\u1183\u0003\u0002\u0002",
    "\u0002\u1186\u1189\u0003\u0002\u0002\u0002\u1187\u1185\u0003\u0002\u0002",
    "\u0002\u1187\u1188\u0003\u0002\u0002\u0002\u1188\u0187\u0003\u0002\u0002",
    "\u0002\u1189\u1187\u0003\u0002\u0002\u0002\u118a\u118b\u0007C\u0002",
    "\u0002\u118b\u1190\u0005\u01a0\u00d1\u0002\u118c\u118d\u0007\u0400\u0002",
    "\u0002\u118d\u118f\u0005\u01a0\u00d1\u0002\u118e\u118c\u0003\u0002\u0002",
    "\u0002\u118f\u1192\u0003\u0002\u0002\u0002\u1190\u118e\u0003\u0002\u0002",
    "\u0002\u1190\u1191\u0003\u0002\u0002\u0002\u1191\u1193\u0003\u0002\u0002",
    "\u0002\u1192\u1190\u0003\u0002\u0002\u0002\u1193\u1195\u0007l\u0002",
    "\u0002\u1194\u1196\t=\u0002\u0002\u1195\u1194\u0003\u0002\u0002\u0002",
    "\u1195\u1196\u0003\u0002\u0002\u0002\u1196\u1197\u0003\u0002\u0002\u0002",
    "\u1197\u1198\u0005\u01a4\u00d3\u0002\u1198\u1199\u0007\u009f\u0002\u0002",
    "\u1199\u119e\u0005\u0196\u00cc\u0002\u119a\u119b\u0007\u0400\u0002\u0002",
    "\u119b\u119d\u0005\u0196\u00cc\u0002\u119c\u119a\u0003\u0002\u0002\u0002",
    "\u119d\u11a0\u0003\u0002\u0002\u0002\u119e\u119c\u0003\u0002\u0002\u0002",
    "\u119e\u119f\u0003\u0002\u0002\u0002\u119f\u11af\u0003\u0002\u0002\u0002",
    "\u11a0\u119e\u0003\u0002\u0002\u0002\u11a1\u11ad\u0007\u0082\u0002\u0002",
    "\u11a2\u11ae\u0007\u01c4\u0002\u0002\u11a3\u11aa\u0005\u0198\u00cd\u0002",
    "\u11a4\u11a6\u0007\f\u0002\u0002\u11a5\u11a4\u0003\u0002\u0002\u0002",
    "\u11a5\u11a6\u0003\u0002\u0002\u0002\u11a6\u11a7\u0003\u0002\u0002\u0002",
    "\u11a7\u11a9\u0005\u0198\u00cd\u0002\u11a8\u11a5\u0003\u0002\u0002\u0002",
    "\u11a9\u11ac\u0003\u0002\u0002\u0002\u11aa\u11a8\u0003\u0002\u0002\u0002",
    "\u11aa\u11ab\u0003\u0002\u0002\u0002\u11ab\u11ae\u0003\u0002\u0002\u0002",
    "\u11ac\u11aa\u0003\u0002\u0002\u0002\u11ad\u11a2\u0003\u0002\u0002\u0002",
    "\u11ad\u11a3\u0003\u0002\u0002\u0002\u11ae\u11b0\u0003\u0002\u0002\u0002",
    "\u11af\u11a1\u0003\u0002\u0002\u0002\u11af\u11b0\u0003\u0002\u0002\u0002",
    "\u11b0\u11ba\u0003\u0002\u0002\u0002\u11b1\u11b7\u0007\u00b0\u0002\u0002",
    "\u11b2\u11b3\u0007C\u0002\u0002\u11b3\u11b6\u0007n\u0002\u0002\u11b4",
    "\u11b6\u0005\u019a\u00ce\u0002\u11b5\u11b2\u0003\u0002\u0002\u0002\u11b5",
    "\u11b4\u0003\u0002\u0002\u0002\u11b6\u11b9\u0003\u0002\u0002\u0002\u11b7",
    "\u11b5\u0003\u0002\u0002\u0002\u11b7\u11b8\u0003\u0002\u0002\u0002\u11b8",
    "\u11bb\u0003\u0002\u0002\u0002\u11b9\u11b7\u0003\u0002\u0002\u0002\u11ba",
    "\u11b1\u0003\u0002\u0002\u0002\u11ba\u11bb\u0003\u0002\u0002\u0002\u11bb",
    "\u0189\u0003\u0002\u0002\u0002\u11bc\u11bd\u0007C\u0002\u0002\u11bd",
    "\u11be\u0007\u01e3\u0002\u0002\u11be\u11bf\u0007l\u0002\u0002\u11bf",
    "\u11c0\u0005\u01fc\u00ff\u0002\u11c0\u11c1\u0007\u009f\u0002\u0002\u11c1",
    "\u11c6\u0005\u01fc\u00ff\u0002\u11c2\u11c3\u0007\u0400\u0002\u0002\u11c3",
    "\u11c5\u0005\u01fc\u00ff\u0002\u11c4\u11c2\u0003\u0002\u0002\u0002\u11c5",
    "\u11c8\u0003\u0002\u0002\u0002\u11c6\u11c4\u0003\u0002\u0002\u0002\u11c6",
    "\u11c7\u0003\u0002\u0002\u0002\u11c7\u11cc\u0003\u0002\u0002\u0002\u11c8",
    "\u11c6\u0003\u0002\u0002\u0002\u11c9\u11ca\u0007\u00b0\u0002\u0002\u11ca",
    "\u11cb\u0007C\u0002\u0002\u11cb\u11cd\u0007n\u0002\u0002\u11cc\u11c9",
    "\u0003\u0002\u0002\u0002\u11cc\u11cd\u0003\u0002\u0002\u0002\u11cd\u018b",
    "\u0003\u0002\u0002\u0002\u11ce\u11cf\u0007\u007f\u0002\u0002\u11cf\u11d0",
    "\u0007\u023e\u0002\u0002\u11d0\u11d5\u0005\u01a6\u00d4\u0002\u11d1\u11d2",
    "\u0007\u0400\u0002\u0002\u11d2\u11d4\u0005\u01a6\u00d4\u0002\u11d3\u11d1",
    "\u0003\u0002\u0002\u0002\u11d4\u11d7\u0003\u0002\u0002\u0002\u11d5\u11d3",
    "\u0003\u0002\u0002\u0002\u11d5\u11d6\u0003\u0002\u0002\u0002\u11d6\u018d",
    "\u0003\u0002\u0002\u0002\u11d7\u11d5\u0003\u0002\u0002\u0002\u11d8\u11d9",
    "\u0007\u0086\u0002\u0002\u11d9\u11de\u0005\u01a0\u00d1\u0002\u11da\u11db",
    "\u0007\u0400\u0002\u0002\u11db\u11dd\u0005\u01a0\u00d1\u0002\u11dc\u11da",
    "\u0003\u0002\u0002\u0002\u11dd\u11e0\u0003\u0002\u0002\u0002\u11de\u11dc",
    "\u0003\u0002\u0002\u0002\u11de\u11df\u0003\u0002\u0002\u0002\u11df\u11e1",
    "\u0003\u0002\u0002\u0002\u11e0\u11de\u0003\u0002\u0002\u0002\u11e1\u11e3",
    "\u0007l\u0002\u0002\u11e2\u11e4\t=\u0002\u0002\u11e3\u11e2\u0003\u0002",
    "\u0002\u0002\u11e3\u11e4\u0003\u0002\u0002\u0002\u11e4\u11e5\u0003\u0002",
    "\u0002\u0002\u11e5\u11e6\u0005\u01a4\u00d3\u0002\u11e6\u11e7\u0007?",
    "\u0002\u0002\u11e7\u11ec\u0005\u01fc\u00ff\u0002\u11e8\u11e9\u0007\u0400",
    "\u0002\u0002\u11e9\u11eb\u0005\u01fc\u00ff\u0002\u11ea\u11e8\u0003\u0002",
    "\u0002\u0002\u11eb\u11ee\u0003\u0002\u0002\u0002\u11ec\u11ea\u0003\u0002",
    "\u0002\u0002\u11ec\u11ed\u0003\u0002\u0002\u0002\u11ed\u1201\u0003\u0002",
    "\u0002\u0002\u11ee\u11ec\u0003\u0002\u0002\u0002\u11ef\u11f0\u0007\u0086",
    "\u0002\u0002\u11f0\u11f2\u0007\b\u0002\u0002\u11f1\u11f3\u0007\u0264",
    "\u0002\u0002\u11f2\u11f1\u0003\u0002\u0002\u0002\u11f2\u11f3\u0003\u0002",
    "\u0002\u0002\u11f3\u11f4\u0003\u0002\u0002\u0002\u11f4\u11f5\u0007\u0400",
    "\u0002\u0002\u11f5\u11f6\u0007C\u0002\u0002\u11f6\u11f7\u0007n\u0002",
    "\u0002\u11f7\u11f8\u0007?\u0002\u0002\u11f8\u11fd\u0005\u01fc\u00ff",
    "\u0002\u11f9\u11fa\u0007\u0400\u0002\u0002\u11fa\u11fc\u0005\u01fc\u00ff",
    "\u0002\u11fb\u11f9\u0003\u0002\u0002\u0002\u11fc\u11ff\u0003\u0002\u0002",
    "\u0002\u11fd\u11fb\u0003\u0002\u0002\u0002\u11fd\u11fe\u0003\u0002\u0002",
    "\u0002\u11fe\u1201\u0003\u0002\u0002\u0002\u11ff\u11fd\u0003\u0002\u0002",
    "\u0002\u1200\u11d8\u0003\u0002\u0002\u0002\u1200\u11ef\u0003\u0002\u0002",
    "\u0002\u1201\u018f\u0003\u0002\u0002\u0002\u1202\u1203\u0007\u0086\u0002",
    "\u0002\u1203\u1204\u0007\u01e3\u0002\u0002\u1204\u1205\u0007l\u0002",
    "\u0002\u1205\u1206\u0005\u01fc\u00ff\u0002\u1206\u1207\u0007?\u0002",
    "\u0002\u1207\u120c\u0005\u01fc\u00ff\u0002\u1208\u1209\u0007\u0400\u0002",
    "\u0002\u1209\u120b\u0005\u01fc\u00ff\u0002\u120a\u1208\u0003\u0002\u0002",
    "\u0002\u120b\u120e\u0003\u0002\u0002\u0002\u120c\u120a\u0003\u0002\u0002",
    "\u0002\u120c\u120d\u0003\u0002\u0002\u0002\u120d\u0191\u0003\u0002\u0002",
    "\u0002\u120e\u120c\u0003\u0002\u0002\u0002\u120f\u1210\u0007\u008c\u0002",
    "\u0002\u1210\u1213\u0007\u01d6\u0002\u0002\u1211\u1212\u0007<\u0002",
    "\u0002\u1212\u1214\u0005\u01fc\u00ff\u0002\u1213\u1211\u0003\u0002\u0002",
    "\u0002\u1213\u1214\u0003\u0002\u0002\u0002\u1214\u1215\u0003\u0002\u0002",
    "\u0002\u1215\u1218\u0007\u03f5\u0002\u0002\u1216\u1219\u0005\u0256\u012c",
    "\u0002\u1217\u1219\u0007\u040d\u0002\u0002\u1218\u1216\u0003\u0002\u0002",
    "\u0002\u1218\u1217\u0003\u0002\u0002\u0002\u1219\u0193\u0003\u0002\u0002",
    "\u0002\u121a\u121b\u0005\u01fc\u00ff\u0002\u121b\u121c\u0005\u019c\u00cf",
    "\u0002\u121c\u0195\u0003\u0002\u0002\u0002\u121d\u121e\u0005\u01fc\u00ff",
    "\u0002\u121e\u121f\u0007\u017c\u0002\u0002\u121f\u1220\u0007\u0012\u0002",
    "\u0002\u1220\u1221\u0007\u01d6\u0002\u0002\u1221\u1222\u0007\u040d\u0002",
    "\u0002\u1222\u1236\u0003\u0002\u0002\u0002\u1223\u1224\u0005\u01fc\u00ff",
    "\u0002\u1224\u1227\u0007\u017c\u0002\u0002\u1225\u1226\u0007\u00b0\u0002",
    "\u0002\u1226\u1228\u0005\u020c\u0107\u0002\u1227\u1225\u0003\u0002\u0002",
    "\u0002\u1227\u1228\u0003\u0002\u0002\u0002\u1228\u1229\u0003\u0002\u0002",
    "\u0002\u1229\u122a\u0007\u0012\u0002\u0002\u122a\u122b\u0007\u040d\u0002",
    "\u0002\u122b\u1236\u0003\u0002\u0002\u0002\u122c\u122d\u0005\u01fc\u00ff",
    "\u0002\u122d\u122e\u0007\u017c\u0002\u0002\u122e\u122f\u0007\u00b0\u0002",
    "\u0002\u122f\u1232\u0005\u020c\u0107\u0002\u1230\u1231\u0007\r\u0002",
    "\u0002\u1231\u1233\u0007\u040d\u0002\u0002\u1232\u1230\u0003\u0002\u0002",
    "\u0002\u1232\u1233\u0003\u0002\u0002\u0002\u1233\u1236\u0003\u0002\u0002",
    "\u0002\u1234\u1236\u0005\u01fc\u00ff\u0002\u1235\u121d\u0003\u0002\u0002",
    "\u0002\u1235\u1223\u0003\u0002\u0002\u0002\u1235\u122c\u0003\u0002\u0002",
    "\u0002\u1235\u1234\u0003\u0002\u0002\u0002\u1236\u0197\u0003\u0002\u0002",
    "\u0002\u1237\u1240\u0007\u0098\u0002\u0002\u1238\u1240\u0007\u024c\u0002",
    "\u0002\u1239\u123a\u0007\u012a\u0002\u0002\u123a\u1240\u0007\u040d\u0002",
    "\u0002\u123b\u123c\u0007\u018b\u0002\u0002\u123c\u1240\u0007\u040d\u0002",
    "\u0002\u123d\u123e\u0007\u0227\u0002\u0002\u123e\u1240\u0007\u040d\u0002",
    "\u0002\u123f\u1237\u0003\u0002\u0002\u0002\u123f\u1238\u0003\u0002\u0002",
    "\u0002\u123f\u1239\u0003\u0002\u0002\u0002\u123f\u123b\u0003\u0002\u0002",
    "\u0002\u123f\u123d\u0003\u0002\u0002\u0002\u1240\u0199\u0003\u0002\u0002",
    "\u0002\u1241\u1242\u0007\u01ad\u0002\u0002\u1242\u124a\u0005\u0214\u010b",
    "\u0002\u1243\u1244\u0007\u01b0\u0002\u0002\u1244\u124a\u0005\u0214\u010b",
    "\u0002\u1245\u1246\u0007\u01ac\u0002\u0002\u1246\u124a\u0005\u0214\u010b",
    "\u0002\u1247\u1248\u0007\u01b1\u0002\u0002\u1248\u124a\u0005\u0214\u010b",
    "\u0002\u1249\u1241\u0003\u0002\u0002\u0002\u1249\u1243\u0003\u0002\u0002",
    "\u0002\u1249\u1245\u0003\u0002\u0002\u0002\u1249\u1247\u0003\u0002\u0002",
    "\u0002\u124a\u019b\u0003\u0002\u0002\u0002\u124b\u124c\u0007\u01d6\u0002",
    "\u0002\u124c\u1253\u0007\u0163\u0002\u0002\u124d\u1254\u0007(\u0002",
    "\u0002\u124e\u1254\u0007\u01c0\u0002\u0002\u124f\u1250\u0007O\u0002",
    "\u0002\u1250\u1251\u0005\u0214\u010b\u0002\u1251\u1252\u0007\u0256\u0002",
    "\u0002\u1252\u1254\u0003\u0002\u0002\u0002\u1253\u124d\u0003\u0002\u0002",
    "\u0002\u1253\u124e\u0003\u0002\u0002\u0002\u1253\u124f\u0003\u0002\u0002",
    "\u0002\u1253\u1254\u0003\u0002\u0002\u0002\u1254\u019d\u0003\u0002\u0002",
    "\u0002\u1255\u1256\u0007\u0110\u0002\u0002\u1256\u1257\t>\u0002\u0002",
    "\u1257\u019f\u0003\u0002\u0002\u0002\u1258\u125d\u0005\u01a2\u00d2\u0002",
    "\u1259\u125a\u0007\u03fe\u0002\u0002\u125a\u125b\u0005\u022e\u0118\u0002",
    "\u125b\u125c\u0007\u03ff\u0002\u0002\u125c\u125e\u0003\u0002\u0002\u0002",
    "\u125d\u1259\u0003\u0002\u0002\u0002\u125d\u125e\u0003\u0002\u0002\u0002",
    "\u125e\u01a1\u0003\u0002\u0002\u0002\u125f\u1261\u0007\b\u0002\u0002",
    "\u1260\u1262\u0007\u0264\u0002\u0002\u1261\u1260\u0003\u0002\u0002\u0002",
    "\u1261\u1262\u0003\u0002\u0002\u0002\u1262\u12a7\u0003\u0002\u0002\u0002",
    "\u1263\u1265\u0007\t\u0002\u0002\u1264\u1266\u0007\u025d\u0002\u0002",
    "\u1265\u1264\u0003\u0002\u0002\u0002\u1265\u1266\u0003\u0002\u0002\u0002",
    "\u1266\u12a7\u0003\u0002\u0002\u0002\u1267\u126f\u0007 \u0002\u0002",
    "\u1268\u1269\u0007\u022f\u0002\u0002\u1269\u1270\u0007\u025c\u0002\u0002",
    "\u126a\u1270\u0007\u025d\u0002\u0002\u126b\u1270\u0007\u0244\u0002\u0002",
    "\u126c\u1270\u0007\u023e\u0002\u0002\u126d\u1270\u0007\u022e\u0002\u0002",
    "\u126e\u1270\u0007\u01fd\u0002\u0002\u126f\u1268\u0003\u0002\u0002\u0002",
    "\u126f\u126a\u0003\u0002\u0002\u0002\u126f\u126b\u0003\u0002\u0002\u0002",
    "\u126f\u126c\u0003\u0002\u0002\u0002\u126f\u126d\u0003\u0002\u0002\u0002",
    "\u126f\u126e\u0003\u0002\u0002\u0002\u126f\u1270\u0003\u0002\u0002\u0002",
    "\u1270\u12a7\u0003\u0002\u0002\u0002\u1271\u12a7\u0007*\u0002\u0002",
    "\u1272\u1274\u00071\u0002\u0002\u1273\u1275\u0007\u01fd\u0002\u0002",
    "\u1274\u1273\u0003\u0002\u0002\u0002\u1274\u1275\u0003\u0002\u0002\u0002",
    "\u1275\u12a7\u0003\u0002\u0002\u0002\u1276\u12a7\u0007\u015e\u0002\u0002",
    "\u1277\u12a7\u0007\u025e\u0002\u0002\u1278\u12a7\u0007\u025f\u0002\u0002",
    "\u1279\u127a\u0007C\u0002\u0002\u127a\u12a7\u0007n\u0002\u0002\u127b",
    "\u12a7\u0007J\u0002\u0002\u127c\u12a7\u0007N\u0002\u0002\u127d\u127e",
    "\u0007_\u0002\u0002\u127e\u12a7\u0007\u025c\u0002\u0002\u127f\u12a7",
    "\u0007\u0260\u0002\u0002\u1280\u12a7\u0007\u01e3\u0002\u0002\u1281\u12a7",
    "\u0007|\u0002\u0002\u1282\u12a7\u0007\u0261\u0002\u0002\u1283\u1284",
    "\u0007\u01f8\u0002\u0002\u1284\u12a7\t?\u0002\u0002\u1285\u12a7\u0007",
    "\u008b\u0002\u0002\u1286\u1287\u0007\u008e\u0002\u0002\u1287\u12a7\t",
    "@\u0002\u0002\u1288\u12a7\u0007\u0262\u0002\u0002\u1289\u12a7\u0007",
    "\u0263\u0002\u0002\u128a\u12a7\u0007\u00a1\u0002\u0002\u128b\u12a7\u0007",
    "\u00a8\u0002\u0002\u128c\u12a7\u0007\u00a9\u0002\u0002\u128d\u12a7\u0007",
    "\u0266\u0002\u0002\u128e\u12a7\u0007\u0267\u0002\u0002\u128f\u12a7\u0007",
    "\u0268\u0002\u0002\u1290\u12a7\u0007\u0269\u0002\u0002\u1291\u12a7\u0007",
    "\u026a\u0002\u0002\u1292\u12a7\u0007\u026b\u0002\u0002\u1293\u12a7\u0007",
    "\u026c\u0002\u0002\u1294\u12a7\u0007\u026d\u0002\u0002\u1295\u12a7\u0007",
    "\u026e\u0002\u0002\u1296\u12a7\u0007\u026f\u0002\u0002\u1297\u12a7\u0007",
    "\u0270\u0002\u0002\u1298\u12a7\u0007\u0271\u0002\u0002\u1299\u12a7\u0007",
    "\u0272\u0002\u0002\u129a\u12a7\u0007\u0273\u0002\u0002\u129b\u12a7\u0007",
    "\u0274\u0002\u0002\u129c\u12a7\u0007\u0275\u0002\u0002\u129d\u12a7\u0007",
    "\u0276\u0002\u0002\u129e\u12a7\u0007\u0277\u0002\u0002\u129f\u12a7\u0007",
    "\u0278\u0002\u0002\u12a0\u12a7\u0007\u0279\u0002\u0002\u12a1\u12a7\u0007",
    "\u027a\u0002\u0002\u12a2\u12a7\u0007\u027b\u0002\u0002\u12a3\u12a7\u0007",
    "\u027c\u0002\u0002\u12a4\u12a7\u0007\u027d\u0002\u0002\u12a5\u12a7\u0007",
    "\u027e\u0002\u0002\u12a6\u125f\u0003\u0002\u0002\u0002\u12a6\u1263\u0003",
    "\u0002\u0002\u0002\u12a6\u1267\u0003\u0002\u0002\u0002\u12a6\u1271\u0003",
    "\u0002\u0002\u0002\u12a6\u1272\u0003\u0002\u0002\u0002\u12a6\u1276\u0003",
    "\u0002\u0002\u0002\u12a6\u1277\u0003\u0002\u0002\u0002\u12a6\u1278\u0003",
    "\u0002\u0002\u0002\u12a6\u1279\u0003\u0002\u0002\u0002\u12a6\u127b\u0003",
    "\u0002\u0002\u0002\u12a6\u127c\u0003\u0002\u0002\u0002\u12a6\u127d\u0003",
    "\u0002\u0002\u0002\u12a6\u127f\u0003\u0002\u0002\u0002\u12a6\u1280\u0003",
    "\u0002\u0002\u0002\u12a6\u1281\u0003\u0002\u0002\u0002\u12a6\u1282\u0003",
    "\u0002\u0002\u0002\u12a6\u1283\u0003\u0002\u0002\u0002\u12a6\u1285\u0003",
    "\u0002\u0002\u0002\u12a6\u1286\u0003\u0002\u0002\u0002\u12a6\u1288\u0003",
    "\u0002\u0002\u0002\u12a6\u1289\u0003\u0002\u0002\u0002\u12a6\u128a\u0003",
    "\u0002\u0002\u0002\u12a6\u128b\u0003\u0002\u0002\u0002\u12a6\u128c\u0003",
    "\u0002\u0002\u0002\u12a6\u128d\u0003\u0002\u0002\u0002\u12a6\u128e\u0003",
    "\u0002\u0002\u0002\u12a6\u128f\u0003\u0002\u0002\u0002\u12a6\u1290\u0003",
    "\u0002\u0002\u0002\u12a6\u1291\u0003\u0002\u0002\u0002\u12a6\u1292\u0003",
    "\u0002\u0002\u0002\u12a6\u1293\u0003\u0002\u0002\u0002\u12a6\u1294\u0003",
    "\u0002\u0002\u0002\u12a6\u1295\u0003\u0002\u0002\u0002\u12a6\u1296\u0003",
    "\u0002\u0002\u0002\u12a6\u1297\u0003\u0002\u0002\u0002\u12a6\u1298\u0003",
    "\u0002\u0002\u0002\u12a6\u1299\u0003\u0002\u0002\u0002\u12a6\u129a\u0003",
    "\u0002\u0002\u0002\u12a6\u129b\u0003\u0002\u0002\u0002\u12a6\u129c\u0003",
    "\u0002\u0002\u0002\u12a6\u129d\u0003\u0002\u0002\u0002\u12a6\u129e\u0003",
    "\u0002\u0002\u0002\u12a6\u129f\u0003\u0002\u0002\u0002\u12a6\u12a0\u0003",
    "\u0002\u0002\u0002\u12a6\u12a1\u0003\u0002\u0002\u0002\u12a6\u12a2\u0003",
    "\u0002\u0002\u0002\u12a6\u12a3\u0003\u0002\u0002\u0002\u12a6\u12a4\u0003",
    "\u0002\u0002\u0002\u12a6\u12a5\u0003\u0002\u0002\u0002\u12a7\u01a3\u0003",
    "\u0002\u0002\u0002\u12a8\u12b9\u0007\u03ed\u0002\u0002\u12a9\u12aa\u0007",
    "\u03ed\u0002\u0002\u12aa\u12ab\u0007\u03fd\u0002\u0002\u12ab\u12b9\u0007",
    "\u03ed\u0002\u0002\u12ac\u12ad\u0005\u020e\u0108\u0002\u12ad\u12ae\u0007",
    "\u03fd\u0002\u0002\u12ae\u12af\u0007\u03ed\u0002\u0002\u12af\u12b9\u0003",
    "\u0002\u0002\u0002\u12b0\u12b1\u0005\u020e\u0108\u0002\u12b1\u12b2\u0007",
    "\u03fd\u0002\u0002\u12b2\u12b3\u0005\u020e\u0108\u0002\u12b3\u12b9\u0003",
    "\u0002\u0002\u0002\u12b4\u12b5\u0005\u020e\u0108\u0002\u12b5\u12b6\u0005",
    "\u0212\u010a\u0002\u12b6\u12b9\u0003\u0002\u0002\u0002\u12b7\u12b9\u0005",
    "\u020e\u0108\u0002\u12b8\u12a8\u0003\u0002\u0002\u0002\u12b8\u12a9\u0003",
    "\u0002\u0002\u0002\u12b8\u12ac\u0003\u0002\u0002\u0002\u12b8\u12b0\u0003",
    "\u0002\u0002\u0002\u12b8\u12b4\u0003\u0002\u0002\u0002\u12b8\u12b7\u0003",
    "\u0002\u0002\u0002\u12b9\u01a5\u0003\u0002\u0002\u0002\u12ba\u12bb\u0005",
    "\u01fc\u00ff\u0002\u12bb\u12bc\u0007\u009f\u0002\u0002\u12bc\u12bd\u0005",
    "\u01fc\u00ff\u0002\u12bd\u01a7\u0003\u0002\u0002\u0002\u12be\u12c0\u0007",
    "\u000b\u0002\u0002\u12bf\u12c1\tA\u0002\u0002\u12c0\u12bf\u0003\u0002",
    "\u0002\u0002\u12c0\u12c1\u0003\u0002\u0002\u0002\u12c1\u12c2\u0003\u0002",
    "\u0002\u0002\u12c2\u12c3\u0007\u009c\u0002\u0002\u12c3\u12c4\u0005\u0230",
    "\u0119\u0002\u12c4\u01a9\u0003\u0002\u0002\u0002\u12c5\u12c6\u0007\u0019",
    "\u0002\u0002\u12c6\u12c7\u0007\u009c\u0002\u0002\u12c7\u12cb\u0005\u0230",
    "\u0119\u0002\u12c8\u12ca\u0005\u01b2\u00da\u0002\u12c9\u12c8\u0003\u0002",
    "\u0002\u0002\u12ca\u12cd\u0003\u0002\u0002\u0002\u12cb\u12c9\u0003\u0002",
    "\u0002\u0002\u12cb\u12cc\u0003\u0002\u0002\u0002\u12cc\u01ab\u0003\u0002",
    "\u0002\u0002\u12cd\u12cb\u0003\u0002\u0002\u0002\u12ce\u12cf\u0007\u0128",
    "\u0002\u0002\u12cf\u12d0\u0007\u009c\u0002\u0002\u12d0\u12d2\u0005\u0230",
    "\u0119\u0002\u12d1\u12d3\tB\u0002\u0002\u12d2\u12d1\u0003\u0002\u0002",
    "\u0002\u12d2\u12d3\u0003\u0002\u0002\u0002\u12d3\u01ad\u0003\u0002\u0002",
    "\u0002\u12d4\u12d6\u0007m\u0002\u0002\u12d5\u12d7\tA\u0002\u0002\u12d6",
    "\u12d5\u0003\u0002\u0002\u0002\u12d6\u12d7\u0003\u0002\u0002\u0002\u12d7",
    "\u12d8\u0003\u0002\u0002\u0002\u12d8\u12d9\u0007\u009c\u0002\u0002\u12d9",
    "\u12da\u0005\u0230\u0119\u0002\u12da\u01af\u0003\u0002\u0002\u0002\u12db",
    "\u12dd\u0007\u01f0\u0002\u0002\u12dc\u12de\tA\u0002\u0002\u12dd\u12dc",
    "\u0003\u0002\u0002\u0002\u12dd\u12de\u0003\u0002\u0002\u0002\u12de\u12df",
    "\u0003\u0002\u0002\u0002\u12df\u12e0\u0007\u009c\u0002\u0002\u12e0\u12e2",
    "\u0005\u0230\u0119\u0002\u12e1\u12e3\u0007\u01e5\u0002\u0002\u12e2\u12e1",
    "\u0003\u0002\u0002\u0002\u12e2\u12e3\u0003\u0002\u0002\u0002\u12e3\u12e5",
    "\u0003\u0002\u0002\u0002\u12e4\u12e6\u0007\u0165\u0002\u0002\u12e5\u12e4",
    "\u0003\u0002\u0002\u0002\u12e5\u12e6\u0003\u0002\u0002\u0002\u12e6\u12e8",
    "\u0003\u0002\u0002\u0002\u12e7\u12e9\u0007\u023f\u0002\u0002\u12e8\u12e7",
    "\u0003\u0002\u0002\u0002\u12e8\u12e9\u0003\u0002\u0002\u0002\u12e9\u01b1",
    "\u0003\u0002\u0002\u0002\u12ea\u12eb\u0007<\u0002\u0002\u12eb\u12f2",
    "\u0007\u023d\u0002\u0002\u12ec\u12f2\u0007\u01e5\u0002\u0002\u12ed\u12f2",
    "\u0007\u0167\u0002\u0002\u12ee\u12f2\u0007\u01b2\u0002\u0002\u12ef\u12f2",
    "\u0007\u0165\u0002\u0002\u12f0\u12f2\u0007\u0126\u0002\u0002\u12f1\u12ea",
    "\u0003\u0002\u0002\u0002\u12f1\u12ec\u0003\u0002\u0002\u0002\u12f1\u12ed",
    "\u0003\u0002\u0002\u0002\u12f1\u12ee\u0003\u0002\u0002\u0002\u12f1\u12ef",
    "\u0003\u0002\u0002\u0002\u12f1\u12f0\u0003\u0002\u0002\u0002\u12f2\u01b3",
    "\u0003\u0002\u0002\u0002\u12f3\u12f5\u0007 \u0002\u0002\u12f4\u12f6",
    "\u0007\u0113\u0002\u0002\u12f5\u12f4\u0003\u0002\u0002\u0002\u12f5\u12f6",
    "\u0003\u0002\u0002\u0002\u12f6\u12f7\u0003\u0002\u0002\u0002\u12f7\u12f8",
    "\u0007\u0172\u0002\u0002\u12f8\u12f9\u0005\u020e\u0108\u0002\u12f9\u12fa",
    "\u0007\u01fc\u0002\u0002\u12fa\u12fb\tC\u0002\u0002\u12fb\u12fc\u0007",
    "\u0212\u0002\u0002\u12fc\u12fd\u0007\u040d\u0002\u0002\u12fd\u01b5\u0003",
    "\u0002\u0002\u0002\u12fe\u12ff\u0007\u0183\u0002\u0002\u12ff\u1300\u0007",
    "\u01d8\u0002\u0002\u1300\u1301\u0005\u020e\u0108\u0002\u1301\u1302\u0007",
    "\u0212\u0002\u0002\u1302\u1303\u0007\u040d\u0002\u0002\u1303\u01b7\u0003",
    "\u0002\u0002\u0002\u1304\u1305\u0007\u023a\u0002\u0002\u1305\u1306\u0007",
    "\u01d8\u0002\u0002\u1306\u1307\u0005\u020e\u0108\u0002\u1307\u01b9\u0003",
    "\u0002\u0002\u0002\u1308\u1309\u0007\u008c\u0002\u0002\u1309\u130a\u0005",
    "\u01be\u00e0\u0002\u130a\u130b\tD\u0002\u0002\u130b\u1313\u0005\u025c",
    "\u012f\u0002\u130c\u130d\u0007\u0400\u0002\u0002\u130d\u130e\u0005\u01be",
    "\u00e0\u0002\u130e\u130f\tD\u0002\u0002\u130f\u1310\u0005\u025c\u012f",
    "\u0002\u1310\u1312\u0003\u0002\u0002\u0002\u1311\u130c\u0003\u0002\u0002",
    "\u0002\u1312\u1315\u0003\u0002\u0002\u0002\u1313\u1311\u0003\u0002\u0002",
    "\u0002\u1313\u1314\u0003\u0002\u0002\u0002\u1314\u133c\u0003\u0002\u0002",
    "\u0002\u1315\u1313\u0003\u0002\u0002\u0002\u1316\u131a\u0007\u008c\u0002",
    "\u0002\u1317\u1318\u0007\u0018\u0002\u0002\u1318\u131b\u0007\u008c\u0002",
    "\u0002\u1319\u131b\u0007\u02dd\u0002\u0002\u131a\u1317\u0003\u0002\u0002",
    "\u0002\u131a\u1319\u0003\u0002\u0002\u0002\u131b\u131e\u0003\u0002\u0002",
    "\u0002\u131c\u131f\u0005\u0200\u0101\u0002\u131d\u131f\u0007(\u0002",
    "\u0002\u131e\u131c\u0003\u0002\u0002\u0002\u131e\u131d\u0003\u0002\u0002",
    "\u0002\u131f\u133c\u0003\u0002\u0002\u0002\u1320\u1321\u0007\u008c\u0002",
    "\u0002\u1321\u1328\u0007\u01be\u0002\u0002\u1322\u1325\u0005\u0200\u0101",
    "\u0002\u1323\u1324\u0007\u001a\u0002\u0002\u1324\u1326\u0005\u0202\u0102",
    "\u0002\u1325\u1323\u0003\u0002\u0002\u0002\u1325\u1326\u0003\u0002\u0002",
    "\u0002\u1326\u1329\u0003\u0002\u0002\u0002\u1327\u1329\u0007(\u0002",
    "\u0002\u1328\u1322\u0003\u0002\u0002\u0002\u1328\u1327\u0003\u0002\u0002",
    "\u0002\u1329\u133c\u0003\u0002\u0002\u0002\u132a\u133c\u0005\u0192\u00ca",
    "\u0002\u132b\u133c\u0005\u0116\u008c\u0002\u132c\u133c\u0005\u0114\u008b",
    "\u0002\u132d\u132e\u0007\u008c\u0002\u0002\u132e\u132f\u0005\u01f4\u00fb",
    "\u0002\u132f\u1330\tD\u0002\u0002\u1330\u1338\u0005\u025c\u012f\u0002",
    "\u1331\u1332\u0007\u0400\u0002\u0002\u1332\u1333\u0005\u01f4\u00fb\u0002",
    "\u1333\u1334\tD\u0002\u0002\u1334\u1335\u0005\u025c\u012f\u0002\u1335",
    "\u1337\u0003\u0002\u0002\u0002\u1336\u1331\u0003\u0002\u0002\u0002\u1337",
    "\u133a\u0003\u0002\u0002\u0002\u1338\u1336\u0003\u0002\u0002\u0002\u1338",
    "\u1339\u0003\u0002\u0002\u0002\u1339\u133c\u0003\u0002\u0002\u0002\u133a",
    "\u1338\u0003\u0002\u0002\u0002\u133b\u1308\u0003\u0002\u0002\u0002\u133b",
    "\u1316\u0003\u0002\u0002\u0002\u133b\u1320\u0003\u0002\u0002\u0002\u133b",
    "\u132a\u0003\u0002\u0002\u0002\u133b\u132b\u0003\u0002\u0002\u0002\u133b",
    "\u132c\u0003\u0002\u0002\u0002\u133b\u132d\u0003\u0002\u0002\u0002\u133c",
    "\u01bb\u0003\u0002\u0002\u0002\u133d\u133e\u0007\u008e\u0002\u0002\u133e",
    "\u133f\t3\u0002\u0002\u133f\u13d5\u0007\u0196\u0002\u0002\u1340\u1341",
    "\u0007\u008e\u0002\u0002\u1341\u1342\tE\u0002\u0002\u1342\u1345\u0007",
    "\u015f\u0002\u0002\u1343\u1344\u0007I\u0002\u0002\u1344\u1346\u0007",
    "\u040d\u0002\u0002\u1345\u1343\u0003\u0002\u0002\u0002\u1345\u1346\u0003",
    "\u0002\u0002\u0002\u1346\u1349\u0003\u0002\u0002\u0002\u1347\u1348\u0007",
    "?\u0002\u0002\u1348\u134a\u0005\u0214\u010b\u0002\u1349\u1347\u0003",
    "\u0002\u0002\u0002\u1349\u134a\u0003\u0002\u0002\u0002\u134a\u1352\u0003",
    "\u0002\u0002\u0002\u134b\u134f\u0007[\u0002\u0002\u134c\u134d\u0005",
    "\u0214\u010b\u0002\u134d\u134e\u0007\u0400\u0002\u0002\u134e\u1350\u0003",
    "\u0002\u0002\u0002\u134f\u134c\u0003\u0002\u0002\u0002\u134f\u1350\u0003",
    "\u0002\u0002\u0002\u1350\u1351\u0003\u0002\u0002\u0002\u1351\u1353\u0005",
    "\u0214\u010b\u0002\u1352\u134b\u0003\u0002\u0002\u0002\u1352\u1353\u0003",
    "\u0002\u0002\u0002\u1353\u13d5\u0003\u0002\u0002\u0002\u1354\u1355\u0007",
    "\u008e\u0002\u0002\u1355\u1357\u0005\u01c0\u00e1\u0002\u1356\u1358\u0005",
    "\u01c2\u00e2\u0002\u1357\u1356\u0003\u0002\u0002\u0002\u1357\u1358\u0003",
    "\u0002\u0002\u0002\u1358\u13d5\u0003\u0002\u0002\u0002\u1359\u135b\u0007",
    "\u008e\u0002\u0002\u135a\u135c\u0007\u0171\u0002\u0002\u135b\u135a\u0003",
    "\u0002\u0002\u0002\u135b\u135c\u0003\u0002\u0002\u0002\u135c\u135d\u0003",
    "\u0002\u0002\u0002\u135d\u135e\t%\u0002\u0002\u135e\u135f\tF\u0002\u0002",
    "\u135f\u1362\u0005\u01f6\u00fc\u0002\u1360\u1361\tF\u0002\u0002\u1361",
    "\u1363\u0005\u020e\u0108\u0002\u1362\u1360\u0003\u0002\u0002\u0002\u1362",
    "\u1363\u0003\u0002\u0002\u0002\u1363\u1365\u0003\u0002\u0002\u0002\u1364",
    "\u1366\u0005\u01c2\u00e2\u0002\u1365\u1364\u0003\u0002\u0002\u0002\u1365",
    "\u1366\u0003\u0002\u0002\u0002\u1366\u13d5\u0003\u0002\u0002\u0002\u1367",
    "\u1368\u0007\u008e\u0002\u0002\u1368\u1369\u0007 \u0002\u0002\u1369",
    "\u136b\t\u0002\u0002\u0002\u136a\u136c\u0005\u0246\u0124\u0002\u136b",
    "\u136a\u0003\u0002\u0002\u0002\u136b\u136c\u0003\u0002\u0002\u0002\u136c",
    "\u136d\u0003\u0002\u0002\u0002\u136d\u13d5\u0005\u020e\u0108\u0002\u136e",
    "\u136f\u0007\u008e\u0002\u0002\u136f\u1370\u0007 \u0002\u0002\u1370",
    "\u1371\tG\u0002\u0002\u1371\u13d5\u0005\u01f4\u00fb\u0002\u1372\u1373",
    "\u0007\u008e\u0002\u0002\u1373\u1374\u0007 \u0002\u0002\u1374\u1375",
    "\u0007\u023e\u0002\u0002\u1375\u13d5\u0005\u01fc\u00ff\u0002\u1376\u1377",
    "\u0007\u008e\u0002\u0002\u1377\u1378\u0007\u0158\u0002\u0002\u1378\u1379",
    "\u0005\u0204\u0103\u0002\u1379\u137a\tH\u0002\u0002\u137a\u13d5\u0003",
    "\u0002\u0002\u0002\u137b\u137c\u0007\u008e\u0002\u0002\u137c\u13d5\u0005",
    "\u01c4\u00e3\u0002\u137d\u137e\u0007\u008e\u0002\u0002\u137e\u137f\t",
    "I\u0002\u0002\u137f\u1383\u0007[\u0002\u0002\u1380\u1381\u0005\u0214",
    "\u010b\u0002\u1381\u1382\u0007\u0400\u0002\u0002\u1382\u1384\u0003\u0002",
    "\u0002\u0002\u1383\u1380\u0003\u0002\u0002\u0002\u1383\u1384\u0003\u0002",
    "\u0002\u0002\u1384\u1385\u0003\u0002\u0002\u0002\u1385\u13d5\u0005\u0214",
    "\u010b\u0002\u1386\u1387\u0007\u008e\u0002\u0002\u1387\u1388\u0007\u00f1",
    "\u0002\u0002\u1388\u1389\u0007\u03fe\u0002\u0002\u1389\u138a\u0007\u03ed",
    "\u0002\u0002\u138a\u138b\u0007\u03ff\u0002\u0002\u138b\u13d5\tI\u0002",
    "\u0002\u138c\u138d\u0007\u008e\u0002\u0002\u138d\u1390\u0005\u01c6\u00e4",
    "\u0002\u138e\u138f\tF\u0002\u0002\u138f\u1391\u0005\u020e\u0108\u0002",
    "\u1390\u138e\u0003\u0002\u0002\u0002\u1390\u1391\u0003\u0002\u0002\u0002",
    "\u1391\u1393\u0003\u0002\u0002\u0002\u1392\u1394\u0005\u01c2\u00e2\u0002",
    "\u1393\u1392\u0003\u0002\u0002\u0002\u1393\u1394\u0003\u0002\u0002\u0002",
    "\u1394\u13d5\u0003\u0002\u0002\u0002\u1395\u1396\u0007\u008e\u0002\u0002",
    "\u1396\u1397\tJ\u0002\u0002\u1397\u1398\u0007\u012f\u0002\u0002\u1398",
    "\u13d5\u0005\u01f4\u00fb\u0002\u1399\u139a\u0007\u008e\u0002\u0002\u139a",
    "\u139d\u0007\u0175\u0002\u0002\u139b\u139c\u0007<\u0002\u0002\u139c",
    "\u139e\u0005\u01fc\u00ff\u0002\u139d\u139b\u0003\u0002\u0002\u0002\u139d",
    "\u139e\u0003\u0002\u0002\u0002\u139e\u13d5\u0003\u0002\u0002\u0002\u139f",
    "\u13a0\u0007\u008e\u0002\u0002\u13a0\u13a1\tK\u0002\u0002\u13a1\u13a2",
    "\tF\u0002\u0002\u13a2\u13a5\u0005\u01f6\u00fc\u0002\u13a3\u13a4\tF\u0002",
    "\u0002\u13a4\u13a6\u0005\u020e\u0108\u0002\u13a5\u13a3\u0003\u0002\u0002",
    "\u0002\u13a5\u13a6\u0003\u0002\u0002\u0002\u13a6\u13a9\u0003\u0002\u0002",
    "\u0002\u13a7\u13a8\u0007\u00ae\u0002\u0002\u13a8\u13aa\u0005\u025c\u012f",
    "\u0002\u13a9\u13a7\u0003\u0002\u0002\u0002\u13a9\u13aa\u0003\u0002\u0002",
    "\u0002\u13aa\u13d5\u0003\u0002\u0002\u0002\u13ab\u13ac\u0007\u008e\u0002",
    "\u0002\u13ac\u13ad\u0007\u01cc\u0002\u0002\u13ad\u13b0\u0007\u025c\u0002",
    "\u0002\u13ae\u13af\tF\u0002\u0002\u13af\u13b1\u0005\u020e\u0108\u0002",
    "\u13b0\u13ae\u0003\u0002\u0002\u0002\u13b0\u13b1\u0003\u0002\u0002\u0002",
    "\u13b1\u13b3\u0003\u0002\u0002\u0002\u13b2\u13b4\u0005\u01c2\u00e2\u0002",
    "\u13b3\u13b2\u0003\u0002\u0002\u0002\u13b3\u13b4\u0003\u0002\u0002\u0002",
    "\u13b4\u13d5\u0003\u0002\u0002\u0002\u13b5\u13b6\u0007\u008e\u0002\u0002",
    "\u13b6\u13b7\u0007\u01e1\u0002\u0002\u13b7\u13bc\u0005\u01c8\u00e5\u0002",
    "\u13b8\u13b9\u0007\u0400\u0002\u0002\u13b9\u13bb\u0005\u01c8\u00e5\u0002",
    "\u13ba\u13b8\u0003\u0002\u0002\u0002\u13bb\u13be\u0003\u0002\u0002\u0002",
    "\u13bc\u13ba\u0003\u0002\u0002\u0002\u13bc\u13bd\u0003\u0002\u0002\u0002",
    "\u13bd\u13c2\u0003\u0002\u0002\u0002\u13be\u13bc\u0003\u0002\u0002\u0002",
    "\u13bf\u13c0\u0007<\u0002\u0002\u13c0\u13c1\u0007\u01e4\u0002\u0002",
    "\u13c1\u13c3\u0005\u0214\u010b\u0002\u13c2\u13bf\u0003\u0002\u0002\u0002",
    "\u13c2\u13c3\u0003\u0002\u0002\u0002\u13c3\u13c4\u0003\u0002\u0002\u0002",
    "\u13c4\u13c8\u0007[\u0002\u0002\u13c5\u13c6\u0005\u0214\u010b\u0002",
    "\u13c6\u13c7\u0007\u0400\u0002\u0002\u13c7\u13c9\u0003\u0002\u0002\u0002",
    "\u13c8\u13c5\u0003\u0002\u0002\u0002\u13c8\u13c9\u0003\u0002\u0002\u0002",
    "\u13c9\u13ca\u0003\u0002\u0002\u0002\u13ca\u13cb\u0005\u0214\u010b\u0002",
    "\u13cb\u13d5\u0003\u0002\u0002\u0002\u13cc\u13cd\u0007\u008e\u0002\u0002",
    "\u13cd\u13ce\u0007\u020d\u0002\u0002\u13ce\u13d2\u0007\u0221\u0002\u0002",
    "\u13cf\u13d0\u0007<\u0002\u0002\u13d0\u13d1\u0007\u0127\u0002\u0002",
    "\u13d1\u13d3\u0007\u040d\u0002\u0002\u13d2\u13cf\u0003\u0002\u0002\u0002",
    "\u13d2\u13d3\u0003\u0002\u0002\u0002\u13d3\u13d5\u0003\u0002\u0002\u0002",
    "\u13d4\u133d\u0003\u0002\u0002\u0002\u13d4\u1340\u0003\u0002\u0002\u0002",
    "\u13d4\u1354\u0003\u0002\u0002\u0002\u13d4\u1359\u0003\u0002\u0002\u0002",
    "\u13d4\u1367\u0003\u0002\u0002\u0002\u13d4\u136e\u0003\u0002\u0002\u0002",
    "\u13d4\u1372\u0003\u0002\u0002\u0002\u13d4\u1376\u0003\u0002\u0002\u0002",
    "\u13d4\u137b\u0003\u0002\u0002\u0002\u13d4\u137d\u0003\u0002\u0002\u0002",
    "\u13d4\u1386\u0003\u0002\u0002\u0002\u13d4\u138c\u0003\u0002\u0002\u0002",
    "\u13d4\u1395\u0003\u0002\u0002\u0002\u13d4\u1399\u0003\u0002\u0002\u0002",
    "\u13d4\u139f\u0003\u0002\u0002\u0002\u13d4\u13ab\u0003\u0002\u0002\u0002",
    "\u13d4\u13b5\u0003\u0002\u0002\u0002\u13d4\u13cc\u0003\u0002\u0002\u0002",
    "\u13d5\u01bd\u0003\u0002\u0002\u0002\u13d6\u13e1\u0007\u0418\u0002\u0002",
    "\u13d7\u13e1\u0007\u0419\u0002\u0002\u13d8\u13d9\u0007\u0402\u0002\u0002",
    "\u13d9\u13db\u0007\u0402\u0002\u0002\u13da\u13d8\u0003\u0002\u0002\u0002",
    "\u13da\u13db\u0003\u0002\u0002\u0002\u13db\u13dc\u0003\u0002\u0002\u0002",
    "\u13dc\u13de\tL\u0002\u0002\u13dd\u13da\u0003\u0002\u0002\u0002\u13dd",
    "\u13de\u0003\u0002\u0002\u0002\u13de\u13df\u0003\u0002\u0002\u0002\u13df",
    "\u13e1\u0005\u020e\u0108\u0002\u13e0\u13d6\u0003\u0002\u0002\u0002\u13e0",
    "\u13d7\u0003\u0002\u0002\u0002\u13e0\u13dd\u0003\u0002\u0002\u0002\u13e1",
    "\u01bf\u0003\u0002\u0002\u0002\u13e2\u13e3\u0007\u0018\u0002\u0002\u13e3",
    "\u13f0\u0007\u008c\u0002\u0002\u13e4\u13f0\u0007\u02e0\u0002\u0002\u13e5",
    "\u13f0\u0007&\u0002\u0002\u13e6\u13f0\u0007\u008a\u0002\u0002\u13e7",
    "\u13e8\u0007\u0172\u0002\u0002\u13e8\u13f0\u0007\u0221\u0002\u0002\u13e9",
    "\u13ea\u0007w\u0002\u0002\u13ea\u13f0\u0007\u0221\u0002\u0002\u13eb",
    "\u13ed\t2\u0002\u0002\u13ec\u13eb\u0003\u0002\u0002\u0002\u13ec\u13ed",
    "\u0003\u0002\u0002\u0002\u13ed\u13ee\u0003\u0002\u0002\u0002\u13ee\u13f0",
    "\tM\u0002\u0002\u13ef\u13e2\u0003\u0002\u0002\u0002\u13ef\u13e4\u0003",
    "\u0002\u0002\u0002\u13ef\u13e5\u0003\u0002\u0002\u0002\u13ef\u13e6\u0003",
    "\u0002\u0002\u0002\u13ef\u13e7\u0003\u0002\u0002\u0002\u13ef\u13e9\u0003",
    "\u0002\u0002\u0002\u13ef\u13ec\u0003\u0002\u0002\u0002\u13f0\u01c1\u0003",
    "\u0002\u0002\u0002\u13f1\u13f2\u0007Z\u0002\u0002\u13f2\u13f6\u0007",
    "\u040d\u0002\u0002\u13f3\u13f4\u0007\u00ae\u0002\u0002\u13f4\u13f6\u0005",
    "\u025c\u012f\u0002\u13f5\u13f1\u0003\u0002\u0002\u0002\u13f5\u13f3\u0003",
    "\u0002\u0002\u0002\u13f6\u01c3\u0003\u0002\u0002\u0002\u13f7\u13f9\u0007",
    "\u0223\u0002\u0002\u13f8\u13f7\u0003\u0002\u0002\u0002\u13f8\u13f9\u0003",
    "\u0002\u0002\u0002\u13f9\u13fa\u0003\u0002\u0002\u0002\u13fa\u1409\u0007",
    "\u0159\u0002\u0002\u13fb\u13fc\u0007\u0197\u0002\u0002\u13fc\u1409\u0007",
    "\u0221\u0002\u0002\u13fd\u1409\u0007\u01da\u0002\u0002\u13fe\u1409\u0007",
    "\u0264\u0002\u0002\u13ff\u1401\u0007\u0171\u0002\u0002\u1400\u13ff\u0003",
    "\u0002\u0002\u0002\u1400\u1401\u0003\u0002\u0002\u0002\u1401\u1402\u0003",
    "\u0002\u0002\u0002\u1402\u1409\u0007\u01e0\u0002\u0002\u1403\u1409\u0007",
    "\u01e2\u0002\u0002\u1404\u1405\u0007\u020d\u0002\u0002\u1405\u1409\u0007",
    "\u017b\u0002\u0002\u1406\u1409\u0007\u0117\u0002\u0002\u1407\u1409\u0007",
    "\u0141\u0002\u0002\u1408\u13f8\u0003\u0002\u0002\u0002\u1408\u13fb\u0003",
    "\u0002\u0002\u0002\u1408\u13fd\u0003\u0002\u0002\u0002\u1408\u13fe\u0003",
    "\u0002\u0002\u0002\u1408\u1400\u0003\u0002\u0002\u0002\u1408\u1403\u0003",
    "\u0002\u0002\u0002\u1408\u1404\u0003\u0002\u0002\u0002\u1408\u1406\u0003",
    "\u0002\u0002\u0002\u1408\u1407\u0003\u0002\u0002\u0002\u1409\u01c5\u0003",
    "\u0002\u0002\u0002\u140a\u1413\u0007\u015f\u0002\u0002\u140b\u140c\u0007",
    "\u009c\u0002\u0002\u140c\u1413\u0007\u0221\u0002\u0002\u140d\u140f\u0007",
    "\u0171\u0002\u0002\u140e\u140d\u0003\u0002\u0002\u0002\u140e\u140f\u0003",
    "\u0002\u0002\u0002\u140f\u1410\u0003\u0002\u0002\u0002\u1410\u1413\u0007",
    "\u025c\u0002\u0002\u1411\u1413\u0007\u0235\u0002\u0002\u1412\u140a\u0003",
    "\u0002\u0002\u0002\u1412\u140b\u0003\u0002\u0002\u0002\u1412\u140e\u0003",
    "\u0002\u0002\u0002\u1412\u1411\u0003\u0002\u0002\u0002\u1413\u01c7\u0003",
    "\u0002\u0002\u0002\u1414\u1421\u0007\b\u0002\u0002\u1415\u1416\u0007",
    "\u011f\u0002\u0002\u1416\u1421\u0007\u0187\u0002\u0002\u1417\u1418\u0007",
    "\u0140\u0002\u0002\u1418\u1421\u0007\u022c\u0002\u0002\u1419\u1421\u0007",
    "\u0143\u0002\u0002\u141a\u1421\u0007\u0189\u0002\u0002\u141b\u1421\u0007",
    "\u02ac\u0002\u0002\u141c\u141d\u0007\u01d1\u0002\u0002\u141d\u1421\u0007",
    "\u0168\u0002\u0002\u141e\u1421\u0007\u0214\u0002\u0002\u141f\u1421\u0007",
    "\u022b\u0002\u0002\u1420\u1414\u0003\u0002\u0002\u0002\u1420\u1415\u0003",
    "\u0002\u0002\u0002\u1420\u1417\u0003\u0002\u0002\u0002\u1420\u1419\u0003",
    "\u0002\u0002\u0002\u1420\u141a\u0003\u0002\u0002\u0002\u1420\u141b\u0003",
    "\u0002\u0002\u0002\u1420\u141c\u0003\u0002\u0002\u0002\u1420\u141e\u0003",
    "\u0002\u0002\u0002\u1420\u141f\u0003\u0002\u0002\u0002\u1421\u01c9\u0003",
    "\u0002\u0002\u0002\u1422\u1423\u0007\u011d\u0002\u0002\u1423\u1424\u0007",
    "\u040d\u0002\u0002\u1424\u01cb\u0003\u0002\u0002\u0002\u1425\u1426\u0007",
    "\u0123\u0002\u0002\u1426\u1427\u0007J\u0002\u0002\u1427\u142c\u0005",
    "\u01d8\u00ed\u0002\u1428\u1429\u0007\u0400\u0002\u0002\u1429\u142b\u0005",
    "\u01d8\u00ed\u0002\u142a\u1428\u0003\u0002\u0002\u0002\u142b\u142e\u0003",
    "\u0002\u0002\u0002\u142c\u142a\u0003\u0002\u0002\u0002\u142c\u142d\u0003",
    "\u0002\u0002\u0002\u142d\u1436\u0003\u0002\u0002\u0002\u142e\u142c\u0003",
    "\u0002\u0002\u0002\u142f\u1430\u0007u\u0002\u0002\u1430\u1433\u0007",
    "\u03fe\u0002\u0002\u1431\u1434\u0005\u022e\u0118\u0002\u1432\u1434\u0007",
    "\b\u0002\u0002\u1433\u1431\u0003\u0002\u0002\u0002\u1433\u1432\u0003",
    "\u0002\u0002\u0002\u1434\u1435\u0003\u0002\u0002\u0002\u1435\u1437\u0007",
    "\u03ff\u0002\u0002\u1436\u142f\u0003\u0002\u0002\u0002\u1436\u1437\u0003",
    "\u0002\u0002\u0002\u1437\u1438\u0003\u0002\u0002\u0002\u1438\u1439\u0007",
    "I\u0002\u0002\u1439\u143a\u0005\u020e\u0108\u0002\u143a\u01cd\u0003",
    "\u0002\u0002\u0002\u143b\u143d\u0007\u016e\u0002\u0002\u143c\u143e\t",
    "A\u0002\u0002\u143d\u143c\u0003\u0002\u0002\u0002\u143d\u143e\u0003",
    "\u0002\u0002\u0002\u143e\u143f\u0003\u0002\u0002\u0002\u143f\u1444\u0005",
    "\u01da\u00ee\u0002\u1440\u1441\u0007\u0400\u0002\u0002\u1441\u1443\u0005",
    "\u01da\u00ee\u0002\u1442\u1440\u0003\u0002\u0002\u0002\u1443\u1446\u0003",
    "\u0002\u0002\u0002\u1444\u1442\u0003\u0002\u0002\u0002\u1444\u1445\u0003",
    "\u0002\u0002\u0002\u1445\u01cf\u0003\u0002\u0002\u0002\u1446\u1444\u0003",
    "\u0002\u0002\u0002\u1447\u1449\u0007V\u0002\u0002\u1448\u144a\tN\u0002",
    "\u0002\u1449\u1448\u0003\u0002\u0002\u0002\u1449\u144a\u0003\u0002\u0002",
    "\u0002\u144a\u144c\u0003\u0002\u0002\u0002\u144b\u144d\u0005\u0214\u010b",
    "\u0002\u144c\u144b\u0003\u0002\u0002\u0002\u144d\u144e\u0003\u0002\u0002",
    "\u0002\u144e\u144c\u0003\u0002\u0002\u0002\u144e\u144f\u0003\u0002\u0002",
    "\u0002\u144f\u01d1\u0003\u0002\u0002\u0002\u1450\u1451\u0007^\u0002",
    "\u0002\u1451\u1452\u0007J\u0002\u0002\u1452\u1453\u0007P\u0002\u0002",
    "\u1453\u1454\u0007\u0123\u0002\u0002\u1454\u1459\u0005\u01de\u00f0\u0002",
    "\u1455\u1456\u0007\u0400\u0002\u0002\u1456\u1458\u0005\u01de\u00f0\u0002",
    "\u1457\u1455\u0003\u0002\u0002\u0002\u1458\u145b\u0003\u0002\u0002\u0002",
    "\u1459\u1457\u0003\u0002\u0002\u0002\u1459\u145a\u0003\u0002\u0002\u0002",
    "\u145a\u01d3\u0003\u0002\u0002\u0002\u145b\u1459\u0003\u0002\u0002\u0002",
    "\u145c\u145d\u0007\u01f9\u0002\u0002\u145d\u145e\u0007\u01e4\u0002\u0002",
    "\u145e\u145f\u0007\u0123\u0002\u0002\u145f\u01d5\u0003\u0002\u0002\u0002",
    "\u1460\u1461\u0007\u0262\u0002\u0002\u1461\u01d7\u0003\u0002\u0002\u0002",
    "\u1462\u146a\u0005\u01f6\u00fc\u0002\u1463\u1465\t\u0014\u0002\u0002",
    "\u1464\u1463\u0003\u0002\u0002\u0002\u1464\u1465\u0003\u0002\u0002\u0002",
    "\u1465\u1466\u0003\u0002\u0002\u0002\u1466\u1467\u0007\u03fe\u0002\u0002",
    "\u1467\u1468\u0005\u022e\u0118\u0002\u1468\u1469\u0007\u03ff\u0002\u0002",
    "\u1469\u146b\u0003\u0002\u0002\u0002\u146a\u1464\u0003\u0002\u0002\u0002",
    "\u146a\u146b\u0003\u0002\u0002\u0002\u146b\u01d9\u0003\u0002\u0002\u0002",
    "\u146c\u147f\u0007\u014b\u0002\u0002\u146d\u147f\u0007\u017b\u0002\u0002",
    "\u146e\u1470\tO\u0002\u0002\u146f\u146e\u0003\u0002\u0002\u0002\u146f",
    "\u1470\u0003\u0002\u0002\u0002\u1470\u1471\u0003\u0002\u0002\u0002\u1471",
    "\u147f\u0007\u0196\u0002\u0002\u1472\u147f\u0007\u01cd\u0002\u0002\u1473",
    "\u147f\u0007\u0264\u0002\u0002\u1474\u1475\u0007\u01e4\u0002\u0002\u1475",
    "\u147f\u0007\u0123\u0002\u0002\u1476\u147f\u0007\u0221\u0002\u0002\u1477",
    "\u147f\u0007\u0240\u0002\u0002\u1478\u147c\u0007\u025c\u0002\u0002\u1479",
    "\u147a\u0007\u00b0\u0002\u0002\u147a\u147b\u0007z\u0002\u0002\u147b",
    "\u147d\u0007_\u0002\u0002\u147c\u1479\u0003\u0002\u0002\u0002\u147c",
    "\u147d\u0003\u0002\u0002\u0002\u147d\u147f\u0003\u0002\u0002\u0002\u147e",
    "\u146c\u0003\u0002\u0002\u0002\u147e\u146d\u0003\u0002\u0002\u0002\u147e",
    "\u146f\u0003\u0002\u0002\u0002\u147e\u1472\u0003\u0002\u0002\u0002\u147e",
    "\u1473\u0003\u0002\u0002\u0002\u147e\u1474\u0003\u0002\u0002\u0002\u147e",
    "\u1476\u0003\u0002\u0002\u0002\u147e\u1477\u0003\u0002\u0002\u0002\u147e",
    "\u1478\u0003\u0002\u0002\u0002\u147f\u148b\u0003\u0002\u0002\u0002\u1480",
    "\u1481\u0007\u01ea\u0002\u0002\u1481\u1483\u0007\u0196\u0002\u0002\u1482",
    "\u1484\u0005\u013c\u009f\u0002\u1483\u1482\u0003\u0002\u0002\u0002\u1483",
    "\u1484\u0003\u0002\u0002\u0002\u1484\u148b\u0003\u0002\u0002\u0002\u1485",
    "\u1486\u0007\u025c\u0002\u0002\u1486\u1488\u0005\u0230\u0119\u0002\u1487",
    "\u1489\u0005\u01dc\u00ef\u0002\u1488\u1487\u0003\u0002\u0002\u0002\u1488",
    "\u1489\u0003\u0002\u0002\u0002\u1489\u148b\u0003\u0002\u0002\u0002\u148a",
    "\u147e\u0003\u0002\u0002\u0002\u148a\u1480\u0003\u0002\u0002\u0002\u148a",
    "\u1485\u0003\u0002\u0002\u0002\u148b\u01db\u0003\u0002\u0002\u0002\u148c",
    "\u148d\u0007\u00b0\u0002\u0002\u148d\u148e\u0007z\u0002\u0002\u148e",
    "\u1492\u0007_\u0002\u0002\u148f\u1490\u0007<\u0002\u0002\u1490\u1492",
    "\u0007\u0164\u0002\u0002\u1491\u148c\u0003\u0002\u0002\u0002\u1491\u148f",
    "\u0003\u0002\u0002\u0002\u1492\u01dd\u0003\u0002\u0002\u0002\u1493\u149b",
    "\u0005\u01f6\u00fc\u0002\u1494\u1495\u0007u\u0002\u0002\u1495\u1498",
    "\u0007\u03fe\u0002\u0002\u1496\u1499\u0005\u022e\u0118\u0002\u1497\u1499",
    "\u0007\b\u0002\u0002\u1498\u1496\u0003\u0002\u0002\u0002\u1498\u1497",
    "\u0003\u0002\u0002\u0002\u1499\u149a\u0003\u0002\u0002\u0002\u149a\u149c",
    "\u0007\u03ff\u0002\u0002\u149b\u1494\u0003\u0002\u0002\u0002\u149b\u149c",
    "\u0003\u0002\u0002\u0002\u149c\u14a4\u0003\u0002\u0002\u0002\u149d\u149f",
    "\t\u0014\u0002\u0002\u149e\u149d\u0003\u0002\u0002\u0002\u149e\u149f",
    "\u0003\u0002\u0002\u0002\u149f\u14a0\u0003\u0002\u0002\u0002\u14a0\u14a1",
    "\u0007\u03fe\u0002\u0002\u14a1\u14a2\u0005\u022e\u0118\u0002\u14a2\u14a3",
    "\u0007\u03ff\u0002\u0002\u14a3\u14a5\u0003\u0002\u0002\u0002\u14a4\u149e",
    "\u0003\u0002\u0002\u0002\u14a4\u14a5\u0003\u0002\u0002\u0002\u14a5\u14a8",
    "\u0003\u0002\u0002\u0002\u14a6\u14a7\u0007H\u0002\u0002\u14a7\u14a9",
    "\u0007\u0190\u0002\u0002\u14a8\u14a6\u0003\u0002\u0002\u0002\u14a8\u14a9",
    "\u0003\u0002\u0002\u0002\u14a9\u01df\u0003\u0002\u0002\u0002\u14aa\u14ab",
    "\tP\u0002\u0002\u14ab\u14ae\u0005\u01f6\u00fc\u0002\u14ac\u14af\u0005",
    "\u020e\u0108\u0002\u14ad\u14af\u0007\u040d\u0002\u0002\u14ae\u14ac\u0003",
    "\u0002\u0002\u0002\u14ae\u14ad\u0003\u0002\u0002\u0002\u14ae\u14af\u0003",
    "\u0002\u0002\u0002\u14af\u01e1\u0003\u0002\u0002\u0002\u14b0\u14b4\t",
    "P\u0002\u0002\u14b1\u14b2\tQ\u0002\u0002\u14b2\u14b3\u0007\u03f5\u0002",
    "\u0002\u14b3\u14b5\tR\u0002\u0002\u14b4\u14b1\u0003\u0002\u0002\u0002",
    "\u14b4\u14b5\u0003\u0002\u0002\u0002\u14b5\u14b6\u0003\u0002\u0002\u0002",
    "\u14b6\u14b7\u0005\u01f2\u00fa\u0002\u14b7\u01e3\u0003\u0002\u0002\u0002",
    "\u14b8\u14b9\u0007\u0179\u0002\u0002\u14b9\u14ba\u0007\u040d\u0002\u0002",
    "\u14ba\u01e5\u0003\u0002\u0002\u0002\u14bb\u14bc\u0007\u00aa\u0002\u0002",
    "\u14bc\u14bd\u0005\u020e\u0108\u0002\u14bd\u01e7\u0003\u0002\u0002\u0002",
    "\u14be\u14c6\u0007\u008f\u0002\u0002\u14bf\u14c1\u0007\u0093\u0002\u0002",
    "\u14c0\u14c2\u0007\u0242\u0002\u0002\u14c1\u14c0\u0003\u0002\u0002\u0002",
    "\u14c1\u14c2\u0003\u0002\u0002\u0002\u14c2\u14c3\u0003\u0002\u0002\u0002",
    "\u14c3\u14c7\u0005\u0218\u010d\u0002\u14c4\u14c7\u0007\u0415\u0002\u0002",
    "\u14c5\u14c7\u0007\u0416\u0002\u0002\u14c6\u14bf\u0003\u0002\u0002\u0002",
    "\u14c6\u14c4\u0003\u0002\u0002\u0002\u14c6\u14c5\u0003\u0002\u0002\u0002",
    "\u14c7\u14d1\u0003\u0002\u0002\u0002\u14c8\u14c9\u0007\u008c\u0002\u0002",
    "\u14c9\u14ce\u0005\u01ec\u00f7\u0002\u14ca\u14cb\u0007\u0400\u0002\u0002",
    "\u14cb\u14cd\u0005\u01ec\u00f7\u0002\u14cc\u14ca\u0003\u0002\u0002\u0002",
    "\u14cd\u14d0\u0003\u0002\u0002\u0002\u14ce\u14cc\u0003\u0002\u0002\u0002",
    "\u14ce\u14cf\u0003\u0002\u0002\u0002\u14cf\u14d2\u0003\u0002\u0002\u0002",
    "\u14d0\u14ce\u0003\u0002\u0002\u0002\u14d1\u14c8\u0003\u0002\u0002\u0002",
    "\u14d1\u14d2\u0003\u0002\u0002\u0002\u14d2\u01e9\u0003\u0002\u0002\u0002",
    "\u14d3\u14db\u0007\u0083\u0002\u0002\u14d4\u14d6\u0007\u0093\u0002\u0002",
    "\u14d5\u14d7\u0007\u0242\u0002\u0002\u14d6\u14d5\u0003\u0002\u0002\u0002",
    "\u14d6\u14d7\u0003\u0002\u0002\u0002\u14d7\u14d8\u0003\u0002\u0002\u0002",
    "\u14d8\u14dc\u0005\u0218\u010d\u0002\u14d9\u14dc\u0007\u0415\u0002\u0002",
    "\u14da\u14dc\u0007\u0416\u0002\u0002\u14db\u14d4\u0003\u0002\u0002\u0002",
    "\u14db\u14d9\u0003\u0002\u0002\u0002\u14db\u14da\u0003\u0002\u0002\u0002",
    "\u14db\u14dc\u0003\u0002\u0002\u0002\u14dc\u14e6\u0003\u0002\u0002\u0002",
    "\u14dd\u14de\u0007\u008c\u0002\u0002\u14de\u14e3\u0005\u01ec\u00f7\u0002",
    "\u14df\u14e0\u0007\u0400\u0002\u0002\u14e0\u14e2\u0005\u01ec\u00f7\u0002",
    "\u14e1\u14df\u0003\u0002\u0002\u0002\u14e2\u14e5\u0003\u0002\u0002\u0002",
    "\u14e3\u14e1\u0003\u0002\u0002\u0002\u14e3\u14e4\u0003\u0002\u0002\u0002",
    "\u14e4\u14e7\u0003\u0002\u0002\u0002\u14e5\u14e3\u0003\u0002\u0002\u0002",
    "\u14e6\u14dd\u0003\u0002\u0002\u0002\u14e6\u14e7\u0003\u0002\u0002\u0002",
    "\u14e7\u01eb\u0003\u0002\u0002\u0002\u14e8\u14e9\tS\u0002\u0002\u14e9",
    "\u14ec\u0007\u03f5\u0002\u0002\u14ea\u14ed\u0005\u0218\u010d\u0002\u14eb",
    "\u14ed\u0007\u040e\u0002\u0002\u14ec\u14ea\u0003\u0002\u0002\u0002\u14ec",
    "\u14eb\u0003\u0002\u0002\u0002\u14ed\u01ed\u0003\u0002\u0002\u0002\u14ee",
    "\u14f0\u0007B\u0002\u0002\u14ef\u14f1\tT\u0002\u0002\u14f0\u14ef\u0003",
    "\u0002\u0002\u0002\u14f0\u14f1\u0003\u0002\u0002\u0002\u14f1\u14f2\u0003",
    "\u0002\u0002\u0002\u14f2\u1512\u0007.\u0002\u0002\u14f3\u14f4\u0005",
    "\u01be\u00e0\u0002\u14f4\u14f5\u0007\u03f5\u0002\u0002\u14f5\u14fd\t",
    "U\u0002\u0002\u14f6\u14f7\u0007\u0400\u0002\u0002\u14f7\u14f8\u0005",
    "\u01be\u00e0\u0002\u14f8\u14f9\u0007\u03f5\u0002\u0002\u14f9\u14fa\t",
    "U\u0002\u0002\u14fa\u14fc\u0003\u0002\u0002\u0002\u14fb\u14f6\u0003",
    "\u0002\u0002\u0002\u14fc\u14ff\u0003\u0002\u0002\u0002\u14fd\u14fb\u0003",
    "\u0002\u0002\u0002\u14fd\u14fe\u0003\u0002\u0002\u0002\u14fe\u1513\u0003",
    "\u0002\u0002\u0002\u14ff\u14fd\u0003\u0002\u0002\u0002\u1500\u1503\u0007",
    "\u001c\u0002\u0002\u1501\u1504\u0005\u0214\u010b\u0002\u1502\u1504\u0005",
    "\u01be\u00e0\u0002\u1503\u1501\u0003\u0002\u0002\u0002\u1503\u1502\u0003",
    "\u0002\u0002\u0002\u1504\u1505\u0003\u0002\u0002\u0002\u1505\u1506\u0005",
    "\u01be\u00e0\u0002\u1506\u1507\u0007\u03f5\u0002\u0002\u1507\u150f\u0005",
    "\u01f0\u00f9\u0002\u1508\u1509\u0007\u0400\u0002\u0002\u1509\u150a\u0005",
    "\u01be\u00e0\u0002\u150a\u150b\u0007\u03f5\u0002\u0002\u150b\u150c\u0005",
    "\u01f0\u00f9\u0002\u150c\u150e\u0003\u0002\u0002\u0002\u150d\u1508\u0003",
    "\u0002\u0002\u0002\u150e\u1511\u0003\u0002\u0002\u0002\u150f\u150d\u0003",
    "\u0002\u0002\u0002\u150f\u1510\u0003\u0002\u0002\u0002\u1510\u1513\u0003",
    "\u0002\u0002\u0002\u1511\u150f\u0003\u0002\u0002\u0002\u1512\u14f3\u0003",
    "\u0002\u0002\u0002\u1512\u1500\u0003\u0002\u0002\u0002\u1513\u01ef\u0003",
    "\u0002\u0002\u0002\u1514\u1515\tV\u0002\u0002\u1515\u01f1\u0003\u0002",
    "\u0002\u0002\u1516\u151c\u0005\u00b6\\\u0002\u1517\u151c\u0005\u00a8",
    "U\u0002\u1518\u151c\u0005\u00aeX\u0002\u1519\u151c\u0005\u00b4[\u0002",
    "\u151a\u151c\u0005\u00b8]\u0002\u151b\u1516\u0003\u0002\u0002\u0002",
    "\u151b\u1517\u0003\u0002\u0002\u0002\u151b\u1518\u0003\u0002\u0002\u0002",
    "\u151b\u1519\u0003\u0002\u0002\u0002\u151b\u151a\u0003\u0002\u0002\u0002",
    "\u151c\u1521\u0003\u0002\u0002\u0002\u151d\u151e\u0007<\u0002\u0002",
    "\u151e\u151f\u0007\u013a\u0002\u0002\u151f\u1521\u0005\u020e\u0108\u0002",
    "\u1520\u151b\u0003\u0002\u0002\u0002\u1520\u151d\u0003\u0002\u0002\u0002",
    "\u1521\u01f3\u0003\u0002\u0002\u0002\u1522\u1526\u0005\u020e\u0108\u0002",
    "\u1523\u1527\u0007\u0414\u0002\u0002\u1524\u1525\u0007\u03fd\u0002\u0002",
    "\u1525\u1527\u0005\u020e\u0108\u0002\u1526\u1523\u0003\u0002\u0002\u0002",
    "\u1526\u1524\u0003\u0002\u0002\u0002\u1526\u1527\u0003\u0002\u0002\u0002",
    "\u1527\u01f5\u0003\u0002\u0002\u0002\u1528\u1529\u0005\u01f4\u00fb\u0002",
    "\u1529\u01f7\u0003\u0002\u0002\u0002\u152a\u152f\u0005\u020e\u0108\u0002",
    "\u152b\u152d\u0005\u0212\u010a\u0002\u152c\u152e\u0005\u0212\u010a\u0002",
    "\u152d\u152c\u0003\u0002\u0002\u0002\u152d\u152e\u0003\u0002\u0002\u0002",
    "\u152e\u1530\u0003\u0002\u0002\u0002\u152f\u152b\u0003\u0002\u0002\u0002",
    "\u152f\u1530\u0003\u0002\u0002\u0002\u1530\u01f9\u0003\u0002\u0002\u0002",
    "\u1531\u1534\u0005\u020e\u0108\u0002\u1532\u1534\u0007\u040d\u0002\u0002",
    "\u1533\u1531\u0003\u0002\u0002\u0002\u1533\u1532\u0003\u0002\u0002\u0002",
    "\u1534\u1539\u0003\u0002\u0002\u0002\u1535\u1536\u0007\u03fe\u0002\u0002",
    "\u1536\u1537\u0005\u0214\u010b\u0002\u1537\u1538\u0007\u03ff\u0002\u0002",
    "\u1538\u153a\u0003\u0002\u0002\u0002\u1539\u1535\u0003\u0002\u0002\u0002",
    "\u1539\u153a\u0003\u0002\u0002\u0002\u153a\u153c\u0003\u0002\u0002\u0002",
    "\u153b\u153d\t,\u0002\u0002\u153c\u153b\u0003\u0002\u0002\u0002\u153c",
    "\u153d\u0003\u0002\u0002\u0002\u153d\u01fb\u0003\u0002\u0002\u0002\u153e",
    "\u153f\tW\u0002\u0002\u153f\u01fd\u0003\u0002\u0002\u0002\u1540\u1541",
    "\tX\u0002\u0002\u1541\u01ff\u0003\u0002\u0002\u0002\u1542\u1547\u0007",
    "\u00d2\u0002\u0002\u1543\u1547\u0005\u026c\u0137\u0002\u1544\u1547\u0007",
    "\u040d\u0002\u0002\u1545\u1547\u0007\u040a\u0002\u0002\u1546\u1542\u0003",
    "\u0002\u0002\u0002\u1546\u1543\u0003\u0002\u0002\u0002\u1546\u1544\u0003",
    "\u0002\u0002\u0002\u1546\u1545\u0003\u0002\u0002\u0002\u1547\u0201\u0003",
    "\u0002\u0002\u0002\u1548\u154b\u0005\u020e\u0108\u0002\u1549\u154b\u0007",
    "\u040d\u0002\u0002\u154a\u1548\u0003\u0002\u0002\u0002\u154a\u1549\u0003",
    "\u0002\u0002\u0002\u154b\u0203\u0003\u0002\u0002\u0002\u154c\u154d\t",
    "Y\u0002\u0002\u154d\u0205\u0003\u0002\u0002\u0002\u154e\u154f\u0005",
    "\u0214\u010b\u0002\u154f\u1550\u0007\u03f2\u0002\u0002\u1550\u1551\u0005",
    "\u0214\u010b\u0002\u1551\u1552\u0007\u03f2\u0002\u0002\u1552\u1553\u0005",
    "\u0214\u010b\u0002\u1553\u1554\u0007\u03f2\u0002\u0002\u1554\u1555\u0005",
    "\u0214\u010b\u0002\u1555\u1556\u0007\u03f2\u0002\u0002\u1556\u155c\u0005",
    "\u0214\u010b\u0002\u1557\u1558\u0007\u0409\u0002\u0002\u1558\u1559\u0005",
    "\u0214\u010b\u0002\u1559\u155a\u0007\u03f2\u0002\u0002\u155a\u155b\u0005",
    "\u0214\u010b\u0002\u155b\u155d\u0003\u0002\u0002\u0002\u155c\u1557\u0003",
    "\u0002\u0002\u0002\u155d\u155e\u0003\u0002\u0002\u0002\u155e\u155c\u0003",
    "\u0002\u0002\u0002\u155e\u155f\u0003\u0002\u0002\u0002\u155f\u0207\u0003",
    "\u0002\u0002\u0002\u1560\u1567\u0005\u020a\u0106\u0002\u1561\u1562\u0007",
    "\u0400\u0002\u0002\u1562\u1565\u0005\u020a\u0106\u0002\u1563\u1564\u0007",
    "\u0400\u0002\u0002\u1564\u1566\u0005\u0214\u010b\u0002\u1565\u1563\u0003",
    "\u0002\u0002\u0002\u1565\u1566\u0003\u0002\u0002\u0002\u1566\u1568\u0003",
    "\u0002\u0002\u0002\u1567\u1561\u0003\u0002\u0002\u0002\u1567\u1568\u0003",
    "\u0002\u0002\u0002\u1568\u0209\u0003\u0002\u0002\u0002\u1569\u1571\u0007",
    "\u040d\u0002\u0002\u156a\u1571\u0007\u0412\u0002\u0002\u156b\u156d\u0007",
    "\u040f\u0002\u0002\u156c\u156b\u0003\u0002\u0002\u0002\u156d\u156e\u0003",
    "\u0002\u0002\u0002\u156e\u156c\u0003\u0002\u0002\u0002\u156e\u156f\u0003",
    "\u0002\u0002\u0002\u156f\u1571\u0003\u0002\u0002\u0002\u1570\u1569\u0003",
    "\u0002\u0002\u0002\u1570\u156a\u0003\u0002\u0002\u0002\u1570\u156c\u0003",
    "\u0002\u0002\u0002\u1571\u020b\u0003\u0002\u0002\u0002\u1572\u1575\u0005",
    "\u020e\u0108\u0002\u1573\u1575\u0007\u040d\u0002\u0002\u1574\u1572\u0003",
    "\u0002\u0002\u0002\u1574\u1573\u0003\u0002\u0002\u0002\u1575\u020d\u0003",
    "\u0002\u0002\u0002\u1576\u157a\u0005\u0210\u0109\u0002\u1577\u157a\u0007",
    "\u0416\u0002\u0002\u1578\u157a\u0007\u040a\u0002\u0002\u1579\u1576\u0003",
    "\u0002\u0002\u0002\u1579\u1577\u0003\u0002\u0002\u0002\u1579\u1578\u0003",
    "\u0002\u0002\u0002\u157a\u020f\u0003\u0002\u0002\u0002\u157b\u1585\u0007",
    "\u0415\u0002\u0002\u157c\u1585\u0005\u026c\u0137\u0002\u157d\u1585\u0005",
    "\u026e\u0138\u0002\u157e\u1585\u0005\u0204\u0103\u0002\u157f\u1585\u0005",
    "\u0270\u0139\u0002\u1580\u1585\u0005\u0272\u013a\u0002\u1581\u1585\u0005",
    "\u0274\u013b\u0002\u1582\u1585\u0005\u0276\u013c\u0002\u1583\u1585\u0005",
    "\u0278\u013d\u0002\u1584\u157b\u0003\u0002\u0002\u0002\u1584\u157c\u0003",
    "\u0002\u0002\u0002\u1584\u157d\u0003\u0002\u0002\u0002\u1584\u157e\u0003",
    "\u0002\u0002\u0002\u1584\u157f\u0003\u0002\u0002\u0002\u1584\u1580\u0003",
    "\u0002\u0002\u0002\u1584\u1581\u0003\u0002\u0002\u0002\u1584\u1582\u0003",
    "\u0002\u0002\u0002\u1584\u1583\u0003\u0002\u0002\u0002\u1585\u0211\u0003",
    "\u0002\u0002\u0002\u1586\u158a\u0007\u0414\u0002\u0002\u1587\u1588\u0007",
    "\u03fd\u0002\u0002\u1588\u158a\u0005\u020e\u0108\u0002\u1589\u1586\u0003",
    "\u0002\u0002\u0002\u1589\u1587\u0003\u0002\u0002\u0002\u158a\u0213\u0003",
    "\u0002\u0002\u0002\u158b\u158c\tZ\u0002\u0002\u158c\u0215\u0003\u0002",
    "\u0002\u0002\u158d\u1590\u0007\u040b\u0002\u0002\u158e\u1590\u0005\u0214",
    "\u010b\u0002\u158f\u158d\u0003\u0002\u0002\u0002\u158f\u158e\u0003\u0002",
    "\u0002\u0002\u1590\u0217\u0003\u0002\u0002\u0002\u1591\u1593\u0007\u0413",
    "\u0002\u0002\u1592\u1591\u0003\u0002\u0002\u0002\u1592\u1593\u0003\u0002",
    "\u0002\u0002\u1593\u1594\u0003\u0002\u0002\u0002\u1594\u1597\u0007\u040d",
    "\u0002\u0002\u1595\u1597\u0007\u040c\u0002\u0002\u1596\u1592\u0003\u0002",
    "\u0002\u0002\u1596\u1595\u0003\u0002\u0002\u0002\u1597\u1599\u0003\u0002",
    "\u0002\u0002\u1598\u159a\u0007\u040d\u0002\u0002\u1599\u1598\u0003\u0002",
    "\u0002\u0002\u159a\u159b\u0003\u0002\u0002\u0002\u159b\u1599\u0003\u0002",
    "\u0002\u0002\u159b\u159c\u0003\u0002\u0002\u0002\u159c\u15a9\u0003\u0002",
    "\u0002\u0002\u159d\u159f\u0007\u0413\u0002\u0002\u159e\u159d\u0003\u0002",
    "\u0002\u0002\u159e\u159f\u0003\u0002\u0002\u0002\u159f\u15a0\u0003\u0002",
    "\u0002\u0002\u15a0\u15a3\u0007\u040d\u0002\u0002\u15a1\u15a3\u0007\u040c",
    "\u0002\u0002\u15a2\u159e\u0003\u0002\u0002\u0002\u15a2\u15a1\u0003\u0002",
    "\u0002\u0002\u15a3\u15a6\u0003\u0002\u0002\u0002\u15a4\u15a5\u0007\u001a",
    "\u0002\u0002\u15a5\u15a7\u0005\u0202\u0102\u0002\u15a6\u15a4\u0003\u0002",
    "\u0002\u0002\u15a6\u15a7\u0003\u0002\u0002\u0002\u15a7\u15a9\u0003\u0002",
    "\u0002\u0002\u15a8\u1596\u0003\u0002\u0002\u0002\u15a8\u15a2\u0003\u0002",
    "\u0002\u0002\u15a9\u0219\u0003\u0002\u0002\u0002\u15aa\u15ab\t[\u0002",
    "\u0002\u15ab\u021b\u0003\u0002\u0002\u0002\u15ac\u15ae\u0007\u0413\u0002",
    "\u0002\u15ad\u15ac\u0003\u0002\u0002\u0002\u15ad\u15ae\u0003\u0002\u0002",
    "\u0002\u15ae\u15af\u0003\u0002\u0002\u0002\u15af\u15b0\u0007\u040f\u0002",
    "\u0002\u15b0\u021d\u0003\u0002\u0002\u0002\u15b1\u15b3\u0007h\u0002",
    "\u0002\u15b2\u15b1\u0003\u0002\u0002\u0002\u15b2\u15b3\u0003\u0002\u0002",
    "\u0002\u15b3\u15b4\u0003\u0002\u0002\u0002\u15b4\u15b5\t\\\u0002\u0002",
    "\u15b5\u021f\u0003\u0002\u0002\u0002\u15b6\u15c3\u0005\u0218\u010d\u0002",
    "\u15b7\u15c3\u0005\u0214\u010b\u0002\u15b8\u15b9\u0007\u03f2\u0002\u0002",
    "\u15b9\u15c3\u0005\u0214\u010b\u0002\u15ba\u15c3\u0005\u021c\u010f\u0002",
    "\u15bb\u15c3\u0005\u021a\u010e\u0002\u15bc\u15c3\u0007\u0410\u0002\u0002",
    "\u15bd\u15c3\u0007\u0412\u0002\u0002\u15be\u15c0\u0007h\u0002\u0002",
    "\u15bf\u15be\u0003\u0002\u0002\u0002\u15bf\u15c0\u0003\u0002\u0002\u0002",
    "\u15c0\u15c1\u0003\u0002\u0002\u0002\u15c1\u15c3\t\\\u0002\u0002\u15c2",
    "\u15b6\u0003\u0002\u0002\u0002\u15c2\u15b7\u0003\u0002\u0002\u0002\u15c2",
    "\u15b8\u0003\u0002\u0002\u0002\u15c2\u15ba\u0003\u0002\u0002\u0002\u15c2",
    "\u15bb\u0003\u0002\u0002\u0002\u15c2\u15bc\u0003\u0002\u0002\u0002\u15c2",
    "\u15bd\u0003\u0002\u0002\u0002\u15c2\u15bf\u0003\u0002\u0002\u0002\u15c3",
    "\u0221\u0003\u0002\u0002\u0002\u15c4\u15c6\t]\u0002\u0002\u15c5\u15c7",
    "\u0005\u0228\u0115\u0002\u15c6\u15c5\u0003\u0002\u0002\u0002\u15c6\u15c7",
    "\u0003\u0002\u0002\u0002\u15c7\u15c9\u0003\u0002\u0002\u0002\u15c8\u15ca",
    "\u0007\u00d2\u0002\u0002\u15c9\u15c8\u0003\u0002\u0002\u0002\u15c9\u15ca",
    "\u0003\u0002\u0002\u0002\u15ca\u15d1\u0003\u0002\u0002\u0002\u15cb\u15cc",
    "\u0007\u0018\u0002\u0002\u15cc\u15cf\u0007\u008c\u0002\u0002\u15cd\u15cf",
    "\u0007\u02dd\u0002\u0002\u15ce\u15cb\u0003\u0002\u0002\u0002\u15ce\u15cd",
    "\u0003\u0002\u0002\u0002\u15cf\u15d0\u0003\u0002\u0002\u0002\u15d0\u15d2",
    "\u0005\u0200\u0101\u0002\u15d1\u15ce\u0003\u0002\u0002\u0002\u15d1\u15d2",
    "\u0003\u0002\u0002\u0002\u15d2\u15d5\u0003\u0002\u0002\u0002\u15d3\u15d4",
    "\u0007\u001a\u0002\u0002\u15d4\u15d6\u0005\u0202\u0102\u0002\u15d5\u15d3",
    "\u0003\u0002\u0002\u0002\u15d5\u15d6\u0003\u0002\u0002\u0002\u15d6\u1644",
    "\u0003\u0002\u0002\u0002\u15d7\u15d8\u0007\u00d1\u0002\u0002\u15d8\u15da",
    "\t^\u0002\u0002\u15d9\u15db\u0005\u0228\u0115\u0002\u15da\u15d9\u0003",
    "\u0002\u0002\u0002\u15da\u15db\u0003\u0002\u0002\u0002\u15db\u15dd\u0003",
    "\u0002\u0002\u0002\u15dc\u15de\u0007\u00d2\u0002\u0002\u15dd\u15dc\u0003",
    "\u0002\u0002\u0002\u15dd\u15de\u0003\u0002\u0002\u0002\u15de\u1644\u0003",
    "\u0002\u0002\u0002\u15df\u15e0\u0007\u01bf\u0002\u0002\u15e0\u15e2\u0007",
    "\u00cf\u0002\u0002\u15e1\u15e3\u0005\u0228\u0115\u0002\u15e2\u15e1\u0003",
    "\u0002\u0002\u0002\u15e2\u15e3\u0003\u0002\u0002\u0002\u15e3\u15e5\u0003",
    "\u0002\u0002\u0002\u15e4\u15e6\u0007\u00d2\u0002\u0002\u15e5\u15e4\u0003",
    "\u0002\u0002\u0002\u15e5\u15e6\u0003\u0002\u0002\u0002\u15e6\u1644\u0003",
    "\u0002\u0002\u0002\u15e7\u15e8\u0007\u00d1\u0002\u0002\u15e8\u15e9\t",
    "_\u0002\u0002\u15e9\u15eb\u0007\u00de\u0002\u0002\u15ea\u15ec\u0005",
    "\u0228\u0115\u0002\u15eb\u15ea\u0003\u0002\u0002\u0002\u15eb\u15ec\u0003",
    "\u0002\u0002\u0002\u15ec\u15ee\u0003\u0002\u0002\u0002\u15ed\u15ef\u0007",
    "\u00d2\u0002\u0002\u15ee\u15ed\u0003\u0002\u0002\u0002\u15ee\u15ef\u0003",
    "\u0002\u0002\u0002\u15ef\u1644\u0003\u0002\u0002\u0002\u15f0\u15f2\t",
    "`\u0002\u0002\u15f1\u15f3\u0005\u0228\u0115\u0002\u15f2\u15f1\u0003",
    "\u0002\u0002\u0002\u15f2\u15f3\u0003\u0002\u0002\u0002\u15f3\u15f5\u0003",
    "\u0002\u0002\u0002\u15f4\u15f6\ta\u0002\u0002\u15f5\u15f4\u0003\u0002",
    "\u0002\u0002\u15f5\u15f6\u0003\u0002\u0002\u0002\u15f6\u15f8\u0003\u0002",
    "\u0002\u0002\u15f7\u15f9\u0007\u00b3\u0002\u0002\u15f8\u15f7\u0003\u0002",
    "\u0002\u0002\u15f8\u15f9\u0003\u0002\u0002\u0002\u15f9\u1644\u0003\u0002",
    "\u0002\u0002\u15fa\u15fc\u0007\u00c0\u0002\u0002\u15fb\u15fd\u0005\u022a",
    "\u0116\u0002\u15fc\u15fb\u0003\u0002\u0002\u0002\u15fc\u15fd\u0003\u0002",
    "\u0002\u0002\u15fd\u15ff\u0003\u0002\u0002\u0002\u15fe\u1600\ta\u0002",
    "\u0002\u15ff\u15fe\u0003\u0002\u0002\u0002\u15ff\u1600\u0003\u0002\u0002",
    "\u0002\u1600\u1602\u0003\u0002\u0002\u0002\u1601\u1603\u0007\u00b3\u0002",
    "\u0002\u1602\u1601\u0003\u0002\u0002\u0002\u1602\u1603\u0003\u0002\u0002",
    "\u0002\u1603\u1644\u0003\u0002\u0002\u0002\u1604\u1606\u0007\u00c1\u0002",
    "\u0002\u1605\u1607\u0007\u00c2\u0002\u0002\u1606\u1605\u0003\u0002\u0002",
    "\u0002\u1606\u1607\u0003\u0002\u0002\u0002\u1607\u1609\u0003\u0002\u0002",
    "\u0002\u1608\u160a\u0005\u022a\u0116\u0002\u1609\u1608\u0003\u0002\u0002",
    "\u0002\u1609\u160a\u0003\u0002\u0002\u0002\u160a\u160c\u0003\u0002\u0002",
    "\u0002\u160b\u160d\ta\u0002\u0002\u160c\u160b\u0003\u0002\u0002\u0002",
    "\u160c\u160d\u0003\u0002\u0002\u0002\u160d\u160f\u0003\u0002\u0002\u0002",
    "\u160e\u1610\u0007\u00b3\u0002\u0002\u160f\u160e\u0003\u0002\u0002\u0002",
    "\u160f\u1610\u0003\u0002\u0002\u0002\u1610\u1644\u0003\u0002\u0002\u0002",
    "\u1611\u1613\tb\u0002\u0002\u1612\u1614\u0005\u022c\u0117\u0002\u1613",
    "\u1612\u0003\u0002\u0002\u0002\u1613\u1614\u0003\u0002\u0002\u0002\u1614",
    "\u1616\u0003\u0002\u0002\u0002\u1615\u1617\ta\u0002\u0002\u1616\u1615",
    "\u0003\u0002\u0002\u0002\u1616\u1617\u0003\u0002\u0002\u0002\u1617\u1619",
    "\u0003\u0002\u0002\u0002\u1618\u161a\u0007\u00b3\u0002\u0002\u1619\u1618",
    "\u0003\u0002\u0002\u0002\u1619\u161a\u0003\u0002\u0002\u0002\u161a\u1644",
    "\u0003\u0002\u0002\u0002\u161b\u1644\tc\u0002\u0002\u161c\u161e\td\u0002",
    "\u0002\u161d\u161f\u0005\u0228\u0115\u0002\u161e\u161d\u0003\u0002\u0002",
    "\u0002\u161e\u161f\u0003\u0002\u0002\u0002\u161f\u1644\u0003\u0002\u0002",
    "\u0002\u1620\u1621\te\u0002\u0002\u1621\u1623\u0005\u0224\u0113\u0002",
    "\u1622\u1624\u0007\u00d2\u0002\u0002\u1623\u1622\u0003\u0002\u0002\u0002",
    "\u1623\u1624\u0003\u0002\u0002\u0002\u1624\u162b\u0003\u0002\u0002\u0002",
    "\u1625\u1626\u0007\u0018\u0002\u0002\u1626\u1629\u0007\u008c\u0002\u0002",
    "\u1627\u1629\u0007\u02dd\u0002\u0002\u1628\u1625\u0003\u0002\u0002\u0002",
    "\u1628\u1627\u0003\u0002\u0002\u0002\u1629\u162a\u0003\u0002\u0002\u0002",
    "\u162a\u162c\u0005\u0200\u0101\u0002\u162b\u1628\u0003\u0002\u0002\u0002",
    "\u162b\u162c\u0003\u0002\u0002\u0002\u162c\u1644\u0003\u0002\u0002\u0002",
    "\u162d\u1644\tf\u0002\u0002\u162e\u1630\u0007\u00d7\u0002\u0002\u162f",
    "\u1631\u0007\u00cf\u0002\u0002\u1630\u162f\u0003\u0002\u0002\u0002\u1630",
    "\u1631\u0003\u0002\u0002\u0002\u1631\u1633\u0003\u0002\u0002\u0002\u1632",
    "\u1634\u0007\u00d2\u0002\u0002\u1633\u1632\u0003\u0002\u0002\u0002\u1633",
    "\u1634\u0003\u0002\u0002\u0002\u1634\u163b\u0003\u0002\u0002\u0002\u1635",
    "\u1636\u0007\u0018\u0002\u0002\u1636\u1639\u0007\u008c\u0002\u0002\u1637",
    "\u1639\u0007\u02dd\u0002\u0002\u1638\u1635\u0003\u0002\u0002\u0002\u1638",
    "\u1637\u0003\u0002\u0002\u0002\u1639\u163a\u0003\u0002\u0002\u0002\u163a",
    "\u163c\u0005\u0200\u0101\u0002\u163b\u1638\u0003\u0002\u0002\u0002\u163b",
    "\u163c\u0003\u0002\u0002\u0002\u163c\u163f\u0003\u0002\u0002\u0002\u163d",
    "\u163e\u0007\u001a\u0002\u0002\u163e\u1640\u0005\u0202\u0102\u0002\u163f",
    "\u163d\u0003\u0002\u0002\u0002\u163f\u1640\u0003\u0002\u0002\u0002\u1640",
    "\u1644\u0003\u0002\u0002\u0002\u1641\u1642\u0007\u00d7\u0002\u0002\u1642",
    "\u1644\u0007\u00d3\u0002\u0002\u1643\u15c4\u0003\u0002\u0002\u0002\u1643",
    "\u15d7\u0003\u0002\u0002\u0002\u1643\u15df\u0003\u0002\u0002\u0002\u1643",
    "\u15e7\u0003\u0002\u0002\u0002\u1643\u15f0\u0003\u0002\u0002\u0002\u1643",
    "\u15fa\u0003\u0002\u0002\u0002\u1643\u1604\u0003\u0002\u0002\u0002\u1643",
    "\u1611\u0003\u0002\u0002\u0002\u1643\u161b\u0003\u0002\u0002\u0002\u1643",
    "\u161c\u0003\u0002\u0002\u0002\u1643\u1620\u0003\u0002\u0002\u0002\u1643",
    "\u162d\u0003\u0002\u0002\u0002\u1643\u162e\u0003\u0002\u0002\u0002\u1643",
    "\u1641\u0003\u0002\u0002\u0002\u1644\u0223\u0003\u0002\u0002\u0002\u1645",
    "\u1646\u0007\u03fe\u0002\u0002\u1646\u164b\u0007\u040d\u0002\u0002\u1647",
    "\u1648\u0007\u0400\u0002\u0002\u1648\u164a\u0007\u040d\u0002\u0002\u1649",
    "\u1647\u0003\u0002\u0002\u0002\u164a\u164d\u0003\u0002\u0002\u0002\u164b",
    "\u1649\u0003\u0002\u0002\u0002\u164b\u164c\u0003\u0002\u0002\u0002\u164c",
    "\u164e\u0003\u0002\u0002\u0002\u164d\u164b\u0003\u0002\u0002\u0002\u164e",
    "\u164f\u0007\u03ff\u0002\u0002\u164f\u0225\u0003\u0002\u0002\u0002\u1650",
    "\u1652\tg\u0002\u0002\u1651\u1653\u0005\u0228\u0115\u0002\u1652\u1651",
    "\u0003\u0002\u0002\u0002\u1652\u1653\u0003\u0002\u0002\u0002\u1653\u166a",
    "\u0003\u0002\u0002\u0002\u1654\u1656\u0007\u00ce\u0002\u0002\u1655\u1657",
    "\u0005\u0228\u0115\u0002\u1656\u1655\u0003\u0002\u0002\u0002\u1656\u1657",
    "\u0003\u0002\u0002\u0002\u1657\u165e\u0003\u0002\u0002\u0002\u1658\u1659",
    "\u0007\u0018\u0002\u0002\u1659\u165c\u0007\u008c\u0002\u0002\u165a\u165c",
    "\u0007\u02dd\u0002\u0002\u165b\u1658\u0003\u0002\u0002\u0002\u165b\u165a",
    "\u0003\u0002\u0002\u0002\u165c\u165d\u0003\u0002\u0002\u0002\u165d\u165f",
    "\u0005\u0200\u0101\u0002\u165e\u165b\u0003\u0002\u0002\u0002\u165e\u165f",
    "\u0003\u0002\u0002\u0002\u165f\u166a\u0003\u0002\u0002\u0002\u1660\u166a",
    "\th\u0002\u0002\u1661\u1663\u0007\u00c6\u0002\u0002\u1662\u1664\u0005",
    "\u022a\u0116\u0002\u1663\u1662\u0003\u0002\u0002\u0002\u1663\u1664\u0003",
    "\u0002\u0002\u0002\u1664\u166a\u0003\u0002\u0002\u0002\u1665\u1667\t",
    "a\u0002\u0002\u1666\u1668\u0007\u00be\u0002\u0002\u1667\u1666\u0003",
    "\u0002\u0002\u0002\u1667\u1668\u0003\u0002\u0002\u0002\u1668\u166a\u0003",
    "\u0002\u0002\u0002\u1669\u1650\u0003\u0002\u0002\u0002\u1669\u1654\u0003",
    "\u0002\u0002\u0002\u1669\u1660\u0003\u0002\u0002\u0002\u1669\u1661\u0003",
    "\u0002\u0002\u0002\u1669\u1665\u0003\u0002\u0002\u0002\u166a\u0227\u0003",
    "\u0002\u0002\u0002\u166b\u166c\u0007\u03fe\u0002\u0002\u166c\u166d\u0005",
    "\u0214\u010b\u0002\u166d\u166e\u0007\u03ff\u0002\u0002\u166e\u0229\u0003",
    "\u0002\u0002\u0002\u166f\u1670\u0007\u03fe\u0002\u0002\u1670\u1671\u0005",
    "\u0214\u010b\u0002\u1671\u1672\u0007\u0400\u0002\u0002\u1672\u1673\u0005",
    "\u0214\u010b\u0002\u1673\u1674\u0007\u03ff\u0002\u0002\u1674\u022b\u0003",
    "\u0002\u0002\u0002\u1675\u1676\u0007\u03fe\u0002\u0002\u1676\u1679\u0005",
    "\u0214\u010b\u0002\u1677\u1678\u0007\u0400\u0002\u0002\u1678\u167a\u0005",
    "\u0214\u010b\u0002\u1679\u1677\u0003\u0002\u0002\u0002\u1679\u167a\u0003",
    "\u0002\u0002\u0002\u167a\u167b\u0003\u0002\u0002\u0002\u167b\u167c\u0007",
    "\u03ff\u0002\u0002\u167c\u022d\u0003\u0002\u0002\u0002\u167d\u1682\u0005",
    "\u020e\u0108\u0002\u167e\u167f\u0007\u0400\u0002\u0002\u167f\u1681\u0005",
    "\u020e\u0108\u0002\u1680\u167e\u0003\u0002\u0002\u0002\u1681\u1684\u0003",
    "\u0002\u0002\u0002\u1682\u1680\u0003\u0002\u0002\u0002\u1682\u1683\u0003",
    "\u0002\u0002\u0002\u1683\u022f\u0003\u0002\u0002\u0002\u1684\u1682\u0003",
    "\u0002\u0002\u0002\u1685\u168a\u0005\u01f6\u00fc\u0002\u1686\u1687\u0007",
    "\u0400\u0002\u0002\u1687\u1689\u0005\u01f6\u00fc\u0002\u1688\u1686\u0003",
    "\u0002\u0002\u0002\u1689\u168c\u0003\u0002\u0002\u0002\u168a\u1688\u0003",
    "\u0002\u0002\u0002\u168a\u168b\u0003\u0002\u0002\u0002\u168b\u0231\u0003",
    "\u0002\u0002\u0002\u168c\u168a\u0003\u0002\u0002\u0002\u168d\u168e\u0007",
    "\u03fe\u0002\u0002\u168e\u1693\u0005\u01fa\u00fe\u0002\u168f\u1690\u0007",
    "\u0400\u0002\u0002\u1690\u1692\u0005\u01fa\u00fe\u0002\u1691\u168f\u0003",
    "\u0002\u0002\u0002\u1692\u1695\u0003\u0002\u0002\u0002\u1693\u1691\u0003",
    "\u0002\u0002\u0002\u1693\u1694\u0003\u0002\u0002\u0002\u1694\u1696\u0003",
    "\u0002\u0002\u0002\u1695\u1693\u0003\u0002\u0002\u0002\u1696\u1697\u0007",
    "\u03ff\u0002\u0002\u1697\u0233\u0003\u0002\u0002\u0002\u1698\u169d\u0005",
    "\u025c\u012f\u0002\u1699\u169a\u0007\u0400\u0002\u0002\u169a\u169c\u0005",
    "\u025c\u012f\u0002\u169b\u1699\u0003\u0002\u0002\u0002\u169c\u169f\u0003",
    "\u0002\u0002\u0002\u169d\u169b\u0003\u0002\u0002\u0002\u169d\u169e\u0003",
    "\u0002\u0002\u0002\u169e\u0235\u0003\u0002\u0002\u0002\u169f\u169d\u0003",
    "\u0002\u0002\u0002\u16a0\u16a5\u0005\u0242\u0122\u0002\u16a1\u16a2\u0007",
    "\u0400\u0002\u0002\u16a2\u16a4\u0005\u0242\u0122\u0002\u16a3\u16a1\u0003",
    "\u0002\u0002\u0002\u16a4\u16a7\u0003\u0002\u0002\u0002\u16a5\u16a3\u0003",
    "\u0002\u0002\u0002\u16a5\u16a6\u0003\u0002\u0002\u0002\u16a6\u0237\u0003",
    "\u0002\u0002\u0002\u16a7\u16a5\u0003\u0002\u0002\u0002\u16a8\u16ad\u0005",
    "\u0220\u0111\u0002\u16a9\u16aa\u0007\u0400\u0002\u0002\u16aa\u16ac\u0005",
    "\u0220\u0111\u0002\u16ab\u16a9\u0003\u0002\u0002\u0002\u16ac\u16af\u0003",
    "\u0002\u0002\u0002\u16ad\u16ab\u0003\u0002\u0002\u0002\u16ad\u16ae\u0003",
    "\u0002\u0002\u0002\u16ae\u0239\u0003\u0002\u0002\u0002\u16af\u16ad\u0003",
    "\u0002\u0002\u0002\u16b0\u16b5\u0007\u040d\u0002\u0002\u16b1\u16b2\u0007",
    "\u0400\u0002\u0002\u16b2\u16b4\u0007\u040d\u0002\u0002\u16b3\u16b1\u0003",
    "\u0002\u0002\u0002\u16b4\u16b7\u0003\u0002\u0002\u0002\u16b5\u16b3\u0003",
    "\u0002\u0002\u0002\u16b5\u16b6\u0003\u0002\u0002\u0002\u16b6\u023b\u0003",
    "\u0002\u0002\u0002\u16b7\u16b5\u0003\u0002\u0002\u0002\u16b8\u16bd\u0007",
    "\u0418\u0002\u0002\u16b9\u16ba\u0007\u0400\u0002\u0002\u16ba\u16bc\u0007",
    "\u0418\u0002\u0002\u16bb\u16b9\u0003\u0002\u0002\u0002\u16bc\u16bf\u0003",
    "\u0002\u0002\u0002\u16bd\u16bb\u0003\u0002\u0002\u0002\u16bd\u16be\u0003",
    "\u0002\u0002\u0002\u16be\u023d\u0003\u0002\u0002\u0002\u16bf\u16bd\u0003",
    "\u0002\u0002\u0002\u16c0\u16cc\u0007j\u0002\u0002\u16c1\u16c3\u0005",
    "\u0262\u0132\u0002\u16c2\u16c1\u0003\u0002\u0002\u0002\u16c2\u16c3\u0003",
    "\u0002\u0002\u0002\u16c3\u16c4\u0003\u0002\u0002\u0002\u16c4\u16cc\u0005",
    "\u0220\u0111\u0002\u16c5\u16c9\u0005\u0240\u0121\u0002\u16c6\u16c7\u0007",
    "l\u0002\u0002\u16c7\u16c8\u0007\u00a8\u0002\u0002\u16c8\u16ca\u0005",
    "\u0240\u0121\u0002\u16c9\u16c6\u0003\u0002\u0002\u0002\u16c9\u16ca\u0003",
    "\u0002\u0002\u0002\u16ca\u16cc\u0003\u0002\u0002\u0002\u16cb\u16c0\u0003",
    "\u0002\u0002\u0002\u16cb\u16c2\u0003\u0002\u0002\u0002\u16cb\u16c5\u0003",
    "\u0002\u0002\u0002\u16cc\u023f\u0003\u0002\u0002\u0002\u16cd\u16d3\t",
    "i\u0002\u0002\u16ce\u16d0\u0007\u03fe\u0002\u0002\u16cf\u16d1\u0005",
    "\u0214\u010b\u0002\u16d0\u16cf\u0003\u0002\u0002\u0002\u16d0\u16d1\u0003",
    "\u0002\u0002\u0002\u16d1\u16d2\u0003\u0002\u0002\u0002\u16d2\u16d4\u0007",
    "\u03ff\u0002\u0002\u16d3\u16ce\u0003\u0002\u0002\u0002\u16d3\u16d4\u0003",
    "\u0002\u0002\u0002\u16d4\u16dc\u0003\u0002\u0002\u0002\u16d5\u16d6\u0007",
    "\u0107\u0002\u0002\u16d6\u16d8\u0007\u03fe\u0002\u0002\u16d7\u16d9\u0005",
    "\u0214\u010b\u0002\u16d8\u16d7\u0003\u0002\u0002\u0002\u16d8\u16d9\u0003",
    "\u0002\u0002\u0002\u16d9\u16da\u0003\u0002\u0002\u0002\u16da\u16dc\u0007",
    "\u03ff\u0002\u0002\u16db\u16cd\u0003\u0002\u0002\u0002\u16db\u16d5\u0003",
    "\u0002\u0002\u0002\u16dc\u0241\u0003\u0002\u0002\u0002\u16dd\u16e0\u0005",
    "\u025c\u012f\u0002\u16de\u16e0\u0007(\u0002\u0002\u16df\u16dd\u0003",
    "\u0002\u0002\u0002\u16df\u16de\u0003\u0002\u0002\u0002\u16e0\u0243\u0003",
    "\u0002\u0002\u0002\u16e1\u16e2\u0007G\u0002\u0002\u16e2\u16e3\u0007",
    "7\u0002\u0002\u16e3\u0245\u0003\u0002\u0002\u0002\u16e4\u16e5\u0007",
    "G\u0002\u0002\u16e5\u16e6\u0007h\u0002\u0002\u16e6\u16e7\u00077\u0002",
    "\u0002\u16e7\u0247\u0003\u0002\u0002\u0002\u16e8\u16fa\u0005\u024a\u0126",
    "\u0002\u16e9\u16fa\u0005\u0252\u012a\u0002\u16ea\u16eb\u0005\u0254\u012b",
    "\u0002\u16eb\u16ed\u0007\u03fe\u0002\u0002\u16ec\u16ee\u0005\u0258\u012d",
    "\u0002\u16ed\u16ec\u0003\u0002\u0002\u0002\u16ed\u16ee\u0003\u0002\u0002",
    "\u0002\u16ee\u16ef\u0003\u0002\u0002\u0002\u16ef\u16f0\u0007\u03ff\u0002",
    "\u0002\u16f0\u16fa\u0003\u0002\u0002\u0002\u16f1\u16f2\u0005\u01f4\u00fb",
    "\u0002\u16f2\u16f4\u0007\u03fe\u0002\u0002\u16f3\u16f5\u0005\u0258\u012d",
    "\u0002\u16f4\u16f3\u0003\u0002\u0002\u0002\u16f4\u16f5\u0003\u0002\u0002",
    "\u0002\u16f5\u16f6\u0003\u0002\u0002\u0002\u16f6\u16f7\u0007\u03ff\u0002",
    "\u0002\u16f7\u16fa\u0003\u0002\u0002\u0002\u16f8\u16fa\u0005\u0256\u012c",
    "\u0002\u16f9\u16e8\u0003\u0002\u0002\u0002\u16f9\u16e9\u0003\u0002\u0002",
    "\u0002\u16f9\u16ea\u0003\u0002\u0002\u0002\u16f9\u16f1\u0003\u0002\u0002",
    "\u0002\u16f9\u16f8\u0003\u0002\u0002\u0002\u16fa\u0249\u0003\u0002\u0002",
    "\u0002\u16fb\u1799\tj\u0002\u0002\u16fc\u16fd\u0007\u001f\u0002\u0002",
    "\u16fd\u16fe\u0007\u03fe\u0002\u0002\u16fe\u16ff\u0005\u025c\u012f\u0002",
    "\u16ff\u1700\u0007\u0400\u0002\u0002\u1700\u1701\u0005\u0226\u0114\u0002",
    "\u1701\u1702\u0007\u03ff\u0002\u0002\u1702\u1799\u0003\u0002\u0002\u0002",
    "\u1703\u1704\u0007\u001f\u0002\u0002\u1704\u1705\u0007\u03fe\u0002\u0002",
    "\u1705\u1706\u0005\u025c\u012f\u0002\u1706\u1707\u0007\u00ab\u0002\u0002",
    "\u1707\u1708\u0005\u0200\u0101\u0002\u1708\u1709\u0007\u03ff\u0002\u0002",
    "\u1709\u1799\u0003\u0002\u0002\u0002\u170a\u170b\u0007\u0016\u0002\u0002",
    "\u170b\u170c\u0007\u03fe\u0002\u0002\u170c\u170d\u0005\u025c\u012f\u0002",
    "\u170d\u170e\u0007\r\u0002\u0002\u170e\u170f\u0005\u0226\u0114\u0002",
    "\u170f\u1710\u0007\u03ff\u0002\u0002\u1710\u1799\u0003\u0002\u0002\u0002",
    "\u1711\u1712\u0007\u00ac\u0002\u0002\u1712\u1713\u0007\u03fe\u0002\u0002",
    "\u1713\u1714\u0005\u01f8\u00fd\u0002\u1714\u1715\u0007\u03ff\u0002\u0002",
    "\u1715\u1799\u0003\u0002\u0002\u0002\u1716\u1717\u0007\u0015\u0002\u0002",
    "\u1717\u1719\u0005\u025c\u012f\u0002\u1718\u171a\u0005\u024c\u0127\u0002",
    "\u1719\u1718\u0003\u0002\u0002\u0002\u171a\u171b\u0003\u0002\u0002\u0002",
    "\u171b\u1719\u0003\u0002\u0002\u0002\u171b\u171c\u0003\u0002\u0002\u0002",
    "\u171c\u171f\u0003\u0002\u0002\u0002\u171d\u171e\u00073\u0002\u0002",
    "\u171e\u1720\u0005\u025a\u012e\u0002\u171f\u171d\u0003\u0002\u0002\u0002",
    "\u171f\u1720\u0003\u0002\u0002\u0002\u1720\u1721\u0003\u0002\u0002\u0002",
    "\u1721\u1722\u0007\u0156\u0002\u0002\u1722\u1799\u0003\u0002\u0002\u0002",
    "\u1723\u1725\u0007\u0015\u0002\u0002\u1724\u1726\u0005\u024c\u0127\u0002",
    "\u1725\u1724\u0003\u0002\u0002\u0002\u1726\u1727\u0003\u0002\u0002\u0002",
    "\u1727\u1725\u0003\u0002\u0002\u0002\u1727\u1728\u0003\u0002\u0002\u0002",
    "\u1728\u172b\u0003\u0002\u0002\u0002\u1729\u172a\u00073\u0002\u0002",
    "\u172a\u172c\u0005\u025a\u012e\u0002\u172b\u1729\u0003\u0002\u0002\u0002",
    "\u172b\u172c\u0003\u0002\u0002\u0002\u172c\u172d\u0003\u0002\u0002\u0002",
    "\u172d\u172e\u0007\u0156\u0002\u0002\u172e\u1799\u0003\u0002\u0002\u0002",
    "\u172f\u1730\u0007\u00ce\u0002\u0002\u1730\u1731\u0007\u03fe\u0002\u0002",
    "\u1731\u1734\u0005\u0258\u012d\u0002\u1732\u1733\u0007\u00ab\u0002\u0002",
    "\u1733\u1735\u0005\u0200\u0101\u0002\u1734\u1732\u0003\u0002\u0002\u0002",
    "\u1734\u1735\u0003\u0002\u0002\u0002\u1735\u1736\u0003\u0002\u0002\u0002",
    "\u1736\u1737\u0007\u03ff\u0002\u0002\u1737\u1799\u0003\u0002\u0002\u0002",
    "\u1738\u1739\u0007\u0108\u0002\u0002\u1739\u173c\u0007\u03fe\u0002\u0002",
    "\u173a\u173d\u0005\u0218\u010d\u0002\u173b\u173d\u0005\u025c\u012f\u0002",
    "\u173c\u173a\u0003\u0002\u0002\u0002\u173c\u173b\u0003\u0002\u0002\u0002",
    "\u173d\u173e\u0003\u0002\u0002\u0002\u173e\u1741\u0007I\u0002\u0002",
    "\u173f\u1742\u0005\u0218\u010d\u0002\u1740\u1742\u0005\u025c\u012f\u0002",
    "\u1741\u173f\u0003\u0002\u0002\u0002\u1741\u1740\u0003\u0002\u0002\u0002",
    "\u1742\u1743\u0003\u0002\u0002\u0002\u1743\u1744\u0007\u03ff\u0002\u0002",
    "\u1744\u1799\u0003\u0002\u0002\u0002\u1745\u1746\tk\u0002\u0002\u1746",
    "\u1749\u0007\u03fe\u0002\u0002\u1747\u174a\u0005\u0218\u010d\u0002\u1748",
    "\u174a\u0005\u025c\u012f\u0002\u1749\u1747\u0003\u0002\u0002\u0002\u1749",
    "\u1748\u0003\u0002\u0002\u0002\u174a\u174b\u0003\u0002\u0002\u0002\u174b",
    "\u174e\u0007?\u0002\u0002\u174c\u174f\u0005\u0214\u010b\u0002\u174d",
    "\u174f\u0005\u025c\u012f\u0002\u174e\u174c\u0003\u0002\u0002\u0002\u174e",
    "\u174d\u0003\u0002\u0002\u0002\u174f\u1755\u0003\u0002\u0002\u0002\u1750",
    "\u1753\u0007<\u0002\u0002\u1751\u1754\u0005\u0214\u010b\u0002\u1752",
    "\u1754\u0005\u025c\u012f\u0002\u1753\u1751\u0003\u0002\u0002\u0002\u1753",
    "\u1752\u0003\u0002\u0002\u0002\u1754\u1756\u0003\u0002\u0002\u0002\u1755",
    "\u1750\u0003\u0002\u0002\u0002\u1755\u1756\u0003\u0002\u0002\u0002\u1756",
    "\u1757\u0003\u0002\u0002\u0002\u1757\u1758\u0007\u03ff\u0002\u0002\u1758",
    "\u1799\u0003\u0002\u0002\u0002\u1759\u175a\u0007\u010c\u0002\u0002\u175a",
    "\u175b\u0007\u03fe\u0002\u0002\u175b\u175e\tl\u0002\u0002\u175c\u175f",
    "\u0005\u0218\u010d\u0002\u175d\u175f\u0005\u025c\u012f\u0002\u175e\u175c",
    "\u0003\u0002\u0002\u0002\u175e\u175d\u0003\u0002\u0002\u0002\u175e\u175f",
    "\u0003\u0002\u0002\u0002\u175f\u1760\u0003\u0002\u0002\u0002\u1760\u1763",
    "\u0007?\u0002\u0002\u1761\u1764\u0005\u0218\u010d\u0002\u1762\u1764",
    "\u0005\u025c\u012f\u0002\u1763\u1761\u0003\u0002\u0002\u0002\u1763\u1762",
    "\u0003\u0002\u0002\u0002\u1764\u1765\u0003\u0002\u0002\u0002\u1765\u1766",
    "\u0007\u03ff\u0002\u0002\u1766\u1799\u0003\u0002\u0002\u0002\u1767\u1768",
    "\u0007\u010c\u0002\u0002\u1768\u176b\u0007\u03fe\u0002\u0002\u1769\u176c",
    "\u0005\u0218\u010d\u0002\u176a\u176c\u0005\u025c\u012f\u0002\u176b\u1769",
    "\u0003\u0002\u0002\u0002\u176b\u176a\u0003\u0002\u0002\u0002\u176c\u176d",
    "\u0003\u0002\u0002\u0002\u176d\u1770\u0007?\u0002\u0002\u176e\u1771",
    "\u0005\u0218\u010d\u0002\u176f\u1771\u0005\u025c\u012f\u0002\u1770\u176e",
    "\u0003\u0002\u0002\u0002\u1770\u176f\u0003\u0002\u0002\u0002\u1771\u1772",
    "\u0003\u0002\u0002\u0002\u1772\u1773\u0007\u03ff\u0002\u0002\u1773\u1799",
    "\u0003\u0002\u0002\u0002\u1774\u1775\u0007\u03df\u0002\u0002\u1775\u1778",
    "\u0007\u03fe\u0002\u0002\u1776\u1779\u0005\u0218\u010d\u0002\u1777\u1779",
    "\u0005\u025c\u012f\u0002\u1778\u1776\u0003\u0002\u0002\u0002\u1778\u1777",
    "\u0003\u0002\u0002\u0002\u1779\u1780\u0003\u0002\u0002\u0002\u177a\u177b",
    "\u0007\r\u0002\u0002\u177b\u177c\tm\u0002\u0002\u177c\u177d\u0007\u03fe",
    "\u0002\u0002\u177d\u177e\u0005\u0214\u010b\u0002\u177e\u177f\u0007\u03ff",
    "\u0002\u0002\u177f\u1781\u0003\u0002\u0002\u0002\u1780\u177a\u0003\u0002",
    "\u0002\u0002\u1780\u1781\u0003\u0002\u0002\u0002\u1781\u1783\u0003\u0002",
    "\u0002\u0002\u1782\u1784\u0005\u024e\u0128\u0002\u1783\u1782\u0003\u0002",
    "\u0002\u0002\u1783\u1784\u0003\u0002\u0002\u0002\u1784\u1785\u0003\u0002",
    "\u0002\u0002\u1785\u1786\u0007\u03ff\u0002\u0002\u1786\u1799\u0003\u0002",
    "\u0002\u0002\u1787\u1788\u0007\u0105\u0002\u0002\u1788\u1789\u0007\u03fe",
    "\u0002\u0002\u1789\u178a\u0005> \u0002\u178a\u178d\u0007?\u0002\u0002",
    "\u178b\u178e\u0005\u0218\u010d\u0002\u178c\u178e\u0005\u025c\u012f\u0002",
    "\u178d\u178b\u0003\u0002\u0002\u0002\u178d\u178c\u0003\u0002\u0002\u0002",
    "\u178e\u178f\u0003\u0002\u0002\u0002\u178f\u1790\u0007\u03ff\u0002\u0002",
    "\u1790\u1799\u0003\u0002\u0002\u0002\u1791\u1792\u0007\u0317\u0002\u0002",
    "\u1792\u1793\u0007\u03fe\u0002\u0002\u1793\u1794\tn\u0002\u0002\u1794",
    "\u1795\u0007\u0400\u0002\u0002\u1795\u1796\u0005\u0218\u010d\u0002\u1796",
    "\u1797\u0007\u03ff\u0002\u0002\u1797\u1799\u0003\u0002\u0002\u0002\u1798",
    "\u16fb\u0003\u0002\u0002\u0002\u1798\u16fc\u0003\u0002\u0002\u0002\u1798",
    "\u1703\u0003\u0002\u0002\u0002\u1798\u170a\u0003\u0002\u0002\u0002\u1798",
    "\u1711\u0003\u0002\u0002\u0002\u1798\u1716\u0003\u0002\u0002\u0002\u1798",
    "\u1723\u0003\u0002\u0002\u0002\u1798\u172f\u0003\u0002\u0002\u0002\u1798",
    "\u1738\u0003\u0002\u0002\u0002\u1798\u1745\u0003\u0002\u0002\u0002\u1798",
    "\u1759\u0003\u0002\u0002\u0002\u1798\u1767\u0003\u0002\u0002\u0002\u1798",
    "\u1774\u0003\u0002\u0002\u0002\u1798\u1787\u0003\u0002\u0002\u0002\u1798",
    "\u1791\u0003\u0002\u0002\u0002\u1799\u024b\u0003\u0002\u0002\u0002\u179a",
    "\u179b\u0007\u00ad\u0002\u0002\u179b\u179c\u0005\u025a\u012e\u0002\u179c",
    "\u179d\u0007\u009e\u0002\u0002\u179d\u179e\u0005\u025a\u012e\u0002\u179e",
    "\u024d\u0003\u0002\u0002\u0002\u179f\u17a0\u0007\u0192\u0002\u0002\u17a0",
    "\u17a5\u0005\u0250\u0129\u0002\u17a1\u17a2\u0007\u0400\u0002\u0002\u17a2",
    "\u17a4\u0005\u0250\u0129\u0002\u17a3\u17a1\u0003\u0002\u0002\u0002\u17a4",
    "\u17a7\u0003\u0002\u0002\u0002\u17a5\u17a3\u0003\u0002\u0002\u0002\u17a5",
    "\u17a6\u0003\u0002\u0002\u0002\u17a6\u17ae\u0003\u0002\u0002\u0002\u17a7",
    "\u17a5\u0003\u0002\u0002\u0002\u17a8\u17a9\u0007\u0192\u0002\u0002\u17a9",
    "\u17aa\u0005\u0214\u010b\u0002\u17aa\u17ab\u0007\u03f2\u0002\u0002\u17ab",
    "\u17ac\u0005\u0214\u010b\u0002\u17ac\u17ae\u0003\u0002\u0002\u0002\u17ad",
    "\u179f\u0003\u0002\u0002\u0002\u17ad\u17a8\u0003\u0002\u0002\u0002\u17ae",
    "\u024f\u0003\u0002\u0002\u0002\u17af\u17b1\u0005\u0214\u010b\u0002\u17b0",
    "\u17b2\to\u0002\u0002\u17b1\u17b0\u0003\u0002\u0002\u0002\u17b1\u17b2",
    "\u0003\u0002\u0002\u0002\u17b2\u0251\u0003\u0002\u0002\u0002\u17b3\u17b4",
    "\tp\u0002\u0002\u17b4\u17b6\u0007\u03fe\u0002\u0002\u17b5\u17b7\t(\u0002",
    "\u0002\u17b6\u17b5\u0003\u0002\u0002\u0002\u17b6\u17b7\u0003\u0002\u0002",
    "\u0002\u17b7\u17b8\u0003\u0002\u0002\u0002\u17b8\u17b9\u0005\u025a\u012e",
    "\u0002\u17b9\u17ba\u0007\u03ff\u0002\u0002\u17ba\u17ec\u0003\u0002\u0002",
    "\u0002\u17bb\u17bc\u0007\u00f1\u0002\u0002\u17bc\u17c2\u0007\u03fe\u0002",
    "\u0002\u17bd\u17c3\u0007\u03ed\u0002\u0002\u17be\u17c0\u0007\b\u0002",
    "\u0002\u17bf\u17be\u0003\u0002\u0002\u0002\u17bf\u17c0\u0003\u0002\u0002",
    "\u0002\u17c0\u17c1\u0003\u0002\u0002\u0002\u17c1\u17c3\u0005\u025a\u012e",
    "\u0002\u17c2\u17bd\u0003\u0002\u0002\u0002\u17c2\u17bf\u0003\u0002\u0002",
    "\u0002\u17c3\u17c4\u0003\u0002\u0002\u0002\u17c4\u17ec\u0007\u03ff\u0002",
    "\u0002\u17c5\u17c6\u0007\u00f1\u0002\u0002\u17c6\u17c7\u0007\u03fe\u0002",
    "\u0002\u17c7\u17c8\u0007/\u0002\u0002\u17c8\u17c9\u0005\u0258\u012d",
    "\u0002\u17c9\u17ca\u0007\u03ff\u0002\u0002\u17ca\u17ec\u0003\u0002\u0002",
    "\u0002\u17cb\u17cc\tq\u0002\u0002\u17cc\u17ce\u0007\u03fe\u0002\u0002",
    "\u17cd\u17cf\u0007\b\u0002\u0002\u17ce\u17cd\u0003\u0002\u0002\u0002",
    "\u17ce\u17cf\u0003\u0002\u0002\u0002\u17cf\u17d0\u0003\u0002\u0002\u0002",
    "\u17d0\u17d1\u0005\u025a\u012e\u0002\u17d1\u17d2\u0007\u03ff\u0002\u0002",
    "\u17d2\u17ec\u0003\u0002\u0002\u0002\u17d3\u17d4\u0007\u00f2\u0002\u0002",
    "\u17d4\u17d6\u0007\u03fe\u0002\u0002\u17d5\u17d7\u0007/\u0002\u0002",
    "\u17d6\u17d5\u0003\u0002\u0002\u0002\u17d6\u17d7\u0003\u0002\u0002\u0002",
    "\u17d7\u17d8\u0003\u0002\u0002\u0002\u17d8\u17e3\u0005\u0258\u012d\u0002",
    "\u17d9\u17da\u0007q\u0002\u0002\u17da\u17db\u0007\u0012\u0002\u0002",
    "\u17db\u17e0\u0005\u00d4k\u0002\u17dc\u17dd\u0007\u0400\u0002\u0002",
    "\u17dd\u17df\u0005\u00d4k\u0002\u17de\u17dc\u0003\u0002\u0002\u0002",
    "\u17df\u17e2\u0003\u0002\u0002\u0002\u17e0\u17de\u0003\u0002\u0002\u0002",
    "\u17e0\u17e1\u0003\u0002\u0002\u0002\u17e1\u17e4\u0003\u0002\u0002\u0002",
    "\u17e2\u17e0\u0003\u0002\u0002\u0002\u17e3\u17d9\u0003\u0002\u0002\u0002",
    "\u17e3\u17e4\u0003\u0002\u0002\u0002\u17e4\u17e7\u0003\u0002\u0002\u0002",
    "\u17e5\u17e6\u0007\u008d\u0002\u0002\u17e6\u17e8\u0007\u040d\u0002\u0002",
    "\u17e7\u17e5\u0003\u0002\u0002\u0002\u17e7\u17e8\u0003\u0002\u0002\u0002",
    "\u17e8\u17e9\u0003\u0002\u0002\u0002\u17e9\u17ea\u0007\u03ff\u0002\u0002",
    "\u17ea\u17ec\u0003\u0002\u0002\u0002\u17eb\u17b3\u0003\u0002\u0002\u0002",
    "\u17eb\u17bb\u0003\u0002\u0002\u0002\u17eb\u17c5\u0003\u0002\u0002\u0002",
    "\u17eb\u17cb\u0003\u0002\u0002\u0002\u17eb\u17d3\u0003\u0002\u0002\u0002",
    "\u17ec\u0253\u0003\u0002\u0002\u0002\u17ed\u1805\u0005\u0278\u013d\u0002",
    "\u17ee\u1805\u0007\u0280\u0002\u0002\u17ef\u1805\u0007\u0101\u0002\u0002",
    "\u17f0\u1805\u0007\u00fd\u0002\u0002\u17f1\u1805\u0007\u00fe\u0002\u0002",
    "\u17f2\u1805\u0007\u00ff\u0002\u0002\u17f3\u1805\u0007\u0102\u0002\u0002",
    "\u17f4\u1805\u0007\u0103\u0002\u0002\u17f5\u1805\u0007\u0104\u0002\u0002",
    "\u17f6\u1805\u0007G\u0002\u0002\u17f7\u1805\u0007N\u0002\u0002\u17f8",
    "\u1805\u0007\u0100\u0002\u0002\u17f9\u1805\u0007\u0106\u0002\u0002\u17fa",
    "\u1805\u0007\u01b5\u0002\u0002\u17fb\u1805\u0007\u0107\u0002\u0002\u17fc",
    "\u1805\u0007\u0081\u0002\u0002\u17fd\u1805\u0007\u0109\u0002\u0002\u17fe",
    "\u1805\u0007\u010a\u0002\u0002\u17ff\u1805\u0007\u010b\u0002\u0002\u1800",
    "\u1805\u0007\u010c\u0002\u0002\u1801\u1805\u0007\u010d\u0002\u0002\u1802",
    "\u1805\u0007\u010e\u0002\u0002\u1803\u1805\u0007\u010f\u0002\u0002\u1804",
    "\u17ed\u0003\u0002\u0002\u0002\u1804\u17ee\u0003\u0002\u0002\u0002\u1804",
    "\u17ef\u0003\u0002\u0002\u0002\u1804\u17f0\u0003\u0002\u0002\u0002\u1804",
    "\u17f1\u0003\u0002\u0002\u0002\u1804\u17f2\u0003\u0002\u0002\u0002\u1804",
    "\u17f3\u0003\u0002\u0002\u0002\u1804\u17f4\u0003\u0002\u0002\u0002\u1804",
    "\u17f5\u0003\u0002\u0002\u0002\u1804\u17f6\u0003\u0002\u0002\u0002\u1804",
    "\u17f7\u0003\u0002\u0002\u0002\u1804\u17f8\u0003\u0002\u0002\u0002\u1804",
    "\u17f9\u0003\u0002\u0002\u0002\u1804\u17fa\u0003\u0002\u0002\u0002\u1804",
    "\u17fb\u0003\u0002\u0002\u0002\u1804\u17fc\u0003\u0002\u0002\u0002\u1804",
    "\u17fd\u0003\u0002\u0002\u0002\u1804\u17fe\u0003\u0002\u0002\u0002\u1804",
    "\u17ff\u0003\u0002\u0002\u0002\u1804\u1800\u0003\u0002\u0002\u0002\u1804",
    "\u1801\u0003\u0002\u0002\u0002\u1804\u1802\u0003\u0002\u0002\u0002\u1804",
    "\u1803\u0003\u0002\u0002\u0002\u1805\u0255\u0003\u0002\u0002\u0002\u1806",
    "\u1807\tr\u0002\u0002\u1807\u1808\u0007\u03fe\u0002\u0002\u1808\u1809",
    "\u0005\u025a\u012e\u0002\u1809\u180a\u0007\u03ff\u0002\u0002\u180a\u0257",
    "\u0003\u0002\u0002\u0002\u180b\u1810\u0005\u0220\u0111\u0002\u180c\u1810",
    "\u0005\u01f8\u00fd\u0002\u180d\u1810\u0005\u0248\u0125\u0002\u180e\u1810",
    "\u0005\u025c\u012f\u0002\u180f\u180b\u0003\u0002\u0002\u0002\u180f\u180c",
    "\u0003\u0002\u0002\u0002\u180f\u180d\u0003\u0002\u0002\u0002\u180f\u180e",
    "\u0003\u0002\u0002\u0002\u1810\u181a\u0003\u0002\u0002\u0002\u1811\u1816",
    "\u0007\u0400\u0002\u0002\u1812\u1817\u0005\u0220\u0111\u0002\u1813\u1817",
    "\u0005\u01f8\u00fd\u0002\u1814\u1817\u0005\u0248\u0125\u0002\u1815\u1817",
    "\u0005\u025c\u012f\u0002\u1816\u1812\u0003\u0002\u0002\u0002\u1816\u1813",
    "\u0003\u0002\u0002\u0002\u1816\u1814\u0003\u0002\u0002\u0002\u1816\u1815",
    "\u0003\u0002\u0002\u0002\u1817\u1819\u0003\u0002\u0002\u0002\u1818\u1811",
    "\u0003\u0002\u0002\u0002\u1819\u181c\u0003\u0002\u0002\u0002\u181a\u1818",
    "\u0003\u0002\u0002\u0002\u181a\u181b\u0003\u0002\u0002\u0002\u181b\u0259",
    "\u0003\u0002\u0002\u0002\u181c\u181a\u0003\u0002\u0002\u0002\u181d\u1822",
    "\u0005\u0220\u0111\u0002\u181e\u1822\u0005\u01f8\u00fd\u0002\u181f\u1822",
    "\u0005\u0248\u0125\u0002\u1820\u1822\u0005\u025c\u012f\u0002\u1821\u181d",
    "\u0003\u0002\u0002\u0002\u1821\u181e\u0003\u0002\u0002\u0002\u1821\u181f",
    "\u0003\u0002\u0002\u0002\u1821\u1820\u0003\u0002\u0002\u0002\u1822\u025b",
    "\u0003\u0002\u0002\u0002\u1823\u1824\b\u012f\u0001\u0002\u1824\u1825",
    "\ts\u0002\u0002\u1825\u182f\u0005\u025c\u012f\u0006\u1826\u1827\u0005",
    "\u025e\u0130\u0002\u1827\u1829\u0007Q\u0002\u0002\u1828\u182a\u0007",
    "h\u0002\u0002\u1829\u1828\u0003\u0002\u0002\u0002\u1829\u182a\u0003",
    "\u0002\u0002\u0002\u182a\u182b\u0003\u0002\u0002\u0002\u182b\u182c\t",
    "t\u0002\u0002\u182c\u182f\u0003\u0002\u0002\u0002\u182d\u182f\u0005",
    "\u025e\u0130\u0002\u182e\u1823\u0003\u0002\u0002\u0002\u182e\u1826\u0003",
    "\u0002\u0002\u0002\u182e\u182d\u0003\u0002\u0002\u0002\u182f\u1836\u0003",
    "\u0002\u0002\u0002\u1830\u1831\f\u0005\u0002\u0002\u1831\u1832\u0005",
    "\u0266\u0134\u0002\u1832\u1833\u0005\u025c\u012f\u0006\u1833\u1835\u0003",
    "\u0002\u0002\u0002\u1834\u1830\u0003\u0002\u0002\u0002\u1835\u1838\u0003",
    "\u0002\u0002\u0002\u1836\u1834\u0003\u0002\u0002\u0002\u1836\u1837\u0003",
    "\u0002\u0002\u0002\u1837\u025d\u0003\u0002\u0002\u0002\u1838\u1836\u0003",
    "\u0002\u0002\u0002\u1839\u183c\b\u0130\u0001\u0002\u183a\u183b\u0007",
    "\u0418\u0002\u0002\u183b\u183d\u0007\u03e4\u0002\u0002\u183c\u183a\u0003",
    "\u0002\u0002\u0002\u183c\u183d\u0003\u0002\u0002\u0002\u183d\u183e\u0003",
    "\u0002\u0002\u0002\u183e\u183f\u0005\u0260\u0131\u0002\u183f\u1879\u0003",
    "\u0002\u0002\u0002\u1840\u1841\f\t\u0002\u0002\u1841\u1842\u0005\u0264",
    "\u0133\u0002\u1842\u1843\u0005\u025e\u0130\n\u1843\u1878\u0003\u0002",
    "\u0002\u0002\u1844\u1846\f\u0007\u0002\u0002\u1845\u1847\u0007h\u0002",
    "\u0002\u1846\u1845\u0003\u0002\u0002\u0002\u1846\u1847\u0003\u0002\u0002",
    "\u0002\u1847\u1848\u0003\u0002\u0002\u0002\u1848\u1849\u0007\u0010\u0002",
    "\u0002\u1849\u184a\u0005\u025e\u0130\u0002\u184a\u184b\u0007\f\u0002",
    "\u0002\u184b\u184c\u0005\u025e\u0130\b\u184c\u1878\u0003\u0002\u0002",
    "\u0002\u184d\u184e\f\u0006\u0002\u0002\u184e\u184f\u0007\u0213\u0002",
    "\u0002\u184f\u1850\u0007Z\u0002\u0002\u1850\u1878\u0005\u025e\u0130",
    "\u0007\u1851\u1853\f\u0004\u0002\u0002\u1852\u1854\u0007h\u0002\u0002",
    "\u1853\u1852\u0003\u0002\u0002\u0002\u1853\u1854\u0003\u0002\u0002\u0002",
    "\u1854\u1855\u0003\u0002\u0002\u0002\u1855\u1856\tu\u0002\u0002\u1856",
    "\u1878\u0005\u025e\u0130\u0005\u1857\u1859\f\u000b\u0002\u0002\u1858",
    "\u185a\u0007h\u0002\u0002\u1859\u1858\u0003\u0002\u0002\u0002\u1859",
    "\u185a\u0003\u0002\u0002\u0002\u185a\u185b\u0003\u0002\u0002\u0002\u185b",
    "\u185c\u0007I\u0002\u0002\u185c\u185f\u0007\u03fe\u0002\u0002\u185d",
    "\u1860\u0005\u00b6\\\u0002\u185e\u1860\u0005\u0234\u011b\u0002\u185f",
    "\u185d\u0003\u0002\u0002\u0002\u185f\u185e\u0003\u0002\u0002\u0002\u1860",
    "\u1861\u0003\u0002\u0002\u0002\u1861\u1862\u0007\u03ff\u0002\u0002\u1862",
    "\u1878\u0003\u0002\u0002\u0002\u1863\u1864\f\n\u0002\u0002\u1864\u1865",
    "\u0007Q\u0002\u0002\u1865\u1878\u0005\u021e\u0110\u0002\u1866\u1867",
    "\f\b\u0002\u0002\u1867\u1868\u0005\u0264\u0133\u0002\u1868\u1869\tv",
    "\u0002\u0002\u1869\u186a\u0007\u03fe\u0002\u0002\u186a\u186b\u0005\u00b6",
    "\\\u0002\u186b\u186c\u0007\u03ff\u0002\u0002\u186c\u1878\u0003\u0002",
    "\u0002\u0002\u186d\u186f\f\u0005\u0002\u0002\u186e\u1870\u0007h\u0002",
    "\u0002\u186f\u186e\u0003\u0002\u0002\u0002\u186f\u1870\u0003\u0002\u0002",
    "\u0002\u1870\u1871\u0003\u0002\u0002\u0002\u1871\u1872\u0007Z\u0002",
    "\u0002\u1872\u1875\u0005\u025e\u0130\u0002\u1873\u1874\u0007\u015c\u0002",
    "\u0002\u1874\u1876\u0007\u040d\u0002\u0002\u1875\u1873\u0003\u0002\u0002",
    "\u0002\u1875\u1876\u0003\u0002\u0002\u0002\u1876\u1878\u0003\u0002\u0002",
    "\u0002\u1877\u1840\u0003\u0002\u0002\u0002\u1877\u1844\u0003\u0002\u0002",
    "\u0002\u1877\u184d\u0003\u0002\u0002\u0002\u1877\u1851\u0003\u0002\u0002",
    "\u0002\u1877\u1857\u0003\u0002\u0002\u0002\u1877\u1863\u0003\u0002\u0002",
    "\u0002\u1877\u1866\u0003\u0002\u0002\u0002\u1877\u186d\u0003\u0002\u0002",
    "\u0002\u1878\u187b\u0003\u0002\u0002\u0002\u1879\u1877\u0003\u0002\u0002",
    "\u0002\u1879\u187a\u0003\u0002\u0002\u0002\u187a\u025f\u0003\u0002\u0002",
    "\u0002\u187b\u1879\u0003\u0002\u0002\u0002\u187c\u187d\b\u0131\u0001",
    "\u0002\u187d\u18aa\u0005\u0220\u0111\u0002\u187e\u18aa\u0005\u01f8\u00fd",
    "\u0002\u187f\u18aa\u0005\u0248\u0125\u0002\u1880\u18aa\u0005\u01fe\u0100",
    "\u0002\u1881\u1882\u0005\u0262\u0132\u0002\u1882\u1883\u0005\u0260\u0131",
    "\u000b\u1883\u18aa\u0003\u0002\u0002\u0002\u1884\u1885\u0007\u00d2\u0002",
    "\u0002\u1885\u18aa\u0005\u0260\u0131\n\u1886\u1887\u0007\u03fe\u0002",
    "\u0002\u1887\u188c\u0005\u025c\u012f\u0002\u1888\u1889\u0007\u0400\u0002",
    "\u0002\u1889\u188b\u0005\u025c\u012f\u0002\u188a\u1888\u0003\u0002\u0002",
    "\u0002\u188b\u188e\u0003\u0002\u0002\u0002\u188c\u188a\u0003\u0002\u0002",
    "\u0002\u188c\u188d\u0003\u0002\u0002\u0002\u188d\u188f\u0003\u0002\u0002",
    "\u0002\u188e\u188c\u0003\u0002\u0002\u0002\u188f\u1890\u0007\u03ff\u0002",
    "\u0002\u1890\u18aa\u0003\u0002\u0002\u0002\u1891\u1892\u0007\u0201\u0002",
    "\u0002\u1892\u1893\u0007\u03fe\u0002\u0002\u1893\u1896\u0005\u025c\u012f",
    "\u0002\u1894\u1895\u0007\u0400\u0002\u0002\u1895\u1897\u0005\u025c\u012f",
    "\u0002\u1896\u1894\u0003\u0002\u0002\u0002\u1897\u1898\u0003\u0002\u0002",
    "\u0002\u1898\u1896\u0003\u0002\u0002\u0002\u1898\u1899\u0003\u0002\u0002",
    "\u0002\u1899\u189a\u0003\u0002\u0002\u0002\u189a\u189b\u0007\u03ff\u0002",
    "\u0002\u189b\u18aa\u0003\u0002\u0002\u0002\u189c\u189d\u00077\u0002",
    "\u0002\u189d\u189e\u0007\u03fe\u0002\u0002\u189e\u189f\u0005\u00b6\\",
    "\u0002\u189f\u18a0\u0007\u03ff\u0002\u0002\u18a0\u18aa\u0003\u0002\u0002",
    "\u0002\u18a1\u18a2\u0007\u03fe\u0002\u0002\u18a2\u18a3\u0005\u00b6\\",
    "\u0002\u18a3\u18a4\u0007\u03ff\u0002\u0002\u18a4\u18aa\u0003\u0002\u0002",
    "\u0002\u18a5\u18a6\u0007O\u0002\u0002\u18a6\u18a7\u0005\u025c\u012f",
    "\u0002\u18a7\u18a8\u0005> \u0002\u18a8\u18aa\u0003\u0002\u0002\u0002",
    "\u18a9\u187c\u0003\u0002\u0002\u0002\u18a9\u187e\u0003\u0002\u0002\u0002",
    "\u18a9\u187f\u0003\u0002\u0002\u0002\u18a9\u1880\u0003\u0002\u0002\u0002",
    "\u18a9\u1881\u0003\u0002\u0002\u0002\u18a9\u1884\u0003\u0002\u0002\u0002",
    "\u18a9\u1886\u0003\u0002\u0002\u0002\u18a9\u1891\u0003\u0002\u0002\u0002",
    "\u18a9\u189c\u0003\u0002\u0002\u0002\u18a9\u18a1\u0003\u0002\u0002\u0002",
    "\u18a9\u18a5\u0003\u0002\u0002\u0002\u18aa\u18b8\u0003\u0002\u0002\u0002",
    "\u18ab\u18ac\f\u0004\u0002\u0002\u18ac\u18ad\u0005\u0268\u0135\u0002",
    "\u18ad\u18ae\u0005\u0260\u0131\u0005\u18ae\u18b7\u0003\u0002\u0002\u0002",
    "\u18af\u18b0\f\u0003\u0002\u0002\u18b0\u18b1\u0005\u026a\u0136\u0002",
    "\u18b1\u18b2\u0005\u0260\u0131\u0004\u18b2\u18b7\u0003\u0002\u0002\u0002",
    "\u18b3\u18b4\f\r\u0002\u0002\u18b4\u18b5\u0007\u001a\u0002\u0002\u18b5",
    "\u18b7\u0005\u0202\u0102\u0002\u18b6\u18ab\u0003\u0002\u0002\u0002\u18b6",
    "\u18af\u0003\u0002\u0002\u0002\u18b6\u18b3\u0003\u0002\u0002\u0002\u18b7",
    "\u18ba\u0003\u0002\u0002\u0002\u18b8\u18b6\u0003\u0002\u0002\u0002\u18b8",
    "\u18b9\u0003\u0002\u0002\u0002\u18b9\u0261\u0003\u0002\u0002\u0002\u18ba",
    "\u18b8\u0003\u0002\u0002\u0002\u18bb\u18bc\tw\u0002\u0002\u18bc\u0263",
    "\u0003\u0002\u0002\u0002\u18bd\u18cc\u0007\u03f5\u0002\u0002\u18be\u18cc",
    "\u0007\u03f6\u0002\u0002\u18bf\u18cc\u0007\u03f7\u0002\u0002\u18c0\u18c1",
    "\u0007\u03f7\u0002\u0002\u18c1\u18cc\u0007\u03f5\u0002\u0002\u18c2\u18c3",
    "\u0007\u03f6\u0002\u0002\u18c3\u18cc\u0007\u03f5\u0002\u0002\u18c4\u18c5",
    "\u0007\u03f7\u0002\u0002\u18c5\u18cc\u0007\u03f6\u0002\u0002\u18c6\u18c7",
    "\u0007\u03f8\u0002\u0002\u18c7\u18cc\u0007\u03f5\u0002\u0002\u18c8\u18c9",
    "\u0007\u03f7\u0002\u0002\u18c9\u18ca\u0007\u03f5\u0002\u0002\u18ca\u18cc",
    "\u0007\u03f6\u0002\u0002\u18cb\u18bd\u0003\u0002\u0002\u0002\u18cb\u18be",
    "\u0003\u0002\u0002\u0002\u18cb\u18bf\u0003\u0002\u0002\u0002\u18cb\u18c0",
    "\u0003\u0002\u0002\u0002\u18cb\u18c2\u0003\u0002\u0002\u0002\u18cb\u18c4",
    "\u0003\u0002\u0002\u0002\u18cb\u18c6\u0003\u0002\u0002\u0002\u18cb\u18c8",
    "\u0003\u0002\u0002\u0002\u18cc\u0265\u0003\u0002\u0002\u0002\u18cd\u18d5",
    "\u0007\f\u0002\u0002\u18ce\u18cf\u0007\u03fb\u0002\u0002\u18cf\u18d5",
    "\u0007\u03fb\u0002\u0002\u18d0\u18d5\u0007\u00b2\u0002\u0002\u18d1\u18d5",
    "\u0007p\u0002\u0002\u18d2\u18d3\u0007\u03fa\u0002\u0002\u18d3\u18d5",
    "\u0007\u03fa\u0002\u0002\u18d4\u18cd\u0003\u0002\u0002\u0002\u18d4\u18ce",
    "\u0003\u0002\u0002\u0002\u18d4\u18d0\u0003\u0002\u0002\u0002\u18d4\u18d1",
    "\u0003\u0002\u0002\u0002\u18d4\u18d2\u0003\u0002\u0002\u0002\u18d5\u0267",
    "\u0003\u0002\u0002\u0002\u18d6\u18d7\u0007\u03f7\u0002\u0002\u18d7\u18de",
    "\u0007\u03f7\u0002\u0002\u18d8\u18d9\u0007\u03f6\u0002\u0002\u18d9\u18de",
    "\u0007\u03f6\u0002\u0002\u18da\u18de\u0007\u03fb\u0002\u0002\u18db\u18de",
    "\u0007\u03fc\u0002\u0002\u18dc\u18de\u0007\u03fa\u0002\u0002\u18dd\u18d6",
    "\u0003\u0002\u0002\u0002\u18dd\u18d8\u0003\u0002\u0002\u0002\u18dd\u18da",
    "\u0003\u0002\u0002\u0002\u18dd\u18db\u0003\u0002\u0002\u0002\u18dd\u18dc",
    "\u0003\u0002\u0002\u0002\u18de\u0269\u0003\u0002\u0002\u0002\u18df\u18e0",
    "\tx\u0002\u0002\u18e0\u026b\u0003\u0002\u0002\u0002\u18e1\u18e2\ty\u0002",
    "\u0002\u18e2\u026d\u0003\u0002\u0002\u0002\u18e3\u18e4\tz\u0002\u0002",
    "\u18e4\u026f\u0003\u0002\u0002\u0002\u18e5\u18e6\t{\u0002\u0002\u18e6",
    "\u0271\u0003\u0002\u0002\u0002\u18e7\u18e8\t|\u0002\u0002\u18e8\u0273",
    "\u0003\u0002\u0002\u0002\u18e9\u18ea\t}\u0002\u0002\u18ea\u0275\u0003",
    "\u0002\u0002\u0002\u18eb\u18ec\t~\u0002\u0002\u18ec\u0277\u0003\u0002",
    "\u0002\u0002\u18ed\u18ee\t\u007f\u0002\u0002\u18ee\u0279\u0003\u0002",
    "\u0002\u0002\u03a2\u027e\u0281\u0287\u028a\u028d\u028f\u0294\u0297\u029a",
    "\u02a3\u02ca\u02d6\u02e1\u02f2\u02f7\u0303\u031e\u0327\u032c\u0332\u0337",
    "\u033b\u0344\u0347\u034a\u034e\u0355\u0358\u035d\u0365\u036a\u036f\u0372",
    "\u0374\u0380\u0383\u0387\u038a\u038e\u0391\u0395\u0398\u039b\u039f\u03a2",
    "\u03a6\u03ac\u03b2\u03b8\u03bf\u03c6\u03cc\u03d2\u03db\u03e0\u03f0\u03f7",
    "\u03fb\u0405\u0409\u040d\u0411\u0415\u041a\u041d\u0420\u0423\u0426\u042c",
    "\u0430\u0436\u043b\u043e\u0441\u0443\u044e\u0452\u0455\u0463\u0466\u046a",
    "\u046d\u0471\u0474\u0478\u047b\u047f\u0482\u0485\u0489\u048c\u0490\u0496",
    "\u04a3\u04aa\u04af\u04b2\u04b7\u04bf\u04c5\u04c9\u04cc\u04d1\u04d4\u04d8",
    "\u04db\u04df\u04e2\u04ea\u04ec\u04f3\u04f9\u0501\u0504\u050b\u050e\u0510",
    "\u0516\u051c\u052d\u0534\u053b\u0546\u0549\u0556\u0563\u0568\u0578\u0580",
    "\u058a\u0590\u059a\u059d\u05a2\u05af\u05b6\u05bd\u05bf\u05c6\u05ca\u05cc",
    "\u05d1\u05d4\u05da\u05df\u05e1\u05e5\u05e8\u05eb\u05f1\u05f6\u05f8\u05fd",
    "\u0604\u0606\u060d\u0612\u0616\u0619\u0621\u0629\u062b\u0633\u0637\u063a",
    "\u0640\u0645\u0648\u064e\u0651\u0655\u065a\u065f\u0663\u0668\u066b\u066f",
    "\u0673\u0677\u067b\u0680\u0685\u068a\u0690\u0695\u069a\u06a0\u06a5\u06aa",
    "\u06af\u06b4\u06b9\u06be\u06c3\u06c8\u06cd\u06d2\u06d8\u06dd\u06e3\u06ed",
    "\u06f4\u06f6\u06fe\u0703\u0706\u070e\u0714\u0724\u0730\u0732\u0735\u073d",
    "\u0743\u0749\u0756\u075d\u0765\u0768\u0773\u077b\u077e\u078a\u0791\u0799",
    "\u079c\u07a8\u07af\u07b7\u07ba\u07c1\u07c9\u07cc\u07ce\u07d3\u07db\u07e4",
    "\u07e8\u07ec\u07f1\u07f7\u07fd\u0802\u0807\u080c\u0811\u0814\u0819\u081e",
    "\u0828\u082c\u0833\u0838\u083b\u0840\u0843\u0847\u084b\u0853\u0866\u0869",
    "\u086c\u0870\u087a\u0887\u088e\u0891\u089a\u089d\u08a0\u08ab\u08ae\u08b2",
    "\u08ba\u08bd\u08c2\u08ca\u08d0\u08d4\u08d8\u08dd\u08e2\u08e9\u08ed\u08f8",
    "\u0900\u0903\u0909\u090f\u0911\u0916\u0919\u091f\u0925\u0927\u092b\u092e",
    "\u0931\u0937\u093d\u0940\u0946\u094c\u094e\u0953\u095b\u095d\u0966\u096b",
    "\u0973\u0977\u097f\u0989\u098e\u0995\u0999\u099d\u09ba\u09be\u09ca\u09cd",
    "\u09d6\u09e7\u09f3\u09fa\u0a01\u0a10\u0a1d\u0a23\u0a29\u0a2f\u0a35\u0a3b",
    "\u0a41\u0a46\u0a4d\u0a54\u0a5b\u0a60\u0a63\u0a65\u0a73\u0a7a\u0a81\u0a87",
    "\u0a8b\u0a8f\u0a96\u0a99\u0a9e\u0aa5\u0aac\u0ab0\u0ab9\u0ac2\u0acb\u0ace",
    "\u0ad2\u0adb\u0adf\u0ae2\u0ae5\u0aeb\u0aee\u0af4\u0afd\u0b00\u0b0b\u0b0e",
    "\u0b13\u0b16\u0b1b\u0b25\u0b2a\u0b30\u0b32\u0b38\u0b3a\u0b40\u0b48\u0b4d",
    "\u0b55\u0b58\u0b5d\u0b60\u0b65\u0b6d\u0b75\u0b7b\u0b83\u0b88\u0b90\u0b93",
    "\u0b97\u0b9a\u0ba2\u0ba8\u0bb1\u0bb4\u0bb8\u0bbc\u0bc2\u0bc6\u0bca\u0bcc",
    "\u0bcf\u0bd2\u0bd5\u0bdb\u0bdf\u0be2\u0be5\u0be8\u0beb\u0bed\u0bf1\u0bf7",
    "\u0bfd\u0c02\u0c05\u0c0b\u0c0f\u0c17\u0c1b\u0c1e\u0c21\u0c2a\u0c2e\u0c31",
    "\u0c35\u0c39\u0c3c\u0c3f\u0c44\u0c4a\u0c4e\u0c58\u0c5e\u0c62\u0c68\u0c6c",
    "\u0c72\u0c75\u0c81\u0c85\u0c89\u0c91\u0c95\u0c9d\u0ca0\u0ca4\u0ca7\u0caf",
    "\u0cb4\u0cb7\u0cba\u0cbe\u0cc1\u0cca\u0ccf\u0cd8\u0cdd\u0ce4\u0ceb\u0cf3",
    "\u0cf8\u0d00\u0d03\u0d06\u0d0d\u0d10\u0d17\u0d1a\u0d22\u0d28\u0d33\u0d36",
    "\u0d41\u0d47\u0d4b\u0d56\u0d5b\u0d5d\u0d61\u0d6b\u0d75\u0d7b\u0d80\u0d83",
    "\u0d86\u0d89\u0d8f\u0d94\u0d97\u0d9a\u0d9d\u0d9f\u0da5\u0daa\u0dad\u0db0",
    "\u0db4\u0dba\u0dbe\u0dc8\u0dcc\u0dd2\u0ddb\u0dde\u0de2\u0de5\u0de9\u0ded",
    "\u0df0\u0df2\u0dfa\u0e06\u0e0c\u0e0e\u0e14\u0e16\u0e18\u0e1e\u0e26\u0e2e",
    "\u0e34\u0e3d\u0e42\u0e44\u0e48\u0e4c\u0e52\u0e59\u0e5d\u0e66\u0e69\u0e6d",
    "\u0e71\u0e75\u0e78\u0e7b\u0e7e\u0e82\u0e86\u0e89\u0e8c\u0e8f\u0e96\u0e9a",
    "\u0ea9\u0eb6\u0ebe\u0ec8\u0ecc\u0ecf\u0ed5\u0ed8\u0edb\u0ee4\u0eed\u0ef7",
    "\u0efb\u0f05\u0f0f\u0f17\u0f1a\u0f23\u0f26\u0f2a\u0f2f\u0f33\u0f3c\u0f3f",
    "\u0f5e\u0f61\u0f64\u0f9c\u0fa1\u0fbd\u0fcb\u0fd2\u0fd6\u0fdc\u0fe4\u0fe6",
    "\u0ff1\u0ffb\u1002\u1008\u1010\u1015\u101d\u1025\u102d\u1035\u103b\u103e",
    "\u1042\u1047\u104c\u1052\u1054\u105f\u1064\u106b\u106d\u107b\u1081\u1086",
    "\u108b\u1091\u1098\u10a0\u10a8\u10ad\u10b3\u10b6\u10be\u10c5\u10ce\u10d1",
    "\u10e2\u10ea\u10f2\u10f6\u10fd\u1103\u110b\u1114\u111a\u1121\u1128\u112d",
    "\u1130\u1132\u1138\u113a\u113e\u1140\u1143\u114c\u1152\u1159\u1160\u1165",
    "\u1168\u116a\u1170\u1172\u1176\u1178\u117b\u1180\u1187\u1190\u1195\u119e",
    "\u11a5\u11aa\u11ad\u11af\u11b5\u11b7\u11ba\u11c6\u11cc\u11d5\u11de\u11e3",
    "\u11ec\u11f2\u11fd\u1200\u120c\u1213\u1218\u1227\u1232\u1235\u123f\u1249",
    "\u1253\u125d\u1261\u1265\u126f\u1274\u12a6\u12b8\u12c0\u12cb\u12d2\u12d6",
    "\u12dd\u12e2\u12e5\u12e8\u12f1\u12f5\u1313\u131a\u131e\u1325\u1328\u1338",
    "\u133b\u1345\u1349\u134f\u1352\u1357\u135b\u1362\u1365\u136b\u1383\u1390",
    "\u1393\u139d\u13a5\u13a9\u13b0\u13b3\u13bc\u13c2\u13c8\u13d2\u13d4\u13da",
    "\u13dd\u13e0\u13ec\u13ef\u13f5\u13f8\u1400\u1408\u140e\u1412\u1420\u142c",
    "\u1433\u1436\u143d\u1444\u1449\u144e\u1459\u1464\u146a\u146f\u147c\u147e",
    "\u1483\u1488\u148a\u1491\u1498\u149b\u149e\u14a4\u14a8\u14ae\u14b4\u14c1",
    "\u14c6\u14ce\u14d1\u14d6\u14db\u14e3\u14e6\u14ec\u14f0\u14fd\u1503\u150f",
    "\u1512\u151b\u1520\u1526\u152d\u152f\u1533\u1539\u153c\u1546\u154a\u155e",
    "\u1565\u1567\u156e\u1570\u1574\u1579\u1584\u1589\u158f\u1592\u1596\u159b",
    "\u159e\u15a2\u15a6\u15a8\u15ad\u15b2\u15bf\u15c2\u15c6\u15c9\u15ce\u15d1",
    "\u15d5\u15da\u15dd\u15e2\u15e5\u15eb\u15ee\u15f2\u15f5\u15f8\u15fc\u15ff",
    "\u1602\u1606\u1609\u160c\u160f\u1613\u1616\u1619\u161e\u1623\u1628\u162b",
    "\u1630\u1633\u1638\u163b\u163f\u1643\u164b\u1652\u1656\u165b\u165e\u1663",
    "\u1667\u1669\u1679\u1682\u168a\u1693\u169d\u16a5\u16ad\u16b5\u16bd\u16c2",
    "\u16c9\u16cb\u16d0\u16d3\u16d8\u16db\u16df\u16ed\u16f4\u16f9\u171b\u171f",
    "\u1727\u172b\u1734\u173c\u1741\u1749\u174e\u1753\u1755\u175e\u1763\u176b",
    "\u1770\u1778\u1780\u1783\u178d\u1798\u17a5\u17ad\u17b1\u17b6\u17bf\u17c2",
    "\u17ce\u17d6\u17e0\u17e3\u17e7\u17eb\u1804\u180f\u1816\u181a\u1821\u1829",
    "\u182e\u1836\u183c\u1846\u1853\u1859\u185f\u186f\u1875\u1877\u1879\u188c",
    "\u1898\u18a9\u18b6\u18b8\u18cb\u18d4\u18dd"].join("");


var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN);

var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); });

var sharedContextCache = new antlr4.PredictionContextCache();

var literalNames = [ null, null, null, null, null, "'ADD'", "'ALL'", "'ALTER'", 
                     "'ALWAYS'", "'ANALYZE'", "'AND'", "'AS'", "'ASC'", 
                     "'BEFORE'", "'BETWEEN'", "'BOTH'", "'BY'", "'CALL'", 
                     "'CASCADE'", "'CASE'", "'CAST'", "'CHANGE'", "'CHARACTER'", 
                     "'CHECK'", "'COLLATE'", "'COLUMN'", "'CONDITION'", 
                     "'CONSTRAINT'", "'CONTINUE'", "'CONVERT'", "'CREATE'", 
                     "'CROSS'", "'CURRENT'", "'CURRENT_USER'", "'CURSOR'", 
                     "'DATABASE'", "'DATABASES'", "'DECLARE'", "'DEFAULT'", 
                     "'DELAYED'", "'DELETE'", "'DESC'", "'DESCRIBE'", "'DETERMINISTIC'", 
                     "'DIAGNOSTICS'", "'DISTINCT'", "'DISTINCTROW'", "'DROP'", 
                     "'EACH'", "'ELSE'", "'ELSEIF'", "'ENCLOSED'", "'ESCAPED'", 
                     "'EXISTS'", "'EXIT'", "'EXPLAIN'", "'FALSE'", "'FETCH'", 
                     "'FOR'", "'FORCE'", "'FOREIGN'", "'FROM'", "'FULLTEXT'", 
                     "'GENERATED'", "'GET'", "'GRANT'", "'GROUP'", "'HAVING'", 
                     "'HIGH_PRIORITY'", "'IF'", "'IGNORE'", "'IN'", "'INDEX'", 
                     "'INFILE'", "'INNER'", "'INOUT'", "'INSERT'", "'INTERVAL'", 
                     "'INTO'", "'IS'", "'ITERATE'", "'JOIN'", "'KEY'", "'KEYS'", 
                     "'KILL'", "'LEADING'", "'LEAVE'", "'LEFT'", "'LIKE'", 
                     "'LIMIT'", "'LINEAR'", "'LINES'", "'LOAD'", "'LOCK'", 
                     "'LOOP'", "'LOW_PRIORITY'", "'MASTER_BIND'", "'MASTER_SSL_VERIFY_SERVER_CERT'", 
                     "'MATCH'", "'MAXVALUE'", "'MODIFIES'", "'NATURAL'", 
                     "'NOT'", "'NO_WRITE_TO_BINLOG'", "'NULL'", "'NUMBER'", 
                     "'ON'", "'OPTIMIZE'", "'OPTION'", "'OPTIONALLY'", "'OR'", 
                     "'ORDER'", "'OUT'", "'OUTER'", "'OUTFILE'", "'PARTITION'", 
                     "'PRIMARY'", "'PROCEDURE'", "'PURGE'", "'RANGE'", "'READ'", 
                     "'READS'", "'REFERENCES'", "'REGEXP'", "'RELEASE'", 
                     "'RENAME'", "'REPEAT'", "'REPLACE'", "'REQUIRE'", "'RESIGNAL'", 
                     "'RESTRICT'", "'RETURN'", "'REVOKE'", "'RIGHT'", "'RLIKE'", 
                     "'SCHEMA'", "'SCHEMAS'", "'SELECT'", "'SET'", "'SEPARATOR'", 
                     "'SHOW'", "'SIGNAL'", "'SPATIAL'", "'SQL'", "'SQLEXCEPTION'", 
                     "'SQLSTATE'", "'SQLWARNING'", "'SQL_BIG_RESULT'", "'SQL_CALC_FOUND_ROWS'", 
                     "'SQL_SMALL_RESULT'", "'SSL'", "'STACKED'", "'STARTING'", 
                     "'STRAIGHT_JOIN'", "'TABLE'", "'TERMINATED'", "'THEN'", 
                     "'TO'", "'TRAILING'", "'TRIGGER'", "'TRUE'", "'UNDO'", 
                     "'UNION'", "'UNIQUE'", "'UNLOCK'", "'UNSIGNED'", "'UPDATE'", 
                     "'USAGE'", "'USE'", "'USING'", "'VALUES'", "'WHEN'", 
                     "'WHERE'", "'WHILE'", "'WITH'", "'WRITE'", "'XOR'", 
                     "'ZEROFILL'", "'TINYINT'", "'SMALLINT'", "'MEDIUMINT'", 
                     "'MIDDLEINT'", "'INT'", "'INT1'", "'INT2'", "'INT3'", 
                     "'INT4'", "'INT8'", "'INTEGER'", "'BIGINT'", "'REAL'", 
                     "'DOUBLE'", "'PRECISION'", "'FLOAT'", "'FLOAT4'", "'FLOAT8'", 
                     "'DECIMAL'", "'DEC'", "'NUMERIC'", "'DATE'", "'TIME'", 
                     "'TIMESTAMP'", "'DATETIME'", "'YEAR'", "'CHAR'", "'VARCHAR'", 
                     "'NVARCHAR'", "'NATIONAL'", "'BINARY'", "'VARBINARY'", 
                     "'TINYBLOB'", "'BLOB'", "'MEDIUMBLOB'", "'LONG'", "'LONGBLOB'", 
                     "'TINYTEXT'", "'TEXT'", "'MEDIUMTEXT'", "'LONGTEXT'", 
                     "'ENUM'", "'VARYING'", "'SERIAL'", "'YEAR_MONTH'", 
                     "'DAY_HOUR'", "'DAY_MINUTE'", "'DAY_SECOND'", "'HOUR_MINUTE'", 
                     "'HOUR_SECOND'", "'MINUTE_SECOND'", "'SECOND_MICROSECOND'", 
                     "'MINUTE_MICROSECOND'", "'HOUR_MICROSECOND'", "'DAY_MICROSECOND'", 
                     "'JSON_VALID'", "'JSON_SCHEMA_VALID'", "'AVG'", "'BIT_AND'", 
                     "'BIT_OR'", "'BIT_XOR'", "'COUNT'", "'GROUP_CONCAT'", 
                     "'MAX'", "'MIN'", "'STD'", "'STDDEV'", "'STDDEV_POP'", 
                     "'STDDEV_SAMP'", "'SUM'", "'VAR_POP'", "'VAR_SAMP'", 
                     "'VARIANCE'", "'CURRENT_DATE'", "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", 
                     "'LOCALTIME'", "'CURDATE'", "'CURTIME'", "'DATE_ADD'", 
                     "'DATE_SUB'", "'EXTRACT'", "'LOCALTIMESTAMP'", "'NOW'", 
                     "'POSITION'", "'SUBSTR'", "'SUBSTRING'", "'SYSDATE'", 
                     "'TRIM'", "'UTC_DATE'", "'UTC_TIME'", "'UTC_TIMESTAMP'", 
                     "'ACCOUNT'", "'ACTION'", "'AFTER'", "'AGGREGATE'", 
                     "'ALGORITHM'", "'ANY'", "'AT'", "'AUTHORS'", "'AUTOCOMMIT'", 
                     "'AUTOEXTEND_SIZE'", "'AUTO_INCREMENT'", "'AVG_ROW_LENGTH'", 
                     "'BEGIN'", "'BINLOG'", "'BIT'", "'BLOCK'", "'BOOL'", 
                     "'BOOLEAN'", "'BTREE'", "'CACHE'", "'CASCADED'", "'CHAIN'", 
                     "'CHANGED'", "'CHANNEL'", "'CHECKSUM'", "'PAGE_CHECKSUM'", 
                     "'CIPHER'", "'CLASS_ORIGIN'", "'CLIENT'", "'CLOSE'", 
                     "'COALESCE'", "'CODE'", "'COLUMNS'", "'COLUMN_FORMAT'", 
                     "'COLUMN_NAME'", "'COMMENT'", "'COMMIT'", "'COMPACT'", 
                     "'COMPLETION'", "'COMPRESSED'", "'COMPRESSION'", "'CONCURRENT'", 
                     "'CONNECTION'", "'CONSISTENT'", "'CONSTRAINT_CATALOG'", 
                     "'CONSTRAINT_SCHEMA'", "'CONSTRAINT_NAME'", "'CONTAINS'", 
                     "'CONTEXT'", "'CONTRIBUTORS'", "'COPY'", "'CPU'", "'CURSOR_NAME'", 
                     "'DATA'", "'DATAFILE'", "'DEALLOCATE'", "'DEFAULT_AUTH'", 
                     "'DEFINER'", "'DELAY_KEY_WRITE'", "'DES_KEY_FILE'", 
                     "'DIRECTORY'", "'DISABLE'", "'DISCARD'", "'DISK'", 
                     "'DO'", "'DUMPFILE'", "'DUPLICATE'", "'DYNAMIC'", "'ENABLE'", 
                     "'ENCRYPTION'", "'END'", "'ENDS'", "'ENGINE'", "'ENGINES'", 
                     "'ERROR'", "'ERRORS'", "'ESCAPE'", "'EVEN'", "'EVENT'", 
                     "'EVENTS'", "'EVERY'", "'EXCHANGE'", "'EXCLUSIVE'", 
                     "'EXPIRE'", "'EXPORT'", "'EXTENDED'", "'EXTENT_SIZE'", 
                     "'FAST'", "'FAULTS'", "'FIELDS'", "'FILE_BLOCK_SIZE'", 
                     "'FILTER'", "'FIRST'", "'FIXED'", "'FLUSH'", "'FOLLOWS'", 
                     "'FOUND'", "'FULL'", "'FUNCTION'", "'GENERAL'", "'GLOBAL'", 
                     "'GRANTS'", "'GROUP_REPLICATION'", "'HANDLER'", "'HASH'", 
                     "'HELP'", "'HOST'", "'HOSTS'", "'IDENTIFIED'", "'IGNORE_SERVER_IDS'", 
                     "'IMPORT'", "'INDEXES'", "'INITIAL_SIZE'", "'INPLACE'", 
                     "'INSERT_METHOD'", "'INSTALL'", "'INSTANCE'", "'INVISIBLE'", 
                     "'INVOKER'", "'IO'", "'IO_THREAD'", "'IPC'", "'ISOLATION'", 
                     "'ISSUER'", "'JSON'", "'KEY_BLOCK_SIZE'", "'LANGUAGE'", 
                     "'LAST'", "'LEAVES'", "'LESS'", "'LEVEL'", "'LIST'", 
                     "'LOCAL'", "'LOGFILE'", "'LOGS'", "'MASTER'", "'MASTER_AUTO_POSITION'", 
                     "'MASTER_CONNECT_RETRY'", "'MASTER_DELAY'", "'MASTER_HEARTBEAT_PERIOD'", 
                     "'MASTER_HOST'", "'MASTER_LOG_FILE'", "'MASTER_LOG_POS'", 
                     "'MASTER_PASSWORD'", "'MASTER_PORT'", "'MASTER_RETRY_COUNT'", 
                     "'MASTER_SSL'", "'MASTER_SSL_CA'", "'MASTER_SSL_CAPATH'", 
                     "'MASTER_SSL_CERT'", "'MASTER_SSL_CIPHER'", "'MASTER_SSL_CRL'", 
                     "'MASTER_SSL_CRLPATH'", "'MASTER_SSL_KEY'", "'MASTER_TLS_VERSION'", 
                     "'MASTER_USER'", "'MAX_CONNECTIONS_PER_HOUR'", "'MAX_QUERIES_PER_HOUR'", 
                     "'MAX_ROWS'", "'MAX_SIZE'", "'MAX_UPDATES_PER_HOUR'", 
                     "'MAX_USER_CONNECTIONS'", "'MEDIUM'", "'MERGE'", "'MESSAGE_TEXT'", 
                     "'MID'", "'MIGRATE'", "'MIN_ROWS'", "'MODE'", "'MODIFY'", 
                     "'MUTEX'", "'MYSQL'", "'MYSQL_ERRNO'", "'NAME'", "'NAMES'", 
                     "'NCHAR'", "'NEVER'", "'NEXT'", "'NO'", "'NODEGROUP'", 
                     "'NONE'", "'OFFLINE'", "'OFFSET'", "'OJ'", "'OLD_PASSWORD'", 
                     "'ONE'", "'ONLINE'", "'ONLY'", "'OPEN'", "'OPTIMIZER_COSTS'", 
                     "'OPTIONS'", "'OWNER'", "'PACK_KEYS'", "'PAGE'", "'PARSER'", 
                     "'PARTIAL'", "'PARTITIONING'", "'PARTITIONS'", "'PASSWORD'", 
                     "'PHASE'", "'PLUGIN'", "'PLUGIN_DIR'", "'PLUGINS'", 
                     "'PORT'", "'PRECEDES'", "'PREPARE'", "'PRESERVE'", 
                     "'PREV'", "'PROCESSLIST'", "'PROFILE'", "'PROFILES'", 
                     "'PROXY'", "'QUERY'", "'QUICK'", "'REBUILD'", "'RECOVER'", 
                     "'REDO_BUFFER_SIZE'", "'REDUNDANT'", "'RELAY'", "'RELAY_LOG_FILE'", 
                     "'RELAY_LOG_POS'", "'RELAYLOG'", "'REMOVE'", "'REORGANIZE'", 
                     "'REPAIR'", "'REPLICATE_DO_DB'", "'REPLICATE_DO_TABLE'", 
                     "'REPLICATE_IGNORE_DB'", "'REPLICATE_IGNORE_TABLE'", 
                     "'REPLICATE_REWRITE_DB'", "'REPLICATE_WILD_DO_TABLE'", 
                     "'REPLICATE_WILD_IGNORE_TABLE'", "'REPLICATION'", "'RESET'", 
                     "'RESUME'", "'RETURNED_SQLSTATE'", "'RETURNS'", "'ROLE'", 
                     "'ROLLBACK'", "'ROLLUP'", "'ROTATE'", "'ROW'", "'ROWS'", 
                     "'ROW_FORMAT'", "'SAVEPOINT'", "'SCHEDULE'", "'SECURITY'", 
                     "'SERVER'", "'SESSION'", "'SHARE'", "'SHARED'", "'SIGNED'", 
                     "'SIMPLE'", "'SLAVE'", "'SLOW'", "'SNAPSHOT'", "'SOCKET'", 
                     "'SOME'", "'SONAME'", "'SOUNDS'", "'SOURCE'", "'SQL_AFTER_GTIDS'", 
                     "'SQL_AFTER_MTS_GAPS'", "'SQL_BEFORE_GTIDS'", "'SQL_BUFFER_RESULT'", 
                     "'SQL_CACHE'", "'SQL_NO_CACHE'", "'SQL_THREAD'", "'START'", 
                     "'STARTS'", "'STATS_AUTO_RECALC'", "'STATS_PERSISTENT'", 
                     "'STATS_SAMPLE_PAGES'", "'STATUS'", "'STOP'", "'STORAGE'", 
                     "'STORED'", "'STRING'", "'SUBCLASS_ORIGIN'", "'SUBJECT'", 
                     "'SUBPARTITION'", "'SUBPARTITIONS'", "'SUSPEND'", "'SWAPS'", 
                     "'SWITCHES'", "'TABLE_NAME'", "'TABLESPACE'", "'TEMPORARY'", 
                     "'TEMPTABLE'", "'THAN'", "'TRADITIONAL'", "'TRANSACTION'", 
                     "'TRANSACTIONAL'", "'TRIGGERS'", "'TRUNCATE'", "'UNDEFINED'", 
                     "'UNDOFILE'", "'UNDO_BUFFER_SIZE'", "'UNINSTALL'", 
                     "'UNKNOWN'", "'UNTIL'", "'UPGRADE'", "'USER'", "'USE_FRM'", 
                     "'USER_RESOURCES'", "'VALIDATION'", "'VALUE'", "'VARIABLES'", 
                     "'VIEW'", "'VIRTUAL'", "'VISIBLE'", "'WAIT'", "'WARNINGS'", 
                     "'WITHOUT'", "'WORK'", "'WRAPPER'", "'X509'", "'XA'", 
                     "'XML'", "'EUR'", "'USA'", "'JIS'", "'ISO'", "'INTERNAL'", 
                     "'QUARTER'", "'MONTH'", "'DAY'", "'HOUR'", "'MINUTE'", 
                     "'WEEK'", "'SECOND'", "'MICROSECOND'", "'TABLES'", 
                     "'ROUTINE'", "'EXECUTE'", "'FILE'", "'PROCESS'", "'RELOAD'", 
                     "'SHUTDOWN'", "'SUPER'", "'PRIVILEGES'", "'APPLICATION_PASSWORD_ADMIN'", 
                     "'AUDIT_ADMIN'", "'BACKUP_ADMIN'", "'BINLOG_ADMIN'", 
                     "'BINLOG_ENCRYPTION_ADMIN'", "'CLONE_ADMIN'", "'CONNECTION_ADMIN'", 
                     "'ENCRYPTION_KEY_ADMIN'", "'FIREWALL_ADMIN'", "'FIREWALL_USER'", 
                     "'GROUP_REPLICATION_ADMIN'", "'INNODB_REDO_LOG_ARCHIVE'", 
                     "'NDB_STORED_USER'", "'PERSIST_RO_VARIABLES_ADMIN'", 
                     "'REPLICATION_APPLIER'", "'REPLICATION_SLAVE_ADMIN'", 
                     "'RESOURCE_GROUP_ADMIN'", "'RESOURCE_GROUP_USER'", 
                     "'ROLE_ADMIN'", null, "'SET_USER_ID'", "'SHOW_ROUTINE'", 
                     "'SYSTEM_VARIABLES_ADMIN'", "'TABLE_ENCRYPTION_ADMIN'", 
                     "'VERSION_TOKEN_ADMIN'", "'XA_RECOVER_ADMIN'", "'ARMSCII8'", 
                     "'ASCII'", "'BIG5'", "'CP1250'", "'CP1251'", "'CP1256'", 
                     "'CP1257'", "'CP850'", "'CP852'", "'CP866'", "'CP932'", 
                     "'DEC8'", "'EUCJPMS'", "'EUCKR'", "'GB2312'", "'GBK'", 
                     "'GEOSTD8'", "'GREEK'", "'HEBREW'", "'HP8'", "'KEYBCS2'", 
                     "'KOI8R'", "'KOI8U'", "'LATIN1'", "'LATIN2'", "'LATIN5'", 
                     "'LATIN7'", "'MACCE'", "'MACROMAN'", "'SJIS'", "'SWE7'", 
                     "'TIS620'", "'UCS2'", "'UJIS'", "'UTF16'", "'UTF16LE'", 
                     "'UTF32'", "'UTF8'", "'UTF8MB3'", "'UTF8MB4'", "'ARCHIVE'", 
                     "'BLACKHOLE'", "'CSV'", "'FEDERATED'", "'INNODB'", 
                     "'MEMORY'", "'MRG_MYISAM'", "'MYISAM'", "'NDB'", "'NDBCLUSTER'", 
                     "'PERFORMANCE_SCHEMA'", "'TOKUDB'", "'REPEATABLE'", 
                     "'COMMITTED'", "'UNCOMMITTED'", "'SERIALIZABLE'", "'GEOMETRYCOLLECTION'", 
                     "'GEOMCOLLECTION'", "'GEOMETRY'", "'LINESTRING'", "'MULTILINESTRING'", 
                     "'MULTIPOINT'", "'MULTIPOLYGON'", "'POINT'", "'POLYGON'", 
                     "'ABS'", "'ACOS'", "'ADDDATE'", "'ADDTIME'", "'AES_DECRYPT'", 
                     "'AES_ENCRYPT'", "'AREA'", "'ASBINARY'", "'ASIN'", 
                     "'ASTEXT'", "'ASWKB'", "'ASWKT'", "'ASYMMETRIC_DECRYPT'", 
                     "'ASYMMETRIC_DERIVE'", "'ASYMMETRIC_ENCRYPT'", "'ASYMMETRIC_SIGN'", 
                     "'ASYMMETRIC_VERIFY'", "'ATAN'", "'ATAN2'", "'BENCHMARK'", 
                     "'BIN'", "'BIT_COUNT'", "'BIT_LENGTH'", "'BUFFER'", 
                     "'CATALOG_NAME'", "'CEIL'", "'CEILING'", "'CENTROID'", 
                     "'CHARACTER_LENGTH'", "'CHARSET'", "'CHAR_LENGTH'", 
                     "'COERCIBILITY'", "'COLLATION'", "'COMPRESS'", "'CONCAT'", 
                     "'CONCAT_WS'", "'CONNECTION_ID'", "'CONV'", "'CONVERT_TZ'", 
                     "'COS'", "'COT'", "'CRC32'", "'CREATE_ASYMMETRIC_PRIV_KEY'", 
                     "'CREATE_ASYMMETRIC_PUB_KEY'", "'CREATE_DH_PARAMETERS'", 
                     "'CREATE_DIGEST'", "'CROSSES'", "'DATEDIFF'", "'DATE_FORMAT'", 
                     "'DAYNAME'", "'DAYOFMONTH'", "'DAYOFWEEK'", "'DAYOFYEAR'", 
                     "'DECODE'", "'DEGREES'", "'DES_DECRYPT'", "'DES_ENCRYPT'", 
                     "'DIMENSION'", "'DISJOINT'", "'ELT'", "'ENCODE'", "'ENCRYPT'", 
                     "'ENDPOINT'", "'ENVELOPE'", "'EQUALS'", "'EXP'", "'EXPORT_SET'", 
                     "'EXTERIORRING'", "'EXTRACTVALUE'", "'FIELD'", "'FIND_IN_SET'", 
                     "'FLOOR'", "'FORMAT'", "'FOUND_ROWS'", "'FROM_BASE64'", 
                     "'FROM_DAYS'", "'FROM_UNIXTIME'", "'GEOMCOLLFROMTEXT'", 
                     "'GEOMCOLLFROMWKB'", "'GEOMETRYCOLLECTIONFROMTEXT'", 
                     "'GEOMETRYCOLLECTIONFROMWKB'", "'GEOMETRYFROMTEXT'", 
                     "'GEOMETRYFROMWKB'", "'GEOMETRYN'", "'GEOMETRYTYPE'", 
                     "'GEOMFROMTEXT'", "'GEOMFROMWKB'", "'GET_FORMAT'", 
                     "'GET_LOCK'", "'GLENGTH'", "'GREATEST'", "'GTID_SUBSET'", 
                     "'GTID_SUBTRACT'", "'HEX'", "'IFNULL'", "'INET6_ATON'", 
                     "'INET6_NTOA'", "'INET_ATON'", "'INET_NTOA'", "'INSTR'", 
                     "'INTERIORRINGN'", "'INTERSECTS'", "'ISCLOSED'", "'ISEMPTY'", 
                     "'ISNULL'", "'ISSIMPLE'", "'IS_FREE_LOCK'", "'IS_IPV4'", 
                     "'IS_IPV4_COMPAT'", "'IS_IPV4_MAPPED'", "'IS_IPV6'", 
                     "'IS_USED_LOCK'", "'LAST_INSERT_ID'", "'LCASE'", "'LEAST'", 
                     "'LENGTH'", "'LINEFROMTEXT'", "'LINEFROMWKB'", "'LINESTRINGFROMTEXT'", 
                     "'LINESTRINGFROMWKB'", "'LN'", "'LOAD_FILE'", "'LOCATE'", 
                     "'LOG'", "'LOG10'", "'LOG2'", "'LOWER'", "'LPAD'", 
                     "'LTRIM'", "'MAKEDATE'", "'MAKETIME'", "'MAKE_SET'", 
                     "'MASTER_POS_WAIT'", "'MBRCONTAINS'", "'MBRDISJOINT'", 
                     "'MBREQUAL'", "'MBRINTERSECTS'", "'MBROVERLAPS'", "'MBRTOUCHES'", 
                     "'MBRWITHIN'", "'MD5'", "'MLINEFROMTEXT'", "'MLINEFROMWKB'", 
                     "'MONTHNAME'", "'MPOINTFROMTEXT'", "'MPOINTFROMWKB'", 
                     "'MPOLYFROMTEXT'", "'MPOLYFROMWKB'", "'MULTILINESTRINGFROMTEXT'", 
                     "'MULTILINESTRINGFROMWKB'", "'MULTIPOINTFROMTEXT'", 
                     "'MULTIPOINTFROMWKB'", "'MULTIPOLYGONFROMTEXT'", "'MULTIPOLYGONFROMWKB'", 
                     "'NAME_CONST'", "'NULLIF'", "'NUMGEOMETRIES'", "'NUMINTERIORRINGS'", 
                     "'NUMPOINTS'", "'OCT'", "'OCTET_LENGTH'", "'ORD'", 
                     "'OVERLAPS'", "'PERIOD_ADD'", "'PERIOD_DIFF'", "'PI'", 
                     "'POINTFROMTEXT'", "'POINTFROMWKB'", "'POINTN'", "'POLYFROMTEXT'", 
                     "'POLYFROMWKB'", "'POLYGONFROMTEXT'", "'POLYGONFROMWKB'", 
                     "'POW'", "'POWER'", "'QUOTE'", "'RADIANS'", "'RAND'", 
                     "'RANDOM_BYTES'", "'RELEASE_LOCK'", "'REVERSE'", "'ROUND'", 
                     "'ROW_COUNT'", "'RPAD'", "'RTRIM'", "'SEC_TO_TIME'", 
                     "'SESSION_USER'", "'SHA'", "'SHA1'", "'SHA2'", "'SCHEMA_NAME'", 
                     "'SIGN'", "'SIN'", "'SLEEP'", "'SOUNDEX'", "'SQL_THREAD_WAIT_AFTER_GTIDS'", 
                     "'SQRT'", "'SRID'", "'STARTPOINT'", "'STRCMP'", "'STR_TO_DATE'", 
                     "'ST_AREA'", "'ST_ASBINARY'", "'ST_ASTEXT'", "'ST_ASWKB'", 
                     "'ST_ASWKT'", "'ST_BUFFER'", "'ST_CENTROID'", "'ST_CONTAINS'", 
                     "'ST_CROSSES'", "'ST_DIFFERENCE'", "'ST_DIMENSION'", 
                     "'ST_DISJOINT'", "'ST_DISTANCE'", "'ST_ENDPOINT'", 
                     "'ST_ENVELOPE'", "'ST_EQUALS'", "'ST_EXTERIORRING'", 
                     "'ST_GEOMCOLLFROMTEXT'", "'ST_GEOMCOLLFROMTXT'", "'ST_GEOMCOLLFROMWKB'", 
                     "'ST_GEOMETRYCOLLECTIONFROMTEXT'", "'ST_GEOMETRYCOLLECTIONFROMWKB'", 
                     "'ST_GEOMETRYFROMTEXT'", "'ST_GEOMETRYFROMWKB'", "'ST_GEOMETRYN'", 
                     "'ST_GEOMETRYTYPE'", "'ST_GEOMFROMTEXT'", "'ST_GEOMFROMWKB'", 
                     "'ST_INTERIORRINGN'", "'ST_INTERSECTION'", "'ST_INTERSECTS'", 
                     "'ST_ISCLOSED'", "'ST_ISEMPTY'", "'ST_ISSIMPLE'", "'ST_LINEFROMTEXT'", 
                     "'ST_LINEFROMWKB'", "'ST_LINESTRINGFROMTEXT'", "'ST_LINESTRINGFROMWKB'", 
                     "'ST_NUMGEOMETRIES'", "'ST_NUMINTERIORRING'", "'ST_NUMINTERIORRINGS'", 
                     "'ST_NUMPOINTS'", "'ST_OVERLAPS'", "'ST_POINTFROMTEXT'", 
                     "'ST_POINTFROMWKB'", "'ST_POINTN'", "'ST_POLYFROMTEXT'", 
                     "'ST_POLYFROMWKB'", "'ST_POLYGONFROMTEXT'", "'ST_POLYGONFROMWKB'", 
                     "'ST_SRID'", "'ST_STARTPOINT'", "'ST_SYMDIFFERENCE'", 
                     "'ST_TOUCHES'", "'ST_UNION'", "'ST_WITHIN'", "'ST_X'", 
                     "'ST_Y'", "'SUBDATE'", "'SUBSTRING_INDEX'", "'SUBTIME'", 
                     "'SYSTEM_USER'", "'TAN'", "'TIMEDIFF'", "'TIMESTAMPADD'", 
                     "'TIMESTAMPDIFF'", "'TIME_FORMAT'", "'TIME_TO_SEC'", 
                     "'TOUCHES'", "'TO_BASE64'", "'TO_DAYS'", "'TO_SECONDS'", 
                     "'UCASE'", "'UNCOMPRESS'", "'UNCOMPRESSED_LENGTH'", 
                     "'UNHEX'", "'UNIX_TIMESTAMP'", "'UPDATEXML'", "'UPPER'", 
                     "'UUID'", "'UUID_SHORT'", "'VALIDATE_PASSWORD_STRENGTH'", 
                     "'VERSION'", "'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS'", 
                     "'WEEKDAY'", "'WEEKOFYEAR'", "'WEIGHT_STRING'", "'WITHIN'", 
                     "'YEARWEEK'", "'Y'", "'X'", "':='", "'+='", "'-='", 
                     "'*='", "'/='", "'%='", "'&='", "'^='", "'|='", "'*'", 
                     "'/'", "'%'", "'+'", "'--'", "'-'", "'DIV'", "'MOD'", 
                     "'='", "'>'", "'<'", "'!'", "'~'", "'|'", "'&'", "'^'", 
                     "'.'", "'('", "')'", "','", "';'", "'@'", "'0'", "'1'", 
                     "'2'", "'''", "'\"'", "'`'", "':'" ];

var symbolicNames = [ null, "SPACE", "SPEC_MYSQL_COMMENT", "COMMENT_INPUT", 
                      "LINE_COMMENT", "ADD", "ALL", "ALTER", "ALWAYS", "ANALYZE", 
                      "AND", "AS", "ASC", "BEFORE", "BETWEEN", "BOTH", "BY", 
                      "CALL", "CASCADE", "CASE", "CAST", "CHANGE", "CHARACTER", 
                      "CHECK", "COLLATE", "COLUMN", "CONDITION", "CONSTRAINT", 
                      "CONTINUE", "CONVERT", "CREATE", "CROSS", "CURRENT", 
                      "CURRENT_USER", "CURSOR", "DATABASE", "DATABASES", 
                      "DECLARE", "DEFAULT", "DELAYED", "DELETE", "DESC", 
                      "DESCRIBE", "DETERMINISTIC", "DIAGNOSTICS", "DISTINCT", 
                      "DISTINCTROW", "DROP", "EACH", "ELSE", "ELSEIF", "ENCLOSED", 
                      "ESCAPED", "EXISTS", "EXIT", "EXPLAIN", "FALSE", "FETCH", 
                      "FOR", "FORCE", "FOREIGN", "FROM", "FULLTEXT", "GENERATED", 
                      "GET", "GRANT", "GROUP", "HAVING", "HIGH_PRIORITY", 
                      "IF", "IGNORE", "IN", "INDEX", "INFILE", "INNER", 
                      "INOUT", "INSERT", "INTERVAL", "INTO", "IS", "ITERATE", 
                      "JOIN", "KEY", "KEYS", "KILL", "LEADING", "LEAVE", 
                      "LEFT", "LIKE", "LIMIT", "LINEAR", "LINES", "LOAD", 
                      "LOCK", "LOOP", "LOW_PRIORITY", "MASTER_BIND", "MASTER_SSL_VERIFY_SERVER_CERT", 
                      "MATCH", "MAXVALUE", "MODIFIES", "NATURAL", "NOT", 
                      "NO_WRITE_TO_BINLOG", "NULL_LITERAL", "NUMBER", "ON", 
                      "OPTIMIZE", "OPTION", "OPTIONALLY", "OR", "ORDER", 
                      "OUT", "OUTER", "OUTFILE", "PARTITION", "PRIMARY", 
                      "PROCEDURE", "PURGE", "RANGE", "READ", "READS", "REFERENCES", 
                      "REGEXP", "RELEASE", "RENAME", "REPEAT", "REPLACE", 
                      "REQUIRE", "RESIGNAL", "RESTRICT", "RETURN", "REVOKE", 
                      "RIGHT", "RLIKE", "SCHEMA", "SCHEMAS", "SELECT", "SET", 
                      "SEPARATOR", "SHOW", "SIGNAL", "SPATIAL", "SQL", "SQLEXCEPTION", 
                      "SQLSTATE", "SQLWARNING", "SQL_BIG_RESULT", "SQL_CALC_FOUND_ROWS", 
                      "SQL_SMALL_RESULT", "SSL", "STACKED", "STARTING", 
                      "STRAIGHT_JOIN", "TABLE", "TERMINATED", "THEN", "TO", 
                      "TRAILING", "TRIGGER", "TRUE", "UNDO", "UNION", "UNIQUE", 
                      "UNLOCK", "UNSIGNED", "UPDATE", "USAGE", "USE", "USING", 
                      "VALUES", "WHEN", "WHERE", "WHILE", "WITH", "WRITE", 
                      "XOR", "ZEROFILL", "TINYINT", "SMALLINT", "MEDIUMINT", 
                      "MIDDLEINT", "INT", "INT1", "INT2", "INT3", "INT4", 
                      "INT8", "INTEGER", "BIGINT", "REAL", "DOUBLE", "PRECISION", 
                      "FLOAT", "FLOAT4", "FLOAT8", "DECIMAL", "DEC", "NUMERIC", 
                      "DATE", "TIME", "TIMESTAMP", "DATETIME", "YEAR", "CHAR", 
                      "VARCHAR", "NVARCHAR", "NATIONAL", "BINARY", "VARBINARY", 
                      "TINYBLOB", "BLOB", "MEDIUMBLOB", "LONG", "LONGBLOB", 
                      "TINYTEXT", "TEXT", "MEDIUMTEXT", "LONGTEXT", "ENUM", 
                      "VARYING", "SERIAL", "YEAR_MONTH", "DAY_HOUR", "DAY_MINUTE", 
                      "DAY_SECOND", "HOUR_MINUTE", "HOUR_SECOND", "MINUTE_SECOND", 
                      "SECOND_MICROSECOND", "MINUTE_MICROSECOND", "HOUR_MICROSECOND", 
                      "DAY_MICROSECOND", "JSON_VALID", "JSON_SCHEMA_VALID", 
                      "AVG", "BIT_AND", "BIT_OR", "BIT_XOR", "COUNT", "GROUP_CONCAT", 
                      "MAX", "MIN", "STD", "STDDEV", "STDDEV_POP", "STDDEV_SAMP", 
                      "SUM", "VAR_POP", "VAR_SAMP", "VARIANCE", "CURRENT_DATE", 
                      "CURRENT_TIME", "CURRENT_TIMESTAMP", "LOCALTIME", 
                      "CURDATE", "CURTIME", "DATE_ADD", "DATE_SUB", "EXTRACT", 
                      "LOCALTIMESTAMP", "NOW", "POSITION", "SUBSTR", "SUBSTRING", 
                      "SYSDATE", "TRIM", "UTC_DATE", "UTC_TIME", "UTC_TIMESTAMP", 
                      "ACCOUNT", "ACTION", "AFTER", "AGGREGATE", "ALGORITHM", 
                      "ANY", "AT", "AUTHORS", "AUTOCOMMIT", "AUTOEXTEND_SIZE", 
                      "AUTO_INCREMENT", "AVG_ROW_LENGTH", "BEGIN", "BINLOG", 
                      "BIT", "BLOCK", "BOOL", "BOOLEAN", "BTREE", "CACHE", 
                      "CASCADED", "CHAIN", "CHANGED", "CHANNEL", "CHECKSUM", 
                      "PAGE_CHECKSUM", "CIPHER", "CLASS_ORIGIN", "CLIENT", 
                      "CLOSE", "COALESCE", "CODE", "COLUMNS", "COLUMN_FORMAT", 
                      "COLUMN_NAME", "COMMENT", "COMMIT", "COMPACT", "COMPLETION", 
                      "COMPRESSED", "COMPRESSION", "CONCURRENT", "CONNECTION", 
                      "CONSISTENT", "CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA", 
                      "CONSTRAINT_NAME", "CONTAINS", "CONTEXT", "CONTRIBUTORS", 
                      "COPY", "CPU", "CURSOR_NAME", "DATA", "DATAFILE", 
                      "DEALLOCATE", "DEFAULT_AUTH", "DEFINER", "DELAY_KEY_WRITE", 
                      "DES_KEY_FILE", "DIRECTORY", "DISABLE", "DISCARD", 
                      "DISK", "DO", "DUMPFILE", "DUPLICATE", "DYNAMIC", 
                      "ENABLE", "ENCRYPTION", "END", "ENDS", "ENGINE", "ENGINES", 
                      "ERROR", "ERRORS", "ESCAPE", "EVEN", "EVENT", "EVENTS", 
                      "EVERY", "EXCHANGE", "EXCLUSIVE", "EXPIRE", "EXPORT", 
                      "EXTENDED", "EXTENT_SIZE", "FAST", "FAULTS", "FIELDS", 
                      "FILE_BLOCK_SIZE", "FILTER", "FIRST", "FIXED", "FLUSH", 
                      "FOLLOWS", "FOUND", "FULL", "FUNCTION", "GENERAL", 
                      "GLOBAL", "GRANTS", "GROUP_REPLICATION", "HANDLER", 
                      "HASH", "HELP", "HOST", "HOSTS", "IDENTIFIED", "IGNORE_SERVER_IDS", 
                      "IMPORT", "INDEXES", "INITIAL_SIZE", "INPLACE", "INSERT_METHOD", 
                      "INSTALL", "INSTANCE", "INVISIBLE", "INVOKER", "IO", 
                      "IO_THREAD", "IPC", "ISOLATION", "ISSUER", "JSON", 
                      "KEY_BLOCK_SIZE", "LANGUAGE", "LAST", "LEAVES", "LESS", 
                      "LEVEL", "LIST", "LOCAL", "LOGFILE", "LOGS", "MASTER", 
                      "MASTER_AUTO_POSITION", "MASTER_CONNECT_RETRY", "MASTER_DELAY", 
                      "MASTER_HEARTBEAT_PERIOD", "MASTER_HOST", "MASTER_LOG_FILE", 
                      "MASTER_LOG_POS", "MASTER_PASSWORD", "MASTER_PORT", 
                      "MASTER_RETRY_COUNT", "MASTER_SSL", "MASTER_SSL_CA", 
                      "MASTER_SSL_CAPATH", "MASTER_SSL_CERT", "MASTER_SSL_CIPHER", 
                      "MASTER_SSL_CRL", "MASTER_SSL_CRLPATH", "MASTER_SSL_KEY", 
                      "MASTER_TLS_VERSION", "MASTER_USER", "MAX_CONNECTIONS_PER_HOUR", 
                      "MAX_QUERIES_PER_HOUR", "MAX_ROWS", "MAX_SIZE", "MAX_UPDATES_PER_HOUR", 
                      "MAX_USER_CONNECTIONS", "MEDIUM", "MERGE", "MESSAGE_TEXT", 
                      "MID", "MIGRATE", "MIN_ROWS", "MODE", "MODIFY", "MUTEX", 
                      "MYSQL", "MYSQL_ERRNO", "NAME", "NAMES", "NCHAR", 
                      "NEVER", "NEXT", "NO", "NODEGROUP", "NONE", "OFFLINE", 
                      "OFFSET", "OJ", "OLD_PASSWORD", "ONE", "ONLINE", "ONLY", 
                      "OPEN", "OPTIMIZER_COSTS", "OPTIONS", "OWNER", "PACK_KEYS", 
                      "PAGE", "PARSER", "PARTIAL", "PARTITIONING", "PARTITIONS", 
                      "PASSWORD", "PHASE", "PLUGIN", "PLUGIN_DIR", "PLUGINS", 
                      "PORT", "PRECEDES", "PREPARE", "PRESERVE", "PREV", 
                      "PROCESSLIST", "PROFILE", "PROFILES", "PROXY", "QUERY", 
                      "QUICK", "REBUILD", "RECOVER", "REDO_BUFFER_SIZE", 
                      "REDUNDANT", "RELAY", "RELAY_LOG_FILE", "RELAY_LOG_POS", 
                      "RELAYLOG", "REMOVE", "REORGANIZE", "REPAIR", "REPLICATE_DO_DB", 
                      "REPLICATE_DO_TABLE", "REPLICATE_IGNORE_DB", "REPLICATE_IGNORE_TABLE", 
                      "REPLICATE_REWRITE_DB", "REPLICATE_WILD_DO_TABLE", 
                      "REPLICATE_WILD_IGNORE_TABLE", "REPLICATION", "RESET", 
                      "RESUME", "RETURNED_SQLSTATE", "RETURNS", "ROLE", 
                      "ROLLBACK", "ROLLUP", "ROTATE", "ROW", "ROWS", "ROW_FORMAT", 
                      "SAVEPOINT", "SCHEDULE", "SECURITY", "SERVER", "SESSION", 
                      "SHARE", "SHARED", "SIGNED", "SIMPLE", "SLAVE", "SLOW", 
                      "SNAPSHOT", "SOCKET", "SOME", "SONAME", "SOUNDS", 
                      "SOURCE", "SQL_AFTER_GTIDS", "SQL_AFTER_MTS_GAPS", 
                      "SQL_BEFORE_GTIDS", "SQL_BUFFER_RESULT", "SQL_CACHE", 
                      "SQL_NO_CACHE", "SQL_THREAD", "START", "STARTS", "STATS_AUTO_RECALC", 
                      "STATS_PERSISTENT", "STATS_SAMPLE_PAGES", "STATUS", 
                      "STOP", "STORAGE", "STORED", "STRING", "SUBCLASS_ORIGIN", 
                      "SUBJECT", "SUBPARTITION", "SUBPARTITIONS", "SUSPEND", 
                      "SWAPS", "SWITCHES", "TABLE_NAME", "TABLESPACE", "TEMPORARY", 
                      "TEMPTABLE", "THAN", "TRADITIONAL", "TRANSACTION", 
                      "TRANSACTIONAL", "TRIGGERS", "TRUNCATE", "UNDEFINED", 
                      "UNDOFILE", "UNDO_BUFFER_SIZE", "UNINSTALL", "UNKNOWN", 
                      "UNTIL", "UPGRADE", "USER", "USE_FRM", "USER_RESOURCES", 
                      "VALIDATION", "VALUE", "VARIABLES", "VIEW", "VIRTUAL", 
                      "VISIBLE", "WAIT", "WARNINGS", "WITHOUT", "WORK", 
                      "WRAPPER", "X509", "XA", "XML", "EUR", "USA", "JIS", 
                      "ISO", "INTERNAL", "QUARTER", "MONTH", "DAY", "HOUR", 
                      "MINUTE", "WEEK", "SECOND", "MICROSECOND", "TABLES", 
                      "ROUTINE", "EXECUTE", "FILE", "PROCESS", "RELOAD", 
                      "SHUTDOWN", "SUPER", "PRIVILEGES", "APPLICATION_PASSWORD_ADMIN", 
                      "AUDIT_ADMIN", "BACKUP_ADMIN", "BINLOG_ADMIN", "BINLOG_ENCRYPTION_ADMIN", 
                      "CLONE_ADMIN", "CONNECTION_ADMIN", "ENCRYPTION_KEY_ADMIN", 
                      "FIREWALL_ADMIN", "FIREWALL_USER", "GROUP_REPLICATION_ADMIN", 
                      "INNODB_REDO_LOG_ARCHIVE", "NDB_STORED_USER", "PERSIST_RO_VARIABLES_ADMIN", 
                      "REPLICATION_APPLIER", "REPLICATION_SLAVE_ADMIN", 
                      "RESOURCE_GROUP_ADMIN", "RESOURCE_GROUP_USER", "ROLE_ADMIN", 
                      "SESSION_VARIABLES_ADMIN", "SET_USER_ID", "SHOW_ROUTINE", 
                      "SYSTEM_VARIABLES_ADMIN", "TABLE_ENCRYPTION_ADMIN", 
                      "VERSION_TOKEN_ADMIN", "XA_RECOVER_ADMIN", "ARMSCII8", 
                      "ASCII", "BIG5", "CP1250", "CP1251", "CP1256", "CP1257", 
                      "CP850", "CP852", "CP866", "CP932", "DEC8", "EUCJPMS", 
                      "EUCKR", "GB2312", "GBK", "GEOSTD8", "GREEK", "HEBREW", 
                      "HP8", "KEYBCS2", "KOI8R", "KOI8U", "LATIN1", "LATIN2", 
                      "LATIN5", "LATIN7", "MACCE", "MACROMAN", "SJIS", "SWE7", 
                      "TIS620", "UCS2", "UJIS", "UTF16", "UTF16LE", "UTF32", 
                      "UTF8", "UTF8MB3", "UTF8MB4", "ARCHIVE", "BLACKHOLE", 
                      "CSV", "FEDERATED", "INNODB", "MEMORY", "MRG_MYISAM", 
                      "MYISAM", "NDB", "NDBCLUSTER", "PERFORMANCE_SCHEMA", 
                      "TOKUDB", "REPEATABLE", "COMMITTED", "UNCOMMITTED", 
                      "SERIALIZABLE", "GEOMETRYCOLLECTION", "GEOMCOLLECTION", 
                      "GEOMETRY", "LINESTRING", "MULTILINESTRING", "MULTIPOINT", 
                      "MULTIPOLYGON", "POINT", "POLYGON", "ABS", "ACOS", 
                      "ADDDATE", "ADDTIME", "AES_DECRYPT", "AES_ENCRYPT", 
                      "AREA", "ASBINARY", "ASIN", "ASTEXT", "ASWKB", "ASWKT", 
                      "ASYMMETRIC_DECRYPT", "ASYMMETRIC_DERIVE", "ASYMMETRIC_ENCRYPT", 
                      "ASYMMETRIC_SIGN", "ASYMMETRIC_VERIFY", "ATAN", "ATAN2", 
                      "BENCHMARK", "BIN", "BIT_COUNT", "BIT_LENGTH", "BUFFER", 
                      "CATALOG_NAME", "CEIL", "CEILING", "CENTROID", "CHARACTER_LENGTH", 
                      "CHARSET", "CHAR_LENGTH", "COERCIBILITY", "COLLATION", 
                      "COMPRESS", "CONCAT", "CONCAT_WS", "CONNECTION_ID", 
                      "CONV", "CONVERT_TZ", "COS", "COT", "CRC32", "CREATE_ASYMMETRIC_PRIV_KEY", 
                      "CREATE_ASYMMETRIC_PUB_KEY", "CREATE_DH_PARAMETERS", 
                      "CREATE_DIGEST", "CROSSES", "DATEDIFF", "DATE_FORMAT", 
                      "DAYNAME", "DAYOFMONTH", "DAYOFWEEK", "DAYOFYEAR", 
                      "DECODE", "DEGREES", "DES_DECRYPT", "DES_ENCRYPT", 
                      "DIMENSION", "DISJOINT", "ELT", "ENCODE", "ENCRYPT", 
                      "ENDPOINT", "ENVELOPE", "EQUALS", "EXP", "EXPORT_SET", 
                      "EXTERIORRING", "EXTRACTVALUE", "FIELD", "FIND_IN_SET", 
                      "FLOOR", "FORMAT", "FOUND_ROWS", "FROM_BASE64", "FROM_DAYS", 
                      "FROM_UNIXTIME", "GEOMCOLLFROMTEXT", "GEOMCOLLFROMWKB", 
                      "GEOMETRYCOLLECTIONFROMTEXT", "GEOMETRYCOLLECTIONFROMWKB", 
                      "GEOMETRYFROMTEXT", "GEOMETRYFROMWKB", "GEOMETRYN", 
                      "GEOMETRYTYPE", "GEOMFROMTEXT", "GEOMFROMWKB", "GET_FORMAT", 
                      "GET_LOCK", "GLENGTH", "GREATEST", "GTID_SUBSET", 
                      "GTID_SUBTRACT", "HEX", "IFNULL", "INET6_ATON", "INET6_NTOA", 
                      "INET_ATON", "INET_NTOA", "INSTR", "INTERIORRINGN", 
                      "INTERSECTS", "ISCLOSED", "ISEMPTY", "ISNULL", "ISSIMPLE", 
                      "IS_FREE_LOCK", "IS_IPV4", "IS_IPV4_COMPAT", "IS_IPV4_MAPPED", 
                      "IS_IPV6", "IS_USED_LOCK", "LAST_INSERT_ID", "LCASE", 
                      "LEAST", "LENGTH", "LINEFROMTEXT", "LINEFROMWKB", 
                      "LINESTRINGFROMTEXT", "LINESTRINGFROMWKB", "LN", "LOAD_FILE", 
                      "LOCATE", "LOG", "LOG10", "LOG2", "LOWER", "LPAD", 
                      "LTRIM", "MAKEDATE", "MAKETIME", "MAKE_SET", "MASTER_POS_WAIT", 
                      "MBRCONTAINS", "MBRDISJOINT", "MBREQUAL", "MBRINTERSECTS", 
                      "MBROVERLAPS", "MBRTOUCHES", "MBRWITHIN", "MD5", "MLINEFROMTEXT", 
                      "MLINEFROMWKB", "MONTHNAME", "MPOINTFROMTEXT", "MPOINTFROMWKB", 
                      "MPOLYFROMTEXT", "MPOLYFROMWKB", "MULTILINESTRINGFROMTEXT", 
                      "MULTILINESTRINGFROMWKB", "MULTIPOINTFROMTEXT", "MULTIPOINTFROMWKB", 
                      "MULTIPOLYGONFROMTEXT", "MULTIPOLYGONFROMWKB", "NAME_CONST", 
                      "NULLIF", "NUMGEOMETRIES", "NUMINTERIORRINGS", "NUMPOINTS", 
                      "OCT", "OCTET_LENGTH", "ORD", "OVERLAPS", "PERIOD_ADD", 
                      "PERIOD_DIFF", "PI", "POINTFROMTEXT", "POINTFROMWKB", 
                      "POINTN", "POLYFROMTEXT", "POLYFROMWKB", "POLYGONFROMTEXT", 
                      "POLYGONFROMWKB", "POW", "POWER", "QUOTE", "RADIANS", 
                      "RAND", "RANDOM_BYTES", "RELEASE_LOCK", "REVERSE", 
                      "ROUND", "ROW_COUNT", "RPAD", "RTRIM", "SEC_TO_TIME", 
                      "SESSION_USER", "SHA", "SHA1", "SHA2", "SCHEMA_NAME", 
                      "SIGN", "SIN", "SLEEP", "SOUNDEX", "SQL_THREAD_WAIT_AFTER_GTIDS", 
                      "SQRT", "SRID", "STARTPOINT", "STRCMP", "STR_TO_DATE", 
                      "ST_AREA", "ST_ASBINARY", "ST_ASTEXT", "ST_ASWKB", 
                      "ST_ASWKT", "ST_BUFFER", "ST_CENTROID", "ST_CONTAINS", 
                      "ST_CROSSES", "ST_DIFFERENCE", "ST_DIMENSION", "ST_DISJOINT", 
                      "ST_DISTANCE", "ST_ENDPOINT", "ST_ENVELOPE", "ST_EQUALS", 
                      "ST_EXTERIORRING", "ST_GEOMCOLLFROMTEXT", "ST_GEOMCOLLFROMTXT", 
                      "ST_GEOMCOLLFROMWKB", "ST_GEOMETRYCOLLECTIONFROMTEXT", 
                      "ST_GEOMETRYCOLLECTIONFROMWKB", "ST_GEOMETRYFROMTEXT", 
                      "ST_GEOMETRYFROMWKB", "ST_GEOMETRYN", "ST_GEOMETRYTYPE", 
                      "ST_GEOMFROMTEXT", "ST_GEOMFROMWKB", "ST_INTERIORRINGN", 
                      "ST_INTERSECTION", "ST_INTERSECTS", "ST_ISCLOSED", 
                      "ST_ISEMPTY", "ST_ISSIMPLE", "ST_LINEFROMTEXT", "ST_LINEFROMWKB", 
                      "ST_LINESTRINGFROMTEXT", "ST_LINESTRINGFROMWKB", "ST_NUMGEOMETRIES", 
                      "ST_NUMINTERIORRING", "ST_NUMINTERIORRINGS", "ST_NUMPOINTS", 
                      "ST_OVERLAPS", "ST_POINTFROMTEXT", "ST_POINTFROMWKB", 
                      "ST_POINTN", "ST_POLYFROMTEXT", "ST_POLYFROMWKB", 
                      "ST_POLYGONFROMTEXT", "ST_POLYGONFROMWKB", "ST_SRID", 
                      "ST_STARTPOINT", "ST_SYMDIFFERENCE", "ST_TOUCHES", 
                      "ST_UNION", "ST_WITHIN", "ST_X", "ST_Y", "SUBDATE", 
                      "SUBSTRING_INDEX", "SUBTIME", "SYSTEM_USER", "TAN", 
                      "TIMEDIFF", "TIMESTAMPADD", "TIMESTAMPDIFF", "TIME_FORMAT", 
                      "TIME_TO_SEC", "TOUCHES", "TO_BASE64", "TO_DAYS", 
                      "TO_SECONDS", "UCASE", "UNCOMPRESS", "UNCOMPRESSED_LENGTH", 
                      "UNHEX", "UNIX_TIMESTAMP", "UPDATEXML", "UPPER", "UUID", 
                      "UUID_SHORT", "VALIDATE_PASSWORD_STRENGTH", "VERSION", 
                      "WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS", "WEEKDAY", "WEEKOFYEAR", 
                      "WEIGHT_STRING", "WITHIN", "YEARWEEK", "Y_FUNCTION", 
                      "X_FUNCTION", "VAR_ASSIGN", "PLUS_ASSIGN", "MINUS_ASSIGN", 
                      "MULT_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "AND_ASSIGN", 
                      "XOR_ASSIGN", "OR_ASSIGN", "STAR", "DIVIDE", "MODULE", 
                      "PLUS", "MINUSMINUS", "MINUS", "DIV", "MOD", "EQUAL_SYMBOL", 
                      "GREATER_SYMBOL", "LESS_SYMBOL", "EXCLAMATION_SYMBOL", 
                      "BIT_NOT_OP", "BIT_OR_OP", "BIT_AND_OP", "BIT_XOR_OP", 
                      "DOT", "LR_BRACKET", "RR_BRACKET", "COMMA", "SEMI", 
                      "AT_SIGN", "ZERO_DECIMAL", "ONE_DECIMAL", "TWO_DECIMAL", 
                      "SINGLE_QUOTE_SYMB", "DOUBLE_QUOTE_SYMB", "REVERSE_QUOTE_SYMB", 
                      "COLON_SYMB", "CHARSET_REVERSE_QOUTE_STRING", "FILESIZE_LITERAL", 
                      "START_NATIONAL_STRING_LITERAL", "STRING_LITERAL", 
                      "DECIMAL_LITERAL", "HEXADECIMAL_LITERAL", "REAL_LITERAL", 
                      "NULL_SPEC_LITERAL", "BIT_STRING", "STRING_CHARSET_NAME", 
                      "DOT_ID", "ID", "REVERSE_QUOTE_ID", "STRING_USER_NAME", 
                      "LOCAL_ID", "GLOBAL_ID", "ERROR_RECONGNIGION" ];

var ruleNames =  [ "program", "statement", "sqlStatements", "sqlStatement", 
                   "emptyStatement", "ddlStatement", "dmlStatement", "transactionStatement", 
                   "replicationStatement", "preparedStatement", "compoundStatement", 
                   "administrationStatement", "utilityStatement", "createDatabase", 
                   "createEvent", "createIndex", "createLogfileGroup", "createProcedure", 
                   "createFunction", "createServer", "createTable", "createTablespaceInnodb", 
                   "createTablespaceNdb", "createTrigger", "createView", 
                   "createDatabaseOption", "ownerStatement", "scheduleExpression", 
                   "timestampValue", "intervalExpr", "intervalType", "enableType", 
                   "indexType", "indexOption", "procedureParameter", "functionParameter", 
                   "routineOption", "serverOption", "createDefinitions", 
                   "createDefinition", "columnDefinition", "columnConstraint", 
                   "tableConstraint", "referenceDefinition", "referenceAction", 
                   "referenceControlType", "indexColumnDefinition", "tableOption", 
                   "tablespaceStorage", "partitionDefinitions", "partitionFunctionDefinition", 
                   "subpartitionFunctionDefinition", "partitionDefinition", 
                   "partitionDefinerAtom", "partitionDefinerVector", "subpartitionDefinition", 
                   "partitionOption", "alterDatabase", "alterEvent", "alterFunction", 
                   "alterInstance", "alterLogfileGroup", "alterProcedure", 
                   "alterServer", "alterTable", "alterTablespace", "alterView", 
                   "alterSpecification", "dropDatabase", "dropEvent", "dropIndex", 
                   "dropLogfileGroup", "dropProcedure", "dropFunction", 
                   "dropServer", "dropTable", "dropTablespace", "dropTrigger", 
                   "dropView", "renameTable", "renameTableClause", "truncateTable", 
                   "callStatement", "deleteStatement", "doStatement", "handlerStatement", 
                   "insertStatement", "loadDataStatement", "loadXmlStatement", 
                   "replaceStatement", "selectStatement", "updateStatement", 
                   "insertStatementValue", "updatedElement", "assignmentField", 
                   "lockClause", "singleDeleteStatement", "multipleDeleteStatement", 
                   "handlerOpenStatement", "handlerReadIndexStatement", 
                   "handlerReadStatement", "handlerCloseStatement", "singleUpdateStatement", 
                   "multipleUpdateStatement", "orderByClause", "orderByExpression", 
                   "tableSources", "tableSource", "tableSourceItem", "indexHint", 
                   "indexHintType", "joinPart", "queryExpression", "queryExpressionNointo", 
                   "querySpecification", "querySpecificationNointo", "unionParenthesis", 
                   "unionStatement", "selectSpec", "selectElements", "selectElement", 
                   "selectIntoExpression", "selectFieldsInto", "selectLinesInto", 
                   "fromClause", "groupByItem", "limitClause", "limitClauseAtom", 
                   "startTransaction", "beginWork", "commitWork", "rollbackWork", 
                   "savepointStatement", "rollbackStatement", "releaseStatement", 
                   "lockTables", "unlockTables", "setAutocommitStatement", 
                   "setTransactionStatement", "transactionMode", "lockTableElement", 
                   "lockAction", "transactionOption", "transactionLevel", 
                   "changeMaster", "changeReplicationFilter", "purgeBinaryLogs", 
                   "resetMaster", "resetSlave", "startSlave", "stopSlave", 
                   "startGroupReplication", "stopGroupReplication", "masterOption", 
                   "stringMasterOption", "decimalMasterOption", "boolMasterOption", 
                   "channelOption", "replicationFilter", "tablePair", "threadType", 
                   "untilOption", "connectionOption", "gtuidSet", "xaStartTransaction", 
                   "xaEndTransaction", "xaPrepareStatement", "xaCommitWork", 
                   "xaRollbackWork", "xaRecoverWork", "prepareStatement", 
                   "executeStatement", "deallocatePrepare", "routineBody", 
                   "blockStatement", "caseStatement", "ifStatement", "iterateStatement", 
                   "leaveStatement", "loopStatement", "repeatStatement", 
                   "returnStatement", "whileStatement", "cursorStatement", 
                   "declareVariable", "declareCondition", "declareCursor", 
                   "declareHandler", "handlerConditionValue", "procedureSqlStatement", 
                   "caseAlternative", "elifAlternative", "alterUser", "createUser", 
                   "dropUser", "grantStatement", "grantProxy", "renameUser", 
                   "revokeStatement", "revokeProxy", "setPasswordStatement", 
                   "userSpecification", "userAuthOption", "tlsOption", "userResourceOption", 
                   "userPasswordOption", "userLockOption", "privelegeClause", 
                   "privilege", "privilegeLevel", "renameUserClause", "analyzeTable", 
                   "checkTable", "checksumTable", "optimizeTable", "repairTable", 
                   "checkTableOption", "createUdfunction", "installPlugin", 
                   "uninstallPlugin", "setStatement", "showStatement", "variableClause", 
                   "showCommonEntity", "showFilter", "showGlobalInfoClause", 
                   "showSchemaEntity", "showProfileType", "binlogStatement", 
                   "cacheIndexStatement", "flushStatement", "killStatement", 
                   "loadIndexIntoCache", "resetStatement", "shutdownStatement", 
                   "tableIndexes", "flushOption", "flushTableOption", "loadedTableIndexes", 
                   "simpleDescribeStatement", "fullDescribeStatement", "helpStatement", 
                   "useStatement", "signalStatement", "resignalStatement", 
                   "signalConditionInformation", "diagnosticsStatement", 
                   "diagnosticsConditionInformationName", "describeObjectClause", 
                   "fullId", "tableName", "fullColumnName", "indexColumnName", 
                   "userName", "mysqlVariable", "charsetName", "collationName", 
                   "engineName", "uuidSet", "xid", "xuidStringId", "authPlugin", 
                   "uid", "simpleId", "dottedId", "decimalLiteral", "fileSizeLiteral", 
                   "stringLiteral", "booleanLiteral", "hexadecimalLiteral", 
                   "nullNotnull", "constant", "dataType", "collectionOptions", 
                   "convertedDataType", "lengthOneDimension", "lengthTwoDimension", 
                   "lengthTwoOptionalDimension", "uidList", "tables", "indexColumnNames", 
                   "expressions", "expressionsWithDefaults", "constants", 
                   "simpleStrings", "userVariables", "defaultValue", "currentTimestamp", 
                   "expressionOrDefault", "ifExists", "ifNotExists", "functionCall", 
                   "specificFunction", "caseFuncAlternative", "levelsInWeightString", 
                   "levelInWeightListElement", "aggregateWindowedFunction", 
                   "scalarFunctionName", "passwordFunctionClause", "functionArgs", 
                   "functionArg", "expression", "predicate", "expressionAtom", 
                   "unaryOperator", "comparisonOperator", "logicalOperator", 
                   "bitOperator", "mathOperator", "charsetNameBase", "transactionLevelBase", 
                   "privilegesBase", "intervalTypeBase", "dataTypeBase", 
                   "keywordsCanBeId", "functionNameBase" ];

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.SPACE = 1;
SqlParser.SPEC_MYSQL_COMMENT = 2;
SqlParser.COMMENT_INPUT = 3;
SqlParser.LINE_COMMENT = 4;
SqlParser.ADD = 5;
SqlParser.ALL = 6;
SqlParser.ALTER = 7;
SqlParser.ALWAYS = 8;
SqlParser.ANALYZE = 9;
SqlParser.AND = 10;
SqlParser.AS = 11;
SqlParser.ASC = 12;
SqlParser.BEFORE = 13;
SqlParser.BETWEEN = 14;
SqlParser.BOTH = 15;
SqlParser.BY = 16;
SqlParser.CALL = 17;
SqlParser.CASCADE = 18;
SqlParser.CASE = 19;
SqlParser.CAST = 20;
SqlParser.CHANGE = 21;
SqlParser.CHARACTER = 22;
SqlParser.CHECK = 23;
SqlParser.COLLATE = 24;
SqlParser.COLUMN = 25;
SqlParser.CONDITION = 26;
SqlParser.CONSTRAINT = 27;
SqlParser.CONTINUE = 28;
SqlParser.CONVERT = 29;
SqlParser.CREATE = 30;
SqlParser.CROSS = 31;
SqlParser.CURRENT = 32;
SqlParser.CURRENT_USER = 33;
SqlParser.CURSOR = 34;
SqlParser.DATABASE = 35;
SqlParser.DATABASES = 36;
SqlParser.DECLARE = 37;
SqlParser.DEFAULT = 38;
SqlParser.DELAYED = 39;
SqlParser.DELETE = 40;
SqlParser.DESC = 41;
SqlParser.DESCRIBE = 42;
SqlParser.DETERMINISTIC = 43;
SqlParser.DIAGNOSTICS = 44;
SqlParser.DISTINCT = 45;
SqlParser.DISTINCTROW = 46;
SqlParser.DROP = 47;
SqlParser.EACH = 48;
SqlParser.ELSE = 49;
SqlParser.ELSEIF = 50;
SqlParser.ENCLOSED = 51;
SqlParser.ESCAPED = 52;
SqlParser.EXISTS = 53;
SqlParser.EXIT = 54;
SqlParser.EXPLAIN = 55;
SqlParser.FALSE = 56;
SqlParser.FETCH = 57;
SqlParser.FOR = 58;
SqlParser.FORCE = 59;
SqlParser.FOREIGN = 60;
SqlParser.FROM = 61;
SqlParser.FULLTEXT = 62;
SqlParser.GENERATED = 63;
SqlParser.GET = 64;
SqlParser.GRANT = 65;
SqlParser.GROUP = 66;
SqlParser.HAVING = 67;
SqlParser.HIGH_PRIORITY = 68;
SqlParser.IF = 69;
SqlParser.IGNORE = 70;
SqlParser.IN = 71;
SqlParser.INDEX = 72;
SqlParser.INFILE = 73;
SqlParser.INNER = 74;
SqlParser.INOUT = 75;
SqlParser.INSERT = 76;
SqlParser.INTERVAL = 77;
SqlParser.INTO = 78;
SqlParser.IS = 79;
SqlParser.ITERATE = 80;
SqlParser.JOIN = 81;
SqlParser.KEY = 82;
SqlParser.KEYS = 83;
SqlParser.KILL = 84;
SqlParser.LEADING = 85;
SqlParser.LEAVE = 86;
SqlParser.LEFT = 87;
SqlParser.LIKE = 88;
SqlParser.LIMIT = 89;
SqlParser.LINEAR = 90;
SqlParser.LINES = 91;
SqlParser.LOAD = 92;
SqlParser.LOCK = 93;
SqlParser.LOOP = 94;
SqlParser.LOW_PRIORITY = 95;
SqlParser.MASTER_BIND = 96;
SqlParser.MASTER_SSL_VERIFY_SERVER_CERT = 97;
SqlParser.MATCH = 98;
SqlParser.MAXVALUE = 99;
SqlParser.MODIFIES = 100;
SqlParser.NATURAL = 101;
SqlParser.NOT = 102;
SqlParser.NO_WRITE_TO_BINLOG = 103;
SqlParser.NULL_LITERAL = 104;
SqlParser.NUMBER = 105;
SqlParser.ON = 106;
SqlParser.OPTIMIZE = 107;
SqlParser.OPTION = 108;
SqlParser.OPTIONALLY = 109;
SqlParser.OR = 110;
SqlParser.ORDER = 111;
SqlParser.OUT = 112;
SqlParser.OUTER = 113;
SqlParser.OUTFILE = 114;
SqlParser.PARTITION = 115;
SqlParser.PRIMARY = 116;
SqlParser.PROCEDURE = 117;
SqlParser.PURGE = 118;
SqlParser.RANGE = 119;
SqlParser.READ = 120;
SqlParser.READS = 121;
SqlParser.REFERENCES = 122;
SqlParser.REGEXP = 123;
SqlParser.RELEASE = 124;
SqlParser.RENAME = 125;
SqlParser.REPEAT = 126;
SqlParser.REPLACE = 127;
SqlParser.REQUIRE = 128;
SqlParser.RESIGNAL = 129;
SqlParser.RESTRICT = 130;
SqlParser.RETURN = 131;
SqlParser.REVOKE = 132;
SqlParser.RIGHT = 133;
SqlParser.RLIKE = 134;
SqlParser.SCHEMA = 135;
SqlParser.SCHEMAS = 136;
SqlParser.SELECT = 137;
SqlParser.SET = 138;
SqlParser.SEPARATOR = 139;
SqlParser.SHOW = 140;
SqlParser.SIGNAL = 141;
SqlParser.SPATIAL = 142;
SqlParser.SQL = 143;
SqlParser.SQLEXCEPTION = 144;
SqlParser.SQLSTATE = 145;
SqlParser.SQLWARNING = 146;
SqlParser.SQL_BIG_RESULT = 147;
SqlParser.SQL_CALC_FOUND_ROWS = 148;
SqlParser.SQL_SMALL_RESULT = 149;
SqlParser.SSL = 150;
SqlParser.STACKED = 151;
SqlParser.STARTING = 152;
SqlParser.STRAIGHT_JOIN = 153;
SqlParser.TABLE = 154;
SqlParser.TERMINATED = 155;
SqlParser.THEN = 156;
SqlParser.TO = 157;
SqlParser.TRAILING = 158;
SqlParser.TRIGGER = 159;
SqlParser.TRUE = 160;
SqlParser.UNDO = 161;
SqlParser.UNION = 162;
SqlParser.UNIQUE = 163;
SqlParser.UNLOCK = 164;
SqlParser.UNSIGNED = 165;
SqlParser.UPDATE = 166;
SqlParser.USAGE = 167;
SqlParser.USE = 168;
SqlParser.USING = 169;
SqlParser.VALUES = 170;
SqlParser.WHEN = 171;
SqlParser.WHERE = 172;
SqlParser.WHILE = 173;
SqlParser.WITH = 174;
SqlParser.WRITE = 175;
SqlParser.XOR = 176;
SqlParser.ZEROFILL = 177;
SqlParser.TINYINT = 178;
SqlParser.SMALLINT = 179;
SqlParser.MEDIUMINT = 180;
SqlParser.MIDDLEINT = 181;
SqlParser.INT = 182;
SqlParser.INT1 = 183;
SqlParser.INT2 = 184;
SqlParser.INT3 = 185;
SqlParser.INT4 = 186;
SqlParser.INT8 = 187;
SqlParser.INTEGER = 188;
SqlParser.BIGINT = 189;
SqlParser.REAL = 190;
SqlParser.DOUBLE = 191;
SqlParser.PRECISION = 192;
SqlParser.FLOAT = 193;
SqlParser.FLOAT4 = 194;
SqlParser.FLOAT8 = 195;
SqlParser.DECIMAL = 196;
SqlParser.DEC = 197;
SqlParser.NUMERIC = 198;
SqlParser.DATE = 199;
SqlParser.TIME = 200;
SqlParser.TIMESTAMP = 201;
SqlParser.DATETIME = 202;
SqlParser.YEAR = 203;
SqlParser.CHAR = 204;
SqlParser.VARCHAR = 205;
SqlParser.NVARCHAR = 206;
SqlParser.NATIONAL = 207;
SqlParser.BINARY = 208;
SqlParser.VARBINARY = 209;
SqlParser.TINYBLOB = 210;
SqlParser.BLOB = 211;
SqlParser.MEDIUMBLOB = 212;
SqlParser.LONG = 213;
SqlParser.LONGBLOB = 214;
SqlParser.TINYTEXT = 215;
SqlParser.TEXT = 216;
SqlParser.MEDIUMTEXT = 217;
SqlParser.LONGTEXT = 218;
SqlParser.ENUM = 219;
SqlParser.VARYING = 220;
SqlParser.SERIAL = 221;
SqlParser.YEAR_MONTH = 222;
SqlParser.DAY_HOUR = 223;
SqlParser.DAY_MINUTE = 224;
SqlParser.DAY_SECOND = 225;
SqlParser.HOUR_MINUTE = 226;
SqlParser.HOUR_SECOND = 227;
SqlParser.MINUTE_SECOND = 228;
SqlParser.SECOND_MICROSECOND = 229;
SqlParser.MINUTE_MICROSECOND = 230;
SqlParser.HOUR_MICROSECOND = 231;
SqlParser.DAY_MICROSECOND = 232;
SqlParser.JSON_VALID = 233;
SqlParser.JSON_SCHEMA_VALID = 234;
SqlParser.AVG = 235;
SqlParser.BIT_AND = 236;
SqlParser.BIT_OR = 237;
SqlParser.BIT_XOR = 238;
SqlParser.COUNT = 239;
SqlParser.GROUP_CONCAT = 240;
SqlParser.MAX = 241;
SqlParser.MIN = 242;
SqlParser.STD = 243;
SqlParser.STDDEV = 244;
SqlParser.STDDEV_POP = 245;
SqlParser.STDDEV_SAMP = 246;
SqlParser.SUM = 247;
SqlParser.VAR_POP = 248;
SqlParser.VAR_SAMP = 249;
SqlParser.VARIANCE = 250;
SqlParser.CURRENT_DATE = 251;
SqlParser.CURRENT_TIME = 252;
SqlParser.CURRENT_TIMESTAMP = 253;
SqlParser.LOCALTIME = 254;
SqlParser.CURDATE = 255;
SqlParser.CURTIME = 256;
SqlParser.DATE_ADD = 257;
SqlParser.DATE_SUB = 258;
SqlParser.EXTRACT = 259;
SqlParser.LOCALTIMESTAMP = 260;
SqlParser.NOW = 261;
SqlParser.POSITION = 262;
SqlParser.SUBSTR = 263;
SqlParser.SUBSTRING = 264;
SqlParser.SYSDATE = 265;
SqlParser.TRIM = 266;
SqlParser.UTC_DATE = 267;
SqlParser.UTC_TIME = 268;
SqlParser.UTC_TIMESTAMP = 269;
SqlParser.ACCOUNT = 270;
SqlParser.ACTION = 271;
SqlParser.AFTER = 272;
SqlParser.AGGREGATE = 273;
SqlParser.ALGORITHM = 274;
SqlParser.ANY = 275;
SqlParser.AT = 276;
SqlParser.AUTHORS = 277;
SqlParser.AUTOCOMMIT = 278;
SqlParser.AUTOEXTEND_SIZE = 279;
SqlParser.AUTO_INCREMENT = 280;
SqlParser.AVG_ROW_LENGTH = 281;
SqlParser.BEGIN = 282;
SqlParser.BINLOG = 283;
SqlParser.BIT = 284;
SqlParser.BLOCK = 285;
SqlParser.BOOL = 286;
SqlParser.BOOLEAN = 287;
SqlParser.BTREE = 288;
SqlParser.CACHE = 289;
SqlParser.CASCADED = 290;
SqlParser.CHAIN = 291;
SqlParser.CHANGED = 292;
SqlParser.CHANNEL = 293;
SqlParser.CHECKSUM = 294;
SqlParser.PAGE_CHECKSUM = 295;
SqlParser.CIPHER = 296;
SqlParser.CLASS_ORIGIN = 297;
SqlParser.CLIENT = 298;
SqlParser.CLOSE = 299;
SqlParser.COALESCE = 300;
SqlParser.CODE = 301;
SqlParser.COLUMNS = 302;
SqlParser.COLUMN_FORMAT = 303;
SqlParser.COLUMN_NAME = 304;
SqlParser.COMMENT = 305;
SqlParser.COMMIT = 306;
SqlParser.COMPACT = 307;
SqlParser.COMPLETION = 308;
SqlParser.COMPRESSED = 309;
SqlParser.COMPRESSION = 310;
SqlParser.CONCURRENT = 311;
SqlParser.CONNECTION = 312;
SqlParser.CONSISTENT = 313;
SqlParser.CONSTRAINT_CATALOG = 314;
SqlParser.CONSTRAINT_SCHEMA = 315;
SqlParser.CONSTRAINT_NAME = 316;
SqlParser.CONTAINS = 317;
SqlParser.CONTEXT = 318;
SqlParser.CONTRIBUTORS = 319;
SqlParser.COPY = 320;
SqlParser.CPU = 321;
SqlParser.CURSOR_NAME = 322;
SqlParser.DATA = 323;
SqlParser.DATAFILE = 324;
SqlParser.DEALLOCATE = 325;
SqlParser.DEFAULT_AUTH = 326;
SqlParser.DEFINER = 327;
SqlParser.DELAY_KEY_WRITE = 328;
SqlParser.DES_KEY_FILE = 329;
SqlParser.DIRECTORY = 330;
SqlParser.DISABLE = 331;
SqlParser.DISCARD = 332;
SqlParser.DISK = 333;
SqlParser.DO = 334;
SqlParser.DUMPFILE = 335;
SqlParser.DUPLICATE = 336;
SqlParser.DYNAMIC = 337;
SqlParser.ENABLE = 338;
SqlParser.ENCRYPTION = 339;
SqlParser.END = 340;
SqlParser.ENDS = 341;
SqlParser.ENGINE = 342;
SqlParser.ENGINES = 343;
SqlParser.ERROR = 344;
SqlParser.ERRORS = 345;
SqlParser.ESCAPE = 346;
SqlParser.EVEN = 347;
SqlParser.EVENT = 348;
SqlParser.EVENTS = 349;
SqlParser.EVERY = 350;
SqlParser.EXCHANGE = 351;
SqlParser.EXCLUSIVE = 352;
SqlParser.EXPIRE = 353;
SqlParser.EXPORT = 354;
SqlParser.EXTENDED = 355;
SqlParser.EXTENT_SIZE = 356;
SqlParser.FAST = 357;
SqlParser.FAULTS = 358;
SqlParser.FIELDS = 359;
SqlParser.FILE_BLOCK_SIZE = 360;
SqlParser.FILTER = 361;
SqlParser.FIRST = 362;
SqlParser.FIXED = 363;
SqlParser.FLUSH = 364;
SqlParser.FOLLOWS = 365;
SqlParser.FOUND = 366;
SqlParser.FULL = 367;
SqlParser.FUNCTION = 368;
SqlParser.GENERAL = 369;
SqlParser.GLOBAL = 370;
SqlParser.GRANTS = 371;
SqlParser.GROUP_REPLICATION = 372;
SqlParser.HANDLER = 373;
SqlParser.HASH = 374;
SqlParser.HELP = 375;
SqlParser.HOST = 376;
SqlParser.HOSTS = 377;
SqlParser.IDENTIFIED = 378;
SqlParser.IGNORE_SERVER_IDS = 379;
SqlParser.IMPORT = 380;
SqlParser.INDEXES = 381;
SqlParser.INITIAL_SIZE = 382;
SqlParser.INPLACE = 383;
SqlParser.INSERT_METHOD = 384;
SqlParser.INSTALL = 385;
SqlParser.INSTANCE = 386;
SqlParser.INVISIBLE = 387;
SqlParser.INVOKER = 388;
SqlParser.IO = 389;
SqlParser.IO_THREAD = 390;
SqlParser.IPC = 391;
SqlParser.ISOLATION = 392;
SqlParser.ISSUER = 393;
SqlParser.JSON = 394;
SqlParser.KEY_BLOCK_SIZE = 395;
SqlParser.LANGUAGE = 396;
SqlParser.LAST = 397;
SqlParser.LEAVES = 398;
SqlParser.LESS = 399;
SqlParser.LEVEL = 400;
SqlParser.LIST = 401;
SqlParser.LOCAL = 402;
SqlParser.LOGFILE = 403;
SqlParser.LOGS = 404;
SqlParser.MASTER = 405;
SqlParser.MASTER_AUTO_POSITION = 406;
SqlParser.MASTER_CONNECT_RETRY = 407;
SqlParser.MASTER_DELAY = 408;
SqlParser.MASTER_HEARTBEAT_PERIOD = 409;
SqlParser.MASTER_HOST = 410;
SqlParser.MASTER_LOG_FILE = 411;
SqlParser.MASTER_LOG_POS = 412;
SqlParser.MASTER_PASSWORD = 413;
SqlParser.MASTER_PORT = 414;
SqlParser.MASTER_RETRY_COUNT = 415;
SqlParser.MASTER_SSL = 416;
SqlParser.MASTER_SSL_CA = 417;
SqlParser.MASTER_SSL_CAPATH = 418;
SqlParser.MASTER_SSL_CERT = 419;
SqlParser.MASTER_SSL_CIPHER = 420;
SqlParser.MASTER_SSL_CRL = 421;
SqlParser.MASTER_SSL_CRLPATH = 422;
SqlParser.MASTER_SSL_KEY = 423;
SqlParser.MASTER_TLS_VERSION = 424;
SqlParser.MASTER_USER = 425;
SqlParser.MAX_CONNECTIONS_PER_HOUR = 426;
SqlParser.MAX_QUERIES_PER_HOUR = 427;
SqlParser.MAX_ROWS = 428;
SqlParser.MAX_SIZE = 429;
SqlParser.MAX_UPDATES_PER_HOUR = 430;
SqlParser.MAX_USER_CONNECTIONS = 431;
SqlParser.MEDIUM = 432;
SqlParser.MERGE = 433;
SqlParser.MESSAGE_TEXT = 434;
SqlParser.MID = 435;
SqlParser.MIGRATE = 436;
SqlParser.MIN_ROWS = 437;
SqlParser.MODE = 438;
SqlParser.MODIFY = 439;
SqlParser.MUTEX = 440;
SqlParser.MYSQL = 441;
SqlParser.MYSQL_ERRNO = 442;
SqlParser.NAME = 443;
SqlParser.NAMES = 444;
SqlParser.NCHAR = 445;
SqlParser.NEVER = 446;
SqlParser.NEXT = 447;
SqlParser.NO = 448;
SqlParser.NODEGROUP = 449;
SqlParser.NONE = 450;
SqlParser.OFFLINE = 451;
SqlParser.OFFSET = 452;
SqlParser.OJ = 453;
SqlParser.OLD_PASSWORD = 454;
SqlParser.ONE = 455;
SqlParser.ONLINE = 456;
SqlParser.ONLY = 457;
SqlParser.OPEN = 458;
SqlParser.OPTIMIZER_COSTS = 459;
SqlParser.OPTIONS = 460;
SqlParser.OWNER = 461;
SqlParser.PACK_KEYS = 462;
SqlParser.PAGE = 463;
SqlParser.PARSER = 464;
SqlParser.PARTIAL = 465;
SqlParser.PARTITIONING = 466;
SqlParser.PARTITIONS = 467;
SqlParser.PASSWORD = 468;
SqlParser.PHASE = 469;
SqlParser.PLUGIN = 470;
SqlParser.PLUGIN_DIR = 471;
SqlParser.PLUGINS = 472;
SqlParser.PORT = 473;
SqlParser.PRECEDES = 474;
SqlParser.PREPARE = 475;
SqlParser.PRESERVE = 476;
SqlParser.PREV = 477;
SqlParser.PROCESSLIST = 478;
SqlParser.PROFILE = 479;
SqlParser.PROFILES = 480;
SqlParser.PROXY = 481;
SqlParser.QUERY = 482;
SqlParser.QUICK = 483;
SqlParser.REBUILD = 484;
SqlParser.RECOVER = 485;
SqlParser.REDO_BUFFER_SIZE = 486;
SqlParser.REDUNDANT = 487;
SqlParser.RELAY = 488;
SqlParser.RELAY_LOG_FILE = 489;
SqlParser.RELAY_LOG_POS = 490;
SqlParser.RELAYLOG = 491;
SqlParser.REMOVE = 492;
SqlParser.REORGANIZE = 493;
SqlParser.REPAIR = 494;
SqlParser.REPLICATE_DO_DB = 495;
SqlParser.REPLICATE_DO_TABLE = 496;
SqlParser.REPLICATE_IGNORE_DB = 497;
SqlParser.REPLICATE_IGNORE_TABLE = 498;
SqlParser.REPLICATE_REWRITE_DB = 499;
SqlParser.REPLICATE_WILD_DO_TABLE = 500;
SqlParser.REPLICATE_WILD_IGNORE_TABLE = 501;
SqlParser.REPLICATION = 502;
SqlParser.RESET = 503;
SqlParser.RESUME = 504;
SqlParser.RETURNED_SQLSTATE = 505;
SqlParser.RETURNS = 506;
SqlParser.ROLE = 507;
SqlParser.ROLLBACK = 508;
SqlParser.ROLLUP = 509;
SqlParser.ROTATE = 510;
SqlParser.ROW = 511;
SqlParser.ROWS = 512;
SqlParser.ROW_FORMAT = 513;
SqlParser.SAVEPOINT = 514;
SqlParser.SCHEDULE = 515;
SqlParser.SECURITY = 516;
SqlParser.SERVER = 517;
SqlParser.SESSION = 518;
SqlParser.SHARE = 519;
SqlParser.SHARED = 520;
SqlParser.SIGNED = 521;
SqlParser.SIMPLE = 522;
SqlParser.SLAVE = 523;
SqlParser.SLOW = 524;
SqlParser.SNAPSHOT = 525;
SqlParser.SOCKET = 526;
SqlParser.SOME = 527;
SqlParser.SONAME = 528;
SqlParser.SOUNDS = 529;
SqlParser.SOURCE = 530;
SqlParser.SQL_AFTER_GTIDS = 531;
SqlParser.SQL_AFTER_MTS_GAPS = 532;
SqlParser.SQL_BEFORE_GTIDS = 533;
SqlParser.SQL_BUFFER_RESULT = 534;
SqlParser.SQL_CACHE = 535;
SqlParser.SQL_NO_CACHE = 536;
SqlParser.SQL_THREAD = 537;
SqlParser.START = 538;
SqlParser.STARTS = 539;
SqlParser.STATS_AUTO_RECALC = 540;
SqlParser.STATS_PERSISTENT = 541;
SqlParser.STATS_SAMPLE_PAGES = 542;
SqlParser.STATUS = 543;
SqlParser.STOP = 544;
SqlParser.STORAGE = 545;
SqlParser.STORED = 546;
SqlParser.STRING = 547;
SqlParser.SUBCLASS_ORIGIN = 548;
SqlParser.SUBJECT = 549;
SqlParser.SUBPARTITION = 550;
SqlParser.SUBPARTITIONS = 551;
SqlParser.SUSPEND = 552;
SqlParser.SWAPS = 553;
SqlParser.SWITCHES = 554;
SqlParser.TABLE_NAME = 555;
SqlParser.TABLESPACE = 556;
SqlParser.TEMPORARY = 557;
SqlParser.TEMPTABLE = 558;
SqlParser.THAN = 559;
SqlParser.TRADITIONAL = 560;
SqlParser.TRANSACTION = 561;
SqlParser.TRANSACTIONAL = 562;
SqlParser.TRIGGERS = 563;
SqlParser.TRUNCATE = 564;
SqlParser.UNDEFINED = 565;
SqlParser.UNDOFILE = 566;
SqlParser.UNDO_BUFFER_SIZE = 567;
SqlParser.UNINSTALL = 568;
SqlParser.UNKNOWN = 569;
SqlParser.UNTIL = 570;
SqlParser.UPGRADE = 571;
SqlParser.USER = 572;
SqlParser.USE_FRM = 573;
SqlParser.USER_RESOURCES = 574;
SqlParser.VALIDATION = 575;
SqlParser.VALUE = 576;
SqlParser.VARIABLES = 577;
SqlParser.VIEW = 578;
SqlParser.VIRTUAL = 579;
SqlParser.VISIBLE = 580;
SqlParser.WAIT = 581;
SqlParser.WARNINGS = 582;
SqlParser.WITHOUT = 583;
SqlParser.WORK = 584;
SqlParser.WRAPPER = 585;
SqlParser.X509 = 586;
SqlParser.XA = 587;
SqlParser.XML = 588;
SqlParser.EUR = 589;
SqlParser.USA = 590;
SqlParser.JIS = 591;
SqlParser.ISO = 592;
SqlParser.INTERNAL = 593;
SqlParser.QUARTER = 594;
SqlParser.MONTH = 595;
SqlParser.DAY = 596;
SqlParser.HOUR = 597;
SqlParser.MINUTE = 598;
SqlParser.WEEK = 599;
SqlParser.SECOND = 600;
SqlParser.MICROSECOND = 601;
SqlParser.TABLES = 602;
SqlParser.ROUTINE = 603;
SqlParser.EXECUTE = 604;
SqlParser.FILE = 605;
SqlParser.PROCESS = 606;
SqlParser.RELOAD = 607;
SqlParser.SHUTDOWN = 608;
SqlParser.SUPER = 609;
SqlParser.PRIVILEGES = 610;
SqlParser.APPLICATION_PASSWORD_ADMIN = 611;
SqlParser.AUDIT_ADMIN = 612;
SqlParser.BACKUP_ADMIN = 613;
SqlParser.BINLOG_ADMIN = 614;
SqlParser.BINLOG_ENCRYPTION_ADMIN = 615;
SqlParser.CLONE_ADMIN = 616;
SqlParser.CONNECTION_ADMIN = 617;
SqlParser.ENCRYPTION_KEY_ADMIN = 618;
SqlParser.FIREWALL_ADMIN = 619;
SqlParser.FIREWALL_USER = 620;
SqlParser.GROUP_REPLICATION_ADMIN = 621;
SqlParser.INNODB_REDO_LOG_ARCHIVE = 622;
SqlParser.NDB_STORED_USER = 623;
SqlParser.PERSIST_RO_VARIABLES_ADMIN = 624;
SqlParser.REPLICATION_APPLIER = 625;
SqlParser.REPLICATION_SLAVE_ADMIN = 626;
SqlParser.RESOURCE_GROUP_ADMIN = 627;
SqlParser.RESOURCE_GROUP_USER = 628;
SqlParser.ROLE_ADMIN = 629;
SqlParser.SESSION_VARIABLES_ADMIN = 630;
SqlParser.SET_USER_ID = 631;
SqlParser.SHOW_ROUTINE = 632;
SqlParser.SYSTEM_VARIABLES_ADMIN = 633;
SqlParser.TABLE_ENCRYPTION_ADMIN = 634;
SqlParser.VERSION_TOKEN_ADMIN = 635;
SqlParser.XA_RECOVER_ADMIN = 636;
SqlParser.ARMSCII8 = 637;
SqlParser.ASCII = 638;
SqlParser.BIG5 = 639;
SqlParser.CP1250 = 640;
SqlParser.CP1251 = 641;
SqlParser.CP1256 = 642;
SqlParser.CP1257 = 643;
SqlParser.CP850 = 644;
SqlParser.CP852 = 645;
SqlParser.CP866 = 646;
SqlParser.CP932 = 647;
SqlParser.DEC8 = 648;
SqlParser.EUCJPMS = 649;
SqlParser.EUCKR = 650;
SqlParser.GB2312 = 651;
SqlParser.GBK = 652;
SqlParser.GEOSTD8 = 653;
SqlParser.GREEK = 654;
SqlParser.HEBREW = 655;
SqlParser.HP8 = 656;
SqlParser.KEYBCS2 = 657;
SqlParser.KOI8R = 658;
SqlParser.KOI8U = 659;
SqlParser.LATIN1 = 660;
SqlParser.LATIN2 = 661;
SqlParser.LATIN5 = 662;
SqlParser.LATIN7 = 663;
SqlParser.MACCE = 664;
SqlParser.MACROMAN = 665;
SqlParser.SJIS = 666;
SqlParser.SWE7 = 667;
SqlParser.TIS620 = 668;
SqlParser.UCS2 = 669;
SqlParser.UJIS = 670;
SqlParser.UTF16 = 671;
SqlParser.UTF16LE = 672;
SqlParser.UTF32 = 673;
SqlParser.UTF8 = 674;
SqlParser.UTF8MB3 = 675;
SqlParser.UTF8MB4 = 676;
SqlParser.ARCHIVE = 677;
SqlParser.BLACKHOLE = 678;
SqlParser.CSV = 679;
SqlParser.FEDERATED = 680;
SqlParser.INNODB = 681;
SqlParser.MEMORY = 682;
SqlParser.MRG_MYISAM = 683;
SqlParser.MYISAM = 684;
SqlParser.NDB = 685;
SqlParser.NDBCLUSTER = 686;
SqlParser.PERFORMANCE_SCHEMA = 687;
SqlParser.TOKUDB = 688;
SqlParser.REPEATABLE = 689;
SqlParser.COMMITTED = 690;
SqlParser.UNCOMMITTED = 691;
SqlParser.SERIALIZABLE = 692;
SqlParser.GEOMETRYCOLLECTION = 693;
SqlParser.GEOMCOLLECTION = 694;
SqlParser.GEOMETRY = 695;
SqlParser.LINESTRING = 696;
SqlParser.MULTILINESTRING = 697;
SqlParser.MULTIPOINT = 698;
SqlParser.MULTIPOLYGON = 699;
SqlParser.POINT = 700;
SqlParser.POLYGON = 701;
SqlParser.ABS = 702;
SqlParser.ACOS = 703;
SqlParser.ADDDATE = 704;
SqlParser.ADDTIME = 705;
SqlParser.AES_DECRYPT = 706;
SqlParser.AES_ENCRYPT = 707;
SqlParser.AREA = 708;
SqlParser.ASBINARY = 709;
SqlParser.ASIN = 710;
SqlParser.ASTEXT = 711;
SqlParser.ASWKB = 712;
SqlParser.ASWKT = 713;
SqlParser.ASYMMETRIC_DECRYPT = 714;
SqlParser.ASYMMETRIC_DERIVE = 715;
SqlParser.ASYMMETRIC_ENCRYPT = 716;
SqlParser.ASYMMETRIC_SIGN = 717;
SqlParser.ASYMMETRIC_VERIFY = 718;
SqlParser.ATAN = 719;
SqlParser.ATAN2 = 720;
SqlParser.BENCHMARK = 721;
SqlParser.BIN = 722;
SqlParser.BIT_COUNT = 723;
SqlParser.BIT_LENGTH = 724;
SqlParser.BUFFER = 725;
SqlParser.CATALOG_NAME = 726;
SqlParser.CEIL = 727;
SqlParser.CEILING = 728;
SqlParser.CENTROID = 729;
SqlParser.CHARACTER_LENGTH = 730;
SqlParser.CHARSET = 731;
SqlParser.CHAR_LENGTH = 732;
SqlParser.COERCIBILITY = 733;
SqlParser.COLLATION = 734;
SqlParser.COMPRESS = 735;
SqlParser.CONCAT = 736;
SqlParser.CONCAT_WS = 737;
SqlParser.CONNECTION_ID = 738;
SqlParser.CONV = 739;
SqlParser.CONVERT_TZ = 740;
SqlParser.COS = 741;
SqlParser.COT = 742;
SqlParser.CRC32 = 743;
SqlParser.CREATE_ASYMMETRIC_PRIV_KEY = 744;
SqlParser.CREATE_ASYMMETRIC_PUB_KEY = 745;
SqlParser.CREATE_DH_PARAMETERS = 746;
SqlParser.CREATE_DIGEST = 747;
SqlParser.CROSSES = 748;
SqlParser.DATEDIFF = 749;
SqlParser.DATE_FORMAT = 750;
SqlParser.DAYNAME = 751;
SqlParser.DAYOFMONTH = 752;
SqlParser.DAYOFWEEK = 753;
SqlParser.DAYOFYEAR = 754;
SqlParser.DECODE = 755;
SqlParser.DEGREES = 756;
SqlParser.DES_DECRYPT = 757;
SqlParser.DES_ENCRYPT = 758;
SqlParser.DIMENSION = 759;
SqlParser.DISJOINT = 760;
SqlParser.ELT = 761;
SqlParser.ENCODE = 762;
SqlParser.ENCRYPT = 763;
SqlParser.ENDPOINT = 764;
SqlParser.ENVELOPE = 765;
SqlParser.EQUALS = 766;
SqlParser.EXP = 767;
SqlParser.EXPORT_SET = 768;
SqlParser.EXTERIORRING = 769;
SqlParser.EXTRACTVALUE = 770;
SqlParser.FIELD = 771;
SqlParser.FIND_IN_SET = 772;
SqlParser.FLOOR = 773;
SqlParser.FORMAT = 774;
SqlParser.FOUND_ROWS = 775;
SqlParser.FROM_BASE64 = 776;
SqlParser.FROM_DAYS = 777;
SqlParser.FROM_UNIXTIME = 778;
SqlParser.GEOMCOLLFROMTEXT = 779;
SqlParser.GEOMCOLLFROMWKB = 780;
SqlParser.GEOMETRYCOLLECTIONFROMTEXT = 781;
SqlParser.GEOMETRYCOLLECTIONFROMWKB = 782;
SqlParser.GEOMETRYFROMTEXT = 783;
SqlParser.GEOMETRYFROMWKB = 784;
SqlParser.GEOMETRYN = 785;
SqlParser.GEOMETRYTYPE = 786;
SqlParser.GEOMFROMTEXT = 787;
SqlParser.GEOMFROMWKB = 788;
SqlParser.GET_FORMAT = 789;
SqlParser.GET_LOCK = 790;
SqlParser.GLENGTH = 791;
SqlParser.GREATEST = 792;
SqlParser.GTID_SUBSET = 793;
SqlParser.GTID_SUBTRACT = 794;
SqlParser.HEX = 795;
SqlParser.IFNULL = 796;
SqlParser.INET6_ATON = 797;
SqlParser.INET6_NTOA = 798;
SqlParser.INET_ATON = 799;
SqlParser.INET_NTOA = 800;
SqlParser.INSTR = 801;
SqlParser.INTERIORRINGN = 802;
SqlParser.INTERSECTS = 803;
SqlParser.ISCLOSED = 804;
SqlParser.ISEMPTY = 805;
SqlParser.ISNULL = 806;
SqlParser.ISSIMPLE = 807;
SqlParser.IS_FREE_LOCK = 808;
SqlParser.IS_IPV4 = 809;
SqlParser.IS_IPV4_COMPAT = 810;
SqlParser.IS_IPV4_MAPPED = 811;
SqlParser.IS_IPV6 = 812;
SqlParser.IS_USED_LOCK = 813;
SqlParser.LAST_INSERT_ID = 814;
SqlParser.LCASE = 815;
SqlParser.LEAST = 816;
SqlParser.LENGTH = 817;
SqlParser.LINEFROMTEXT = 818;
SqlParser.LINEFROMWKB = 819;
SqlParser.LINESTRINGFROMTEXT = 820;
SqlParser.LINESTRINGFROMWKB = 821;
SqlParser.LN = 822;
SqlParser.LOAD_FILE = 823;
SqlParser.LOCATE = 824;
SqlParser.LOG = 825;
SqlParser.LOG10 = 826;
SqlParser.LOG2 = 827;
SqlParser.LOWER = 828;
SqlParser.LPAD = 829;
SqlParser.LTRIM = 830;
SqlParser.MAKEDATE = 831;
SqlParser.MAKETIME = 832;
SqlParser.MAKE_SET = 833;
SqlParser.MASTER_POS_WAIT = 834;
SqlParser.MBRCONTAINS = 835;
SqlParser.MBRDISJOINT = 836;
SqlParser.MBREQUAL = 837;
SqlParser.MBRINTERSECTS = 838;
SqlParser.MBROVERLAPS = 839;
SqlParser.MBRTOUCHES = 840;
SqlParser.MBRWITHIN = 841;
SqlParser.MD5 = 842;
SqlParser.MLINEFROMTEXT = 843;
SqlParser.MLINEFROMWKB = 844;
SqlParser.MONTHNAME = 845;
SqlParser.MPOINTFROMTEXT = 846;
SqlParser.MPOINTFROMWKB = 847;
SqlParser.MPOLYFROMTEXT = 848;
SqlParser.MPOLYFROMWKB = 849;
SqlParser.MULTILINESTRINGFROMTEXT = 850;
SqlParser.MULTILINESTRINGFROMWKB = 851;
SqlParser.MULTIPOINTFROMTEXT = 852;
SqlParser.MULTIPOINTFROMWKB = 853;
SqlParser.MULTIPOLYGONFROMTEXT = 854;
SqlParser.MULTIPOLYGONFROMWKB = 855;
SqlParser.NAME_CONST = 856;
SqlParser.NULLIF = 857;
SqlParser.NUMGEOMETRIES = 858;
SqlParser.NUMINTERIORRINGS = 859;
SqlParser.NUMPOINTS = 860;
SqlParser.OCT = 861;
SqlParser.OCTET_LENGTH = 862;
SqlParser.ORD = 863;
SqlParser.OVERLAPS = 864;
SqlParser.PERIOD_ADD = 865;
SqlParser.PERIOD_DIFF = 866;
SqlParser.PI = 867;
SqlParser.POINTFROMTEXT = 868;
SqlParser.POINTFROMWKB = 869;
SqlParser.POINTN = 870;
SqlParser.POLYFROMTEXT = 871;
SqlParser.POLYFROMWKB = 872;
SqlParser.POLYGONFROMTEXT = 873;
SqlParser.POLYGONFROMWKB = 874;
SqlParser.POW = 875;
SqlParser.POWER = 876;
SqlParser.QUOTE = 877;
SqlParser.RADIANS = 878;
SqlParser.RAND = 879;
SqlParser.RANDOM_BYTES = 880;
SqlParser.RELEASE_LOCK = 881;
SqlParser.REVERSE = 882;
SqlParser.ROUND = 883;
SqlParser.ROW_COUNT = 884;
SqlParser.RPAD = 885;
SqlParser.RTRIM = 886;
SqlParser.SEC_TO_TIME = 887;
SqlParser.SESSION_USER = 888;
SqlParser.SHA = 889;
SqlParser.SHA1 = 890;
SqlParser.SHA2 = 891;
SqlParser.SCHEMA_NAME = 892;
SqlParser.SIGN = 893;
SqlParser.SIN = 894;
SqlParser.SLEEP = 895;
SqlParser.SOUNDEX = 896;
SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS = 897;
SqlParser.SQRT = 898;
SqlParser.SRID = 899;
SqlParser.STARTPOINT = 900;
SqlParser.STRCMP = 901;
SqlParser.STR_TO_DATE = 902;
SqlParser.ST_AREA = 903;
SqlParser.ST_ASBINARY = 904;
SqlParser.ST_ASTEXT = 905;
SqlParser.ST_ASWKB = 906;
SqlParser.ST_ASWKT = 907;
SqlParser.ST_BUFFER = 908;
SqlParser.ST_CENTROID = 909;
SqlParser.ST_CONTAINS = 910;
SqlParser.ST_CROSSES = 911;
SqlParser.ST_DIFFERENCE = 912;
SqlParser.ST_DIMENSION = 913;
SqlParser.ST_DISJOINT = 914;
SqlParser.ST_DISTANCE = 915;
SqlParser.ST_ENDPOINT = 916;
SqlParser.ST_ENVELOPE = 917;
SqlParser.ST_EQUALS = 918;
SqlParser.ST_EXTERIORRING = 919;
SqlParser.ST_GEOMCOLLFROMTEXT = 920;
SqlParser.ST_GEOMCOLLFROMTXT = 921;
SqlParser.ST_GEOMCOLLFROMWKB = 922;
SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT = 923;
SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB = 924;
SqlParser.ST_GEOMETRYFROMTEXT = 925;
SqlParser.ST_GEOMETRYFROMWKB = 926;
SqlParser.ST_GEOMETRYN = 927;
SqlParser.ST_GEOMETRYTYPE = 928;
SqlParser.ST_GEOMFROMTEXT = 929;
SqlParser.ST_GEOMFROMWKB = 930;
SqlParser.ST_INTERIORRINGN = 931;
SqlParser.ST_INTERSECTION = 932;
SqlParser.ST_INTERSECTS = 933;
SqlParser.ST_ISCLOSED = 934;
SqlParser.ST_ISEMPTY = 935;
SqlParser.ST_ISSIMPLE = 936;
SqlParser.ST_LINEFROMTEXT = 937;
SqlParser.ST_LINEFROMWKB = 938;
SqlParser.ST_LINESTRINGFROMTEXT = 939;
SqlParser.ST_LINESTRINGFROMWKB = 940;
SqlParser.ST_NUMGEOMETRIES = 941;
SqlParser.ST_NUMINTERIORRING = 942;
SqlParser.ST_NUMINTERIORRINGS = 943;
SqlParser.ST_NUMPOINTS = 944;
SqlParser.ST_OVERLAPS = 945;
SqlParser.ST_POINTFROMTEXT = 946;
SqlParser.ST_POINTFROMWKB = 947;
SqlParser.ST_POINTN = 948;
SqlParser.ST_POLYFROMTEXT = 949;
SqlParser.ST_POLYFROMWKB = 950;
SqlParser.ST_POLYGONFROMTEXT = 951;
SqlParser.ST_POLYGONFROMWKB = 952;
SqlParser.ST_SRID = 953;
SqlParser.ST_STARTPOINT = 954;
SqlParser.ST_SYMDIFFERENCE = 955;
SqlParser.ST_TOUCHES = 956;
SqlParser.ST_UNION = 957;
SqlParser.ST_WITHIN = 958;
SqlParser.ST_X = 959;
SqlParser.ST_Y = 960;
SqlParser.SUBDATE = 961;
SqlParser.SUBSTRING_INDEX = 962;
SqlParser.SUBTIME = 963;
SqlParser.SYSTEM_USER = 964;
SqlParser.TAN = 965;
SqlParser.TIMEDIFF = 966;
SqlParser.TIMESTAMPADD = 967;
SqlParser.TIMESTAMPDIFF = 968;
SqlParser.TIME_FORMAT = 969;
SqlParser.TIME_TO_SEC = 970;
SqlParser.TOUCHES = 971;
SqlParser.TO_BASE64 = 972;
SqlParser.TO_DAYS = 973;
SqlParser.TO_SECONDS = 974;
SqlParser.UCASE = 975;
SqlParser.UNCOMPRESS = 976;
SqlParser.UNCOMPRESSED_LENGTH = 977;
SqlParser.UNHEX = 978;
SqlParser.UNIX_TIMESTAMP = 979;
SqlParser.UPDATEXML = 980;
SqlParser.UPPER = 981;
SqlParser.UUID = 982;
SqlParser.UUID_SHORT = 983;
SqlParser.VALIDATE_PASSWORD_STRENGTH = 984;
SqlParser.VERSION = 985;
SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS = 986;
SqlParser.WEEKDAY = 987;
SqlParser.WEEKOFYEAR = 988;
SqlParser.WEIGHT_STRING = 989;
SqlParser.WITHIN = 990;
SqlParser.YEARWEEK = 991;
SqlParser.Y_FUNCTION = 992;
SqlParser.X_FUNCTION = 993;
SqlParser.VAR_ASSIGN = 994;
SqlParser.PLUS_ASSIGN = 995;
SqlParser.MINUS_ASSIGN = 996;
SqlParser.MULT_ASSIGN = 997;
SqlParser.DIV_ASSIGN = 998;
SqlParser.MOD_ASSIGN = 999;
SqlParser.AND_ASSIGN = 1000;
SqlParser.XOR_ASSIGN = 1001;
SqlParser.OR_ASSIGN = 1002;
SqlParser.STAR = 1003;
SqlParser.DIVIDE = 1004;
SqlParser.MODULE = 1005;
SqlParser.PLUS = 1006;
SqlParser.MINUSMINUS = 1007;
SqlParser.MINUS = 1008;
SqlParser.DIV = 1009;
SqlParser.MOD = 1010;
SqlParser.EQUAL_SYMBOL = 1011;
SqlParser.GREATER_SYMBOL = 1012;
SqlParser.LESS_SYMBOL = 1013;
SqlParser.EXCLAMATION_SYMBOL = 1014;
SqlParser.BIT_NOT_OP = 1015;
SqlParser.BIT_OR_OP = 1016;
SqlParser.BIT_AND_OP = 1017;
SqlParser.BIT_XOR_OP = 1018;
SqlParser.DOT = 1019;
SqlParser.LR_BRACKET = 1020;
SqlParser.RR_BRACKET = 1021;
SqlParser.COMMA = 1022;
SqlParser.SEMI = 1023;
SqlParser.AT_SIGN = 1024;
SqlParser.ZERO_DECIMAL = 1025;
SqlParser.ONE_DECIMAL = 1026;
SqlParser.TWO_DECIMAL = 1027;
SqlParser.SINGLE_QUOTE_SYMB = 1028;
SqlParser.DOUBLE_QUOTE_SYMB = 1029;
SqlParser.REVERSE_QUOTE_SYMB = 1030;
SqlParser.COLON_SYMB = 1031;
SqlParser.CHARSET_REVERSE_QOUTE_STRING = 1032;
SqlParser.FILESIZE_LITERAL = 1033;
SqlParser.START_NATIONAL_STRING_LITERAL = 1034;
SqlParser.STRING_LITERAL = 1035;
SqlParser.DECIMAL_LITERAL = 1036;
SqlParser.HEXADECIMAL_LITERAL = 1037;
SqlParser.REAL_LITERAL = 1038;
SqlParser.NULL_SPEC_LITERAL = 1039;
SqlParser.BIT_STRING = 1040;
SqlParser.STRING_CHARSET_NAME = 1041;
SqlParser.DOT_ID = 1042;
SqlParser.ID = 1043;
SqlParser.REVERSE_QUOTE_ID = 1044;
SqlParser.STRING_USER_NAME = 1045;
SqlParser.LOCAL_ID = 1046;
SqlParser.GLOBAL_ID = 1047;
SqlParser.ERROR_RECONGNIGION = 1048;

SqlParser.RULE_program = 0;
SqlParser.RULE_statement = 1;
SqlParser.RULE_sqlStatements = 2;
SqlParser.RULE_sqlStatement = 3;
SqlParser.RULE_emptyStatement = 4;
SqlParser.RULE_ddlStatement = 5;
SqlParser.RULE_dmlStatement = 6;
SqlParser.RULE_transactionStatement = 7;
SqlParser.RULE_replicationStatement = 8;
SqlParser.RULE_preparedStatement = 9;
SqlParser.RULE_compoundStatement = 10;
SqlParser.RULE_administrationStatement = 11;
SqlParser.RULE_utilityStatement = 12;
SqlParser.RULE_createDatabase = 13;
SqlParser.RULE_createEvent = 14;
SqlParser.RULE_createIndex = 15;
SqlParser.RULE_createLogfileGroup = 16;
SqlParser.RULE_createProcedure = 17;
SqlParser.RULE_createFunction = 18;
SqlParser.RULE_createServer = 19;
SqlParser.RULE_createTable = 20;
SqlParser.RULE_createTablespaceInnodb = 21;
SqlParser.RULE_createTablespaceNdb = 22;
SqlParser.RULE_createTrigger = 23;
SqlParser.RULE_createView = 24;
SqlParser.RULE_createDatabaseOption = 25;
SqlParser.RULE_ownerStatement = 26;
SqlParser.RULE_scheduleExpression = 27;
SqlParser.RULE_timestampValue = 28;
SqlParser.RULE_intervalExpr = 29;
SqlParser.RULE_intervalType = 30;
SqlParser.RULE_enableType = 31;
SqlParser.RULE_indexType = 32;
SqlParser.RULE_indexOption = 33;
SqlParser.RULE_procedureParameter = 34;
SqlParser.RULE_functionParameter = 35;
SqlParser.RULE_routineOption = 36;
SqlParser.RULE_serverOption = 37;
SqlParser.RULE_createDefinitions = 38;
SqlParser.RULE_createDefinition = 39;
SqlParser.RULE_columnDefinition = 40;
SqlParser.RULE_columnConstraint = 41;
SqlParser.RULE_tableConstraint = 42;
SqlParser.RULE_referenceDefinition = 43;
SqlParser.RULE_referenceAction = 44;
SqlParser.RULE_referenceControlType = 45;
SqlParser.RULE_indexColumnDefinition = 46;
SqlParser.RULE_tableOption = 47;
SqlParser.RULE_tablespaceStorage = 48;
SqlParser.RULE_partitionDefinitions = 49;
SqlParser.RULE_partitionFunctionDefinition = 50;
SqlParser.RULE_subpartitionFunctionDefinition = 51;
SqlParser.RULE_partitionDefinition = 52;
SqlParser.RULE_partitionDefinerAtom = 53;
SqlParser.RULE_partitionDefinerVector = 54;
SqlParser.RULE_subpartitionDefinition = 55;
SqlParser.RULE_partitionOption = 56;
SqlParser.RULE_alterDatabase = 57;
SqlParser.RULE_alterEvent = 58;
SqlParser.RULE_alterFunction = 59;
SqlParser.RULE_alterInstance = 60;
SqlParser.RULE_alterLogfileGroup = 61;
SqlParser.RULE_alterProcedure = 62;
SqlParser.RULE_alterServer = 63;
SqlParser.RULE_alterTable = 64;
SqlParser.RULE_alterTablespace = 65;
SqlParser.RULE_alterView = 66;
SqlParser.RULE_alterSpecification = 67;
SqlParser.RULE_dropDatabase = 68;
SqlParser.RULE_dropEvent = 69;
SqlParser.RULE_dropIndex = 70;
SqlParser.RULE_dropLogfileGroup = 71;
SqlParser.RULE_dropProcedure = 72;
SqlParser.RULE_dropFunction = 73;
SqlParser.RULE_dropServer = 74;
SqlParser.RULE_dropTable = 75;
SqlParser.RULE_dropTablespace = 76;
SqlParser.RULE_dropTrigger = 77;
SqlParser.RULE_dropView = 78;
SqlParser.RULE_renameTable = 79;
SqlParser.RULE_renameTableClause = 80;
SqlParser.RULE_truncateTable = 81;
SqlParser.RULE_callStatement = 82;
SqlParser.RULE_deleteStatement = 83;
SqlParser.RULE_doStatement = 84;
SqlParser.RULE_handlerStatement = 85;
SqlParser.RULE_insertStatement = 86;
SqlParser.RULE_loadDataStatement = 87;
SqlParser.RULE_loadXmlStatement = 88;
SqlParser.RULE_replaceStatement = 89;
SqlParser.RULE_selectStatement = 90;
SqlParser.RULE_updateStatement = 91;
SqlParser.RULE_insertStatementValue = 92;
SqlParser.RULE_updatedElement = 93;
SqlParser.RULE_assignmentField = 94;
SqlParser.RULE_lockClause = 95;
SqlParser.RULE_singleDeleteStatement = 96;
SqlParser.RULE_multipleDeleteStatement = 97;
SqlParser.RULE_handlerOpenStatement = 98;
SqlParser.RULE_handlerReadIndexStatement = 99;
SqlParser.RULE_handlerReadStatement = 100;
SqlParser.RULE_handlerCloseStatement = 101;
SqlParser.RULE_singleUpdateStatement = 102;
SqlParser.RULE_multipleUpdateStatement = 103;
SqlParser.RULE_orderByClause = 104;
SqlParser.RULE_orderByExpression = 105;
SqlParser.RULE_tableSources = 106;
SqlParser.RULE_tableSource = 107;
SqlParser.RULE_tableSourceItem = 108;
SqlParser.RULE_indexHint = 109;
SqlParser.RULE_indexHintType = 110;
SqlParser.RULE_joinPart = 111;
SqlParser.RULE_queryExpression = 112;
SqlParser.RULE_queryExpressionNointo = 113;
SqlParser.RULE_querySpecification = 114;
SqlParser.RULE_querySpecificationNointo = 115;
SqlParser.RULE_unionParenthesis = 116;
SqlParser.RULE_unionStatement = 117;
SqlParser.RULE_selectSpec = 118;
SqlParser.RULE_selectElements = 119;
SqlParser.RULE_selectElement = 120;
SqlParser.RULE_selectIntoExpression = 121;
SqlParser.RULE_selectFieldsInto = 122;
SqlParser.RULE_selectLinesInto = 123;
SqlParser.RULE_fromClause = 124;
SqlParser.RULE_groupByItem = 125;
SqlParser.RULE_limitClause = 126;
SqlParser.RULE_limitClauseAtom = 127;
SqlParser.RULE_startTransaction = 128;
SqlParser.RULE_beginWork = 129;
SqlParser.RULE_commitWork = 130;
SqlParser.RULE_rollbackWork = 131;
SqlParser.RULE_savepointStatement = 132;
SqlParser.RULE_rollbackStatement = 133;
SqlParser.RULE_releaseStatement = 134;
SqlParser.RULE_lockTables = 135;
SqlParser.RULE_unlockTables = 136;
SqlParser.RULE_setAutocommitStatement = 137;
SqlParser.RULE_setTransactionStatement = 138;
SqlParser.RULE_transactionMode = 139;
SqlParser.RULE_lockTableElement = 140;
SqlParser.RULE_lockAction = 141;
SqlParser.RULE_transactionOption = 142;
SqlParser.RULE_transactionLevel = 143;
SqlParser.RULE_changeMaster = 144;
SqlParser.RULE_changeReplicationFilter = 145;
SqlParser.RULE_purgeBinaryLogs = 146;
SqlParser.RULE_resetMaster = 147;
SqlParser.RULE_resetSlave = 148;
SqlParser.RULE_startSlave = 149;
SqlParser.RULE_stopSlave = 150;
SqlParser.RULE_startGroupReplication = 151;
SqlParser.RULE_stopGroupReplication = 152;
SqlParser.RULE_masterOption = 153;
SqlParser.RULE_stringMasterOption = 154;
SqlParser.RULE_decimalMasterOption = 155;
SqlParser.RULE_boolMasterOption = 156;
SqlParser.RULE_channelOption = 157;
SqlParser.RULE_replicationFilter = 158;
SqlParser.RULE_tablePair = 159;
SqlParser.RULE_threadType = 160;
SqlParser.RULE_untilOption = 161;
SqlParser.RULE_connectionOption = 162;
SqlParser.RULE_gtuidSet = 163;
SqlParser.RULE_xaStartTransaction = 164;
SqlParser.RULE_xaEndTransaction = 165;
SqlParser.RULE_xaPrepareStatement = 166;
SqlParser.RULE_xaCommitWork = 167;
SqlParser.RULE_xaRollbackWork = 168;
SqlParser.RULE_xaRecoverWork = 169;
SqlParser.RULE_prepareStatement = 170;
SqlParser.RULE_executeStatement = 171;
SqlParser.RULE_deallocatePrepare = 172;
SqlParser.RULE_routineBody = 173;
SqlParser.RULE_blockStatement = 174;
SqlParser.RULE_caseStatement = 175;
SqlParser.RULE_ifStatement = 176;
SqlParser.RULE_iterateStatement = 177;
SqlParser.RULE_leaveStatement = 178;
SqlParser.RULE_loopStatement = 179;
SqlParser.RULE_repeatStatement = 180;
SqlParser.RULE_returnStatement = 181;
SqlParser.RULE_whileStatement = 182;
SqlParser.RULE_cursorStatement = 183;
SqlParser.RULE_declareVariable = 184;
SqlParser.RULE_declareCondition = 185;
SqlParser.RULE_declareCursor = 186;
SqlParser.RULE_declareHandler = 187;
SqlParser.RULE_handlerConditionValue = 188;
SqlParser.RULE_procedureSqlStatement = 189;
SqlParser.RULE_caseAlternative = 190;
SqlParser.RULE_elifAlternative = 191;
SqlParser.RULE_alterUser = 192;
SqlParser.RULE_createUser = 193;
SqlParser.RULE_dropUser = 194;
SqlParser.RULE_grantStatement = 195;
SqlParser.RULE_grantProxy = 196;
SqlParser.RULE_renameUser = 197;
SqlParser.RULE_revokeStatement = 198;
SqlParser.RULE_revokeProxy = 199;
SqlParser.RULE_setPasswordStatement = 200;
SqlParser.RULE_userSpecification = 201;
SqlParser.RULE_userAuthOption = 202;
SqlParser.RULE_tlsOption = 203;
SqlParser.RULE_userResourceOption = 204;
SqlParser.RULE_userPasswordOption = 205;
SqlParser.RULE_userLockOption = 206;
SqlParser.RULE_privelegeClause = 207;
SqlParser.RULE_privilege = 208;
SqlParser.RULE_privilegeLevel = 209;
SqlParser.RULE_renameUserClause = 210;
SqlParser.RULE_analyzeTable = 211;
SqlParser.RULE_checkTable = 212;
SqlParser.RULE_checksumTable = 213;
SqlParser.RULE_optimizeTable = 214;
SqlParser.RULE_repairTable = 215;
SqlParser.RULE_checkTableOption = 216;
SqlParser.RULE_createUdfunction = 217;
SqlParser.RULE_installPlugin = 218;
SqlParser.RULE_uninstallPlugin = 219;
SqlParser.RULE_setStatement = 220;
SqlParser.RULE_showStatement = 221;
SqlParser.RULE_variableClause = 222;
SqlParser.RULE_showCommonEntity = 223;
SqlParser.RULE_showFilter = 224;
SqlParser.RULE_showGlobalInfoClause = 225;
SqlParser.RULE_showSchemaEntity = 226;
SqlParser.RULE_showProfileType = 227;
SqlParser.RULE_binlogStatement = 228;
SqlParser.RULE_cacheIndexStatement = 229;
SqlParser.RULE_flushStatement = 230;
SqlParser.RULE_killStatement = 231;
SqlParser.RULE_loadIndexIntoCache = 232;
SqlParser.RULE_resetStatement = 233;
SqlParser.RULE_shutdownStatement = 234;
SqlParser.RULE_tableIndexes = 235;
SqlParser.RULE_flushOption = 236;
SqlParser.RULE_flushTableOption = 237;
SqlParser.RULE_loadedTableIndexes = 238;
SqlParser.RULE_simpleDescribeStatement = 239;
SqlParser.RULE_fullDescribeStatement = 240;
SqlParser.RULE_helpStatement = 241;
SqlParser.RULE_useStatement = 242;
SqlParser.RULE_signalStatement = 243;
SqlParser.RULE_resignalStatement = 244;
SqlParser.RULE_signalConditionInformation = 245;
SqlParser.RULE_diagnosticsStatement = 246;
SqlParser.RULE_diagnosticsConditionInformationName = 247;
SqlParser.RULE_describeObjectClause = 248;
SqlParser.RULE_fullId = 249;
SqlParser.RULE_tableName = 250;
SqlParser.RULE_fullColumnName = 251;
SqlParser.RULE_indexColumnName = 252;
SqlParser.RULE_userName = 253;
SqlParser.RULE_mysqlVariable = 254;
SqlParser.RULE_charsetName = 255;
SqlParser.RULE_collationName = 256;
SqlParser.RULE_engineName = 257;
SqlParser.RULE_uuidSet = 258;
SqlParser.RULE_xid = 259;
SqlParser.RULE_xuidStringId = 260;
SqlParser.RULE_authPlugin = 261;
SqlParser.RULE_uid = 262;
SqlParser.RULE_simpleId = 263;
SqlParser.RULE_dottedId = 264;
SqlParser.RULE_decimalLiteral = 265;
SqlParser.RULE_fileSizeLiteral = 266;
SqlParser.RULE_stringLiteral = 267;
SqlParser.RULE_booleanLiteral = 268;
SqlParser.RULE_hexadecimalLiteral = 269;
SqlParser.RULE_nullNotnull = 270;
SqlParser.RULE_constant = 271;
SqlParser.RULE_dataType = 272;
SqlParser.RULE_collectionOptions = 273;
SqlParser.RULE_convertedDataType = 274;
SqlParser.RULE_lengthOneDimension = 275;
SqlParser.RULE_lengthTwoDimension = 276;
SqlParser.RULE_lengthTwoOptionalDimension = 277;
SqlParser.RULE_uidList = 278;
SqlParser.RULE_tables = 279;
SqlParser.RULE_indexColumnNames = 280;
SqlParser.RULE_expressions = 281;
SqlParser.RULE_expressionsWithDefaults = 282;
SqlParser.RULE_constants = 283;
SqlParser.RULE_simpleStrings = 284;
SqlParser.RULE_userVariables = 285;
SqlParser.RULE_defaultValue = 286;
SqlParser.RULE_currentTimestamp = 287;
SqlParser.RULE_expressionOrDefault = 288;
SqlParser.RULE_ifExists = 289;
SqlParser.RULE_ifNotExists = 290;
SqlParser.RULE_functionCall = 291;
SqlParser.RULE_specificFunction = 292;
SqlParser.RULE_caseFuncAlternative = 293;
SqlParser.RULE_levelsInWeightString = 294;
SqlParser.RULE_levelInWeightListElement = 295;
SqlParser.RULE_aggregateWindowedFunction = 296;
SqlParser.RULE_scalarFunctionName = 297;
SqlParser.RULE_passwordFunctionClause = 298;
SqlParser.RULE_functionArgs = 299;
SqlParser.RULE_functionArg = 300;
SqlParser.RULE_expression = 301;
SqlParser.RULE_predicate = 302;
SqlParser.RULE_expressionAtom = 303;
SqlParser.RULE_unaryOperator = 304;
SqlParser.RULE_comparisonOperator = 305;
SqlParser.RULE_logicalOperator = 306;
SqlParser.RULE_bitOperator = 307;
SqlParser.RULE_mathOperator = 308;
SqlParser.RULE_charsetNameBase = 309;
SqlParser.RULE_transactionLevelBase = 310;
SqlParser.RULE_privilegesBase = 311;
SqlParser.RULE_intervalTypeBase = 312;
SqlParser.RULE_dataTypeBase = 313;
SqlParser.RULE_keywordsCanBeId = 314;
SqlParser.RULE_functionNameBase = 315;


function ProgramContext(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_program;
    return this;
}

ProgramContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ProgramContext.prototype.constructor = ProgramContext;

ProgramContext.prototype.statement = function() {
    return this.getTypedRuleContext(StatementContext,0);
};

ProgramContext.prototype.EOF = function() {
    return this.getToken(SqlParser.EOF, 0);
};

ProgramContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterProgram(this);
	}
};

ProgramContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitProgram(this);
	}
};

ProgramContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitProgram(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ProgramContext = ProgramContext;

SqlParser.prototype.program = function() {

    var localctx = new ProgramContext(this, this._ctx, this.state);
    this.enterRule(localctx, 0, SqlParser.RULE_program);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 632;
        this.statement();
        this.state = 633;
        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.EOF = function() {
    return this.getToken(SqlParser.EOF, 0);
};

StatementContext.prototype.sqlStatements = function() {
    return this.getTypedRuleContext(SqlStatementsContext,0);
};

StatementContext.prototype.MINUSMINUS = function() {
    return this.getToken(SqlParser.MINUSMINUS, 0);
};

StatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterStatement(this);
	}
};

StatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitStatement(this);
	}
};

StatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitStatement(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, 2, SqlParser.RULE_statement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 636;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SqlParser.ALTER) | (1 << SqlParser.ANALYZE) | (1 << SqlParser.CALL) | (1 << SqlParser.CHANGE) | (1 << SqlParser.CHECK) | (1 << SqlParser.CREATE))) !== 0) || ((((_la - 40)) & ~0x1f) == 0 && ((1 << (_la - 40)) & ((1 << (SqlParser.DELETE - 40)) | (1 << (SqlParser.DESC - 40)) | (1 << (SqlParser.DESCRIBE - 40)) | (1 << (SqlParser.DROP - 40)) | (1 << (SqlParser.EXPLAIN - 40)) | (1 << (SqlParser.GET - 40)) | (1 << (SqlParser.GRANT - 40)))) !== 0) || ((((_la - 76)) & ~0x1f) == 0 && ((1 << (_la - 76)) & ((1 << (SqlParser.INSERT - 76)) | (1 << (SqlParser.KILL - 76)) | (1 << (SqlParser.LOAD - 76)) | (1 << (SqlParser.LOCK - 76)) | (1 << (SqlParser.OPTIMIZE - 76)))) !== 0) || ((((_la - 118)) & ~0x1f) == 0 && ((1 << (_la - 118)) & ((1 << (SqlParser.PURGE - 118)) | (1 << (SqlParser.RELEASE - 118)) | (1 << (SqlParser.RENAME - 118)) | (1 << (SqlParser.REPLACE - 118)) | (1 << (SqlParser.RESIGNAL - 118)) | (1 << (SqlParser.REVOKE - 118)) | (1 << (SqlParser.SELECT - 118)) | (1 << (SqlParser.SET - 118)) | (1 << (SqlParser.SHOW - 118)) | (1 << (SqlParser.SIGNAL - 118)))) !== 0) || ((((_la - 164)) & ~0x1f) == 0 && ((1 << (_la - 164)) & ((1 << (SqlParser.UNLOCK - 164)) | (1 << (SqlParser.UPDATE - 164)) | (1 << (SqlParser.USE - 164)))) !== 0) || ((((_la - 282)) & ~0x1f) == 0 && ((1 << (_la - 282)) & ((1 << (SqlParser.BEGIN - 282)) | (1 << (SqlParser.BINLOG - 282)) | (1 << (SqlParser.CACHE - 282)) | (1 << (SqlParser.CHECKSUM - 282)) | (1 << (SqlParser.COMMIT - 282)))) !== 0) || _la===SqlParser.DEALLOCATE || _la===SqlParser.DO || ((((_la - 364)) & ~0x1f) == 0 && ((1 << (_la - 364)) & ((1 << (SqlParser.FLUSH - 364)) | (1 << (SqlParser.HANDLER - 364)) | (1 << (SqlParser.HELP - 364)) | (1 << (SqlParser.INSTALL - 364)))) !== 0) || ((((_la - 475)) & ~0x1f) == 0 && ((1 << (_la - 475)) & ((1 << (SqlParser.PREPARE - 475)) | (1 << (SqlParser.REPAIR - 475)) | (1 << (SqlParser.RESET - 475)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (SqlParser.ROLLBACK - 508)) | (1 << (SqlParser.SAVEPOINT - 508)) | (1 << (SqlParser.START - 508)))) !== 0) || ((((_la - 544)) & ~0x1f) == 0 && ((1 << (_la - 544)) & ((1 << (SqlParser.STOP - 544)) | (1 << (SqlParser.TRUNCATE - 544)) | (1 << (SqlParser.UNINSTALL - 544)))) !== 0) || ((((_la - 587)) & ~0x1f) == 0 && ((1 << (_la - 587)) & ((1 << (SqlParser.XA - 587)) | (1 << (SqlParser.EXECUTE - 587)) | (1 << (SqlParser.SHUTDOWN - 587)))) !== 0) || _la===SqlParser.LR_BRACKET || _la===SqlParser.SEMI) {
            this.state = 635;
            this.sqlStatements();
        }

        this.state = 639;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.MINUSMINUS) {
            this.state = 638;
            this.match(SqlParser.MINUSMINUS);
        }

        this.state = 641;
        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 SqlStatementsContext(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_sqlStatements;
    return this;
}

SqlStatementsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SqlStatementsContext.prototype.constructor = SqlStatementsContext;

SqlStatementsContext.prototype.sqlStatement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(SqlStatementContext);
    } else {
        return this.getTypedRuleContext(SqlStatementContext,i);
    }
};

SqlStatementsContext.prototype.emptyStatement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(EmptyStatementContext);
    } else {
        return this.getTypedRuleContext(EmptyStatementContext,i);
    }
};

SqlStatementsContext.prototype.SEMI = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.SEMI);
    } else {
        return this.getToken(SqlParser.SEMI, i);
    }
};


SqlStatementsContext.prototype.MINUSMINUS = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.MINUSMINUS);
    } else {
        return this.getToken(SqlParser.MINUSMINUS, i);
    }
};


SqlStatementsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSqlStatements(this);
	}
};

SqlStatementsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSqlStatements(this);
	}
};

SqlStatementsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSqlStatements(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SqlStatementsContext = SqlStatementsContext;

SqlParser.prototype.sqlStatements = function() {

    var localctx = new SqlStatementsContext(this, this._ctx, this.state);
    this.enterRule(localctx, 4, SqlParser.RULE_sqlStatements);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 653;
        this._errHandler.sync(this);
        var _alt = this._interp.adaptivePredict(this._input,5,this._ctx)
        while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
            if(_alt===1) {
                this.state = 651;
                this._errHandler.sync(this);
                switch(this._input.LA(1)) {
                case SqlParser.ALTER:
                case SqlParser.ANALYZE:
                case SqlParser.CALL:
                case SqlParser.CHANGE:
                case SqlParser.CHECK:
                case SqlParser.CREATE:
                case SqlParser.DELETE:
                case SqlParser.DESC:
                case SqlParser.DESCRIBE:
                case SqlParser.DROP:
                case SqlParser.EXPLAIN:
                case SqlParser.GET:
                case SqlParser.GRANT:
                case SqlParser.INSERT:
                case SqlParser.KILL:
                case SqlParser.LOAD:
                case SqlParser.LOCK:
                case SqlParser.OPTIMIZE:
                case SqlParser.PURGE:
                case SqlParser.RELEASE:
                case SqlParser.RENAME:
                case SqlParser.REPLACE:
                case SqlParser.RESIGNAL:
                case SqlParser.REVOKE:
                case SqlParser.SELECT:
                case SqlParser.SET:
                case SqlParser.SHOW:
                case SqlParser.SIGNAL:
                case SqlParser.UNLOCK:
                case SqlParser.UPDATE:
                case SqlParser.USE:
                case SqlParser.BEGIN:
                case SqlParser.BINLOG:
                case SqlParser.CACHE:
                case SqlParser.CHECKSUM:
                case SqlParser.COMMIT:
                case SqlParser.DEALLOCATE:
                case SqlParser.DO:
                case SqlParser.FLUSH:
                case SqlParser.HANDLER:
                case SqlParser.HELP:
                case SqlParser.INSTALL:
                case SqlParser.PREPARE:
                case SqlParser.REPAIR:
                case SqlParser.RESET:
                case SqlParser.ROLLBACK:
                case SqlParser.SAVEPOINT:
                case SqlParser.START:
                case SqlParser.STOP:
                case SqlParser.TRUNCATE:
                case SqlParser.UNINSTALL:
                case SqlParser.XA:
                case SqlParser.EXECUTE:
                case SqlParser.SHUTDOWN:
                case SqlParser.LR_BRACKET:
                    this.state = 643;
                    this.sqlStatement();
                    this.state = 645;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    if(_la===SqlParser.MINUSMINUS) {
                        this.state = 644;
                        this.match(SqlParser.MINUSMINUS);
                    }

                    this.state = 648;
                    this._errHandler.sync(this);
                    var la_ = this._interp.adaptivePredict(this._input,3,this._ctx);
                    if(la_===1) {
                        this.state = 647;
                        this.match(SqlParser.SEMI);

                    }
                    break;
                case SqlParser.SEMI:
                    this.state = 650;
                    this.emptyStatement();
                    break;
                default:
                    throw new antlr4.error.NoViableAltException(this);
                } 
            }
            this.state = 655;
            this._errHandler.sync(this);
            _alt = this._interp.adaptivePredict(this._input,5,this._ctx);
        }

        this.state = 664;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.ALTER:
        case SqlParser.ANALYZE:
        case SqlParser.CALL:
        case SqlParser.CHANGE:
        case SqlParser.CHECK:
        case SqlParser.CREATE:
        case SqlParser.DELETE:
        case SqlParser.DESC:
        case SqlParser.DESCRIBE:
        case SqlParser.DROP:
        case SqlParser.EXPLAIN:
        case SqlParser.GET:
        case SqlParser.GRANT:
        case SqlParser.INSERT:
        case SqlParser.KILL:
        case SqlParser.LOAD:
        case SqlParser.LOCK:
        case SqlParser.OPTIMIZE:
        case SqlParser.PURGE:
        case SqlParser.RELEASE:
        case SqlParser.RENAME:
        case SqlParser.REPLACE:
        case SqlParser.RESIGNAL:
        case SqlParser.REVOKE:
        case SqlParser.SELECT:
        case SqlParser.SET:
        case SqlParser.SHOW:
        case SqlParser.SIGNAL:
        case SqlParser.UNLOCK:
        case SqlParser.UPDATE:
        case SqlParser.USE:
        case SqlParser.BEGIN:
        case SqlParser.BINLOG:
        case SqlParser.CACHE:
        case SqlParser.CHECKSUM:
        case SqlParser.COMMIT:
        case SqlParser.DEALLOCATE:
        case SqlParser.DO:
        case SqlParser.FLUSH:
        case SqlParser.HANDLER:
        case SqlParser.HELP:
        case SqlParser.INSTALL:
        case SqlParser.PREPARE:
        case SqlParser.REPAIR:
        case SqlParser.RESET:
        case SqlParser.ROLLBACK:
        case SqlParser.SAVEPOINT:
        case SqlParser.START:
        case SqlParser.STOP:
        case SqlParser.TRUNCATE:
        case SqlParser.UNINSTALL:
        case SqlParser.XA:
        case SqlParser.EXECUTE:
        case SqlParser.SHUTDOWN:
        case SqlParser.LR_BRACKET:
            this.state = 656;
            this.sqlStatement();
            this.state = 661;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,7,this._ctx);
            if(la_===1) {
                this.state = 658;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.MINUSMINUS) {
                    this.state = 657;
                    this.match(SqlParser.MINUSMINUS);
                }

                this.state = 660;
                this.match(SqlParser.SEMI);

            }
            break;
        case SqlParser.SEMI:
            this.state = 663;
            this.emptyStatement();
            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 SqlStatementContext(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_sqlStatement;
    return this;
}

SqlStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SqlStatementContext.prototype.constructor = SqlStatementContext;

SqlStatementContext.prototype.ddlStatement = function() {
    return this.getTypedRuleContext(DdlStatementContext,0);
};

SqlStatementContext.prototype.dmlStatement = function() {
    return this.getTypedRuleContext(DmlStatementContext,0);
};

SqlStatementContext.prototype.transactionStatement = function() {
    return this.getTypedRuleContext(TransactionStatementContext,0);
};

SqlStatementContext.prototype.replicationStatement = function() {
    return this.getTypedRuleContext(ReplicationStatementContext,0);
};

SqlStatementContext.prototype.preparedStatement = function() {
    return this.getTypedRuleContext(PreparedStatementContext,0);
};

SqlStatementContext.prototype.administrationStatement = function() {
    return this.getTypedRuleContext(AdministrationStatementContext,0);
};

SqlStatementContext.prototype.utilityStatement = function() {
    return this.getTypedRuleContext(UtilityStatementContext,0);
};

SqlStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSqlStatement(this);
	}
};

SqlStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSqlStatement(this);
	}
};

SqlStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSqlStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SqlStatementContext = SqlStatementContext;

SqlParser.prototype.sqlStatement = function() {

    var localctx = new SqlStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 6, SqlParser.RULE_sqlStatement);
    try {
        this.state = 673;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,9,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 666;
            this.ddlStatement();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 667;
            this.dmlStatement();
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 668;
            this.transactionStatement();
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 669;
            this.replicationStatement();
            break;

        case 5:
            this.enterOuterAlt(localctx, 5);
            this.state = 670;
            this.preparedStatement();
            break;

        case 6:
            this.enterOuterAlt(localctx, 6);
            this.state = 671;
            this.administrationStatement();
            break;

        case 7:
            this.enterOuterAlt(localctx, 7);
            this.state = 672;
            this.utilityStatement();
            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 EmptyStatementContext(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_emptyStatement;
    return this;
}

EmptyStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
EmptyStatementContext.prototype.constructor = EmptyStatementContext;

EmptyStatementContext.prototype.SEMI = function() {
    return this.getToken(SqlParser.SEMI, 0);
};

EmptyStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterEmptyStatement(this);
	}
};

EmptyStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitEmptyStatement(this);
	}
};

EmptyStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitEmptyStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.EmptyStatementContext = EmptyStatementContext;

SqlParser.prototype.emptyStatement = function() {

    var localctx = new EmptyStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 8, SqlParser.RULE_emptyStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 675;
        this.match(SqlParser.SEMI);
    } catch (re) {
    	if(re instanceof antlr4.error.RecognitionException) {
	        localctx.exception = re;
	        this._errHandler.reportError(this, re);
	        this._errHandler.recover(this, re);
	    } else {
	    	throw re;
	    }
    } finally {
        this.exitRule();
    }
    return localctx;
};


function DdlStatementContext(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_ddlStatement;
    return this;
}

DdlStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DdlStatementContext.prototype.constructor = DdlStatementContext;

DdlStatementContext.prototype.createDatabase = function() {
    return this.getTypedRuleContext(CreateDatabaseContext,0);
};

DdlStatementContext.prototype.createEvent = function() {
    return this.getTypedRuleContext(CreateEventContext,0);
};

DdlStatementContext.prototype.createIndex = function() {
    return this.getTypedRuleContext(CreateIndexContext,0);
};

DdlStatementContext.prototype.createLogfileGroup = function() {
    return this.getTypedRuleContext(CreateLogfileGroupContext,0);
};

DdlStatementContext.prototype.createProcedure = function() {
    return this.getTypedRuleContext(CreateProcedureContext,0);
};

DdlStatementContext.prototype.createFunction = function() {
    return this.getTypedRuleContext(CreateFunctionContext,0);
};

DdlStatementContext.prototype.createServer = function() {
    return this.getTypedRuleContext(CreateServerContext,0);
};

DdlStatementContext.prototype.createTable = function() {
    return this.getTypedRuleContext(CreateTableContext,0);
};

DdlStatementContext.prototype.createTablespaceInnodb = function() {
    return this.getTypedRuleContext(CreateTablespaceInnodbContext,0);
};

DdlStatementContext.prototype.createTablespaceNdb = function() {
    return this.getTypedRuleContext(CreateTablespaceNdbContext,0);
};

DdlStatementContext.prototype.createTrigger = function() {
    return this.getTypedRuleContext(CreateTriggerContext,0);
};

DdlStatementContext.prototype.createView = function() {
    return this.getTypedRuleContext(CreateViewContext,0);
};

DdlStatementContext.prototype.alterDatabase = function() {
    return this.getTypedRuleContext(AlterDatabaseContext,0);
};

DdlStatementContext.prototype.alterEvent = function() {
    return this.getTypedRuleContext(AlterEventContext,0);
};

DdlStatementContext.prototype.alterFunction = function() {
    return this.getTypedRuleContext(AlterFunctionContext,0);
};

DdlStatementContext.prototype.alterInstance = function() {
    return this.getTypedRuleContext(AlterInstanceContext,0);
};

DdlStatementContext.prototype.alterLogfileGroup = function() {
    return this.getTypedRuleContext(AlterLogfileGroupContext,0);
};

DdlStatementContext.prototype.alterProcedure = function() {
    return this.getTypedRuleContext(AlterProcedureContext,0);
};

DdlStatementContext.prototype.alterServer = function() {
    return this.getTypedRuleContext(AlterServerContext,0);
};

DdlStatementContext.prototype.alterTable = function() {
    return this.getTypedRuleContext(AlterTableContext,0);
};

DdlStatementContext.prototype.alterTablespace = function() {
    return this.getTypedRuleContext(AlterTablespaceContext,0);
};

DdlStatementContext.prototype.alterView = function() {
    return this.getTypedRuleContext(AlterViewContext,0);
};

DdlStatementContext.prototype.dropDatabase = function() {
    return this.getTypedRuleContext(DropDatabaseContext,0);
};

DdlStatementContext.prototype.dropEvent = function() {
    return this.getTypedRuleContext(DropEventContext,0);
};

DdlStatementContext.prototype.dropIndex = function() {
    return this.getTypedRuleContext(DropIndexContext,0);
};

DdlStatementContext.prototype.dropLogfileGroup = function() {
    return this.getTypedRuleContext(DropLogfileGroupContext,0);
};

DdlStatementContext.prototype.dropProcedure = function() {
    return this.getTypedRuleContext(DropProcedureContext,0);
};

DdlStatementContext.prototype.dropFunction = function() {
    return this.getTypedRuleContext(DropFunctionContext,0);
};

DdlStatementContext.prototype.dropServer = function() {
    return this.getTypedRuleContext(DropServerContext,0);
};

DdlStatementContext.prototype.dropTable = function() {
    return this.getTypedRuleContext(DropTableContext,0);
};

DdlStatementContext.prototype.dropTablespace = function() {
    return this.getTypedRuleContext(DropTablespaceContext,0);
};

DdlStatementContext.prototype.dropTrigger = function() {
    return this.getTypedRuleContext(DropTriggerContext,0);
};

DdlStatementContext.prototype.dropView = function() {
    return this.getTypedRuleContext(DropViewContext,0);
};

DdlStatementContext.prototype.renameTable = function() {
    return this.getTypedRuleContext(RenameTableContext,0);
};

DdlStatementContext.prototype.truncateTable = function() {
    return this.getTypedRuleContext(TruncateTableContext,0);
};

DdlStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDdlStatement(this);
	}
};

DdlStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDdlStatement(this);
	}
};

DdlStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDdlStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DdlStatementContext = DdlStatementContext;

SqlParser.prototype.ddlStatement = function() {

    var localctx = new DdlStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 10, SqlParser.RULE_ddlStatement);
    try {
        this.state = 712;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,10,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 677;
            this.createDatabase();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 678;
            this.createEvent();
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 679;
            this.createIndex();
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 680;
            this.createLogfileGroup();
            break;

        case 5:
            this.enterOuterAlt(localctx, 5);
            this.state = 681;
            this.createProcedure();
            break;

        case 6:
            this.enterOuterAlt(localctx, 6);
            this.state = 682;
            this.createFunction();
            break;

        case 7:
            this.enterOuterAlt(localctx, 7);
            this.state = 683;
            this.createServer();
            break;

        case 8:
            this.enterOuterAlt(localctx, 8);
            this.state = 684;
            this.createTable();
            break;

        case 9:
            this.enterOuterAlt(localctx, 9);
            this.state = 685;
            this.createTablespaceInnodb();
            break;

        case 10:
            this.enterOuterAlt(localctx, 10);
            this.state = 686;
            this.createTablespaceNdb();
            break;

        case 11:
            this.enterOuterAlt(localctx, 11);
            this.state = 687;
            this.createTrigger();
            break;

        case 12:
            this.enterOuterAlt(localctx, 12);
            this.state = 688;
            this.createView();
            break;

        case 13:
            this.enterOuterAlt(localctx, 13);
            this.state = 689;
            this.alterDatabase();
            break;

        case 14:
            this.enterOuterAlt(localctx, 14);
            this.state = 690;
            this.alterEvent();
            break;

        case 15:
            this.enterOuterAlt(localctx, 15);
            this.state = 691;
            this.alterFunction();
            break;

        case 16:
            this.enterOuterAlt(localctx, 16);
            this.state = 692;
            this.alterInstance();
            break;

        case 17:
            this.enterOuterAlt(localctx, 17);
            this.state = 693;
            this.alterLogfileGroup();
            break;

        case 18:
            this.enterOuterAlt(localctx, 18);
            this.state = 694;
            this.alterProcedure();
            break;

        case 19:
            this.enterOuterAlt(localctx, 19);
            this.state = 695;
            this.alterServer();
            break;

        case 20:
            this.enterOuterAlt(localctx, 20);
            this.state = 696;
            this.alterTable();
            break;

        case 21:
            this.enterOuterAlt(localctx, 21);
            this.state = 697;
            this.alterTablespace();
            break;

        case 22:
            this.enterOuterAlt(localctx, 22);
            this.state = 698;
            this.alterView();
            break;

        case 23:
            this.enterOuterAlt(localctx, 23);
            this.state = 699;
            this.dropDatabase();
            break;

        case 24:
            this.enterOuterAlt(localctx, 24);
            this.state = 700;
            this.dropEvent();
            break;

        case 25:
            this.enterOuterAlt(localctx, 25);
            this.state = 701;
            this.dropIndex();
            break;

        case 26:
            this.enterOuterAlt(localctx, 26);
            this.state = 702;
            this.dropLogfileGroup();
            break;

        case 27:
            this.enterOuterAlt(localctx, 27);
            this.state = 703;
            this.dropProcedure();
            break;

        case 28:
            this.enterOuterAlt(localctx, 28);
            this.state = 704;
            this.dropFunction();
            break;

        case 29:
            this.enterOuterAlt(localctx, 29);
            this.state = 705;
            this.dropServer();
            break;

        case 30:
            this.enterOuterAlt(localctx, 30);
            this.state = 706;
            this.dropTable();
            break;

        case 31:
            this.enterOuterAlt(localctx, 31);
            this.state = 707;
            this.dropTablespace();
            break;

        case 32:
            this.enterOuterAlt(localctx, 32);
            this.state = 708;
            this.dropTrigger();
            break;

        case 33:
            this.enterOuterAlt(localctx, 33);
            this.state = 709;
            this.dropView();
            break;

        case 34:
            this.enterOuterAlt(localctx, 34);
            this.state = 710;
            this.renameTable();
            break;

        case 35:
            this.enterOuterAlt(localctx, 35);
            this.state = 711;
            this.truncateTable();
            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 DmlStatementContext(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_dmlStatement;
    return this;
}

DmlStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DmlStatementContext.prototype.constructor = DmlStatementContext;

DmlStatementContext.prototype.selectStatement = function() {
    return this.getTypedRuleContext(SelectStatementContext,0);
};

DmlStatementContext.prototype.insertStatement = function() {
    return this.getTypedRuleContext(InsertStatementContext,0);
};

DmlStatementContext.prototype.updateStatement = function() {
    return this.getTypedRuleContext(UpdateStatementContext,0);
};

DmlStatementContext.prototype.deleteStatement = function() {
    return this.getTypedRuleContext(DeleteStatementContext,0);
};

DmlStatementContext.prototype.replaceStatement = function() {
    return this.getTypedRuleContext(ReplaceStatementContext,0);
};

DmlStatementContext.prototype.callStatement = function() {
    return this.getTypedRuleContext(CallStatementContext,0);
};

DmlStatementContext.prototype.loadDataStatement = function() {
    return this.getTypedRuleContext(LoadDataStatementContext,0);
};

DmlStatementContext.prototype.loadXmlStatement = function() {
    return this.getTypedRuleContext(LoadXmlStatementContext,0);
};

DmlStatementContext.prototype.doStatement = function() {
    return this.getTypedRuleContext(DoStatementContext,0);
};

DmlStatementContext.prototype.handlerStatement = function() {
    return this.getTypedRuleContext(HandlerStatementContext,0);
};

DmlStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDmlStatement(this);
	}
};

DmlStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDmlStatement(this);
	}
};

DmlStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDmlStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DmlStatementContext = DmlStatementContext;

SqlParser.prototype.dmlStatement = function() {

    var localctx = new DmlStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 12, SqlParser.RULE_dmlStatement);
    try {
        this.state = 724;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,11,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 714;
            this.selectStatement();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 715;
            this.insertStatement();
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 716;
            this.updateStatement();
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 717;
            this.deleteStatement();
            break;

        case 5:
            this.enterOuterAlt(localctx, 5);
            this.state = 718;
            this.replaceStatement();
            break;

        case 6:
            this.enterOuterAlt(localctx, 6);
            this.state = 719;
            this.callStatement();
            break;

        case 7:
            this.enterOuterAlt(localctx, 7);
            this.state = 720;
            this.loadDataStatement();
            break;

        case 8:
            this.enterOuterAlt(localctx, 8);
            this.state = 721;
            this.loadXmlStatement();
            break;

        case 9:
            this.enterOuterAlt(localctx, 9);
            this.state = 722;
            this.doStatement();
            break;

        case 10:
            this.enterOuterAlt(localctx, 10);
            this.state = 723;
            this.handlerStatement();
            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 TransactionStatementContext(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_transactionStatement;
    return this;
}

TransactionStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TransactionStatementContext.prototype.constructor = TransactionStatementContext;

TransactionStatementContext.prototype.startTransaction = function() {
    return this.getTypedRuleContext(StartTransactionContext,0);
};

TransactionStatementContext.prototype.beginWork = function() {
    return this.getTypedRuleContext(BeginWorkContext,0);
};

TransactionStatementContext.prototype.commitWork = function() {
    return this.getTypedRuleContext(CommitWorkContext,0);
};

TransactionStatementContext.prototype.rollbackWork = function() {
    return this.getTypedRuleContext(RollbackWorkContext,0);
};

TransactionStatementContext.prototype.savepointStatement = function() {
    return this.getTypedRuleContext(SavepointStatementContext,0);
};

TransactionStatementContext.prototype.rollbackStatement = function() {
    return this.getTypedRuleContext(RollbackStatementContext,0);
};

TransactionStatementContext.prototype.releaseStatement = function() {
    return this.getTypedRuleContext(ReleaseStatementContext,0);
};

TransactionStatementContext.prototype.lockTables = function() {
    return this.getTypedRuleContext(LockTablesContext,0);
};

TransactionStatementContext.prototype.unlockTables = function() {
    return this.getTypedRuleContext(UnlockTablesContext,0);
};

TransactionStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTransactionStatement(this);
	}
};

TransactionStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTransactionStatement(this);
	}
};

TransactionStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTransactionStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.TransactionStatementContext = TransactionStatementContext;

SqlParser.prototype.transactionStatement = function() {

    var localctx = new TransactionStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 14, SqlParser.RULE_transactionStatement);
    try {
        this.state = 735;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,12,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 726;
            this.startTransaction();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 727;
            this.beginWork();
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 728;
            this.commitWork();
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 729;
            this.rollbackWork();
            break;

        case 5:
            this.enterOuterAlt(localctx, 5);
            this.state = 730;
            this.savepointStatement();
            break;

        case 6:
            this.enterOuterAlt(localctx, 6);
            this.state = 731;
            this.rollbackStatement();
            break;

        case 7:
            this.enterOuterAlt(localctx, 7);
            this.state = 732;
            this.releaseStatement();
            break;

        case 8:
            this.enterOuterAlt(localctx, 8);
            this.state = 733;
            this.lockTables();
            break;

        case 9:
            this.enterOuterAlt(localctx, 9);
            this.state = 734;
            this.unlockTables();
            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 ReplicationStatementContext(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_replicationStatement;
    return this;
}

ReplicationStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ReplicationStatementContext.prototype.constructor = ReplicationStatementContext;

ReplicationStatementContext.prototype.changeMaster = function() {
    return this.getTypedRuleContext(ChangeMasterContext,0);
};

ReplicationStatementContext.prototype.changeReplicationFilter = function() {
    return this.getTypedRuleContext(ChangeReplicationFilterContext,0);
};

ReplicationStatementContext.prototype.purgeBinaryLogs = function() {
    return this.getTypedRuleContext(PurgeBinaryLogsContext,0);
};

ReplicationStatementContext.prototype.resetMaster = function() {
    return this.getTypedRuleContext(ResetMasterContext,0);
};

ReplicationStatementContext.prototype.resetSlave = function() {
    return this.getTypedRuleContext(ResetSlaveContext,0);
};

ReplicationStatementContext.prototype.startSlave = function() {
    return this.getTypedRuleContext(StartSlaveContext,0);
};

ReplicationStatementContext.prototype.stopSlave = function() {
    return this.getTypedRuleContext(StopSlaveContext,0);
};

ReplicationStatementContext.prototype.startGroupReplication = function() {
    return this.getTypedRuleContext(StartGroupReplicationContext,0);
};

ReplicationStatementContext.prototype.stopGroupReplication = function() {
    return this.getTypedRuleContext(StopGroupReplicationContext,0);
};

ReplicationStatementContext.prototype.xaStartTransaction = function() {
    return this.getTypedRuleContext(XaStartTransactionContext,0);
};

ReplicationStatementContext.prototype.xaEndTransaction = function() {
    return this.getTypedRuleContext(XaEndTransactionContext,0);
};

ReplicationStatementContext.prototype.xaPrepareStatement = function() {
    return this.getTypedRuleContext(XaPrepareStatementContext,0);
};

ReplicationStatementContext.prototype.xaCommitWork = function() {
    return this.getTypedRuleContext(XaCommitWorkContext,0);
};

ReplicationStatementContext.prototype.xaRollbackWork = function() {
    return this.getTypedRuleContext(XaRollbackWorkContext,0);
};

ReplicationStatementContext.prototype.xaRecoverWork = function() {
    return this.getTypedRuleContext(XaRecoverWorkContext,0);
};

ReplicationStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterReplicationStatement(this);
	}
};

ReplicationStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitReplicationStatement(this);
	}
};

ReplicationStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitReplicationStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ReplicationStatementContext = ReplicationStatementContext;

SqlParser.prototype.replicationStatement = function() {

    var localctx = new ReplicationStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 16, SqlParser.RULE_replicationStatement);
    try {
        this.state = 752;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,13,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 737;
            this.changeMaster();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 738;
            this.changeReplicationFilter();
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 739;
            this.purgeBinaryLogs();
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 740;
            this.resetMaster();
            break;

        case 5:
            this.enterOuterAlt(localctx, 5);
            this.state = 741;
            this.resetSlave();
            break;

        case 6:
            this.enterOuterAlt(localctx, 6);
            this.state = 742;
            this.startSlave();
            break;

        case 7:
            this.enterOuterAlt(localctx, 7);
            this.state = 743;
            this.stopSlave();
            break;

        case 8:
            this.enterOuterAlt(localctx, 8);
            this.state = 744;
            this.startGroupReplication();
            break;

        case 9:
            this.enterOuterAlt(localctx, 9);
            this.state = 745;
            this.stopGroupReplication();
            break;

        case 10:
            this.enterOuterAlt(localctx, 10);
            this.state = 746;
            this.xaStartTransaction();
            break;

        case 11:
            this.enterOuterAlt(localctx, 11);
            this.state = 747;
            this.xaEndTransaction();
            break;

        case 12:
            this.enterOuterAlt(localctx, 12);
            this.state = 748;
            this.xaPrepareStatement();
            break;

        case 13:
            this.enterOuterAlt(localctx, 13);
            this.state = 749;
            this.xaCommitWork();
            break;

        case 14:
            this.enterOuterAlt(localctx, 14);
            this.state = 750;
            this.xaRollbackWork();
            break;

        case 15:
            this.enterOuterAlt(localctx, 15);
            this.state = 751;
            this.xaRecoverWork();
            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 PreparedStatementContext(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_preparedStatement;
    return this;
}

PreparedStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PreparedStatementContext.prototype.constructor = PreparedStatementContext;

PreparedStatementContext.prototype.prepareStatement = function() {
    return this.getTypedRuleContext(PrepareStatementContext,0);
};

PreparedStatementContext.prototype.executeStatement = function() {
    return this.getTypedRuleContext(ExecuteStatementContext,0);
};

PreparedStatementContext.prototype.deallocatePrepare = function() {
    return this.getTypedRuleContext(DeallocatePrepareContext,0);
};

PreparedStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPreparedStatement(this);
	}
};

PreparedStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPreparedStatement(this);
	}
};

PreparedStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPreparedStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.PreparedStatementContext = PreparedStatementContext;

SqlParser.prototype.preparedStatement = function() {

    var localctx = new PreparedStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 18, SqlParser.RULE_preparedStatement);
    try {
        this.state = 757;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.PREPARE:
            this.enterOuterAlt(localctx, 1);
            this.state = 754;
            this.prepareStatement();
            break;
        case SqlParser.EXECUTE:
            this.enterOuterAlt(localctx, 2);
            this.state = 755;
            this.executeStatement();
            break;
        case SqlParser.DROP:
        case SqlParser.DEALLOCATE:
            this.enterOuterAlt(localctx, 3);
            this.state = 756;
            this.deallocatePrepare();
            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 CompoundStatementContext(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_compoundStatement;
    return this;
}

CompoundStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CompoundStatementContext.prototype.constructor = CompoundStatementContext;

CompoundStatementContext.prototype.blockStatement = function() {
    return this.getTypedRuleContext(BlockStatementContext,0);
};

CompoundStatementContext.prototype.caseStatement = function() {
    return this.getTypedRuleContext(CaseStatementContext,0);
};

CompoundStatementContext.prototype.ifStatement = function() {
    return this.getTypedRuleContext(IfStatementContext,0);
};

CompoundStatementContext.prototype.leaveStatement = function() {
    return this.getTypedRuleContext(LeaveStatementContext,0);
};

CompoundStatementContext.prototype.loopStatement = function() {
    return this.getTypedRuleContext(LoopStatementContext,0);
};

CompoundStatementContext.prototype.repeatStatement = function() {
    return this.getTypedRuleContext(RepeatStatementContext,0);
};

CompoundStatementContext.prototype.whileStatement = function() {
    return this.getTypedRuleContext(WhileStatementContext,0);
};

CompoundStatementContext.prototype.iterateStatement = function() {
    return this.getTypedRuleContext(IterateStatementContext,0);
};

CompoundStatementContext.prototype.returnStatement = function() {
    return this.getTypedRuleContext(ReturnStatementContext,0);
};

CompoundStatementContext.prototype.cursorStatement = function() {
    return this.getTypedRuleContext(CursorStatementContext,0);
};

CompoundStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCompoundStatement(this);
	}
};

CompoundStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCompoundStatement(this);
	}
};

CompoundStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCompoundStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CompoundStatementContext = CompoundStatementContext;

SqlParser.prototype.compoundStatement = function() {

    var localctx = new CompoundStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 20, SqlParser.RULE_compoundStatement);
    try {
        this.state = 769;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,15,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 759;
            this.blockStatement();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 760;
            this.caseStatement();
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 761;
            this.ifStatement();
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 762;
            this.leaveStatement();
            break;

        case 5:
            this.enterOuterAlt(localctx, 5);
            this.state = 763;
            this.loopStatement();
            break;

        case 6:
            this.enterOuterAlt(localctx, 6);
            this.state = 764;
            this.repeatStatement();
            break;

        case 7:
            this.enterOuterAlt(localctx, 7);
            this.state = 765;
            this.whileStatement();
            break;

        case 8:
            this.enterOuterAlt(localctx, 8);
            this.state = 766;
            this.iterateStatement();
            break;

        case 9:
            this.enterOuterAlt(localctx, 9);
            this.state = 767;
            this.returnStatement();
            break;

        case 10:
            this.enterOuterAlt(localctx, 10);
            this.state = 768;
            this.cursorStatement();
            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 AdministrationStatementContext(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_administrationStatement;
    return this;
}

AdministrationStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AdministrationStatementContext.prototype.constructor = AdministrationStatementContext;

AdministrationStatementContext.prototype.alterUser = function() {
    return this.getTypedRuleContext(AlterUserContext,0);
};

AdministrationStatementContext.prototype.createUser = function() {
    return this.getTypedRuleContext(CreateUserContext,0);
};

AdministrationStatementContext.prototype.dropUser = function() {
    return this.getTypedRuleContext(DropUserContext,0);
};

AdministrationStatementContext.prototype.grantStatement = function() {
    return this.getTypedRuleContext(GrantStatementContext,0);
};

AdministrationStatementContext.prototype.grantProxy = function() {
    return this.getTypedRuleContext(GrantProxyContext,0);
};

AdministrationStatementContext.prototype.renameUser = function() {
    return this.getTypedRuleContext(RenameUserContext,0);
};

AdministrationStatementContext.prototype.revokeStatement = function() {
    return this.getTypedRuleContext(RevokeStatementContext,0);
};

AdministrationStatementContext.prototype.revokeProxy = function() {
    return this.getTypedRuleContext(RevokeProxyContext,0);
};

AdministrationStatementContext.prototype.analyzeTable = function() {
    return this.getTypedRuleContext(AnalyzeTableContext,0);
};

AdministrationStatementContext.prototype.checkTable = function() {
    return this.getTypedRuleContext(CheckTableContext,0);
};

AdministrationStatementContext.prototype.checksumTable = function() {
    return this.getTypedRuleContext(ChecksumTableContext,0);
};

AdministrationStatementContext.prototype.optimizeTable = function() {
    return this.getTypedRuleContext(OptimizeTableContext,0);
};

AdministrationStatementContext.prototype.repairTable = function() {
    return this.getTypedRuleContext(RepairTableContext,0);
};

AdministrationStatementContext.prototype.createUdfunction = function() {
    return this.getTypedRuleContext(CreateUdfunctionContext,0);
};

AdministrationStatementContext.prototype.installPlugin = function() {
    return this.getTypedRuleContext(InstallPluginContext,0);
};

AdministrationStatementContext.prototype.uninstallPlugin = function() {
    return this.getTypedRuleContext(UninstallPluginContext,0);
};

AdministrationStatementContext.prototype.setStatement = function() {
    return this.getTypedRuleContext(SetStatementContext,0);
};

AdministrationStatementContext.prototype.showStatement = function() {
    return this.getTypedRuleContext(ShowStatementContext,0);
};

AdministrationStatementContext.prototype.binlogStatement = function() {
    return this.getTypedRuleContext(BinlogStatementContext,0);
};

AdministrationStatementContext.prototype.cacheIndexStatement = function() {
    return this.getTypedRuleContext(CacheIndexStatementContext,0);
};

AdministrationStatementContext.prototype.flushStatement = function() {
    return this.getTypedRuleContext(FlushStatementContext,0);
};

AdministrationStatementContext.prototype.killStatement = function() {
    return this.getTypedRuleContext(KillStatementContext,0);
};

AdministrationStatementContext.prototype.loadIndexIntoCache = function() {
    return this.getTypedRuleContext(LoadIndexIntoCacheContext,0);
};

AdministrationStatementContext.prototype.resetStatement = function() {
    return this.getTypedRuleContext(ResetStatementContext,0);
};

AdministrationStatementContext.prototype.shutdownStatement = function() {
    return this.getTypedRuleContext(ShutdownStatementContext,0);
};

AdministrationStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAdministrationStatement(this);
	}
};

AdministrationStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAdministrationStatement(this);
	}
};

AdministrationStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAdministrationStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.AdministrationStatementContext = AdministrationStatementContext;

SqlParser.prototype.administrationStatement = function() {

    var localctx = new AdministrationStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 22, SqlParser.RULE_administrationStatement);
    try {
        this.state = 796;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,16,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 771;
            this.alterUser();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 772;
            this.createUser();
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 773;
            this.dropUser();
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 774;
            this.grantStatement();
            break;

        case 5:
            this.enterOuterAlt(localctx, 5);
            this.state = 775;
            this.grantProxy();
            break;

        case 6:
            this.enterOuterAlt(localctx, 6);
            this.state = 776;
            this.renameUser();
            break;

        case 7:
            this.enterOuterAlt(localctx, 7);
            this.state = 777;
            this.revokeStatement();
            break;

        case 8:
            this.enterOuterAlt(localctx, 8);
            this.state = 778;
            this.revokeProxy();
            break;

        case 9:
            this.enterOuterAlt(localctx, 9);
            this.state = 779;
            this.analyzeTable();
            break;

        case 10:
            this.enterOuterAlt(localctx, 10);
            this.state = 780;
            this.checkTable();
            break;

        case 11:
            this.enterOuterAlt(localctx, 11);
            this.state = 781;
            this.checksumTable();
            break;

        case 12:
            this.enterOuterAlt(localctx, 12);
            this.state = 782;
            this.optimizeTable();
            break;

        case 13:
            this.enterOuterAlt(localctx, 13);
            this.state = 783;
            this.repairTable();
            break;

        case 14:
            this.enterOuterAlt(localctx, 14);
            this.state = 784;
            this.createUdfunction();
            break;

        case 15:
            this.enterOuterAlt(localctx, 15);
            this.state = 785;
            this.installPlugin();
            break;

        case 16:
            this.enterOuterAlt(localctx, 16);
            this.state = 786;
            this.uninstallPlugin();
            break;

        case 17:
            this.enterOuterAlt(localctx, 17);
            this.state = 787;
            this.setStatement();
            break;

        case 18:
            this.enterOuterAlt(localctx, 18);
            this.state = 788;
            this.showStatement();
            break;

        case 19:
            this.enterOuterAlt(localctx, 19);
            this.state = 789;
            this.binlogStatement();
            break;

        case 20:
            this.enterOuterAlt(localctx, 20);
            this.state = 790;
            this.cacheIndexStatement();
            break;

        case 21:
            this.enterOuterAlt(localctx, 21);
            this.state = 791;
            this.flushStatement();
            break;

        case 22:
            this.enterOuterAlt(localctx, 22);
            this.state = 792;
            this.killStatement();
            break;

        case 23:
            this.enterOuterAlt(localctx, 23);
            this.state = 793;
            this.loadIndexIntoCache();
            break;

        case 24:
            this.enterOuterAlt(localctx, 24);
            this.state = 794;
            this.resetStatement();
            break;

        case 25:
            this.enterOuterAlt(localctx, 25);
            this.state = 795;
            this.shutdownStatement();
            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 UtilityStatementContext(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_utilityStatement;
    return this;
}

UtilityStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UtilityStatementContext.prototype.constructor = UtilityStatementContext;

UtilityStatementContext.prototype.simpleDescribeStatement = function() {
    return this.getTypedRuleContext(SimpleDescribeStatementContext,0);
};

UtilityStatementContext.prototype.fullDescribeStatement = function() {
    return this.getTypedRuleContext(FullDescribeStatementContext,0);
};

UtilityStatementContext.prototype.helpStatement = function() {
    return this.getTypedRuleContext(HelpStatementContext,0);
};

UtilityStatementContext.prototype.useStatement = function() {
    return this.getTypedRuleContext(UseStatementContext,0);
};

UtilityStatementContext.prototype.signalStatement = function() {
    return this.getTypedRuleContext(SignalStatementContext,0);
};

UtilityStatementContext.prototype.resignalStatement = function() {
    return this.getTypedRuleContext(ResignalStatementContext,0);
};

UtilityStatementContext.prototype.diagnosticsStatement = function() {
    return this.getTypedRuleContext(DiagnosticsStatementContext,0);
};

UtilityStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUtilityStatement(this);
	}
};

UtilityStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUtilityStatement(this);
	}
};

UtilityStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUtilityStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UtilityStatementContext = UtilityStatementContext;

SqlParser.prototype.utilityStatement = function() {

    var localctx = new UtilityStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 24, SqlParser.RULE_utilityStatement);
    try {
        this.state = 805;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,17,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 798;
            this.simpleDescribeStatement();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 799;
            this.fullDescribeStatement();
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 800;
            this.helpStatement();
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 801;
            this.useStatement();
            break;

        case 5:
            this.enterOuterAlt(localctx, 5);
            this.state = 802;
            this.signalStatement();
            break;

        case 6:
            this.enterOuterAlt(localctx, 6);
            this.state = 803;
            this.resignalStatement();
            break;

        case 7:
            this.enterOuterAlt(localctx, 7);
            this.state = 804;
            this.diagnosticsStatement();
            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 CreateDatabaseContext(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_createDatabase;
    this.dbFormat = null; // Token
    return this;
}

CreateDatabaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateDatabaseContext.prototype.constructor = CreateDatabaseContext;

CreateDatabaseContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CreateDatabaseContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

CreateDatabaseContext.prototype.DATABASE = function() {
    return this.getToken(SqlParser.DATABASE, 0);
};

CreateDatabaseContext.prototype.SCHEMA = function() {
    return this.getToken(SqlParser.SCHEMA, 0);
};

CreateDatabaseContext.prototype.ifNotExists = function() {
    return this.getTypedRuleContext(IfNotExistsContext,0);
};

CreateDatabaseContext.prototype.createDatabaseOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(CreateDatabaseOptionContext);
    } else {
        return this.getTypedRuleContext(CreateDatabaseOptionContext,i);
    }
};

CreateDatabaseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateDatabase(this);
	}
};

CreateDatabaseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateDatabase(this);
	}
};

CreateDatabaseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateDatabase(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CreateDatabaseContext = CreateDatabaseContext;

SqlParser.prototype.createDatabase = function() {

    var localctx = new CreateDatabaseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 26, SqlParser.RULE_createDatabase);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 807;
        this.match(SqlParser.CREATE);
        this.state = 808;
        localctx.dbFormat = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.DATABASE || _la===SqlParser.SCHEMA)) {
            localctx.dbFormat = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 810;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IF) {
            this.state = 809;
            this.ifNotExists();
        }

        this.state = 812;
        this.uid();
        this.state = 816;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(((((_la - 22)) & ~0x1f) == 0 && ((1 << (_la - 22)) & ((1 << (SqlParser.CHARACTER - 22)) | (1 << (SqlParser.COLLATE - 22)) | (1 << (SqlParser.DEFAULT - 22)))) !== 0) || _la===SqlParser.CHARSET) {
            this.state = 813;
            this.createDatabaseOption();
            this.state = 818;
            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 CreateEventContext(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_createEvent;
    return this;
}

CreateEventContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateEventContext.prototype.constructor = CreateEventContext;

CreateEventContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CreateEventContext.prototype.EVENT = function() {
    return this.getToken(SqlParser.EVENT, 0);
};

CreateEventContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

CreateEventContext.prototype.ON = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.ON);
    } else {
        return this.getToken(SqlParser.ON, i);
    }
};


CreateEventContext.prototype.SCHEDULE = function() {
    return this.getToken(SqlParser.SCHEDULE, 0);
};

CreateEventContext.prototype.scheduleExpression = function() {
    return this.getTypedRuleContext(ScheduleExpressionContext,0);
};

CreateEventContext.prototype.DO = function() {
    return this.getToken(SqlParser.DO, 0);
};

CreateEventContext.prototype.routineBody = function() {
    return this.getTypedRuleContext(RoutineBodyContext,0);
};

CreateEventContext.prototype.ownerStatement = function() {
    return this.getTypedRuleContext(OwnerStatementContext,0);
};

CreateEventContext.prototype.ifNotExists = function() {
    return this.getTypedRuleContext(IfNotExistsContext,0);
};

CreateEventContext.prototype.COMPLETION = function() {
    return this.getToken(SqlParser.COMPLETION, 0);
};

CreateEventContext.prototype.PRESERVE = function() {
    return this.getToken(SqlParser.PRESERVE, 0);
};

CreateEventContext.prototype.enableType = function() {
    return this.getTypedRuleContext(EnableTypeContext,0);
};

CreateEventContext.prototype.COMMENT = function() {
    return this.getToken(SqlParser.COMMENT, 0);
};

CreateEventContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

CreateEventContext.prototype.NOT = function() {
    return this.getToken(SqlParser.NOT, 0);
};

CreateEventContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateEvent(this);
	}
};

CreateEventContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateEvent(this);
	}
};

CreateEventContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateEvent(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CreateEventContext = CreateEventContext;

SqlParser.prototype.createEvent = function() {

    var localctx = new CreateEventContext(this, this._ctx, this.state);
    this.enterRule(localctx, 28, SqlParser.RULE_createEvent);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 819;
        this.match(SqlParser.CREATE);
        this.state = 821;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.DEFINER) {
            this.state = 820;
            this.ownerStatement();
        }

        this.state = 823;
        this.match(SqlParser.EVENT);
        this.state = 825;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IF) {
            this.state = 824;
            this.ifNotExists();
        }

        this.state = 827;
        this.fullId();
        this.state = 828;
        this.match(SqlParser.ON);
        this.state = 829;
        this.match(SqlParser.SCHEDULE);
        this.state = 830;
        this.scheduleExpression();
        this.state = 837;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ON) {
            this.state = 831;
            this.match(SqlParser.ON);
            this.state = 832;
            this.match(SqlParser.COMPLETION);
            this.state = 834;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.NOT) {
                this.state = 833;
                this.match(SqlParser.NOT);
            }

            this.state = 836;
            this.match(SqlParser.PRESERVE);
        }

        this.state = 840;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.DISABLE || _la===SqlParser.ENABLE) {
            this.state = 839;
            this.enableType();
        }

        this.state = 844;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.COMMENT) {
            this.state = 842;
            this.match(SqlParser.COMMENT);
            this.state = 843;
            this.match(SqlParser.STRING_LITERAL);
        }

        this.state = 846;
        this.match(SqlParser.DO);
        this.state = 847;
        this.routineBody();
    } 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 CreateIndexContext(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_createIndex;
    this.intimeAction = null; // Token
    this.indexCategory = null; // Token
    this.algType = null; // Token
    this.lockType = null; // Token
    return this;
}

CreateIndexContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateIndexContext.prototype.constructor = CreateIndexContext;

CreateIndexContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CreateIndexContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

CreateIndexContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

CreateIndexContext.prototype.ON = function() {
    return this.getToken(SqlParser.ON, 0);
};

CreateIndexContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

CreateIndexContext.prototype.indexColumnNames = function() {
    return this.getTypedRuleContext(IndexColumnNamesContext,0);
};

CreateIndexContext.prototype.indexType = function() {
    return this.getTypedRuleContext(IndexTypeContext,0);
};

CreateIndexContext.prototype.indexOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(IndexOptionContext);
    } else {
        return this.getTypedRuleContext(IndexOptionContext,i);
    }
};

CreateIndexContext.prototype.ALGORITHM = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.ALGORITHM);
    } else {
        return this.getToken(SqlParser.ALGORITHM, i);
    }
};


CreateIndexContext.prototype.LOCK = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.LOCK);
    } else {
        return this.getToken(SqlParser.LOCK, i);
    }
};


CreateIndexContext.prototype.ONLINE = function() {
    return this.getToken(SqlParser.ONLINE, 0);
};

CreateIndexContext.prototype.OFFLINE = function() {
    return this.getToken(SqlParser.OFFLINE, 0);
};

CreateIndexContext.prototype.UNIQUE = function() {
    return this.getToken(SqlParser.UNIQUE, 0);
};

CreateIndexContext.prototype.FULLTEXT = function() {
    return this.getToken(SqlParser.FULLTEXT, 0);
};

CreateIndexContext.prototype.SPATIAL = function() {
    return this.getToken(SqlParser.SPATIAL, 0);
};

CreateIndexContext.prototype.DEFAULT = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.DEFAULT);
    } else {
        return this.getToken(SqlParser.DEFAULT, i);
    }
};


CreateIndexContext.prototype.INPLACE = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.INPLACE);
    } else {
        return this.getToken(SqlParser.INPLACE, i);
    }
};


CreateIndexContext.prototype.COPY = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COPY);
    } else {
        return this.getToken(SqlParser.COPY, i);
    }
};


CreateIndexContext.prototype.NONE = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.NONE);
    } else {
        return this.getToken(SqlParser.NONE, i);
    }
};


CreateIndexContext.prototype.SHARED = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.SHARED);
    } else {
        return this.getToken(SqlParser.SHARED, i);
    }
};


CreateIndexContext.prototype.EXCLUSIVE = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EXCLUSIVE);
    } else {
        return this.getToken(SqlParser.EXCLUSIVE, i);
    }
};


CreateIndexContext.prototype.EQUAL_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EQUAL_SYMBOL);
    } else {
        return this.getToken(SqlParser.EQUAL_SYMBOL, i);
    }
};


CreateIndexContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateIndex(this);
	}
};

CreateIndexContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateIndex(this);
	}
};

CreateIndexContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateIndex(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CreateIndexContext = CreateIndexContext;

SqlParser.prototype.createIndex = function() {

    var localctx = new CreateIndexContext(this, this._ctx, this.state);
    this.enterRule(localctx, 30, SqlParser.RULE_createIndex);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 849;
        this.match(SqlParser.CREATE);
        this.state = 851;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.OFFLINE || _la===SqlParser.ONLINE) {
            this.state = 850;
            localctx.intimeAction = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.OFFLINE || _la===SqlParser.ONLINE)) {
                localctx.intimeAction = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 854;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.FULLTEXT || _la===SqlParser.SPATIAL || _la===SqlParser.UNIQUE) {
            this.state = 853;
            localctx.indexCategory = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.FULLTEXT || _la===SqlParser.SPATIAL || _la===SqlParser.UNIQUE)) {
                localctx.indexCategory = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 856;
        this.match(SqlParser.INDEX);
        this.state = 857;
        this.uid();
        this.state = 859;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.USING) {
            this.state = 858;
            this.indexType();
        }

        this.state = 861;
        this.match(SqlParser.ON);
        this.state = 862;
        this.tableName();
        this.state = 863;
        this.indexColumnNames();
        this.state = 867;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.USING || _la===SqlParser.WITH || _la===SqlParser.COMMENT || _la===SqlParser.INVISIBLE || _la===SqlParser.KEY_BLOCK_SIZE || _la===SqlParser.VISIBLE) {
            this.state = 864;
            this.indexOption();
            this.state = 869;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 882;
        this._errHandler.sync(this);
        var _alt = this._interp.adaptivePredict(this._input,33,this._ctx)
        while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
            if(_alt===1) {
                this.state = 880;
                this._errHandler.sync(this);
                switch(this._input.LA(1)) {
                case SqlParser.ALGORITHM:
                    this.state = 870;
                    this.match(SqlParser.ALGORITHM);
                    this.state = 872;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    if(_la===SqlParser.EQUAL_SYMBOL) {
                        this.state = 871;
                        this.match(SqlParser.EQUAL_SYMBOL);
                    }

                    this.state = 874;
                    localctx.algType = this._input.LT(1);
                    _la = this._input.LA(1);
                    if(!(_la===SqlParser.DEFAULT || _la===SqlParser.COPY || _la===SqlParser.INPLACE)) {
                        localctx.algType = this._errHandler.recoverInline(this);
                    }
                    else {
                    	this._errHandler.reportMatch(this);
                        this.consume();
                    }
                    break;
                case SqlParser.LOCK:
                    this.state = 875;
                    this.match(SqlParser.LOCK);
                    this.state = 877;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    if(_la===SqlParser.EQUAL_SYMBOL) {
                        this.state = 876;
                        this.match(SqlParser.EQUAL_SYMBOL);
                    }

                    this.state = 879;
                    localctx.lockType = this._input.LT(1);
                    _la = this._input.LA(1);
                    if(!(_la===SqlParser.DEFAULT || _la===SqlParser.EXCLUSIVE || _la===SqlParser.NONE || _la===SqlParser.SHARED)) {
                        localctx.lockType = this._errHandler.recoverInline(this);
                    }
                    else {
                    	this._errHandler.reportMatch(this);
                        this.consume();
                    }
                    break;
                default:
                    throw new antlr4.error.NoViableAltException(this);
                } 
            }
            this.state = 884;
            this._errHandler.sync(this);
            _alt = this._interp.adaptivePredict(this._input,33,this._ctx);
        }

    } 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 CreateLogfileGroupContext(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_createLogfileGroup;
    this.undoFile = null; // Token
    this.initSize = null; // FileSizeLiteralContext
    this.undoSize = null; // FileSizeLiteralContext
    this.redoSize = null; // FileSizeLiteralContext
    this.comment = null; // Token
    return this;
}

CreateLogfileGroupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateLogfileGroupContext.prototype.constructor = CreateLogfileGroupContext;

CreateLogfileGroupContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CreateLogfileGroupContext.prototype.LOGFILE = function() {
    return this.getToken(SqlParser.LOGFILE, 0);
};

CreateLogfileGroupContext.prototype.GROUP = function() {
    return this.getToken(SqlParser.GROUP, 0);
};

CreateLogfileGroupContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

CreateLogfileGroupContext.prototype.ADD = function() {
    return this.getToken(SqlParser.ADD, 0);
};

CreateLogfileGroupContext.prototype.UNDOFILE = function() {
    return this.getToken(SqlParser.UNDOFILE, 0);
};

CreateLogfileGroupContext.prototype.ENGINE = function() {
    return this.getToken(SqlParser.ENGINE, 0);
};

CreateLogfileGroupContext.prototype.engineName = function() {
    return this.getTypedRuleContext(EngineNameContext,0);
};

CreateLogfileGroupContext.prototype.STRING_LITERAL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.STRING_LITERAL);
    } else {
        return this.getToken(SqlParser.STRING_LITERAL, i);
    }
};


CreateLogfileGroupContext.prototype.INITIAL_SIZE = function() {
    return this.getToken(SqlParser.INITIAL_SIZE, 0);
};

CreateLogfileGroupContext.prototype.UNDO_BUFFER_SIZE = function() {
    return this.getToken(SqlParser.UNDO_BUFFER_SIZE, 0);
};

CreateLogfileGroupContext.prototype.REDO_BUFFER_SIZE = function() {
    return this.getToken(SqlParser.REDO_BUFFER_SIZE, 0);
};

CreateLogfileGroupContext.prototype.NODEGROUP = function() {
    return this.getToken(SqlParser.NODEGROUP, 0);
};

CreateLogfileGroupContext.prototype.WAIT = function() {
    return this.getToken(SqlParser.WAIT, 0);
};

CreateLogfileGroupContext.prototype.COMMENT = function() {
    return this.getToken(SqlParser.COMMENT, 0);
};

CreateLogfileGroupContext.prototype.EQUAL_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EQUAL_SYMBOL);
    } else {
        return this.getToken(SqlParser.EQUAL_SYMBOL, i);
    }
};


CreateLogfileGroupContext.prototype.fileSizeLiteral = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(FileSizeLiteralContext);
    } else {
        return this.getTypedRuleContext(FileSizeLiteralContext,i);
    }
};

CreateLogfileGroupContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateLogfileGroup(this);
	}
};

CreateLogfileGroupContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateLogfileGroup(this);
	}
};

CreateLogfileGroupContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateLogfileGroup(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CreateLogfileGroupContext = CreateLogfileGroupContext;

SqlParser.prototype.createLogfileGroup = function() {

    var localctx = new CreateLogfileGroupContext(this, this._ctx, this.state);
    this.enterRule(localctx, 32, SqlParser.RULE_createLogfileGroup);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 885;
        this.match(SqlParser.CREATE);
        this.state = 886;
        this.match(SqlParser.LOGFILE);
        this.state = 887;
        this.match(SqlParser.GROUP);
        this.state = 888;
        this.uid();
        this.state = 889;
        this.match(SqlParser.ADD);
        this.state = 890;
        this.match(SqlParser.UNDOFILE);
        this.state = 891;
        localctx.undoFile = this.match(SqlParser.STRING_LITERAL);
        this.state = 897;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.INITIAL_SIZE) {
            this.state = 892;
            this.match(SqlParser.INITIAL_SIZE);
            this.state = 894;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 893;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 896;
            localctx.initSize = this.fileSizeLiteral();
        }

        this.state = 904;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.UNDO_BUFFER_SIZE) {
            this.state = 899;
            this.match(SqlParser.UNDO_BUFFER_SIZE);
            this.state = 901;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 900;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 903;
            localctx.undoSize = this.fileSizeLiteral();
        }

        this.state = 911;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.REDO_BUFFER_SIZE) {
            this.state = 906;
            this.match(SqlParser.REDO_BUFFER_SIZE);
            this.state = 908;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 907;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 910;
            localctx.redoSize = this.fileSizeLiteral();
        }

        this.state = 918;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.NODEGROUP) {
            this.state = 913;
            this.match(SqlParser.NODEGROUP);
            this.state = 915;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 914;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 917;
            this.uid();
        }

        this.state = 921;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WAIT) {
            this.state = 920;
            this.match(SqlParser.WAIT);
        }

        this.state = 928;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.COMMENT) {
            this.state = 923;
            this.match(SqlParser.COMMENT);
            this.state = 925;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 924;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 927;
            localctx.comment = this.match(SqlParser.STRING_LITERAL);
        }

        this.state = 930;
        this.match(SqlParser.ENGINE);
        this.state = 932;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.EQUAL_SYMBOL) {
            this.state = 931;
            this.match(SqlParser.EQUAL_SYMBOL);
        }

        this.state = 934;
        this.engineName();
    } 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 CreateProcedureContext(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_createProcedure;
    return this;
}

CreateProcedureContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateProcedureContext.prototype.constructor = CreateProcedureContext;

CreateProcedureContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CreateProcedureContext.prototype.PROCEDURE = function() {
    return this.getToken(SqlParser.PROCEDURE, 0);
};

CreateProcedureContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

CreateProcedureContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

CreateProcedureContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

CreateProcedureContext.prototype.routineBody = function() {
    return this.getTypedRuleContext(RoutineBodyContext,0);
};

CreateProcedureContext.prototype.ownerStatement = function() {
    return this.getTypedRuleContext(OwnerStatementContext,0);
};

CreateProcedureContext.prototype.procedureParameter = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ProcedureParameterContext);
    } else {
        return this.getTypedRuleContext(ProcedureParameterContext,i);
    }
};

CreateProcedureContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


CreateProcedureContext.prototype.routineOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(RoutineOptionContext);
    } else {
        return this.getTypedRuleContext(RoutineOptionContext,i);
    }
};

CreateProcedureContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateProcedure(this);
	}
};

CreateProcedureContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateProcedure(this);
	}
};

CreateProcedureContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateProcedure(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CreateProcedureContext = CreateProcedureContext;

SqlParser.prototype.createProcedure = function() {

    var localctx = new CreateProcedureContext(this, this._ctx, this.state);
    this.enterRule(localctx, 34, SqlParser.RULE_createProcedure);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 936;
        this.match(SqlParser.CREATE);
        this.state = 938;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.DEFINER) {
            this.state = 937;
            this.ownerStatement();
        }

        this.state = 940;
        this.match(SqlParser.PROCEDURE);
        this.state = 941;
        this.fullId();
        this.state = 942;
        this.match(SqlParser.LR_BRACKET);
        this.state = 944;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || ((((_la - 71)) & ~0x1f) == 0 && ((1 << (_la - 71)) & ((1 << (SqlParser.IN - 71)) | (1 << (SqlParser.INOUT - 71)) | (1 << (SqlParser.LEFT - 71)))) !== 0) || ((((_la - 105)) & ~0x1f) == 0 && ((1 << (_la - 105)) & ((1 << (SqlParser.NUMBER - 105)) | (1 << (SqlParser.OUT - 105)) | (1 << (SqlParser.RIGHT - 105)))) !== 0) || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
            this.state = 943;
            this.procedureParameter();
        }

        this.state = 950;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 946;
            this.match(SqlParser.COMMA);
            this.state = 947;
            this.procedureParameter();
            this.state = 952;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 953;
        this.match(SqlParser.RR_BRACKET);
        this.state = 957;
        this._errHandler.sync(this);
        var _alt = this._interp.adaptivePredict(this._input,49,this._ctx)
        while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
            if(_alt===1) {
                this.state = 954;
                this.routineOption(); 
            }
            this.state = 959;
            this._errHandler.sync(this);
            _alt = this._interp.adaptivePredict(this._input,49,this._ctx);
        }

        this.state = 960;
        this.routineBody();
    } 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 CreateFunctionContext(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_createFunction;
    return this;
}

CreateFunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateFunctionContext.prototype.constructor = CreateFunctionContext;

CreateFunctionContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CreateFunctionContext.prototype.FUNCTION = function() {
    return this.getToken(SqlParser.FUNCTION, 0);
};

CreateFunctionContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

CreateFunctionContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

CreateFunctionContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

CreateFunctionContext.prototype.RETURNS = function() {
    return this.getToken(SqlParser.RETURNS, 0);
};

CreateFunctionContext.prototype.dataType = function() {
    return this.getTypedRuleContext(DataTypeContext,0);
};

CreateFunctionContext.prototype.routineBody = function() {
    return this.getTypedRuleContext(RoutineBodyContext,0);
};

CreateFunctionContext.prototype.returnStatement = function() {
    return this.getTypedRuleContext(ReturnStatementContext,0);
};

CreateFunctionContext.prototype.ownerStatement = function() {
    return this.getTypedRuleContext(OwnerStatementContext,0);
};

CreateFunctionContext.prototype.functionParameter = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(FunctionParameterContext);
    } else {
        return this.getTypedRuleContext(FunctionParameterContext,i);
    }
};

CreateFunctionContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


CreateFunctionContext.prototype.routineOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(RoutineOptionContext);
    } else {
        return this.getTypedRuleContext(RoutineOptionContext,i);
    }
};

CreateFunctionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateFunction(this);
	}
};

CreateFunctionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateFunction(this);
	}
};

CreateFunctionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateFunction(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CreateFunctionContext = CreateFunctionContext;

SqlParser.prototype.createFunction = function() {

    var localctx = new CreateFunctionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 36, SqlParser.RULE_createFunction);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 962;
        this.match(SqlParser.CREATE);
        this.state = 964;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.DEFINER) {
            this.state = 963;
            this.ownerStatement();
        }

        this.state = 966;
        this.match(SqlParser.FUNCTION);
        this.state = 967;
        this.fullId();
        this.state = 968;
        this.match(SqlParser.LR_BRACKET);
        this.state = 970;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
            this.state = 969;
            this.functionParameter();
        }

        this.state = 976;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 972;
            this.match(SqlParser.COMMA);
            this.state = 973;
            this.functionParameter();
            this.state = 978;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 979;
        this.match(SqlParser.RR_BRACKET);
        this.state = 980;
        this.match(SqlParser.RETURNS);
        this.state = 981;
        this.dataType();
        this.state = 985;
        this._errHandler.sync(this);
        var _alt = this._interp.adaptivePredict(this._input,53,this._ctx)
        while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
            if(_alt===1) {
                this.state = 982;
                this.routineOption(); 
            }
            this.state = 987;
            this._errHandler.sync(this);
            _alt = this._interp.adaptivePredict(this._input,53,this._ctx);
        }

        this.state = 990;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.ALTER:
        case SqlParser.ANALYZE:
        case SqlParser.CALL:
        case SqlParser.CHANGE:
        case SqlParser.CHECK:
        case SqlParser.CREATE:
        case SqlParser.CURRENT:
        case SqlParser.DATABASE:
        case SqlParser.DELETE:
        case SqlParser.DESC:
        case SqlParser.DESCRIBE:
        case SqlParser.DIAGNOSTICS:
        case SqlParser.DROP:
        case SqlParser.EXPLAIN:
        case SqlParser.GET:
        case SqlParser.GRANT:
        case SqlParser.INSERT:
        case SqlParser.KILL:
        case SqlParser.LEFT:
        case SqlParser.LOAD:
        case SqlParser.LOCK:
        case SqlParser.NUMBER:
        case SqlParser.OPTIMIZE:
        case SqlParser.PURGE:
        case SqlParser.RELEASE:
        case SqlParser.RENAME:
        case SqlParser.REPLACE:
        case SqlParser.RESIGNAL:
        case SqlParser.REVOKE:
        case SqlParser.RIGHT:
        case SqlParser.SELECT:
        case SqlParser.SET:
        case SqlParser.SHOW:
        case SqlParser.SIGNAL:
        case SqlParser.STACKED:
        case SqlParser.UNLOCK:
        case SqlParser.UPDATE:
        case SqlParser.USE:
        case SqlParser.DATE:
        case SqlParser.TIME:
        case SqlParser.TIMESTAMP:
        case SqlParser.DATETIME:
        case SqlParser.YEAR:
        case SqlParser.TEXT:
        case SqlParser.ENUM:
        case SqlParser.SERIAL:
        case SqlParser.JSON_VALID:
        case SqlParser.JSON_SCHEMA_VALID:
        case SqlParser.COUNT:
        case SqlParser.POSITION:
        case SqlParser.ACCOUNT:
        case SqlParser.ACTION:
        case SqlParser.AFTER:
        case SqlParser.AGGREGATE:
        case SqlParser.ALGORITHM:
        case SqlParser.ANY:
        case SqlParser.AT:
        case SqlParser.AUTHORS:
        case SqlParser.AUTOCOMMIT:
        case SqlParser.AUTOEXTEND_SIZE:
        case SqlParser.AUTO_INCREMENT:
        case SqlParser.AVG_ROW_LENGTH:
        case SqlParser.BEGIN:
        case SqlParser.BINLOG:
        case SqlParser.BIT:
        case SqlParser.BLOCK:
        case SqlParser.BOOL:
        case SqlParser.BOOLEAN:
        case SqlParser.BTREE:
        case SqlParser.CACHE:
        case SqlParser.CASCADED:
        case SqlParser.CHAIN:
        case SqlParser.CHANGED:
        case SqlParser.CHANNEL:
        case SqlParser.CHECKSUM:
        case SqlParser.PAGE_CHECKSUM:
        case SqlParser.CIPHER:
        case SqlParser.CLASS_ORIGIN:
        case SqlParser.CLIENT:
        case SqlParser.CLOSE:
        case SqlParser.COALESCE:
        case SqlParser.CODE:
        case SqlParser.COLUMNS:
        case SqlParser.COLUMN_FORMAT:
        case SqlParser.COLUMN_NAME:
        case SqlParser.COMMENT:
        case SqlParser.COMMIT:
        case SqlParser.COMPACT:
        case SqlParser.COMPLETION:
        case SqlParser.COMPRESSED:
        case SqlParser.COMPRESSION:
        case SqlParser.CONCURRENT:
        case SqlParser.CONNECTION:
        case SqlParser.CONSISTENT:
        case SqlParser.CONSTRAINT_CATALOG:
        case SqlParser.CONSTRAINT_SCHEMA:
        case SqlParser.CONSTRAINT_NAME:
        case SqlParser.CONTAINS:
        case SqlParser.CONTEXT:
        case SqlParser.CONTRIBUTORS:
        case SqlParser.COPY:
        case SqlParser.CPU:
        case SqlParser.CURSOR_NAME:
        case SqlParser.DATA:
        case SqlParser.DATAFILE:
        case SqlParser.DEALLOCATE:
        case SqlParser.DEFAULT_AUTH:
        case SqlParser.DEFINER:
        case SqlParser.DELAY_KEY_WRITE:
        case SqlParser.DES_KEY_FILE:
        case SqlParser.DIRECTORY:
        case SqlParser.DISABLE:
        case SqlParser.DISCARD:
        case SqlParser.DISK:
        case SqlParser.DO:
        case SqlParser.DUMPFILE:
        case SqlParser.DUPLICATE:
        case SqlParser.DYNAMIC:
        case SqlParser.ENABLE:
        case SqlParser.ENCRYPTION:
        case SqlParser.END:
        case SqlParser.ENDS:
        case SqlParser.ENGINE:
        case SqlParser.ENGINES:
        case SqlParser.ERROR:
        case SqlParser.ERRORS:
        case SqlParser.ESCAPE:
        case SqlParser.EVEN:
        case SqlParser.EVENT:
        case SqlParser.EVENTS:
        case SqlParser.EVERY:
        case SqlParser.EXCHANGE:
        case SqlParser.EXCLUSIVE:
        case SqlParser.EXPIRE:
        case SqlParser.EXPORT:
        case SqlParser.EXTENDED:
        case SqlParser.EXTENT_SIZE:
        case SqlParser.FAST:
        case SqlParser.FAULTS:
        case SqlParser.FIELDS:
        case SqlParser.FILE_BLOCK_SIZE:
        case SqlParser.FILTER:
        case SqlParser.FIRST:
        case SqlParser.FIXED:
        case SqlParser.FLUSH:
        case SqlParser.FOLLOWS:
        case SqlParser.FOUND:
        case SqlParser.FULL:
        case SqlParser.FUNCTION:
        case SqlParser.GENERAL:
        case SqlParser.GLOBAL:
        case SqlParser.GRANTS:
        case SqlParser.GROUP_REPLICATION:
        case SqlParser.HANDLER:
        case SqlParser.HASH:
        case SqlParser.HELP:
        case SqlParser.HOST:
        case SqlParser.HOSTS:
        case SqlParser.IDENTIFIED:
        case SqlParser.IGNORE_SERVER_IDS:
        case SqlParser.IMPORT:
        case SqlParser.INDEXES:
        case SqlParser.INITIAL_SIZE:
        case SqlParser.INPLACE:
        case SqlParser.INSERT_METHOD:
        case SqlParser.INSTALL:
        case SqlParser.INSTANCE:
        case SqlParser.INVISIBLE:
        case SqlParser.INVOKER:
        case SqlParser.IO:
        case SqlParser.IO_THREAD:
        case SqlParser.IPC:
        case SqlParser.ISOLATION:
        case SqlParser.ISSUER:
        case SqlParser.JSON:
        case SqlParser.KEY_BLOCK_SIZE:
        case SqlParser.LANGUAGE:
        case SqlParser.LAST:
        case SqlParser.LEAVES:
        case SqlParser.LESS:
        case SqlParser.LEVEL:
        case SqlParser.LIST:
        case SqlParser.LOCAL:
        case SqlParser.LOGFILE:
        case SqlParser.LOGS:
        case SqlParser.MASTER:
        case SqlParser.MASTER_AUTO_POSITION:
        case SqlParser.MASTER_CONNECT_RETRY:
        case SqlParser.MASTER_DELAY:
        case SqlParser.MASTER_HEARTBEAT_PERIOD:
        case SqlParser.MASTER_HOST:
        case SqlParser.MASTER_LOG_FILE:
        case SqlParser.MASTER_LOG_POS:
        case SqlParser.MASTER_PASSWORD:
        case SqlParser.MASTER_PORT:
        case SqlParser.MASTER_RETRY_COUNT:
        case SqlParser.MASTER_SSL:
        case SqlParser.MASTER_SSL_CA:
        case SqlParser.MASTER_SSL_CAPATH:
        case SqlParser.MASTER_SSL_CERT:
        case SqlParser.MASTER_SSL_CIPHER:
        case SqlParser.MASTER_SSL_CRL:
        case SqlParser.MASTER_SSL_CRLPATH:
        case SqlParser.MASTER_SSL_KEY:
        case SqlParser.MASTER_TLS_VERSION:
        case SqlParser.MASTER_USER:
        case SqlParser.MAX_CONNECTIONS_PER_HOUR:
        case SqlParser.MAX_QUERIES_PER_HOUR:
        case SqlParser.MAX_ROWS:
        case SqlParser.MAX_SIZE:
        case SqlParser.MAX_UPDATES_PER_HOUR:
        case SqlParser.MAX_USER_CONNECTIONS:
        case SqlParser.MEDIUM:
        case SqlParser.MERGE:
        case SqlParser.MESSAGE_TEXT:
        case SqlParser.MID:
        case SqlParser.MIGRATE:
        case SqlParser.MIN_ROWS:
        case SqlParser.MODE:
        case SqlParser.MODIFY:
        case SqlParser.MUTEX:
        case SqlParser.MYSQL:
        case SqlParser.MYSQL_ERRNO:
        case SqlParser.NAME:
        case SqlParser.NAMES:
        case SqlParser.NCHAR:
        case SqlParser.NEVER:
        case SqlParser.NEXT:
        case SqlParser.NO:
        case SqlParser.NODEGROUP:
        case SqlParser.NONE:
        case SqlParser.OFFLINE:
        case SqlParser.OFFSET:
        case SqlParser.OJ:
        case SqlParser.OLD_PASSWORD:
        case SqlParser.ONE:
        case SqlParser.ONLINE:
        case SqlParser.ONLY:
        case SqlParser.OPEN:
        case SqlParser.OPTIMIZER_COSTS:
        case SqlParser.OPTIONS:
        case SqlParser.OWNER:
        case SqlParser.PACK_KEYS:
        case SqlParser.PAGE:
        case SqlParser.PARSER:
        case SqlParser.PARTIAL:
        case SqlParser.PARTITIONING:
        case SqlParser.PARTITIONS:
        case SqlParser.PASSWORD:
        case SqlParser.PHASE:
        case SqlParser.PLUGIN:
        case SqlParser.PLUGIN_DIR:
        case SqlParser.PLUGINS:
        case SqlParser.PORT:
        case SqlParser.PRECEDES:
        case SqlParser.PREPARE:
        case SqlParser.PRESERVE:
        case SqlParser.PREV:
        case SqlParser.PROCESSLIST:
        case SqlParser.PROFILE:
        case SqlParser.PROFILES:
        case SqlParser.PROXY:
        case SqlParser.QUERY:
        case SqlParser.QUICK:
        case SqlParser.REBUILD:
        case SqlParser.RECOVER:
        case SqlParser.REDO_BUFFER_SIZE:
        case SqlParser.REDUNDANT:
        case SqlParser.RELAY:
        case SqlParser.RELAY_LOG_FILE:
        case SqlParser.RELAY_LOG_POS:
        case SqlParser.RELAYLOG:
        case SqlParser.REMOVE:
        case SqlParser.REORGANIZE:
        case SqlParser.REPAIR:
        case SqlParser.REPLICATE_DO_DB:
        case SqlParser.REPLICATE_DO_TABLE:
        case SqlParser.REPLICATE_IGNORE_DB:
        case SqlParser.REPLICATE_IGNORE_TABLE:
        case SqlParser.REPLICATE_REWRITE_DB:
        case SqlParser.REPLICATE_WILD_DO_TABLE:
        case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
        case SqlParser.REPLICATION:
        case SqlParser.RESET:
        case SqlParser.RESUME:
        case SqlParser.RETURNED_SQLSTATE:
        case SqlParser.RETURNS:
        case SqlParser.ROLE:
        case SqlParser.ROLLBACK:
        case SqlParser.ROLLUP:
        case SqlParser.ROTATE:
        case SqlParser.ROW:
        case SqlParser.ROWS:
        case SqlParser.ROW_FORMAT:
        case SqlParser.SAVEPOINT:
        case SqlParser.SCHEDULE:
        case SqlParser.SECURITY:
        case SqlParser.SERVER:
        case SqlParser.SESSION:
        case SqlParser.SHARE:
        case SqlParser.SHARED:
        case SqlParser.SIGNED:
        case SqlParser.SIMPLE:
        case SqlParser.SLAVE:
        case SqlParser.SLOW:
        case SqlParser.SNAPSHOT:
        case SqlParser.SOCKET:
        case SqlParser.SOME:
        case SqlParser.SONAME:
        case SqlParser.SOUNDS:
        case SqlParser.SOURCE:
        case SqlParser.SQL_AFTER_GTIDS:
        case SqlParser.SQL_AFTER_MTS_GAPS:
        case SqlParser.SQL_BEFORE_GTIDS:
        case SqlParser.SQL_BUFFER_RESULT:
        case SqlParser.SQL_CACHE:
        case SqlParser.SQL_NO_CACHE:
        case SqlParser.SQL_THREAD:
        case SqlParser.START:
        case SqlParser.STARTS:
        case SqlParser.STATS_AUTO_RECALC:
        case SqlParser.STATS_PERSISTENT:
        case SqlParser.STATS_SAMPLE_PAGES:
        case SqlParser.STATUS:
        case SqlParser.STOP:
        case SqlParser.STORAGE:
        case SqlParser.STRING:
        case SqlParser.SUBCLASS_ORIGIN:
        case SqlParser.SUBJECT:
        case SqlParser.SUBPARTITION:
        case SqlParser.SUBPARTITIONS:
        case SqlParser.SUSPEND:
        case SqlParser.SWAPS:
        case SqlParser.SWITCHES:
        case SqlParser.TABLE_NAME:
        case SqlParser.TABLESPACE:
        case SqlParser.TEMPORARY:
        case SqlParser.TEMPTABLE:
        case SqlParser.THAN:
        case SqlParser.TRADITIONAL:
        case SqlParser.TRANSACTION:
        case SqlParser.TRANSACTIONAL:
        case SqlParser.TRIGGERS:
        case SqlParser.TRUNCATE:
        case SqlParser.UNDEFINED:
        case SqlParser.UNDOFILE:
        case SqlParser.UNDO_BUFFER_SIZE:
        case SqlParser.UNINSTALL:
        case SqlParser.UNKNOWN:
        case SqlParser.UNTIL:
        case SqlParser.UPGRADE:
        case SqlParser.USER:
        case SqlParser.USE_FRM:
        case SqlParser.USER_RESOURCES:
        case SqlParser.VALIDATION:
        case SqlParser.VALUE:
        case SqlParser.VARIABLES:
        case SqlParser.VIEW:
        case SqlParser.VISIBLE:
        case SqlParser.WAIT:
        case SqlParser.WARNINGS:
        case SqlParser.WITHOUT:
        case SqlParser.WORK:
        case SqlParser.WRAPPER:
        case SqlParser.X509:
        case SqlParser.XA:
        case SqlParser.XML:
        case SqlParser.INTERNAL:
        case SqlParser.QUARTER:
        case SqlParser.MONTH:
        case SqlParser.DAY:
        case SqlParser.HOUR:
        case SqlParser.MINUTE:
        case SqlParser.WEEK:
        case SqlParser.SECOND:
        case SqlParser.MICROSECOND:
        case SqlParser.TABLES:
        case SqlParser.ROUTINE:
        case SqlParser.EXECUTE:
        case SqlParser.FILE:
        case SqlParser.PROCESS:
        case SqlParser.RELOAD:
        case SqlParser.SHUTDOWN:
        case SqlParser.SUPER:
        case SqlParser.PRIVILEGES:
        case SqlParser.AUDIT_ADMIN:
        case SqlParser.BACKUP_ADMIN:
        case SqlParser.BINLOG_ADMIN:
        case SqlParser.BINLOG_ENCRYPTION_ADMIN:
        case SqlParser.CLONE_ADMIN:
        case SqlParser.CONNECTION_ADMIN:
        case SqlParser.ENCRYPTION_KEY_ADMIN:
        case SqlParser.FIREWALL_ADMIN:
        case SqlParser.FIREWALL_USER:
        case SqlParser.GROUP_REPLICATION_ADMIN:
        case SqlParser.INNODB_REDO_LOG_ARCHIVE:
        case SqlParser.NDB_STORED_USER:
        case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
        case SqlParser.REPLICATION_APPLIER:
        case SqlParser.REPLICATION_SLAVE_ADMIN:
        case SqlParser.RESOURCE_GROUP_ADMIN:
        case SqlParser.RESOURCE_GROUP_USER:
        case SqlParser.ROLE_ADMIN:
        case SqlParser.SESSION_VARIABLES_ADMIN:
        case SqlParser.SET_USER_ID:
        case SqlParser.SHOW_ROUTINE:
        case SqlParser.SYSTEM_VARIABLES_ADMIN:
        case SqlParser.TABLE_ENCRYPTION_ADMIN:
        case SqlParser.VERSION_TOKEN_ADMIN:
        case SqlParser.XA_RECOVER_ADMIN:
        case SqlParser.ARMSCII8:
        case SqlParser.ASCII:
        case SqlParser.BIG5:
        case SqlParser.CP1250:
        case SqlParser.CP1251:
        case SqlParser.CP1256:
        case SqlParser.CP1257:
        case SqlParser.CP850:
        case SqlParser.CP852:
        case SqlParser.CP866:
        case SqlParser.CP932:
        case SqlParser.DEC8:
        case SqlParser.EUCJPMS:
        case SqlParser.EUCKR:
        case SqlParser.GB2312:
        case SqlParser.GBK:
        case SqlParser.GEOSTD8:
        case SqlParser.GREEK:
        case SqlParser.HEBREW:
        case SqlParser.HP8:
        case SqlParser.KEYBCS2:
        case SqlParser.KOI8R:
        case SqlParser.KOI8U:
        case SqlParser.LATIN1:
        case SqlParser.LATIN2:
        case SqlParser.LATIN5:
        case SqlParser.LATIN7:
        case SqlParser.MACCE:
        case SqlParser.MACROMAN:
        case SqlParser.SJIS:
        case SqlParser.SWE7:
        case SqlParser.TIS620:
        case SqlParser.UCS2:
        case SqlParser.UJIS:
        case SqlParser.UTF16:
        case SqlParser.UTF16LE:
        case SqlParser.UTF32:
        case SqlParser.UTF8:
        case SqlParser.UTF8MB3:
        case SqlParser.UTF8MB4:
        case SqlParser.ARCHIVE:
        case SqlParser.BLACKHOLE:
        case SqlParser.CSV:
        case SqlParser.FEDERATED:
        case SqlParser.INNODB:
        case SqlParser.MEMORY:
        case SqlParser.MRG_MYISAM:
        case SqlParser.MYISAM:
        case SqlParser.NDB:
        case SqlParser.NDBCLUSTER:
        case SqlParser.PERFORMANCE_SCHEMA:
        case SqlParser.TOKUDB:
        case SqlParser.REPEATABLE:
        case SqlParser.COMMITTED:
        case SqlParser.UNCOMMITTED:
        case SqlParser.SERIALIZABLE:
        case SqlParser.GEOMETRYCOLLECTION:
        case SqlParser.LINESTRING:
        case SqlParser.MULTILINESTRING:
        case SqlParser.MULTIPOINT:
        case SqlParser.MULTIPOLYGON:
        case SqlParser.POINT:
        case SqlParser.POLYGON:
        case SqlParser.ABS:
        case SqlParser.ACOS:
        case SqlParser.ADDDATE:
        case SqlParser.ADDTIME:
        case SqlParser.AES_DECRYPT:
        case SqlParser.AES_ENCRYPT:
        case SqlParser.AREA:
        case SqlParser.ASBINARY:
        case SqlParser.ASIN:
        case SqlParser.ASTEXT:
        case SqlParser.ASWKB:
        case SqlParser.ASWKT:
        case SqlParser.ASYMMETRIC_DECRYPT:
        case SqlParser.ASYMMETRIC_DERIVE:
        case SqlParser.ASYMMETRIC_ENCRYPT:
        case SqlParser.ASYMMETRIC_SIGN:
        case SqlParser.ASYMMETRIC_VERIFY:
        case SqlParser.ATAN:
        case SqlParser.ATAN2:
        case SqlParser.BENCHMARK:
        case SqlParser.BIN:
        case SqlParser.BIT_COUNT:
        case SqlParser.BIT_LENGTH:
        case SqlParser.BUFFER:
        case SqlParser.CATALOG_NAME:
        case SqlParser.CEIL:
        case SqlParser.CEILING:
        case SqlParser.CENTROID:
        case SqlParser.CHARACTER_LENGTH:
        case SqlParser.CHARSET:
        case SqlParser.CHAR_LENGTH:
        case SqlParser.COERCIBILITY:
        case SqlParser.COLLATION:
        case SqlParser.COMPRESS:
        case SqlParser.CONCAT:
        case SqlParser.CONCAT_WS:
        case SqlParser.CONNECTION_ID:
        case SqlParser.CONV:
        case SqlParser.CONVERT_TZ:
        case SqlParser.COS:
        case SqlParser.COT:
        case SqlParser.CRC32:
        case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
        case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
        case SqlParser.CREATE_DH_PARAMETERS:
        case SqlParser.CREATE_DIGEST:
        case SqlParser.CROSSES:
        case SqlParser.DATEDIFF:
        case SqlParser.DATE_FORMAT:
        case SqlParser.DAYNAME:
        case SqlParser.DAYOFMONTH:
        case SqlParser.DAYOFWEEK:
        case SqlParser.DAYOFYEAR:
        case SqlParser.DECODE:
        case SqlParser.DEGREES:
        case SqlParser.DES_DECRYPT:
        case SqlParser.DES_ENCRYPT:
        case SqlParser.DIMENSION:
        case SqlParser.DISJOINT:
        case SqlParser.ELT:
        case SqlParser.ENCODE:
        case SqlParser.ENCRYPT:
        case SqlParser.ENDPOINT:
        case SqlParser.ENVELOPE:
        case SqlParser.EQUALS:
        case SqlParser.EXP:
        case SqlParser.EXPORT_SET:
        case SqlParser.EXTERIORRING:
        case SqlParser.EXTRACTVALUE:
        case SqlParser.FIELD:
        case SqlParser.FIND_IN_SET:
        case SqlParser.FLOOR:
        case SqlParser.FORMAT:
        case SqlParser.FOUND_ROWS:
        case SqlParser.FROM_BASE64:
        case SqlParser.FROM_DAYS:
        case SqlParser.FROM_UNIXTIME:
        case SqlParser.GEOMCOLLFROMTEXT:
        case SqlParser.GEOMCOLLFROMWKB:
        case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.GEOMETRYFROMTEXT:
        case SqlParser.GEOMETRYFROMWKB:
        case SqlParser.GEOMETRYN:
        case SqlParser.GEOMETRYTYPE:
        case SqlParser.GEOMFROMTEXT:
        case SqlParser.GEOMFROMWKB:
        case SqlParser.GET_FORMAT:
        case SqlParser.GET_LOCK:
        case SqlParser.GLENGTH:
        case SqlParser.GREATEST:
        case SqlParser.GTID_SUBSET:
        case SqlParser.GTID_SUBTRACT:
        case SqlParser.HEX:
        case SqlParser.IFNULL:
        case SqlParser.INET6_ATON:
        case SqlParser.INET6_NTOA:
        case SqlParser.INET_ATON:
        case SqlParser.INET_NTOA:
        case SqlParser.INSTR:
        case SqlParser.INTERIORRINGN:
        case SqlParser.INTERSECTS:
        case SqlParser.ISCLOSED:
        case SqlParser.ISEMPTY:
        case SqlParser.ISNULL:
        case SqlParser.ISSIMPLE:
        case SqlParser.IS_FREE_LOCK:
        case SqlParser.IS_IPV4:
        case SqlParser.IS_IPV4_COMPAT:
        case SqlParser.IS_IPV4_MAPPED:
        case SqlParser.IS_IPV6:
        case SqlParser.IS_USED_LOCK:
        case SqlParser.LAST_INSERT_ID:
        case SqlParser.LCASE:
        case SqlParser.LEAST:
        case SqlParser.LENGTH:
        case SqlParser.LINEFROMTEXT:
        case SqlParser.LINEFROMWKB:
        case SqlParser.LINESTRINGFROMTEXT:
        case SqlParser.LINESTRINGFROMWKB:
        case SqlParser.LN:
        case SqlParser.LOAD_FILE:
        case SqlParser.LOCATE:
        case SqlParser.LOG:
        case SqlParser.LOG10:
        case SqlParser.LOG2:
        case SqlParser.LOWER:
        case SqlParser.LPAD:
        case SqlParser.LTRIM:
        case SqlParser.MAKEDATE:
        case SqlParser.MAKETIME:
        case SqlParser.MAKE_SET:
        case SqlParser.MASTER_POS_WAIT:
        case SqlParser.MBRCONTAINS:
        case SqlParser.MBRDISJOINT:
        case SqlParser.MBREQUAL:
        case SqlParser.MBRINTERSECTS:
        case SqlParser.MBROVERLAPS:
        case SqlParser.MBRTOUCHES:
        case SqlParser.MBRWITHIN:
        case SqlParser.MD5:
        case SqlParser.MLINEFROMTEXT:
        case SqlParser.MLINEFROMWKB:
        case SqlParser.MONTHNAME:
        case SqlParser.MPOINTFROMTEXT:
        case SqlParser.MPOINTFROMWKB:
        case SqlParser.MPOLYFROMTEXT:
        case SqlParser.MPOLYFROMWKB:
        case SqlParser.MULTILINESTRINGFROMTEXT:
        case SqlParser.MULTILINESTRINGFROMWKB:
        case SqlParser.MULTIPOINTFROMTEXT:
        case SqlParser.MULTIPOINTFROMWKB:
        case SqlParser.MULTIPOLYGONFROMTEXT:
        case SqlParser.MULTIPOLYGONFROMWKB:
        case SqlParser.NAME_CONST:
        case SqlParser.NULLIF:
        case SqlParser.NUMGEOMETRIES:
        case SqlParser.NUMINTERIORRINGS:
        case SqlParser.NUMPOINTS:
        case SqlParser.OCT:
        case SqlParser.OCTET_LENGTH:
        case SqlParser.ORD:
        case SqlParser.OVERLAPS:
        case SqlParser.PERIOD_ADD:
        case SqlParser.PERIOD_DIFF:
        case SqlParser.PI:
        case SqlParser.POINTFROMTEXT:
        case SqlParser.POINTFROMWKB:
        case SqlParser.POINTN:
        case SqlParser.POLYFROMTEXT:
        case SqlParser.POLYFROMWKB:
        case SqlParser.POLYGONFROMTEXT:
        case SqlParser.POLYGONFROMWKB:
        case SqlParser.POW:
        case SqlParser.POWER:
        case SqlParser.QUOTE:
        case SqlParser.RADIANS:
        case SqlParser.RAND:
        case SqlParser.RANDOM_BYTES:
        case SqlParser.RELEASE_LOCK:
        case SqlParser.REVERSE:
        case SqlParser.ROUND:
        case SqlParser.ROW_COUNT:
        case SqlParser.RPAD:
        case SqlParser.RTRIM:
        case SqlParser.SEC_TO_TIME:
        case SqlParser.SESSION_USER:
        case SqlParser.SHA:
        case SqlParser.SHA1:
        case SqlParser.SHA2:
        case SqlParser.SCHEMA_NAME:
        case SqlParser.SIGN:
        case SqlParser.SIN:
        case SqlParser.SLEEP:
        case SqlParser.SOUNDEX:
        case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
        case SqlParser.SQRT:
        case SqlParser.SRID:
        case SqlParser.STARTPOINT:
        case SqlParser.STRCMP:
        case SqlParser.STR_TO_DATE:
        case SqlParser.ST_AREA:
        case SqlParser.ST_ASBINARY:
        case SqlParser.ST_ASTEXT:
        case SqlParser.ST_ASWKB:
        case SqlParser.ST_ASWKT:
        case SqlParser.ST_BUFFER:
        case SqlParser.ST_CENTROID:
        case SqlParser.ST_CONTAINS:
        case SqlParser.ST_CROSSES:
        case SqlParser.ST_DIFFERENCE:
        case SqlParser.ST_DIMENSION:
        case SqlParser.ST_DISJOINT:
        case SqlParser.ST_DISTANCE:
        case SqlParser.ST_ENDPOINT:
        case SqlParser.ST_ENVELOPE:
        case SqlParser.ST_EQUALS:
        case SqlParser.ST_EXTERIORRING:
        case SqlParser.ST_GEOMCOLLFROMTEXT:
        case SqlParser.ST_GEOMCOLLFROMTXT:
        case SqlParser.ST_GEOMCOLLFROMWKB:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.ST_GEOMETRYFROMTEXT:
        case SqlParser.ST_GEOMETRYFROMWKB:
        case SqlParser.ST_GEOMETRYN:
        case SqlParser.ST_GEOMETRYTYPE:
        case SqlParser.ST_GEOMFROMTEXT:
        case SqlParser.ST_GEOMFROMWKB:
        case SqlParser.ST_INTERIORRINGN:
        case SqlParser.ST_INTERSECTION:
        case SqlParser.ST_INTERSECTS:
        case SqlParser.ST_ISCLOSED:
        case SqlParser.ST_ISEMPTY:
        case SqlParser.ST_ISSIMPLE:
        case SqlParser.ST_LINEFROMTEXT:
        case SqlParser.ST_LINEFROMWKB:
        case SqlParser.ST_LINESTRINGFROMTEXT:
        case SqlParser.ST_LINESTRINGFROMWKB:
        case SqlParser.ST_NUMGEOMETRIES:
        case SqlParser.ST_NUMINTERIORRING:
        case SqlParser.ST_NUMINTERIORRINGS:
        case SqlParser.ST_NUMPOINTS:
        case SqlParser.ST_OVERLAPS:
        case SqlParser.ST_POINTFROMTEXT:
        case SqlParser.ST_POINTFROMWKB:
        case SqlParser.ST_POINTN:
        case SqlParser.ST_POLYFROMTEXT:
        case SqlParser.ST_POLYFROMWKB:
        case SqlParser.ST_POLYGONFROMTEXT:
        case SqlParser.ST_POLYGONFROMWKB:
        case SqlParser.ST_SRID:
        case SqlParser.ST_STARTPOINT:
        case SqlParser.ST_SYMDIFFERENCE:
        case SqlParser.ST_TOUCHES:
        case SqlParser.ST_UNION:
        case SqlParser.ST_WITHIN:
        case SqlParser.ST_X:
        case SqlParser.ST_Y:
        case SqlParser.SUBDATE:
        case SqlParser.SUBSTRING_INDEX:
        case SqlParser.SUBTIME:
        case SqlParser.SYSTEM_USER:
        case SqlParser.TAN:
        case SqlParser.TIMEDIFF:
        case SqlParser.TIMESTAMPADD:
        case SqlParser.TIMESTAMPDIFF:
        case SqlParser.TIME_FORMAT:
        case SqlParser.TIME_TO_SEC:
        case SqlParser.TOUCHES:
        case SqlParser.TO_BASE64:
        case SqlParser.TO_DAYS:
        case SqlParser.TO_SECONDS:
        case SqlParser.UCASE:
        case SqlParser.UNCOMPRESS:
        case SqlParser.UNCOMPRESSED_LENGTH:
        case SqlParser.UNHEX:
        case SqlParser.UNIX_TIMESTAMP:
        case SqlParser.UPDATEXML:
        case SqlParser.UPPER:
        case SqlParser.UUID:
        case SqlParser.UUID_SHORT:
        case SqlParser.VALIDATE_PASSWORD_STRENGTH:
        case SqlParser.VERSION:
        case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
        case SqlParser.WEEKDAY:
        case SqlParser.WEEKOFYEAR:
        case SqlParser.WEIGHT_STRING:
        case SqlParser.WITHIN:
        case SqlParser.YEARWEEK:
        case SqlParser.Y_FUNCTION:
        case SqlParser.X_FUNCTION:
        case SqlParser.LR_BRACKET:
        case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
        case SqlParser.STRING_LITERAL:
        case SqlParser.ID:
        case SqlParser.REVERSE_QUOTE_ID:
            this.state = 988;
            this.routineBody();
            break;
        case SqlParser.RETURN:
            this.state = 989;
            this.returnStatement();
            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 CreateServerContext(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_createServer;
    this.wrapperName = null; // Token
    return this;
}

CreateServerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateServerContext.prototype.constructor = CreateServerContext;

CreateServerContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CreateServerContext.prototype.SERVER = function() {
    return this.getToken(SqlParser.SERVER, 0);
};

CreateServerContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

CreateServerContext.prototype.FOREIGN = function() {
    return this.getToken(SqlParser.FOREIGN, 0);
};

CreateServerContext.prototype.DATA = function() {
    return this.getToken(SqlParser.DATA, 0);
};

CreateServerContext.prototype.WRAPPER = function() {
    return this.getToken(SqlParser.WRAPPER, 0);
};

CreateServerContext.prototype.OPTIONS = function() {
    return this.getToken(SqlParser.OPTIONS, 0);
};

CreateServerContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

CreateServerContext.prototype.serverOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ServerOptionContext);
    } else {
        return this.getTypedRuleContext(ServerOptionContext,i);
    }
};

CreateServerContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

CreateServerContext.prototype.MYSQL = function() {
    return this.getToken(SqlParser.MYSQL, 0);
};

CreateServerContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

CreateServerContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


CreateServerContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateServer(this);
	}
};

CreateServerContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateServer(this);
	}
};

CreateServerContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateServer(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CreateServerContext = CreateServerContext;

SqlParser.prototype.createServer = function() {

    var localctx = new CreateServerContext(this, this._ctx, this.state);
    this.enterRule(localctx, 38, SqlParser.RULE_createServer);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 992;
        this.match(SqlParser.CREATE);
        this.state = 993;
        this.match(SqlParser.SERVER);
        this.state = 994;
        this.uid();
        this.state = 995;
        this.match(SqlParser.FOREIGN);
        this.state = 996;
        this.match(SqlParser.DATA);
        this.state = 997;
        this.match(SqlParser.WRAPPER);
        this.state = 998;
        localctx.wrapperName = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.MYSQL || _la===SqlParser.STRING_LITERAL)) {
            localctx.wrapperName = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 999;
        this.match(SqlParser.OPTIONS);
        this.state = 1000;
        this.match(SqlParser.LR_BRACKET);
        this.state = 1001;
        this.serverOption();
        this.state = 1006;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 1002;
            this.match(SqlParser.COMMA);
            this.state = 1003;
            this.serverOption();
            this.state = 1008;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 1009;
        this.match(SqlParser.RR_BRACKET);
    } 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 CreateTableContext(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_createTable;
    return this;
}

CreateTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateTableContext.prototype.constructor = CreateTableContext;


 
CreateTableContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function CopyCreateTableContext(parser, ctx) {
	CreateTableContext.call(this, parser);
    this.parenthesisTable = null; // TableNameContext;
    CreateTableContext.prototype.copyFrom.call(this, ctx);
    return this;
}

CopyCreateTableContext.prototype = Object.create(CreateTableContext.prototype);
CopyCreateTableContext.prototype.constructor = CopyCreateTableContext;

SqlParser.CopyCreateTableContext = CopyCreateTableContext;

CopyCreateTableContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CopyCreateTableContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

CopyCreateTableContext.prototype.tableName = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TableNameContext);
    } else {
        return this.getTypedRuleContext(TableNameContext,i);
    }
};

CopyCreateTableContext.prototype.LIKE = function() {
    return this.getToken(SqlParser.LIKE, 0);
};

CopyCreateTableContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

CopyCreateTableContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

CopyCreateTableContext.prototype.TEMPORARY = function() {
    return this.getToken(SqlParser.TEMPORARY, 0);
};

CopyCreateTableContext.prototype.ifNotExists = function() {
    return this.getTypedRuleContext(IfNotExistsContext,0);
};
CopyCreateTableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCopyCreateTable(this);
	}
};

CopyCreateTableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCopyCreateTable(this);
	}
};

CopyCreateTableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCopyCreateTable(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ColumnCreateTableContext(parser, ctx) {
	CreateTableContext.call(this, parser);
    CreateTableContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ColumnCreateTableContext.prototype = Object.create(CreateTableContext.prototype);
ColumnCreateTableContext.prototype.constructor = ColumnCreateTableContext;

SqlParser.ColumnCreateTableContext = ColumnCreateTableContext;

ColumnCreateTableContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

ColumnCreateTableContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

ColumnCreateTableContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

ColumnCreateTableContext.prototype.createDefinitions = function() {
    return this.getTypedRuleContext(CreateDefinitionsContext,0);
};

ColumnCreateTableContext.prototype.TEMPORARY = function() {
    return this.getToken(SqlParser.TEMPORARY, 0);
};

ColumnCreateTableContext.prototype.ifNotExists = function() {
    return this.getTypedRuleContext(IfNotExistsContext,0);
};

ColumnCreateTableContext.prototype.tableOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TableOptionContext);
    } else {
        return this.getTypedRuleContext(TableOptionContext,i);
    }
};

ColumnCreateTableContext.prototype.partitionDefinitions = function() {
    return this.getTypedRuleContext(PartitionDefinitionsContext,0);
};

ColumnCreateTableContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

ColumnCreateTableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterColumnCreateTable(this);
	}
};

ColumnCreateTableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitColumnCreateTable(this);
	}
};

ColumnCreateTableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitColumnCreateTable(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function QueryCreateTableContext(parser, ctx) {
	CreateTableContext.call(this, parser);
    this.keyViolate = null; // Token;
    CreateTableContext.prototype.copyFrom.call(this, ctx);
    return this;
}

QueryCreateTableContext.prototype = Object.create(CreateTableContext.prototype);
QueryCreateTableContext.prototype.constructor = QueryCreateTableContext;

SqlParser.QueryCreateTableContext = QueryCreateTableContext;

QueryCreateTableContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

QueryCreateTableContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

QueryCreateTableContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

QueryCreateTableContext.prototype.selectStatement = function() {
    return this.getTypedRuleContext(SelectStatementContext,0);
};

QueryCreateTableContext.prototype.TEMPORARY = function() {
    return this.getToken(SqlParser.TEMPORARY, 0);
};

QueryCreateTableContext.prototype.ifNotExists = function() {
    return this.getTypedRuleContext(IfNotExistsContext,0);
};

QueryCreateTableContext.prototype.createDefinitions = function() {
    return this.getTypedRuleContext(CreateDefinitionsContext,0);
};

QueryCreateTableContext.prototype.tableOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TableOptionContext);
    } else {
        return this.getTypedRuleContext(TableOptionContext,i);
    }
};

QueryCreateTableContext.prototype.partitionDefinitions = function() {
    return this.getTypedRuleContext(PartitionDefinitionsContext,0);
};

QueryCreateTableContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};

QueryCreateTableContext.prototype.IGNORE = function() {
    return this.getToken(SqlParser.IGNORE, 0);
};

QueryCreateTableContext.prototype.REPLACE = function() {
    return this.getToken(SqlParser.REPLACE, 0);
};

QueryCreateTableContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

QueryCreateTableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterQueryCreateTable(this);
	}
};

QueryCreateTableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitQueryCreateTable(this);
	}
};

QueryCreateTableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitQueryCreateTable(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.CreateTableContext = CreateTableContext;

SqlParser.prototype.createTable = function() {

    var localctx = new CreateTableContext(this, this._ctx, this.state);
    this.enterRule(localctx, 40, SqlParser.RULE_createTable);
    var _la = 0; // Token type
    try {
        this.state = 1089;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,74,this._ctx);
        switch(la_) {
        case 1:
            localctx = new CopyCreateTableContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 1011;
            this.match(SqlParser.CREATE);
            this.state = 1013;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.TEMPORARY) {
                this.state = 1012;
                this.match(SqlParser.TEMPORARY);
            }

            this.state = 1015;
            this.match(SqlParser.TABLE);
            this.state = 1017;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.IF) {
                this.state = 1016;
                this.ifNotExists();
            }

            this.state = 1019;
            this.tableName();
            this.state = 1027;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.LIKE:
                this.state = 1020;
                this.match(SqlParser.LIKE);
                this.state = 1021;
                this.tableName();
                break;
            case SqlParser.LR_BRACKET:
                this.state = 1022;
                this.match(SqlParser.LR_BRACKET);
                this.state = 1023;
                this.match(SqlParser.LIKE);
                this.state = 1024;
                localctx.parenthesisTable = this.tableName();
                this.state = 1025;
                this.match(SqlParser.RR_BRACKET);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;

        case 2:
            localctx = new QueryCreateTableContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 1029;
            this.match(SqlParser.CREATE);
            this.state = 1031;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.TEMPORARY) {
                this.state = 1030;
                this.match(SqlParser.TEMPORARY);
            }

            this.state = 1033;
            this.match(SqlParser.TABLE);
            this.state = 1035;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.IF) {
                this.state = 1034;
                this.ifNotExists();
            }

            this.state = 1037;
            this.tableName();
            this.state = 1039;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,61,this._ctx);
            if(la_===1) {
                this.state = 1038;
                this.createDefinitions();

            }
            this.state = 1051;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(((((_la - 22)) & ~0x1f) == 0 && ((1 << (_la - 22)) & ((1 << (SqlParser.CHARACTER - 22)) | (1 << (SqlParser.COLLATE - 22)) | (1 << (SqlParser.DEFAULT - 22)))) !== 0) || _la===SqlParser.INDEX || _la===SqlParser.UNION || ((((_la - 280)) & ~0x1f) == 0 && ((1 << (_la - 280)) & ((1 << (SqlParser.AUTO_INCREMENT - 280)) | (1 << (SqlParser.AVG_ROW_LENGTH - 280)) | (1 << (SqlParser.CHECKSUM - 280)) | (1 << (SqlParser.PAGE_CHECKSUM - 280)) | (1 << (SqlParser.COMMENT - 280)) | (1 << (SqlParser.COMPRESSION - 280)))) !== 0) || ((((_la - 312)) & ~0x1f) == 0 && ((1 << (_la - 312)) & ((1 << (SqlParser.CONNECTION - 312)) | (1 << (SqlParser.DATA - 312)) | (1 << (SqlParser.DELAY_KEY_WRITE - 312)) | (1 << (SqlParser.ENCRYPTION - 312)) | (1 << (SqlParser.ENGINE - 312)))) !== 0) || _la===SqlParser.INSERT_METHOD || _la===SqlParser.KEY_BLOCK_SIZE || _la===SqlParser.MAX_ROWS || _la===SqlParser.MIN_ROWS || _la===SqlParser.PACK_KEYS || _la===SqlParser.PASSWORD || ((((_la - 513)) & ~0x1f) == 0 && ((1 << (_la - 513)) & ((1 << (SqlParser.ROW_FORMAT - 513)) | (1 << (SqlParser.STATS_AUTO_RECALC - 513)) | (1 << (SqlParser.STATS_PERSISTENT - 513)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 513)))) !== 0) || _la===SqlParser.STORAGE || _la===SqlParser.TABLESPACE || _la===SqlParser.CHARSET) {
                this.state = 1041;
                this.tableOption();
                this.state = 1048;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                while(((((_la - 22)) & ~0x1f) == 0 && ((1 << (_la - 22)) & ((1 << (SqlParser.CHARACTER - 22)) | (1 << (SqlParser.COLLATE - 22)) | (1 << (SqlParser.DEFAULT - 22)))) !== 0) || _la===SqlParser.INDEX || _la===SqlParser.UNION || ((((_la - 280)) & ~0x1f) == 0 && ((1 << (_la - 280)) & ((1 << (SqlParser.AUTO_INCREMENT - 280)) | (1 << (SqlParser.AVG_ROW_LENGTH - 280)) | (1 << (SqlParser.CHECKSUM - 280)) | (1 << (SqlParser.PAGE_CHECKSUM - 280)) | (1 << (SqlParser.COMMENT - 280)) | (1 << (SqlParser.COMPRESSION - 280)))) !== 0) || ((((_la - 312)) & ~0x1f) == 0 && ((1 << (_la - 312)) & ((1 << (SqlParser.CONNECTION - 312)) | (1 << (SqlParser.DATA - 312)) | (1 << (SqlParser.DELAY_KEY_WRITE - 312)) | (1 << (SqlParser.ENCRYPTION - 312)) | (1 << (SqlParser.ENGINE - 312)))) !== 0) || _la===SqlParser.INSERT_METHOD || _la===SqlParser.KEY_BLOCK_SIZE || _la===SqlParser.MAX_ROWS || _la===SqlParser.MIN_ROWS || _la===SqlParser.PACK_KEYS || _la===SqlParser.PASSWORD || ((((_la - 513)) & ~0x1f) == 0 && ((1 << (_la - 513)) & ((1 << (SqlParser.ROW_FORMAT - 513)) | (1 << (SqlParser.STATS_AUTO_RECALC - 513)) | (1 << (SqlParser.STATS_PERSISTENT - 513)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 513)))) !== 0) || _la===SqlParser.STORAGE || _la===SqlParser.TABLESPACE || _la===SqlParser.CHARSET || _la===SqlParser.COMMA) {
                    this.state = 1043;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    if(_la===SqlParser.COMMA) {
                        this.state = 1042;
                        this.match(SqlParser.COMMA);
                    }

                    this.state = 1045;
                    this.tableOption();
                    this.state = 1050;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                }
            }

            this.state = 1054;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.PARTITION) {
                this.state = 1053;
                this.partitionDefinitions();
            }

            this.state = 1057;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.IGNORE || _la===SqlParser.REPLACE) {
                this.state = 1056;
                localctx.keyViolate = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.IGNORE || _la===SqlParser.REPLACE)) {
                    localctx.keyViolate = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 1060;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.AS) {
                this.state = 1059;
                this.match(SqlParser.AS);
            }

            this.state = 1062;
            this.selectStatement();
            break;

        case 3:
            localctx = new ColumnCreateTableContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 1064;
            this.match(SqlParser.CREATE);
            this.state = 1066;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.TEMPORARY) {
                this.state = 1065;
                this.match(SqlParser.TEMPORARY);
            }

            this.state = 1068;
            this.match(SqlParser.TABLE);
            this.state = 1070;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.IF) {
                this.state = 1069;
                this.ifNotExists();
            }

            this.state = 1072;
            this.tableName();
            this.state = 1073;
            this.createDefinitions();
            this.state = 1084;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,72,this._ctx);
            if(la_===1) {
                this.state = 1074;
                this.tableOption();
                this.state = 1081;
                this._errHandler.sync(this);
                var _alt = this._interp.adaptivePredict(this._input,71,this._ctx)
                while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                    if(_alt===1) {
                        this.state = 1076;
                        this._errHandler.sync(this);
                        _la = this._input.LA(1);
                        if(_la===SqlParser.COMMA) {
                            this.state = 1075;
                            this.match(SqlParser.COMMA);
                        }

                        this.state = 1078;
                        this.tableOption(); 
                    }
                    this.state = 1083;
                    this._errHandler.sync(this);
                    _alt = this._interp.adaptivePredict(this._input,71,this._ctx);
                }


            }
            this.state = 1087;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.PARTITION) {
                this.state = 1086;
                this.partitionDefinitions();
            }

            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 CreateTablespaceInnodbContext(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_createTablespaceInnodb;
    this.datafile = null; // Token
    this.fileBlockSize = null; // FileSizeLiteralContext
    return this;
}

CreateTablespaceInnodbContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateTablespaceInnodbContext.prototype.constructor = CreateTablespaceInnodbContext;

CreateTablespaceInnodbContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CreateTablespaceInnodbContext.prototype.TABLESPACE = function() {
    return this.getToken(SqlParser.TABLESPACE, 0);
};

CreateTablespaceInnodbContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

CreateTablespaceInnodbContext.prototype.ADD = function() {
    return this.getToken(SqlParser.ADD, 0);
};

CreateTablespaceInnodbContext.prototype.DATAFILE = function() {
    return this.getToken(SqlParser.DATAFILE, 0);
};

CreateTablespaceInnodbContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

CreateTablespaceInnodbContext.prototype.FILE_BLOCK_SIZE = function() {
    return this.getToken(SqlParser.FILE_BLOCK_SIZE, 0);
};

CreateTablespaceInnodbContext.prototype.EQUAL_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EQUAL_SYMBOL);
    } else {
        return this.getToken(SqlParser.EQUAL_SYMBOL, i);
    }
};


CreateTablespaceInnodbContext.prototype.ENGINE = function() {
    return this.getToken(SqlParser.ENGINE, 0);
};

CreateTablespaceInnodbContext.prototype.engineName = function() {
    return this.getTypedRuleContext(EngineNameContext,0);
};

CreateTablespaceInnodbContext.prototype.fileSizeLiteral = function() {
    return this.getTypedRuleContext(FileSizeLiteralContext,0);
};

CreateTablespaceInnodbContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateTablespaceInnodb(this);
	}
};

CreateTablespaceInnodbContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateTablespaceInnodb(this);
	}
};

CreateTablespaceInnodbContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateTablespaceInnodb(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CreateTablespaceInnodbContext = CreateTablespaceInnodbContext;

SqlParser.prototype.createTablespaceInnodb = function() {

    var localctx = new CreateTablespaceInnodbContext(this, this._ctx, this.state);
    this.enterRule(localctx, 42, SqlParser.RULE_createTablespaceInnodb);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 1091;
        this.match(SqlParser.CREATE);
        this.state = 1092;
        this.match(SqlParser.TABLESPACE);
        this.state = 1093;
        this.uid();
        this.state = 1094;
        this.match(SqlParser.ADD);
        this.state = 1095;
        this.match(SqlParser.DATAFILE);
        this.state = 1096;
        localctx.datafile = this.match(SqlParser.STRING_LITERAL);
        this.state = 1100;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.FILE_BLOCK_SIZE) {
            this.state = 1097;
            this.match(SqlParser.FILE_BLOCK_SIZE);
            this.state = 1098;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 1099;
            localctx.fileBlockSize = this.fileSizeLiteral();
        }

        this.state = 1107;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ENGINE) {
            this.state = 1102;
            this.match(SqlParser.ENGINE);
            this.state = 1104;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1103;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1106;
            this.engineName();
        }

    } 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 CreateTablespaceNdbContext(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_createTablespaceNdb;
    this.datafile = null; // Token
    this.extentSize = null; // FileSizeLiteralContext
    this.initialSize = null; // FileSizeLiteralContext
    this.autoextendSize = null; // FileSizeLiteralContext
    this.maxSize = null; // FileSizeLiteralContext
    this.comment = null; // Token
    return this;
}

CreateTablespaceNdbContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateTablespaceNdbContext.prototype.constructor = CreateTablespaceNdbContext;

CreateTablespaceNdbContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CreateTablespaceNdbContext.prototype.TABLESPACE = function() {
    return this.getToken(SqlParser.TABLESPACE, 0);
};

CreateTablespaceNdbContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

CreateTablespaceNdbContext.prototype.ADD = function() {
    return this.getToken(SqlParser.ADD, 0);
};

CreateTablespaceNdbContext.prototype.DATAFILE = function() {
    return this.getToken(SqlParser.DATAFILE, 0);
};

CreateTablespaceNdbContext.prototype.USE = function() {
    return this.getToken(SqlParser.USE, 0);
};

CreateTablespaceNdbContext.prototype.LOGFILE = function() {
    return this.getToken(SqlParser.LOGFILE, 0);
};

CreateTablespaceNdbContext.prototype.GROUP = function() {
    return this.getToken(SqlParser.GROUP, 0);
};

CreateTablespaceNdbContext.prototype.ENGINE = function() {
    return this.getToken(SqlParser.ENGINE, 0);
};

CreateTablespaceNdbContext.prototype.engineName = function() {
    return this.getTypedRuleContext(EngineNameContext,0);
};

CreateTablespaceNdbContext.prototype.STRING_LITERAL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.STRING_LITERAL);
    } else {
        return this.getToken(SqlParser.STRING_LITERAL, i);
    }
};


CreateTablespaceNdbContext.prototype.EXTENT_SIZE = function() {
    return this.getToken(SqlParser.EXTENT_SIZE, 0);
};

CreateTablespaceNdbContext.prototype.INITIAL_SIZE = function() {
    return this.getToken(SqlParser.INITIAL_SIZE, 0);
};

CreateTablespaceNdbContext.prototype.AUTOEXTEND_SIZE = function() {
    return this.getToken(SqlParser.AUTOEXTEND_SIZE, 0);
};

CreateTablespaceNdbContext.prototype.MAX_SIZE = function() {
    return this.getToken(SqlParser.MAX_SIZE, 0);
};

CreateTablespaceNdbContext.prototype.NODEGROUP = function() {
    return this.getToken(SqlParser.NODEGROUP, 0);
};

CreateTablespaceNdbContext.prototype.WAIT = function() {
    return this.getToken(SqlParser.WAIT, 0);
};

CreateTablespaceNdbContext.prototype.COMMENT = function() {
    return this.getToken(SqlParser.COMMENT, 0);
};

CreateTablespaceNdbContext.prototype.EQUAL_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EQUAL_SYMBOL);
    } else {
        return this.getToken(SqlParser.EQUAL_SYMBOL, i);
    }
};


CreateTablespaceNdbContext.prototype.fileSizeLiteral = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(FileSizeLiteralContext);
    } else {
        return this.getTypedRuleContext(FileSizeLiteralContext,i);
    }
};

CreateTablespaceNdbContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateTablespaceNdb(this);
	}
};

CreateTablespaceNdbContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateTablespaceNdb(this);
	}
};

CreateTablespaceNdbContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateTablespaceNdb(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CreateTablespaceNdbContext = CreateTablespaceNdbContext;

SqlParser.prototype.createTablespaceNdb = function() {

    var localctx = new CreateTablespaceNdbContext(this, this._ctx, this.state);
    this.enterRule(localctx, 44, SqlParser.RULE_createTablespaceNdb);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 1109;
        this.match(SqlParser.CREATE);
        this.state = 1110;
        this.match(SqlParser.TABLESPACE);
        this.state = 1111;
        this.uid();
        this.state = 1112;
        this.match(SqlParser.ADD);
        this.state = 1113;
        this.match(SqlParser.DATAFILE);
        this.state = 1114;
        localctx.datafile = this.match(SqlParser.STRING_LITERAL);
        this.state = 1115;
        this.match(SqlParser.USE);
        this.state = 1116;
        this.match(SqlParser.LOGFILE);
        this.state = 1117;
        this.match(SqlParser.GROUP);
        this.state = 1118;
        this.uid();
        this.state = 1124;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.EXTENT_SIZE) {
            this.state = 1119;
            this.match(SqlParser.EXTENT_SIZE);
            this.state = 1121;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1120;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1123;
            localctx.extentSize = this.fileSizeLiteral();
        }

        this.state = 1131;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.INITIAL_SIZE) {
            this.state = 1126;
            this.match(SqlParser.INITIAL_SIZE);
            this.state = 1128;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1127;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1130;
            localctx.initialSize = this.fileSizeLiteral();
        }

        this.state = 1138;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.AUTOEXTEND_SIZE) {
            this.state = 1133;
            this.match(SqlParser.AUTOEXTEND_SIZE);
            this.state = 1135;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1134;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1137;
            localctx.autoextendSize = this.fileSizeLiteral();
        }

        this.state = 1145;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.MAX_SIZE) {
            this.state = 1140;
            this.match(SqlParser.MAX_SIZE);
            this.state = 1142;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1141;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1144;
            localctx.maxSize = this.fileSizeLiteral();
        }

        this.state = 1152;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.NODEGROUP) {
            this.state = 1147;
            this.match(SqlParser.NODEGROUP);
            this.state = 1149;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1148;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1151;
            this.uid();
        }

        this.state = 1155;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WAIT) {
            this.state = 1154;
            this.match(SqlParser.WAIT);
        }

        this.state = 1162;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.COMMENT) {
            this.state = 1157;
            this.match(SqlParser.COMMENT);
            this.state = 1159;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1158;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1161;
            localctx.comment = this.match(SqlParser.STRING_LITERAL);
        }

        this.state = 1164;
        this.match(SqlParser.ENGINE);
        this.state = 1166;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.EQUAL_SYMBOL) {
            this.state = 1165;
            this.match(SqlParser.EQUAL_SYMBOL);
        }

        this.state = 1168;
        this.engineName();
    } 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 CreateTriggerContext(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_createTrigger;
    this.thisTrigger = null; // FullIdContext
    this.triggerTime = null; // Token
    this.triggerEvent = null; // Token
    this.triggerPlace = null; // Token
    this.otherTrigger = null; // FullIdContext
    return this;
}

CreateTriggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateTriggerContext.prototype.constructor = CreateTriggerContext;

CreateTriggerContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CreateTriggerContext.prototype.TRIGGER = function() {
    return this.getToken(SqlParser.TRIGGER, 0);
};

CreateTriggerContext.prototype.ON = function() {
    return this.getToken(SqlParser.ON, 0);
};

CreateTriggerContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

CreateTriggerContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

CreateTriggerContext.prototype.EACH = function() {
    return this.getToken(SqlParser.EACH, 0);
};

CreateTriggerContext.prototype.ROW = function() {
    return this.getToken(SqlParser.ROW, 0);
};

CreateTriggerContext.prototype.routineBody = function() {
    return this.getTypedRuleContext(RoutineBodyContext,0);
};

CreateTriggerContext.prototype.fullId = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(FullIdContext);
    } else {
        return this.getTypedRuleContext(FullIdContext,i);
    }
};

CreateTriggerContext.prototype.BEFORE = function() {
    return this.getToken(SqlParser.BEFORE, 0);
};

CreateTriggerContext.prototype.AFTER = function() {
    return this.getToken(SqlParser.AFTER, 0);
};

CreateTriggerContext.prototype.INSERT = function() {
    return this.getToken(SqlParser.INSERT, 0);
};

CreateTriggerContext.prototype.UPDATE = function() {
    return this.getToken(SqlParser.UPDATE, 0);
};

CreateTriggerContext.prototype.DELETE = function() {
    return this.getToken(SqlParser.DELETE, 0);
};

CreateTriggerContext.prototype.ownerStatement = function() {
    return this.getTypedRuleContext(OwnerStatementContext,0);
};

CreateTriggerContext.prototype.FOLLOWS = function() {
    return this.getToken(SqlParser.FOLLOWS, 0);
};

CreateTriggerContext.prototype.PRECEDES = function() {
    return this.getToken(SqlParser.PRECEDES, 0);
};

CreateTriggerContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateTrigger(this);
	}
};

CreateTriggerContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateTrigger(this);
	}
};

CreateTriggerContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateTrigger(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CreateTriggerContext = CreateTriggerContext;

SqlParser.prototype.createTrigger = function() {

    var localctx = new CreateTriggerContext(this, this._ctx, this.state);
    this.enterRule(localctx, 46, SqlParser.RULE_createTrigger);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 1170;
        this.match(SqlParser.CREATE);
        this.state = 1172;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.DEFINER) {
            this.state = 1171;
            this.ownerStatement();
        }

        this.state = 1174;
        this.match(SqlParser.TRIGGER);
        this.state = 1175;
        localctx.thisTrigger = this.fullId();
        this.state = 1176;
        localctx.triggerTime = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.BEFORE || _la===SqlParser.AFTER)) {
            localctx.triggerTime = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 1177;
        localctx.triggerEvent = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.DELETE || _la===SqlParser.INSERT || _la===SqlParser.UPDATE)) {
            localctx.triggerEvent = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 1178;
        this.match(SqlParser.ON);
        this.state = 1179;
        this.tableName();
        this.state = 1180;
        this.match(SqlParser.FOR);
        this.state = 1181;
        this.match(SqlParser.EACH);
        this.state = 1182;
        this.match(SqlParser.ROW);
        this.state = 1185;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,93,this._ctx);
        if(la_===1) {
            this.state = 1183;
            localctx.triggerPlace = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.FOLLOWS || _la===SqlParser.PRECEDES)) {
                localctx.triggerPlace = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 1184;
            localctx.otherTrigger = this.fullId();

        }
        this.state = 1187;
        this.routineBody();
    } 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 CreateViewContext(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_createView;
    this.algType = null; // Token
    this.secContext = null; // Token
    this.checkOption = null; // Token
    return this;
}

CreateViewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateViewContext.prototype.constructor = CreateViewContext;

CreateViewContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CreateViewContext.prototype.VIEW = function() {
    return this.getToken(SqlParser.VIEW, 0);
};

CreateViewContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

CreateViewContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};

CreateViewContext.prototype.selectStatement = function() {
    return this.getTypedRuleContext(SelectStatementContext,0);
};

CreateViewContext.prototype.OR = function() {
    return this.getToken(SqlParser.OR, 0);
};

CreateViewContext.prototype.REPLACE = function() {
    return this.getToken(SqlParser.REPLACE, 0);
};

CreateViewContext.prototype.ALGORITHM = function() {
    return this.getToken(SqlParser.ALGORITHM, 0);
};

CreateViewContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

CreateViewContext.prototype.ownerStatement = function() {
    return this.getTypedRuleContext(OwnerStatementContext,0);
};

CreateViewContext.prototype.SQL = function() {
    return this.getToken(SqlParser.SQL, 0);
};

CreateViewContext.prototype.SECURITY = function() {
    return this.getToken(SqlParser.SECURITY, 0);
};

CreateViewContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

CreateViewContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

CreateViewContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

CreateViewContext.prototype.WITH = function() {
    return this.getToken(SqlParser.WITH, 0);
};

CreateViewContext.prototype.CHECK = function() {
    return this.getToken(SqlParser.CHECK, 0);
};

CreateViewContext.prototype.OPTION = function() {
    return this.getToken(SqlParser.OPTION, 0);
};

CreateViewContext.prototype.UNDEFINED = function() {
    return this.getToken(SqlParser.UNDEFINED, 0);
};

CreateViewContext.prototype.MERGE = function() {
    return this.getToken(SqlParser.MERGE, 0);
};

CreateViewContext.prototype.TEMPTABLE = function() {
    return this.getToken(SqlParser.TEMPTABLE, 0);
};

CreateViewContext.prototype.DEFINER = function() {
    return this.getToken(SqlParser.DEFINER, 0);
};

CreateViewContext.prototype.INVOKER = function() {
    return this.getToken(SqlParser.INVOKER, 0);
};

CreateViewContext.prototype.CASCADED = function() {
    return this.getToken(SqlParser.CASCADED, 0);
};

CreateViewContext.prototype.LOCAL = function() {
    return this.getToken(SqlParser.LOCAL, 0);
};

CreateViewContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateView(this);
	}
};

CreateViewContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateView(this);
	}
};

CreateViewContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateView(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CreateViewContext = CreateViewContext;

SqlParser.prototype.createView = function() {

    var localctx = new CreateViewContext(this, this._ctx, this.state);
    this.enterRule(localctx, 48, SqlParser.RULE_createView);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 1189;
        this.match(SqlParser.CREATE);
        this.state = 1192;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.OR) {
            this.state = 1190;
            this.match(SqlParser.OR);
            this.state = 1191;
            this.match(SqlParser.REPLACE);
        }

        this.state = 1197;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ALGORITHM) {
            this.state = 1194;
            this.match(SqlParser.ALGORITHM);
            this.state = 1195;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 1196;
            localctx.algType = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.MERGE || _la===SqlParser.TEMPTABLE || _la===SqlParser.UNDEFINED)) {
                localctx.algType = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 1200;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.DEFINER) {
            this.state = 1199;
            this.ownerStatement();
        }

        this.state = 1205;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.SQL) {
            this.state = 1202;
            this.match(SqlParser.SQL);
            this.state = 1203;
            this.match(SqlParser.SECURITY);
            this.state = 1204;
            localctx.secContext = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DEFINER || _la===SqlParser.INVOKER)) {
                localctx.secContext = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 1207;
        this.match(SqlParser.VIEW);
        this.state = 1208;
        this.fullId();
        this.state = 1213;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LR_BRACKET) {
            this.state = 1209;
            this.match(SqlParser.LR_BRACKET);
            this.state = 1210;
            this.uidList();
            this.state = 1211;
            this.match(SqlParser.RR_BRACKET);
        }

        this.state = 1215;
        this.match(SqlParser.AS);
        this.state = 1216;
        this.selectStatement();
        this.state = 1223;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WITH) {
            this.state = 1217;
            this.match(SqlParser.WITH);
            this.state = 1219;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.CASCADED || _la===SqlParser.LOCAL) {
                this.state = 1218;
                localctx.checkOption = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.CASCADED || _la===SqlParser.LOCAL)) {
                    localctx.checkOption = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 1221;
            this.match(SqlParser.CHECK);
            this.state = 1222;
            this.match(SqlParser.OPTION);
        }

    } 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 CreateDatabaseOptionContext(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_createDatabaseOption;
    return this;
}

CreateDatabaseOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateDatabaseOptionContext.prototype.constructor = CreateDatabaseOptionContext;

CreateDatabaseOptionContext.prototype.CHARACTER = function() {
    return this.getToken(SqlParser.CHARACTER, 0);
};

CreateDatabaseOptionContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

CreateDatabaseOptionContext.prototype.CHARSET = function() {
    return this.getToken(SqlParser.CHARSET, 0);
};

CreateDatabaseOptionContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};

CreateDatabaseOptionContext.prototype.DEFAULT = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.DEFAULT);
    } else {
        return this.getToken(SqlParser.DEFAULT, i);
    }
};


CreateDatabaseOptionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

CreateDatabaseOptionContext.prototype.COLLATE = function() {
    return this.getToken(SqlParser.COLLATE, 0);
};

CreateDatabaseOptionContext.prototype.collationName = function() {
    return this.getTypedRuleContext(CollationNameContext,0);
};

CreateDatabaseOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateDatabaseOption(this);
	}
};

CreateDatabaseOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateDatabaseOption(this);
	}
};

CreateDatabaseOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateDatabaseOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CreateDatabaseOptionContext = CreateDatabaseOptionContext;

SqlParser.prototype.createDatabaseOption = function() {

    var localctx = new CreateDatabaseOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 50, SqlParser.RULE_createDatabaseOption);
    var _la = 0; // Token type
    try {
        this.state = 1248;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,107,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 1226;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.DEFAULT) {
                this.state = 1225;
                this.match(SqlParser.DEFAULT);
            }

            this.state = 1231;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.CHARACTER:
                this.state = 1228;
                this.match(SqlParser.CHARACTER);
                this.state = 1229;
                this.match(SqlParser.SET);
                break;
            case SqlParser.CHARSET:
                this.state = 1230;
                this.match(SqlParser.CHARSET);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            this.state = 1234;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1233;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1238;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.BINARY:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
                this.state = 1236;
                this.charsetName();
                break;
            case SqlParser.DEFAULT:
                this.state = 1237;
                this.match(SqlParser.DEFAULT);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 1241;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.DEFAULT) {
                this.state = 1240;
                this.match(SqlParser.DEFAULT);
            }

            this.state = 1243;
            this.match(SqlParser.COLLATE);
            this.state = 1245;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1244;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1247;
            this.collationName();
            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 OwnerStatementContext(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_ownerStatement;
    return this;
}

OwnerStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
OwnerStatementContext.prototype.constructor = OwnerStatementContext;

OwnerStatementContext.prototype.DEFINER = function() {
    return this.getToken(SqlParser.DEFINER, 0);
};

OwnerStatementContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

OwnerStatementContext.prototype.userName = function() {
    return this.getTypedRuleContext(UserNameContext,0);
};

OwnerStatementContext.prototype.CURRENT_USER = function() {
    return this.getToken(SqlParser.CURRENT_USER, 0);
};

OwnerStatementContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

OwnerStatementContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

OwnerStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterOwnerStatement(this);
	}
};

OwnerStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitOwnerStatement(this);
	}
};

OwnerStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitOwnerStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.OwnerStatementContext = OwnerStatementContext;

SqlParser.prototype.ownerStatement = function() {

    var localctx = new OwnerStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 52, SqlParser.RULE_ownerStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 1250;
        this.match(SqlParser.DEFINER);
        this.state = 1251;
        this.match(SqlParser.EQUAL_SYMBOL);
        this.state = 1258;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.STRING_LITERAL:
        case SqlParser.ID:
        case SqlParser.STRING_USER_NAME:
            this.state = 1252;
            this.userName();
            break;
        case SqlParser.CURRENT_USER:
            this.state = 1253;
            this.match(SqlParser.CURRENT_USER);
            this.state = 1256;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LR_BRACKET) {
                this.state = 1254;
                this.match(SqlParser.LR_BRACKET);
                this.state = 1255;
                this.match(SqlParser.RR_BRACKET);
            }

            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 ScheduleExpressionContext(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_scheduleExpression;
    return this;
}

ScheduleExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ScheduleExpressionContext.prototype.constructor = ScheduleExpressionContext;


 
ScheduleExpressionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function PreciseScheduleContext(parser, ctx) {
	ScheduleExpressionContext.call(this, parser);
    ScheduleExpressionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PreciseScheduleContext.prototype = Object.create(ScheduleExpressionContext.prototype);
PreciseScheduleContext.prototype.constructor = PreciseScheduleContext;

SqlParser.PreciseScheduleContext = PreciseScheduleContext;

PreciseScheduleContext.prototype.AT = function() {
    return this.getToken(SqlParser.AT, 0);
};

PreciseScheduleContext.prototype.timestampValue = function() {
    return this.getTypedRuleContext(TimestampValueContext,0);
};

PreciseScheduleContext.prototype.intervalExpr = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(IntervalExprContext);
    } else {
        return this.getTypedRuleContext(IntervalExprContext,i);
    }
};
PreciseScheduleContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPreciseSchedule(this);
	}
};

PreciseScheduleContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPreciseSchedule(this);
	}
};

PreciseScheduleContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPreciseSchedule(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function IntervalScheduleContext(parser, ctx) {
	ScheduleExpressionContext.call(this, parser);
    this.startTimestamp = null; // TimestampValueContext;
    this._intervalExpr = null; // IntervalExprContext;
    this.startIntervals = []; // of IntervalExprContexts;
    this.endTimestamp = null; // TimestampValueContext;
    this.endIntervals = []; // of IntervalExprContexts;
    ScheduleExpressionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

IntervalScheduleContext.prototype = Object.create(ScheduleExpressionContext.prototype);
IntervalScheduleContext.prototype.constructor = IntervalScheduleContext;

SqlParser.IntervalScheduleContext = IntervalScheduleContext;

IntervalScheduleContext.prototype.EVERY = function() {
    return this.getToken(SqlParser.EVERY, 0);
};

IntervalScheduleContext.prototype.intervalType = function() {
    return this.getTypedRuleContext(IntervalTypeContext,0);
};

IntervalScheduleContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

IntervalScheduleContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

IntervalScheduleContext.prototype.STARTS = function() {
    return this.getToken(SqlParser.STARTS, 0);
};

IntervalScheduleContext.prototype.ENDS = function() {
    return this.getToken(SqlParser.ENDS, 0);
};

IntervalScheduleContext.prototype.timestampValue = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TimestampValueContext);
    } else {
        return this.getTypedRuleContext(TimestampValueContext,i);
    }
};

IntervalScheduleContext.prototype.intervalExpr = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(IntervalExprContext);
    } else {
        return this.getTypedRuleContext(IntervalExprContext,i);
    }
};
IntervalScheduleContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIntervalSchedule(this);
	}
};

IntervalScheduleContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIntervalSchedule(this);
	}
};

IntervalScheduleContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIntervalSchedule(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.ScheduleExpressionContext = ScheduleExpressionContext;

SqlParser.prototype.scheduleExpression = function() {

    var localctx = new ScheduleExpressionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 54, SqlParser.RULE_scheduleExpression);
    var _la = 0; // Token type
    try {
        this.state = 1294;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.AT:
            localctx = new PreciseScheduleContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 1260;
            this.match(SqlParser.AT);
            this.state = 1261;
            this.timestampValue();
            this.state = 1265;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.PLUS) {
                this.state = 1262;
                this.intervalExpr();
                this.state = 1267;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;
        case SqlParser.EVERY:
            localctx = new IntervalScheduleContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 1268;
            this.match(SqlParser.EVERY);
            this.state = 1271;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,111,this._ctx);
            switch(la_) {
            case 1:
                this.state = 1269;
                this.decimalLiteral();
                break;

            case 2:
                this.state = 1270;
                this.expression(0);
                break;

            }
            this.state = 1273;
            this.intervalType();
            this.state = 1282;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.STARTS) {
                this.state = 1274;
                this.match(SqlParser.STARTS);
                this.state = 1275;
                localctx.startTimestamp = this.timestampValue();
                this.state = 1279;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                while(_la===SqlParser.PLUS) {
                    this.state = 1276;
                    localctx._intervalExpr = this.intervalExpr();
                    localctx.startIntervals.push(localctx._intervalExpr);
                    this.state = 1281;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                }
            }

            this.state = 1292;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ENDS) {
                this.state = 1284;
                this.match(SqlParser.ENDS);
                this.state = 1285;
                localctx.endTimestamp = this.timestampValue();
                this.state = 1289;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                while(_la===SqlParser.PLUS) {
                    this.state = 1286;
                    localctx._intervalExpr = this.intervalExpr();
                    localctx.endIntervals.push(localctx._intervalExpr);
                    this.state = 1291;
                    this._errHandler.sync(this);
                    _la = this._input.LA(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 TimestampValueContext(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_timestampValue;
    return this;
}

TimestampValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TimestampValueContext.prototype.constructor = TimestampValueContext;

TimestampValueContext.prototype.CURRENT_TIMESTAMP = function() {
    return this.getToken(SqlParser.CURRENT_TIMESTAMP, 0);
};

TimestampValueContext.prototype.stringLiteral = function() {
    return this.getTypedRuleContext(StringLiteralContext,0);
};

TimestampValueContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

TimestampValueContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

TimestampValueContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTimestampValue(this);
	}
};

TimestampValueContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTimestampValue(this);
	}
};

TimestampValueContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTimestampValue(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.TimestampValueContext = TimestampValueContext;

SqlParser.prototype.timestampValue = function() {

    var localctx = new TimestampValueContext(this, this._ctx, this.state);
    this.enterRule(localctx, 56, SqlParser.RULE_timestampValue);
    try {
        this.state = 1300;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,117,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 1296;
            this.match(SqlParser.CURRENT_TIMESTAMP);
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 1297;
            this.stringLiteral();
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 1298;
            this.decimalLiteral();
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 1299;
            this.expression(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 IntervalExprContext(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_intervalExpr;
    return this;
}

IntervalExprContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IntervalExprContext.prototype.constructor = IntervalExprContext;

IntervalExprContext.prototype.PLUS = function() {
    return this.getToken(SqlParser.PLUS, 0);
};

IntervalExprContext.prototype.INTERVAL = function() {
    return this.getToken(SqlParser.INTERVAL, 0);
};

IntervalExprContext.prototype.intervalType = function() {
    return this.getTypedRuleContext(IntervalTypeContext,0);
};

IntervalExprContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

IntervalExprContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

IntervalExprContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIntervalExpr(this);
	}
};

IntervalExprContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIntervalExpr(this);
	}
};

IntervalExprContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIntervalExpr(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.IntervalExprContext = IntervalExprContext;

SqlParser.prototype.intervalExpr = function() {

    var localctx = new IntervalExprContext(this, this._ctx, this.state);
    this.enterRule(localctx, 58, SqlParser.RULE_intervalExpr);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 1302;
        this.match(SqlParser.PLUS);
        this.state = 1303;
        this.match(SqlParser.INTERVAL);
        this.state = 1306;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,118,this._ctx);
        switch(la_) {
        case 1:
            this.state = 1304;
            this.decimalLiteral();
            break;

        case 2:
            this.state = 1305;
            this.expression(0);
            break;

        }
        this.state = 1308;
        this.intervalType();
    } 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 IntervalTypeContext(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_intervalType;
    return this;
}

IntervalTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IntervalTypeContext.prototype.constructor = IntervalTypeContext;

IntervalTypeContext.prototype.intervalTypeBase = function() {
    return this.getTypedRuleContext(IntervalTypeBaseContext,0);
};

IntervalTypeContext.prototype.YEAR = function() {
    return this.getToken(SqlParser.YEAR, 0);
};

IntervalTypeContext.prototype.YEAR_MONTH = function() {
    return this.getToken(SqlParser.YEAR_MONTH, 0);
};

IntervalTypeContext.prototype.DAY_HOUR = function() {
    return this.getToken(SqlParser.DAY_HOUR, 0);
};

IntervalTypeContext.prototype.DAY_MINUTE = function() {
    return this.getToken(SqlParser.DAY_MINUTE, 0);
};

IntervalTypeContext.prototype.DAY_SECOND = function() {
    return this.getToken(SqlParser.DAY_SECOND, 0);
};

IntervalTypeContext.prototype.HOUR_MINUTE = function() {
    return this.getToken(SqlParser.HOUR_MINUTE, 0);
};

IntervalTypeContext.prototype.HOUR_SECOND = function() {
    return this.getToken(SqlParser.HOUR_SECOND, 0);
};

IntervalTypeContext.prototype.MINUTE_SECOND = function() {
    return this.getToken(SqlParser.MINUTE_SECOND, 0);
};

IntervalTypeContext.prototype.SECOND_MICROSECOND = function() {
    return this.getToken(SqlParser.SECOND_MICROSECOND, 0);
};

IntervalTypeContext.prototype.MINUTE_MICROSECOND = function() {
    return this.getToken(SqlParser.MINUTE_MICROSECOND, 0);
};

IntervalTypeContext.prototype.HOUR_MICROSECOND = function() {
    return this.getToken(SqlParser.HOUR_MICROSECOND, 0);
};

IntervalTypeContext.prototype.DAY_MICROSECOND = function() {
    return this.getToken(SqlParser.DAY_MICROSECOND, 0);
};

IntervalTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIntervalType(this);
	}
};

IntervalTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIntervalType(this);
	}
};

IntervalTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIntervalType(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.IntervalTypeContext = IntervalTypeContext;

SqlParser.prototype.intervalType = function() {

    var localctx = new IntervalTypeContext(this, this._ctx, this.state);
    this.enterRule(localctx, 60, SqlParser.RULE_intervalType);
    try {
        this.state = 1323;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.QUARTER:
        case SqlParser.MONTH:
        case SqlParser.DAY:
        case SqlParser.HOUR:
        case SqlParser.MINUTE:
        case SqlParser.WEEK:
        case SqlParser.SECOND:
        case SqlParser.MICROSECOND:
            this.enterOuterAlt(localctx, 1);
            this.state = 1310;
            this.intervalTypeBase();
            break;
        case SqlParser.YEAR:
            this.enterOuterAlt(localctx, 2);
            this.state = 1311;
            this.match(SqlParser.YEAR);
            break;
        case SqlParser.YEAR_MONTH:
            this.enterOuterAlt(localctx, 3);
            this.state = 1312;
            this.match(SqlParser.YEAR_MONTH);
            break;
        case SqlParser.DAY_HOUR:
            this.enterOuterAlt(localctx, 4);
            this.state = 1313;
            this.match(SqlParser.DAY_HOUR);
            break;
        case SqlParser.DAY_MINUTE:
            this.enterOuterAlt(localctx, 5);
            this.state = 1314;
            this.match(SqlParser.DAY_MINUTE);
            break;
        case SqlParser.DAY_SECOND:
            this.enterOuterAlt(localctx, 6);
            this.state = 1315;
            this.match(SqlParser.DAY_SECOND);
            break;
        case SqlParser.HOUR_MINUTE:
            this.enterOuterAlt(localctx, 7);
            this.state = 1316;
            this.match(SqlParser.HOUR_MINUTE);
            break;
        case SqlParser.HOUR_SECOND:
            this.enterOuterAlt(localctx, 8);
            this.state = 1317;
            this.match(SqlParser.HOUR_SECOND);
            break;
        case SqlParser.MINUTE_SECOND:
            this.enterOuterAlt(localctx, 9);
            this.state = 1318;
            this.match(SqlParser.MINUTE_SECOND);
            break;
        case SqlParser.SECOND_MICROSECOND:
            this.enterOuterAlt(localctx, 10);
            this.state = 1319;
            this.match(SqlParser.SECOND_MICROSECOND);
            break;
        case SqlParser.MINUTE_MICROSECOND:
            this.enterOuterAlt(localctx, 11);
            this.state = 1320;
            this.match(SqlParser.MINUTE_MICROSECOND);
            break;
        case SqlParser.HOUR_MICROSECOND:
            this.enterOuterAlt(localctx, 12);
            this.state = 1321;
            this.match(SqlParser.HOUR_MICROSECOND);
            break;
        case SqlParser.DAY_MICROSECOND:
            this.enterOuterAlt(localctx, 13);
            this.state = 1322;
            this.match(SqlParser.DAY_MICROSECOND);
            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 EnableTypeContext(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_enableType;
    return this;
}

EnableTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
EnableTypeContext.prototype.constructor = EnableTypeContext;

EnableTypeContext.prototype.ENABLE = function() {
    return this.getToken(SqlParser.ENABLE, 0);
};

EnableTypeContext.prototype.DISABLE = function() {
    return this.getToken(SqlParser.DISABLE, 0);
};

EnableTypeContext.prototype.ON = function() {
    return this.getToken(SqlParser.ON, 0);
};

EnableTypeContext.prototype.SLAVE = function() {
    return this.getToken(SqlParser.SLAVE, 0);
};

EnableTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterEnableType(this);
	}
};

EnableTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitEnableType(this);
	}
};

EnableTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitEnableType(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.EnableTypeContext = EnableTypeContext;

SqlParser.prototype.enableType = function() {

    var localctx = new EnableTypeContext(this, this._ctx, this.state);
    this.enterRule(localctx, 62, SqlParser.RULE_enableType);
    try {
        this.state = 1330;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,120,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 1325;
            this.match(SqlParser.ENABLE);
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 1326;
            this.match(SqlParser.DISABLE);
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 1327;
            this.match(SqlParser.DISABLE);
            this.state = 1328;
            this.match(SqlParser.ON);
            this.state = 1329;
            this.match(SqlParser.SLAVE);
            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 IndexTypeContext(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_indexType;
    return this;
}

IndexTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IndexTypeContext.prototype.constructor = IndexTypeContext;

IndexTypeContext.prototype.USING = function() {
    return this.getToken(SqlParser.USING, 0);
};

IndexTypeContext.prototype.BTREE = function() {
    return this.getToken(SqlParser.BTREE, 0);
};

IndexTypeContext.prototype.HASH = function() {
    return this.getToken(SqlParser.HASH, 0);
};

IndexTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIndexType(this);
	}
};

IndexTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIndexType(this);
	}
};

IndexTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIndexType(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.IndexTypeContext = IndexTypeContext;

SqlParser.prototype.indexType = function() {

    var localctx = new IndexTypeContext(this, this._ctx, this.state);
    this.enterRule(localctx, 64, SqlParser.RULE_indexType);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 1332;
        this.match(SqlParser.USING);
        this.state = 1333;
        _la = this._input.LA(1);
        if(!(_la===SqlParser.BTREE || _la===SqlParser.HASH)) {
        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 IndexOptionContext(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_indexOption;
    return this;
}

IndexOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IndexOptionContext.prototype.constructor = IndexOptionContext;

IndexOptionContext.prototype.KEY_BLOCK_SIZE = function() {
    return this.getToken(SqlParser.KEY_BLOCK_SIZE, 0);
};

IndexOptionContext.prototype.fileSizeLiteral = function() {
    return this.getTypedRuleContext(FileSizeLiteralContext,0);
};

IndexOptionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

IndexOptionContext.prototype.indexType = function() {
    return this.getTypedRuleContext(IndexTypeContext,0);
};

IndexOptionContext.prototype.WITH = function() {
    return this.getToken(SqlParser.WITH, 0);
};

IndexOptionContext.prototype.PARSER = function() {
    return this.getToken(SqlParser.PARSER, 0);
};

IndexOptionContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

IndexOptionContext.prototype.COMMENT = function() {
    return this.getToken(SqlParser.COMMENT, 0);
};

IndexOptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

IndexOptionContext.prototype.INVISIBLE = function() {
    return this.getToken(SqlParser.INVISIBLE, 0);
};

IndexOptionContext.prototype.VISIBLE = function() {
    return this.getToken(SqlParser.VISIBLE, 0);
};

IndexOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIndexOption(this);
	}
};

IndexOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIndexOption(this);
	}
};

IndexOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIndexOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.IndexOptionContext = IndexOptionContext;

SqlParser.prototype.indexOption = function() {

    var localctx = new IndexOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 66, SqlParser.RULE_indexOption);
    var _la = 0; // Token type
    try {
        this.state = 1348;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.KEY_BLOCK_SIZE:
            this.enterOuterAlt(localctx, 1);
            this.state = 1335;
            this.match(SqlParser.KEY_BLOCK_SIZE);
            this.state = 1337;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1336;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1339;
            this.fileSizeLiteral();
            break;
        case SqlParser.USING:
            this.enterOuterAlt(localctx, 2);
            this.state = 1340;
            this.indexType();
            break;
        case SqlParser.WITH:
            this.enterOuterAlt(localctx, 3);
            this.state = 1341;
            this.match(SqlParser.WITH);
            this.state = 1342;
            this.match(SqlParser.PARSER);
            this.state = 1343;
            this.uid();
            break;
        case SqlParser.COMMENT:
            this.enterOuterAlt(localctx, 4);
            this.state = 1344;
            this.match(SqlParser.COMMENT);
            this.state = 1345;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.INVISIBLE:
            this.enterOuterAlt(localctx, 5);
            this.state = 1346;
            this.match(SqlParser.INVISIBLE);
            break;
        case SqlParser.VISIBLE:
            this.enterOuterAlt(localctx, 6);
            this.state = 1347;
            this.match(SqlParser.VISIBLE);
            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 ProcedureParameterContext(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_procedureParameter;
    this.direction = null; // Token
    return this;
}

ProcedureParameterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ProcedureParameterContext.prototype.constructor = ProcedureParameterContext;

ProcedureParameterContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

ProcedureParameterContext.prototype.dataType = function() {
    return this.getTypedRuleContext(DataTypeContext,0);
};

ProcedureParameterContext.prototype.IN = function() {
    return this.getToken(SqlParser.IN, 0);
};

ProcedureParameterContext.prototype.OUT = function() {
    return this.getToken(SqlParser.OUT, 0);
};

ProcedureParameterContext.prototype.INOUT = function() {
    return this.getToken(SqlParser.INOUT, 0);
};

ProcedureParameterContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterProcedureParameter(this);
	}
};

ProcedureParameterContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitProcedureParameter(this);
	}
};

ProcedureParameterContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitProcedureParameter(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ProcedureParameterContext = ProcedureParameterContext;

SqlParser.prototype.procedureParameter = function() {

    var localctx = new ProcedureParameterContext(this, this._ctx, this.state);
    this.enterRule(localctx, 68, SqlParser.RULE_procedureParameter);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 1351;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IN || _la===SqlParser.INOUT || _la===SqlParser.OUT) {
            this.state = 1350;
            localctx.direction = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.IN || _la===SqlParser.INOUT || _la===SqlParser.OUT)) {
                localctx.direction = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 1353;
        this.uid();
        this.state = 1354;
        this.dataType();
    } 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 FunctionParameterContext(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_functionParameter;
    return this;
}

FunctionParameterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FunctionParameterContext.prototype.constructor = FunctionParameterContext;

FunctionParameterContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

FunctionParameterContext.prototype.dataType = function() {
    return this.getTypedRuleContext(DataTypeContext,0);
};

FunctionParameterContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFunctionParameter(this);
	}
};

FunctionParameterContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFunctionParameter(this);
	}
};

FunctionParameterContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitFunctionParameter(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.FunctionParameterContext = FunctionParameterContext;

SqlParser.prototype.functionParameter = function() {

    var localctx = new FunctionParameterContext(this, this._ctx, this.state);
    this.enterRule(localctx, 70, SqlParser.RULE_functionParameter);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 1356;
        this.uid();
        this.state = 1357;
        this.dataType();
    } 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 RoutineOptionContext(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_routineOption;
    return this;
}

RoutineOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RoutineOptionContext.prototype.constructor = RoutineOptionContext;


 
RoutineOptionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function RoutineBehaviorContext(parser, ctx) {
	RoutineOptionContext.call(this, parser);
    RoutineOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

RoutineBehaviorContext.prototype = Object.create(RoutineOptionContext.prototype);
RoutineBehaviorContext.prototype.constructor = RoutineBehaviorContext;

SqlParser.RoutineBehaviorContext = RoutineBehaviorContext;

RoutineBehaviorContext.prototype.DETERMINISTIC = function() {
    return this.getToken(SqlParser.DETERMINISTIC, 0);
};

RoutineBehaviorContext.prototype.NOT = function() {
    return this.getToken(SqlParser.NOT, 0);
};
RoutineBehaviorContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRoutineBehavior(this);
	}
};

RoutineBehaviorContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRoutineBehavior(this);
	}
};

RoutineBehaviorContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRoutineBehavior(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function RoutineLanguageContext(parser, ctx) {
	RoutineOptionContext.call(this, parser);
    RoutineOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

RoutineLanguageContext.prototype = Object.create(RoutineOptionContext.prototype);
RoutineLanguageContext.prototype.constructor = RoutineLanguageContext;

SqlParser.RoutineLanguageContext = RoutineLanguageContext;

RoutineLanguageContext.prototype.LANGUAGE = function() {
    return this.getToken(SqlParser.LANGUAGE, 0);
};

RoutineLanguageContext.prototype.SQL = function() {
    return this.getToken(SqlParser.SQL, 0);
};
RoutineLanguageContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRoutineLanguage(this);
	}
};

RoutineLanguageContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRoutineLanguage(this);
	}
};

RoutineLanguageContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRoutineLanguage(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function RoutineCommentContext(parser, ctx) {
	RoutineOptionContext.call(this, parser);
    RoutineOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

RoutineCommentContext.prototype = Object.create(RoutineOptionContext.prototype);
RoutineCommentContext.prototype.constructor = RoutineCommentContext;

SqlParser.RoutineCommentContext = RoutineCommentContext;

RoutineCommentContext.prototype.COMMENT = function() {
    return this.getToken(SqlParser.COMMENT, 0);
};

RoutineCommentContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};
RoutineCommentContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRoutineComment(this);
	}
};

RoutineCommentContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRoutineComment(this);
	}
};

RoutineCommentContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRoutineComment(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function RoutineSecurityContext(parser, ctx) {
	RoutineOptionContext.call(this, parser);
    this.context = null; // Token;
    RoutineOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

RoutineSecurityContext.prototype = Object.create(RoutineOptionContext.prototype);
RoutineSecurityContext.prototype.constructor = RoutineSecurityContext;

SqlParser.RoutineSecurityContext = RoutineSecurityContext;

RoutineSecurityContext.prototype.SQL = function() {
    return this.getToken(SqlParser.SQL, 0);
};

RoutineSecurityContext.prototype.SECURITY = function() {
    return this.getToken(SqlParser.SECURITY, 0);
};

RoutineSecurityContext.prototype.DEFINER = function() {
    return this.getToken(SqlParser.DEFINER, 0);
};

RoutineSecurityContext.prototype.INVOKER = function() {
    return this.getToken(SqlParser.INVOKER, 0);
};
RoutineSecurityContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRoutineSecurity(this);
	}
};

RoutineSecurityContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRoutineSecurity(this);
	}
};

RoutineSecurityContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRoutineSecurity(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function RoutineDataContext(parser, ctx) {
	RoutineOptionContext.call(this, parser);
    RoutineOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

RoutineDataContext.prototype = Object.create(RoutineOptionContext.prototype);
RoutineDataContext.prototype.constructor = RoutineDataContext;

SqlParser.RoutineDataContext = RoutineDataContext;

RoutineDataContext.prototype.CONTAINS = function() {
    return this.getToken(SqlParser.CONTAINS, 0);
};

RoutineDataContext.prototype.SQL = function() {
    return this.getToken(SqlParser.SQL, 0);
};

RoutineDataContext.prototype.NO = function() {
    return this.getToken(SqlParser.NO, 0);
};

RoutineDataContext.prototype.READS = function() {
    return this.getToken(SqlParser.READS, 0);
};

RoutineDataContext.prototype.DATA = function() {
    return this.getToken(SqlParser.DATA, 0);
};

RoutineDataContext.prototype.MODIFIES = function() {
    return this.getToken(SqlParser.MODIFIES, 0);
};
RoutineDataContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRoutineData(this);
	}
};

RoutineDataContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRoutineData(this);
	}
};

RoutineDataContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRoutineData(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.RoutineOptionContext = RoutineOptionContext;

SqlParser.prototype.routineOption = function() {

    var localctx = new RoutineOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 72, SqlParser.RULE_routineOption);
    var _la = 0; // Token type
    try {
        this.state = 1382;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.COMMENT:
            localctx = new RoutineCommentContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 1359;
            this.match(SqlParser.COMMENT);
            this.state = 1360;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.LANGUAGE:
            localctx = new RoutineLanguageContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 1361;
            this.match(SqlParser.LANGUAGE);
            this.state = 1362;
            this.match(SqlParser.SQL);
            break;
        case SqlParser.DETERMINISTIC:
        case SqlParser.NOT:
            localctx = new RoutineBehaviorContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 1364;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.NOT) {
                this.state = 1363;
                this.match(SqlParser.NOT);
            }

            this.state = 1366;
            this.match(SqlParser.DETERMINISTIC);
            break;
        case SqlParser.MODIFIES:
        case SqlParser.READS:
        case SqlParser.CONTAINS:
        case SqlParser.NO:
            localctx = new RoutineDataContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 1377;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.CONTAINS:
                this.state = 1367;
                this.match(SqlParser.CONTAINS);
                this.state = 1368;
                this.match(SqlParser.SQL);
                break;
            case SqlParser.NO:
                this.state = 1369;
                this.match(SqlParser.NO);
                this.state = 1370;
                this.match(SqlParser.SQL);
                break;
            case SqlParser.READS:
                this.state = 1371;
                this.match(SqlParser.READS);
                this.state = 1372;
                this.match(SqlParser.SQL);
                this.state = 1373;
                this.match(SqlParser.DATA);
                break;
            case SqlParser.MODIFIES:
                this.state = 1374;
                this.match(SqlParser.MODIFIES);
                this.state = 1375;
                this.match(SqlParser.SQL);
                this.state = 1376;
                this.match(SqlParser.DATA);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;
        case SqlParser.SQL:
            localctx = new RoutineSecurityContext(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 1379;
            this.match(SqlParser.SQL);
            this.state = 1380;
            this.match(SqlParser.SECURITY);
            this.state = 1381;
            localctx.context = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DEFINER || _la===SqlParser.INVOKER)) {
                localctx.context = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            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 ServerOptionContext(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_serverOption;
    return this;
}

ServerOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ServerOptionContext.prototype.constructor = ServerOptionContext;

ServerOptionContext.prototype.HOST = function() {
    return this.getToken(SqlParser.HOST, 0);
};

ServerOptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

ServerOptionContext.prototype.DATABASE = function() {
    return this.getToken(SqlParser.DATABASE, 0);
};

ServerOptionContext.prototype.USER = function() {
    return this.getToken(SqlParser.USER, 0);
};

ServerOptionContext.prototype.PASSWORD = function() {
    return this.getToken(SqlParser.PASSWORD, 0);
};

ServerOptionContext.prototype.SOCKET = function() {
    return this.getToken(SqlParser.SOCKET, 0);
};

ServerOptionContext.prototype.OWNER = function() {
    return this.getToken(SqlParser.OWNER, 0);
};

ServerOptionContext.prototype.PORT = function() {
    return this.getToken(SqlParser.PORT, 0);
};

ServerOptionContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

ServerOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterServerOption(this);
	}
};

ServerOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitServerOption(this);
	}
};

ServerOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitServerOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ServerOptionContext = ServerOptionContext;

SqlParser.prototype.serverOption = function() {

    var localctx = new ServerOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 74, SqlParser.RULE_serverOption);
    try {
        this.state = 1398;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.HOST:
            this.enterOuterAlt(localctx, 1);
            this.state = 1384;
            this.match(SqlParser.HOST);
            this.state = 1385;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.DATABASE:
            this.enterOuterAlt(localctx, 2);
            this.state = 1386;
            this.match(SqlParser.DATABASE);
            this.state = 1387;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.USER:
            this.enterOuterAlt(localctx, 3);
            this.state = 1388;
            this.match(SqlParser.USER);
            this.state = 1389;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.PASSWORD:
            this.enterOuterAlt(localctx, 4);
            this.state = 1390;
            this.match(SqlParser.PASSWORD);
            this.state = 1391;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.SOCKET:
            this.enterOuterAlt(localctx, 5);
            this.state = 1392;
            this.match(SqlParser.SOCKET);
            this.state = 1393;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.OWNER:
            this.enterOuterAlt(localctx, 6);
            this.state = 1394;
            this.match(SqlParser.OWNER);
            this.state = 1395;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.PORT:
            this.enterOuterAlt(localctx, 7);
            this.state = 1396;
            this.match(SqlParser.PORT);
            this.state = 1397;
            this.decimalLiteral();
            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 CreateDefinitionsContext(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_createDefinitions;
    return this;
}

CreateDefinitionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateDefinitionsContext.prototype.constructor = CreateDefinitionsContext;

CreateDefinitionsContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

CreateDefinitionsContext.prototype.createDefinition = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(CreateDefinitionContext);
    } else {
        return this.getTypedRuleContext(CreateDefinitionContext,i);
    }
};

CreateDefinitionsContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

CreateDefinitionsContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


CreateDefinitionsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateDefinitions(this);
	}
};

CreateDefinitionsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateDefinitions(this);
	}
};

CreateDefinitionsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateDefinitions(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CreateDefinitionsContext = CreateDefinitionsContext;

SqlParser.prototype.createDefinitions = function() {

    var localctx = new CreateDefinitionsContext(this, this._ctx, this.state);
    this.enterRule(localctx, 76, SqlParser.RULE_createDefinitions);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 1400;
        this.match(SqlParser.LR_BRACKET);
        this.state = 1401;
        this.createDefinition();
        this.state = 1406;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 1402;
            this.match(SqlParser.COMMA);
            this.state = 1403;
            this.createDefinition();
            this.state = 1408;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 1409;
        this.match(SqlParser.RR_BRACKET);
    } 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 CreateDefinitionContext(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_createDefinition;
    return this;
}

CreateDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateDefinitionContext.prototype.constructor = CreateDefinitionContext;


 
CreateDefinitionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function ColumnDeclarationContext(parser, ctx) {
	CreateDefinitionContext.call(this, parser);
    CreateDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ColumnDeclarationContext.prototype = Object.create(CreateDefinitionContext.prototype);
ColumnDeclarationContext.prototype.constructor = ColumnDeclarationContext;

SqlParser.ColumnDeclarationContext = ColumnDeclarationContext;

ColumnDeclarationContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

ColumnDeclarationContext.prototype.columnDefinition = function() {
    return this.getTypedRuleContext(ColumnDefinitionContext,0);
};
ColumnDeclarationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterColumnDeclaration(this);
	}
};

ColumnDeclarationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitColumnDeclaration(this);
	}
};

ColumnDeclarationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitColumnDeclaration(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ConstraintDeclarationContext(parser, ctx) {
	CreateDefinitionContext.call(this, parser);
    CreateDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ConstraintDeclarationContext.prototype = Object.create(CreateDefinitionContext.prototype);
ConstraintDeclarationContext.prototype.constructor = ConstraintDeclarationContext;

SqlParser.ConstraintDeclarationContext = ConstraintDeclarationContext;

ConstraintDeclarationContext.prototype.tableConstraint = function() {
    return this.getTypedRuleContext(TableConstraintContext,0);
};
ConstraintDeclarationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterConstraintDeclaration(this);
	}
};

ConstraintDeclarationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitConstraintDeclaration(this);
	}
};

ConstraintDeclarationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitConstraintDeclaration(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function IndexDeclarationContext(parser, ctx) {
	CreateDefinitionContext.call(this, parser);
    CreateDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

IndexDeclarationContext.prototype = Object.create(CreateDefinitionContext.prototype);
IndexDeclarationContext.prototype.constructor = IndexDeclarationContext;

SqlParser.IndexDeclarationContext = IndexDeclarationContext;

IndexDeclarationContext.prototype.indexColumnDefinition = function() {
    return this.getTypedRuleContext(IndexColumnDefinitionContext,0);
};
IndexDeclarationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIndexDeclaration(this);
	}
};

IndexDeclarationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIndexDeclaration(this);
	}
};

IndexDeclarationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIndexDeclaration(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.CreateDefinitionContext = CreateDefinitionContext;

SqlParser.prototype.createDefinition = function() {

    var localctx = new CreateDefinitionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 78, SqlParser.RULE_createDefinition);
    try {
        this.state = 1416;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.CURRENT:
        case SqlParser.DATABASE:
        case SqlParser.DIAGNOSTICS:
        case SqlParser.LEFT:
        case SqlParser.NUMBER:
        case SqlParser.RIGHT:
        case SqlParser.STACKED:
        case SqlParser.DATE:
        case SqlParser.TIME:
        case SqlParser.TIMESTAMP:
        case SqlParser.DATETIME:
        case SqlParser.YEAR:
        case SqlParser.TEXT:
        case SqlParser.ENUM:
        case SqlParser.SERIAL:
        case SqlParser.JSON_VALID:
        case SqlParser.JSON_SCHEMA_VALID:
        case SqlParser.COUNT:
        case SqlParser.POSITION:
        case SqlParser.ACCOUNT:
        case SqlParser.ACTION:
        case SqlParser.AFTER:
        case SqlParser.AGGREGATE:
        case SqlParser.ALGORITHM:
        case SqlParser.ANY:
        case SqlParser.AT:
        case SqlParser.AUTHORS:
        case SqlParser.AUTOCOMMIT:
        case SqlParser.AUTOEXTEND_SIZE:
        case SqlParser.AUTO_INCREMENT:
        case SqlParser.AVG_ROW_LENGTH:
        case SqlParser.BEGIN:
        case SqlParser.BINLOG:
        case SqlParser.BIT:
        case SqlParser.BLOCK:
        case SqlParser.BOOL:
        case SqlParser.BOOLEAN:
        case SqlParser.BTREE:
        case SqlParser.CACHE:
        case SqlParser.CASCADED:
        case SqlParser.CHAIN:
        case SqlParser.CHANGED:
        case SqlParser.CHANNEL:
        case SqlParser.CHECKSUM:
        case SqlParser.PAGE_CHECKSUM:
        case SqlParser.CIPHER:
        case SqlParser.CLASS_ORIGIN:
        case SqlParser.CLIENT:
        case SqlParser.CLOSE:
        case SqlParser.COALESCE:
        case SqlParser.CODE:
        case SqlParser.COLUMNS:
        case SqlParser.COLUMN_FORMAT:
        case SqlParser.COLUMN_NAME:
        case SqlParser.COMMENT:
        case SqlParser.COMMIT:
        case SqlParser.COMPACT:
        case SqlParser.COMPLETION:
        case SqlParser.COMPRESSED:
        case SqlParser.COMPRESSION:
        case SqlParser.CONCURRENT:
        case SqlParser.CONNECTION:
        case SqlParser.CONSISTENT:
        case SqlParser.CONSTRAINT_CATALOG:
        case SqlParser.CONSTRAINT_SCHEMA:
        case SqlParser.CONSTRAINT_NAME:
        case SqlParser.CONTAINS:
        case SqlParser.CONTEXT:
        case SqlParser.CONTRIBUTORS:
        case SqlParser.COPY:
        case SqlParser.CPU:
        case SqlParser.CURSOR_NAME:
        case SqlParser.DATA:
        case SqlParser.DATAFILE:
        case SqlParser.DEALLOCATE:
        case SqlParser.DEFAULT_AUTH:
        case SqlParser.DEFINER:
        case SqlParser.DELAY_KEY_WRITE:
        case SqlParser.DES_KEY_FILE:
        case SqlParser.DIRECTORY:
        case SqlParser.DISABLE:
        case SqlParser.DISCARD:
        case SqlParser.DISK:
        case SqlParser.DO:
        case SqlParser.DUMPFILE:
        case SqlParser.DUPLICATE:
        case SqlParser.DYNAMIC:
        case SqlParser.ENABLE:
        case SqlParser.ENCRYPTION:
        case SqlParser.END:
        case SqlParser.ENDS:
        case SqlParser.ENGINE:
        case SqlParser.ENGINES:
        case SqlParser.ERROR:
        case SqlParser.ERRORS:
        case SqlParser.ESCAPE:
        case SqlParser.EVEN:
        case SqlParser.EVENT:
        case SqlParser.EVENTS:
        case SqlParser.EVERY:
        case SqlParser.EXCHANGE:
        case SqlParser.EXCLUSIVE:
        case SqlParser.EXPIRE:
        case SqlParser.EXPORT:
        case SqlParser.EXTENDED:
        case SqlParser.EXTENT_SIZE:
        case SqlParser.FAST:
        case SqlParser.FAULTS:
        case SqlParser.FIELDS:
        case SqlParser.FILE_BLOCK_SIZE:
        case SqlParser.FILTER:
        case SqlParser.FIRST:
        case SqlParser.FIXED:
        case SqlParser.FLUSH:
        case SqlParser.FOLLOWS:
        case SqlParser.FOUND:
        case SqlParser.FULL:
        case SqlParser.FUNCTION:
        case SqlParser.GENERAL:
        case SqlParser.GLOBAL:
        case SqlParser.GRANTS:
        case SqlParser.GROUP_REPLICATION:
        case SqlParser.HANDLER:
        case SqlParser.HASH:
        case SqlParser.HELP:
        case SqlParser.HOST:
        case SqlParser.HOSTS:
        case SqlParser.IDENTIFIED:
        case SqlParser.IGNORE_SERVER_IDS:
        case SqlParser.IMPORT:
        case SqlParser.INDEXES:
        case SqlParser.INITIAL_SIZE:
        case SqlParser.INPLACE:
        case SqlParser.INSERT_METHOD:
        case SqlParser.INSTALL:
        case SqlParser.INSTANCE:
        case SqlParser.INVISIBLE:
        case SqlParser.INVOKER:
        case SqlParser.IO:
        case SqlParser.IO_THREAD:
        case SqlParser.IPC:
        case SqlParser.ISOLATION:
        case SqlParser.ISSUER:
        case SqlParser.JSON:
        case SqlParser.KEY_BLOCK_SIZE:
        case SqlParser.LANGUAGE:
        case SqlParser.LAST:
        case SqlParser.LEAVES:
        case SqlParser.LESS:
        case SqlParser.LEVEL:
        case SqlParser.LIST:
        case SqlParser.LOCAL:
        case SqlParser.LOGFILE:
        case SqlParser.LOGS:
        case SqlParser.MASTER:
        case SqlParser.MASTER_AUTO_POSITION:
        case SqlParser.MASTER_CONNECT_RETRY:
        case SqlParser.MASTER_DELAY:
        case SqlParser.MASTER_HEARTBEAT_PERIOD:
        case SqlParser.MASTER_HOST:
        case SqlParser.MASTER_LOG_FILE:
        case SqlParser.MASTER_LOG_POS:
        case SqlParser.MASTER_PASSWORD:
        case SqlParser.MASTER_PORT:
        case SqlParser.MASTER_RETRY_COUNT:
        case SqlParser.MASTER_SSL:
        case SqlParser.MASTER_SSL_CA:
        case SqlParser.MASTER_SSL_CAPATH:
        case SqlParser.MASTER_SSL_CERT:
        case SqlParser.MASTER_SSL_CIPHER:
        case SqlParser.MASTER_SSL_CRL:
        case SqlParser.MASTER_SSL_CRLPATH:
        case SqlParser.MASTER_SSL_KEY:
        case SqlParser.MASTER_TLS_VERSION:
        case SqlParser.MASTER_USER:
        case SqlParser.MAX_CONNECTIONS_PER_HOUR:
        case SqlParser.MAX_QUERIES_PER_HOUR:
        case SqlParser.MAX_ROWS:
        case SqlParser.MAX_SIZE:
        case SqlParser.MAX_UPDATES_PER_HOUR:
        case SqlParser.MAX_USER_CONNECTIONS:
        case SqlParser.MEDIUM:
        case SqlParser.MERGE:
        case SqlParser.MESSAGE_TEXT:
        case SqlParser.MID:
        case SqlParser.MIGRATE:
        case SqlParser.MIN_ROWS:
        case SqlParser.MODE:
        case SqlParser.MODIFY:
        case SqlParser.MUTEX:
        case SqlParser.MYSQL:
        case SqlParser.MYSQL_ERRNO:
        case SqlParser.NAME:
        case SqlParser.NAMES:
        case SqlParser.NCHAR:
        case SqlParser.NEVER:
        case SqlParser.NEXT:
        case SqlParser.NO:
        case SqlParser.NODEGROUP:
        case SqlParser.NONE:
        case SqlParser.OFFLINE:
        case SqlParser.OFFSET:
        case SqlParser.OJ:
        case SqlParser.OLD_PASSWORD:
        case SqlParser.ONE:
        case SqlParser.ONLINE:
        case SqlParser.ONLY:
        case SqlParser.OPEN:
        case SqlParser.OPTIMIZER_COSTS:
        case SqlParser.OPTIONS:
        case SqlParser.OWNER:
        case SqlParser.PACK_KEYS:
        case SqlParser.PAGE:
        case SqlParser.PARSER:
        case SqlParser.PARTIAL:
        case SqlParser.PARTITIONING:
        case SqlParser.PARTITIONS:
        case SqlParser.PASSWORD:
        case SqlParser.PHASE:
        case SqlParser.PLUGIN:
        case SqlParser.PLUGIN_DIR:
        case SqlParser.PLUGINS:
        case SqlParser.PORT:
        case SqlParser.PRECEDES:
        case SqlParser.PREPARE:
        case SqlParser.PRESERVE:
        case SqlParser.PREV:
        case SqlParser.PROCESSLIST:
        case SqlParser.PROFILE:
        case SqlParser.PROFILES:
        case SqlParser.PROXY:
        case SqlParser.QUERY:
        case SqlParser.QUICK:
        case SqlParser.REBUILD:
        case SqlParser.RECOVER:
        case SqlParser.REDO_BUFFER_SIZE:
        case SqlParser.REDUNDANT:
        case SqlParser.RELAY:
        case SqlParser.RELAY_LOG_FILE:
        case SqlParser.RELAY_LOG_POS:
        case SqlParser.RELAYLOG:
        case SqlParser.REMOVE:
        case SqlParser.REORGANIZE:
        case SqlParser.REPAIR:
        case SqlParser.REPLICATE_DO_DB:
        case SqlParser.REPLICATE_DO_TABLE:
        case SqlParser.REPLICATE_IGNORE_DB:
        case SqlParser.REPLICATE_IGNORE_TABLE:
        case SqlParser.REPLICATE_REWRITE_DB:
        case SqlParser.REPLICATE_WILD_DO_TABLE:
        case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
        case SqlParser.REPLICATION:
        case SqlParser.RESET:
        case SqlParser.RESUME:
        case SqlParser.RETURNED_SQLSTATE:
        case SqlParser.RETURNS:
        case SqlParser.ROLE:
        case SqlParser.ROLLBACK:
        case SqlParser.ROLLUP:
        case SqlParser.ROTATE:
        case SqlParser.ROW:
        case SqlParser.ROWS:
        case SqlParser.ROW_FORMAT:
        case SqlParser.SAVEPOINT:
        case SqlParser.SCHEDULE:
        case SqlParser.SECURITY:
        case SqlParser.SERVER:
        case SqlParser.SESSION:
        case SqlParser.SHARE:
        case SqlParser.SHARED:
        case SqlParser.SIGNED:
        case SqlParser.SIMPLE:
        case SqlParser.SLAVE:
        case SqlParser.SLOW:
        case SqlParser.SNAPSHOT:
        case SqlParser.SOCKET:
        case SqlParser.SOME:
        case SqlParser.SONAME:
        case SqlParser.SOUNDS:
        case SqlParser.SOURCE:
        case SqlParser.SQL_AFTER_GTIDS:
        case SqlParser.SQL_AFTER_MTS_GAPS:
        case SqlParser.SQL_BEFORE_GTIDS:
        case SqlParser.SQL_BUFFER_RESULT:
        case SqlParser.SQL_CACHE:
        case SqlParser.SQL_NO_CACHE:
        case SqlParser.SQL_THREAD:
        case SqlParser.START:
        case SqlParser.STARTS:
        case SqlParser.STATS_AUTO_RECALC:
        case SqlParser.STATS_PERSISTENT:
        case SqlParser.STATS_SAMPLE_PAGES:
        case SqlParser.STATUS:
        case SqlParser.STOP:
        case SqlParser.STORAGE:
        case SqlParser.STRING:
        case SqlParser.SUBCLASS_ORIGIN:
        case SqlParser.SUBJECT:
        case SqlParser.SUBPARTITION:
        case SqlParser.SUBPARTITIONS:
        case SqlParser.SUSPEND:
        case SqlParser.SWAPS:
        case SqlParser.SWITCHES:
        case SqlParser.TABLE_NAME:
        case SqlParser.TABLESPACE:
        case SqlParser.TEMPORARY:
        case SqlParser.TEMPTABLE:
        case SqlParser.THAN:
        case SqlParser.TRADITIONAL:
        case SqlParser.TRANSACTION:
        case SqlParser.TRANSACTIONAL:
        case SqlParser.TRIGGERS:
        case SqlParser.TRUNCATE:
        case SqlParser.UNDEFINED:
        case SqlParser.UNDOFILE:
        case SqlParser.UNDO_BUFFER_SIZE:
        case SqlParser.UNINSTALL:
        case SqlParser.UNKNOWN:
        case SqlParser.UNTIL:
        case SqlParser.UPGRADE:
        case SqlParser.USER:
        case SqlParser.USE_FRM:
        case SqlParser.USER_RESOURCES:
        case SqlParser.VALIDATION:
        case SqlParser.VALUE:
        case SqlParser.VARIABLES:
        case SqlParser.VIEW:
        case SqlParser.VISIBLE:
        case SqlParser.WAIT:
        case SqlParser.WARNINGS:
        case SqlParser.WITHOUT:
        case SqlParser.WORK:
        case SqlParser.WRAPPER:
        case SqlParser.X509:
        case SqlParser.XA:
        case SqlParser.XML:
        case SqlParser.INTERNAL:
        case SqlParser.QUARTER:
        case SqlParser.MONTH:
        case SqlParser.DAY:
        case SqlParser.HOUR:
        case SqlParser.MINUTE:
        case SqlParser.WEEK:
        case SqlParser.SECOND:
        case SqlParser.MICROSECOND:
        case SqlParser.TABLES:
        case SqlParser.ROUTINE:
        case SqlParser.EXECUTE:
        case SqlParser.FILE:
        case SqlParser.PROCESS:
        case SqlParser.RELOAD:
        case SqlParser.SHUTDOWN:
        case SqlParser.SUPER:
        case SqlParser.PRIVILEGES:
        case SqlParser.AUDIT_ADMIN:
        case SqlParser.BACKUP_ADMIN:
        case SqlParser.BINLOG_ADMIN:
        case SqlParser.BINLOG_ENCRYPTION_ADMIN:
        case SqlParser.CLONE_ADMIN:
        case SqlParser.CONNECTION_ADMIN:
        case SqlParser.ENCRYPTION_KEY_ADMIN:
        case SqlParser.FIREWALL_ADMIN:
        case SqlParser.FIREWALL_USER:
        case SqlParser.GROUP_REPLICATION_ADMIN:
        case SqlParser.INNODB_REDO_LOG_ARCHIVE:
        case SqlParser.NDB_STORED_USER:
        case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
        case SqlParser.REPLICATION_APPLIER:
        case SqlParser.REPLICATION_SLAVE_ADMIN:
        case SqlParser.RESOURCE_GROUP_ADMIN:
        case SqlParser.RESOURCE_GROUP_USER:
        case SqlParser.ROLE_ADMIN:
        case SqlParser.SESSION_VARIABLES_ADMIN:
        case SqlParser.SET_USER_ID:
        case SqlParser.SHOW_ROUTINE:
        case SqlParser.SYSTEM_VARIABLES_ADMIN:
        case SqlParser.TABLE_ENCRYPTION_ADMIN:
        case SqlParser.VERSION_TOKEN_ADMIN:
        case SqlParser.XA_RECOVER_ADMIN:
        case SqlParser.ARMSCII8:
        case SqlParser.ASCII:
        case SqlParser.BIG5:
        case SqlParser.CP1250:
        case SqlParser.CP1251:
        case SqlParser.CP1256:
        case SqlParser.CP1257:
        case SqlParser.CP850:
        case SqlParser.CP852:
        case SqlParser.CP866:
        case SqlParser.CP932:
        case SqlParser.DEC8:
        case SqlParser.EUCJPMS:
        case SqlParser.EUCKR:
        case SqlParser.GB2312:
        case SqlParser.GBK:
        case SqlParser.GEOSTD8:
        case SqlParser.GREEK:
        case SqlParser.HEBREW:
        case SqlParser.HP8:
        case SqlParser.KEYBCS2:
        case SqlParser.KOI8R:
        case SqlParser.KOI8U:
        case SqlParser.LATIN1:
        case SqlParser.LATIN2:
        case SqlParser.LATIN5:
        case SqlParser.LATIN7:
        case SqlParser.MACCE:
        case SqlParser.MACROMAN:
        case SqlParser.SJIS:
        case SqlParser.SWE7:
        case SqlParser.TIS620:
        case SqlParser.UCS2:
        case SqlParser.UJIS:
        case SqlParser.UTF16:
        case SqlParser.UTF16LE:
        case SqlParser.UTF32:
        case SqlParser.UTF8:
        case SqlParser.UTF8MB3:
        case SqlParser.UTF8MB4:
        case SqlParser.ARCHIVE:
        case SqlParser.BLACKHOLE:
        case SqlParser.CSV:
        case SqlParser.FEDERATED:
        case SqlParser.INNODB:
        case SqlParser.MEMORY:
        case SqlParser.MRG_MYISAM:
        case SqlParser.MYISAM:
        case SqlParser.NDB:
        case SqlParser.NDBCLUSTER:
        case SqlParser.PERFORMANCE_SCHEMA:
        case SqlParser.TOKUDB:
        case SqlParser.REPEATABLE:
        case SqlParser.COMMITTED:
        case SqlParser.UNCOMMITTED:
        case SqlParser.SERIALIZABLE:
        case SqlParser.GEOMETRYCOLLECTION:
        case SqlParser.LINESTRING:
        case SqlParser.MULTILINESTRING:
        case SqlParser.MULTIPOINT:
        case SqlParser.MULTIPOLYGON:
        case SqlParser.POINT:
        case SqlParser.POLYGON:
        case SqlParser.ABS:
        case SqlParser.ACOS:
        case SqlParser.ADDDATE:
        case SqlParser.ADDTIME:
        case SqlParser.AES_DECRYPT:
        case SqlParser.AES_ENCRYPT:
        case SqlParser.AREA:
        case SqlParser.ASBINARY:
        case SqlParser.ASIN:
        case SqlParser.ASTEXT:
        case SqlParser.ASWKB:
        case SqlParser.ASWKT:
        case SqlParser.ASYMMETRIC_DECRYPT:
        case SqlParser.ASYMMETRIC_DERIVE:
        case SqlParser.ASYMMETRIC_ENCRYPT:
        case SqlParser.ASYMMETRIC_SIGN:
        case SqlParser.ASYMMETRIC_VERIFY:
        case SqlParser.ATAN:
        case SqlParser.ATAN2:
        case SqlParser.BENCHMARK:
        case SqlParser.BIN:
        case SqlParser.BIT_COUNT:
        case SqlParser.BIT_LENGTH:
        case SqlParser.BUFFER:
        case SqlParser.CATALOG_NAME:
        case SqlParser.CEIL:
        case SqlParser.CEILING:
        case SqlParser.CENTROID:
        case SqlParser.CHARACTER_LENGTH:
        case SqlParser.CHARSET:
        case SqlParser.CHAR_LENGTH:
        case SqlParser.COERCIBILITY:
        case SqlParser.COLLATION:
        case SqlParser.COMPRESS:
        case SqlParser.CONCAT:
        case SqlParser.CONCAT_WS:
        case SqlParser.CONNECTION_ID:
        case SqlParser.CONV:
        case SqlParser.CONVERT_TZ:
        case SqlParser.COS:
        case SqlParser.COT:
        case SqlParser.CRC32:
        case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
        case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
        case SqlParser.CREATE_DH_PARAMETERS:
        case SqlParser.CREATE_DIGEST:
        case SqlParser.CROSSES:
        case SqlParser.DATEDIFF:
        case SqlParser.DATE_FORMAT:
        case SqlParser.DAYNAME:
        case SqlParser.DAYOFMONTH:
        case SqlParser.DAYOFWEEK:
        case SqlParser.DAYOFYEAR:
        case SqlParser.DECODE:
        case SqlParser.DEGREES:
        case SqlParser.DES_DECRYPT:
        case SqlParser.DES_ENCRYPT:
        case SqlParser.DIMENSION:
        case SqlParser.DISJOINT:
        case SqlParser.ELT:
        case SqlParser.ENCODE:
        case SqlParser.ENCRYPT:
        case SqlParser.ENDPOINT:
        case SqlParser.ENVELOPE:
        case SqlParser.EQUALS:
        case SqlParser.EXP:
        case SqlParser.EXPORT_SET:
        case SqlParser.EXTERIORRING:
        case SqlParser.EXTRACTVALUE:
        case SqlParser.FIELD:
        case SqlParser.FIND_IN_SET:
        case SqlParser.FLOOR:
        case SqlParser.FORMAT:
        case SqlParser.FOUND_ROWS:
        case SqlParser.FROM_BASE64:
        case SqlParser.FROM_DAYS:
        case SqlParser.FROM_UNIXTIME:
        case SqlParser.GEOMCOLLFROMTEXT:
        case SqlParser.GEOMCOLLFROMWKB:
        case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.GEOMETRYFROMTEXT:
        case SqlParser.GEOMETRYFROMWKB:
        case SqlParser.GEOMETRYN:
        case SqlParser.GEOMETRYTYPE:
        case SqlParser.GEOMFROMTEXT:
        case SqlParser.GEOMFROMWKB:
        case SqlParser.GET_FORMAT:
        case SqlParser.GET_LOCK:
        case SqlParser.GLENGTH:
        case SqlParser.GREATEST:
        case SqlParser.GTID_SUBSET:
        case SqlParser.GTID_SUBTRACT:
        case SqlParser.HEX:
        case SqlParser.IFNULL:
        case SqlParser.INET6_ATON:
        case SqlParser.INET6_NTOA:
        case SqlParser.INET_ATON:
        case SqlParser.INET_NTOA:
        case SqlParser.INSTR:
        case SqlParser.INTERIORRINGN:
        case SqlParser.INTERSECTS:
        case SqlParser.ISCLOSED:
        case SqlParser.ISEMPTY:
        case SqlParser.ISNULL:
        case SqlParser.ISSIMPLE:
        case SqlParser.IS_FREE_LOCK:
        case SqlParser.IS_IPV4:
        case SqlParser.IS_IPV4_COMPAT:
        case SqlParser.IS_IPV4_MAPPED:
        case SqlParser.IS_IPV6:
        case SqlParser.IS_USED_LOCK:
        case SqlParser.LAST_INSERT_ID:
        case SqlParser.LCASE:
        case SqlParser.LEAST:
        case SqlParser.LENGTH:
        case SqlParser.LINEFROMTEXT:
        case SqlParser.LINEFROMWKB:
        case SqlParser.LINESTRINGFROMTEXT:
        case SqlParser.LINESTRINGFROMWKB:
        case SqlParser.LN:
        case SqlParser.LOAD_FILE:
        case SqlParser.LOCATE:
        case SqlParser.LOG:
        case SqlParser.LOG10:
        case SqlParser.LOG2:
        case SqlParser.LOWER:
        case SqlParser.LPAD:
        case SqlParser.LTRIM:
        case SqlParser.MAKEDATE:
        case SqlParser.MAKETIME:
        case SqlParser.MAKE_SET:
        case SqlParser.MASTER_POS_WAIT:
        case SqlParser.MBRCONTAINS:
        case SqlParser.MBRDISJOINT:
        case SqlParser.MBREQUAL:
        case SqlParser.MBRINTERSECTS:
        case SqlParser.MBROVERLAPS:
        case SqlParser.MBRTOUCHES:
        case SqlParser.MBRWITHIN:
        case SqlParser.MD5:
        case SqlParser.MLINEFROMTEXT:
        case SqlParser.MLINEFROMWKB:
        case SqlParser.MONTHNAME:
        case SqlParser.MPOINTFROMTEXT:
        case SqlParser.MPOINTFROMWKB:
        case SqlParser.MPOLYFROMTEXT:
        case SqlParser.MPOLYFROMWKB:
        case SqlParser.MULTILINESTRINGFROMTEXT:
        case SqlParser.MULTILINESTRINGFROMWKB:
        case SqlParser.MULTIPOINTFROMTEXT:
        case SqlParser.MULTIPOINTFROMWKB:
        case SqlParser.MULTIPOLYGONFROMTEXT:
        case SqlParser.MULTIPOLYGONFROMWKB:
        case SqlParser.NAME_CONST:
        case SqlParser.NULLIF:
        case SqlParser.NUMGEOMETRIES:
        case SqlParser.NUMINTERIORRINGS:
        case SqlParser.NUMPOINTS:
        case SqlParser.OCT:
        case SqlParser.OCTET_LENGTH:
        case SqlParser.ORD:
        case SqlParser.OVERLAPS:
        case SqlParser.PERIOD_ADD:
        case SqlParser.PERIOD_DIFF:
        case SqlParser.PI:
        case SqlParser.POINTFROMTEXT:
        case SqlParser.POINTFROMWKB:
        case SqlParser.POINTN:
        case SqlParser.POLYFROMTEXT:
        case SqlParser.POLYFROMWKB:
        case SqlParser.POLYGONFROMTEXT:
        case SqlParser.POLYGONFROMWKB:
        case SqlParser.POW:
        case SqlParser.POWER:
        case SqlParser.QUOTE:
        case SqlParser.RADIANS:
        case SqlParser.RAND:
        case SqlParser.RANDOM_BYTES:
        case SqlParser.RELEASE_LOCK:
        case SqlParser.REVERSE:
        case SqlParser.ROUND:
        case SqlParser.ROW_COUNT:
        case SqlParser.RPAD:
        case SqlParser.RTRIM:
        case SqlParser.SEC_TO_TIME:
        case SqlParser.SESSION_USER:
        case SqlParser.SHA:
        case SqlParser.SHA1:
        case SqlParser.SHA2:
        case SqlParser.SCHEMA_NAME:
        case SqlParser.SIGN:
        case SqlParser.SIN:
        case SqlParser.SLEEP:
        case SqlParser.SOUNDEX:
        case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
        case SqlParser.SQRT:
        case SqlParser.SRID:
        case SqlParser.STARTPOINT:
        case SqlParser.STRCMP:
        case SqlParser.STR_TO_DATE:
        case SqlParser.ST_AREA:
        case SqlParser.ST_ASBINARY:
        case SqlParser.ST_ASTEXT:
        case SqlParser.ST_ASWKB:
        case SqlParser.ST_ASWKT:
        case SqlParser.ST_BUFFER:
        case SqlParser.ST_CENTROID:
        case SqlParser.ST_CONTAINS:
        case SqlParser.ST_CROSSES:
        case SqlParser.ST_DIFFERENCE:
        case SqlParser.ST_DIMENSION:
        case SqlParser.ST_DISJOINT:
        case SqlParser.ST_DISTANCE:
        case SqlParser.ST_ENDPOINT:
        case SqlParser.ST_ENVELOPE:
        case SqlParser.ST_EQUALS:
        case SqlParser.ST_EXTERIORRING:
        case SqlParser.ST_GEOMCOLLFROMTEXT:
        case SqlParser.ST_GEOMCOLLFROMTXT:
        case SqlParser.ST_GEOMCOLLFROMWKB:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.ST_GEOMETRYFROMTEXT:
        case SqlParser.ST_GEOMETRYFROMWKB:
        case SqlParser.ST_GEOMETRYN:
        case SqlParser.ST_GEOMETRYTYPE:
        case SqlParser.ST_GEOMFROMTEXT:
        case SqlParser.ST_GEOMFROMWKB:
        case SqlParser.ST_INTERIORRINGN:
        case SqlParser.ST_INTERSECTION:
        case SqlParser.ST_INTERSECTS:
        case SqlParser.ST_ISCLOSED:
        case SqlParser.ST_ISEMPTY:
        case SqlParser.ST_ISSIMPLE:
        case SqlParser.ST_LINEFROMTEXT:
        case SqlParser.ST_LINEFROMWKB:
        case SqlParser.ST_LINESTRINGFROMTEXT:
        case SqlParser.ST_LINESTRINGFROMWKB:
        case SqlParser.ST_NUMGEOMETRIES:
        case SqlParser.ST_NUMINTERIORRING:
        case SqlParser.ST_NUMINTERIORRINGS:
        case SqlParser.ST_NUMPOINTS:
        case SqlParser.ST_OVERLAPS:
        case SqlParser.ST_POINTFROMTEXT:
        case SqlParser.ST_POINTFROMWKB:
        case SqlParser.ST_POINTN:
        case SqlParser.ST_POLYFROMTEXT:
        case SqlParser.ST_POLYFROMWKB:
        case SqlParser.ST_POLYGONFROMTEXT:
        case SqlParser.ST_POLYGONFROMWKB:
        case SqlParser.ST_SRID:
        case SqlParser.ST_STARTPOINT:
        case SqlParser.ST_SYMDIFFERENCE:
        case SqlParser.ST_TOUCHES:
        case SqlParser.ST_UNION:
        case SqlParser.ST_WITHIN:
        case SqlParser.ST_X:
        case SqlParser.ST_Y:
        case SqlParser.SUBDATE:
        case SqlParser.SUBSTRING_INDEX:
        case SqlParser.SUBTIME:
        case SqlParser.SYSTEM_USER:
        case SqlParser.TAN:
        case SqlParser.TIMEDIFF:
        case SqlParser.TIMESTAMPADD:
        case SqlParser.TIMESTAMPDIFF:
        case SqlParser.TIME_FORMAT:
        case SqlParser.TIME_TO_SEC:
        case SqlParser.TOUCHES:
        case SqlParser.TO_BASE64:
        case SqlParser.TO_DAYS:
        case SqlParser.TO_SECONDS:
        case SqlParser.UCASE:
        case SqlParser.UNCOMPRESS:
        case SqlParser.UNCOMPRESSED_LENGTH:
        case SqlParser.UNHEX:
        case SqlParser.UNIX_TIMESTAMP:
        case SqlParser.UPDATEXML:
        case SqlParser.UPPER:
        case SqlParser.UUID:
        case SqlParser.UUID_SHORT:
        case SqlParser.VALIDATE_PASSWORD_STRENGTH:
        case SqlParser.VERSION:
        case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
        case SqlParser.WEEKDAY:
        case SqlParser.WEEKOFYEAR:
        case SqlParser.WEIGHT_STRING:
        case SqlParser.WITHIN:
        case SqlParser.YEARWEEK:
        case SqlParser.Y_FUNCTION:
        case SqlParser.X_FUNCTION:
        case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
        case SqlParser.STRING_LITERAL:
        case SqlParser.ID:
        case SqlParser.REVERSE_QUOTE_ID:
            localctx = new ColumnDeclarationContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 1411;
            this.uid();
            this.state = 1412;
            this.columnDefinition();
            break;
        case SqlParser.CHECK:
        case SqlParser.CONSTRAINT:
        case SqlParser.FOREIGN:
        case SqlParser.PRIMARY:
        case SqlParser.UNIQUE:
            localctx = new ConstraintDeclarationContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 1414;
            this.tableConstraint();
            break;
        case SqlParser.FULLTEXT:
        case SqlParser.INDEX:
        case SqlParser.KEY:
        case SqlParser.SPATIAL:
            localctx = new IndexDeclarationContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 1415;
            this.indexColumnDefinition();
            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 ColumnDefinitionContext(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_columnDefinition;
    return this;
}

ColumnDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ColumnDefinitionContext.prototype.constructor = ColumnDefinitionContext;

ColumnDefinitionContext.prototype.dataType = function() {
    return this.getTypedRuleContext(DataTypeContext,0);
};

ColumnDefinitionContext.prototype.columnConstraint = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ColumnConstraintContext);
    } else {
        return this.getTypedRuleContext(ColumnConstraintContext,i);
    }
};

ColumnDefinitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterColumnDefinition(this);
	}
};

ColumnDefinitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitColumnDefinition(this);
	}
};

ColumnDefinitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitColumnDefinition(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ColumnDefinitionContext = ColumnDefinitionContext;

SqlParser.prototype.columnDefinition = function() {

    var localctx = new ColumnDefinitionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 80, SqlParser.RULE_columnDefinition);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 1418;
        this.dataType();
        this.state = 1422;
        this._errHandler.sync(this);
        var _alt = this._interp.adaptivePredict(this._input,130,this._ctx)
        while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
            if(_alt===1) {
                this.state = 1419;
                this.columnConstraint(); 
            }
            this.state = 1424;
            this._errHandler.sync(this);
            _alt = this._interp.adaptivePredict(this._input,130,this._ctx);
        }

    } 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 ColumnConstraintContext(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_columnConstraint;
    return this;
}

ColumnConstraintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ColumnConstraintContext.prototype.constructor = ColumnConstraintContext;


 
ColumnConstraintContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function StorageColumnConstraintContext(parser, ctx) {
	ColumnConstraintContext.call(this, parser);
    this.storageval = null; // Token;
    ColumnConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

StorageColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype);
StorageColumnConstraintContext.prototype.constructor = StorageColumnConstraintContext;

SqlParser.StorageColumnConstraintContext = StorageColumnConstraintContext;

StorageColumnConstraintContext.prototype.STORAGE = function() {
    return this.getToken(SqlParser.STORAGE, 0);
};

StorageColumnConstraintContext.prototype.DISK = function() {
    return this.getToken(SqlParser.DISK, 0);
};

StorageColumnConstraintContext.prototype.MEMORY = function() {
    return this.getToken(SqlParser.MEMORY, 0);
};

StorageColumnConstraintContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};
StorageColumnConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterStorageColumnConstraint(this);
	}
};

StorageColumnConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitStorageColumnConstraint(this);
	}
};

StorageColumnConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitStorageColumnConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AutoIncrementColumnConstraintContext(parser, ctx) {
	ColumnConstraintContext.call(this, parser);
    ColumnConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AutoIncrementColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype);
AutoIncrementColumnConstraintContext.prototype.constructor = AutoIncrementColumnConstraintContext;

SqlParser.AutoIncrementColumnConstraintContext = AutoIncrementColumnConstraintContext;

AutoIncrementColumnConstraintContext.prototype.AUTO_INCREMENT = function() {
    return this.getToken(SqlParser.AUTO_INCREMENT, 0);
};

AutoIncrementColumnConstraintContext.prototype.ON = function() {
    return this.getToken(SqlParser.ON, 0);
};

AutoIncrementColumnConstraintContext.prototype.UPDATE = function() {
    return this.getToken(SqlParser.UPDATE, 0);
};

AutoIncrementColumnConstraintContext.prototype.currentTimestamp = function() {
    return this.getTypedRuleContext(CurrentTimestampContext,0);
};
AutoIncrementColumnConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAutoIncrementColumnConstraint(this);
	}
};

AutoIncrementColumnConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAutoIncrementColumnConstraint(this);
	}
};

AutoIncrementColumnConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAutoIncrementColumnConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function CommentColumnConstraintContext(parser, ctx) {
	ColumnConstraintContext.call(this, parser);
    ColumnConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

CommentColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype);
CommentColumnConstraintContext.prototype.constructor = CommentColumnConstraintContext;

SqlParser.CommentColumnConstraintContext = CommentColumnConstraintContext;

CommentColumnConstraintContext.prototype.COMMENT = function() {
    return this.getToken(SqlParser.COMMENT, 0);
};

CommentColumnConstraintContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};
CommentColumnConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCommentColumnConstraint(this);
	}
};

CommentColumnConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCommentColumnConstraint(this);
	}
};

CommentColumnConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCommentColumnConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function UniqueKeyColumnConstraintContext(parser, ctx) {
	ColumnConstraintContext.call(this, parser);
    ColumnConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

UniqueKeyColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype);
UniqueKeyColumnConstraintContext.prototype.constructor = UniqueKeyColumnConstraintContext;

SqlParser.UniqueKeyColumnConstraintContext = UniqueKeyColumnConstraintContext;

UniqueKeyColumnConstraintContext.prototype.UNIQUE = function() {
    return this.getToken(SqlParser.UNIQUE, 0);
};

UniqueKeyColumnConstraintContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};
UniqueKeyColumnConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUniqueKeyColumnConstraint(this);
	}
};

UniqueKeyColumnConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUniqueKeyColumnConstraint(this);
	}
};

UniqueKeyColumnConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUniqueKeyColumnConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SerialDefaultColumnConstraintContext(parser, ctx) {
	ColumnConstraintContext.call(this, parser);
    ColumnConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SerialDefaultColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype);
SerialDefaultColumnConstraintContext.prototype.constructor = SerialDefaultColumnConstraintContext;

SqlParser.SerialDefaultColumnConstraintContext = SerialDefaultColumnConstraintContext;

SerialDefaultColumnConstraintContext.prototype.SERIAL = function() {
    return this.getToken(SqlParser.SERIAL, 0);
};

SerialDefaultColumnConstraintContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

SerialDefaultColumnConstraintContext.prototype.VALUE = function() {
    return this.getToken(SqlParser.VALUE, 0);
};
SerialDefaultColumnConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSerialDefaultColumnConstraint(this);
	}
};

SerialDefaultColumnConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSerialDefaultColumnConstraint(this);
	}
};

SerialDefaultColumnConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSerialDefaultColumnConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function GeneratedColumnConstraintContext(parser, ctx) {
	ColumnConstraintContext.call(this, parser);
    ColumnConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

GeneratedColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype);
GeneratedColumnConstraintContext.prototype.constructor = GeneratedColumnConstraintContext;

SqlParser.GeneratedColumnConstraintContext = GeneratedColumnConstraintContext;

GeneratedColumnConstraintContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};

GeneratedColumnConstraintContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

GeneratedColumnConstraintContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

GeneratedColumnConstraintContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

GeneratedColumnConstraintContext.prototype.GENERATED = function() {
    return this.getToken(SqlParser.GENERATED, 0);
};

GeneratedColumnConstraintContext.prototype.ALWAYS = function() {
    return this.getToken(SqlParser.ALWAYS, 0);
};

GeneratedColumnConstraintContext.prototype.VIRTUAL = function() {
    return this.getToken(SqlParser.VIRTUAL, 0);
};

GeneratedColumnConstraintContext.prototype.STORED = function() {
    return this.getToken(SqlParser.STORED, 0);
};
GeneratedColumnConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterGeneratedColumnConstraint(this);
	}
};

GeneratedColumnConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitGeneratedColumnConstraint(this);
	}
};

GeneratedColumnConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitGeneratedColumnConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function FormatColumnConstraintContext(parser, ctx) {
	ColumnConstraintContext.call(this, parser);
    this.colformat = null; // Token;
    ColumnConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

FormatColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype);
FormatColumnConstraintContext.prototype.constructor = FormatColumnConstraintContext;

SqlParser.FormatColumnConstraintContext = FormatColumnConstraintContext;

FormatColumnConstraintContext.prototype.COLUMN_FORMAT = function() {
    return this.getToken(SqlParser.COLUMN_FORMAT, 0);
};

FormatColumnConstraintContext.prototype.FIXED = function() {
    return this.getToken(SqlParser.FIXED, 0);
};

FormatColumnConstraintContext.prototype.DYNAMIC = function() {
    return this.getToken(SqlParser.DYNAMIC, 0);
};

FormatColumnConstraintContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};
FormatColumnConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFormatColumnConstraint(this);
	}
};

FormatColumnConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFormatColumnConstraint(this);
	}
};

FormatColumnConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitFormatColumnConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function CollateColumnConstraintContext(parser, ctx) {
	ColumnConstraintContext.call(this, parser);
    ColumnConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

CollateColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype);
CollateColumnConstraintContext.prototype.constructor = CollateColumnConstraintContext;

SqlParser.CollateColumnConstraintContext = CollateColumnConstraintContext;

CollateColumnConstraintContext.prototype.COLLATE = function() {
    return this.getToken(SqlParser.COLLATE, 0);
};

CollateColumnConstraintContext.prototype.collationName = function() {
    return this.getTypedRuleContext(CollationNameContext,0);
};
CollateColumnConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCollateColumnConstraint(this);
	}
};

CollateColumnConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCollateColumnConstraint(this);
	}
};

CollateColumnConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCollateColumnConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PrimaryKeyColumnConstraintContext(parser, ctx) {
	ColumnConstraintContext.call(this, parser);
    ColumnConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PrimaryKeyColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype);
PrimaryKeyColumnConstraintContext.prototype.constructor = PrimaryKeyColumnConstraintContext;

SqlParser.PrimaryKeyColumnConstraintContext = PrimaryKeyColumnConstraintContext;

PrimaryKeyColumnConstraintContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

PrimaryKeyColumnConstraintContext.prototype.PRIMARY = function() {
    return this.getToken(SqlParser.PRIMARY, 0);
};
PrimaryKeyColumnConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPrimaryKeyColumnConstraint(this);
	}
};

PrimaryKeyColumnConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPrimaryKeyColumnConstraint(this);
	}
};

PrimaryKeyColumnConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPrimaryKeyColumnConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function CheckColumnConstraintContext(parser, ctx) {
	ColumnConstraintContext.call(this, parser);
    this.name = null; // UidContext;
    ColumnConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

CheckColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype);
CheckColumnConstraintContext.prototype.constructor = CheckColumnConstraintContext;

SqlParser.CheckColumnConstraintContext = CheckColumnConstraintContext;

CheckColumnConstraintContext.prototype.CHECK = function() {
    return this.getToken(SqlParser.CHECK, 0);
};

CheckColumnConstraintContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

CheckColumnConstraintContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

CheckColumnConstraintContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

CheckColumnConstraintContext.prototype.CONSTRAINT = function() {
    return this.getToken(SqlParser.CONSTRAINT, 0);
};

CheckColumnConstraintContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};
CheckColumnConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCheckColumnConstraint(this);
	}
};

CheckColumnConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCheckColumnConstraint(this);
	}
};

CheckColumnConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCheckColumnConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function NullColumnConstraintContext(parser, ctx) {
	ColumnConstraintContext.call(this, parser);
    ColumnConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

NullColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype);
NullColumnConstraintContext.prototype.constructor = NullColumnConstraintContext;

SqlParser.NullColumnConstraintContext = NullColumnConstraintContext;

NullColumnConstraintContext.prototype.nullNotnull = function() {
    return this.getTypedRuleContext(NullNotnullContext,0);
};
NullColumnConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterNullColumnConstraint(this);
	}
};

NullColumnConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitNullColumnConstraint(this);
	}
};

NullColumnConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitNullColumnConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function DefaultColumnConstraintContext(parser, ctx) {
	ColumnConstraintContext.call(this, parser);
    ColumnConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

DefaultColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype);
DefaultColumnConstraintContext.prototype.constructor = DefaultColumnConstraintContext;

SqlParser.DefaultColumnConstraintContext = DefaultColumnConstraintContext;

DefaultColumnConstraintContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

DefaultColumnConstraintContext.prototype.defaultValue = function() {
    return this.getTypedRuleContext(DefaultValueContext,0);
};
DefaultColumnConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDefaultColumnConstraint(this);
	}
};

DefaultColumnConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDefaultColumnConstraint(this);
	}
};

DefaultColumnConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDefaultColumnConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ReferenceColumnConstraintContext(parser, ctx) {
	ColumnConstraintContext.call(this, parser);
    ColumnConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ReferenceColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype);
ReferenceColumnConstraintContext.prototype.constructor = ReferenceColumnConstraintContext;

SqlParser.ReferenceColumnConstraintContext = ReferenceColumnConstraintContext;

ReferenceColumnConstraintContext.prototype.referenceDefinition = function() {
    return this.getTypedRuleContext(ReferenceDefinitionContext,0);
};
ReferenceColumnConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterReferenceColumnConstraint(this);
	}
};

ReferenceColumnConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitReferenceColumnConstraint(this);
	}
};

ReferenceColumnConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitReferenceColumnConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.ColumnConstraintContext = ColumnConstraintContext;

SqlParser.prototype.columnConstraint = function() {

    var localctx = new ColumnConstraintContext(this, this._ctx, this.state);
    this.enterRule(localctx, 82, SqlParser.RULE_columnConstraint);
    var _la = 0; // Token type
    try {
        this.state = 1476;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.NOT:
        case SqlParser.NULL_LITERAL:
        case SqlParser.NULL_SPEC_LITERAL:
            localctx = new NullColumnConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 1425;
            this.nullNotnull();
            break;
        case SqlParser.DEFAULT:
            localctx = new DefaultColumnConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 1426;
            this.match(SqlParser.DEFAULT);
            this.state = 1427;
            this.defaultValue();
            break;
        case SqlParser.ON:
        case SqlParser.AUTO_INCREMENT:
            localctx = new AutoIncrementColumnConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 1432;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.AUTO_INCREMENT:
                this.state = 1428;
                this.match(SqlParser.AUTO_INCREMENT);
                break;
            case SqlParser.ON:
                this.state = 1429;
                this.match(SqlParser.ON);
                this.state = 1430;
                this.match(SqlParser.UPDATE);
                this.state = 1431;
                this.currentTimestamp();
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;
        case SqlParser.KEY:
        case SqlParser.PRIMARY:
            localctx = new PrimaryKeyColumnConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 1435;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.PRIMARY) {
                this.state = 1434;
                this.match(SqlParser.PRIMARY);
            }

            this.state = 1437;
            this.match(SqlParser.KEY);
            break;
        case SqlParser.UNIQUE:
            localctx = new UniqueKeyColumnConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 1438;
            this.match(SqlParser.UNIQUE);
            this.state = 1440;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,133,this._ctx);
            if(la_===1) {
                this.state = 1439;
                this.match(SqlParser.KEY);

            }
            break;
        case SqlParser.COMMENT:
            localctx = new CommentColumnConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 6);
            this.state = 1442;
            this.match(SqlParser.COMMENT);
            this.state = 1443;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.COLUMN_FORMAT:
            localctx = new FormatColumnConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 7);
            this.state = 1444;
            this.match(SqlParser.COLUMN_FORMAT);
            this.state = 1445;
            localctx.colformat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DEFAULT || _la===SqlParser.DYNAMIC || _la===SqlParser.FIXED)) {
                localctx.colformat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;
        case SqlParser.STORAGE:
            localctx = new StorageColumnConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 8);
            this.state = 1446;
            this.match(SqlParser.STORAGE);
            this.state = 1447;
            localctx.storageval = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DEFAULT || _la===SqlParser.DISK || _la===SqlParser.MEMORY)) {
                localctx.storageval = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;
        case SqlParser.REFERENCES:
            localctx = new ReferenceColumnConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 9);
            this.state = 1448;
            this.referenceDefinition();
            break;
        case SqlParser.COLLATE:
            localctx = new CollateColumnConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 10);
            this.state = 1449;
            this.match(SqlParser.COLLATE);
            this.state = 1450;
            this.collationName();
            break;
        case SqlParser.AS:
        case SqlParser.GENERATED:
            localctx = new GeneratedColumnConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 11);
            this.state = 1453;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.GENERATED) {
                this.state = 1451;
                this.match(SqlParser.GENERATED);
                this.state = 1452;
                this.match(SqlParser.ALWAYS);
            }

            this.state = 1455;
            this.match(SqlParser.AS);
            this.state = 1456;
            this.match(SqlParser.LR_BRACKET);
            this.state = 1457;
            this.expression(0);
            this.state = 1458;
            this.match(SqlParser.RR_BRACKET);
            this.state = 1460;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.STORED || _la===SqlParser.VIRTUAL) {
                this.state = 1459;
                _la = this._input.LA(1);
                if(!(_la===SqlParser.STORED || _la===SqlParser.VIRTUAL)) {
                this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            break;
        case SqlParser.SERIAL:
            localctx = new SerialDefaultColumnConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 12);
            this.state = 1462;
            this.match(SqlParser.SERIAL);
            this.state = 1463;
            this.match(SqlParser.DEFAULT);
            this.state = 1464;
            this.match(SqlParser.VALUE);
            break;
        case SqlParser.CHECK:
        case SqlParser.CONSTRAINT:
            localctx = new CheckColumnConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 13);
            this.state = 1469;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.CONSTRAINT) {
                this.state = 1465;
                this.match(SqlParser.CONSTRAINT);
                this.state = 1467;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                    this.state = 1466;
                    localctx.name = this.uid();
                }

            }

            this.state = 1471;
            this.match(SqlParser.CHECK);
            this.state = 1472;
            this.match(SqlParser.LR_BRACKET);
            this.state = 1473;
            this.expression(0);
            this.state = 1474;
            this.match(SqlParser.RR_BRACKET);
            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 TableConstraintContext(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_tableConstraint;
    return this;
}

TableConstraintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TableConstraintContext.prototype.constructor = TableConstraintContext;


 
TableConstraintContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function UniqueKeyTableConstraintContext(parser, ctx) {
	TableConstraintContext.call(this, parser);
    this.name = null; // UidContext;
    this.indexFormat = null; // Token;
    this.index = null; // UidContext;
    TableConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

UniqueKeyTableConstraintContext.prototype = Object.create(TableConstraintContext.prototype);
UniqueKeyTableConstraintContext.prototype.constructor = UniqueKeyTableConstraintContext;

SqlParser.UniqueKeyTableConstraintContext = UniqueKeyTableConstraintContext;

UniqueKeyTableConstraintContext.prototype.UNIQUE = function() {
    return this.getToken(SqlParser.UNIQUE, 0);
};

UniqueKeyTableConstraintContext.prototype.indexColumnNames = function() {
    return this.getTypedRuleContext(IndexColumnNamesContext,0);
};

UniqueKeyTableConstraintContext.prototype.CONSTRAINT = function() {
    return this.getToken(SqlParser.CONSTRAINT, 0);
};

UniqueKeyTableConstraintContext.prototype.indexType = function() {
    return this.getTypedRuleContext(IndexTypeContext,0);
};

UniqueKeyTableConstraintContext.prototype.indexOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(IndexOptionContext);
    } else {
        return this.getTypedRuleContext(IndexOptionContext,i);
    }
};

UniqueKeyTableConstraintContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

UniqueKeyTableConstraintContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

UniqueKeyTableConstraintContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};
UniqueKeyTableConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUniqueKeyTableConstraint(this);
	}
};

UniqueKeyTableConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUniqueKeyTableConstraint(this);
	}
};

UniqueKeyTableConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUniqueKeyTableConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function CheckTableConstraintContext(parser, ctx) {
	TableConstraintContext.call(this, parser);
    this.name = null; // UidContext;
    TableConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

CheckTableConstraintContext.prototype = Object.create(TableConstraintContext.prototype);
CheckTableConstraintContext.prototype.constructor = CheckTableConstraintContext;

SqlParser.CheckTableConstraintContext = CheckTableConstraintContext;

CheckTableConstraintContext.prototype.CHECK = function() {
    return this.getToken(SqlParser.CHECK, 0);
};

CheckTableConstraintContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

CheckTableConstraintContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

CheckTableConstraintContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

CheckTableConstraintContext.prototype.CONSTRAINT = function() {
    return this.getToken(SqlParser.CONSTRAINT, 0);
};

CheckTableConstraintContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};
CheckTableConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCheckTableConstraint(this);
	}
};

CheckTableConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCheckTableConstraint(this);
	}
};

CheckTableConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCheckTableConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PrimaryKeyTableConstraintContext(parser, ctx) {
	TableConstraintContext.call(this, parser);
    this.name = null; // UidContext;
    this.index = null; // UidContext;
    TableConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PrimaryKeyTableConstraintContext.prototype = Object.create(TableConstraintContext.prototype);
PrimaryKeyTableConstraintContext.prototype.constructor = PrimaryKeyTableConstraintContext;

SqlParser.PrimaryKeyTableConstraintContext = PrimaryKeyTableConstraintContext;

PrimaryKeyTableConstraintContext.prototype.PRIMARY = function() {
    return this.getToken(SqlParser.PRIMARY, 0);
};

PrimaryKeyTableConstraintContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

PrimaryKeyTableConstraintContext.prototype.indexColumnNames = function() {
    return this.getTypedRuleContext(IndexColumnNamesContext,0);
};

PrimaryKeyTableConstraintContext.prototype.CONSTRAINT = function() {
    return this.getToken(SqlParser.CONSTRAINT, 0);
};

PrimaryKeyTableConstraintContext.prototype.indexType = function() {
    return this.getTypedRuleContext(IndexTypeContext,0);
};

PrimaryKeyTableConstraintContext.prototype.indexOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(IndexOptionContext);
    } else {
        return this.getTypedRuleContext(IndexOptionContext,i);
    }
};

PrimaryKeyTableConstraintContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};
PrimaryKeyTableConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPrimaryKeyTableConstraint(this);
	}
};

PrimaryKeyTableConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPrimaryKeyTableConstraint(this);
	}
};

PrimaryKeyTableConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPrimaryKeyTableConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ForeignKeyTableConstraintContext(parser, ctx) {
	TableConstraintContext.call(this, parser);
    this.name = null; // UidContext;
    this.index = null; // UidContext;
    TableConstraintContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ForeignKeyTableConstraintContext.prototype = Object.create(TableConstraintContext.prototype);
ForeignKeyTableConstraintContext.prototype.constructor = ForeignKeyTableConstraintContext;

SqlParser.ForeignKeyTableConstraintContext = ForeignKeyTableConstraintContext;

ForeignKeyTableConstraintContext.prototype.FOREIGN = function() {
    return this.getToken(SqlParser.FOREIGN, 0);
};

ForeignKeyTableConstraintContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

ForeignKeyTableConstraintContext.prototype.indexColumnNames = function() {
    return this.getTypedRuleContext(IndexColumnNamesContext,0);
};

ForeignKeyTableConstraintContext.prototype.referenceDefinition = function() {
    return this.getTypedRuleContext(ReferenceDefinitionContext,0);
};

ForeignKeyTableConstraintContext.prototype.CONSTRAINT = function() {
    return this.getToken(SqlParser.CONSTRAINT, 0);
};

ForeignKeyTableConstraintContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};
ForeignKeyTableConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterForeignKeyTableConstraint(this);
	}
};

ForeignKeyTableConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitForeignKeyTableConstraint(this);
	}
};

ForeignKeyTableConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitForeignKeyTableConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.TableConstraintContext = TableConstraintContext;

SqlParser.prototype.tableConstraint = function() {

    var localctx = new TableConstraintContext(this, this._ctx, this.state);
    this.enterRule(localctx, 84, SqlParser.RULE_tableConstraint);
    var _la = 0; // Token type
    try {
        this.state = 1547;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,155,this._ctx);
        switch(la_) {
        case 1:
            localctx = new PrimaryKeyTableConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 1482;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.CONSTRAINT) {
                this.state = 1478;
                this.match(SqlParser.CONSTRAINT);
                this.state = 1480;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                    this.state = 1479;
                    localctx.name = this.uid();
                }

            }

            this.state = 1484;
            this.match(SqlParser.PRIMARY);
            this.state = 1485;
            this.match(SqlParser.KEY);
            this.state = 1487;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                this.state = 1486;
                localctx.index = this.uid();
            }

            this.state = 1490;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.USING) {
                this.state = 1489;
                this.indexType();
            }

            this.state = 1492;
            this.indexColumnNames();
            this.state = 1496;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.USING || _la===SqlParser.WITH || _la===SqlParser.COMMENT || _la===SqlParser.INVISIBLE || _la===SqlParser.KEY_BLOCK_SIZE || _la===SqlParser.VISIBLE) {
                this.state = 1493;
                this.indexOption();
                this.state = 1498;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;

        case 2:
            localctx = new UniqueKeyTableConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 1503;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.CONSTRAINT) {
                this.state = 1499;
                this.match(SqlParser.CONSTRAINT);
                this.state = 1501;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                    this.state = 1500;
                    localctx.name = this.uid();
                }

            }

            this.state = 1505;
            this.match(SqlParser.UNIQUE);
            this.state = 1507;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.INDEX || _la===SqlParser.KEY) {
                this.state = 1506;
                localctx.indexFormat = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.INDEX || _la===SqlParser.KEY)) {
                    localctx.indexFormat = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 1510;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                this.state = 1509;
                localctx.index = this.uid();
            }

            this.state = 1513;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.USING) {
                this.state = 1512;
                this.indexType();
            }

            this.state = 1515;
            this.indexColumnNames();
            this.state = 1519;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.USING || _la===SqlParser.WITH || _la===SqlParser.COMMENT || _la===SqlParser.INVISIBLE || _la===SqlParser.KEY_BLOCK_SIZE || _la===SqlParser.VISIBLE) {
                this.state = 1516;
                this.indexOption();
                this.state = 1521;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;

        case 3:
            localctx = new ForeignKeyTableConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 1526;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.CONSTRAINT) {
                this.state = 1522;
                this.match(SqlParser.CONSTRAINT);
                this.state = 1524;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                    this.state = 1523;
                    localctx.name = this.uid();
                }

            }

            this.state = 1528;
            this.match(SqlParser.FOREIGN);
            this.state = 1529;
            this.match(SqlParser.KEY);
            this.state = 1531;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                this.state = 1530;
                localctx.index = this.uid();
            }

            this.state = 1533;
            this.indexColumnNames();
            this.state = 1534;
            this.referenceDefinition();
            break;

        case 4:
            localctx = new CheckTableConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 1540;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.CONSTRAINT) {
                this.state = 1536;
                this.match(SqlParser.CONSTRAINT);
                this.state = 1538;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                    this.state = 1537;
                    localctx.name = this.uid();
                }

            }

            this.state = 1542;
            this.match(SqlParser.CHECK);
            this.state = 1543;
            this.match(SqlParser.LR_BRACKET);
            this.state = 1544;
            this.expression(0);
            this.state = 1545;
            this.match(SqlParser.RR_BRACKET);
            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 ReferenceDefinitionContext(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_referenceDefinition;
    this.matchType = null; // Token
    return this;
}

ReferenceDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ReferenceDefinitionContext.prototype.constructor = ReferenceDefinitionContext;

ReferenceDefinitionContext.prototype.REFERENCES = function() {
    return this.getToken(SqlParser.REFERENCES, 0);
};

ReferenceDefinitionContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

ReferenceDefinitionContext.prototype.indexColumnNames = function() {
    return this.getTypedRuleContext(IndexColumnNamesContext,0);
};

ReferenceDefinitionContext.prototype.MATCH = function() {
    return this.getToken(SqlParser.MATCH, 0);
};

ReferenceDefinitionContext.prototype.referenceAction = function() {
    return this.getTypedRuleContext(ReferenceActionContext,0);
};

ReferenceDefinitionContext.prototype.FULL = function() {
    return this.getToken(SqlParser.FULL, 0);
};

ReferenceDefinitionContext.prototype.PARTIAL = function() {
    return this.getToken(SqlParser.PARTIAL, 0);
};

ReferenceDefinitionContext.prototype.SIMPLE = function() {
    return this.getToken(SqlParser.SIMPLE, 0);
};

ReferenceDefinitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterReferenceDefinition(this);
	}
};

ReferenceDefinitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitReferenceDefinition(this);
	}
};

ReferenceDefinitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitReferenceDefinition(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ReferenceDefinitionContext = ReferenceDefinitionContext;

SqlParser.prototype.referenceDefinition = function() {

    var localctx = new ReferenceDefinitionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 86, SqlParser.RULE_referenceDefinition);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 1549;
        this.match(SqlParser.REFERENCES);
        this.state = 1550;
        this.tableName();
        this.state = 1552;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,156,this._ctx);
        if(la_===1) {
            this.state = 1551;
            this.indexColumnNames();

        }
        this.state = 1556;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.MATCH) {
            this.state = 1554;
            this.match(SqlParser.MATCH);
            this.state = 1555;
            localctx.matchType = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.FULL || _la===SqlParser.PARTIAL || _la===SqlParser.SIMPLE)) {
                localctx.matchType = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 1559;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,158,this._ctx);
        if(la_===1) {
            this.state = 1558;
            this.referenceAction();

        }
    } 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 ReferenceActionContext(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_referenceAction;
    this.onDelete = null; // ReferenceControlTypeContext
    this.onUpdate = null; // ReferenceControlTypeContext
    return this;
}

ReferenceActionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ReferenceActionContext.prototype.constructor = ReferenceActionContext;

ReferenceActionContext.prototype.ON = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.ON);
    } else {
        return this.getToken(SqlParser.ON, i);
    }
};


ReferenceActionContext.prototype.DELETE = function() {
    return this.getToken(SqlParser.DELETE, 0);
};

ReferenceActionContext.prototype.referenceControlType = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ReferenceControlTypeContext);
    } else {
        return this.getTypedRuleContext(ReferenceControlTypeContext,i);
    }
};

ReferenceActionContext.prototype.UPDATE = function() {
    return this.getToken(SqlParser.UPDATE, 0);
};

ReferenceActionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterReferenceAction(this);
	}
};

ReferenceActionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitReferenceAction(this);
	}
};

ReferenceActionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitReferenceAction(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ReferenceActionContext = ReferenceActionContext;

SqlParser.prototype.referenceAction = function() {

    var localctx = new ReferenceActionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 88, SqlParser.RULE_referenceAction);
    try {
        this.state = 1577;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,161,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 1561;
            this.match(SqlParser.ON);
            this.state = 1562;
            this.match(SqlParser.DELETE);
            this.state = 1563;
            localctx.onDelete = this.referenceControlType();
            this.state = 1567;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,159,this._ctx);
            if(la_===1) {
                this.state = 1564;
                this.match(SqlParser.ON);
                this.state = 1565;
                this.match(SqlParser.UPDATE);
                this.state = 1566;
                localctx.onUpdate = this.referenceControlType();

            }
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 1569;
            this.match(SqlParser.ON);
            this.state = 1570;
            this.match(SqlParser.UPDATE);
            this.state = 1571;
            localctx.onUpdate = this.referenceControlType();
            this.state = 1575;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,160,this._ctx);
            if(la_===1) {
                this.state = 1572;
                this.match(SqlParser.ON);
                this.state = 1573;
                this.match(SqlParser.DELETE);
                this.state = 1574;
                localctx.onDelete = this.referenceControlType();

            }
            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 ReferenceControlTypeContext(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_referenceControlType;
    return this;
}

ReferenceControlTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ReferenceControlTypeContext.prototype.constructor = ReferenceControlTypeContext;

ReferenceControlTypeContext.prototype.RESTRICT = function() {
    return this.getToken(SqlParser.RESTRICT, 0);
};

ReferenceControlTypeContext.prototype.CASCADE = function() {
    return this.getToken(SqlParser.CASCADE, 0);
};

ReferenceControlTypeContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

ReferenceControlTypeContext.prototype.NULL_LITERAL = function() {
    return this.getToken(SqlParser.NULL_LITERAL, 0);
};

ReferenceControlTypeContext.prototype.NO = function() {
    return this.getToken(SqlParser.NO, 0);
};

ReferenceControlTypeContext.prototype.ACTION = function() {
    return this.getToken(SqlParser.ACTION, 0);
};

ReferenceControlTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterReferenceControlType(this);
	}
};

ReferenceControlTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitReferenceControlType(this);
	}
};

ReferenceControlTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitReferenceControlType(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ReferenceControlTypeContext = ReferenceControlTypeContext;

SqlParser.prototype.referenceControlType = function() {

    var localctx = new ReferenceControlTypeContext(this, this._ctx, this.state);
    this.enterRule(localctx, 90, SqlParser.RULE_referenceControlType);
    try {
        this.state = 1585;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.RESTRICT:
            this.enterOuterAlt(localctx, 1);
            this.state = 1579;
            this.match(SqlParser.RESTRICT);
            break;
        case SqlParser.CASCADE:
            this.enterOuterAlt(localctx, 2);
            this.state = 1580;
            this.match(SqlParser.CASCADE);
            break;
        case SqlParser.SET:
            this.enterOuterAlt(localctx, 3);
            this.state = 1581;
            this.match(SqlParser.SET);
            this.state = 1582;
            this.match(SqlParser.NULL_LITERAL);
            break;
        case SqlParser.NO:
            this.enterOuterAlt(localctx, 4);
            this.state = 1583;
            this.match(SqlParser.NO);
            this.state = 1584;
            this.match(SqlParser.ACTION);
            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 IndexColumnDefinitionContext(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_indexColumnDefinition;
    return this;
}

IndexColumnDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IndexColumnDefinitionContext.prototype.constructor = IndexColumnDefinitionContext;


 
IndexColumnDefinitionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function SpecialIndexDeclarationContext(parser, ctx) {
	IndexColumnDefinitionContext.call(this, parser);
    this.indexFormat = null; // Token;
    IndexColumnDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SpecialIndexDeclarationContext.prototype = Object.create(IndexColumnDefinitionContext.prototype);
SpecialIndexDeclarationContext.prototype.constructor = SpecialIndexDeclarationContext;

SqlParser.SpecialIndexDeclarationContext = SpecialIndexDeclarationContext;

SpecialIndexDeclarationContext.prototype.indexColumnNames = function() {
    return this.getTypedRuleContext(IndexColumnNamesContext,0);
};

SpecialIndexDeclarationContext.prototype.FULLTEXT = function() {
    return this.getToken(SqlParser.FULLTEXT, 0);
};

SpecialIndexDeclarationContext.prototype.SPATIAL = function() {
    return this.getToken(SqlParser.SPATIAL, 0);
};

SpecialIndexDeclarationContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

SpecialIndexDeclarationContext.prototype.indexOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(IndexOptionContext);
    } else {
        return this.getTypedRuleContext(IndexOptionContext,i);
    }
};

SpecialIndexDeclarationContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

SpecialIndexDeclarationContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};
SpecialIndexDeclarationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSpecialIndexDeclaration(this);
	}
};

SpecialIndexDeclarationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSpecialIndexDeclaration(this);
	}
};

SpecialIndexDeclarationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSpecialIndexDeclaration(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SimpleIndexDeclarationContext(parser, ctx) {
	IndexColumnDefinitionContext.call(this, parser);
    this.indexFormat = null; // Token;
    IndexColumnDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SimpleIndexDeclarationContext.prototype = Object.create(IndexColumnDefinitionContext.prototype);
SimpleIndexDeclarationContext.prototype.constructor = SimpleIndexDeclarationContext;

SqlParser.SimpleIndexDeclarationContext = SimpleIndexDeclarationContext;

SimpleIndexDeclarationContext.prototype.indexColumnNames = function() {
    return this.getTypedRuleContext(IndexColumnNamesContext,0);
};

SimpleIndexDeclarationContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

SimpleIndexDeclarationContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

SimpleIndexDeclarationContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

SimpleIndexDeclarationContext.prototype.indexType = function() {
    return this.getTypedRuleContext(IndexTypeContext,0);
};

SimpleIndexDeclarationContext.prototype.indexOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(IndexOptionContext);
    } else {
        return this.getTypedRuleContext(IndexOptionContext,i);
    }
};
SimpleIndexDeclarationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSimpleIndexDeclaration(this);
	}
};

SimpleIndexDeclarationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSimpleIndexDeclaration(this);
	}
};

SimpleIndexDeclarationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSimpleIndexDeclaration(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.IndexColumnDefinitionContext = IndexColumnDefinitionContext;

SqlParser.prototype.indexColumnDefinition = function() {

    var localctx = new IndexColumnDefinitionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 92, SqlParser.RULE_indexColumnDefinition);
    var _la = 0; // Token type
    try {
        this.state = 1615;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.INDEX:
        case SqlParser.KEY:
            localctx = new SimpleIndexDeclarationContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 1587;
            localctx.indexFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.INDEX || _la===SqlParser.KEY)) {
                localctx.indexFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 1589;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                this.state = 1588;
                this.uid();
            }

            this.state = 1592;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.USING) {
                this.state = 1591;
                this.indexType();
            }

            this.state = 1594;
            this.indexColumnNames();
            this.state = 1598;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.USING || _la===SqlParser.WITH || _la===SqlParser.COMMENT || _la===SqlParser.INVISIBLE || _la===SqlParser.KEY_BLOCK_SIZE || _la===SqlParser.VISIBLE) {
                this.state = 1595;
                this.indexOption();
                this.state = 1600;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;
        case SqlParser.FULLTEXT:
        case SqlParser.SPATIAL:
            localctx = new SpecialIndexDeclarationContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 1601;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.FULLTEXT || _la===SqlParser.SPATIAL)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 1603;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.INDEX || _la===SqlParser.KEY) {
                this.state = 1602;
                localctx.indexFormat = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.INDEX || _la===SqlParser.KEY)) {
                    localctx.indexFormat = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 1606;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                this.state = 1605;
                this.uid();
            }

            this.state = 1608;
            this.indexColumnNames();
            this.state = 1612;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.USING || _la===SqlParser.WITH || _la===SqlParser.COMMENT || _la===SqlParser.INVISIBLE || _la===SqlParser.KEY_BLOCK_SIZE || _la===SqlParser.VISIBLE) {
                this.state = 1609;
                this.indexOption();
                this.state = 1614;
                this._errHandler.sync(this);
                _la = this._input.LA(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 TableOptionContext(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_tableOption;
    return this;
}

TableOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TableOptionContext.prototype.constructor = TableOptionContext;


 
TableOptionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function TableOptionEngineContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionEngineContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionEngineContext.prototype.constructor = TableOptionEngineContext;

SqlParser.TableOptionEngineContext = TableOptionEngineContext;

TableOptionEngineContext.prototype.ENGINE = function() {
    return this.getToken(SqlParser.ENGINE, 0);
};

TableOptionEngineContext.prototype.engineName = function() {
    return this.getTypedRuleContext(EngineNameContext,0);
};

TableOptionEngineContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionEngineContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionEngine(this);
	}
};

TableOptionEngineContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionEngine(this);
	}
};

TableOptionEngineContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionEngine(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionMaxRowsContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionMaxRowsContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionMaxRowsContext.prototype.constructor = TableOptionMaxRowsContext;

SqlParser.TableOptionMaxRowsContext = TableOptionMaxRowsContext;

TableOptionMaxRowsContext.prototype.MAX_ROWS = function() {
    return this.getToken(SqlParser.MAX_ROWS, 0);
};

TableOptionMaxRowsContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

TableOptionMaxRowsContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionMaxRowsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionMaxRows(this);
	}
};

TableOptionMaxRowsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionMaxRows(this);
	}
};

TableOptionMaxRowsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionMaxRows(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionCollateContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionCollateContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionCollateContext.prototype.constructor = TableOptionCollateContext;

SqlParser.TableOptionCollateContext = TableOptionCollateContext;

TableOptionCollateContext.prototype.COLLATE = function() {
    return this.getToken(SqlParser.COLLATE, 0);
};

TableOptionCollateContext.prototype.collationName = function() {
    return this.getTypedRuleContext(CollationNameContext,0);
};

TableOptionCollateContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

TableOptionCollateContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionCollateContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionCollate(this);
	}
};

TableOptionCollateContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionCollate(this);
	}
};

TableOptionCollateContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionCollate(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionPersistentContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    this.extBoolValue = null; // Token;
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionPersistentContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionPersistentContext.prototype.constructor = TableOptionPersistentContext;

SqlParser.TableOptionPersistentContext = TableOptionPersistentContext;

TableOptionPersistentContext.prototype.STATS_PERSISTENT = function() {
    return this.getToken(SqlParser.STATS_PERSISTENT, 0);
};

TableOptionPersistentContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

TableOptionPersistentContext.prototype.ZERO_DECIMAL = function() {
    return this.getToken(SqlParser.ZERO_DECIMAL, 0);
};

TableOptionPersistentContext.prototype.ONE_DECIMAL = function() {
    return this.getToken(SqlParser.ONE_DECIMAL, 0);
};

TableOptionPersistentContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionPersistentContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionPersistent(this);
	}
};

TableOptionPersistentContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionPersistent(this);
	}
};

TableOptionPersistentContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionPersistent(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionTablespaceContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionTablespaceContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionTablespaceContext.prototype.constructor = TableOptionTablespaceContext;

SqlParser.TableOptionTablespaceContext = TableOptionTablespaceContext;

TableOptionTablespaceContext.prototype.TABLESPACE = function() {
    return this.getToken(SqlParser.TABLESPACE, 0);
};

TableOptionTablespaceContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

TableOptionTablespaceContext.prototype.tablespaceStorage = function() {
    return this.getTypedRuleContext(TablespaceStorageContext,0);
};
TableOptionTablespaceContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionTablespace(this);
	}
};

TableOptionTablespaceContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionTablespace(this);
	}
};

TableOptionTablespaceContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionTablespace(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionPackKeysContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    this.extBoolValue = null; // Token;
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionPackKeysContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionPackKeysContext.prototype.constructor = TableOptionPackKeysContext;

SqlParser.TableOptionPackKeysContext = TableOptionPackKeysContext;

TableOptionPackKeysContext.prototype.PACK_KEYS = function() {
    return this.getToken(SqlParser.PACK_KEYS, 0);
};

TableOptionPackKeysContext.prototype.ZERO_DECIMAL = function() {
    return this.getToken(SqlParser.ZERO_DECIMAL, 0);
};

TableOptionPackKeysContext.prototype.ONE_DECIMAL = function() {
    return this.getToken(SqlParser.ONE_DECIMAL, 0);
};

TableOptionPackKeysContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

TableOptionPackKeysContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionPackKeysContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionPackKeys(this);
	}
};

TableOptionPackKeysContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionPackKeys(this);
	}
};

TableOptionPackKeysContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionPackKeys(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionPasswordContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionPasswordContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionPasswordContext.prototype.constructor = TableOptionPasswordContext;

SqlParser.TableOptionPasswordContext = TableOptionPasswordContext;

TableOptionPasswordContext.prototype.PASSWORD = function() {
    return this.getToken(SqlParser.PASSWORD, 0);
};

TableOptionPasswordContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

TableOptionPasswordContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionPasswordContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionPassword(this);
	}
};

TableOptionPasswordContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionPassword(this);
	}
};

TableOptionPasswordContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionPassword(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionUnionContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionUnionContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionUnionContext.prototype.constructor = TableOptionUnionContext;

SqlParser.TableOptionUnionContext = TableOptionUnionContext;

TableOptionUnionContext.prototype.UNION = function() {
    return this.getToken(SqlParser.UNION, 0);
};

TableOptionUnionContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

TableOptionUnionContext.prototype.tables = function() {
    return this.getTypedRuleContext(TablesContext,0);
};

TableOptionUnionContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

TableOptionUnionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionUnionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionUnion(this);
	}
};

TableOptionUnionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionUnion(this);
	}
};

TableOptionUnionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionUnion(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionSamplePageContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionSamplePageContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionSamplePageContext.prototype.constructor = TableOptionSamplePageContext;

SqlParser.TableOptionSamplePageContext = TableOptionSamplePageContext;

TableOptionSamplePageContext.prototype.STATS_SAMPLE_PAGES = function() {
    return this.getToken(SqlParser.STATS_SAMPLE_PAGES, 0);
};

TableOptionSamplePageContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

TableOptionSamplePageContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionSamplePageContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionSamplePage(this);
	}
};

TableOptionSamplePageContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionSamplePage(this);
	}
};

TableOptionSamplePageContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionSamplePage(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionCharsetContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionCharsetContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionCharsetContext.prototype.constructor = TableOptionCharsetContext;

SqlParser.TableOptionCharsetContext = TableOptionCharsetContext;

TableOptionCharsetContext.prototype.CHARACTER = function() {
    return this.getToken(SqlParser.CHARACTER, 0);
};

TableOptionCharsetContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

TableOptionCharsetContext.prototype.CHARSET = function() {
    return this.getToken(SqlParser.CHARSET, 0);
};

TableOptionCharsetContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};

TableOptionCharsetContext.prototype.DEFAULT = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.DEFAULT);
    } else {
        return this.getToken(SqlParser.DEFAULT, i);
    }
};


TableOptionCharsetContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionCharsetContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionCharset(this);
	}
};

TableOptionCharsetContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionCharset(this);
	}
};

TableOptionCharsetContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionCharset(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionIndexDirectoryContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionIndexDirectoryContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionIndexDirectoryContext.prototype.constructor = TableOptionIndexDirectoryContext;

SqlParser.TableOptionIndexDirectoryContext = TableOptionIndexDirectoryContext;

TableOptionIndexDirectoryContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

TableOptionIndexDirectoryContext.prototype.DIRECTORY = function() {
    return this.getToken(SqlParser.DIRECTORY, 0);
};

TableOptionIndexDirectoryContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

TableOptionIndexDirectoryContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionIndexDirectoryContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionIndexDirectory(this);
	}
};

TableOptionIndexDirectoryContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionIndexDirectory(this);
	}
};

TableOptionIndexDirectoryContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionIndexDirectory(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionKeyBlockSizeContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionKeyBlockSizeContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionKeyBlockSizeContext.prototype.constructor = TableOptionKeyBlockSizeContext;

SqlParser.TableOptionKeyBlockSizeContext = TableOptionKeyBlockSizeContext;

TableOptionKeyBlockSizeContext.prototype.KEY_BLOCK_SIZE = function() {
    return this.getToken(SqlParser.KEY_BLOCK_SIZE, 0);
};

TableOptionKeyBlockSizeContext.prototype.fileSizeLiteral = function() {
    return this.getTypedRuleContext(FileSizeLiteralContext,0);
};

TableOptionKeyBlockSizeContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionKeyBlockSizeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionKeyBlockSize(this);
	}
};

TableOptionKeyBlockSizeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionKeyBlockSize(this);
	}
};

TableOptionKeyBlockSizeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionKeyBlockSize(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionEncryptionContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionEncryptionContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionEncryptionContext.prototype.constructor = TableOptionEncryptionContext;

SqlParser.TableOptionEncryptionContext = TableOptionEncryptionContext;

TableOptionEncryptionContext.prototype.ENCRYPTION = function() {
    return this.getToken(SqlParser.ENCRYPTION, 0);
};

TableOptionEncryptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

TableOptionEncryptionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionEncryptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionEncryption(this);
	}
};

TableOptionEncryptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionEncryption(this);
	}
};

TableOptionEncryptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionEncryption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionDataDirectoryContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionDataDirectoryContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionDataDirectoryContext.prototype.constructor = TableOptionDataDirectoryContext;

SqlParser.TableOptionDataDirectoryContext = TableOptionDataDirectoryContext;

TableOptionDataDirectoryContext.prototype.DATA = function() {
    return this.getToken(SqlParser.DATA, 0);
};

TableOptionDataDirectoryContext.prototype.DIRECTORY = function() {
    return this.getToken(SqlParser.DIRECTORY, 0);
};

TableOptionDataDirectoryContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

TableOptionDataDirectoryContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionDataDirectoryContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionDataDirectory(this);
	}
};

TableOptionDataDirectoryContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionDataDirectory(this);
	}
};

TableOptionDataDirectoryContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionDataDirectory(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionRecalculationContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    this.extBoolValue = null; // Token;
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionRecalculationContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionRecalculationContext.prototype.constructor = TableOptionRecalculationContext;

SqlParser.TableOptionRecalculationContext = TableOptionRecalculationContext;

TableOptionRecalculationContext.prototype.STATS_AUTO_RECALC = function() {
    return this.getToken(SqlParser.STATS_AUTO_RECALC, 0);
};

TableOptionRecalculationContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

TableOptionRecalculationContext.prototype.ZERO_DECIMAL = function() {
    return this.getToken(SqlParser.ZERO_DECIMAL, 0);
};

TableOptionRecalculationContext.prototype.ONE_DECIMAL = function() {
    return this.getToken(SqlParser.ONE_DECIMAL, 0);
};

TableOptionRecalculationContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionRecalculationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionRecalculation(this);
	}
};

TableOptionRecalculationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionRecalculation(this);
	}
};

TableOptionRecalculationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionRecalculation(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionAutoIncrementContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionAutoIncrementContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionAutoIncrementContext.prototype.constructor = TableOptionAutoIncrementContext;

SqlParser.TableOptionAutoIncrementContext = TableOptionAutoIncrementContext;

TableOptionAutoIncrementContext.prototype.AUTO_INCREMENT = function() {
    return this.getToken(SqlParser.AUTO_INCREMENT, 0);
};

TableOptionAutoIncrementContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

TableOptionAutoIncrementContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionAutoIncrementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionAutoIncrement(this);
	}
};

TableOptionAutoIncrementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionAutoIncrement(this);
	}
};

TableOptionAutoIncrementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionAutoIncrement(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionChecksumContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    this.boolValue = null; // Token;
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionChecksumContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionChecksumContext.prototype.constructor = TableOptionChecksumContext;

SqlParser.TableOptionChecksumContext = TableOptionChecksumContext;

TableOptionChecksumContext.prototype.CHECKSUM = function() {
    return this.getToken(SqlParser.CHECKSUM, 0);
};

TableOptionChecksumContext.prototype.PAGE_CHECKSUM = function() {
    return this.getToken(SqlParser.PAGE_CHECKSUM, 0);
};

TableOptionChecksumContext.prototype.ZERO_DECIMAL = function() {
    return this.getToken(SqlParser.ZERO_DECIMAL, 0);
};

TableOptionChecksumContext.prototype.ONE_DECIMAL = function() {
    return this.getToken(SqlParser.ONE_DECIMAL, 0);
};

TableOptionChecksumContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionChecksumContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionChecksum(this);
	}
};

TableOptionChecksumContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionChecksum(this);
	}
};

TableOptionChecksumContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionChecksum(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionDelayContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    this.boolValue = null; // Token;
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionDelayContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionDelayContext.prototype.constructor = TableOptionDelayContext;

SqlParser.TableOptionDelayContext = TableOptionDelayContext;

TableOptionDelayContext.prototype.DELAY_KEY_WRITE = function() {
    return this.getToken(SqlParser.DELAY_KEY_WRITE, 0);
};

TableOptionDelayContext.prototype.ZERO_DECIMAL = function() {
    return this.getToken(SqlParser.ZERO_DECIMAL, 0);
};

TableOptionDelayContext.prototype.ONE_DECIMAL = function() {
    return this.getToken(SqlParser.ONE_DECIMAL, 0);
};

TableOptionDelayContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionDelayContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionDelay(this);
	}
};

TableOptionDelayContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionDelay(this);
	}
};

TableOptionDelayContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionDelay(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionConnectionContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionConnectionContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionConnectionContext.prototype.constructor = TableOptionConnectionContext;

SqlParser.TableOptionConnectionContext = TableOptionConnectionContext;

TableOptionConnectionContext.prototype.CONNECTION = function() {
    return this.getToken(SqlParser.CONNECTION, 0);
};

TableOptionConnectionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

TableOptionConnectionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionConnectionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionConnection(this);
	}
};

TableOptionConnectionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionConnection(this);
	}
};

TableOptionConnectionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionConnection(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionCommentContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionCommentContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionCommentContext.prototype.constructor = TableOptionCommentContext;

SqlParser.TableOptionCommentContext = TableOptionCommentContext;

TableOptionCommentContext.prototype.COMMENT = function() {
    return this.getToken(SqlParser.COMMENT, 0);
};

TableOptionCommentContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

TableOptionCommentContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionCommentContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionComment(this);
	}
};

TableOptionCommentContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionComment(this);
	}
};

TableOptionCommentContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionComment(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionAverageContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionAverageContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionAverageContext.prototype.constructor = TableOptionAverageContext;

SqlParser.TableOptionAverageContext = TableOptionAverageContext;

TableOptionAverageContext.prototype.AVG_ROW_LENGTH = function() {
    return this.getToken(SqlParser.AVG_ROW_LENGTH, 0);
};

TableOptionAverageContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

TableOptionAverageContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionAverageContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionAverage(this);
	}
};

TableOptionAverageContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionAverage(this);
	}
};

TableOptionAverageContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionAverage(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionRowFormatContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    this.rowFormat = null; // Token;
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionRowFormatContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionRowFormatContext.prototype.constructor = TableOptionRowFormatContext;

SqlParser.TableOptionRowFormatContext = TableOptionRowFormatContext;

TableOptionRowFormatContext.prototype.ROW_FORMAT = function() {
    return this.getToken(SqlParser.ROW_FORMAT, 0);
};

TableOptionRowFormatContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

TableOptionRowFormatContext.prototype.DYNAMIC = function() {
    return this.getToken(SqlParser.DYNAMIC, 0);
};

TableOptionRowFormatContext.prototype.FIXED = function() {
    return this.getToken(SqlParser.FIXED, 0);
};

TableOptionRowFormatContext.prototype.COMPRESSED = function() {
    return this.getToken(SqlParser.COMPRESSED, 0);
};

TableOptionRowFormatContext.prototype.REDUNDANT = function() {
    return this.getToken(SqlParser.REDUNDANT, 0);
};

TableOptionRowFormatContext.prototype.COMPACT = function() {
    return this.getToken(SqlParser.COMPACT, 0);
};

TableOptionRowFormatContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionRowFormatContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionRowFormat(this);
	}
};

TableOptionRowFormatContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionRowFormat(this);
	}
};

TableOptionRowFormatContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionRowFormat(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionCompressionContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionCompressionContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionCompressionContext.prototype.constructor = TableOptionCompressionContext;

SqlParser.TableOptionCompressionContext = TableOptionCompressionContext;

TableOptionCompressionContext.prototype.COMPRESSION = function() {
    return this.getToken(SqlParser.COMPRESSION, 0);
};

TableOptionCompressionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

TableOptionCompressionContext.prototype.ID = function() {
    return this.getToken(SqlParser.ID, 0);
};

TableOptionCompressionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionCompressionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionCompression(this);
	}
};

TableOptionCompressionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionCompression(this);
	}
};

TableOptionCompressionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionCompression(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionInsertMethodContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    this.insertMethod = null; // Token;
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionInsertMethodContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionInsertMethodContext.prototype.constructor = TableOptionInsertMethodContext;

SqlParser.TableOptionInsertMethodContext = TableOptionInsertMethodContext;

TableOptionInsertMethodContext.prototype.INSERT_METHOD = function() {
    return this.getToken(SqlParser.INSERT_METHOD, 0);
};

TableOptionInsertMethodContext.prototype.NO = function() {
    return this.getToken(SqlParser.NO, 0);
};

TableOptionInsertMethodContext.prototype.FIRST = function() {
    return this.getToken(SqlParser.FIRST, 0);
};

TableOptionInsertMethodContext.prototype.LAST = function() {
    return this.getToken(SqlParser.LAST, 0);
};

TableOptionInsertMethodContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionInsertMethodContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionInsertMethod(this);
	}
};

TableOptionInsertMethodContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionInsertMethod(this);
	}
};

TableOptionInsertMethodContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionInsertMethod(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableOptionMinRowsContext(parser, ctx) {
	TableOptionContext.call(this, parser);
    TableOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableOptionMinRowsContext.prototype = Object.create(TableOptionContext.prototype);
TableOptionMinRowsContext.prototype.constructor = TableOptionMinRowsContext;

SqlParser.TableOptionMinRowsContext = TableOptionMinRowsContext;

TableOptionMinRowsContext.prototype.MIN_ROWS = function() {
    return this.getToken(SqlParser.MIN_ROWS, 0);
};

TableOptionMinRowsContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

TableOptionMinRowsContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
TableOptionMinRowsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableOptionMinRows(this);
	}
};

TableOptionMinRowsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableOptionMinRows(this);
	}
};

TableOptionMinRowsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableOptionMinRows(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.TableOptionContext = TableOptionContext;

SqlParser.prototype.tableOption = function() {

    var localctx = new TableOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 94, SqlParser.RULE_tableOption);
    var _la = 0; // Token type
    try {
        this.state = 1761;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,199,this._ctx);
        switch(la_) {
        case 1:
            localctx = new TableOptionEngineContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 1617;
            this.match(SqlParser.ENGINE);
            this.state = 1619;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1618;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1621;
            this.engineName();
            break;

        case 2:
            localctx = new TableOptionAutoIncrementContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 1622;
            this.match(SqlParser.AUTO_INCREMENT);
            this.state = 1624;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1623;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1626;
            this.decimalLiteral();
            break;

        case 3:
            localctx = new TableOptionAverageContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 1627;
            this.match(SqlParser.AVG_ROW_LENGTH);
            this.state = 1629;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1628;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1631;
            this.decimalLiteral();
            break;

        case 4:
            localctx = new TableOptionCharsetContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 1633;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.DEFAULT) {
                this.state = 1632;
                this.match(SqlParser.DEFAULT);
            }

            this.state = 1638;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.CHARACTER:
                this.state = 1635;
                this.match(SqlParser.CHARACTER);
                this.state = 1636;
                this.match(SqlParser.SET);
                break;
            case SqlParser.CHARSET:
                this.state = 1637;
                this.match(SqlParser.CHARSET);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            this.state = 1641;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1640;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1645;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.BINARY:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
                this.state = 1643;
                this.charsetName();
                break;
            case SqlParser.DEFAULT:
                this.state = 1644;
                this.match(SqlParser.DEFAULT);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;

        case 5:
            localctx = new TableOptionChecksumContext(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 1647;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.CHECKSUM || _la===SqlParser.PAGE_CHECKSUM)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 1649;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1648;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1651;
            localctx.boolValue = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.ZERO_DECIMAL || _la===SqlParser.ONE_DECIMAL)) {
                localctx.boolValue = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 6:
            localctx = new TableOptionCollateContext(this, localctx);
            this.enterOuterAlt(localctx, 6);
            this.state = 1653;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.DEFAULT) {
                this.state = 1652;
                this.match(SqlParser.DEFAULT);
            }

            this.state = 1655;
            this.match(SqlParser.COLLATE);
            this.state = 1657;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1656;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1659;
            this.collationName();
            break;

        case 7:
            localctx = new TableOptionCommentContext(this, localctx);
            this.enterOuterAlt(localctx, 7);
            this.state = 1660;
            this.match(SqlParser.COMMENT);
            this.state = 1662;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1661;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1664;
            this.match(SqlParser.STRING_LITERAL);
            break;

        case 8:
            localctx = new TableOptionCompressionContext(this, localctx);
            this.enterOuterAlt(localctx, 8);
            this.state = 1665;
            this.match(SqlParser.COMPRESSION);
            this.state = 1667;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1666;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1669;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.STRING_LITERAL || _la===SqlParser.ID)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 9:
            localctx = new TableOptionConnectionContext(this, localctx);
            this.enterOuterAlt(localctx, 9);
            this.state = 1670;
            this.match(SqlParser.CONNECTION);
            this.state = 1672;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1671;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1674;
            this.match(SqlParser.STRING_LITERAL);
            break;

        case 10:
            localctx = new TableOptionDataDirectoryContext(this, localctx);
            this.enterOuterAlt(localctx, 10);
            this.state = 1675;
            this.match(SqlParser.DATA);
            this.state = 1676;
            this.match(SqlParser.DIRECTORY);
            this.state = 1678;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1677;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1680;
            this.match(SqlParser.STRING_LITERAL);
            break;

        case 11:
            localctx = new TableOptionDelayContext(this, localctx);
            this.enterOuterAlt(localctx, 11);
            this.state = 1681;
            this.match(SqlParser.DELAY_KEY_WRITE);
            this.state = 1683;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1682;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1685;
            localctx.boolValue = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.ZERO_DECIMAL || _la===SqlParser.ONE_DECIMAL)) {
                localctx.boolValue = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 12:
            localctx = new TableOptionEncryptionContext(this, localctx);
            this.enterOuterAlt(localctx, 12);
            this.state = 1686;
            this.match(SqlParser.ENCRYPTION);
            this.state = 1688;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1687;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1690;
            this.match(SqlParser.STRING_LITERAL);
            break;

        case 13:
            localctx = new TableOptionIndexDirectoryContext(this, localctx);
            this.enterOuterAlt(localctx, 13);
            this.state = 1691;
            this.match(SqlParser.INDEX);
            this.state = 1692;
            this.match(SqlParser.DIRECTORY);
            this.state = 1694;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1693;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1696;
            this.match(SqlParser.STRING_LITERAL);
            break;

        case 14:
            localctx = new TableOptionInsertMethodContext(this, localctx);
            this.enterOuterAlt(localctx, 14);
            this.state = 1697;
            this.match(SqlParser.INSERT_METHOD);
            this.state = 1699;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1698;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1701;
            localctx.insertMethod = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.FIRST || _la===SqlParser.LAST || _la===SqlParser.NO)) {
                localctx.insertMethod = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 15:
            localctx = new TableOptionKeyBlockSizeContext(this, localctx);
            this.enterOuterAlt(localctx, 15);
            this.state = 1702;
            this.match(SqlParser.KEY_BLOCK_SIZE);
            this.state = 1704;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1703;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1706;
            this.fileSizeLiteral();
            break;

        case 16:
            localctx = new TableOptionMaxRowsContext(this, localctx);
            this.enterOuterAlt(localctx, 16);
            this.state = 1707;
            this.match(SqlParser.MAX_ROWS);
            this.state = 1709;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1708;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1711;
            this.decimalLiteral();
            break;

        case 17:
            localctx = new TableOptionMinRowsContext(this, localctx);
            this.enterOuterAlt(localctx, 17);
            this.state = 1712;
            this.match(SqlParser.MIN_ROWS);
            this.state = 1714;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1713;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1716;
            this.decimalLiteral();
            break;

        case 18:
            localctx = new TableOptionPackKeysContext(this, localctx);
            this.enterOuterAlt(localctx, 18);
            this.state = 1717;
            this.match(SqlParser.PACK_KEYS);
            this.state = 1719;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1718;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1721;
            localctx.extBoolValue = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DEFAULT || _la===SqlParser.ZERO_DECIMAL || _la===SqlParser.ONE_DECIMAL)) {
                localctx.extBoolValue = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 19:
            localctx = new TableOptionPasswordContext(this, localctx);
            this.enterOuterAlt(localctx, 19);
            this.state = 1722;
            this.match(SqlParser.PASSWORD);
            this.state = 1724;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1723;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1726;
            this.match(SqlParser.STRING_LITERAL);
            break;

        case 20:
            localctx = new TableOptionRowFormatContext(this, localctx);
            this.enterOuterAlt(localctx, 20);
            this.state = 1727;
            this.match(SqlParser.ROW_FORMAT);
            this.state = 1729;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1728;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1731;
            localctx.rowFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DEFAULT || ((((_la - 307)) & ~0x1f) == 0 && ((1 << (_la - 307)) & ((1 << (SqlParser.COMPACT - 307)) | (1 << (SqlParser.COMPRESSED - 307)) | (1 << (SqlParser.DYNAMIC - 307)))) !== 0) || _la===SqlParser.FIXED || _la===SqlParser.REDUNDANT)) {
                localctx.rowFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 21:
            localctx = new TableOptionRecalculationContext(this, localctx);
            this.enterOuterAlt(localctx, 21);
            this.state = 1732;
            this.match(SqlParser.STATS_AUTO_RECALC);
            this.state = 1734;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1733;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1736;
            localctx.extBoolValue = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DEFAULT || _la===SqlParser.ZERO_DECIMAL || _la===SqlParser.ONE_DECIMAL)) {
                localctx.extBoolValue = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 22:
            localctx = new TableOptionPersistentContext(this, localctx);
            this.enterOuterAlt(localctx, 22);
            this.state = 1737;
            this.match(SqlParser.STATS_PERSISTENT);
            this.state = 1739;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1738;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1741;
            localctx.extBoolValue = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DEFAULT || _la===SqlParser.ZERO_DECIMAL || _la===SqlParser.ONE_DECIMAL)) {
                localctx.extBoolValue = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 23:
            localctx = new TableOptionSamplePageContext(this, localctx);
            this.enterOuterAlt(localctx, 23);
            this.state = 1742;
            this.match(SqlParser.STATS_SAMPLE_PAGES);
            this.state = 1744;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1743;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1746;
            this.decimalLiteral();
            break;

        case 24:
            localctx = new TableOptionTablespaceContext(this, localctx);
            this.enterOuterAlt(localctx, 24);
            this.state = 1747;
            this.match(SqlParser.TABLESPACE);
            this.state = 1748;
            this.uid();
            this.state = 1750;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,197,this._ctx);
            if(la_===1) {
                this.state = 1749;
                this.tablespaceStorage();

            }
            break;

        case 25:
            localctx = new TableOptionTablespaceContext(this, localctx);
            this.enterOuterAlt(localctx, 25);
            this.state = 1752;
            this.tablespaceStorage();
            break;

        case 26:
            localctx = new TableOptionUnionContext(this, localctx);
            this.enterOuterAlt(localctx, 26);
            this.state = 1753;
            this.match(SqlParser.UNION);
            this.state = 1755;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 1754;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 1757;
            this.match(SqlParser.LR_BRACKET);
            this.state = 1758;
            this.tables();
            this.state = 1759;
            this.match(SqlParser.RR_BRACKET);
            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 TablespaceStorageContext(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_tablespaceStorage;
    return this;
}

TablespaceStorageContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TablespaceStorageContext.prototype.constructor = TablespaceStorageContext;

TablespaceStorageContext.prototype.STORAGE = function() {
    return this.getToken(SqlParser.STORAGE, 0);
};

TablespaceStorageContext.prototype.DISK = function() {
    return this.getToken(SqlParser.DISK, 0);
};

TablespaceStorageContext.prototype.MEMORY = function() {
    return this.getToken(SqlParser.MEMORY, 0);
};

TablespaceStorageContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

TablespaceStorageContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTablespaceStorage(this);
	}
};

TablespaceStorageContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTablespaceStorage(this);
	}
};

TablespaceStorageContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTablespaceStorage(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.TablespaceStorageContext = TablespaceStorageContext;

SqlParser.prototype.tablespaceStorage = function() {

    var localctx = new TablespaceStorageContext(this, this._ctx, this.state);
    this.enterRule(localctx, 96, SqlParser.RULE_tablespaceStorage);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 1763;
        this.match(SqlParser.STORAGE);
        this.state = 1764;
        _la = this._input.LA(1);
        if(!(_la===SqlParser.DEFAULT || _la===SqlParser.DISK || _la===SqlParser.MEMORY)) {
        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 PartitionDefinitionsContext(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_partitionDefinitions;
    this.count = null; // DecimalLiteralContext
    this.subCount = null; // DecimalLiteralContext
    return this;
}

PartitionDefinitionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PartitionDefinitionsContext.prototype.constructor = PartitionDefinitionsContext;

PartitionDefinitionsContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

PartitionDefinitionsContext.prototype.BY = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.BY);
    } else {
        return this.getToken(SqlParser.BY, i);
    }
};


PartitionDefinitionsContext.prototype.partitionFunctionDefinition = function() {
    return this.getTypedRuleContext(PartitionFunctionDefinitionContext,0);
};

PartitionDefinitionsContext.prototype.PARTITIONS = function() {
    return this.getToken(SqlParser.PARTITIONS, 0);
};

PartitionDefinitionsContext.prototype.SUBPARTITION = function() {
    return this.getToken(SqlParser.SUBPARTITION, 0);
};

PartitionDefinitionsContext.prototype.subpartitionFunctionDefinition = function() {
    return this.getTypedRuleContext(SubpartitionFunctionDefinitionContext,0);
};

PartitionDefinitionsContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

PartitionDefinitionsContext.prototype.partitionDefinition = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PartitionDefinitionContext);
    } else {
        return this.getTypedRuleContext(PartitionDefinitionContext,i);
    }
};

PartitionDefinitionsContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

PartitionDefinitionsContext.prototype.decimalLiteral = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DecimalLiteralContext);
    } else {
        return this.getTypedRuleContext(DecimalLiteralContext,i);
    }
};

PartitionDefinitionsContext.prototype.SUBPARTITIONS = function() {
    return this.getToken(SqlParser.SUBPARTITIONS, 0);
};

PartitionDefinitionsContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


PartitionDefinitionsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionDefinitions(this);
	}
};

PartitionDefinitionsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionDefinitions(this);
	}
};

PartitionDefinitionsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionDefinitions(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.PartitionDefinitionsContext = PartitionDefinitionsContext;

SqlParser.prototype.partitionDefinitions = function() {

    var localctx = new PartitionDefinitionsContext(this, this._ctx, this.state);
    this.enterRule(localctx, 98, SqlParser.RULE_partitionDefinitions);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 1766;
        this.match(SqlParser.PARTITION);
        this.state = 1767;
        this.match(SqlParser.BY);
        this.state = 1768;
        this.partitionFunctionDefinition();
        this.state = 1771;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.PARTITIONS) {
            this.state = 1769;
            this.match(SqlParser.PARTITIONS);
            this.state = 1770;
            localctx.count = this.decimalLiteral();
        }

        this.state = 1780;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.SUBPARTITION) {
            this.state = 1773;
            this.match(SqlParser.SUBPARTITION);
            this.state = 1774;
            this.match(SqlParser.BY);
            this.state = 1775;
            this.subpartitionFunctionDefinition();
            this.state = 1778;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.SUBPARTITIONS) {
                this.state = 1776;
                this.match(SqlParser.SUBPARTITIONS);
                this.state = 1777;
                localctx.subCount = this.decimalLiteral();
            }

        }

        this.state = 1793;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,204,this._ctx);
        if(la_===1) {
            this.state = 1782;
            this.match(SqlParser.LR_BRACKET);
            this.state = 1783;
            this.partitionDefinition();
            this.state = 1788;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 1784;
                this.match(SqlParser.COMMA);
                this.state = 1785;
                this.partitionDefinition();
                this.state = 1790;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 1791;
            this.match(SqlParser.RR_BRACKET);

        }
    } 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 PartitionFunctionDefinitionContext(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_partitionFunctionDefinition;
    return this;
}

PartitionFunctionDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PartitionFunctionDefinitionContext.prototype.constructor = PartitionFunctionDefinitionContext;


 
PartitionFunctionDefinitionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function PartitionFunctionKeyContext(parser, ctx) {
	PartitionFunctionDefinitionContext.call(this, parser);
    this.algType = null; // Token;
    PartitionFunctionDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionFunctionKeyContext.prototype = Object.create(PartitionFunctionDefinitionContext.prototype);
PartitionFunctionKeyContext.prototype.constructor = PartitionFunctionKeyContext;

SqlParser.PartitionFunctionKeyContext = PartitionFunctionKeyContext;

PartitionFunctionKeyContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

PartitionFunctionKeyContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

PartitionFunctionKeyContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

PartitionFunctionKeyContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

PartitionFunctionKeyContext.prototype.LINEAR = function() {
    return this.getToken(SqlParser.LINEAR, 0);
};

PartitionFunctionKeyContext.prototype.ALGORITHM = function() {
    return this.getToken(SqlParser.ALGORITHM, 0);
};

PartitionFunctionKeyContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

PartitionFunctionKeyContext.prototype.ONE_DECIMAL = function() {
    return this.getToken(SqlParser.ONE_DECIMAL, 0);
};

PartitionFunctionKeyContext.prototype.TWO_DECIMAL = function() {
    return this.getToken(SqlParser.TWO_DECIMAL, 0);
};
PartitionFunctionKeyContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionFunctionKey(this);
	}
};

PartitionFunctionKeyContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionFunctionKey(this);
	}
};

PartitionFunctionKeyContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionFunctionKey(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PartitionFunctionHashContext(parser, ctx) {
	PartitionFunctionDefinitionContext.call(this, parser);
    PartitionFunctionDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionFunctionHashContext.prototype = Object.create(PartitionFunctionDefinitionContext.prototype);
PartitionFunctionHashContext.prototype.constructor = PartitionFunctionHashContext;

SqlParser.PartitionFunctionHashContext = PartitionFunctionHashContext;

PartitionFunctionHashContext.prototype.HASH = function() {
    return this.getToken(SqlParser.HASH, 0);
};

PartitionFunctionHashContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

PartitionFunctionHashContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

PartitionFunctionHashContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

PartitionFunctionHashContext.prototype.LINEAR = function() {
    return this.getToken(SqlParser.LINEAR, 0);
};
PartitionFunctionHashContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionFunctionHash(this);
	}
};

PartitionFunctionHashContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionFunctionHash(this);
	}
};

PartitionFunctionHashContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionFunctionHash(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PartitionFunctionListContext(parser, ctx) {
	PartitionFunctionDefinitionContext.call(this, parser);
    PartitionFunctionDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionFunctionListContext.prototype = Object.create(PartitionFunctionDefinitionContext.prototype);
PartitionFunctionListContext.prototype.constructor = PartitionFunctionListContext;

SqlParser.PartitionFunctionListContext = PartitionFunctionListContext;

PartitionFunctionListContext.prototype.LIST = function() {
    return this.getToken(SqlParser.LIST, 0);
};

PartitionFunctionListContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

PartitionFunctionListContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

PartitionFunctionListContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

PartitionFunctionListContext.prototype.COLUMNS = function() {
    return this.getToken(SqlParser.COLUMNS, 0);
};

PartitionFunctionListContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};
PartitionFunctionListContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionFunctionList(this);
	}
};

PartitionFunctionListContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionFunctionList(this);
	}
};

PartitionFunctionListContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionFunctionList(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PartitionFunctionRangeContext(parser, ctx) {
	PartitionFunctionDefinitionContext.call(this, parser);
    PartitionFunctionDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionFunctionRangeContext.prototype = Object.create(PartitionFunctionDefinitionContext.prototype);
PartitionFunctionRangeContext.prototype.constructor = PartitionFunctionRangeContext;

SqlParser.PartitionFunctionRangeContext = PartitionFunctionRangeContext;

PartitionFunctionRangeContext.prototype.RANGE = function() {
    return this.getToken(SqlParser.RANGE, 0);
};

PartitionFunctionRangeContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

PartitionFunctionRangeContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

PartitionFunctionRangeContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

PartitionFunctionRangeContext.prototype.COLUMNS = function() {
    return this.getToken(SqlParser.COLUMNS, 0);
};

PartitionFunctionRangeContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};
PartitionFunctionRangeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionFunctionRange(this);
	}
};

PartitionFunctionRangeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionFunctionRange(this);
	}
};

PartitionFunctionRangeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionFunctionRange(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.PartitionFunctionDefinitionContext = PartitionFunctionDefinitionContext;

SqlParser.prototype.partitionFunctionDefinition = function() {

    var localctx = new PartitionFunctionDefinitionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 100, SqlParser.RULE_partitionFunctionDefinition);
    var _la = 0; // Token type
    try {
        this.state = 1840;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,210,this._ctx);
        switch(la_) {
        case 1:
            localctx = new PartitionFunctionHashContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 1796;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LINEAR) {
                this.state = 1795;
                this.match(SqlParser.LINEAR);
            }

            this.state = 1798;
            this.match(SqlParser.HASH);
            this.state = 1799;
            this.match(SqlParser.LR_BRACKET);
            this.state = 1800;
            this.expression(0);
            this.state = 1801;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 2:
            localctx = new PartitionFunctionKeyContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 1804;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LINEAR) {
                this.state = 1803;
                this.match(SqlParser.LINEAR);
            }

            this.state = 1806;
            this.match(SqlParser.KEY);
            this.state = 1810;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ALGORITHM) {
                this.state = 1807;
                this.match(SqlParser.ALGORITHM);
                this.state = 1808;
                this.match(SqlParser.EQUAL_SYMBOL);
                this.state = 1809;
                localctx.algType = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.ONE_DECIMAL || _la===SqlParser.TWO_DECIMAL)) {
                    localctx.algType = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 1812;
            this.match(SqlParser.LR_BRACKET);
            this.state = 1813;
            this.uidList();
            this.state = 1814;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 3:
            localctx = new PartitionFunctionRangeContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 1816;
            this.match(SqlParser.RANGE);
            this.state = 1826;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.LR_BRACKET:
                this.state = 1817;
                this.match(SqlParser.LR_BRACKET);
                this.state = 1818;
                this.expression(0);
                this.state = 1819;
                this.match(SqlParser.RR_BRACKET);
                break;
            case SqlParser.COLUMNS:
                this.state = 1821;
                this.match(SqlParser.COLUMNS);
                this.state = 1822;
                this.match(SqlParser.LR_BRACKET);
                this.state = 1823;
                this.uidList();
                this.state = 1824;
                this.match(SqlParser.RR_BRACKET);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;

        case 4:
            localctx = new PartitionFunctionListContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 1828;
            this.match(SqlParser.LIST);
            this.state = 1838;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.LR_BRACKET:
                this.state = 1829;
                this.match(SqlParser.LR_BRACKET);
                this.state = 1830;
                this.expression(0);
                this.state = 1831;
                this.match(SqlParser.RR_BRACKET);
                break;
            case SqlParser.COLUMNS:
                this.state = 1833;
                this.match(SqlParser.COLUMNS);
                this.state = 1834;
                this.match(SqlParser.LR_BRACKET);
                this.state = 1835;
                this.uidList();
                this.state = 1836;
                this.match(SqlParser.RR_BRACKET);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            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 SubpartitionFunctionDefinitionContext(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_subpartitionFunctionDefinition;
    return this;
}

SubpartitionFunctionDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SubpartitionFunctionDefinitionContext.prototype.constructor = SubpartitionFunctionDefinitionContext;


 
SubpartitionFunctionDefinitionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function SubPartitionFunctionHashContext(parser, ctx) {
	SubpartitionFunctionDefinitionContext.call(this, parser);
    SubpartitionFunctionDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SubPartitionFunctionHashContext.prototype = Object.create(SubpartitionFunctionDefinitionContext.prototype);
SubPartitionFunctionHashContext.prototype.constructor = SubPartitionFunctionHashContext;

SqlParser.SubPartitionFunctionHashContext = SubPartitionFunctionHashContext;

SubPartitionFunctionHashContext.prototype.HASH = function() {
    return this.getToken(SqlParser.HASH, 0);
};

SubPartitionFunctionHashContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

SubPartitionFunctionHashContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

SubPartitionFunctionHashContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

SubPartitionFunctionHashContext.prototype.LINEAR = function() {
    return this.getToken(SqlParser.LINEAR, 0);
};
SubPartitionFunctionHashContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSubPartitionFunctionHash(this);
	}
};

SubPartitionFunctionHashContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSubPartitionFunctionHash(this);
	}
};

SubPartitionFunctionHashContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSubPartitionFunctionHash(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SubPartitionFunctionKeyContext(parser, ctx) {
	SubpartitionFunctionDefinitionContext.call(this, parser);
    this.algType = null; // Token;
    SubpartitionFunctionDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SubPartitionFunctionKeyContext.prototype = Object.create(SubpartitionFunctionDefinitionContext.prototype);
SubPartitionFunctionKeyContext.prototype.constructor = SubPartitionFunctionKeyContext;

SqlParser.SubPartitionFunctionKeyContext = SubPartitionFunctionKeyContext;

SubPartitionFunctionKeyContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

SubPartitionFunctionKeyContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

SubPartitionFunctionKeyContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

SubPartitionFunctionKeyContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

SubPartitionFunctionKeyContext.prototype.LINEAR = function() {
    return this.getToken(SqlParser.LINEAR, 0);
};

SubPartitionFunctionKeyContext.prototype.ALGORITHM = function() {
    return this.getToken(SqlParser.ALGORITHM, 0);
};

SubPartitionFunctionKeyContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

SubPartitionFunctionKeyContext.prototype.ONE_DECIMAL = function() {
    return this.getToken(SqlParser.ONE_DECIMAL, 0);
};

SubPartitionFunctionKeyContext.prototype.TWO_DECIMAL = function() {
    return this.getToken(SqlParser.TWO_DECIMAL, 0);
};
SubPartitionFunctionKeyContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSubPartitionFunctionKey(this);
	}
};

SubPartitionFunctionKeyContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSubPartitionFunctionKey(this);
	}
};

SubPartitionFunctionKeyContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSubPartitionFunctionKey(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.SubpartitionFunctionDefinitionContext = SubpartitionFunctionDefinitionContext;

SqlParser.prototype.subpartitionFunctionDefinition = function() {

    var localctx = new SubpartitionFunctionDefinitionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 102, SqlParser.RULE_subpartitionFunctionDefinition);
    var _la = 0; // Token type
    try {
        this.state = 1863;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,214,this._ctx);
        switch(la_) {
        case 1:
            localctx = new SubPartitionFunctionHashContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 1843;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LINEAR) {
                this.state = 1842;
                this.match(SqlParser.LINEAR);
            }

            this.state = 1845;
            this.match(SqlParser.HASH);
            this.state = 1846;
            this.match(SqlParser.LR_BRACKET);
            this.state = 1847;
            this.expression(0);
            this.state = 1848;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 2:
            localctx = new SubPartitionFunctionKeyContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 1851;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LINEAR) {
                this.state = 1850;
                this.match(SqlParser.LINEAR);
            }

            this.state = 1853;
            this.match(SqlParser.KEY);
            this.state = 1857;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ALGORITHM) {
                this.state = 1854;
                this.match(SqlParser.ALGORITHM);
                this.state = 1855;
                this.match(SqlParser.EQUAL_SYMBOL);
                this.state = 1856;
                localctx.algType = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.ONE_DECIMAL || _la===SqlParser.TWO_DECIMAL)) {
                    localctx.algType = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 1859;
            this.match(SqlParser.LR_BRACKET);
            this.state = 1860;
            this.uidList();
            this.state = 1861;
            this.match(SqlParser.RR_BRACKET);
            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 PartitionDefinitionContext(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_partitionDefinition;
    return this;
}

PartitionDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PartitionDefinitionContext.prototype.constructor = PartitionDefinitionContext;


 
PartitionDefinitionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function PartitionComparisionContext(parser, ctx) {
	PartitionDefinitionContext.call(this, parser);
    PartitionDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionComparisionContext.prototype = Object.create(PartitionDefinitionContext.prototype);
PartitionComparisionContext.prototype.constructor = PartitionComparisionContext;

SqlParser.PartitionComparisionContext = PartitionComparisionContext;

PartitionComparisionContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

PartitionComparisionContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

PartitionComparisionContext.prototype.VALUES = function() {
    return this.getToken(SqlParser.VALUES, 0);
};

PartitionComparisionContext.prototype.LESS = function() {
    return this.getToken(SqlParser.LESS, 0);
};

PartitionComparisionContext.prototype.THAN = function() {
    return this.getToken(SqlParser.THAN, 0);
};

PartitionComparisionContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

PartitionComparisionContext.prototype.partitionDefinerAtom = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PartitionDefinerAtomContext);
    } else {
        return this.getTypedRuleContext(PartitionDefinerAtomContext,i);
    }
};

PartitionComparisionContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

PartitionComparisionContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


PartitionComparisionContext.prototype.partitionOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PartitionOptionContext);
    } else {
        return this.getTypedRuleContext(PartitionOptionContext,i);
    }
};

PartitionComparisionContext.prototype.subpartitionDefinition = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(SubpartitionDefinitionContext);
    } else {
        return this.getTypedRuleContext(SubpartitionDefinitionContext,i);
    }
};
PartitionComparisionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionComparision(this);
	}
};

PartitionComparisionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionComparision(this);
	}
};

PartitionComparisionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionComparision(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PartitionListAtomContext(parser, ctx) {
	PartitionDefinitionContext.call(this, parser);
    PartitionDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionListAtomContext.prototype = Object.create(PartitionDefinitionContext.prototype);
PartitionListAtomContext.prototype.constructor = PartitionListAtomContext;

SqlParser.PartitionListAtomContext = PartitionListAtomContext;

PartitionListAtomContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

PartitionListAtomContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

PartitionListAtomContext.prototype.VALUES = function() {
    return this.getToken(SqlParser.VALUES, 0);
};

PartitionListAtomContext.prototype.IN = function() {
    return this.getToken(SqlParser.IN, 0);
};

PartitionListAtomContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

PartitionListAtomContext.prototype.partitionDefinerAtom = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PartitionDefinerAtomContext);
    } else {
        return this.getTypedRuleContext(PartitionDefinerAtomContext,i);
    }
};

PartitionListAtomContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

PartitionListAtomContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


PartitionListAtomContext.prototype.partitionOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PartitionOptionContext);
    } else {
        return this.getTypedRuleContext(PartitionOptionContext,i);
    }
};

PartitionListAtomContext.prototype.subpartitionDefinition = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(SubpartitionDefinitionContext);
    } else {
        return this.getTypedRuleContext(SubpartitionDefinitionContext,i);
    }
};
PartitionListAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionListAtom(this);
	}
};

PartitionListAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionListAtom(this);
	}
};

PartitionListAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionListAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PartitionListVectorContext(parser, ctx) {
	PartitionDefinitionContext.call(this, parser);
    PartitionDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionListVectorContext.prototype = Object.create(PartitionDefinitionContext.prototype);
PartitionListVectorContext.prototype.constructor = PartitionListVectorContext;

SqlParser.PartitionListVectorContext = PartitionListVectorContext;

PartitionListVectorContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

PartitionListVectorContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

PartitionListVectorContext.prototype.VALUES = function() {
    return this.getToken(SqlParser.VALUES, 0);
};

PartitionListVectorContext.prototype.IN = function() {
    return this.getToken(SqlParser.IN, 0);
};

PartitionListVectorContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

PartitionListVectorContext.prototype.partitionDefinerVector = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PartitionDefinerVectorContext);
    } else {
        return this.getTypedRuleContext(PartitionDefinerVectorContext,i);
    }
};

PartitionListVectorContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

PartitionListVectorContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


PartitionListVectorContext.prototype.partitionOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PartitionOptionContext);
    } else {
        return this.getTypedRuleContext(PartitionOptionContext,i);
    }
};

PartitionListVectorContext.prototype.subpartitionDefinition = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(SubpartitionDefinitionContext);
    } else {
        return this.getTypedRuleContext(SubpartitionDefinitionContext,i);
    }
};
PartitionListVectorContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionListVector(this);
	}
};

PartitionListVectorContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionListVector(this);
	}
};

PartitionListVectorContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionListVector(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PartitionSimpleContext(parser, ctx) {
	PartitionDefinitionContext.call(this, parser);
    PartitionDefinitionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionSimpleContext.prototype = Object.create(PartitionDefinitionContext.prototype);
PartitionSimpleContext.prototype.constructor = PartitionSimpleContext;

SqlParser.PartitionSimpleContext = PartitionSimpleContext;

PartitionSimpleContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

PartitionSimpleContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

PartitionSimpleContext.prototype.partitionOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PartitionOptionContext);
    } else {
        return this.getTypedRuleContext(PartitionOptionContext,i);
    }
};

PartitionSimpleContext.prototype.subpartitionDefinition = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(SubpartitionDefinitionContext);
    } else {
        return this.getTypedRuleContext(SubpartitionDefinitionContext,i);
    }
};

PartitionSimpleContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

PartitionSimpleContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionSimple(this);
	}
};

PartitionSimpleContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionSimple(this);
	}
};

PartitionSimpleContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionSimple(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.PartitionDefinitionContext = PartitionDefinitionContext;

SqlParser.prototype.partitionDefinition = function() {

    var localctx = new PartitionDefinitionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 104, SqlParser.RULE_partitionDefinition);
    var _la = 0; // Token type
    try {
        this.state = 1996;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,233,this._ctx);
        switch(la_) {
        case 1:
            localctx = new PartitionComparisionContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 1865;
            this.match(SqlParser.PARTITION);
            this.state = 1866;
            this.uid();
            this.state = 1867;
            this.match(SqlParser.VALUES);
            this.state = 1868;
            this.match(SqlParser.LESS);
            this.state = 1869;
            this.match(SqlParser.THAN);
            this.state = 1870;
            this.match(SqlParser.LR_BRACKET);
            this.state = 1871;
            this.partitionDefinerAtom();
            this.state = 1876;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 1872;
                this.match(SqlParser.COMMA);
                this.state = 1873;
                this.partitionDefinerAtom();
                this.state = 1878;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 1879;
            this.match(SqlParser.RR_BRACKET);
            this.state = 1883;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.INDEX || _la===SqlParser.COMMENT || _la===SqlParser.DATA || _la===SqlParser.ENGINE || ((((_la - 428)) & ~0x1f) == 0 && ((1 << (_la - 428)) & ((1 << (SqlParser.MAX_ROWS - 428)) | (1 << (SqlParser.MIN_ROWS - 428)) | (1 << (SqlParser.NODEGROUP - 428)))) !== 0) || _la===SqlParser.STORAGE || _la===SqlParser.TABLESPACE) {
                this.state = 1880;
                this.partitionOption();
                this.state = 1885;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 1894;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.SUBPARTITION) {
                this.state = 1886;
                this.subpartitionDefinition();
                this.state = 1891;
                this._errHandler.sync(this);
                var _alt = this._interp.adaptivePredict(this._input,217,this._ctx)
                while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                    if(_alt===1) {
                        this.state = 1887;
                        this.match(SqlParser.COMMA);
                        this.state = 1888;
                        this.subpartitionDefinition(); 
                    }
                    this.state = 1893;
                    this._errHandler.sync(this);
                    _alt = this._interp.adaptivePredict(this._input,217,this._ctx);
                }

            }

            break;

        case 2:
            localctx = new PartitionComparisionContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 1896;
            this.match(SqlParser.PARTITION);
            this.state = 1897;
            this.uid();
            this.state = 1898;
            this.match(SqlParser.VALUES);
            this.state = 1899;
            this.match(SqlParser.LESS);
            this.state = 1900;
            this.match(SqlParser.THAN);
            this.state = 1901;
            this.partitionDefinerAtom();
            this.state = 1905;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.INDEX || _la===SqlParser.COMMENT || _la===SqlParser.DATA || _la===SqlParser.ENGINE || ((((_la - 428)) & ~0x1f) == 0 && ((1 << (_la - 428)) & ((1 << (SqlParser.MAX_ROWS - 428)) | (1 << (SqlParser.MIN_ROWS - 428)) | (1 << (SqlParser.NODEGROUP - 428)))) !== 0) || _la===SqlParser.STORAGE || _la===SqlParser.TABLESPACE) {
                this.state = 1902;
                this.partitionOption();
                this.state = 1907;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 1916;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.SUBPARTITION) {
                this.state = 1908;
                this.subpartitionDefinition();
                this.state = 1913;
                this._errHandler.sync(this);
                var _alt = this._interp.adaptivePredict(this._input,220,this._ctx)
                while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                    if(_alt===1) {
                        this.state = 1909;
                        this.match(SqlParser.COMMA);
                        this.state = 1910;
                        this.subpartitionDefinition(); 
                    }
                    this.state = 1915;
                    this._errHandler.sync(this);
                    _alt = this._interp.adaptivePredict(this._input,220,this._ctx);
                }

            }

            break;

        case 3:
            localctx = new PartitionListAtomContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 1918;
            this.match(SqlParser.PARTITION);
            this.state = 1919;
            this.uid();
            this.state = 1920;
            this.match(SqlParser.VALUES);
            this.state = 1921;
            this.match(SqlParser.IN);
            this.state = 1922;
            this.match(SqlParser.LR_BRACKET);
            this.state = 1923;
            this.partitionDefinerAtom();
            this.state = 1928;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 1924;
                this.match(SqlParser.COMMA);
                this.state = 1925;
                this.partitionDefinerAtom();
                this.state = 1930;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 1931;
            this.match(SqlParser.RR_BRACKET);
            this.state = 1935;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.INDEX || _la===SqlParser.COMMENT || _la===SqlParser.DATA || _la===SqlParser.ENGINE || ((((_la - 428)) & ~0x1f) == 0 && ((1 << (_la - 428)) & ((1 << (SqlParser.MAX_ROWS - 428)) | (1 << (SqlParser.MIN_ROWS - 428)) | (1 << (SqlParser.NODEGROUP - 428)))) !== 0) || _la===SqlParser.STORAGE || _la===SqlParser.TABLESPACE) {
                this.state = 1932;
                this.partitionOption();
                this.state = 1937;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 1946;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.SUBPARTITION) {
                this.state = 1938;
                this.subpartitionDefinition();
                this.state = 1943;
                this._errHandler.sync(this);
                var _alt = this._interp.adaptivePredict(this._input,224,this._ctx)
                while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                    if(_alt===1) {
                        this.state = 1939;
                        this.match(SqlParser.COMMA);
                        this.state = 1940;
                        this.subpartitionDefinition(); 
                    }
                    this.state = 1945;
                    this._errHandler.sync(this);
                    _alt = this._interp.adaptivePredict(this._input,224,this._ctx);
                }

            }

            break;

        case 4:
            localctx = new PartitionListVectorContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 1948;
            this.match(SqlParser.PARTITION);
            this.state = 1949;
            this.uid();
            this.state = 1950;
            this.match(SqlParser.VALUES);
            this.state = 1951;
            this.match(SqlParser.IN);
            this.state = 1952;
            this.match(SqlParser.LR_BRACKET);
            this.state = 1953;
            this.partitionDefinerVector();
            this.state = 1958;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 1954;
                this.match(SqlParser.COMMA);
                this.state = 1955;
                this.partitionDefinerVector();
                this.state = 1960;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 1961;
            this.match(SqlParser.RR_BRACKET);
            this.state = 1965;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.INDEX || _la===SqlParser.COMMENT || _la===SqlParser.DATA || _la===SqlParser.ENGINE || ((((_la - 428)) & ~0x1f) == 0 && ((1 << (_la - 428)) & ((1 << (SqlParser.MAX_ROWS - 428)) | (1 << (SqlParser.MIN_ROWS - 428)) | (1 << (SqlParser.NODEGROUP - 428)))) !== 0) || _la===SqlParser.STORAGE || _la===SqlParser.TABLESPACE) {
                this.state = 1962;
                this.partitionOption();
                this.state = 1967;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 1976;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.SUBPARTITION) {
                this.state = 1968;
                this.subpartitionDefinition();
                this.state = 1973;
                this._errHandler.sync(this);
                var _alt = this._interp.adaptivePredict(this._input,228,this._ctx)
                while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                    if(_alt===1) {
                        this.state = 1969;
                        this.match(SqlParser.COMMA);
                        this.state = 1970;
                        this.subpartitionDefinition(); 
                    }
                    this.state = 1975;
                    this._errHandler.sync(this);
                    _alt = this._interp.adaptivePredict(this._input,228,this._ctx);
                }

            }

            break;

        case 5:
            localctx = new PartitionSimpleContext(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 1978;
            this.match(SqlParser.PARTITION);
            this.state = 1979;
            this.uid();
            this.state = 1983;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.INDEX || _la===SqlParser.COMMENT || _la===SqlParser.DATA || _la===SqlParser.ENGINE || ((((_la - 428)) & ~0x1f) == 0 && ((1 << (_la - 428)) & ((1 << (SqlParser.MAX_ROWS - 428)) | (1 << (SqlParser.MIN_ROWS - 428)) | (1 << (SqlParser.NODEGROUP - 428)))) !== 0) || _la===SqlParser.STORAGE || _la===SqlParser.TABLESPACE) {
                this.state = 1980;
                this.partitionOption();
                this.state = 1985;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 1994;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.SUBPARTITION) {
                this.state = 1986;
                this.subpartitionDefinition();
                this.state = 1991;
                this._errHandler.sync(this);
                var _alt = this._interp.adaptivePredict(this._input,231,this._ctx)
                while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                    if(_alt===1) {
                        this.state = 1987;
                        this.match(SqlParser.COMMA);
                        this.state = 1988;
                        this.subpartitionDefinition(); 
                    }
                    this.state = 1993;
                    this._errHandler.sync(this);
                    _alt = this._interp.adaptivePredict(this._input,231,this._ctx);
                }

            }

            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 PartitionDefinerAtomContext(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_partitionDefinerAtom;
    return this;
}

PartitionDefinerAtomContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PartitionDefinerAtomContext.prototype.constructor = PartitionDefinerAtomContext;

PartitionDefinerAtomContext.prototype.constant = function() {
    return this.getTypedRuleContext(ConstantContext,0);
};

PartitionDefinerAtomContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

PartitionDefinerAtomContext.prototype.MAXVALUE = function() {
    return this.getToken(SqlParser.MAXVALUE, 0);
};

PartitionDefinerAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionDefinerAtom(this);
	}
};

PartitionDefinerAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionDefinerAtom(this);
	}
};

PartitionDefinerAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionDefinerAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.PartitionDefinerAtomContext = PartitionDefinerAtomContext;

SqlParser.prototype.partitionDefinerAtom = function() {

    var localctx = new PartitionDefinerAtomContext(this, this._ctx, this.state);
    this.enterRule(localctx, 106, SqlParser.RULE_partitionDefinerAtom);
    try {
        this.state = 2001;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,234,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 1998;
            this.constant();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 1999;
            this.expression(0);
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 2000;
            this.match(SqlParser.MAXVALUE);
            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 PartitionDefinerVectorContext(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_partitionDefinerVector;
    return this;
}

PartitionDefinerVectorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PartitionDefinerVectorContext.prototype.constructor = PartitionDefinerVectorContext;

PartitionDefinerVectorContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

PartitionDefinerVectorContext.prototype.partitionDefinerAtom = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PartitionDefinerAtomContext);
    } else {
        return this.getTypedRuleContext(PartitionDefinerAtomContext,i);
    }
};

PartitionDefinerVectorContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

PartitionDefinerVectorContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


PartitionDefinerVectorContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionDefinerVector(this);
	}
};

PartitionDefinerVectorContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionDefinerVector(this);
	}
};

PartitionDefinerVectorContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionDefinerVector(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.PartitionDefinerVectorContext = PartitionDefinerVectorContext;

SqlParser.prototype.partitionDefinerVector = function() {

    var localctx = new PartitionDefinerVectorContext(this, this._ctx, this.state);
    this.enterRule(localctx, 108, SqlParser.RULE_partitionDefinerVector);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2003;
        this.match(SqlParser.LR_BRACKET);
        this.state = 2004;
        this.partitionDefinerAtom();
        this.state = 2007; 
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        do {
            this.state = 2005;
            this.match(SqlParser.COMMA);
            this.state = 2006;
            this.partitionDefinerAtom();
            this.state = 2009; 
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        } while(_la===SqlParser.COMMA);
        this.state = 2011;
        this.match(SqlParser.RR_BRACKET);
    } 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 SubpartitionDefinitionContext(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_subpartitionDefinition;
    return this;
}

SubpartitionDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SubpartitionDefinitionContext.prototype.constructor = SubpartitionDefinitionContext;

SubpartitionDefinitionContext.prototype.SUBPARTITION = function() {
    return this.getToken(SqlParser.SUBPARTITION, 0);
};

SubpartitionDefinitionContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

SubpartitionDefinitionContext.prototype.partitionOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PartitionOptionContext);
    } else {
        return this.getTypedRuleContext(PartitionOptionContext,i);
    }
};

SubpartitionDefinitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSubpartitionDefinition(this);
	}
};

SubpartitionDefinitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSubpartitionDefinition(this);
	}
};

SubpartitionDefinitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSubpartitionDefinition(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SubpartitionDefinitionContext = SubpartitionDefinitionContext;

SqlParser.prototype.subpartitionDefinition = function() {

    var localctx = new SubpartitionDefinitionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 110, SqlParser.RULE_subpartitionDefinition);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2013;
        this.match(SqlParser.SUBPARTITION);
        this.state = 2014;
        this.uid();
        this.state = 2018;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.INDEX || _la===SqlParser.COMMENT || _la===SqlParser.DATA || _la===SqlParser.ENGINE || ((((_la - 428)) & ~0x1f) == 0 && ((1 << (_la - 428)) & ((1 << (SqlParser.MAX_ROWS - 428)) | (1 << (SqlParser.MIN_ROWS - 428)) | (1 << (SqlParser.NODEGROUP - 428)))) !== 0) || _la===SqlParser.STORAGE || _la===SqlParser.TABLESPACE) {
            this.state = 2015;
            this.partitionOption();
            this.state = 2020;
            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 PartitionOptionContext(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_partitionOption;
    return this;
}

PartitionOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PartitionOptionContext.prototype.constructor = PartitionOptionContext;


 
PartitionOptionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function PartitionOptionCommentContext(parser, ctx) {
	PartitionOptionContext.call(this, parser);
    this.comment = null; // Token;
    PartitionOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionOptionCommentContext.prototype = Object.create(PartitionOptionContext.prototype);
PartitionOptionCommentContext.prototype.constructor = PartitionOptionCommentContext;

SqlParser.PartitionOptionCommentContext = PartitionOptionCommentContext;

PartitionOptionCommentContext.prototype.COMMENT = function() {
    return this.getToken(SqlParser.COMMENT, 0);
};

PartitionOptionCommentContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

PartitionOptionCommentContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
PartitionOptionCommentContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionOptionComment(this);
	}
};

PartitionOptionCommentContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionOptionComment(this);
	}
};

PartitionOptionCommentContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionOptionComment(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PartitionOptionNodeGroupContext(parser, ctx) {
	PartitionOptionContext.call(this, parser);
    this.nodegroup = null; // UidContext;
    PartitionOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionOptionNodeGroupContext.prototype = Object.create(PartitionOptionContext.prototype);
PartitionOptionNodeGroupContext.prototype.constructor = PartitionOptionNodeGroupContext;

SqlParser.PartitionOptionNodeGroupContext = PartitionOptionNodeGroupContext;

PartitionOptionNodeGroupContext.prototype.NODEGROUP = function() {
    return this.getToken(SqlParser.NODEGROUP, 0);
};

PartitionOptionNodeGroupContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

PartitionOptionNodeGroupContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
PartitionOptionNodeGroupContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionOptionNodeGroup(this);
	}
};

PartitionOptionNodeGroupContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionOptionNodeGroup(this);
	}
};

PartitionOptionNodeGroupContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionOptionNodeGroup(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PartitionOptionIndexDirectoryContext(parser, ctx) {
	PartitionOptionContext.call(this, parser);
    this.indexDirectory = null; // Token;
    PartitionOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionOptionIndexDirectoryContext.prototype = Object.create(PartitionOptionContext.prototype);
PartitionOptionIndexDirectoryContext.prototype.constructor = PartitionOptionIndexDirectoryContext;

SqlParser.PartitionOptionIndexDirectoryContext = PartitionOptionIndexDirectoryContext;

PartitionOptionIndexDirectoryContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

PartitionOptionIndexDirectoryContext.prototype.DIRECTORY = function() {
    return this.getToken(SqlParser.DIRECTORY, 0);
};

PartitionOptionIndexDirectoryContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

PartitionOptionIndexDirectoryContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
PartitionOptionIndexDirectoryContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionOptionIndexDirectory(this);
	}
};

PartitionOptionIndexDirectoryContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionOptionIndexDirectory(this);
	}
};

PartitionOptionIndexDirectoryContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionOptionIndexDirectory(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PartitionOptionMaxRowsContext(parser, ctx) {
	PartitionOptionContext.call(this, parser);
    this.maxRows = null; // DecimalLiteralContext;
    PartitionOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionOptionMaxRowsContext.prototype = Object.create(PartitionOptionContext.prototype);
PartitionOptionMaxRowsContext.prototype.constructor = PartitionOptionMaxRowsContext;

SqlParser.PartitionOptionMaxRowsContext = PartitionOptionMaxRowsContext;

PartitionOptionMaxRowsContext.prototype.MAX_ROWS = function() {
    return this.getToken(SqlParser.MAX_ROWS, 0);
};

PartitionOptionMaxRowsContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

PartitionOptionMaxRowsContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
PartitionOptionMaxRowsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionOptionMaxRows(this);
	}
};

PartitionOptionMaxRowsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionOptionMaxRows(this);
	}
};

PartitionOptionMaxRowsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionOptionMaxRows(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PartitionOptionTablespaceContext(parser, ctx) {
	PartitionOptionContext.call(this, parser);
    this.tablespace = null; // UidContext;
    PartitionOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionOptionTablespaceContext.prototype = Object.create(PartitionOptionContext.prototype);
PartitionOptionTablespaceContext.prototype.constructor = PartitionOptionTablespaceContext;

SqlParser.PartitionOptionTablespaceContext = PartitionOptionTablespaceContext;

PartitionOptionTablespaceContext.prototype.TABLESPACE = function() {
    return this.getToken(SqlParser.TABLESPACE, 0);
};

PartitionOptionTablespaceContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

PartitionOptionTablespaceContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
PartitionOptionTablespaceContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionOptionTablespace(this);
	}
};

PartitionOptionTablespaceContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionOptionTablespace(this);
	}
};

PartitionOptionTablespaceContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionOptionTablespace(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PartitionOptionEngineContext(parser, ctx) {
	PartitionOptionContext.call(this, parser);
    PartitionOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionOptionEngineContext.prototype = Object.create(PartitionOptionContext.prototype);
PartitionOptionEngineContext.prototype.constructor = PartitionOptionEngineContext;

SqlParser.PartitionOptionEngineContext = PartitionOptionEngineContext;

PartitionOptionEngineContext.prototype.ENGINE = function() {
    return this.getToken(SqlParser.ENGINE, 0);
};

PartitionOptionEngineContext.prototype.engineName = function() {
    return this.getTypedRuleContext(EngineNameContext,0);
};

PartitionOptionEngineContext.prototype.STORAGE = function() {
    return this.getToken(SqlParser.STORAGE, 0);
};

PartitionOptionEngineContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
PartitionOptionEngineContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionOptionEngine(this);
	}
};

PartitionOptionEngineContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionOptionEngine(this);
	}
};

PartitionOptionEngineContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionOptionEngine(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PartitionOptionMinRowsContext(parser, ctx) {
	PartitionOptionContext.call(this, parser);
    this.minRows = null; // DecimalLiteralContext;
    PartitionOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionOptionMinRowsContext.prototype = Object.create(PartitionOptionContext.prototype);
PartitionOptionMinRowsContext.prototype.constructor = PartitionOptionMinRowsContext;

SqlParser.PartitionOptionMinRowsContext = PartitionOptionMinRowsContext;

PartitionOptionMinRowsContext.prototype.MIN_ROWS = function() {
    return this.getToken(SqlParser.MIN_ROWS, 0);
};

PartitionOptionMinRowsContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

PartitionOptionMinRowsContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
PartitionOptionMinRowsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionOptionMinRows(this);
	}
};

PartitionOptionMinRowsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionOptionMinRows(this);
	}
};

PartitionOptionMinRowsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionOptionMinRows(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PartitionOptionDataDirectoryContext(parser, ctx) {
	PartitionOptionContext.call(this, parser);
    this.dataDirectory = null; // Token;
    PartitionOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PartitionOptionDataDirectoryContext.prototype = Object.create(PartitionOptionContext.prototype);
PartitionOptionDataDirectoryContext.prototype.constructor = PartitionOptionDataDirectoryContext;

SqlParser.PartitionOptionDataDirectoryContext = PartitionOptionDataDirectoryContext;

PartitionOptionDataDirectoryContext.prototype.DATA = function() {
    return this.getToken(SqlParser.DATA, 0);
};

PartitionOptionDataDirectoryContext.prototype.DIRECTORY = function() {
    return this.getToken(SqlParser.DIRECTORY, 0);
};

PartitionOptionDataDirectoryContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

PartitionOptionDataDirectoryContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
PartitionOptionDataDirectoryContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPartitionOptionDataDirectory(this);
	}
};

PartitionOptionDataDirectoryContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPartitionOptionDataDirectory(this);
	}
};

PartitionOptionDataDirectoryContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPartitionOptionDataDirectory(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.PartitionOptionContext = PartitionOptionContext;

SqlParser.prototype.partitionOption = function() {

    var localctx = new PartitionOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 112, SqlParser.RULE_partitionOption);
    var _la = 0; // Token type
    try {
        this.state = 2066;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.ENGINE:
        case SqlParser.STORAGE:
            localctx = new PartitionOptionEngineContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 2022;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.STORAGE) {
                this.state = 2021;
                this.match(SqlParser.STORAGE);
            }

            this.state = 2024;
            this.match(SqlParser.ENGINE);
            this.state = 2026;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 2025;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 2028;
            this.engineName();
            break;
        case SqlParser.COMMENT:
            localctx = new PartitionOptionCommentContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 2029;
            this.match(SqlParser.COMMENT);
            this.state = 2031;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 2030;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 2033;
            localctx.comment = this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.DATA:
            localctx = new PartitionOptionDataDirectoryContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 2034;
            this.match(SqlParser.DATA);
            this.state = 2035;
            this.match(SqlParser.DIRECTORY);
            this.state = 2037;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 2036;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 2039;
            localctx.dataDirectory = this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.INDEX:
            localctx = new PartitionOptionIndexDirectoryContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 2040;
            this.match(SqlParser.INDEX);
            this.state = 2041;
            this.match(SqlParser.DIRECTORY);
            this.state = 2043;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 2042;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 2045;
            localctx.indexDirectory = this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.MAX_ROWS:
            localctx = new PartitionOptionMaxRowsContext(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 2046;
            this.match(SqlParser.MAX_ROWS);
            this.state = 2048;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 2047;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 2050;
            localctx.maxRows = this.decimalLiteral();
            break;
        case SqlParser.MIN_ROWS:
            localctx = new PartitionOptionMinRowsContext(this, localctx);
            this.enterOuterAlt(localctx, 6);
            this.state = 2051;
            this.match(SqlParser.MIN_ROWS);
            this.state = 2053;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 2052;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 2055;
            localctx.minRows = this.decimalLiteral();
            break;
        case SqlParser.TABLESPACE:
            localctx = new PartitionOptionTablespaceContext(this, localctx);
            this.enterOuterAlt(localctx, 7);
            this.state = 2056;
            this.match(SqlParser.TABLESPACE);
            this.state = 2058;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 2057;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 2060;
            localctx.tablespace = this.uid();
            break;
        case SqlParser.NODEGROUP:
            localctx = new PartitionOptionNodeGroupContext(this, localctx);
            this.enterOuterAlt(localctx, 8);
            this.state = 2061;
            this.match(SqlParser.NODEGROUP);
            this.state = 2063;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 2062;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 2065;
            localctx.nodegroup = this.uid();
            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 AlterDatabaseContext(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_alterDatabase;
    return this;
}

AlterDatabaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AlterDatabaseContext.prototype.constructor = AlterDatabaseContext;


 
AlterDatabaseContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function AlterUpgradeNameContext(parser, ctx) {
	AlterDatabaseContext.call(this, parser);
    this.dbFormat = null; // Token;
    AlterDatabaseContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterUpgradeNameContext.prototype = Object.create(AlterDatabaseContext.prototype);
AlterUpgradeNameContext.prototype.constructor = AlterUpgradeNameContext;

SqlParser.AlterUpgradeNameContext = AlterUpgradeNameContext;

AlterUpgradeNameContext.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterUpgradeNameContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AlterUpgradeNameContext.prototype.UPGRADE = function() {
    return this.getToken(SqlParser.UPGRADE, 0);
};

AlterUpgradeNameContext.prototype.DATA = function() {
    return this.getToken(SqlParser.DATA, 0);
};

AlterUpgradeNameContext.prototype.DIRECTORY = function() {
    return this.getToken(SqlParser.DIRECTORY, 0);
};

AlterUpgradeNameContext.prototype.NAME = function() {
    return this.getToken(SqlParser.NAME, 0);
};

AlterUpgradeNameContext.prototype.DATABASE = function() {
    return this.getToken(SqlParser.DATABASE, 0);
};

AlterUpgradeNameContext.prototype.SCHEMA = function() {
    return this.getToken(SqlParser.SCHEMA, 0);
};
AlterUpgradeNameContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterUpgradeName(this);
	}
};

AlterUpgradeNameContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterUpgradeName(this);
	}
};

AlterUpgradeNameContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterUpgradeName(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterSimpleDatabaseContext(parser, ctx) {
	AlterDatabaseContext.call(this, parser);
    this.dbFormat = null; // Token;
    AlterDatabaseContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterSimpleDatabaseContext.prototype = Object.create(AlterDatabaseContext.prototype);
AlterSimpleDatabaseContext.prototype.constructor = AlterSimpleDatabaseContext;

SqlParser.AlterSimpleDatabaseContext = AlterSimpleDatabaseContext;

AlterSimpleDatabaseContext.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterSimpleDatabaseContext.prototype.DATABASE = function() {
    return this.getToken(SqlParser.DATABASE, 0);
};

AlterSimpleDatabaseContext.prototype.SCHEMA = function() {
    return this.getToken(SqlParser.SCHEMA, 0);
};

AlterSimpleDatabaseContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AlterSimpleDatabaseContext.prototype.createDatabaseOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(CreateDatabaseOptionContext);
    } else {
        return this.getTypedRuleContext(CreateDatabaseOptionContext,i);
    }
};
AlterSimpleDatabaseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterSimpleDatabase(this);
	}
};

AlterSimpleDatabaseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterSimpleDatabase(this);
	}
};

AlterSimpleDatabaseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterSimpleDatabase(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.AlterDatabaseContext = AlterDatabaseContext;

SqlParser.prototype.alterDatabase = function() {

    var localctx = new AlterDatabaseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 114, SqlParser.RULE_alterDatabase);
    var _la = 0; // Token type
    try {
        this.state = 2086;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,249,this._ctx);
        switch(la_) {
        case 1:
            localctx = new AlterSimpleDatabaseContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 2068;
            this.match(SqlParser.ALTER);
            this.state = 2069;
            localctx.dbFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DATABASE || _la===SqlParser.SCHEMA)) {
                localctx.dbFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 2071;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,247,this._ctx);
            if(la_===1) {
                this.state = 2070;
                this.uid();

            }
            this.state = 2074; 
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            do {
                this.state = 2073;
                this.createDatabaseOption();
                this.state = 2076; 
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            } while(((((_la - 22)) & ~0x1f) == 0 && ((1 << (_la - 22)) & ((1 << (SqlParser.CHARACTER - 22)) | (1 << (SqlParser.COLLATE - 22)) | (1 << (SqlParser.DEFAULT - 22)))) !== 0) || _la===SqlParser.CHARSET);
            break;

        case 2:
            localctx = new AlterUpgradeNameContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 2078;
            this.match(SqlParser.ALTER);
            this.state = 2079;
            localctx.dbFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DATABASE || _la===SqlParser.SCHEMA)) {
                localctx.dbFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 2080;
            this.uid();
            this.state = 2081;
            this.match(SqlParser.UPGRADE);
            this.state = 2082;
            this.match(SqlParser.DATA);
            this.state = 2083;
            this.match(SqlParser.DIRECTORY);
            this.state = 2084;
            this.match(SqlParser.NAME);
            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 AlterEventContext(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_alterEvent;
    return this;
}

AlterEventContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AlterEventContext.prototype.constructor = AlterEventContext;

AlterEventContext.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterEventContext.prototype.EVENT = function() {
    return this.getToken(SqlParser.EVENT, 0);
};

AlterEventContext.prototype.fullId = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(FullIdContext);
    } else {
        return this.getTypedRuleContext(FullIdContext,i);
    }
};

AlterEventContext.prototype.ownerStatement = function() {
    return this.getTypedRuleContext(OwnerStatementContext,0);
};

AlterEventContext.prototype.ON = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.ON);
    } else {
        return this.getToken(SqlParser.ON, i);
    }
};


AlterEventContext.prototype.SCHEDULE = function() {
    return this.getToken(SqlParser.SCHEDULE, 0);
};

AlterEventContext.prototype.scheduleExpression = function() {
    return this.getTypedRuleContext(ScheduleExpressionContext,0);
};

AlterEventContext.prototype.COMPLETION = function() {
    return this.getToken(SqlParser.COMPLETION, 0);
};

AlterEventContext.prototype.PRESERVE = function() {
    return this.getToken(SqlParser.PRESERVE, 0);
};

AlterEventContext.prototype.RENAME = function() {
    return this.getToken(SqlParser.RENAME, 0);
};

AlterEventContext.prototype.TO = function() {
    return this.getToken(SqlParser.TO, 0);
};

AlterEventContext.prototype.enableType = function() {
    return this.getTypedRuleContext(EnableTypeContext,0);
};

AlterEventContext.prototype.COMMENT = function() {
    return this.getToken(SqlParser.COMMENT, 0);
};

AlterEventContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

AlterEventContext.prototype.DO = function() {
    return this.getToken(SqlParser.DO, 0);
};

AlterEventContext.prototype.routineBody = function() {
    return this.getTypedRuleContext(RoutineBodyContext,0);
};

AlterEventContext.prototype.NOT = function() {
    return this.getToken(SqlParser.NOT, 0);
};

AlterEventContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterEvent(this);
	}
};

AlterEventContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterEvent(this);
	}
};

AlterEventContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterEvent(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.AlterEventContext = AlterEventContext;

SqlParser.prototype.alterEvent = function() {

    var localctx = new AlterEventContext(this, this._ctx, this.state);
    this.enterRule(localctx, 116, SqlParser.RULE_alterEvent);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2088;
        this.match(SqlParser.ALTER);
        this.state = 2090;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.DEFINER) {
            this.state = 2089;
            this.ownerStatement();
        }

        this.state = 2092;
        this.match(SqlParser.EVENT);
        this.state = 2093;
        this.fullId();
        this.state = 2097;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,251,this._ctx);
        if(la_===1) {
            this.state = 2094;
            this.match(SqlParser.ON);
            this.state = 2095;
            this.match(SqlParser.SCHEDULE);
            this.state = 2096;
            this.scheduleExpression();

        }
        this.state = 2105;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ON) {
            this.state = 2099;
            this.match(SqlParser.ON);
            this.state = 2100;
            this.match(SqlParser.COMPLETION);
            this.state = 2102;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.NOT) {
                this.state = 2101;
                this.match(SqlParser.NOT);
            }

            this.state = 2104;
            this.match(SqlParser.PRESERVE);
        }

        this.state = 2110;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,254,this._ctx);
        if(la_===1) {
            this.state = 2107;
            this.match(SqlParser.RENAME);
            this.state = 2108;
            this.match(SqlParser.TO);
            this.state = 2109;
            this.fullId();

        }
        this.state = 2113;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.DISABLE || _la===SqlParser.ENABLE) {
            this.state = 2112;
            this.enableType();
        }

        this.state = 2117;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.COMMENT) {
            this.state = 2115;
            this.match(SqlParser.COMMENT);
            this.state = 2116;
            this.match(SqlParser.STRING_LITERAL);
        }

        this.state = 2121;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,257,this._ctx);
        if(la_===1) {
            this.state = 2119;
            this.match(SqlParser.DO);
            this.state = 2120;
            this.routineBody();

        }
    } 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 AlterFunctionContext(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_alterFunction;
    return this;
}

AlterFunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AlterFunctionContext.prototype.constructor = AlterFunctionContext;

AlterFunctionContext.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterFunctionContext.prototype.FUNCTION = function() {
    return this.getToken(SqlParser.FUNCTION, 0);
};

AlterFunctionContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

AlterFunctionContext.prototype.routineOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(RoutineOptionContext);
    } else {
        return this.getTypedRuleContext(RoutineOptionContext,i);
    }
};

AlterFunctionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterFunction(this);
	}
};

AlterFunctionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterFunction(this);
	}
};

AlterFunctionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterFunction(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.AlterFunctionContext = AlterFunctionContext;

SqlParser.prototype.alterFunction = function() {

    var localctx = new AlterFunctionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 118, SqlParser.RULE_alterFunction);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2123;
        this.match(SqlParser.ALTER);
        this.state = 2124;
        this.match(SqlParser.FUNCTION);
        this.state = 2125;
        this.fullId();
        this.state = 2129;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.DETERMINISTIC || ((((_la - 100)) & ~0x1f) == 0 && ((1 << (_la - 100)) & ((1 << (SqlParser.MODIFIES - 100)) | (1 << (SqlParser.NOT - 100)) | (1 << (SqlParser.READS - 100)))) !== 0) || _la===SqlParser.SQL || _la===SqlParser.COMMENT || _la===SqlParser.CONTAINS || _la===SqlParser.LANGUAGE || _la===SqlParser.NO) {
            this.state = 2126;
            this.routineOption();
            this.state = 2131;
            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 AlterInstanceContext(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_alterInstance;
    return this;
}

AlterInstanceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AlterInstanceContext.prototype.constructor = AlterInstanceContext;

AlterInstanceContext.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterInstanceContext.prototype.INSTANCE = function() {
    return this.getToken(SqlParser.INSTANCE, 0);
};

AlterInstanceContext.prototype.ROTATE = function() {
    return this.getToken(SqlParser.ROTATE, 0);
};

AlterInstanceContext.prototype.INNODB = function() {
    return this.getToken(SqlParser.INNODB, 0);
};

AlterInstanceContext.prototype.MASTER = function() {
    return this.getToken(SqlParser.MASTER, 0);
};

AlterInstanceContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

AlterInstanceContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterInstance(this);
	}
};

AlterInstanceContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterInstance(this);
	}
};

AlterInstanceContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterInstance(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.AlterInstanceContext = AlterInstanceContext;

SqlParser.prototype.alterInstance = function() {

    var localctx = new AlterInstanceContext(this, this._ctx, this.state);
    this.enterRule(localctx, 120, SqlParser.RULE_alterInstance);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2132;
        this.match(SqlParser.ALTER);
        this.state = 2133;
        this.match(SqlParser.INSTANCE);
        this.state = 2134;
        this.match(SqlParser.ROTATE);
        this.state = 2135;
        this.match(SqlParser.INNODB);
        this.state = 2136;
        this.match(SqlParser.MASTER);
        this.state = 2137;
        this.match(SqlParser.KEY);
    } 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 AlterLogfileGroupContext(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_alterLogfileGroup;
    return this;
}

AlterLogfileGroupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AlterLogfileGroupContext.prototype.constructor = AlterLogfileGroupContext;

AlterLogfileGroupContext.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterLogfileGroupContext.prototype.LOGFILE = function() {
    return this.getToken(SqlParser.LOGFILE, 0);
};

AlterLogfileGroupContext.prototype.GROUP = function() {
    return this.getToken(SqlParser.GROUP, 0);
};

AlterLogfileGroupContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AlterLogfileGroupContext.prototype.ADD = function() {
    return this.getToken(SqlParser.ADD, 0);
};

AlterLogfileGroupContext.prototype.UNDOFILE = function() {
    return this.getToken(SqlParser.UNDOFILE, 0);
};

AlterLogfileGroupContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

AlterLogfileGroupContext.prototype.ENGINE = function() {
    return this.getToken(SqlParser.ENGINE, 0);
};

AlterLogfileGroupContext.prototype.engineName = function() {
    return this.getTypedRuleContext(EngineNameContext,0);
};

AlterLogfileGroupContext.prototype.INITIAL_SIZE = function() {
    return this.getToken(SqlParser.INITIAL_SIZE, 0);
};

AlterLogfileGroupContext.prototype.fileSizeLiteral = function() {
    return this.getTypedRuleContext(FileSizeLiteralContext,0);
};

AlterLogfileGroupContext.prototype.WAIT = function() {
    return this.getToken(SqlParser.WAIT, 0);
};

AlterLogfileGroupContext.prototype.EQUAL_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EQUAL_SYMBOL);
    } else {
        return this.getToken(SqlParser.EQUAL_SYMBOL, i);
    }
};


AlterLogfileGroupContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterLogfileGroup(this);
	}
};

AlterLogfileGroupContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterLogfileGroup(this);
	}
};

AlterLogfileGroupContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterLogfileGroup(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.AlterLogfileGroupContext = AlterLogfileGroupContext;

SqlParser.prototype.alterLogfileGroup = function() {

    var localctx = new AlterLogfileGroupContext(this, this._ctx, this.state);
    this.enterRule(localctx, 122, SqlParser.RULE_alterLogfileGroup);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2139;
        this.match(SqlParser.ALTER);
        this.state = 2140;
        this.match(SqlParser.LOGFILE);
        this.state = 2141;
        this.match(SqlParser.GROUP);
        this.state = 2142;
        this.uid();
        this.state = 2143;
        this.match(SqlParser.ADD);
        this.state = 2144;
        this.match(SqlParser.UNDOFILE);
        this.state = 2145;
        this.match(SqlParser.STRING_LITERAL);
        this.state = 2151;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.INITIAL_SIZE) {
            this.state = 2146;
            this.match(SqlParser.INITIAL_SIZE);
            this.state = 2148;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 2147;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 2150;
            this.fileSizeLiteral();
        }

        this.state = 2154;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WAIT) {
            this.state = 2153;
            this.match(SqlParser.WAIT);
        }

        this.state = 2156;
        this.match(SqlParser.ENGINE);
        this.state = 2158;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.EQUAL_SYMBOL) {
            this.state = 2157;
            this.match(SqlParser.EQUAL_SYMBOL);
        }

        this.state = 2160;
        this.engineName();
    } 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 AlterProcedureContext(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_alterProcedure;
    return this;
}

AlterProcedureContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AlterProcedureContext.prototype.constructor = AlterProcedureContext;

AlterProcedureContext.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterProcedureContext.prototype.PROCEDURE = function() {
    return this.getToken(SqlParser.PROCEDURE, 0);
};

AlterProcedureContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

AlterProcedureContext.prototype.routineOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(RoutineOptionContext);
    } else {
        return this.getTypedRuleContext(RoutineOptionContext,i);
    }
};

AlterProcedureContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterProcedure(this);
	}
};

AlterProcedureContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterProcedure(this);
	}
};

AlterProcedureContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterProcedure(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.AlterProcedureContext = AlterProcedureContext;

SqlParser.prototype.alterProcedure = function() {

    var localctx = new AlterProcedureContext(this, this._ctx, this.state);
    this.enterRule(localctx, 124, SqlParser.RULE_alterProcedure);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2162;
        this.match(SqlParser.ALTER);
        this.state = 2163;
        this.match(SqlParser.PROCEDURE);
        this.state = 2164;
        this.fullId();
        this.state = 2168;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.DETERMINISTIC || ((((_la - 100)) & ~0x1f) == 0 && ((1 << (_la - 100)) & ((1 << (SqlParser.MODIFIES - 100)) | (1 << (SqlParser.NOT - 100)) | (1 << (SqlParser.READS - 100)))) !== 0) || _la===SqlParser.SQL || _la===SqlParser.COMMENT || _la===SqlParser.CONTAINS || _la===SqlParser.LANGUAGE || _la===SqlParser.NO) {
            this.state = 2165;
            this.routineOption();
            this.state = 2170;
            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 AlterServerContext(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_alterServer;
    return this;
}

AlterServerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AlterServerContext.prototype.constructor = AlterServerContext;

AlterServerContext.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterServerContext.prototype.SERVER = function() {
    return this.getToken(SqlParser.SERVER, 0);
};

AlterServerContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AlterServerContext.prototype.OPTIONS = function() {
    return this.getToken(SqlParser.OPTIONS, 0);
};

AlterServerContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

AlterServerContext.prototype.serverOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ServerOptionContext);
    } else {
        return this.getTypedRuleContext(ServerOptionContext,i);
    }
};

AlterServerContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

AlterServerContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


AlterServerContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterServer(this);
	}
};

AlterServerContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterServer(this);
	}
};

AlterServerContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterServer(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.AlterServerContext = AlterServerContext;

SqlParser.prototype.alterServer = function() {

    var localctx = new AlterServerContext(this, this._ctx, this.state);
    this.enterRule(localctx, 126, SqlParser.RULE_alterServer);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2171;
        this.match(SqlParser.ALTER);
        this.state = 2172;
        this.match(SqlParser.SERVER);
        this.state = 2173;
        this.uid();
        this.state = 2174;
        this.match(SqlParser.OPTIONS);
        this.state = 2175;
        this.match(SqlParser.LR_BRACKET);
        this.state = 2176;
        this.serverOption();
        this.state = 2181;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 2177;
            this.match(SqlParser.COMMA);
            this.state = 2178;
            this.serverOption();
            this.state = 2183;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 2184;
        this.match(SqlParser.RR_BRACKET);
    } 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 AlterTableContext(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_alterTable;
    this.intimeAction = null; // Token
    return this;
}

AlterTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AlterTableContext.prototype.constructor = AlterTableContext;

AlterTableContext.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterTableContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

AlterTableContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

AlterTableContext.prototype.IGNORE = function() {
    return this.getToken(SqlParser.IGNORE, 0);
};

AlterTableContext.prototype.alterSpecification = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(AlterSpecificationContext);
    } else {
        return this.getTypedRuleContext(AlterSpecificationContext,i);
    }
};

AlterTableContext.prototype.partitionDefinitions = function() {
    return this.getTypedRuleContext(PartitionDefinitionsContext,0);
};

AlterTableContext.prototype.ONLINE = function() {
    return this.getToken(SqlParser.ONLINE, 0);
};

AlterTableContext.prototype.OFFLINE = function() {
    return this.getToken(SqlParser.OFFLINE, 0);
};

AlterTableContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


AlterTableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterTable(this);
	}
};

AlterTableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterTable(this);
	}
};

AlterTableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterTable(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.AlterTableContext = AlterTableContext;

SqlParser.prototype.alterTable = function() {

    var localctx = new AlterTableContext(this, this._ctx, this.state);
    this.enterRule(localctx, 128, SqlParser.RULE_alterTable);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2186;
        this.match(SqlParser.ALTER);
        this.state = 2188;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.OFFLINE || _la===SqlParser.ONLINE) {
            this.state = 2187;
            localctx.intimeAction = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.OFFLINE || _la===SqlParser.ONLINE)) {
                localctx.intimeAction = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 2191;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IGNORE) {
            this.state = 2190;
            this.match(SqlParser.IGNORE);
        }

        this.state = 2193;
        this.match(SqlParser.TABLE);
        this.state = 2194;
        this.tableName();
        this.state = 2203;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,268,this._ctx);
        if(la_===1) {
            this.state = 2195;
            this.alterSpecification();
            this.state = 2200;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 2196;
                this.match(SqlParser.COMMA);
                this.state = 2197;
                this.alterSpecification();
                this.state = 2202;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }

        }
        this.state = 2206;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.PARTITION) {
            this.state = 2205;
            this.partitionDefinitions();
        }

    } 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 AlterTablespaceContext(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_alterTablespace;
    this.objectAction = null; // Token
    return this;
}

AlterTablespaceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AlterTablespaceContext.prototype.constructor = AlterTablespaceContext;

AlterTablespaceContext.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterTablespaceContext.prototype.TABLESPACE = function() {
    return this.getToken(SqlParser.TABLESPACE, 0);
};

AlterTablespaceContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AlterTablespaceContext.prototype.DATAFILE = function() {
    return this.getToken(SqlParser.DATAFILE, 0);
};

AlterTablespaceContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

AlterTablespaceContext.prototype.ENGINE = function() {
    return this.getToken(SqlParser.ENGINE, 0);
};

AlterTablespaceContext.prototype.engineName = function() {
    return this.getTypedRuleContext(EngineNameContext,0);
};

AlterTablespaceContext.prototype.ADD = function() {
    return this.getToken(SqlParser.ADD, 0);
};

AlterTablespaceContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

AlterTablespaceContext.prototype.INITIAL_SIZE = function() {
    return this.getToken(SqlParser.INITIAL_SIZE, 0);
};

AlterTablespaceContext.prototype.EQUAL_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EQUAL_SYMBOL);
    } else {
        return this.getToken(SqlParser.EQUAL_SYMBOL, i);
    }
};


AlterTablespaceContext.prototype.fileSizeLiteral = function() {
    return this.getTypedRuleContext(FileSizeLiteralContext,0);
};

AlterTablespaceContext.prototype.WAIT = function() {
    return this.getToken(SqlParser.WAIT, 0);
};

AlterTablespaceContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterTablespace(this);
	}
};

AlterTablespaceContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterTablespace(this);
	}
};

AlterTablespaceContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterTablespace(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.AlterTablespaceContext = AlterTablespaceContext;

SqlParser.prototype.alterTablespace = function() {

    var localctx = new AlterTablespaceContext(this, this._ctx, this.state);
    this.enterRule(localctx, 130, SqlParser.RULE_alterTablespace);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2208;
        this.match(SqlParser.ALTER);
        this.state = 2209;
        this.match(SqlParser.TABLESPACE);
        this.state = 2210;
        this.uid();
        this.state = 2211;
        localctx.objectAction = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.ADD || _la===SqlParser.DROP)) {
            localctx.objectAction = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 2212;
        this.match(SqlParser.DATAFILE);
        this.state = 2213;
        this.match(SqlParser.STRING_LITERAL);
        this.state = 2217;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.INITIAL_SIZE) {
            this.state = 2214;
            this.match(SqlParser.INITIAL_SIZE);
            this.state = 2215;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 2216;
            this.fileSizeLiteral();
        }

        this.state = 2220;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WAIT) {
            this.state = 2219;
            this.match(SqlParser.WAIT);
        }

        this.state = 2222;
        this.match(SqlParser.ENGINE);
        this.state = 2224;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.EQUAL_SYMBOL) {
            this.state = 2223;
            this.match(SqlParser.EQUAL_SYMBOL);
        }

        this.state = 2226;
        this.engineName();
    } 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 AlterViewContext(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_alterView;
    this.algType = null; // Token
    this.secContext = null; // Token
    this.checkOpt = null; // Token
    return this;
}

AlterViewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AlterViewContext.prototype.constructor = AlterViewContext;

AlterViewContext.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterViewContext.prototype.VIEW = function() {
    return this.getToken(SqlParser.VIEW, 0);
};

AlterViewContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

AlterViewContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};

AlterViewContext.prototype.selectStatement = function() {
    return this.getTypedRuleContext(SelectStatementContext,0);
};

AlterViewContext.prototype.ALGORITHM = function() {
    return this.getToken(SqlParser.ALGORITHM, 0);
};

AlterViewContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

AlterViewContext.prototype.ownerStatement = function() {
    return this.getTypedRuleContext(OwnerStatementContext,0);
};

AlterViewContext.prototype.SQL = function() {
    return this.getToken(SqlParser.SQL, 0);
};

AlterViewContext.prototype.SECURITY = function() {
    return this.getToken(SqlParser.SECURITY, 0);
};

AlterViewContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

AlterViewContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

AlterViewContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

AlterViewContext.prototype.WITH = function() {
    return this.getToken(SqlParser.WITH, 0);
};

AlterViewContext.prototype.CHECK = function() {
    return this.getToken(SqlParser.CHECK, 0);
};

AlterViewContext.prototype.OPTION = function() {
    return this.getToken(SqlParser.OPTION, 0);
};

AlterViewContext.prototype.UNDEFINED = function() {
    return this.getToken(SqlParser.UNDEFINED, 0);
};

AlterViewContext.prototype.MERGE = function() {
    return this.getToken(SqlParser.MERGE, 0);
};

AlterViewContext.prototype.TEMPTABLE = function() {
    return this.getToken(SqlParser.TEMPTABLE, 0);
};

AlterViewContext.prototype.DEFINER = function() {
    return this.getToken(SqlParser.DEFINER, 0);
};

AlterViewContext.prototype.INVOKER = function() {
    return this.getToken(SqlParser.INVOKER, 0);
};

AlterViewContext.prototype.CASCADED = function() {
    return this.getToken(SqlParser.CASCADED, 0);
};

AlterViewContext.prototype.LOCAL = function() {
    return this.getToken(SqlParser.LOCAL, 0);
};

AlterViewContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterView(this);
	}
};

AlterViewContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterView(this);
	}
};

AlterViewContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterView(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.AlterViewContext = AlterViewContext;

SqlParser.prototype.alterView = function() {

    var localctx = new AlterViewContext(this, this._ctx, this.state);
    this.enterRule(localctx, 132, SqlParser.RULE_alterView);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2228;
        this.match(SqlParser.ALTER);
        this.state = 2232;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ALGORITHM) {
            this.state = 2229;
            this.match(SqlParser.ALGORITHM);
            this.state = 2230;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 2231;
            localctx.algType = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.MERGE || _la===SqlParser.TEMPTABLE || _la===SqlParser.UNDEFINED)) {
                localctx.algType = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 2235;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.DEFINER) {
            this.state = 2234;
            this.ownerStatement();
        }

        this.state = 2240;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.SQL) {
            this.state = 2237;
            this.match(SqlParser.SQL);
            this.state = 2238;
            this.match(SqlParser.SECURITY);
            this.state = 2239;
            localctx.secContext = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DEFINER || _la===SqlParser.INVOKER)) {
                localctx.secContext = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 2242;
        this.match(SqlParser.VIEW);
        this.state = 2243;
        this.fullId();
        this.state = 2248;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LR_BRACKET) {
            this.state = 2244;
            this.match(SqlParser.LR_BRACKET);
            this.state = 2245;
            this.uidList();
            this.state = 2246;
            this.match(SqlParser.RR_BRACKET);
        }

        this.state = 2250;
        this.match(SqlParser.AS);
        this.state = 2251;
        this.selectStatement();
        this.state = 2258;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WITH) {
            this.state = 2252;
            this.match(SqlParser.WITH);
            this.state = 2254;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.CASCADED || _la===SqlParser.LOCAL) {
                this.state = 2253;
                localctx.checkOpt = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.CASCADED || _la===SqlParser.LOCAL)) {
                    localctx.checkOpt = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 2256;
            this.match(SqlParser.CHECK);
            this.state = 2257;
            this.match(SqlParser.OPTION);
        }

    } 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 AlterSpecificationContext(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_alterSpecification;
    return this;
}

AlterSpecificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AlterSpecificationContext.prototype.constructor = AlterSpecificationContext;


 
AlterSpecificationContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function AlterByDisableKeysContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByDisableKeysContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByDisableKeysContext.prototype.constructor = AlterByDisableKeysContext;

SqlParser.AlterByDisableKeysContext = AlterByDisableKeysContext;

AlterByDisableKeysContext.prototype.DISABLE = function() {
    return this.getToken(SqlParser.DISABLE, 0);
};

AlterByDisableKeysContext.prototype.KEYS = function() {
    return this.getToken(SqlParser.KEYS, 0);
};
AlterByDisableKeysContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByDisableKeys(this);
	}
};

AlterByDisableKeysContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByDisableKeys(this);
	}
};

AlterByDisableKeysContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByDisableKeys(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByDefaultCharsetContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByDefaultCharsetContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByDefaultCharsetContext.prototype.constructor = AlterByDefaultCharsetContext;

SqlParser.AlterByDefaultCharsetContext = AlterByDefaultCharsetContext;

AlterByDefaultCharsetContext.prototype.CHARACTER = function() {
    return this.getToken(SqlParser.CHARACTER, 0);
};

AlterByDefaultCharsetContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

AlterByDefaultCharsetContext.prototype.EQUAL_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EQUAL_SYMBOL);
    } else {
        return this.getToken(SqlParser.EQUAL_SYMBOL, i);
    }
};


AlterByDefaultCharsetContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};

AlterByDefaultCharsetContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

AlterByDefaultCharsetContext.prototype.COLLATE = function() {
    return this.getToken(SqlParser.COLLATE, 0);
};

AlterByDefaultCharsetContext.prototype.collationName = function() {
    return this.getTypedRuleContext(CollationNameContext,0);
};
AlterByDefaultCharsetContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByDefaultCharset(this);
	}
};

AlterByDefaultCharsetContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByDefaultCharset(this);
	}
};

AlterByDefaultCharsetContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByDefaultCharset(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByRenameColumnContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.oldColumn = null; // UidContext;
    this.newColumn = null; // UidContext;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByRenameColumnContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByRenameColumnContext.prototype.constructor = AlterByRenameColumnContext;

SqlParser.AlterByRenameColumnContext = AlterByRenameColumnContext;

AlterByRenameColumnContext.prototype.RENAME = function() {
    return this.getToken(SqlParser.RENAME, 0);
};

AlterByRenameColumnContext.prototype.COLUMN = function() {
    return this.getToken(SqlParser.COLUMN, 0);
};

AlterByRenameColumnContext.prototype.TO = function() {
    return this.getToken(SqlParser.TO, 0);
};

AlterByRenameColumnContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};
AlterByRenameColumnContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByRenameColumn(this);
	}
};

AlterByRenameColumnContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByRenameColumn(this);
	}
};

AlterByRenameColumnContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByRenameColumn(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByConvertCharsetContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByConvertCharsetContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByConvertCharsetContext.prototype.constructor = AlterByConvertCharsetContext;

SqlParser.AlterByConvertCharsetContext = AlterByConvertCharsetContext;

AlterByConvertCharsetContext.prototype.CONVERT = function() {
    return this.getToken(SqlParser.CONVERT, 0);
};

AlterByConvertCharsetContext.prototype.TO = function() {
    return this.getToken(SqlParser.TO, 0);
};

AlterByConvertCharsetContext.prototype.CHARACTER = function() {
    return this.getToken(SqlParser.CHARACTER, 0);
};

AlterByConvertCharsetContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

AlterByConvertCharsetContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};

AlterByConvertCharsetContext.prototype.COLLATE = function() {
    return this.getToken(SqlParser.COLLATE, 0);
};

AlterByConvertCharsetContext.prototype.collationName = function() {
    return this.getTypedRuleContext(CollationNameContext,0);
};
AlterByConvertCharsetContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByConvertCharset(this);
	}
};

AlterByConvertCharsetContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByConvertCharset(this);
	}
};

AlterByConvertCharsetContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByConvertCharset(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByAddPartitionContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByAddPartitionContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByAddPartitionContext.prototype.constructor = AlterByAddPartitionContext;

SqlParser.AlterByAddPartitionContext = AlterByAddPartitionContext;

AlterByAddPartitionContext.prototype.ADD = function() {
    return this.getToken(SqlParser.ADD, 0);
};

AlterByAddPartitionContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

AlterByAddPartitionContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

AlterByAddPartitionContext.prototype.partitionDefinition = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PartitionDefinitionContext);
    } else {
        return this.getTypedRuleContext(PartitionDefinitionContext,i);
    }
};

AlterByAddPartitionContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

AlterByAddPartitionContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

AlterByAddPartitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByAddPartition(this);
	}
};

AlterByAddPartitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByAddPartition(this);
	}
};

AlterByAddPartitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByAddPartition(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByAddForeignKeyContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.name = null; // UidContext;
    this.indexName = null; // UidContext;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByAddForeignKeyContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByAddForeignKeyContext.prototype.constructor = AlterByAddForeignKeyContext;

SqlParser.AlterByAddForeignKeyContext = AlterByAddForeignKeyContext;

AlterByAddForeignKeyContext.prototype.ADD = function() {
    return this.getToken(SqlParser.ADD, 0);
};

AlterByAddForeignKeyContext.prototype.FOREIGN = function() {
    return this.getToken(SqlParser.FOREIGN, 0);
};

AlterByAddForeignKeyContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

AlterByAddForeignKeyContext.prototype.indexColumnNames = function() {
    return this.getTypedRuleContext(IndexColumnNamesContext,0);
};

AlterByAddForeignKeyContext.prototype.referenceDefinition = function() {
    return this.getTypedRuleContext(ReferenceDefinitionContext,0);
};

AlterByAddForeignKeyContext.prototype.CONSTRAINT = function() {
    return this.getToken(SqlParser.CONSTRAINT, 0);
};

AlterByAddForeignKeyContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};
AlterByAddForeignKeyContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByAddForeignKey(this);
	}
};

AlterByAddForeignKeyContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByAddForeignKey(this);
	}
};

AlterByAddForeignKeyContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByAddForeignKey(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByRenameIndexContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.indexFormat = null; // Token;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByRenameIndexContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByRenameIndexContext.prototype.constructor = AlterByRenameIndexContext;

SqlParser.AlterByRenameIndexContext = AlterByRenameIndexContext;

AlterByRenameIndexContext.prototype.RENAME = function() {
    return this.getToken(SqlParser.RENAME, 0);
};

AlterByRenameIndexContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

AlterByRenameIndexContext.prototype.TO = function() {
    return this.getToken(SqlParser.TO, 0);
};

AlterByRenameIndexContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

AlterByRenameIndexContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};
AlterByRenameIndexContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByRenameIndex(this);
	}
};

AlterByRenameIndexContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByRenameIndex(this);
	}
};

AlterByRenameIndexContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByRenameIndex(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByRemovePartitioningContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByRemovePartitioningContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByRemovePartitioningContext.prototype.constructor = AlterByRemovePartitioningContext;

SqlParser.AlterByRemovePartitioningContext = AlterByRemovePartitioningContext;

AlterByRemovePartitioningContext.prototype.REMOVE = function() {
    return this.getToken(SqlParser.REMOVE, 0);
};

AlterByRemovePartitioningContext.prototype.PARTITIONING = function() {
    return this.getToken(SqlParser.PARTITIONING, 0);
};
AlterByRemovePartitioningContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByRemovePartitioning(this);
	}
};

AlterByRemovePartitioningContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByRemovePartitioning(this);
	}
};

AlterByRemovePartitioningContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByRemovePartitioning(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByRenameContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.renameFormat = null; // Token;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByRenameContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByRenameContext.prototype.constructor = AlterByRenameContext;

SqlParser.AlterByRenameContext = AlterByRenameContext;

AlterByRenameContext.prototype.RENAME = function() {
    return this.getToken(SqlParser.RENAME, 0);
};

AlterByRenameContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AlterByRenameContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

AlterByRenameContext.prototype.TO = function() {
    return this.getToken(SqlParser.TO, 0);
};

AlterByRenameContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};
AlterByRenameContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByRename(this);
	}
};

AlterByRenameContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByRename(this);
	}
};

AlterByRenameContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByRename(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByOptimizePartitionContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByOptimizePartitionContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByOptimizePartitionContext.prototype.constructor = AlterByOptimizePartitionContext;

SqlParser.AlterByOptimizePartitionContext = AlterByOptimizePartitionContext;

AlterByOptimizePartitionContext.prototype.OPTIMIZE = function() {
    return this.getToken(SqlParser.OPTIMIZE, 0);
};

AlterByOptimizePartitionContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

AlterByOptimizePartitionContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

AlterByOptimizePartitionContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};
AlterByOptimizePartitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByOptimizePartition(this);
	}
};

AlterByOptimizePartitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByOptimizePartition(this);
	}
};

AlterByOptimizePartitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByOptimizePartition(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByImportTablespaceContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByImportTablespaceContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByImportTablespaceContext.prototype.constructor = AlterByImportTablespaceContext;

SqlParser.AlterByImportTablespaceContext = AlterByImportTablespaceContext;

AlterByImportTablespaceContext.prototype.IMPORT = function() {
    return this.getToken(SqlParser.IMPORT, 0);
};

AlterByImportTablespaceContext.prototype.TABLESPACE = function() {
    return this.getToken(SqlParser.TABLESPACE, 0);
};
AlterByImportTablespaceContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByImportTablespace(this);
	}
};

AlterByImportTablespaceContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByImportTablespace(this);
	}
};

AlterByImportTablespaceContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByImportTablespace(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByCoalescePartitionContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByCoalescePartitionContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByCoalescePartitionContext.prototype.constructor = AlterByCoalescePartitionContext;

SqlParser.AlterByCoalescePartitionContext = AlterByCoalescePartitionContext;

AlterByCoalescePartitionContext.prototype.COALESCE = function() {
    return this.getToken(SqlParser.COALESCE, 0);
};

AlterByCoalescePartitionContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

AlterByCoalescePartitionContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};
AlterByCoalescePartitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByCoalescePartition(this);
	}
};

AlterByCoalescePartitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByCoalescePartition(this);
	}
};

AlterByCoalescePartitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByCoalescePartition(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByAddColumnsContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByAddColumnsContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByAddColumnsContext.prototype.constructor = AlterByAddColumnsContext;

SqlParser.AlterByAddColumnsContext = AlterByAddColumnsContext;

AlterByAddColumnsContext.prototype.ADD = function() {
    return this.getToken(SqlParser.ADD, 0);
};

AlterByAddColumnsContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

AlterByAddColumnsContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

AlterByAddColumnsContext.prototype.columnDefinition = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ColumnDefinitionContext);
    } else {
        return this.getTypedRuleContext(ColumnDefinitionContext,i);
    }
};

AlterByAddColumnsContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

AlterByAddColumnsContext.prototype.COLUMN = function() {
    return this.getToken(SqlParser.COLUMN, 0);
};

AlterByAddColumnsContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

AlterByAddColumnsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByAddColumns(this);
	}
};

AlterByAddColumnsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByAddColumns(this);
	}
};

AlterByAddColumnsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByAddColumns(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByAlterIndexVisibilityContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByAlterIndexVisibilityContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByAlterIndexVisibilityContext.prototype.constructor = AlterByAlterIndexVisibilityContext;

SqlParser.AlterByAlterIndexVisibilityContext = AlterByAlterIndexVisibilityContext;

AlterByAlterIndexVisibilityContext.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterByAlterIndexVisibilityContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

AlterByAlterIndexVisibilityContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AlterByAlterIndexVisibilityContext.prototype.VISIBLE = function() {
    return this.getToken(SqlParser.VISIBLE, 0);
};

AlterByAlterIndexVisibilityContext.prototype.INVISIBLE = function() {
    return this.getToken(SqlParser.INVISIBLE, 0);
};
AlterByAlterIndexVisibilityContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByAlterIndexVisibility(this);
	}
};

AlterByAlterIndexVisibilityContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByAlterIndexVisibility(this);
	}
};

AlterByAlterIndexVisibilityContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByAlterIndexVisibility(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByDropForeignKeyContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByDropForeignKeyContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByDropForeignKeyContext.prototype.constructor = AlterByDropForeignKeyContext;

SqlParser.AlterByDropForeignKeyContext = AlterByDropForeignKeyContext;

AlterByDropForeignKeyContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

AlterByDropForeignKeyContext.prototype.FOREIGN = function() {
    return this.getToken(SqlParser.FOREIGN, 0);
};

AlterByDropForeignKeyContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

AlterByDropForeignKeyContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};
AlterByDropForeignKeyContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByDropForeignKey(this);
	}
};

AlterByDropForeignKeyContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByDropForeignKey(this);
	}
};

AlterByDropForeignKeyContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByDropForeignKey(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByAddCheckTableConstraintContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.name = null; // UidContext;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByAddCheckTableConstraintContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByAddCheckTableConstraintContext.prototype.constructor = AlterByAddCheckTableConstraintContext;

SqlParser.AlterByAddCheckTableConstraintContext = AlterByAddCheckTableConstraintContext;

AlterByAddCheckTableConstraintContext.prototype.ADD = function() {
    return this.getToken(SqlParser.ADD, 0);
};

AlterByAddCheckTableConstraintContext.prototype.CHECK = function() {
    return this.getToken(SqlParser.CHECK, 0);
};

AlterByAddCheckTableConstraintContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

AlterByAddCheckTableConstraintContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

AlterByAddCheckTableConstraintContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

AlterByAddCheckTableConstraintContext.prototype.CONSTRAINT = function() {
    return this.getToken(SqlParser.CONSTRAINT, 0);
};

AlterByAddCheckTableConstraintContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};
AlterByAddCheckTableConstraintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByAddCheckTableConstraint(this);
	}
};

AlterByAddCheckTableConstraintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByAddCheckTableConstraint(this);
	}
};

AlterByAddCheckTableConstraintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByAddCheckTableConstraint(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByRebuildPartitionContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByRebuildPartitionContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByRebuildPartitionContext.prototype.constructor = AlterByRebuildPartitionContext;

SqlParser.AlterByRebuildPartitionContext = AlterByRebuildPartitionContext;

AlterByRebuildPartitionContext.prototype.REBUILD = function() {
    return this.getToken(SqlParser.REBUILD, 0);
};

AlterByRebuildPartitionContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

AlterByRebuildPartitionContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

AlterByRebuildPartitionContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};
AlterByRebuildPartitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByRebuildPartition(this);
	}
};

AlterByRebuildPartitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByRebuildPartition(this);
	}
};

AlterByRebuildPartitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByRebuildPartition(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByUpgradePartitioningContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByUpgradePartitioningContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByUpgradePartitioningContext.prototype.constructor = AlterByUpgradePartitioningContext;

SqlParser.AlterByUpgradePartitioningContext = AlterByUpgradePartitioningContext;

AlterByUpgradePartitioningContext.prototype.UPGRADE = function() {
    return this.getToken(SqlParser.UPGRADE, 0);
};

AlterByUpgradePartitioningContext.prototype.PARTITIONING = function() {
    return this.getToken(SqlParser.PARTITIONING, 0);
};
AlterByUpgradePartitioningContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByUpgradePartitioning(this);
	}
};

AlterByUpgradePartitioningContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByUpgradePartitioning(this);
	}
};

AlterByUpgradePartitioningContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByUpgradePartitioning(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByRepairPartitionContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByRepairPartitionContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByRepairPartitionContext.prototype.constructor = AlterByRepairPartitionContext;

SqlParser.AlterByRepairPartitionContext = AlterByRepairPartitionContext;

AlterByRepairPartitionContext.prototype.REPAIR = function() {
    return this.getToken(SqlParser.REPAIR, 0);
};

AlterByRepairPartitionContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

AlterByRepairPartitionContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

AlterByRepairPartitionContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};
AlterByRepairPartitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByRepairPartition(this);
	}
};

AlterByRepairPartitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByRepairPartition(this);
	}
};

AlterByRepairPartitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByRepairPartition(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByExchangePartitionContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.validationFormat = null; // Token;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByExchangePartitionContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByExchangePartitionContext.prototype.constructor = AlterByExchangePartitionContext;

SqlParser.AlterByExchangePartitionContext = AlterByExchangePartitionContext;

AlterByExchangePartitionContext.prototype.EXCHANGE = function() {
    return this.getToken(SqlParser.EXCHANGE, 0);
};

AlterByExchangePartitionContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

AlterByExchangePartitionContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AlterByExchangePartitionContext.prototype.WITH = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.WITH);
    } else {
        return this.getToken(SqlParser.WITH, i);
    }
};


AlterByExchangePartitionContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

AlterByExchangePartitionContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

AlterByExchangePartitionContext.prototype.VALIDATION = function() {
    return this.getToken(SqlParser.VALIDATION, 0);
};

AlterByExchangePartitionContext.prototype.WITHOUT = function() {
    return this.getToken(SqlParser.WITHOUT, 0);
};
AlterByExchangePartitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByExchangePartition(this);
	}
};

AlterByExchangePartitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByExchangePartition(this);
	}
};

AlterByExchangePartitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByExchangePartition(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByAddIndexContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.indexFormat = null; // Token;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByAddIndexContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByAddIndexContext.prototype.constructor = AlterByAddIndexContext;

SqlParser.AlterByAddIndexContext = AlterByAddIndexContext;

AlterByAddIndexContext.prototype.ADD = function() {
    return this.getToken(SqlParser.ADD, 0);
};

AlterByAddIndexContext.prototype.indexColumnNames = function() {
    return this.getTypedRuleContext(IndexColumnNamesContext,0);
};

AlterByAddIndexContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

AlterByAddIndexContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

AlterByAddIndexContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AlterByAddIndexContext.prototype.indexType = function() {
    return this.getTypedRuleContext(IndexTypeContext,0);
};

AlterByAddIndexContext.prototype.indexOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(IndexOptionContext);
    } else {
        return this.getTypedRuleContext(IndexOptionContext,i);
    }
};
AlterByAddIndexContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByAddIndex(this);
	}
};

AlterByAddIndexContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByAddIndex(this);
	}
};

AlterByAddIndexContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByAddIndex(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByDropColumnContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByDropColumnContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByDropColumnContext.prototype.constructor = AlterByDropColumnContext;

SqlParser.AlterByDropColumnContext = AlterByDropColumnContext;

AlterByDropColumnContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

AlterByDropColumnContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AlterByDropColumnContext.prototype.COLUMN = function() {
    return this.getToken(SqlParser.COLUMN, 0);
};

AlterByDropColumnContext.prototype.RESTRICT = function() {
    return this.getToken(SqlParser.RESTRICT, 0);
};
AlterByDropColumnContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByDropColumn(this);
	}
};

AlterByDropColumnContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByDropColumn(this);
	}
};

AlterByDropColumnContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByDropColumn(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByImportPartitionContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByImportPartitionContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByImportPartitionContext.prototype.constructor = AlterByImportPartitionContext;

SqlParser.AlterByImportPartitionContext = AlterByImportPartitionContext;

AlterByImportPartitionContext.prototype.IMPORT = function() {
    return this.getToken(SqlParser.IMPORT, 0);
};

AlterByImportPartitionContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

AlterByImportPartitionContext.prototype.TABLESPACE = function() {
    return this.getToken(SqlParser.TABLESPACE, 0);
};

AlterByImportPartitionContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

AlterByImportPartitionContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};
AlterByImportPartitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByImportPartition(this);
	}
};

AlterByImportPartitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByImportPartition(this);
	}
};

AlterByImportPartitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByImportPartition(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByChangeDefaultContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByChangeDefaultContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByChangeDefaultContext.prototype.constructor = AlterByChangeDefaultContext;

SqlParser.AlterByChangeDefaultContext = AlterByChangeDefaultContext;

AlterByChangeDefaultContext.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterByChangeDefaultContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AlterByChangeDefaultContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

AlterByChangeDefaultContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

AlterByChangeDefaultContext.prototype.defaultValue = function() {
    return this.getTypedRuleContext(DefaultValueContext,0);
};

AlterByChangeDefaultContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

AlterByChangeDefaultContext.prototype.COLUMN = function() {
    return this.getToken(SqlParser.COLUMN, 0);
};
AlterByChangeDefaultContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByChangeDefault(this);
	}
};

AlterByChangeDefaultContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByChangeDefault(this);
	}
};

AlterByChangeDefaultContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByChangeDefault(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByForceContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByForceContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByForceContext.prototype.constructor = AlterByForceContext;

SqlParser.AlterByForceContext = AlterByForceContext;

AlterByForceContext.prototype.FORCE = function() {
    return this.getToken(SqlParser.FORCE, 0);
};
AlterByForceContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByForce(this);
	}
};

AlterByForceContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByForce(this);
	}
};

AlterByForceContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByForce(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByDropPartitionContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByDropPartitionContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByDropPartitionContext.prototype.constructor = AlterByDropPartitionContext;

SqlParser.AlterByDropPartitionContext = AlterByDropPartitionContext;

AlterByDropPartitionContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

AlterByDropPartitionContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

AlterByDropPartitionContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};
AlterByDropPartitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByDropPartition(this);
	}
};

AlterByDropPartitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByDropPartition(this);
	}
};

AlterByDropPartitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByDropPartition(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByAddSpecialIndexContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.keyType = null; // Token;
    this.indexFormat = null; // Token;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByAddSpecialIndexContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByAddSpecialIndexContext.prototype.constructor = AlterByAddSpecialIndexContext;

SqlParser.AlterByAddSpecialIndexContext = AlterByAddSpecialIndexContext;

AlterByAddSpecialIndexContext.prototype.ADD = function() {
    return this.getToken(SqlParser.ADD, 0);
};

AlterByAddSpecialIndexContext.prototype.indexColumnNames = function() {
    return this.getTypedRuleContext(IndexColumnNamesContext,0);
};

AlterByAddSpecialIndexContext.prototype.FULLTEXT = function() {
    return this.getToken(SqlParser.FULLTEXT, 0);
};

AlterByAddSpecialIndexContext.prototype.SPATIAL = function() {
    return this.getToken(SqlParser.SPATIAL, 0);
};

AlterByAddSpecialIndexContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AlterByAddSpecialIndexContext.prototype.indexOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(IndexOptionContext);
    } else {
        return this.getTypedRuleContext(IndexOptionContext,i);
    }
};

AlterByAddSpecialIndexContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

AlterByAddSpecialIndexContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};
AlterByAddSpecialIndexContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByAddSpecialIndex(this);
	}
};

AlterByAddSpecialIndexContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByAddSpecialIndex(this);
	}
};

AlterByAddSpecialIndexContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByAddSpecialIndex(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByModifyColumnContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByModifyColumnContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByModifyColumnContext.prototype.constructor = AlterByModifyColumnContext;

SqlParser.AlterByModifyColumnContext = AlterByModifyColumnContext;

AlterByModifyColumnContext.prototype.MODIFY = function() {
    return this.getToken(SqlParser.MODIFY, 0);
};

AlterByModifyColumnContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

AlterByModifyColumnContext.prototype.columnDefinition = function() {
    return this.getTypedRuleContext(ColumnDefinitionContext,0);
};

AlterByModifyColumnContext.prototype.COLUMN = function() {
    return this.getToken(SqlParser.COLUMN, 0);
};

AlterByModifyColumnContext.prototype.FIRST = function() {
    return this.getToken(SqlParser.FIRST, 0);
};

AlterByModifyColumnContext.prototype.AFTER = function() {
    return this.getToken(SqlParser.AFTER, 0);
};
AlterByModifyColumnContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByModifyColumn(this);
	}
};

AlterByModifyColumnContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByModifyColumn(this);
	}
};

AlterByModifyColumnContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByModifyColumn(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByTableOptionContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByTableOptionContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByTableOptionContext.prototype.constructor = AlterByTableOptionContext;

SqlParser.AlterByTableOptionContext = AlterByTableOptionContext;

AlterByTableOptionContext.prototype.tableOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TableOptionContext);
    } else {
        return this.getTypedRuleContext(TableOptionContext,i);
    }
};

AlterByTableOptionContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

AlterByTableOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByTableOption(this);
	}
};

AlterByTableOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByTableOption(this);
	}
};

AlterByTableOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByTableOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByDropPrimaryKeyContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByDropPrimaryKeyContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByDropPrimaryKeyContext.prototype.constructor = AlterByDropPrimaryKeyContext;

SqlParser.AlterByDropPrimaryKeyContext = AlterByDropPrimaryKeyContext;

AlterByDropPrimaryKeyContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

AlterByDropPrimaryKeyContext.prototype.PRIMARY = function() {
    return this.getToken(SqlParser.PRIMARY, 0);
};

AlterByDropPrimaryKeyContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};
AlterByDropPrimaryKeyContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByDropPrimaryKey(this);
	}
};

AlterByDropPrimaryKeyContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByDropPrimaryKey(this);
	}
};

AlterByDropPrimaryKeyContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByDropPrimaryKey(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByLockContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.lockType = null; // Token;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByLockContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByLockContext.prototype.constructor = AlterByLockContext;

SqlParser.AlterByLockContext = AlterByLockContext;

AlterByLockContext.prototype.LOCK = function() {
    return this.getToken(SqlParser.LOCK, 0);
};

AlterByLockContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

AlterByLockContext.prototype.NONE = function() {
    return this.getToken(SqlParser.NONE, 0);
};

AlterByLockContext.prototype.SHARED = function() {
    return this.getToken(SqlParser.SHARED, 0);
};

AlterByLockContext.prototype.EXCLUSIVE = function() {
    return this.getToken(SqlParser.EXCLUSIVE, 0);
};

AlterByLockContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
AlterByLockContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByLock(this);
	}
};

AlterByLockContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByLock(this);
	}
};

AlterByLockContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByLock(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByDiscardPartitionContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByDiscardPartitionContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByDiscardPartitionContext.prototype.constructor = AlterByDiscardPartitionContext;

SqlParser.AlterByDiscardPartitionContext = AlterByDiscardPartitionContext;

AlterByDiscardPartitionContext.prototype.DISCARD = function() {
    return this.getToken(SqlParser.DISCARD, 0);
};

AlterByDiscardPartitionContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

AlterByDiscardPartitionContext.prototype.TABLESPACE = function() {
    return this.getToken(SqlParser.TABLESPACE, 0);
};

AlterByDiscardPartitionContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

AlterByDiscardPartitionContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};
AlterByDiscardPartitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByDiscardPartition(this);
	}
};

AlterByDiscardPartitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByDiscardPartition(this);
	}
};

AlterByDiscardPartitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByDiscardPartition(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByDiscardTablespaceContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByDiscardTablespaceContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByDiscardTablespaceContext.prototype.constructor = AlterByDiscardTablespaceContext;

SqlParser.AlterByDiscardTablespaceContext = AlterByDiscardTablespaceContext;

AlterByDiscardTablespaceContext.prototype.DISCARD = function() {
    return this.getToken(SqlParser.DISCARD, 0);
};

AlterByDiscardTablespaceContext.prototype.TABLESPACE = function() {
    return this.getToken(SqlParser.TABLESPACE, 0);
};
AlterByDiscardTablespaceContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByDiscardTablespace(this);
	}
};

AlterByDiscardTablespaceContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByDiscardTablespace(this);
	}
};

AlterByDiscardTablespaceContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByDiscardTablespace(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByValidateContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.validationFormat = null; // Token;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByValidateContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByValidateContext.prototype.constructor = AlterByValidateContext;

SqlParser.AlterByValidateContext = AlterByValidateContext;

AlterByValidateContext.prototype.VALIDATION = function() {
    return this.getToken(SqlParser.VALIDATION, 0);
};

AlterByValidateContext.prototype.WITHOUT = function() {
    return this.getToken(SqlParser.WITHOUT, 0);
};

AlterByValidateContext.prototype.WITH = function() {
    return this.getToken(SqlParser.WITH, 0);
};
AlterByValidateContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByValidate(this);
	}
};

AlterByValidateContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByValidate(this);
	}
};

AlterByValidateContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByValidate(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByAddPrimaryKeyContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.name = null; // UidContext;
    this.index = null; // UidContext;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByAddPrimaryKeyContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByAddPrimaryKeyContext.prototype.constructor = AlterByAddPrimaryKeyContext;

SqlParser.AlterByAddPrimaryKeyContext = AlterByAddPrimaryKeyContext;

AlterByAddPrimaryKeyContext.prototype.ADD = function() {
    return this.getToken(SqlParser.ADD, 0);
};

AlterByAddPrimaryKeyContext.prototype.PRIMARY = function() {
    return this.getToken(SqlParser.PRIMARY, 0);
};

AlterByAddPrimaryKeyContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

AlterByAddPrimaryKeyContext.prototype.indexColumnNames = function() {
    return this.getTypedRuleContext(IndexColumnNamesContext,0);
};

AlterByAddPrimaryKeyContext.prototype.CONSTRAINT = function() {
    return this.getToken(SqlParser.CONSTRAINT, 0);
};

AlterByAddPrimaryKeyContext.prototype.indexType = function() {
    return this.getTypedRuleContext(IndexTypeContext,0);
};

AlterByAddPrimaryKeyContext.prototype.indexOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(IndexOptionContext);
    } else {
        return this.getTypedRuleContext(IndexOptionContext,i);
    }
};

AlterByAddPrimaryKeyContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};
AlterByAddPrimaryKeyContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByAddPrimaryKey(this);
	}
};

AlterByAddPrimaryKeyContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByAddPrimaryKey(this);
	}
};

AlterByAddPrimaryKeyContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByAddPrimaryKey(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByCheckPartitionContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByCheckPartitionContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByCheckPartitionContext.prototype.constructor = AlterByCheckPartitionContext;

SqlParser.AlterByCheckPartitionContext = AlterByCheckPartitionContext;

AlterByCheckPartitionContext.prototype.CHECK = function() {
    return this.getToken(SqlParser.CHECK, 0);
};

AlterByCheckPartitionContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

AlterByCheckPartitionContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

AlterByCheckPartitionContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};
AlterByCheckPartitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByCheckPartition(this);
	}
};

AlterByCheckPartitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByCheckPartition(this);
	}
};

AlterByCheckPartitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByCheckPartition(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByEnableKeysContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByEnableKeysContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByEnableKeysContext.prototype.constructor = AlterByEnableKeysContext;

SqlParser.AlterByEnableKeysContext = AlterByEnableKeysContext;

AlterByEnableKeysContext.prototype.ENABLE = function() {
    return this.getToken(SqlParser.ENABLE, 0);
};

AlterByEnableKeysContext.prototype.KEYS = function() {
    return this.getToken(SqlParser.KEYS, 0);
};
AlterByEnableKeysContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByEnableKeys(this);
	}
};

AlterByEnableKeysContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByEnableKeys(this);
	}
};

AlterByEnableKeysContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByEnableKeys(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByReorganizePartitionContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByReorganizePartitionContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByReorganizePartitionContext.prototype.constructor = AlterByReorganizePartitionContext;

SqlParser.AlterByReorganizePartitionContext = AlterByReorganizePartitionContext;

AlterByReorganizePartitionContext.prototype.REORGANIZE = function() {
    return this.getToken(SqlParser.REORGANIZE, 0);
};

AlterByReorganizePartitionContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

AlterByReorganizePartitionContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

AlterByReorganizePartitionContext.prototype.INTO = function() {
    return this.getToken(SqlParser.INTO, 0);
};

AlterByReorganizePartitionContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

AlterByReorganizePartitionContext.prototype.partitionDefinition = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PartitionDefinitionContext);
    } else {
        return this.getTypedRuleContext(PartitionDefinitionContext,i);
    }
};

AlterByReorganizePartitionContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

AlterByReorganizePartitionContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

AlterByReorganizePartitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByReorganizePartition(this);
	}
};

AlterByReorganizePartitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByReorganizePartition(this);
	}
};

AlterByReorganizePartitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByReorganizePartition(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterBySetAlgorithmContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.algType = null; // Token;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterBySetAlgorithmContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterBySetAlgorithmContext.prototype.constructor = AlterBySetAlgorithmContext;

SqlParser.AlterBySetAlgorithmContext = AlterBySetAlgorithmContext;

AlterBySetAlgorithmContext.prototype.ALGORITHM = function() {
    return this.getToken(SqlParser.ALGORITHM, 0);
};

AlterBySetAlgorithmContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

AlterBySetAlgorithmContext.prototype.INPLACE = function() {
    return this.getToken(SqlParser.INPLACE, 0);
};

AlterBySetAlgorithmContext.prototype.COPY = function() {
    return this.getToken(SqlParser.COPY, 0);
};

AlterBySetAlgorithmContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};
AlterBySetAlgorithmContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterBySetAlgorithm(this);
	}
};

AlterBySetAlgorithmContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterBySetAlgorithm(this);
	}
};

AlterBySetAlgorithmContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterBySetAlgorithm(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByAnalyzePartitionContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByAnalyzePartitionContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByAnalyzePartitionContext.prototype.constructor = AlterByAnalyzePartitionContext;

SqlParser.AlterByAnalyzePartitionContext = AlterByAnalyzePartitionContext;

AlterByAnalyzePartitionContext.prototype.ANALYZE = function() {
    return this.getToken(SqlParser.ANALYZE, 0);
};

AlterByAnalyzePartitionContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

AlterByAnalyzePartitionContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

AlterByAnalyzePartitionContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};
AlterByAnalyzePartitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByAnalyzePartition(this);
	}
};

AlterByAnalyzePartitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByAnalyzePartition(this);
	}
};

AlterByAnalyzePartitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByAnalyzePartition(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByChangeColumnContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.oldColumn = null; // UidContext;
    this.newColumn = null; // UidContext;
    this.afterColumn = null; // UidContext;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByChangeColumnContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByChangeColumnContext.prototype.constructor = AlterByChangeColumnContext;

SqlParser.AlterByChangeColumnContext = AlterByChangeColumnContext;

AlterByChangeColumnContext.prototype.CHANGE = function() {
    return this.getToken(SqlParser.CHANGE, 0);
};

AlterByChangeColumnContext.prototype.columnDefinition = function() {
    return this.getTypedRuleContext(ColumnDefinitionContext,0);
};

AlterByChangeColumnContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

AlterByChangeColumnContext.prototype.COLUMN = function() {
    return this.getToken(SqlParser.COLUMN, 0);
};

AlterByChangeColumnContext.prototype.FIRST = function() {
    return this.getToken(SqlParser.FIRST, 0);
};

AlterByChangeColumnContext.prototype.AFTER = function() {
    return this.getToken(SqlParser.AFTER, 0);
};
AlterByChangeColumnContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByChangeColumn(this);
	}
};

AlterByChangeColumnContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByChangeColumn(this);
	}
};

AlterByChangeColumnContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByChangeColumn(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByAddUniqueKeyContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.name = null; // UidContext;
    this.indexFormat = null; // Token;
    this.indexName = null; // UidContext;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByAddUniqueKeyContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByAddUniqueKeyContext.prototype.constructor = AlterByAddUniqueKeyContext;

SqlParser.AlterByAddUniqueKeyContext = AlterByAddUniqueKeyContext;

AlterByAddUniqueKeyContext.prototype.ADD = function() {
    return this.getToken(SqlParser.ADD, 0);
};

AlterByAddUniqueKeyContext.prototype.UNIQUE = function() {
    return this.getToken(SqlParser.UNIQUE, 0);
};

AlterByAddUniqueKeyContext.prototype.indexColumnNames = function() {
    return this.getTypedRuleContext(IndexColumnNamesContext,0);
};

AlterByAddUniqueKeyContext.prototype.CONSTRAINT = function() {
    return this.getToken(SqlParser.CONSTRAINT, 0);
};

AlterByAddUniqueKeyContext.prototype.indexType = function() {
    return this.getTypedRuleContext(IndexTypeContext,0);
};

AlterByAddUniqueKeyContext.prototype.indexOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(IndexOptionContext);
    } else {
        return this.getTypedRuleContext(IndexOptionContext,i);
    }
};

AlterByAddUniqueKeyContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

AlterByAddUniqueKeyContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

AlterByAddUniqueKeyContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};
AlterByAddUniqueKeyContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByAddUniqueKey(this);
	}
};

AlterByAddUniqueKeyContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByAddUniqueKey(this);
	}
};

AlterByAddUniqueKeyContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByAddUniqueKey(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByTruncatePartitionContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByTruncatePartitionContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByTruncatePartitionContext.prototype.constructor = AlterByTruncatePartitionContext;

SqlParser.AlterByTruncatePartitionContext = AlterByTruncatePartitionContext;

AlterByTruncatePartitionContext.prototype.TRUNCATE = function() {
    return this.getToken(SqlParser.TRUNCATE, 0);
};

AlterByTruncatePartitionContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

AlterByTruncatePartitionContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

AlterByTruncatePartitionContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};
AlterByTruncatePartitionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByTruncatePartition(this);
	}
};

AlterByTruncatePartitionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByTruncatePartition(this);
	}
};

AlterByTruncatePartitionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByTruncatePartition(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByDropIndexContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    this.indexFormat = null; // Token;
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByDropIndexContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByDropIndexContext.prototype.constructor = AlterByDropIndexContext;

SqlParser.AlterByDropIndexContext = AlterByDropIndexContext;

AlterByDropIndexContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

AlterByDropIndexContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AlterByDropIndexContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

AlterByDropIndexContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};
AlterByDropIndexContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByDropIndex(this);
	}
};

AlterByDropIndexContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByDropIndex(this);
	}
};

AlterByDropIndexContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByDropIndex(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByAddColumnContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByAddColumnContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByAddColumnContext.prototype.constructor = AlterByAddColumnContext;

SqlParser.AlterByAddColumnContext = AlterByAddColumnContext;

AlterByAddColumnContext.prototype.ADD = function() {
    return this.getToken(SqlParser.ADD, 0);
};

AlterByAddColumnContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

AlterByAddColumnContext.prototype.columnDefinition = function() {
    return this.getTypedRuleContext(ColumnDefinitionContext,0);
};

AlterByAddColumnContext.prototype.COLUMN = function() {
    return this.getToken(SqlParser.COLUMN, 0);
};

AlterByAddColumnContext.prototype.FIRST = function() {
    return this.getToken(SqlParser.FIRST, 0);
};

AlterByAddColumnContext.prototype.AFTER = function() {
    return this.getToken(SqlParser.AFTER, 0);
};
AlterByAddColumnContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByAddColumn(this);
	}
};

AlterByAddColumnContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByAddColumn(this);
	}
};

AlterByAddColumnContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByAddColumn(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterByOrderContext(parser, ctx) {
	AlterSpecificationContext.call(this, parser);
    AlterSpecificationContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterByOrderContext.prototype = Object.create(AlterSpecificationContext.prototype);
AlterByOrderContext.prototype.constructor = AlterByOrderContext;

SqlParser.AlterByOrderContext = AlterByOrderContext;

AlterByOrderContext.prototype.ORDER = function() {
    return this.getToken(SqlParser.ORDER, 0);
};

AlterByOrderContext.prototype.BY = function() {
    return this.getToken(SqlParser.BY, 0);
};

AlterByOrderContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};
AlterByOrderContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterByOrder(this);
	}
};

AlterByOrderContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterByOrder(this);
	}
};

AlterByOrderContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterByOrder(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.AlterSpecificationContext = AlterSpecificationContext;

SqlParser.prototype.alterSpecification = function() {

    var localctx = new AlterSpecificationContext(this, this._ctx, this.state);
    this.enterRule(localctx, 134, SqlParser.RULE_alterSpecification);
    var _la = 0; // Token type
    try {
        this.state = 2623;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,333,this._ctx);
        switch(la_) {
        case 1:
            localctx = new AlterByTableOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 2260;
            this.tableOption();
            this.state = 2267;
            this._errHandler.sync(this);
            var _alt = this._interp.adaptivePredict(this._input,280,this._ctx)
            while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                if(_alt===1) {
                    this.state = 2262;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    if(_la===SqlParser.COMMA) {
                        this.state = 2261;
                        this.match(SqlParser.COMMA);
                    }

                    this.state = 2264;
                    this.tableOption(); 
                }
                this.state = 2269;
                this._errHandler.sync(this);
                _alt = this._interp.adaptivePredict(this._input,280,this._ctx);
            }

            break;

        case 2:
            localctx = new AlterByAddColumnContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 2270;
            this.match(SqlParser.ADD);
            this.state = 2272;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.COLUMN) {
                this.state = 2271;
                this.match(SqlParser.COLUMN);
            }

            this.state = 2274;
            this.uid();
            this.state = 2275;
            this.columnDefinition();
            this.state = 2279;
            this._errHandler.sync(this);
            switch (this._input.LA(1)) {
            case SqlParser.FIRST:
            	this.state = 2276;
            	this.match(SqlParser.FIRST);
            	break;
            case SqlParser.AFTER:
            	this.state = 2277;
            	this.match(SqlParser.AFTER);
            	this.state = 2278;
            	this.uid();
            	break;
            case SqlParser.EOF:
            case SqlParser.ALTER:
            case SqlParser.ANALYZE:
            case SqlParser.CALL:
            case SqlParser.CHANGE:
            case SqlParser.CHECK:
            case SqlParser.CREATE:
            case SqlParser.DELETE:
            case SqlParser.DESC:
            case SqlParser.DESCRIBE:
            case SqlParser.DROP:
            case SqlParser.EXPLAIN:
            case SqlParser.GET:
            case SqlParser.GRANT:
            case SqlParser.INSERT:
            case SqlParser.KILL:
            case SqlParser.LOAD:
            case SqlParser.LOCK:
            case SqlParser.OPTIMIZE:
            case SqlParser.PARTITION:
            case SqlParser.PURGE:
            case SqlParser.RELEASE:
            case SqlParser.RENAME:
            case SqlParser.REPLACE:
            case SqlParser.RESIGNAL:
            case SqlParser.REVOKE:
            case SqlParser.SELECT:
            case SqlParser.SET:
            case SqlParser.SHOW:
            case SqlParser.SIGNAL:
            case SqlParser.UNLOCK:
            case SqlParser.UPDATE:
            case SqlParser.USE:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.CACHE:
            case SqlParser.CHECKSUM:
            case SqlParser.COMMIT:
            case SqlParser.DEALLOCATE:
            case SqlParser.DO:
            case SqlParser.FLUSH:
            case SqlParser.HANDLER:
            case SqlParser.HELP:
            case SqlParser.INSTALL:
            case SqlParser.PREPARE:
            case SqlParser.REPAIR:
            case SqlParser.RESET:
            case SqlParser.ROLLBACK:
            case SqlParser.SAVEPOINT:
            case SqlParser.START:
            case SqlParser.STOP:
            case SqlParser.TRUNCATE:
            case SqlParser.UNINSTALL:
            case SqlParser.XA:
            case SqlParser.EXECUTE:
            case SqlParser.SHUTDOWN:
            case SqlParser.MINUSMINUS:
            case SqlParser.LR_BRACKET:
            case SqlParser.COMMA:
            case SqlParser.SEMI:
            	break;
            default:
            	break;
            }
            break;

        case 3:
            localctx = new AlterByAddColumnsContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 2281;
            this.match(SqlParser.ADD);
            this.state = 2283;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.COLUMN) {
                this.state = 2282;
                this.match(SqlParser.COLUMN);
            }

            this.state = 2285;
            this.match(SqlParser.LR_BRACKET);
            this.state = 2286;
            this.uid();
            this.state = 2287;
            this.columnDefinition();
            this.state = 2294;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 2288;
                this.match(SqlParser.COMMA);
                this.state = 2289;
                this.uid();
                this.state = 2290;
                this.columnDefinition();
                this.state = 2296;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 2297;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 4:
            localctx = new AlterByAddIndexContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 2299;
            this.match(SqlParser.ADD);
            this.state = 2300;
            localctx.indexFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.INDEX || _la===SqlParser.KEY)) {
                localctx.indexFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 2302;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                this.state = 2301;
                this.uid();
            }

            this.state = 2305;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.USING) {
                this.state = 2304;
                this.indexType();
            }

            this.state = 2307;
            this.indexColumnNames();
            this.state = 2311;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.USING || _la===SqlParser.WITH || _la===SqlParser.COMMENT || _la===SqlParser.INVISIBLE || _la===SqlParser.KEY_BLOCK_SIZE || _la===SqlParser.VISIBLE) {
                this.state = 2308;
                this.indexOption();
                this.state = 2313;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;

        case 5:
            localctx = new AlterByAddPrimaryKeyContext(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 2314;
            this.match(SqlParser.ADD);
            this.state = 2319;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.CONSTRAINT) {
                this.state = 2315;
                this.match(SqlParser.CONSTRAINT);
                this.state = 2317;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                    this.state = 2316;
                    localctx.name = this.uid();
                }

            }

            this.state = 2321;
            this.match(SqlParser.PRIMARY);
            this.state = 2322;
            this.match(SqlParser.KEY);
            this.state = 2324;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                this.state = 2323;
                localctx.index = this.uid();
            }

            this.state = 2327;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.USING) {
                this.state = 2326;
                this.indexType();
            }

            this.state = 2329;
            this.indexColumnNames();
            this.state = 2333;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.USING || _la===SqlParser.WITH || _la===SqlParser.COMMENT || _la===SqlParser.INVISIBLE || _la===SqlParser.KEY_BLOCK_SIZE || _la===SqlParser.VISIBLE) {
                this.state = 2330;
                this.indexOption();
                this.state = 2335;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;

        case 6:
            localctx = new AlterByAddUniqueKeyContext(this, localctx);
            this.enterOuterAlt(localctx, 6);
            this.state = 2336;
            this.match(SqlParser.ADD);
            this.state = 2341;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.CONSTRAINT) {
                this.state = 2337;
                this.match(SqlParser.CONSTRAINT);
                this.state = 2339;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                    this.state = 2338;
                    localctx.name = this.uid();
                }

            }

            this.state = 2343;
            this.match(SqlParser.UNIQUE);
            this.state = 2345;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.INDEX || _la===SqlParser.KEY) {
                this.state = 2344;
                localctx.indexFormat = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.INDEX || _la===SqlParser.KEY)) {
                    localctx.indexFormat = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 2348;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                this.state = 2347;
                localctx.indexName = this.uid();
            }

            this.state = 2351;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.USING) {
                this.state = 2350;
                this.indexType();
            }

            this.state = 2353;
            this.indexColumnNames();
            this.state = 2357;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.USING || _la===SqlParser.WITH || _la===SqlParser.COMMENT || _la===SqlParser.INVISIBLE || _la===SqlParser.KEY_BLOCK_SIZE || _la===SqlParser.VISIBLE) {
                this.state = 2354;
                this.indexOption();
                this.state = 2359;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;

        case 7:
            localctx = new AlterByAddSpecialIndexContext(this, localctx);
            this.enterOuterAlt(localctx, 7);
            this.state = 2360;
            this.match(SqlParser.ADD);
            this.state = 2361;
            localctx.keyType = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.FULLTEXT || _la===SqlParser.SPATIAL)) {
                localctx.keyType = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 2363;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.INDEX || _la===SqlParser.KEY) {
                this.state = 2362;
                localctx.indexFormat = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.INDEX || _la===SqlParser.KEY)) {
                    localctx.indexFormat = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 2366;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                this.state = 2365;
                this.uid();
            }

            this.state = 2368;
            this.indexColumnNames();
            this.state = 2372;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.USING || _la===SqlParser.WITH || _la===SqlParser.COMMENT || _la===SqlParser.INVISIBLE || _la===SqlParser.KEY_BLOCK_SIZE || _la===SqlParser.VISIBLE) {
                this.state = 2369;
                this.indexOption();
                this.state = 2374;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;

        case 8:
            localctx = new AlterByAddForeignKeyContext(this, localctx);
            this.enterOuterAlt(localctx, 8);
            this.state = 2375;
            this.match(SqlParser.ADD);
            this.state = 2380;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.CONSTRAINT) {
                this.state = 2376;
                this.match(SqlParser.CONSTRAINT);
                this.state = 2378;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                    this.state = 2377;
                    localctx.name = this.uid();
                }

            }

            this.state = 2382;
            this.match(SqlParser.FOREIGN);
            this.state = 2383;
            this.match(SqlParser.KEY);
            this.state = 2385;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                this.state = 2384;
                localctx.indexName = this.uid();
            }

            this.state = 2387;
            this.indexColumnNames();
            this.state = 2388;
            this.referenceDefinition();
            break;

        case 9:
            localctx = new AlterByAddCheckTableConstraintContext(this, localctx);
            this.enterOuterAlt(localctx, 9);
            this.state = 2390;
            this.match(SqlParser.ADD);
            this.state = 2395;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.CONSTRAINT) {
                this.state = 2391;
                this.match(SqlParser.CONSTRAINT);
                this.state = 2393;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                    this.state = 2392;
                    localctx.name = this.uid();
                }

            }

            this.state = 2397;
            this.match(SqlParser.CHECK);
            this.state = 2398;
            this.match(SqlParser.LR_BRACKET);
            this.state = 2399;
            this.expression(0);
            this.state = 2400;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 10:
            localctx = new AlterBySetAlgorithmContext(this, localctx);
            this.enterOuterAlt(localctx, 10);
            this.state = 2402;
            this.match(SqlParser.ALGORITHM);
            this.state = 2404;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 2403;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 2406;
            localctx.algType = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DEFAULT || _la===SqlParser.COPY || _la===SqlParser.INPLACE)) {
                localctx.algType = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 11:
            localctx = new AlterByChangeDefaultContext(this, localctx);
            this.enterOuterAlt(localctx, 11);
            this.state = 2407;
            this.match(SqlParser.ALTER);
            this.state = 2409;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.COLUMN) {
                this.state = 2408;
                this.match(SqlParser.COLUMN);
            }

            this.state = 2411;
            this.uid();
            this.state = 2417;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.SET:
                this.state = 2412;
                this.match(SqlParser.SET);
                this.state = 2413;
                this.match(SqlParser.DEFAULT);
                this.state = 2414;
                this.defaultValue();
                break;
            case SqlParser.DROP:
                this.state = 2415;
                this.match(SqlParser.DROP);
                this.state = 2416;
                this.match(SqlParser.DEFAULT);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;

        case 12:
            localctx = new AlterByChangeColumnContext(this, localctx);
            this.enterOuterAlt(localctx, 12);
            this.state = 2419;
            this.match(SqlParser.CHANGE);
            this.state = 2421;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.COLUMN) {
                this.state = 2420;
                this.match(SqlParser.COLUMN);
            }

            this.state = 2423;
            localctx.oldColumn = this.uid();
            this.state = 2424;
            localctx.newColumn = this.uid();
            this.state = 2425;
            this.columnDefinition();
            this.state = 2429;
            this._errHandler.sync(this);
            switch (this._input.LA(1)) {
            case SqlParser.FIRST:
            	this.state = 2426;
            	this.match(SqlParser.FIRST);
            	break;
            case SqlParser.AFTER:
            	this.state = 2427;
            	this.match(SqlParser.AFTER);
            	this.state = 2428;
            	localctx.afterColumn = this.uid();
            	break;
            case SqlParser.EOF:
            case SqlParser.ALTER:
            case SqlParser.ANALYZE:
            case SqlParser.CALL:
            case SqlParser.CHANGE:
            case SqlParser.CHECK:
            case SqlParser.CREATE:
            case SqlParser.DELETE:
            case SqlParser.DESC:
            case SqlParser.DESCRIBE:
            case SqlParser.DROP:
            case SqlParser.EXPLAIN:
            case SqlParser.GET:
            case SqlParser.GRANT:
            case SqlParser.INSERT:
            case SqlParser.KILL:
            case SqlParser.LOAD:
            case SqlParser.LOCK:
            case SqlParser.OPTIMIZE:
            case SqlParser.PARTITION:
            case SqlParser.PURGE:
            case SqlParser.RELEASE:
            case SqlParser.RENAME:
            case SqlParser.REPLACE:
            case SqlParser.RESIGNAL:
            case SqlParser.REVOKE:
            case SqlParser.SELECT:
            case SqlParser.SET:
            case SqlParser.SHOW:
            case SqlParser.SIGNAL:
            case SqlParser.UNLOCK:
            case SqlParser.UPDATE:
            case SqlParser.USE:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.CACHE:
            case SqlParser.CHECKSUM:
            case SqlParser.COMMIT:
            case SqlParser.DEALLOCATE:
            case SqlParser.DO:
            case SqlParser.FLUSH:
            case SqlParser.HANDLER:
            case SqlParser.HELP:
            case SqlParser.INSTALL:
            case SqlParser.PREPARE:
            case SqlParser.REPAIR:
            case SqlParser.RESET:
            case SqlParser.ROLLBACK:
            case SqlParser.SAVEPOINT:
            case SqlParser.START:
            case SqlParser.STOP:
            case SqlParser.TRUNCATE:
            case SqlParser.UNINSTALL:
            case SqlParser.XA:
            case SqlParser.EXECUTE:
            case SqlParser.SHUTDOWN:
            case SqlParser.MINUSMINUS:
            case SqlParser.LR_BRACKET:
            case SqlParser.COMMA:
            case SqlParser.SEMI:
            	break;
            default:
            	break;
            }
            break;

        case 13:
            localctx = new AlterByRenameColumnContext(this, localctx);
            this.enterOuterAlt(localctx, 13);
            this.state = 2431;
            this.match(SqlParser.RENAME);
            this.state = 2432;
            this.match(SqlParser.COLUMN);
            this.state = 2433;
            localctx.oldColumn = this.uid();
            this.state = 2434;
            this.match(SqlParser.TO);
            this.state = 2435;
            localctx.newColumn = this.uid();
            break;

        case 14:
            localctx = new AlterByLockContext(this, localctx);
            this.enterOuterAlt(localctx, 14);
            this.state = 2437;
            this.match(SqlParser.LOCK);
            this.state = 2439;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 2438;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 2441;
            localctx.lockType = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DEFAULT || _la===SqlParser.EXCLUSIVE || _la===SqlParser.NONE || _la===SqlParser.SHARED)) {
                localctx.lockType = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 15:
            localctx = new AlterByModifyColumnContext(this, localctx);
            this.enterOuterAlt(localctx, 15);
            this.state = 2442;
            this.match(SqlParser.MODIFY);
            this.state = 2444;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.COLUMN) {
                this.state = 2443;
                this.match(SqlParser.COLUMN);
            }

            this.state = 2446;
            this.uid();
            this.state = 2447;
            this.columnDefinition();
            this.state = 2451;
            this._errHandler.sync(this);
            switch (this._input.LA(1)) {
            case SqlParser.FIRST:
            	this.state = 2448;
            	this.match(SqlParser.FIRST);
            	break;
            case SqlParser.AFTER:
            	this.state = 2449;
            	this.match(SqlParser.AFTER);
            	this.state = 2450;
            	this.uid();
            	break;
            case SqlParser.EOF:
            case SqlParser.ALTER:
            case SqlParser.ANALYZE:
            case SqlParser.CALL:
            case SqlParser.CHANGE:
            case SqlParser.CHECK:
            case SqlParser.CREATE:
            case SqlParser.DELETE:
            case SqlParser.DESC:
            case SqlParser.DESCRIBE:
            case SqlParser.DROP:
            case SqlParser.EXPLAIN:
            case SqlParser.GET:
            case SqlParser.GRANT:
            case SqlParser.INSERT:
            case SqlParser.KILL:
            case SqlParser.LOAD:
            case SqlParser.LOCK:
            case SqlParser.OPTIMIZE:
            case SqlParser.PARTITION:
            case SqlParser.PURGE:
            case SqlParser.RELEASE:
            case SqlParser.RENAME:
            case SqlParser.REPLACE:
            case SqlParser.RESIGNAL:
            case SqlParser.REVOKE:
            case SqlParser.SELECT:
            case SqlParser.SET:
            case SqlParser.SHOW:
            case SqlParser.SIGNAL:
            case SqlParser.UNLOCK:
            case SqlParser.UPDATE:
            case SqlParser.USE:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.CACHE:
            case SqlParser.CHECKSUM:
            case SqlParser.COMMIT:
            case SqlParser.DEALLOCATE:
            case SqlParser.DO:
            case SqlParser.FLUSH:
            case SqlParser.HANDLER:
            case SqlParser.HELP:
            case SqlParser.INSTALL:
            case SqlParser.PREPARE:
            case SqlParser.REPAIR:
            case SqlParser.RESET:
            case SqlParser.ROLLBACK:
            case SqlParser.SAVEPOINT:
            case SqlParser.START:
            case SqlParser.STOP:
            case SqlParser.TRUNCATE:
            case SqlParser.UNINSTALL:
            case SqlParser.XA:
            case SqlParser.EXECUTE:
            case SqlParser.SHUTDOWN:
            case SqlParser.MINUSMINUS:
            case SqlParser.LR_BRACKET:
            case SqlParser.COMMA:
            case SqlParser.SEMI:
            	break;
            default:
            	break;
            }
            break;

        case 16:
            localctx = new AlterByDropColumnContext(this, localctx);
            this.enterOuterAlt(localctx, 16);
            this.state = 2453;
            this.match(SqlParser.DROP);
            this.state = 2455;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.COLUMN) {
                this.state = 2454;
                this.match(SqlParser.COLUMN);
            }

            this.state = 2457;
            this.uid();
            this.state = 2459;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.RESTRICT) {
                this.state = 2458;
                this.match(SqlParser.RESTRICT);
            }

            break;

        case 17:
            localctx = new AlterByDropPrimaryKeyContext(this, localctx);
            this.enterOuterAlt(localctx, 17);
            this.state = 2461;
            this.match(SqlParser.DROP);
            this.state = 2462;
            this.match(SqlParser.PRIMARY);
            this.state = 2463;
            this.match(SqlParser.KEY);
            break;

        case 18:
            localctx = new AlterByRenameIndexContext(this, localctx);
            this.enterOuterAlt(localctx, 18);
            this.state = 2464;
            this.match(SqlParser.RENAME);
            this.state = 2465;
            localctx.indexFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.INDEX || _la===SqlParser.KEY)) {
                localctx.indexFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 2466;
            this.uid();
            this.state = 2467;
            this.match(SqlParser.TO);
            this.state = 2468;
            this.uid();
            break;

        case 19:
            localctx = new AlterByAlterIndexVisibilityContext(this, localctx);
            this.enterOuterAlt(localctx, 19);
            this.state = 2470;
            this.match(SqlParser.ALTER);
            this.state = 2471;
            this.match(SqlParser.INDEX);
            this.state = 2472;
            this.uid();
            this.state = 2473;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.INVISIBLE || _la===SqlParser.VISIBLE)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 20:
            localctx = new AlterByDropIndexContext(this, localctx);
            this.enterOuterAlt(localctx, 20);
            this.state = 2475;
            this.match(SqlParser.DROP);
            this.state = 2476;
            localctx.indexFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.INDEX || _la===SqlParser.KEY)) {
                localctx.indexFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 2477;
            this.uid();
            break;

        case 21:
            localctx = new AlterByDropForeignKeyContext(this, localctx);
            this.enterOuterAlt(localctx, 21);
            this.state = 2478;
            this.match(SqlParser.DROP);
            this.state = 2479;
            this.match(SqlParser.FOREIGN);
            this.state = 2480;
            this.match(SqlParser.KEY);
            this.state = 2481;
            this.uid();
            break;

        case 22:
            localctx = new AlterByDisableKeysContext(this, localctx);
            this.enterOuterAlt(localctx, 22);
            this.state = 2482;
            this.match(SqlParser.DISABLE);
            this.state = 2483;
            this.match(SqlParser.KEYS);
            break;

        case 23:
            localctx = new AlterByEnableKeysContext(this, localctx);
            this.enterOuterAlt(localctx, 23);
            this.state = 2484;
            this.match(SqlParser.ENABLE);
            this.state = 2485;
            this.match(SqlParser.KEYS);
            break;

        case 24:
            localctx = new AlterByRenameContext(this, localctx);
            this.enterOuterAlt(localctx, 24);
            this.state = 2486;
            this.match(SqlParser.RENAME);
            this.state = 2488;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.AS || _la===SqlParser.TO) {
                this.state = 2487;
                localctx.renameFormat = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.AS || _la===SqlParser.TO)) {
                    localctx.renameFormat = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 2492;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,318,this._ctx);
            switch(la_) {
            case 1:
                this.state = 2490;
                this.uid();
                break;

            case 2:
                this.state = 2491;
                this.fullId();
                break;

            }
            break;

        case 25:
            localctx = new AlterByOrderContext(this, localctx);
            this.enterOuterAlt(localctx, 25);
            this.state = 2494;
            this.match(SqlParser.ORDER);
            this.state = 2495;
            this.match(SqlParser.BY);
            this.state = 2496;
            this.uidList();
            break;

        case 26:
            localctx = new AlterByConvertCharsetContext(this, localctx);
            this.enterOuterAlt(localctx, 26);
            this.state = 2497;
            this.match(SqlParser.CONVERT);
            this.state = 2498;
            this.match(SqlParser.TO);
            this.state = 2499;
            this.match(SqlParser.CHARACTER);
            this.state = 2500;
            this.match(SqlParser.SET);
            this.state = 2501;
            this.charsetName();
            this.state = 2504;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.COLLATE) {
                this.state = 2502;
                this.match(SqlParser.COLLATE);
                this.state = 2503;
                this.collationName();
            }

            break;

        case 27:
            localctx = new AlterByDefaultCharsetContext(this, localctx);
            this.enterOuterAlt(localctx, 27);
            this.state = 2507;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.DEFAULT) {
                this.state = 2506;
                this.match(SqlParser.DEFAULT);
            }

            this.state = 2509;
            this.match(SqlParser.CHARACTER);
            this.state = 2510;
            this.match(SqlParser.SET);
            this.state = 2511;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 2512;
            this.charsetName();
            this.state = 2516;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.COLLATE) {
                this.state = 2513;
                this.match(SqlParser.COLLATE);
                this.state = 2514;
                this.match(SqlParser.EQUAL_SYMBOL);
                this.state = 2515;
                this.collationName();
            }

            break;

        case 28:
            localctx = new AlterByDiscardTablespaceContext(this, localctx);
            this.enterOuterAlt(localctx, 28);
            this.state = 2518;
            this.match(SqlParser.DISCARD);
            this.state = 2519;
            this.match(SqlParser.TABLESPACE);
            break;

        case 29:
            localctx = new AlterByImportTablespaceContext(this, localctx);
            this.enterOuterAlt(localctx, 29);
            this.state = 2520;
            this.match(SqlParser.IMPORT);
            this.state = 2521;
            this.match(SqlParser.TABLESPACE);
            break;

        case 30:
            localctx = new AlterByForceContext(this, localctx);
            this.enterOuterAlt(localctx, 30);
            this.state = 2522;
            this.match(SqlParser.FORCE);
            break;

        case 31:
            localctx = new AlterByValidateContext(this, localctx);
            this.enterOuterAlt(localctx, 31);
            this.state = 2523;
            localctx.validationFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.WITH || _la===SqlParser.WITHOUT)) {
                localctx.validationFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 2524;
            this.match(SqlParser.VALIDATION);
            break;

        case 32:
            localctx = new AlterByAddPartitionContext(this, localctx);
            this.enterOuterAlt(localctx, 32);
            this.state = 2525;
            this.match(SqlParser.ADD);
            this.state = 2526;
            this.match(SqlParser.PARTITION);
            this.state = 2527;
            this.match(SqlParser.LR_BRACKET);
            this.state = 2528;
            this.partitionDefinition();
            this.state = 2533;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 2529;
                this.match(SqlParser.COMMA);
                this.state = 2530;
                this.partitionDefinition();
                this.state = 2535;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 2536;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 33:
            localctx = new AlterByDropPartitionContext(this, localctx);
            this.enterOuterAlt(localctx, 33);
            this.state = 2538;
            this.match(SqlParser.DROP);
            this.state = 2539;
            this.match(SqlParser.PARTITION);
            this.state = 2540;
            this.uidList();
            break;

        case 34:
            localctx = new AlterByDiscardPartitionContext(this, localctx);
            this.enterOuterAlt(localctx, 34);
            this.state = 2541;
            this.match(SqlParser.DISCARD);
            this.state = 2542;
            this.match(SqlParser.PARTITION);
            this.state = 2545;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.CURRENT:
            case SqlParser.DATABASE:
            case SqlParser.DIAGNOSTICS:
            case SqlParser.LEFT:
            case SqlParser.NUMBER:
            case SqlParser.RIGHT:
            case SqlParser.STACKED:
            case SqlParser.DATE:
            case SqlParser.TIME:
            case SqlParser.TIMESTAMP:
            case SqlParser.DATETIME:
            case SqlParser.YEAR:
            case SqlParser.TEXT:
            case SqlParser.ENUM:
            case SqlParser.SERIAL:
            case SqlParser.JSON_VALID:
            case SqlParser.JSON_SCHEMA_VALID:
            case SqlParser.COUNT:
            case SqlParser.POSITION:
            case SqlParser.ACCOUNT:
            case SqlParser.ACTION:
            case SqlParser.AFTER:
            case SqlParser.AGGREGATE:
            case SqlParser.ALGORITHM:
            case SqlParser.ANY:
            case SqlParser.AT:
            case SqlParser.AUTHORS:
            case SqlParser.AUTOCOMMIT:
            case SqlParser.AUTOEXTEND_SIZE:
            case SqlParser.AUTO_INCREMENT:
            case SqlParser.AVG_ROW_LENGTH:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.BIT:
            case SqlParser.BLOCK:
            case SqlParser.BOOL:
            case SqlParser.BOOLEAN:
            case SqlParser.BTREE:
            case SqlParser.CACHE:
            case SqlParser.CASCADED:
            case SqlParser.CHAIN:
            case SqlParser.CHANGED:
            case SqlParser.CHANNEL:
            case SqlParser.CHECKSUM:
            case SqlParser.PAGE_CHECKSUM:
            case SqlParser.CIPHER:
            case SqlParser.CLASS_ORIGIN:
            case SqlParser.CLIENT:
            case SqlParser.CLOSE:
            case SqlParser.COALESCE:
            case SqlParser.CODE:
            case SqlParser.COLUMNS:
            case SqlParser.COLUMN_FORMAT:
            case SqlParser.COLUMN_NAME:
            case SqlParser.COMMENT:
            case SqlParser.COMMIT:
            case SqlParser.COMPACT:
            case SqlParser.COMPLETION:
            case SqlParser.COMPRESSED:
            case SqlParser.COMPRESSION:
            case SqlParser.CONCURRENT:
            case SqlParser.CONNECTION:
            case SqlParser.CONSISTENT:
            case SqlParser.CONSTRAINT_CATALOG:
            case SqlParser.CONSTRAINT_SCHEMA:
            case SqlParser.CONSTRAINT_NAME:
            case SqlParser.CONTAINS:
            case SqlParser.CONTEXT:
            case SqlParser.CONTRIBUTORS:
            case SqlParser.COPY:
            case SqlParser.CPU:
            case SqlParser.CURSOR_NAME:
            case SqlParser.DATA:
            case SqlParser.DATAFILE:
            case SqlParser.DEALLOCATE:
            case SqlParser.DEFAULT_AUTH:
            case SqlParser.DEFINER:
            case SqlParser.DELAY_KEY_WRITE:
            case SqlParser.DES_KEY_FILE:
            case SqlParser.DIRECTORY:
            case SqlParser.DISABLE:
            case SqlParser.DISCARD:
            case SqlParser.DISK:
            case SqlParser.DO:
            case SqlParser.DUMPFILE:
            case SqlParser.DUPLICATE:
            case SqlParser.DYNAMIC:
            case SqlParser.ENABLE:
            case SqlParser.ENCRYPTION:
            case SqlParser.END:
            case SqlParser.ENDS:
            case SqlParser.ENGINE:
            case SqlParser.ENGINES:
            case SqlParser.ERROR:
            case SqlParser.ERRORS:
            case SqlParser.ESCAPE:
            case SqlParser.EVEN:
            case SqlParser.EVENT:
            case SqlParser.EVENTS:
            case SqlParser.EVERY:
            case SqlParser.EXCHANGE:
            case SqlParser.EXCLUSIVE:
            case SqlParser.EXPIRE:
            case SqlParser.EXPORT:
            case SqlParser.EXTENDED:
            case SqlParser.EXTENT_SIZE:
            case SqlParser.FAST:
            case SqlParser.FAULTS:
            case SqlParser.FIELDS:
            case SqlParser.FILE_BLOCK_SIZE:
            case SqlParser.FILTER:
            case SqlParser.FIRST:
            case SqlParser.FIXED:
            case SqlParser.FLUSH:
            case SqlParser.FOLLOWS:
            case SqlParser.FOUND:
            case SqlParser.FULL:
            case SqlParser.FUNCTION:
            case SqlParser.GENERAL:
            case SqlParser.GLOBAL:
            case SqlParser.GRANTS:
            case SqlParser.GROUP_REPLICATION:
            case SqlParser.HANDLER:
            case SqlParser.HASH:
            case SqlParser.HELP:
            case SqlParser.HOST:
            case SqlParser.HOSTS:
            case SqlParser.IDENTIFIED:
            case SqlParser.IGNORE_SERVER_IDS:
            case SqlParser.IMPORT:
            case SqlParser.INDEXES:
            case SqlParser.INITIAL_SIZE:
            case SqlParser.INPLACE:
            case SqlParser.INSERT_METHOD:
            case SqlParser.INSTALL:
            case SqlParser.INSTANCE:
            case SqlParser.INVISIBLE:
            case SqlParser.INVOKER:
            case SqlParser.IO:
            case SqlParser.IO_THREAD:
            case SqlParser.IPC:
            case SqlParser.ISOLATION:
            case SqlParser.ISSUER:
            case SqlParser.JSON:
            case SqlParser.KEY_BLOCK_SIZE:
            case SqlParser.LANGUAGE:
            case SqlParser.LAST:
            case SqlParser.LEAVES:
            case SqlParser.LESS:
            case SqlParser.LEVEL:
            case SqlParser.LIST:
            case SqlParser.LOCAL:
            case SqlParser.LOGFILE:
            case SqlParser.LOGS:
            case SqlParser.MASTER:
            case SqlParser.MASTER_AUTO_POSITION:
            case SqlParser.MASTER_CONNECT_RETRY:
            case SqlParser.MASTER_DELAY:
            case SqlParser.MASTER_HEARTBEAT_PERIOD:
            case SqlParser.MASTER_HOST:
            case SqlParser.MASTER_LOG_FILE:
            case SqlParser.MASTER_LOG_POS:
            case SqlParser.MASTER_PASSWORD:
            case SqlParser.MASTER_PORT:
            case SqlParser.MASTER_RETRY_COUNT:
            case SqlParser.MASTER_SSL:
            case SqlParser.MASTER_SSL_CA:
            case SqlParser.MASTER_SSL_CAPATH:
            case SqlParser.MASTER_SSL_CERT:
            case SqlParser.MASTER_SSL_CIPHER:
            case SqlParser.MASTER_SSL_CRL:
            case SqlParser.MASTER_SSL_CRLPATH:
            case SqlParser.MASTER_SSL_KEY:
            case SqlParser.MASTER_TLS_VERSION:
            case SqlParser.MASTER_USER:
            case SqlParser.MAX_CONNECTIONS_PER_HOUR:
            case SqlParser.MAX_QUERIES_PER_HOUR:
            case SqlParser.MAX_ROWS:
            case SqlParser.MAX_SIZE:
            case SqlParser.MAX_UPDATES_PER_HOUR:
            case SqlParser.MAX_USER_CONNECTIONS:
            case SqlParser.MEDIUM:
            case SqlParser.MERGE:
            case SqlParser.MESSAGE_TEXT:
            case SqlParser.MID:
            case SqlParser.MIGRATE:
            case SqlParser.MIN_ROWS:
            case SqlParser.MODE:
            case SqlParser.MODIFY:
            case SqlParser.MUTEX:
            case SqlParser.MYSQL:
            case SqlParser.MYSQL_ERRNO:
            case SqlParser.NAME:
            case SqlParser.NAMES:
            case SqlParser.NCHAR:
            case SqlParser.NEVER:
            case SqlParser.NEXT:
            case SqlParser.NO:
            case SqlParser.NODEGROUP:
            case SqlParser.NONE:
            case SqlParser.OFFLINE:
            case SqlParser.OFFSET:
            case SqlParser.OJ:
            case SqlParser.OLD_PASSWORD:
            case SqlParser.ONE:
            case SqlParser.ONLINE:
            case SqlParser.ONLY:
            case SqlParser.OPEN:
            case SqlParser.OPTIMIZER_COSTS:
            case SqlParser.OPTIONS:
            case SqlParser.OWNER:
            case SqlParser.PACK_KEYS:
            case SqlParser.PAGE:
            case SqlParser.PARSER:
            case SqlParser.PARTIAL:
            case SqlParser.PARTITIONING:
            case SqlParser.PARTITIONS:
            case SqlParser.PASSWORD:
            case SqlParser.PHASE:
            case SqlParser.PLUGIN:
            case SqlParser.PLUGIN_DIR:
            case SqlParser.PLUGINS:
            case SqlParser.PORT:
            case SqlParser.PRECEDES:
            case SqlParser.PREPARE:
            case SqlParser.PRESERVE:
            case SqlParser.PREV:
            case SqlParser.PROCESSLIST:
            case SqlParser.PROFILE:
            case SqlParser.PROFILES:
            case SqlParser.PROXY:
            case SqlParser.QUERY:
            case SqlParser.QUICK:
            case SqlParser.REBUILD:
            case SqlParser.RECOVER:
            case SqlParser.REDO_BUFFER_SIZE:
            case SqlParser.REDUNDANT:
            case SqlParser.RELAY:
            case SqlParser.RELAY_LOG_FILE:
            case SqlParser.RELAY_LOG_POS:
            case SqlParser.RELAYLOG:
            case SqlParser.REMOVE:
            case SqlParser.REORGANIZE:
            case SqlParser.REPAIR:
            case SqlParser.REPLICATE_DO_DB:
            case SqlParser.REPLICATE_DO_TABLE:
            case SqlParser.REPLICATE_IGNORE_DB:
            case SqlParser.REPLICATE_IGNORE_TABLE:
            case SqlParser.REPLICATE_REWRITE_DB:
            case SqlParser.REPLICATE_WILD_DO_TABLE:
            case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
            case SqlParser.REPLICATION:
            case SqlParser.RESET:
            case SqlParser.RESUME:
            case SqlParser.RETURNED_SQLSTATE:
            case SqlParser.RETURNS:
            case SqlParser.ROLE:
            case SqlParser.ROLLBACK:
            case SqlParser.ROLLUP:
            case SqlParser.ROTATE:
            case SqlParser.ROW:
            case SqlParser.ROWS:
            case SqlParser.ROW_FORMAT:
            case SqlParser.SAVEPOINT:
            case SqlParser.SCHEDULE:
            case SqlParser.SECURITY:
            case SqlParser.SERVER:
            case SqlParser.SESSION:
            case SqlParser.SHARE:
            case SqlParser.SHARED:
            case SqlParser.SIGNED:
            case SqlParser.SIMPLE:
            case SqlParser.SLAVE:
            case SqlParser.SLOW:
            case SqlParser.SNAPSHOT:
            case SqlParser.SOCKET:
            case SqlParser.SOME:
            case SqlParser.SONAME:
            case SqlParser.SOUNDS:
            case SqlParser.SOURCE:
            case SqlParser.SQL_AFTER_GTIDS:
            case SqlParser.SQL_AFTER_MTS_GAPS:
            case SqlParser.SQL_BEFORE_GTIDS:
            case SqlParser.SQL_BUFFER_RESULT:
            case SqlParser.SQL_CACHE:
            case SqlParser.SQL_NO_CACHE:
            case SqlParser.SQL_THREAD:
            case SqlParser.START:
            case SqlParser.STARTS:
            case SqlParser.STATS_AUTO_RECALC:
            case SqlParser.STATS_PERSISTENT:
            case SqlParser.STATS_SAMPLE_PAGES:
            case SqlParser.STATUS:
            case SqlParser.STOP:
            case SqlParser.STORAGE:
            case SqlParser.STRING:
            case SqlParser.SUBCLASS_ORIGIN:
            case SqlParser.SUBJECT:
            case SqlParser.SUBPARTITION:
            case SqlParser.SUBPARTITIONS:
            case SqlParser.SUSPEND:
            case SqlParser.SWAPS:
            case SqlParser.SWITCHES:
            case SqlParser.TABLE_NAME:
            case SqlParser.TABLESPACE:
            case SqlParser.TEMPORARY:
            case SqlParser.TEMPTABLE:
            case SqlParser.THAN:
            case SqlParser.TRADITIONAL:
            case SqlParser.TRANSACTION:
            case SqlParser.TRANSACTIONAL:
            case SqlParser.TRIGGERS:
            case SqlParser.TRUNCATE:
            case SqlParser.UNDEFINED:
            case SqlParser.UNDOFILE:
            case SqlParser.UNDO_BUFFER_SIZE:
            case SqlParser.UNINSTALL:
            case SqlParser.UNKNOWN:
            case SqlParser.UNTIL:
            case SqlParser.UPGRADE:
            case SqlParser.USER:
            case SqlParser.USE_FRM:
            case SqlParser.USER_RESOURCES:
            case SqlParser.VALIDATION:
            case SqlParser.VALUE:
            case SqlParser.VARIABLES:
            case SqlParser.VIEW:
            case SqlParser.VISIBLE:
            case SqlParser.WAIT:
            case SqlParser.WARNINGS:
            case SqlParser.WITHOUT:
            case SqlParser.WORK:
            case SqlParser.WRAPPER:
            case SqlParser.X509:
            case SqlParser.XA:
            case SqlParser.XML:
            case SqlParser.INTERNAL:
            case SqlParser.QUARTER:
            case SqlParser.MONTH:
            case SqlParser.DAY:
            case SqlParser.HOUR:
            case SqlParser.MINUTE:
            case SqlParser.WEEK:
            case SqlParser.SECOND:
            case SqlParser.MICROSECOND:
            case SqlParser.TABLES:
            case SqlParser.ROUTINE:
            case SqlParser.EXECUTE:
            case SqlParser.FILE:
            case SqlParser.PROCESS:
            case SqlParser.RELOAD:
            case SqlParser.SHUTDOWN:
            case SqlParser.SUPER:
            case SqlParser.PRIVILEGES:
            case SqlParser.AUDIT_ADMIN:
            case SqlParser.BACKUP_ADMIN:
            case SqlParser.BINLOG_ADMIN:
            case SqlParser.BINLOG_ENCRYPTION_ADMIN:
            case SqlParser.CLONE_ADMIN:
            case SqlParser.CONNECTION_ADMIN:
            case SqlParser.ENCRYPTION_KEY_ADMIN:
            case SqlParser.FIREWALL_ADMIN:
            case SqlParser.FIREWALL_USER:
            case SqlParser.GROUP_REPLICATION_ADMIN:
            case SqlParser.INNODB_REDO_LOG_ARCHIVE:
            case SqlParser.NDB_STORED_USER:
            case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
            case SqlParser.REPLICATION_APPLIER:
            case SqlParser.REPLICATION_SLAVE_ADMIN:
            case SqlParser.RESOURCE_GROUP_ADMIN:
            case SqlParser.RESOURCE_GROUP_USER:
            case SqlParser.ROLE_ADMIN:
            case SqlParser.SESSION_VARIABLES_ADMIN:
            case SqlParser.SET_USER_ID:
            case SqlParser.SHOW_ROUTINE:
            case SqlParser.SYSTEM_VARIABLES_ADMIN:
            case SqlParser.TABLE_ENCRYPTION_ADMIN:
            case SqlParser.VERSION_TOKEN_ADMIN:
            case SqlParser.XA_RECOVER_ADMIN:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.ARCHIVE:
            case SqlParser.BLACKHOLE:
            case SqlParser.CSV:
            case SqlParser.FEDERATED:
            case SqlParser.INNODB:
            case SqlParser.MEMORY:
            case SqlParser.MRG_MYISAM:
            case SqlParser.MYISAM:
            case SqlParser.NDB:
            case SqlParser.NDBCLUSTER:
            case SqlParser.PERFORMANCE_SCHEMA:
            case SqlParser.TOKUDB:
            case SqlParser.REPEATABLE:
            case SqlParser.COMMITTED:
            case SqlParser.UNCOMMITTED:
            case SqlParser.SERIALIZABLE:
            case SqlParser.GEOMETRYCOLLECTION:
            case SqlParser.LINESTRING:
            case SqlParser.MULTILINESTRING:
            case SqlParser.MULTIPOINT:
            case SqlParser.MULTIPOLYGON:
            case SqlParser.POINT:
            case SqlParser.POLYGON:
            case SqlParser.ABS:
            case SqlParser.ACOS:
            case SqlParser.ADDDATE:
            case SqlParser.ADDTIME:
            case SqlParser.AES_DECRYPT:
            case SqlParser.AES_ENCRYPT:
            case SqlParser.AREA:
            case SqlParser.ASBINARY:
            case SqlParser.ASIN:
            case SqlParser.ASTEXT:
            case SqlParser.ASWKB:
            case SqlParser.ASWKT:
            case SqlParser.ASYMMETRIC_DECRYPT:
            case SqlParser.ASYMMETRIC_DERIVE:
            case SqlParser.ASYMMETRIC_ENCRYPT:
            case SqlParser.ASYMMETRIC_SIGN:
            case SqlParser.ASYMMETRIC_VERIFY:
            case SqlParser.ATAN:
            case SqlParser.ATAN2:
            case SqlParser.BENCHMARK:
            case SqlParser.BIN:
            case SqlParser.BIT_COUNT:
            case SqlParser.BIT_LENGTH:
            case SqlParser.BUFFER:
            case SqlParser.CATALOG_NAME:
            case SqlParser.CEIL:
            case SqlParser.CEILING:
            case SqlParser.CENTROID:
            case SqlParser.CHARACTER_LENGTH:
            case SqlParser.CHARSET:
            case SqlParser.CHAR_LENGTH:
            case SqlParser.COERCIBILITY:
            case SqlParser.COLLATION:
            case SqlParser.COMPRESS:
            case SqlParser.CONCAT:
            case SqlParser.CONCAT_WS:
            case SqlParser.CONNECTION_ID:
            case SqlParser.CONV:
            case SqlParser.CONVERT_TZ:
            case SqlParser.COS:
            case SqlParser.COT:
            case SqlParser.CRC32:
            case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
            case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
            case SqlParser.CREATE_DH_PARAMETERS:
            case SqlParser.CREATE_DIGEST:
            case SqlParser.CROSSES:
            case SqlParser.DATEDIFF:
            case SqlParser.DATE_FORMAT:
            case SqlParser.DAYNAME:
            case SqlParser.DAYOFMONTH:
            case SqlParser.DAYOFWEEK:
            case SqlParser.DAYOFYEAR:
            case SqlParser.DECODE:
            case SqlParser.DEGREES:
            case SqlParser.DES_DECRYPT:
            case SqlParser.DES_ENCRYPT:
            case SqlParser.DIMENSION:
            case SqlParser.DISJOINT:
            case SqlParser.ELT:
            case SqlParser.ENCODE:
            case SqlParser.ENCRYPT:
            case SqlParser.ENDPOINT:
            case SqlParser.ENVELOPE:
            case SqlParser.EQUALS:
            case SqlParser.EXP:
            case SqlParser.EXPORT_SET:
            case SqlParser.EXTERIORRING:
            case SqlParser.EXTRACTVALUE:
            case SqlParser.FIELD:
            case SqlParser.FIND_IN_SET:
            case SqlParser.FLOOR:
            case SqlParser.FORMAT:
            case SqlParser.FOUND_ROWS:
            case SqlParser.FROM_BASE64:
            case SqlParser.FROM_DAYS:
            case SqlParser.FROM_UNIXTIME:
            case SqlParser.GEOMCOLLFROMTEXT:
            case SqlParser.GEOMCOLLFROMWKB:
            case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.GEOMETRYFROMTEXT:
            case SqlParser.GEOMETRYFROMWKB:
            case SqlParser.GEOMETRYN:
            case SqlParser.GEOMETRYTYPE:
            case SqlParser.GEOMFROMTEXT:
            case SqlParser.GEOMFROMWKB:
            case SqlParser.GET_FORMAT:
            case SqlParser.GET_LOCK:
            case SqlParser.GLENGTH:
            case SqlParser.GREATEST:
            case SqlParser.GTID_SUBSET:
            case SqlParser.GTID_SUBTRACT:
            case SqlParser.HEX:
            case SqlParser.IFNULL:
            case SqlParser.INET6_ATON:
            case SqlParser.INET6_NTOA:
            case SqlParser.INET_ATON:
            case SqlParser.INET_NTOA:
            case SqlParser.INSTR:
            case SqlParser.INTERIORRINGN:
            case SqlParser.INTERSECTS:
            case SqlParser.ISCLOSED:
            case SqlParser.ISEMPTY:
            case SqlParser.ISNULL:
            case SqlParser.ISSIMPLE:
            case SqlParser.IS_FREE_LOCK:
            case SqlParser.IS_IPV4:
            case SqlParser.IS_IPV4_COMPAT:
            case SqlParser.IS_IPV4_MAPPED:
            case SqlParser.IS_IPV6:
            case SqlParser.IS_USED_LOCK:
            case SqlParser.LAST_INSERT_ID:
            case SqlParser.LCASE:
            case SqlParser.LEAST:
            case SqlParser.LENGTH:
            case SqlParser.LINEFROMTEXT:
            case SqlParser.LINEFROMWKB:
            case SqlParser.LINESTRINGFROMTEXT:
            case SqlParser.LINESTRINGFROMWKB:
            case SqlParser.LN:
            case SqlParser.LOAD_FILE:
            case SqlParser.LOCATE:
            case SqlParser.LOG:
            case SqlParser.LOG10:
            case SqlParser.LOG2:
            case SqlParser.LOWER:
            case SqlParser.LPAD:
            case SqlParser.LTRIM:
            case SqlParser.MAKEDATE:
            case SqlParser.MAKETIME:
            case SqlParser.MAKE_SET:
            case SqlParser.MASTER_POS_WAIT:
            case SqlParser.MBRCONTAINS:
            case SqlParser.MBRDISJOINT:
            case SqlParser.MBREQUAL:
            case SqlParser.MBRINTERSECTS:
            case SqlParser.MBROVERLAPS:
            case SqlParser.MBRTOUCHES:
            case SqlParser.MBRWITHIN:
            case SqlParser.MD5:
            case SqlParser.MLINEFROMTEXT:
            case SqlParser.MLINEFROMWKB:
            case SqlParser.MONTHNAME:
            case SqlParser.MPOINTFROMTEXT:
            case SqlParser.MPOINTFROMWKB:
            case SqlParser.MPOLYFROMTEXT:
            case SqlParser.MPOLYFROMWKB:
            case SqlParser.MULTILINESTRINGFROMTEXT:
            case SqlParser.MULTILINESTRINGFROMWKB:
            case SqlParser.MULTIPOINTFROMTEXT:
            case SqlParser.MULTIPOINTFROMWKB:
            case SqlParser.MULTIPOLYGONFROMTEXT:
            case SqlParser.MULTIPOLYGONFROMWKB:
            case SqlParser.NAME_CONST:
            case SqlParser.NULLIF:
            case SqlParser.NUMGEOMETRIES:
            case SqlParser.NUMINTERIORRINGS:
            case SqlParser.NUMPOINTS:
            case SqlParser.OCT:
            case SqlParser.OCTET_LENGTH:
            case SqlParser.ORD:
            case SqlParser.OVERLAPS:
            case SqlParser.PERIOD_ADD:
            case SqlParser.PERIOD_DIFF:
            case SqlParser.PI:
            case SqlParser.POINTFROMTEXT:
            case SqlParser.POINTFROMWKB:
            case SqlParser.POINTN:
            case SqlParser.POLYFROMTEXT:
            case SqlParser.POLYFROMWKB:
            case SqlParser.POLYGONFROMTEXT:
            case SqlParser.POLYGONFROMWKB:
            case SqlParser.POW:
            case SqlParser.POWER:
            case SqlParser.QUOTE:
            case SqlParser.RADIANS:
            case SqlParser.RAND:
            case SqlParser.RANDOM_BYTES:
            case SqlParser.RELEASE_LOCK:
            case SqlParser.REVERSE:
            case SqlParser.ROUND:
            case SqlParser.ROW_COUNT:
            case SqlParser.RPAD:
            case SqlParser.RTRIM:
            case SqlParser.SEC_TO_TIME:
            case SqlParser.SESSION_USER:
            case SqlParser.SHA:
            case SqlParser.SHA1:
            case SqlParser.SHA2:
            case SqlParser.SCHEMA_NAME:
            case SqlParser.SIGN:
            case SqlParser.SIN:
            case SqlParser.SLEEP:
            case SqlParser.SOUNDEX:
            case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
            case SqlParser.SQRT:
            case SqlParser.SRID:
            case SqlParser.STARTPOINT:
            case SqlParser.STRCMP:
            case SqlParser.STR_TO_DATE:
            case SqlParser.ST_AREA:
            case SqlParser.ST_ASBINARY:
            case SqlParser.ST_ASTEXT:
            case SqlParser.ST_ASWKB:
            case SqlParser.ST_ASWKT:
            case SqlParser.ST_BUFFER:
            case SqlParser.ST_CENTROID:
            case SqlParser.ST_CONTAINS:
            case SqlParser.ST_CROSSES:
            case SqlParser.ST_DIFFERENCE:
            case SqlParser.ST_DIMENSION:
            case SqlParser.ST_DISJOINT:
            case SqlParser.ST_DISTANCE:
            case SqlParser.ST_ENDPOINT:
            case SqlParser.ST_ENVELOPE:
            case SqlParser.ST_EQUALS:
            case SqlParser.ST_EXTERIORRING:
            case SqlParser.ST_GEOMCOLLFROMTEXT:
            case SqlParser.ST_GEOMCOLLFROMTXT:
            case SqlParser.ST_GEOMCOLLFROMWKB:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.ST_GEOMETRYFROMTEXT:
            case SqlParser.ST_GEOMETRYFROMWKB:
            case SqlParser.ST_GEOMETRYN:
            case SqlParser.ST_GEOMETRYTYPE:
            case SqlParser.ST_GEOMFROMTEXT:
            case SqlParser.ST_GEOMFROMWKB:
            case SqlParser.ST_INTERIORRINGN:
            case SqlParser.ST_INTERSECTION:
            case SqlParser.ST_INTERSECTS:
            case SqlParser.ST_ISCLOSED:
            case SqlParser.ST_ISEMPTY:
            case SqlParser.ST_ISSIMPLE:
            case SqlParser.ST_LINEFROMTEXT:
            case SqlParser.ST_LINEFROMWKB:
            case SqlParser.ST_LINESTRINGFROMTEXT:
            case SqlParser.ST_LINESTRINGFROMWKB:
            case SqlParser.ST_NUMGEOMETRIES:
            case SqlParser.ST_NUMINTERIORRING:
            case SqlParser.ST_NUMINTERIORRINGS:
            case SqlParser.ST_NUMPOINTS:
            case SqlParser.ST_OVERLAPS:
            case SqlParser.ST_POINTFROMTEXT:
            case SqlParser.ST_POINTFROMWKB:
            case SqlParser.ST_POINTN:
            case SqlParser.ST_POLYFROMTEXT:
            case SqlParser.ST_POLYFROMWKB:
            case SqlParser.ST_POLYGONFROMTEXT:
            case SqlParser.ST_POLYGONFROMWKB:
            case SqlParser.ST_SRID:
            case SqlParser.ST_STARTPOINT:
            case SqlParser.ST_SYMDIFFERENCE:
            case SqlParser.ST_TOUCHES:
            case SqlParser.ST_UNION:
            case SqlParser.ST_WITHIN:
            case SqlParser.ST_X:
            case SqlParser.ST_Y:
            case SqlParser.SUBDATE:
            case SqlParser.SUBSTRING_INDEX:
            case SqlParser.SUBTIME:
            case SqlParser.SYSTEM_USER:
            case SqlParser.TAN:
            case SqlParser.TIMEDIFF:
            case SqlParser.TIMESTAMPADD:
            case SqlParser.TIMESTAMPDIFF:
            case SqlParser.TIME_FORMAT:
            case SqlParser.TIME_TO_SEC:
            case SqlParser.TOUCHES:
            case SqlParser.TO_BASE64:
            case SqlParser.TO_DAYS:
            case SqlParser.TO_SECONDS:
            case SqlParser.UCASE:
            case SqlParser.UNCOMPRESS:
            case SqlParser.UNCOMPRESSED_LENGTH:
            case SqlParser.UNHEX:
            case SqlParser.UNIX_TIMESTAMP:
            case SqlParser.UPDATEXML:
            case SqlParser.UPPER:
            case SqlParser.UUID:
            case SqlParser.UUID_SHORT:
            case SqlParser.VALIDATE_PASSWORD_STRENGTH:
            case SqlParser.VERSION:
            case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
            case SqlParser.WEEKDAY:
            case SqlParser.WEEKOFYEAR:
            case SqlParser.WEIGHT_STRING:
            case SqlParser.WITHIN:
            case SqlParser.YEARWEEK:
            case SqlParser.Y_FUNCTION:
            case SqlParser.X_FUNCTION:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
            case SqlParser.ID:
            case SqlParser.REVERSE_QUOTE_ID:
                this.state = 2543;
                this.uidList();
                break;
            case SqlParser.ALL:
                this.state = 2544;
                this.match(SqlParser.ALL);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            this.state = 2547;
            this.match(SqlParser.TABLESPACE);
            break;

        case 35:
            localctx = new AlterByImportPartitionContext(this, localctx);
            this.enterOuterAlt(localctx, 35);
            this.state = 2548;
            this.match(SqlParser.IMPORT);
            this.state = 2549;
            this.match(SqlParser.PARTITION);
            this.state = 2552;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.CURRENT:
            case SqlParser.DATABASE:
            case SqlParser.DIAGNOSTICS:
            case SqlParser.LEFT:
            case SqlParser.NUMBER:
            case SqlParser.RIGHT:
            case SqlParser.STACKED:
            case SqlParser.DATE:
            case SqlParser.TIME:
            case SqlParser.TIMESTAMP:
            case SqlParser.DATETIME:
            case SqlParser.YEAR:
            case SqlParser.TEXT:
            case SqlParser.ENUM:
            case SqlParser.SERIAL:
            case SqlParser.JSON_VALID:
            case SqlParser.JSON_SCHEMA_VALID:
            case SqlParser.COUNT:
            case SqlParser.POSITION:
            case SqlParser.ACCOUNT:
            case SqlParser.ACTION:
            case SqlParser.AFTER:
            case SqlParser.AGGREGATE:
            case SqlParser.ALGORITHM:
            case SqlParser.ANY:
            case SqlParser.AT:
            case SqlParser.AUTHORS:
            case SqlParser.AUTOCOMMIT:
            case SqlParser.AUTOEXTEND_SIZE:
            case SqlParser.AUTO_INCREMENT:
            case SqlParser.AVG_ROW_LENGTH:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.BIT:
            case SqlParser.BLOCK:
            case SqlParser.BOOL:
            case SqlParser.BOOLEAN:
            case SqlParser.BTREE:
            case SqlParser.CACHE:
            case SqlParser.CASCADED:
            case SqlParser.CHAIN:
            case SqlParser.CHANGED:
            case SqlParser.CHANNEL:
            case SqlParser.CHECKSUM:
            case SqlParser.PAGE_CHECKSUM:
            case SqlParser.CIPHER:
            case SqlParser.CLASS_ORIGIN:
            case SqlParser.CLIENT:
            case SqlParser.CLOSE:
            case SqlParser.COALESCE:
            case SqlParser.CODE:
            case SqlParser.COLUMNS:
            case SqlParser.COLUMN_FORMAT:
            case SqlParser.COLUMN_NAME:
            case SqlParser.COMMENT:
            case SqlParser.COMMIT:
            case SqlParser.COMPACT:
            case SqlParser.COMPLETION:
            case SqlParser.COMPRESSED:
            case SqlParser.COMPRESSION:
            case SqlParser.CONCURRENT:
            case SqlParser.CONNECTION:
            case SqlParser.CONSISTENT:
            case SqlParser.CONSTRAINT_CATALOG:
            case SqlParser.CONSTRAINT_SCHEMA:
            case SqlParser.CONSTRAINT_NAME:
            case SqlParser.CONTAINS:
            case SqlParser.CONTEXT:
            case SqlParser.CONTRIBUTORS:
            case SqlParser.COPY:
            case SqlParser.CPU:
            case SqlParser.CURSOR_NAME:
            case SqlParser.DATA:
            case SqlParser.DATAFILE:
            case SqlParser.DEALLOCATE:
            case SqlParser.DEFAULT_AUTH:
            case SqlParser.DEFINER:
            case SqlParser.DELAY_KEY_WRITE:
            case SqlParser.DES_KEY_FILE:
            case SqlParser.DIRECTORY:
            case SqlParser.DISABLE:
            case SqlParser.DISCARD:
            case SqlParser.DISK:
            case SqlParser.DO:
            case SqlParser.DUMPFILE:
            case SqlParser.DUPLICATE:
            case SqlParser.DYNAMIC:
            case SqlParser.ENABLE:
            case SqlParser.ENCRYPTION:
            case SqlParser.END:
            case SqlParser.ENDS:
            case SqlParser.ENGINE:
            case SqlParser.ENGINES:
            case SqlParser.ERROR:
            case SqlParser.ERRORS:
            case SqlParser.ESCAPE:
            case SqlParser.EVEN:
            case SqlParser.EVENT:
            case SqlParser.EVENTS:
            case SqlParser.EVERY:
            case SqlParser.EXCHANGE:
            case SqlParser.EXCLUSIVE:
            case SqlParser.EXPIRE:
            case SqlParser.EXPORT:
            case SqlParser.EXTENDED:
            case SqlParser.EXTENT_SIZE:
            case SqlParser.FAST:
            case SqlParser.FAULTS:
            case SqlParser.FIELDS:
            case SqlParser.FILE_BLOCK_SIZE:
            case SqlParser.FILTER:
            case SqlParser.FIRST:
            case SqlParser.FIXED:
            case SqlParser.FLUSH:
            case SqlParser.FOLLOWS:
            case SqlParser.FOUND:
            case SqlParser.FULL:
            case SqlParser.FUNCTION:
            case SqlParser.GENERAL:
            case SqlParser.GLOBAL:
            case SqlParser.GRANTS:
            case SqlParser.GROUP_REPLICATION:
            case SqlParser.HANDLER:
            case SqlParser.HASH:
            case SqlParser.HELP:
            case SqlParser.HOST:
            case SqlParser.HOSTS:
            case SqlParser.IDENTIFIED:
            case SqlParser.IGNORE_SERVER_IDS:
            case SqlParser.IMPORT:
            case SqlParser.INDEXES:
            case SqlParser.INITIAL_SIZE:
            case SqlParser.INPLACE:
            case SqlParser.INSERT_METHOD:
            case SqlParser.INSTALL:
            case SqlParser.INSTANCE:
            case SqlParser.INVISIBLE:
            case SqlParser.INVOKER:
            case SqlParser.IO:
            case SqlParser.IO_THREAD:
            case SqlParser.IPC:
            case SqlParser.ISOLATION:
            case SqlParser.ISSUER:
            case SqlParser.JSON:
            case SqlParser.KEY_BLOCK_SIZE:
            case SqlParser.LANGUAGE:
            case SqlParser.LAST:
            case SqlParser.LEAVES:
            case SqlParser.LESS:
            case SqlParser.LEVEL:
            case SqlParser.LIST:
            case SqlParser.LOCAL:
            case SqlParser.LOGFILE:
            case SqlParser.LOGS:
            case SqlParser.MASTER:
            case SqlParser.MASTER_AUTO_POSITION:
            case SqlParser.MASTER_CONNECT_RETRY:
            case SqlParser.MASTER_DELAY:
            case SqlParser.MASTER_HEARTBEAT_PERIOD:
            case SqlParser.MASTER_HOST:
            case SqlParser.MASTER_LOG_FILE:
            case SqlParser.MASTER_LOG_POS:
            case SqlParser.MASTER_PASSWORD:
            case SqlParser.MASTER_PORT:
            case SqlParser.MASTER_RETRY_COUNT:
            case SqlParser.MASTER_SSL:
            case SqlParser.MASTER_SSL_CA:
            case SqlParser.MASTER_SSL_CAPATH:
            case SqlParser.MASTER_SSL_CERT:
            case SqlParser.MASTER_SSL_CIPHER:
            case SqlParser.MASTER_SSL_CRL:
            case SqlParser.MASTER_SSL_CRLPATH:
            case SqlParser.MASTER_SSL_KEY:
            case SqlParser.MASTER_TLS_VERSION:
            case SqlParser.MASTER_USER:
            case SqlParser.MAX_CONNECTIONS_PER_HOUR:
            case SqlParser.MAX_QUERIES_PER_HOUR:
            case SqlParser.MAX_ROWS:
            case SqlParser.MAX_SIZE:
            case SqlParser.MAX_UPDATES_PER_HOUR:
            case SqlParser.MAX_USER_CONNECTIONS:
            case SqlParser.MEDIUM:
            case SqlParser.MERGE:
            case SqlParser.MESSAGE_TEXT:
            case SqlParser.MID:
            case SqlParser.MIGRATE:
            case SqlParser.MIN_ROWS:
            case SqlParser.MODE:
            case SqlParser.MODIFY:
            case SqlParser.MUTEX:
            case SqlParser.MYSQL:
            case SqlParser.MYSQL_ERRNO:
            case SqlParser.NAME:
            case SqlParser.NAMES:
            case SqlParser.NCHAR:
            case SqlParser.NEVER:
            case SqlParser.NEXT:
            case SqlParser.NO:
            case SqlParser.NODEGROUP:
            case SqlParser.NONE:
            case SqlParser.OFFLINE:
            case SqlParser.OFFSET:
            case SqlParser.OJ:
            case SqlParser.OLD_PASSWORD:
            case SqlParser.ONE:
            case SqlParser.ONLINE:
            case SqlParser.ONLY:
            case SqlParser.OPEN:
            case SqlParser.OPTIMIZER_COSTS:
            case SqlParser.OPTIONS:
            case SqlParser.OWNER:
            case SqlParser.PACK_KEYS:
            case SqlParser.PAGE:
            case SqlParser.PARSER:
            case SqlParser.PARTIAL:
            case SqlParser.PARTITIONING:
            case SqlParser.PARTITIONS:
            case SqlParser.PASSWORD:
            case SqlParser.PHASE:
            case SqlParser.PLUGIN:
            case SqlParser.PLUGIN_DIR:
            case SqlParser.PLUGINS:
            case SqlParser.PORT:
            case SqlParser.PRECEDES:
            case SqlParser.PREPARE:
            case SqlParser.PRESERVE:
            case SqlParser.PREV:
            case SqlParser.PROCESSLIST:
            case SqlParser.PROFILE:
            case SqlParser.PROFILES:
            case SqlParser.PROXY:
            case SqlParser.QUERY:
            case SqlParser.QUICK:
            case SqlParser.REBUILD:
            case SqlParser.RECOVER:
            case SqlParser.REDO_BUFFER_SIZE:
            case SqlParser.REDUNDANT:
            case SqlParser.RELAY:
            case SqlParser.RELAY_LOG_FILE:
            case SqlParser.RELAY_LOG_POS:
            case SqlParser.RELAYLOG:
            case SqlParser.REMOVE:
            case SqlParser.REORGANIZE:
            case SqlParser.REPAIR:
            case SqlParser.REPLICATE_DO_DB:
            case SqlParser.REPLICATE_DO_TABLE:
            case SqlParser.REPLICATE_IGNORE_DB:
            case SqlParser.REPLICATE_IGNORE_TABLE:
            case SqlParser.REPLICATE_REWRITE_DB:
            case SqlParser.REPLICATE_WILD_DO_TABLE:
            case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
            case SqlParser.REPLICATION:
            case SqlParser.RESET:
            case SqlParser.RESUME:
            case SqlParser.RETURNED_SQLSTATE:
            case SqlParser.RETURNS:
            case SqlParser.ROLE:
            case SqlParser.ROLLBACK:
            case SqlParser.ROLLUP:
            case SqlParser.ROTATE:
            case SqlParser.ROW:
            case SqlParser.ROWS:
            case SqlParser.ROW_FORMAT:
            case SqlParser.SAVEPOINT:
            case SqlParser.SCHEDULE:
            case SqlParser.SECURITY:
            case SqlParser.SERVER:
            case SqlParser.SESSION:
            case SqlParser.SHARE:
            case SqlParser.SHARED:
            case SqlParser.SIGNED:
            case SqlParser.SIMPLE:
            case SqlParser.SLAVE:
            case SqlParser.SLOW:
            case SqlParser.SNAPSHOT:
            case SqlParser.SOCKET:
            case SqlParser.SOME:
            case SqlParser.SONAME:
            case SqlParser.SOUNDS:
            case SqlParser.SOURCE:
            case SqlParser.SQL_AFTER_GTIDS:
            case SqlParser.SQL_AFTER_MTS_GAPS:
            case SqlParser.SQL_BEFORE_GTIDS:
            case SqlParser.SQL_BUFFER_RESULT:
            case SqlParser.SQL_CACHE:
            case SqlParser.SQL_NO_CACHE:
            case SqlParser.SQL_THREAD:
            case SqlParser.START:
            case SqlParser.STARTS:
            case SqlParser.STATS_AUTO_RECALC:
            case SqlParser.STATS_PERSISTENT:
            case SqlParser.STATS_SAMPLE_PAGES:
            case SqlParser.STATUS:
            case SqlParser.STOP:
            case SqlParser.STORAGE:
            case SqlParser.STRING:
            case SqlParser.SUBCLASS_ORIGIN:
            case SqlParser.SUBJECT:
            case SqlParser.SUBPARTITION:
            case SqlParser.SUBPARTITIONS:
            case SqlParser.SUSPEND:
            case SqlParser.SWAPS:
            case SqlParser.SWITCHES:
            case SqlParser.TABLE_NAME:
            case SqlParser.TABLESPACE:
            case SqlParser.TEMPORARY:
            case SqlParser.TEMPTABLE:
            case SqlParser.THAN:
            case SqlParser.TRADITIONAL:
            case SqlParser.TRANSACTION:
            case SqlParser.TRANSACTIONAL:
            case SqlParser.TRIGGERS:
            case SqlParser.TRUNCATE:
            case SqlParser.UNDEFINED:
            case SqlParser.UNDOFILE:
            case SqlParser.UNDO_BUFFER_SIZE:
            case SqlParser.UNINSTALL:
            case SqlParser.UNKNOWN:
            case SqlParser.UNTIL:
            case SqlParser.UPGRADE:
            case SqlParser.USER:
            case SqlParser.USE_FRM:
            case SqlParser.USER_RESOURCES:
            case SqlParser.VALIDATION:
            case SqlParser.VALUE:
            case SqlParser.VARIABLES:
            case SqlParser.VIEW:
            case SqlParser.VISIBLE:
            case SqlParser.WAIT:
            case SqlParser.WARNINGS:
            case SqlParser.WITHOUT:
            case SqlParser.WORK:
            case SqlParser.WRAPPER:
            case SqlParser.X509:
            case SqlParser.XA:
            case SqlParser.XML:
            case SqlParser.INTERNAL:
            case SqlParser.QUARTER:
            case SqlParser.MONTH:
            case SqlParser.DAY:
            case SqlParser.HOUR:
            case SqlParser.MINUTE:
            case SqlParser.WEEK:
            case SqlParser.SECOND:
            case SqlParser.MICROSECOND:
            case SqlParser.TABLES:
            case SqlParser.ROUTINE:
            case SqlParser.EXECUTE:
            case SqlParser.FILE:
            case SqlParser.PROCESS:
            case SqlParser.RELOAD:
            case SqlParser.SHUTDOWN:
            case SqlParser.SUPER:
            case SqlParser.PRIVILEGES:
            case SqlParser.AUDIT_ADMIN:
            case SqlParser.BACKUP_ADMIN:
            case SqlParser.BINLOG_ADMIN:
            case SqlParser.BINLOG_ENCRYPTION_ADMIN:
            case SqlParser.CLONE_ADMIN:
            case SqlParser.CONNECTION_ADMIN:
            case SqlParser.ENCRYPTION_KEY_ADMIN:
            case SqlParser.FIREWALL_ADMIN:
            case SqlParser.FIREWALL_USER:
            case SqlParser.GROUP_REPLICATION_ADMIN:
            case SqlParser.INNODB_REDO_LOG_ARCHIVE:
            case SqlParser.NDB_STORED_USER:
            case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
            case SqlParser.REPLICATION_APPLIER:
            case SqlParser.REPLICATION_SLAVE_ADMIN:
            case SqlParser.RESOURCE_GROUP_ADMIN:
            case SqlParser.RESOURCE_GROUP_USER:
            case SqlParser.ROLE_ADMIN:
            case SqlParser.SESSION_VARIABLES_ADMIN:
            case SqlParser.SET_USER_ID:
            case SqlParser.SHOW_ROUTINE:
            case SqlParser.SYSTEM_VARIABLES_ADMIN:
            case SqlParser.TABLE_ENCRYPTION_ADMIN:
            case SqlParser.VERSION_TOKEN_ADMIN:
            case SqlParser.XA_RECOVER_ADMIN:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.ARCHIVE:
            case SqlParser.BLACKHOLE:
            case SqlParser.CSV:
            case SqlParser.FEDERATED:
            case SqlParser.INNODB:
            case SqlParser.MEMORY:
            case SqlParser.MRG_MYISAM:
            case SqlParser.MYISAM:
            case SqlParser.NDB:
            case SqlParser.NDBCLUSTER:
            case SqlParser.PERFORMANCE_SCHEMA:
            case SqlParser.TOKUDB:
            case SqlParser.REPEATABLE:
            case SqlParser.COMMITTED:
            case SqlParser.UNCOMMITTED:
            case SqlParser.SERIALIZABLE:
            case SqlParser.GEOMETRYCOLLECTION:
            case SqlParser.LINESTRING:
            case SqlParser.MULTILINESTRING:
            case SqlParser.MULTIPOINT:
            case SqlParser.MULTIPOLYGON:
            case SqlParser.POINT:
            case SqlParser.POLYGON:
            case SqlParser.ABS:
            case SqlParser.ACOS:
            case SqlParser.ADDDATE:
            case SqlParser.ADDTIME:
            case SqlParser.AES_DECRYPT:
            case SqlParser.AES_ENCRYPT:
            case SqlParser.AREA:
            case SqlParser.ASBINARY:
            case SqlParser.ASIN:
            case SqlParser.ASTEXT:
            case SqlParser.ASWKB:
            case SqlParser.ASWKT:
            case SqlParser.ASYMMETRIC_DECRYPT:
            case SqlParser.ASYMMETRIC_DERIVE:
            case SqlParser.ASYMMETRIC_ENCRYPT:
            case SqlParser.ASYMMETRIC_SIGN:
            case SqlParser.ASYMMETRIC_VERIFY:
            case SqlParser.ATAN:
            case SqlParser.ATAN2:
            case SqlParser.BENCHMARK:
            case SqlParser.BIN:
            case SqlParser.BIT_COUNT:
            case SqlParser.BIT_LENGTH:
            case SqlParser.BUFFER:
            case SqlParser.CATALOG_NAME:
            case SqlParser.CEIL:
            case SqlParser.CEILING:
            case SqlParser.CENTROID:
            case SqlParser.CHARACTER_LENGTH:
            case SqlParser.CHARSET:
            case SqlParser.CHAR_LENGTH:
            case SqlParser.COERCIBILITY:
            case SqlParser.COLLATION:
            case SqlParser.COMPRESS:
            case SqlParser.CONCAT:
            case SqlParser.CONCAT_WS:
            case SqlParser.CONNECTION_ID:
            case SqlParser.CONV:
            case SqlParser.CONVERT_TZ:
            case SqlParser.COS:
            case SqlParser.COT:
            case SqlParser.CRC32:
            case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
            case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
            case SqlParser.CREATE_DH_PARAMETERS:
            case SqlParser.CREATE_DIGEST:
            case SqlParser.CROSSES:
            case SqlParser.DATEDIFF:
            case SqlParser.DATE_FORMAT:
            case SqlParser.DAYNAME:
            case SqlParser.DAYOFMONTH:
            case SqlParser.DAYOFWEEK:
            case SqlParser.DAYOFYEAR:
            case SqlParser.DECODE:
            case SqlParser.DEGREES:
            case SqlParser.DES_DECRYPT:
            case SqlParser.DES_ENCRYPT:
            case SqlParser.DIMENSION:
            case SqlParser.DISJOINT:
            case SqlParser.ELT:
            case SqlParser.ENCODE:
            case SqlParser.ENCRYPT:
            case SqlParser.ENDPOINT:
            case SqlParser.ENVELOPE:
            case SqlParser.EQUALS:
            case SqlParser.EXP:
            case SqlParser.EXPORT_SET:
            case SqlParser.EXTERIORRING:
            case SqlParser.EXTRACTVALUE:
            case SqlParser.FIELD:
            case SqlParser.FIND_IN_SET:
            case SqlParser.FLOOR:
            case SqlParser.FORMAT:
            case SqlParser.FOUND_ROWS:
            case SqlParser.FROM_BASE64:
            case SqlParser.FROM_DAYS:
            case SqlParser.FROM_UNIXTIME:
            case SqlParser.GEOMCOLLFROMTEXT:
            case SqlParser.GEOMCOLLFROMWKB:
            case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.GEOMETRYFROMTEXT:
            case SqlParser.GEOMETRYFROMWKB:
            case SqlParser.GEOMETRYN:
            case SqlParser.GEOMETRYTYPE:
            case SqlParser.GEOMFROMTEXT:
            case SqlParser.GEOMFROMWKB:
            case SqlParser.GET_FORMAT:
            case SqlParser.GET_LOCK:
            case SqlParser.GLENGTH:
            case SqlParser.GREATEST:
            case SqlParser.GTID_SUBSET:
            case SqlParser.GTID_SUBTRACT:
            case SqlParser.HEX:
            case SqlParser.IFNULL:
            case SqlParser.INET6_ATON:
            case SqlParser.INET6_NTOA:
            case SqlParser.INET_ATON:
            case SqlParser.INET_NTOA:
            case SqlParser.INSTR:
            case SqlParser.INTERIORRINGN:
            case SqlParser.INTERSECTS:
            case SqlParser.ISCLOSED:
            case SqlParser.ISEMPTY:
            case SqlParser.ISNULL:
            case SqlParser.ISSIMPLE:
            case SqlParser.IS_FREE_LOCK:
            case SqlParser.IS_IPV4:
            case SqlParser.IS_IPV4_COMPAT:
            case SqlParser.IS_IPV4_MAPPED:
            case SqlParser.IS_IPV6:
            case SqlParser.IS_USED_LOCK:
            case SqlParser.LAST_INSERT_ID:
            case SqlParser.LCASE:
            case SqlParser.LEAST:
            case SqlParser.LENGTH:
            case SqlParser.LINEFROMTEXT:
            case SqlParser.LINEFROMWKB:
            case SqlParser.LINESTRINGFROMTEXT:
            case SqlParser.LINESTRINGFROMWKB:
            case SqlParser.LN:
            case SqlParser.LOAD_FILE:
            case SqlParser.LOCATE:
            case SqlParser.LOG:
            case SqlParser.LOG10:
            case SqlParser.LOG2:
            case SqlParser.LOWER:
            case SqlParser.LPAD:
            case SqlParser.LTRIM:
            case SqlParser.MAKEDATE:
            case SqlParser.MAKETIME:
            case SqlParser.MAKE_SET:
            case SqlParser.MASTER_POS_WAIT:
            case SqlParser.MBRCONTAINS:
            case SqlParser.MBRDISJOINT:
            case SqlParser.MBREQUAL:
            case SqlParser.MBRINTERSECTS:
            case SqlParser.MBROVERLAPS:
            case SqlParser.MBRTOUCHES:
            case SqlParser.MBRWITHIN:
            case SqlParser.MD5:
            case SqlParser.MLINEFROMTEXT:
            case SqlParser.MLINEFROMWKB:
            case SqlParser.MONTHNAME:
            case SqlParser.MPOINTFROMTEXT:
            case SqlParser.MPOINTFROMWKB:
            case SqlParser.MPOLYFROMTEXT:
            case SqlParser.MPOLYFROMWKB:
            case SqlParser.MULTILINESTRINGFROMTEXT:
            case SqlParser.MULTILINESTRINGFROMWKB:
            case SqlParser.MULTIPOINTFROMTEXT:
            case SqlParser.MULTIPOINTFROMWKB:
            case SqlParser.MULTIPOLYGONFROMTEXT:
            case SqlParser.MULTIPOLYGONFROMWKB:
            case SqlParser.NAME_CONST:
            case SqlParser.NULLIF:
            case SqlParser.NUMGEOMETRIES:
            case SqlParser.NUMINTERIORRINGS:
            case SqlParser.NUMPOINTS:
            case SqlParser.OCT:
            case SqlParser.OCTET_LENGTH:
            case SqlParser.ORD:
            case SqlParser.OVERLAPS:
            case SqlParser.PERIOD_ADD:
            case SqlParser.PERIOD_DIFF:
            case SqlParser.PI:
            case SqlParser.POINTFROMTEXT:
            case SqlParser.POINTFROMWKB:
            case SqlParser.POINTN:
            case SqlParser.POLYFROMTEXT:
            case SqlParser.POLYFROMWKB:
            case SqlParser.POLYGONFROMTEXT:
            case SqlParser.POLYGONFROMWKB:
            case SqlParser.POW:
            case SqlParser.POWER:
            case SqlParser.QUOTE:
            case SqlParser.RADIANS:
            case SqlParser.RAND:
            case SqlParser.RANDOM_BYTES:
            case SqlParser.RELEASE_LOCK:
            case SqlParser.REVERSE:
            case SqlParser.ROUND:
            case SqlParser.ROW_COUNT:
            case SqlParser.RPAD:
            case SqlParser.RTRIM:
            case SqlParser.SEC_TO_TIME:
            case SqlParser.SESSION_USER:
            case SqlParser.SHA:
            case SqlParser.SHA1:
            case SqlParser.SHA2:
            case SqlParser.SCHEMA_NAME:
            case SqlParser.SIGN:
            case SqlParser.SIN:
            case SqlParser.SLEEP:
            case SqlParser.SOUNDEX:
            case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
            case SqlParser.SQRT:
            case SqlParser.SRID:
            case SqlParser.STARTPOINT:
            case SqlParser.STRCMP:
            case SqlParser.STR_TO_DATE:
            case SqlParser.ST_AREA:
            case SqlParser.ST_ASBINARY:
            case SqlParser.ST_ASTEXT:
            case SqlParser.ST_ASWKB:
            case SqlParser.ST_ASWKT:
            case SqlParser.ST_BUFFER:
            case SqlParser.ST_CENTROID:
            case SqlParser.ST_CONTAINS:
            case SqlParser.ST_CROSSES:
            case SqlParser.ST_DIFFERENCE:
            case SqlParser.ST_DIMENSION:
            case SqlParser.ST_DISJOINT:
            case SqlParser.ST_DISTANCE:
            case SqlParser.ST_ENDPOINT:
            case SqlParser.ST_ENVELOPE:
            case SqlParser.ST_EQUALS:
            case SqlParser.ST_EXTERIORRING:
            case SqlParser.ST_GEOMCOLLFROMTEXT:
            case SqlParser.ST_GEOMCOLLFROMTXT:
            case SqlParser.ST_GEOMCOLLFROMWKB:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.ST_GEOMETRYFROMTEXT:
            case SqlParser.ST_GEOMETRYFROMWKB:
            case SqlParser.ST_GEOMETRYN:
            case SqlParser.ST_GEOMETRYTYPE:
            case SqlParser.ST_GEOMFROMTEXT:
            case SqlParser.ST_GEOMFROMWKB:
            case SqlParser.ST_INTERIORRINGN:
            case SqlParser.ST_INTERSECTION:
            case SqlParser.ST_INTERSECTS:
            case SqlParser.ST_ISCLOSED:
            case SqlParser.ST_ISEMPTY:
            case SqlParser.ST_ISSIMPLE:
            case SqlParser.ST_LINEFROMTEXT:
            case SqlParser.ST_LINEFROMWKB:
            case SqlParser.ST_LINESTRINGFROMTEXT:
            case SqlParser.ST_LINESTRINGFROMWKB:
            case SqlParser.ST_NUMGEOMETRIES:
            case SqlParser.ST_NUMINTERIORRING:
            case SqlParser.ST_NUMINTERIORRINGS:
            case SqlParser.ST_NUMPOINTS:
            case SqlParser.ST_OVERLAPS:
            case SqlParser.ST_POINTFROMTEXT:
            case SqlParser.ST_POINTFROMWKB:
            case SqlParser.ST_POINTN:
            case SqlParser.ST_POLYFROMTEXT:
            case SqlParser.ST_POLYFROMWKB:
            case SqlParser.ST_POLYGONFROMTEXT:
            case SqlParser.ST_POLYGONFROMWKB:
            case SqlParser.ST_SRID:
            case SqlParser.ST_STARTPOINT:
            case SqlParser.ST_SYMDIFFERENCE:
            case SqlParser.ST_TOUCHES:
            case SqlParser.ST_UNION:
            case SqlParser.ST_WITHIN:
            case SqlParser.ST_X:
            case SqlParser.ST_Y:
            case SqlParser.SUBDATE:
            case SqlParser.SUBSTRING_INDEX:
            case SqlParser.SUBTIME:
            case SqlParser.SYSTEM_USER:
            case SqlParser.TAN:
            case SqlParser.TIMEDIFF:
            case SqlParser.TIMESTAMPADD:
            case SqlParser.TIMESTAMPDIFF:
            case SqlParser.TIME_FORMAT:
            case SqlParser.TIME_TO_SEC:
            case SqlParser.TOUCHES:
            case SqlParser.TO_BASE64:
            case SqlParser.TO_DAYS:
            case SqlParser.TO_SECONDS:
            case SqlParser.UCASE:
            case SqlParser.UNCOMPRESS:
            case SqlParser.UNCOMPRESSED_LENGTH:
            case SqlParser.UNHEX:
            case SqlParser.UNIX_TIMESTAMP:
            case SqlParser.UPDATEXML:
            case SqlParser.UPPER:
            case SqlParser.UUID:
            case SqlParser.UUID_SHORT:
            case SqlParser.VALIDATE_PASSWORD_STRENGTH:
            case SqlParser.VERSION:
            case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
            case SqlParser.WEEKDAY:
            case SqlParser.WEEKOFYEAR:
            case SqlParser.WEIGHT_STRING:
            case SqlParser.WITHIN:
            case SqlParser.YEARWEEK:
            case SqlParser.Y_FUNCTION:
            case SqlParser.X_FUNCTION:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
            case SqlParser.ID:
            case SqlParser.REVERSE_QUOTE_ID:
                this.state = 2550;
                this.uidList();
                break;
            case SqlParser.ALL:
                this.state = 2551;
                this.match(SqlParser.ALL);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            this.state = 2554;
            this.match(SqlParser.TABLESPACE);
            break;

        case 36:
            localctx = new AlterByTruncatePartitionContext(this, localctx);
            this.enterOuterAlt(localctx, 36);
            this.state = 2555;
            this.match(SqlParser.TRUNCATE);
            this.state = 2556;
            this.match(SqlParser.PARTITION);
            this.state = 2559;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.CURRENT:
            case SqlParser.DATABASE:
            case SqlParser.DIAGNOSTICS:
            case SqlParser.LEFT:
            case SqlParser.NUMBER:
            case SqlParser.RIGHT:
            case SqlParser.STACKED:
            case SqlParser.DATE:
            case SqlParser.TIME:
            case SqlParser.TIMESTAMP:
            case SqlParser.DATETIME:
            case SqlParser.YEAR:
            case SqlParser.TEXT:
            case SqlParser.ENUM:
            case SqlParser.SERIAL:
            case SqlParser.JSON_VALID:
            case SqlParser.JSON_SCHEMA_VALID:
            case SqlParser.COUNT:
            case SqlParser.POSITION:
            case SqlParser.ACCOUNT:
            case SqlParser.ACTION:
            case SqlParser.AFTER:
            case SqlParser.AGGREGATE:
            case SqlParser.ALGORITHM:
            case SqlParser.ANY:
            case SqlParser.AT:
            case SqlParser.AUTHORS:
            case SqlParser.AUTOCOMMIT:
            case SqlParser.AUTOEXTEND_SIZE:
            case SqlParser.AUTO_INCREMENT:
            case SqlParser.AVG_ROW_LENGTH:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.BIT:
            case SqlParser.BLOCK:
            case SqlParser.BOOL:
            case SqlParser.BOOLEAN:
            case SqlParser.BTREE:
            case SqlParser.CACHE:
            case SqlParser.CASCADED:
            case SqlParser.CHAIN:
            case SqlParser.CHANGED:
            case SqlParser.CHANNEL:
            case SqlParser.CHECKSUM:
            case SqlParser.PAGE_CHECKSUM:
            case SqlParser.CIPHER:
            case SqlParser.CLASS_ORIGIN:
            case SqlParser.CLIENT:
            case SqlParser.CLOSE:
            case SqlParser.COALESCE:
            case SqlParser.CODE:
            case SqlParser.COLUMNS:
            case SqlParser.COLUMN_FORMAT:
            case SqlParser.COLUMN_NAME:
            case SqlParser.COMMENT:
            case SqlParser.COMMIT:
            case SqlParser.COMPACT:
            case SqlParser.COMPLETION:
            case SqlParser.COMPRESSED:
            case SqlParser.COMPRESSION:
            case SqlParser.CONCURRENT:
            case SqlParser.CONNECTION:
            case SqlParser.CONSISTENT:
            case SqlParser.CONSTRAINT_CATALOG:
            case SqlParser.CONSTRAINT_SCHEMA:
            case SqlParser.CONSTRAINT_NAME:
            case SqlParser.CONTAINS:
            case SqlParser.CONTEXT:
            case SqlParser.CONTRIBUTORS:
            case SqlParser.COPY:
            case SqlParser.CPU:
            case SqlParser.CURSOR_NAME:
            case SqlParser.DATA:
            case SqlParser.DATAFILE:
            case SqlParser.DEALLOCATE:
            case SqlParser.DEFAULT_AUTH:
            case SqlParser.DEFINER:
            case SqlParser.DELAY_KEY_WRITE:
            case SqlParser.DES_KEY_FILE:
            case SqlParser.DIRECTORY:
            case SqlParser.DISABLE:
            case SqlParser.DISCARD:
            case SqlParser.DISK:
            case SqlParser.DO:
            case SqlParser.DUMPFILE:
            case SqlParser.DUPLICATE:
            case SqlParser.DYNAMIC:
            case SqlParser.ENABLE:
            case SqlParser.ENCRYPTION:
            case SqlParser.END:
            case SqlParser.ENDS:
            case SqlParser.ENGINE:
            case SqlParser.ENGINES:
            case SqlParser.ERROR:
            case SqlParser.ERRORS:
            case SqlParser.ESCAPE:
            case SqlParser.EVEN:
            case SqlParser.EVENT:
            case SqlParser.EVENTS:
            case SqlParser.EVERY:
            case SqlParser.EXCHANGE:
            case SqlParser.EXCLUSIVE:
            case SqlParser.EXPIRE:
            case SqlParser.EXPORT:
            case SqlParser.EXTENDED:
            case SqlParser.EXTENT_SIZE:
            case SqlParser.FAST:
            case SqlParser.FAULTS:
            case SqlParser.FIELDS:
            case SqlParser.FILE_BLOCK_SIZE:
            case SqlParser.FILTER:
            case SqlParser.FIRST:
            case SqlParser.FIXED:
            case SqlParser.FLUSH:
            case SqlParser.FOLLOWS:
            case SqlParser.FOUND:
            case SqlParser.FULL:
            case SqlParser.FUNCTION:
            case SqlParser.GENERAL:
            case SqlParser.GLOBAL:
            case SqlParser.GRANTS:
            case SqlParser.GROUP_REPLICATION:
            case SqlParser.HANDLER:
            case SqlParser.HASH:
            case SqlParser.HELP:
            case SqlParser.HOST:
            case SqlParser.HOSTS:
            case SqlParser.IDENTIFIED:
            case SqlParser.IGNORE_SERVER_IDS:
            case SqlParser.IMPORT:
            case SqlParser.INDEXES:
            case SqlParser.INITIAL_SIZE:
            case SqlParser.INPLACE:
            case SqlParser.INSERT_METHOD:
            case SqlParser.INSTALL:
            case SqlParser.INSTANCE:
            case SqlParser.INVISIBLE:
            case SqlParser.INVOKER:
            case SqlParser.IO:
            case SqlParser.IO_THREAD:
            case SqlParser.IPC:
            case SqlParser.ISOLATION:
            case SqlParser.ISSUER:
            case SqlParser.JSON:
            case SqlParser.KEY_BLOCK_SIZE:
            case SqlParser.LANGUAGE:
            case SqlParser.LAST:
            case SqlParser.LEAVES:
            case SqlParser.LESS:
            case SqlParser.LEVEL:
            case SqlParser.LIST:
            case SqlParser.LOCAL:
            case SqlParser.LOGFILE:
            case SqlParser.LOGS:
            case SqlParser.MASTER:
            case SqlParser.MASTER_AUTO_POSITION:
            case SqlParser.MASTER_CONNECT_RETRY:
            case SqlParser.MASTER_DELAY:
            case SqlParser.MASTER_HEARTBEAT_PERIOD:
            case SqlParser.MASTER_HOST:
            case SqlParser.MASTER_LOG_FILE:
            case SqlParser.MASTER_LOG_POS:
            case SqlParser.MASTER_PASSWORD:
            case SqlParser.MASTER_PORT:
            case SqlParser.MASTER_RETRY_COUNT:
            case SqlParser.MASTER_SSL:
            case SqlParser.MASTER_SSL_CA:
            case SqlParser.MASTER_SSL_CAPATH:
            case SqlParser.MASTER_SSL_CERT:
            case SqlParser.MASTER_SSL_CIPHER:
            case SqlParser.MASTER_SSL_CRL:
            case SqlParser.MASTER_SSL_CRLPATH:
            case SqlParser.MASTER_SSL_KEY:
            case SqlParser.MASTER_TLS_VERSION:
            case SqlParser.MASTER_USER:
            case SqlParser.MAX_CONNECTIONS_PER_HOUR:
            case SqlParser.MAX_QUERIES_PER_HOUR:
            case SqlParser.MAX_ROWS:
            case SqlParser.MAX_SIZE:
            case SqlParser.MAX_UPDATES_PER_HOUR:
            case SqlParser.MAX_USER_CONNECTIONS:
            case SqlParser.MEDIUM:
            case SqlParser.MERGE:
            case SqlParser.MESSAGE_TEXT:
            case SqlParser.MID:
            case SqlParser.MIGRATE:
            case SqlParser.MIN_ROWS:
            case SqlParser.MODE:
            case SqlParser.MODIFY:
            case SqlParser.MUTEX:
            case SqlParser.MYSQL:
            case SqlParser.MYSQL_ERRNO:
            case SqlParser.NAME:
            case SqlParser.NAMES:
            case SqlParser.NCHAR:
            case SqlParser.NEVER:
            case SqlParser.NEXT:
            case SqlParser.NO:
            case SqlParser.NODEGROUP:
            case SqlParser.NONE:
            case SqlParser.OFFLINE:
            case SqlParser.OFFSET:
            case SqlParser.OJ:
            case SqlParser.OLD_PASSWORD:
            case SqlParser.ONE:
            case SqlParser.ONLINE:
            case SqlParser.ONLY:
            case SqlParser.OPEN:
            case SqlParser.OPTIMIZER_COSTS:
            case SqlParser.OPTIONS:
            case SqlParser.OWNER:
            case SqlParser.PACK_KEYS:
            case SqlParser.PAGE:
            case SqlParser.PARSER:
            case SqlParser.PARTIAL:
            case SqlParser.PARTITIONING:
            case SqlParser.PARTITIONS:
            case SqlParser.PASSWORD:
            case SqlParser.PHASE:
            case SqlParser.PLUGIN:
            case SqlParser.PLUGIN_DIR:
            case SqlParser.PLUGINS:
            case SqlParser.PORT:
            case SqlParser.PRECEDES:
            case SqlParser.PREPARE:
            case SqlParser.PRESERVE:
            case SqlParser.PREV:
            case SqlParser.PROCESSLIST:
            case SqlParser.PROFILE:
            case SqlParser.PROFILES:
            case SqlParser.PROXY:
            case SqlParser.QUERY:
            case SqlParser.QUICK:
            case SqlParser.REBUILD:
            case SqlParser.RECOVER:
            case SqlParser.REDO_BUFFER_SIZE:
            case SqlParser.REDUNDANT:
            case SqlParser.RELAY:
            case SqlParser.RELAY_LOG_FILE:
            case SqlParser.RELAY_LOG_POS:
            case SqlParser.RELAYLOG:
            case SqlParser.REMOVE:
            case SqlParser.REORGANIZE:
            case SqlParser.REPAIR:
            case SqlParser.REPLICATE_DO_DB:
            case SqlParser.REPLICATE_DO_TABLE:
            case SqlParser.REPLICATE_IGNORE_DB:
            case SqlParser.REPLICATE_IGNORE_TABLE:
            case SqlParser.REPLICATE_REWRITE_DB:
            case SqlParser.REPLICATE_WILD_DO_TABLE:
            case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
            case SqlParser.REPLICATION:
            case SqlParser.RESET:
            case SqlParser.RESUME:
            case SqlParser.RETURNED_SQLSTATE:
            case SqlParser.RETURNS:
            case SqlParser.ROLE:
            case SqlParser.ROLLBACK:
            case SqlParser.ROLLUP:
            case SqlParser.ROTATE:
            case SqlParser.ROW:
            case SqlParser.ROWS:
            case SqlParser.ROW_FORMAT:
            case SqlParser.SAVEPOINT:
            case SqlParser.SCHEDULE:
            case SqlParser.SECURITY:
            case SqlParser.SERVER:
            case SqlParser.SESSION:
            case SqlParser.SHARE:
            case SqlParser.SHARED:
            case SqlParser.SIGNED:
            case SqlParser.SIMPLE:
            case SqlParser.SLAVE:
            case SqlParser.SLOW:
            case SqlParser.SNAPSHOT:
            case SqlParser.SOCKET:
            case SqlParser.SOME:
            case SqlParser.SONAME:
            case SqlParser.SOUNDS:
            case SqlParser.SOURCE:
            case SqlParser.SQL_AFTER_GTIDS:
            case SqlParser.SQL_AFTER_MTS_GAPS:
            case SqlParser.SQL_BEFORE_GTIDS:
            case SqlParser.SQL_BUFFER_RESULT:
            case SqlParser.SQL_CACHE:
            case SqlParser.SQL_NO_CACHE:
            case SqlParser.SQL_THREAD:
            case SqlParser.START:
            case SqlParser.STARTS:
            case SqlParser.STATS_AUTO_RECALC:
            case SqlParser.STATS_PERSISTENT:
            case SqlParser.STATS_SAMPLE_PAGES:
            case SqlParser.STATUS:
            case SqlParser.STOP:
            case SqlParser.STORAGE:
            case SqlParser.STRING:
            case SqlParser.SUBCLASS_ORIGIN:
            case SqlParser.SUBJECT:
            case SqlParser.SUBPARTITION:
            case SqlParser.SUBPARTITIONS:
            case SqlParser.SUSPEND:
            case SqlParser.SWAPS:
            case SqlParser.SWITCHES:
            case SqlParser.TABLE_NAME:
            case SqlParser.TABLESPACE:
            case SqlParser.TEMPORARY:
            case SqlParser.TEMPTABLE:
            case SqlParser.THAN:
            case SqlParser.TRADITIONAL:
            case SqlParser.TRANSACTION:
            case SqlParser.TRANSACTIONAL:
            case SqlParser.TRIGGERS:
            case SqlParser.TRUNCATE:
            case SqlParser.UNDEFINED:
            case SqlParser.UNDOFILE:
            case SqlParser.UNDO_BUFFER_SIZE:
            case SqlParser.UNINSTALL:
            case SqlParser.UNKNOWN:
            case SqlParser.UNTIL:
            case SqlParser.UPGRADE:
            case SqlParser.USER:
            case SqlParser.USE_FRM:
            case SqlParser.USER_RESOURCES:
            case SqlParser.VALIDATION:
            case SqlParser.VALUE:
            case SqlParser.VARIABLES:
            case SqlParser.VIEW:
            case SqlParser.VISIBLE:
            case SqlParser.WAIT:
            case SqlParser.WARNINGS:
            case SqlParser.WITHOUT:
            case SqlParser.WORK:
            case SqlParser.WRAPPER:
            case SqlParser.X509:
            case SqlParser.XA:
            case SqlParser.XML:
            case SqlParser.INTERNAL:
            case SqlParser.QUARTER:
            case SqlParser.MONTH:
            case SqlParser.DAY:
            case SqlParser.HOUR:
            case SqlParser.MINUTE:
            case SqlParser.WEEK:
            case SqlParser.SECOND:
            case SqlParser.MICROSECOND:
            case SqlParser.TABLES:
            case SqlParser.ROUTINE:
            case SqlParser.EXECUTE:
            case SqlParser.FILE:
            case SqlParser.PROCESS:
            case SqlParser.RELOAD:
            case SqlParser.SHUTDOWN:
            case SqlParser.SUPER:
            case SqlParser.PRIVILEGES:
            case SqlParser.AUDIT_ADMIN:
            case SqlParser.BACKUP_ADMIN:
            case SqlParser.BINLOG_ADMIN:
            case SqlParser.BINLOG_ENCRYPTION_ADMIN:
            case SqlParser.CLONE_ADMIN:
            case SqlParser.CONNECTION_ADMIN:
            case SqlParser.ENCRYPTION_KEY_ADMIN:
            case SqlParser.FIREWALL_ADMIN:
            case SqlParser.FIREWALL_USER:
            case SqlParser.GROUP_REPLICATION_ADMIN:
            case SqlParser.INNODB_REDO_LOG_ARCHIVE:
            case SqlParser.NDB_STORED_USER:
            case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
            case SqlParser.REPLICATION_APPLIER:
            case SqlParser.REPLICATION_SLAVE_ADMIN:
            case SqlParser.RESOURCE_GROUP_ADMIN:
            case SqlParser.RESOURCE_GROUP_USER:
            case SqlParser.ROLE_ADMIN:
            case SqlParser.SESSION_VARIABLES_ADMIN:
            case SqlParser.SET_USER_ID:
            case SqlParser.SHOW_ROUTINE:
            case SqlParser.SYSTEM_VARIABLES_ADMIN:
            case SqlParser.TABLE_ENCRYPTION_ADMIN:
            case SqlParser.VERSION_TOKEN_ADMIN:
            case SqlParser.XA_RECOVER_ADMIN:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.ARCHIVE:
            case SqlParser.BLACKHOLE:
            case SqlParser.CSV:
            case SqlParser.FEDERATED:
            case SqlParser.INNODB:
            case SqlParser.MEMORY:
            case SqlParser.MRG_MYISAM:
            case SqlParser.MYISAM:
            case SqlParser.NDB:
            case SqlParser.NDBCLUSTER:
            case SqlParser.PERFORMANCE_SCHEMA:
            case SqlParser.TOKUDB:
            case SqlParser.REPEATABLE:
            case SqlParser.COMMITTED:
            case SqlParser.UNCOMMITTED:
            case SqlParser.SERIALIZABLE:
            case SqlParser.GEOMETRYCOLLECTION:
            case SqlParser.LINESTRING:
            case SqlParser.MULTILINESTRING:
            case SqlParser.MULTIPOINT:
            case SqlParser.MULTIPOLYGON:
            case SqlParser.POINT:
            case SqlParser.POLYGON:
            case SqlParser.ABS:
            case SqlParser.ACOS:
            case SqlParser.ADDDATE:
            case SqlParser.ADDTIME:
            case SqlParser.AES_DECRYPT:
            case SqlParser.AES_ENCRYPT:
            case SqlParser.AREA:
            case SqlParser.ASBINARY:
            case SqlParser.ASIN:
            case SqlParser.ASTEXT:
            case SqlParser.ASWKB:
            case SqlParser.ASWKT:
            case SqlParser.ASYMMETRIC_DECRYPT:
            case SqlParser.ASYMMETRIC_DERIVE:
            case SqlParser.ASYMMETRIC_ENCRYPT:
            case SqlParser.ASYMMETRIC_SIGN:
            case SqlParser.ASYMMETRIC_VERIFY:
            case SqlParser.ATAN:
            case SqlParser.ATAN2:
            case SqlParser.BENCHMARK:
            case SqlParser.BIN:
            case SqlParser.BIT_COUNT:
            case SqlParser.BIT_LENGTH:
            case SqlParser.BUFFER:
            case SqlParser.CATALOG_NAME:
            case SqlParser.CEIL:
            case SqlParser.CEILING:
            case SqlParser.CENTROID:
            case SqlParser.CHARACTER_LENGTH:
            case SqlParser.CHARSET:
            case SqlParser.CHAR_LENGTH:
            case SqlParser.COERCIBILITY:
            case SqlParser.COLLATION:
            case SqlParser.COMPRESS:
            case SqlParser.CONCAT:
            case SqlParser.CONCAT_WS:
            case SqlParser.CONNECTION_ID:
            case SqlParser.CONV:
            case SqlParser.CONVERT_TZ:
            case SqlParser.COS:
            case SqlParser.COT:
            case SqlParser.CRC32:
            case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
            case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
            case SqlParser.CREATE_DH_PARAMETERS:
            case SqlParser.CREATE_DIGEST:
            case SqlParser.CROSSES:
            case SqlParser.DATEDIFF:
            case SqlParser.DATE_FORMAT:
            case SqlParser.DAYNAME:
            case SqlParser.DAYOFMONTH:
            case SqlParser.DAYOFWEEK:
            case SqlParser.DAYOFYEAR:
            case SqlParser.DECODE:
            case SqlParser.DEGREES:
            case SqlParser.DES_DECRYPT:
            case SqlParser.DES_ENCRYPT:
            case SqlParser.DIMENSION:
            case SqlParser.DISJOINT:
            case SqlParser.ELT:
            case SqlParser.ENCODE:
            case SqlParser.ENCRYPT:
            case SqlParser.ENDPOINT:
            case SqlParser.ENVELOPE:
            case SqlParser.EQUALS:
            case SqlParser.EXP:
            case SqlParser.EXPORT_SET:
            case SqlParser.EXTERIORRING:
            case SqlParser.EXTRACTVALUE:
            case SqlParser.FIELD:
            case SqlParser.FIND_IN_SET:
            case SqlParser.FLOOR:
            case SqlParser.FORMAT:
            case SqlParser.FOUND_ROWS:
            case SqlParser.FROM_BASE64:
            case SqlParser.FROM_DAYS:
            case SqlParser.FROM_UNIXTIME:
            case SqlParser.GEOMCOLLFROMTEXT:
            case SqlParser.GEOMCOLLFROMWKB:
            case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.GEOMETRYFROMTEXT:
            case SqlParser.GEOMETRYFROMWKB:
            case SqlParser.GEOMETRYN:
            case SqlParser.GEOMETRYTYPE:
            case SqlParser.GEOMFROMTEXT:
            case SqlParser.GEOMFROMWKB:
            case SqlParser.GET_FORMAT:
            case SqlParser.GET_LOCK:
            case SqlParser.GLENGTH:
            case SqlParser.GREATEST:
            case SqlParser.GTID_SUBSET:
            case SqlParser.GTID_SUBTRACT:
            case SqlParser.HEX:
            case SqlParser.IFNULL:
            case SqlParser.INET6_ATON:
            case SqlParser.INET6_NTOA:
            case SqlParser.INET_ATON:
            case SqlParser.INET_NTOA:
            case SqlParser.INSTR:
            case SqlParser.INTERIORRINGN:
            case SqlParser.INTERSECTS:
            case SqlParser.ISCLOSED:
            case SqlParser.ISEMPTY:
            case SqlParser.ISNULL:
            case SqlParser.ISSIMPLE:
            case SqlParser.IS_FREE_LOCK:
            case SqlParser.IS_IPV4:
            case SqlParser.IS_IPV4_COMPAT:
            case SqlParser.IS_IPV4_MAPPED:
            case SqlParser.IS_IPV6:
            case SqlParser.IS_USED_LOCK:
            case SqlParser.LAST_INSERT_ID:
            case SqlParser.LCASE:
            case SqlParser.LEAST:
            case SqlParser.LENGTH:
            case SqlParser.LINEFROMTEXT:
            case SqlParser.LINEFROMWKB:
            case SqlParser.LINESTRINGFROMTEXT:
            case SqlParser.LINESTRINGFROMWKB:
            case SqlParser.LN:
            case SqlParser.LOAD_FILE:
            case SqlParser.LOCATE:
            case SqlParser.LOG:
            case SqlParser.LOG10:
            case SqlParser.LOG2:
            case SqlParser.LOWER:
            case SqlParser.LPAD:
            case SqlParser.LTRIM:
            case SqlParser.MAKEDATE:
            case SqlParser.MAKETIME:
            case SqlParser.MAKE_SET:
            case SqlParser.MASTER_POS_WAIT:
            case SqlParser.MBRCONTAINS:
            case SqlParser.MBRDISJOINT:
            case SqlParser.MBREQUAL:
            case SqlParser.MBRINTERSECTS:
            case SqlParser.MBROVERLAPS:
            case SqlParser.MBRTOUCHES:
            case SqlParser.MBRWITHIN:
            case SqlParser.MD5:
            case SqlParser.MLINEFROMTEXT:
            case SqlParser.MLINEFROMWKB:
            case SqlParser.MONTHNAME:
            case SqlParser.MPOINTFROMTEXT:
            case SqlParser.MPOINTFROMWKB:
            case SqlParser.MPOLYFROMTEXT:
            case SqlParser.MPOLYFROMWKB:
            case SqlParser.MULTILINESTRINGFROMTEXT:
            case SqlParser.MULTILINESTRINGFROMWKB:
            case SqlParser.MULTIPOINTFROMTEXT:
            case SqlParser.MULTIPOINTFROMWKB:
            case SqlParser.MULTIPOLYGONFROMTEXT:
            case SqlParser.MULTIPOLYGONFROMWKB:
            case SqlParser.NAME_CONST:
            case SqlParser.NULLIF:
            case SqlParser.NUMGEOMETRIES:
            case SqlParser.NUMINTERIORRINGS:
            case SqlParser.NUMPOINTS:
            case SqlParser.OCT:
            case SqlParser.OCTET_LENGTH:
            case SqlParser.ORD:
            case SqlParser.OVERLAPS:
            case SqlParser.PERIOD_ADD:
            case SqlParser.PERIOD_DIFF:
            case SqlParser.PI:
            case SqlParser.POINTFROMTEXT:
            case SqlParser.POINTFROMWKB:
            case SqlParser.POINTN:
            case SqlParser.POLYFROMTEXT:
            case SqlParser.POLYFROMWKB:
            case SqlParser.POLYGONFROMTEXT:
            case SqlParser.POLYGONFROMWKB:
            case SqlParser.POW:
            case SqlParser.POWER:
            case SqlParser.QUOTE:
            case SqlParser.RADIANS:
            case SqlParser.RAND:
            case SqlParser.RANDOM_BYTES:
            case SqlParser.RELEASE_LOCK:
            case SqlParser.REVERSE:
            case SqlParser.ROUND:
            case SqlParser.ROW_COUNT:
            case SqlParser.RPAD:
            case SqlParser.RTRIM:
            case SqlParser.SEC_TO_TIME:
            case SqlParser.SESSION_USER:
            case SqlParser.SHA:
            case SqlParser.SHA1:
            case SqlParser.SHA2:
            case SqlParser.SCHEMA_NAME:
            case SqlParser.SIGN:
            case SqlParser.SIN:
            case SqlParser.SLEEP:
            case SqlParser.SOUNDEX:
            case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
            case SqlParser.SQRT:
            case SqlParser.SRID:
            case SqlParser.STARTPOINT:
            case SqlParser.STRCMP:
            case SqlParser.STR_TO_DATE:
            case SqlParser.ST_AREA:
            case SqlParser.ST_ASBINARY:
            case SqlParser.ST_ASTEXT:
            case SqlParser.ST_ASWKB:
            case SqlParser.ST_ASWKT:
            case SqlParser.ST_BUFFER:
            case SqlParser.ST_CENTROID:
            case SqlParser.ST_CONTAINS:
            case SqlParser.ST_CROSSES:
            case SqlParser.ST_DIFFERENCE:
            case SqlParser.ST_DIMENSION:
            case SqlParser.ST_DISJOINT:
            case SqlParser.ST_DISTANCE:
            case SqlParser.ST_ENDPOINT:
            case SqlParser.ST_ENVELOPE:
            case SqlParser.ST_EQUALS:
            case SqlParser.ST_EXTERIORRING:
            case SqlParser.ST_GEOMCOLLFROMTEXT:
            case SqlParser.ST_GEOMCOLLFROMTXT:
            case SqlParser.ST_GEOMCOLLFROMWKB:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.ST_GEOMETRYFROMTEXT:
            case SqlParser.ST_GEOMETRYFROMWKB:
            case SqlParser.ST_GEOMETRYN:
            case SqlParser.ST_GEOMETRYTYPE:
            case SqlParser.ST_GEOMFROMTEXT:
            case SqlParser.ST_GEOMFROMWKB:
            case SqlParser.ST_INTERIORRINGN:
            case SqlParser.ST_INTERSECTION:
            case SqlParser.ST_INTERSECTS:
            case SqlParser.ST_ISCLOSED:
            case SqlParser.ST_ISEMPTY:
            case SqlParser.ST_ISSIMPLE:
            case SqlParser.ST_LINEFROMTEXT:
            case SqlParser.ST_LINEFROMWKB:
            case SqlParser.ST_LINESTRINGFROMTEXT:
            case SqlParser.ST_LINESTRINGFROMWKB:
            case SqlParser.ST_NUMGEOMETRIES:
            case SqlParser.ST_NUMINTERIORRING:
            case SqlParser.ST_NUMINTERIORRINGS:
            case SqlParser.ST_NUMPOINTS:
            case SqlParser.ST_OVERLAPS:
            case SqlParser.ST_POINTFROMTEXT:
            case SqlParser.ST_POINTFROMWKB:
            case SqlParser.ST_POINTN:
            case SqlParser.ST_POLYFROMTEXT:
            case SqlParser.ST_POLYFROMWKB:
            case SqlParser.ST_POLYGONFROMTEXT:
            case SqlParser.ST_POLYGONFROMWKB:
            case SqlParser.ST_SRID:
            case SqlParser.ST_STARTPOINT:
            case SqlParser.ST_SYMDIFFERENCE:
            case SqlParser.ST_TOUCHES:
            case SqlParser.ST_UNION:
            case SqlParser.ST_WITHIN:
            case SqlParser.ST_X:
            case SqlParser.ST_Y:
            case SqlParser.SUBDATE:
            case SqlParser.SUBSTRING_INDEX:
            case SqlParser.SUBTIME:
            case SqlParser.SYSTEM_USER:
            case SqlParser.TAN:
            case SqlParser.TIMEDIFF:
            case SqlParser.TIMESTAMPADD:
            case SqlParser.TIMESTAMPDIFF:
            case SqlParser.TIME_FORMAT:
            case SqlParser.TIME_TO_SEC:
            case SqlParser.TOUCHES:
            case SqlParser.TO_BASE64:
            case SqlParser.TO_DAYS:
            case SqlParser.TO_SECONDS:
            case SqlParser.UCASE:
            case SqlParser.UNCOMPRESS:
            case SqlParser.UNCOMPRESSED_LENGTH:
            case SqlParser.UNHEX:
            case SqlParser.UNIX_TIMESTAMP:
            case SqlParser.UPDATEXML:
            case SqlParser.UPPER:
            case SqlParser.UUID:
            case SqlParser.UUID_SHORT:
            case SqlParser.VALIDATE_PASSWORD_STRENGTH:
            case SqlParser.VERSION:
            case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
            case SqlParser.WEEKDAY:
            case SqlParser.WEEKOFYEAR:
            case SqlParser.WEIGHT_STRING:
            case SqlParser.WITHIN:
            case SqlParser.YEARWEEK:
            case SqlParser.Y_FUNCTION:
            case SqlParser.X_FUNCTION:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
            case SqlParser.ID:
            case SqlParser.REVERSE_QUOTE_ID:
                this.state = 2557;
                this.uidList();
                break;
            case SqlParser.ALL:
                this.state = 2558;
                this.match(SqlParser.ALL);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;

        case 37:
            localctx = new AlterByCoalescePartitionContext(this, localctx);
            this.enterOuterAlt(localctx, 37);
            this.state = 2561;
            this.match(SqlParser.COALESCE);
            this.state = 2562;
            this.match(SqlParser.PARTITION);
            this.state = 2563;
            this.decimalLiteral();
            break;

        case 38:
            localctx = new AlterByReorganizePartitionContext(this, localctx);
            this.enterOuterAlt(localctx, 38);
            this.state = 2564;
            this.match(SqlParser.REORGANIZE);
            this.state = 2565;
            this.match(SqlParser.PARTITION);
            this.state = 2566;
            this.uidList();
            this.state = 2567;
            this.match(SqlParser.INTO);
            this.state = 2568;
            this.match(SqlParser.LR_BRACKET);
            this.state = 2569;
            this.partitionDefinition();
            this.state = 2574;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 2570;
                this.match(SqlParser.COMMA);
                this.state = 2571;
                this.partitionDefinition();
                this.state = 2576;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 2577;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 39:
            localctx = new AlterByExchangePartitionContext(this, localctx);
            this.enterOuterAlt(localctx, 39);
            this.state = 2579;
            this.match(SqlParser.EXCHANGE);
            this.state = 2580;
            this.match(SqlParser.PARTITION);
            this.state = 2581;
            this.uid();
            this.state = 2582;
            this.match(SqlParser.WITH);
            this.state = 2583;
            this.match(SqlParser.TABLE);
            this.state = 2584;
            this.tableName();
            this.state = 2587;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.WITH || _la===SqlParser.WITHOUT) {
                this.state = 2585;
                localctx.validationFormat = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.WITH || _la===SqlParser.WITHOUT)) {
                    localctx.validationFormat = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
                this.state = 2586;
                this.match(SqlParser.VALIDATION);
            }

            break;

        case 40:
            localctx = new AlterByAnalyzePartitionContext(this, localctx);
            this.enterOuterAlt(localctx, 40);
            this.state = 2589;
            this.match(SqlParser.ANALYZE);
            this.state = 2590;
            this.match(SqlParser.PARTITION);
            this.state = 2593;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.CURRENT:
            case SqlParser.DATABASE:
            case SqlParser.DIAGNOSTICS:
            case SqlParser.LEFT:
            case SqlParser.NUMBER:
            case SqlParser.RIGHT:
            case SqlParser.STACKED:
            case SqlParser.DATE:
            case SqlParser.TIME:
            case SqlParser.TIMESTAMP:
            case SqlParser.DATETIME:
            case SqlParser.YEAR:
            case SqlParser.TEXT:
            case SqlParser.ENUM:
            case SqlParser.SERIAL:
            case SqlParser.JSON_VALID:
            case SqlParser.JSON_SCHEMA_VALID:
            case SqlParser.COUNT:
            case SqlParser.POSITION:
            case SqlParser.ACCOUNT:
            case SqlParser.ACTION:
            case SqlParser.AFTER:
            case SqlParser.AGGREGATE:
            case SqlParser.ALGORITHM:
            case SqlParser.ANY:
            case SqlParser.AT:
            case SqlParser.AUTHORS:
            case SqlParser.AUTOCOMMIT:
            case SqlParser.AUTOEXTEND_SIZE:
            case SqlParser.AUTO_INCREMENT:
            case SqlParser.AVG_ROW_LENGTH:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.BIT:
            case SqlParser.BLOCK:
            case SqlParser.BOOL:
            case SqlParser.BOOLEAN:
            case SqlParser.BTREE:
            case SqlParser.CACHE:
            case SqlParser.CASCADED:
            case SqlParser.CHAIN:
            case SqlParser.CHANGED:
            case SqlParser.CHANNEL:
            case SqlParser.CHECKSUM:
            case SqlParser.PAGE_CHECKSUM:
            case SqlParser.CIPHER:
            case SqlParser.CLASS_ORIGIN:
            case SqlParser.CLIENT:
            case SqlParser.CLOSE:
            case SqlParser.COALESCE:
            case SqlParser.CODE:
            case SqlParser.COLUMNS:
            case SqlParser.COLUMN_FORMAT:
            case SqlParser.COLUMN_NAME:
            case SqlParser.COMMENT:
            case SqlParser.COMMIT:
            case SqlParser.COMPACT:
            case SqlParser.COMPLETION:
            case SqlParser.COMPRESSED:
            case SqlParser.COMPRESSION:
            case SqlParser.CONCURRENT:
            case SqlParser.CONNECTION:
            case SqlParser.CONSISTENT:
            case SqlParser.CONSTRAINT_CATALOG:
            case SqlParser.CONSTRAINT_SCHEMA:
            case SqlParser.CONSTRAINT_NAME:
            case SqlParser.CONTAINS:
            case SqlParser.CONTEXT:
            case SqlParser.CONTRIBUTORS:
            case SqlParser.COPY:
            case SqlParser.CPU:
            case SqlParser.CURSOR_NAME:
            case SqlParser.DATA:
            case SqlParser.DATAFILE:
            case SqlParser.DEALLOCATE:
            case SqlParser.DEFAULT_AUTH:
            case SqlParser.DEFINER:
            case SqlParser.DELAY_KEY_WRITE:
            case SqlParser.DES_KEY_FILE:
            case SqlParser.DIRECTORY:
            case SqlParser.DISABLE:
            case SqlParser.DISCARD:
            case SqlParser.DISK:
            case SqlParser.DO:
            case SqlParser.DUMPFILE:
            case SqlParser.DUPLICATE:
            case SqlParser.DYNAMIC:
            case SqlParser.ENABLE:
            case SqlParser.ENCRYPTION:
            case SqlParser.END:
            case SqlParser.ENDS:
            case SqlParser.ENGINE:
            case SqlParser.ENGINES:
            case SqlParser.ERROR:
            case SqlParser.ERRORS:
            case SqlParser.ESCAPE:
            case SqlParser.EVEN:
            case SqlParser.EVENT:
            case SqlParser.EVENTS:
            case SqlParser.EVERY:
            case SqlParser.EXCHANGE:
            case SqlParser.EXCLUSIVE:
            case SqlParser.EXPIRE:
            case SqlParser.EXPORT:
            case SqlParser.EXTENDED:
            case SqlParser.EXTENT_SIZE:
            case SqlParser.FAST:
            case SqlParser.FAULTS:
            case SqlParser.FIELDS:
            case SqlParser.FILE_BLOCK_SIZE:
            case SqlParser.FILTER:
            case SqlParser.FIRST:
            case SqlParser.FIXED:
            case SqlParser.FLUSH:
            case SqlParser.FOLLOWS:
            case SqlParser.FOUND:
            case SqlParser.FULL:
            case SqlParser.FUNCTION:
            case SqlParser.GENERAL:
            case SqlParser.GLOBAL:
            case SqlParser.GRANTS:
            case SqlParser.GROUP_REPLICATION:
            case SqlParser.HANDLER:
            case SqlParser.HASH:
            case SqlParser.HELP:
            case SqlParser.HOST:
            case SqlParser.HOSTS:
            case SqlParser.IDENTIFIED:
            case SqlParser.IGNORE_SERVER_IDS:
            case SqlParser.IMPORT:
            case SqlParser.INDEXES:
            case SqlParser.INITIAL_SIZE:
            case SqlParser.INPLACE:
            case SqlParser.INSERT_METHOD:
            case SqlParser.INSTALL:
            case SqlParser.INSTANCE:
            case SqlParser.INVISIBLE:
            case SqlParser.INVOKER:
            case SqlParser.IO:
            case SqlParser.IO_THREAD:
            case SqlParser.IPC:
            case SqlParser.ISOLATION:
            case SqlParser.ISSUER:
            case SqlParser.JSON:
            case SqlParser.KEY_BLOCK_SIZE:
            case SqlParser.LANGUAGE:
            case SqlParser.LAST:
            case SqlParser.LEAVES:
            case SqlParser.LESS:
            case SqlParser.LEVEL:
            case SqlParser.LIST:
            case SqlParser.LOCAL:
            case SqlParser.LOGFILE:
            case SqlParser.LOGS:
            case SqlParser.MASTER:
            case SqlParser.MASTER_AUTO_POSITION:
            case SqlParser.MASTER_CONNECT_RETRY:
            case SqlParser.MASTER_DELAY:
            case SqlParser.MASTER_HEARTBEAT_PERIOD:
            case SqlParser.MASTER_HOST:
            case SqlParser.MASTER_LOG_FILE:
            case SqlParser.MASTER_LOG_POS:
            case SqlParser.MASTER_PASSWORD:
            case SqlParser.MASTER_PORT:
            case SqlParser.MASTER_RETRY_COUNT:
            case SqlParser.MASTER_SSL:
            case SqlParser.MASTER_SSL_CA:
            case SqlParser.MASTER_SSL_CAPATH:
            case SqlParser.MASTER_SSL_CERT:
            case SqlParser.MASTER_SSL_CIPHER:
            case SqlParser.MASTER_SSL_CRL:
            case SqlParser.MASTER_SSL_CRLPATH:
            case SqlParser.MASTER_SSL_KEY:
            case SqlParser.MASTER_TLS_VERSION:
            case SqlParser.MASTER_USER:
            case SqlParser.MAX_CONNECTIONS_PER_HOUR:
            case SqlParser.MAX_QUERIES_PER_HOUR:
            case SqlParser.MAX_ROWS:
            case SqlParser.MAX_SIZE:
            case SqlParser.MAX_UPDATES_PER_HOUR:
            case SqlParser.MAX_USER_CONNECTIONS:
            case SqlParser.MEDIUM:
            case SqlParser.MERGE:
            case SqlParser.MESSAGE_TEXT:
            case SqlParser.MID:
            case SqlParser.MIGRATE:
            case SqlParser.MIN_ROWS:
            case SqlParser.MODE:
            case SqlParser.MODIFY:
            case SqlParser.MUTEX:
            case SqlParser.MYSQL:
            case SqlParser.MYSQL_ERRNO:
            case SqlParser.NAME:
            case SqlParser.NAMES:
            case SqlParser.NCHAR:
            case SqlParser.NEVER:
            case SqlParser.NEXT:
            case SqlParser.NO:
            case SqlParser.NODEGROUP:
            case SqlParser.NONE:
            case SqlParser.OFFLINE:
            case SqlParser.OFFSET:
            case SqlParser.OJ:
            case SqlParser.OLD_PASSWORD:
            case SqlParser.ONE:
            case SqlParser.ONLINE:
            case SqlParser.ONLY:
            case SqlParser.OPEN:
            case SqlParser.OPTIMIZER_COSTS:
            case SqlParser.OPTIONS:
            case SqlParser.OWNER:
            case SqlParser.PACK_KEYS:
            case SqlParser.PAGE:
            case SqlParser.PARSER:
            case SqlParser.PARTIAL:
            case SqlParser.PARTITIONING:
            case SqlParser.PARTITIONS:
            case SqlParser.PASSWORD:
            case SqlParser.PHASE:
            case SqlParser.PLUGIN:
            case SqlParser.PLUGIN_DIR:
            case SqlParser.PLUGINS:
            case SqlParser.PORT:
            case SqlParser.PRECEDES:
            case SqlParser.PREPARE:
            case SqlParser.PRESERVE:
            case SqlParser.PREV:
            case SqlParser.PROCESSLIST:
            case SqlParser.PROFILE:
            case SqlParser.PROFILES:
            case SqlParser.PROXY:
            case SqlParser.QUERY:
            case SqlParser.QUICK:
            case SqlParser.REBUILD:
            case SqlParser.RECOVER:
            case SqlParser.REDO_BUFFER_SIZE:
            case SqlParser.REDUNDANT:
            case SqlParser.RELAY:
            case SqlParser.RELAY_LOG_FILE:
            case SqlParser.RELAY_LOG_POS:
            case SqlParser.RELAYLOG:
            case SqlParser.REMOVE:
            case SqlParser.REORGANIZE:
            case SqlParser.REPAIR:
            case SqlParser.REPLICATE_DO_DB:
            case SqlParser.REPLICATE_DO_TABLE:
            case SqlParser.REPLICATE_IGNORE_DB:
            case SqlParser.REPLICATE_IGNORE_TABLE:
            case SqlParser.REPLICATE_REWRITE_DB:
            case SqlParser.REPLICATE_WILD_DO_TABLE:
            case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
            case SqlParser.REPLICATION:
            case SqlParser.RESET:
            case SqlParser.RESUME:
            case SqlParser.RETURNED_SQLSTATE:
            case SqlParser.RETURNS:
            case SqlParser.ROLE:
            case SqlParser.ROLLBACK:
            case SqlParser.ROLLUP:
            case SqlParser.ROTATE:
            case SqlParser.ROW:
            case SqlParser.ROWS:
            case SqlParser.ROW_FORMAT:
            case SqlParser.SAVEPOINT:
            case SqlParser.SCHEDULE:
            case SqlParser.SECURITY:
            case SqlParser.SERVER:
            case SqlParser.SESSION:
            case SqlParser.SHARE:
            case SqlParser.SHARED:
            case SqlParser.SIGNED:
            case SqlParser.SIMPLE:
            case SqlParser.SLAVE:
            case SqlParser.SLOW:
            case SqlParser.SNAPSHOT:
            case SqlParser.SOCKET:
            case SqlParser.SOME:
            case SqlParser.SONAME:
            case SqlParser.SOUNDS:
            case SqlParser.SOURCE:
            case SqlParser.SQL_AFTER_GTIDS:
            case SqlParser.SQL_AFTER_MTS_GAPS:
            case SqlParser.SQL_BEFORE_GTIDS:
            case SqlParser.SQL_BUFFER_RESULT:
            case SqlParser.SQL_CACHE:
            case SqlParser.SQL_NO_CACHE:
            case SqlParser.SQL_THREAD:
            case SqlParser.START:
            case SqlParser.STARTS:
            case SqlParser.STATS_AUTO_RECALC:
            case SqlParser.STATS_PERSISTENT:
            case SqlParser.STATS_SAMPLE_PAGES:
            case SqlParser.STATUS:
            case SqlParser.STOP:
            case SqlParser.STORAGE:
            case SqlParser.STRING:
            case SqlParser.SUBCLASS_ORIGIN:
            case SqlParser.SUBJECT:
            case SqlParser.SUBPARTITION:
            case SqlParser.SUBPARTITIONS:
            case SqlParser.SUSPEND:
            case SqlParser.SWAPS:
            case SqlParser.SWITCHES:
            case SqlParser.TABLE_NAME:
            case SqlParser.TABLESPACE:
            case SqlParser.TEMPORARY:
            case SqlParser.TEMPTABLE:
            case SqlParser.THAN:
            case SqlParser.TRADITIONAL:
            case SqlParser.TRANSACTION:
            case SqlParser.TRANSACTIONAL:
            case SqlParser.TRIGGERS:
            case SqlParser.TRUNCATE:
            case SqlParser.UNDEFINED:
            case SqlParser.UNDOFILE:
            case SqlParser.UNDO_BUFFER_SIZE:
            case SqlParser.UNINSTALL:
            case SqlParser.UNKNOWN:
            case SqlParser.UNTIL:
            case SqlParser.UPGRADE:
            case SqlParser.USER:
            case SqlParser.USE_FRM:
            case SqlParser.USER_RESOURCES:
            case SqlParser.VALIDATION:
            case SqlParser.VALUE:
            case SqlParser.VARIABLES:
            case SqlParser.VIEW:
            case SqlParser.VISIBLE:
            case SqlParser.WAIT:
            case SqlParser.WARNINGS:
            case SqlParser.WITHOUT:
            case SqlParser.WORK:
            case SqlParser.WRAPPER:
            case SqlParser.X509:
            case SqlParser.XA:
            case SqlParser.XML:
            case SqlParser.INTERNAL:
            case SqlParser.QUARTER:
            case SqlParser.MONTH:
            case SqlParser.DAY:
            case SqlParser.HOUR:
            case SqlParser.MINUTE:
            case SqlParser.WEEK:
            case SqlParser.SECOND:
            case SqlParser.MICROSECOND:
            case SqlParser.TABLES:
            case SqlParser.ROUTINE:
            case SqlParser.EXECUTE:
            case SqlParser.FILE:
            case SqlParser.PROCESS:
            case SqlParser.RELOAD:
            case SqlParser.SHUTDOWN:
            case SqlParser.SUPER:
            case SqlParser.PRIVILEGES:
            case SqlParser.AUDIT_ADMIN:
            case SqlParser.BACKUP_ADMIN:
            case SqlParser.BINLOG_ADMIN:
            case SqlParser.BINLOG_ENCRYPTION_ADMIN:
            case SqlParser.CLONE_ADMIN:
            case SqlParser.CONNECTION_ADMIN:
            case SqlParser.ENCRYPTION_KEY_ADMIN:
            case SqlParser.FIREWALL_ADMIN:
            case SqlParser.FIREWALL_USER:
            case SqlParser.GROUP_REPLICATION_ADMIN:
            case SqlParser.INNODB_REDO_LOG_ARCHIVE:
            case SqlParser.NDB_STORED_USER:
            case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
            case SqlParser.REPLICATION_APPLIER:
            case SqlParser.REPLICATION_SLAVE_ADMIN:
            case SqlParser.RESOURCE_GROUP_ADMIN:
            case SqlParser.RESOURCE_GROUP_USER:
            case SqlParser.ROLE_ADMIN:
            case SqlParser.SESSION_VARIABLES_ADMIN:
            case SqlParser.SET_USER_ID:
            case SqlParser.SHOW_ROUTINE:
            case SqlParser.SYSTEM_VARIABLES_ADMIN:
            case SqlParser.TABLE_ENCRYPTION_ADMIN:
            case SqlParser.VERSION_TOKEN_ADMIN:
            case SqlParser.XA_RECOVER_ADMIN:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.ARCHIVE:
            case SqlParser.BLACKHOLE:
            case SqlParser.CSV:
            case SqlParser.FEDERATED:
            case SqlParser.INNODB:
            case SqlParser.MEMORY:
            case SqlParser.MRG_MYISAM:
            case SqlParser.MYISAM:
            case SqlParser.NDB:
            case SqlParser.NDBCLUSTER:
            case SqlParser.PERFORMANCE_SCHEMA:
            case SqlParser.TOKUDB:
            case SqlParser.REPEATABLE:
            case SqlParser.COMMITTED:
            case SqlParser.UNCOMMITTED:
            case SqlParser.SERIALIZABLE:
            case SqlParser.GEOMETRYCOLLECTION:
            case SqlParser.LINESTRING:
            case SqlParser.MULTILINESTRING:
            case SqlParser.MULTIPOINT:
            case SqlParser.MULTIPOLYGON:
            case SqlParser.POINT:
            case SqlParser.POLYGON:
            case SqlParser.ABS:
            case SqlParser.ACOS:
            case SqlParser.ADDDATE:
            case SqlParser.ADDTIME:
            case SqlParser.AES_DECRYPT:
            case SqlParser.AES_ENCRYPT:
            case SqlParser.AREA:
            case SqlParser.ASBINARY:
            case SqlParser.ASIN:
            case SqlParser.ASTEXT:
            case SqlParser.ASWKB:
            case SqlParser.ASWKT:
            case SqlParser.ASYMMETRIC_DECRYPT:
            case SqlParser.ASYMMETRIC_DERIVE:
            case SqlParser.ASYMMETRIC_ENCRYPT:
            case SqlParser.ASYMMETRIC_SIGN:
            case SqlParser.ASYMMETRIC_VERIFY:
            case SqlParser.ATAN:
            case SqlParser.ATAN2:
            case SqlParser.BENCHMARK:
            case SqlParser.BIN:
            case SqlParser.BIT_COUNT:
            case SqlParser.BIT_LENGTH:
            case SqlParser.BUFFER:
            case SqlParser.CATALOG_NAME:
            case SqlParser.CEIL:
            case SqlParser.CEILING:
            case SqlParser.CENTROID:
            case SqlParser.CHARACTER_LENGTH:
            case SqlParser.CHARSET:
            case SqlParser.CHAR_LENGTH:
            case SqlParser.COERCIBILITY:
            case SqlParser.COLLATION:
            case SqlParser.COMPRESS:
            case SqlParser.CONCAT:
            case SqlParser.CONCAT_WS:
            case SqlParser.CONNECTION_ID:
            case SqlParser.CONV:
            case SqlParser.CONVERT_TZ:
            case SqlParser.COS:
            case SqlParser.COT:
            case SqlParser.CRC32:
            case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
            case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
            case SqlParser.CREATE_DH_PARAMETERS:
            case SqlParser.CREATE_DIGEST:
            case SqlParser.CROSSES:
            case SqlParser.DATEDIFF:
            case SqlParser.DATE_FORMAT:
            case SqlParser.DAYNAME:
            case SqlParser.DAYOFMONTH:
            case SqlParser.DAYOFWEEK:
            case SqlParser.DAYOFYEAR:
            case SqlParser.DECODE:
            case SqlParser.DEGREES:
            case SqlParser.DES_DECRYPT:
            case SqlParser.DES_ENCRYPT:
            case SqlParser.DIMENSION:
            case SqlParser.DISJOINT:
            case SqlParser.ELT:
            case SqlParser.ENCODE:
            case SqlParser.ENCRYPT:
            case SqlParser.ENDPOINT:
            case SqlParser.ENVELOPE:
            case SqlParser.EQUALS:
            case SqlParser.EXP:
            case SqlParser.EXPORT_SET:
            case SqlParser.EXTERIORRING:
            case SqlParser.EXTRACTVALUE:
            case SqlParser.FIELD:
            case SqlParser.FIND_IN_SET:
            case SqlParser.FLOOR:
            case SqlParser.FORMAT:
            case SqlParser.FOUND_ROWS:
            case SqlParser.FROM_BASE64:
            case SqlParser.FROM_DAYS:
            case SqlParser.FROM_UNIXTIME:
            case SqlParser.GEOMCOLLFROMTEXT:
            case SqlParser.GEOMCOLLFROMWKB:
            case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.GEOMETRYFROMTEXT:
            case SqlParser.GEOMETRYFROMWKB:
            case SqlParser.GEOMETRYN:
            case SqlParser.GEOMETRYTYPE:
            case SqlParser.GEOMFROMTEXT:
            case SqlParser.GEOMFROMWKB:
            case SqlParser.GET_FORMAT:
            case SqlParser.GET_LOCK:
            case SqlParser.GLENGTH:
            case SqlParser.GREATEST:
            case SqlParser.GTID_SUBSET:
            case SqlParser.GTID_SUBTRACT:
            case SqlParser.HEX:
            case SqlParser.IFNULL:
            case SqlParser.INET6_ATON:
            case SqlParser.INET6_NTOA:
            case SqlParser.INET_ATON:
            case SqlParser.INET_NTOA:
            case SqlParser.INSTR:
            case SqlParser.INTERIORRINGN:
            case SqlParser.INTERSECTS:
            case SqlParser.ISCLOSED:
            case SqlParser.ISEMPTY:
            case SqlParser.ISNULL:
            case SqlParser.ISSIMPLE:
            case SqlParser.IS_FREE_LOCK:
            case SqlParser.IS_IPV4:
            case SqlParser.IS_IPV4_COMPAT:
            case SqlParser.IS_IPV4_MAPPED:
            case SqlParser.IS_IPV6:
            case SqlParser.IS_USED_LOCK:
            case SqlParser.LAST_INSERT_ID:
            case SqlParser.LCASE:
            case SqlParser.LEAST:
            case SqlParser.LENGTH:
            case SqlParser.LINEFROMTEXT:
            case SqlParser.LINEFROMWKB:
            case SqlParser.LINESTRINGFROMTEXT:
            case SqlParser.LINESTRINGFROMWKB:
            case SqlParser.LN:
            case SqlParser.LOAD_FILE:
            case SqlParser.LOCATE:
            case SqlParser.LOG:
            case SqlParser.LOG10:
            case SqlParser.LOG2:
            case SqlParser.LOWER:
            case SqlParser.LPAD:
            case SqlParser.LTRIM:
            case SqlParser.MAKEDATE:
            case SqlParser.MAKETIME:
            case SqlParser.MAKE_SET:
            case SqlParser.MASTER_POS_WAIT:
            case SqlParser.MBRCONTAINS:
            case SqlParser.MBRDISJOINT:
            case SqlParser.MBREQUAL:
            case SqlParser.MBRINTERSECTS:
            case SqlParser.MBROVERLAPS:
            case SqlParser.MBRTOUCHES:
            case SqlParser.MBRWITHIN:
            case SqlParser.MD5:
            case SqlParser.MLINEFROMTEXT:
            case SqlParser.MLINEFROMWKB:
            case SqlParser.MONTHNAME:
            case SqlParser.MPOINTFROMTEXT:
            case SqlParser.MPOINTFROMWKB:
            case SqlParser.MPOLYFROMTEXT:
            case SqlParser.MPOLYFROMWKB:
            case SqlParser.MULTILINESTRINGFROMTEXT:
            case SqlParser.MULTILINESTRINGFROMWKB:
            case SqlParser.MULTIPOINTFROMTEXT:
            case SqlParser.MULTIPOINTFROMWKB:
            case SqlParser.MULTIPOLYGONFROMTEXT:
            case SqlParser.MULTIPOLYGONFROMWKB:
            case SqlParser.NAME_CONST:
            case SqlParser.NULLIF:
            case SqlParser.NUMGEOMETRIES:
            case SqlParser.NUMINTERIORRINGS:
            case SqlParser.NUMPOINTS:
            case SqlParser.OCT:
            case SqlParser.OCTET_LENGTH:
            case SqlParser.ORD:
            case SqlParser.OVERLAPS:
            case SqlParser.PERIOD_ADD:
            case SqlParser.PERIOD_DIFF:
            case SqlParser.PI:
            case SqlParser.POINTFROMTEXT:
            case SqlParser.POINTFROMWKB:
            case SqlParser.POINTN:
            case SqlParser.POLYFROMTEXT:
            case SqlParser.POLYFROMWKB:
            case SqlParser.POLYGONFROMTEXT:
            case SqlParser.POLYGONFROMWKB:
            case SqlParser.POW:
            case SqlParser.POWER:
            case SqlParser.QUOTE:
            case SqlParser.RADIANS:
            case SqlParser.RAND:
            case SqlParser.RANDOM_BYTES:
            case SqlParser.RELEASE_LOCK:
            case SqlParser.REVERSE:
            case SqlParser.ROUND:
            case SqlParser.ROW_COUNT:
            case SqlParser.RPAD:
            case SqlParser.RTRIM:
            case SqlParser.SEC_TO_TIME:
            case SqlParser.SESSION_USER:
            case SqlParser.SHA:
            case SqlParser.SHA1:
            case SqlParser.SHA2:
            case SqlParser.SCHEMA_NAME:
            case SqlParser.SIGN:
            case SqlParser.SIN:
            case SqlParser.SLEEP:
            case SqlParser.SOUNDEX:
            case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
            case SqlParser.SQRT:
            case SqlParser.SRID:
            case SqlParser.STARTPOINT:
            case SqlParser.STRCMP:
            case SqlParser.STR_TO_DATE:
            case SqlParser.ST_AREA:
            case SqlParser.ST_ASBINARY:
            case SqlParser.ST_ASTEXT:
            case SqlParser.ST_ASWKB:
            case SqlParser.ST_ASWKT:
            case SqlParser.ST_BUFFER:
            case SqlParser.ST_CENTROID:
            case SqlParser.ST_CONTAINS:
            case SqlParser.ST_CROSSES:
            case SqlParser.ST_DIFFERENCE:
            case SqlParser.ST_DIMENSION:
            case SqlParser.ST_DISJOINT:
            case SqlParser.ST_DISTANCE:
            case SqlParser.ST_ENDPOINT:
            case SqlParser.ST_ENVELOPE:
            case SqlParser.ST_EQUALS:
            case SqlParser.ST_EXTERIORRING:
            case SqlParser.ST_GEOMCOLLFROMTEXT:
            case SqlParser.ST_GEOMCOLLFROMTXT:
            case SqlParser.ST_GEOMCOLLFROMWKB:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.ST_GEOMETRYFROMTEXT:
            case SqlParser.ST_GEOMETRYFROMWKB:
            case SqlParser.ST_GEOMETRYN:
            case SqlParser.ST_GEOMETRYTYPE:
            case SqlParser.ST_GEOMFROMTEXT:
            case SqlParser.ST_GEOMFROMWKB:
            case SqlParser.ST_INTERIORRINGN:
            case SqlParser.ST_INTERSECTION:
            case SqlParser.ST_INTERSECTS:
            case SqlParser.ST_ISCLOSED:
            case SqlParser.ST_ISEMPTY:
            case SqlParser.ST_ISSIMPLE:
            case SqlParser.ST_LINEFROMTEXT:
            case SqlParser.ST_LINEFROMWKB:
            case SqlParser.ST_LINESTRINGFROMTEXT:
            case SqlParser.ST_LINESTRINGFROMWKB:
            case SqlParser.ST_NUMGEOMETRIES:
            case SqlParser.ST_NUMINTERIORRING:
            case SqlParser.ST_NUMINTERIORRINGS:
            case SqlParser.ST_NUMPOINTS:
            case SqlParser.ST_OVERLAPS:
            case SqlParser.ST_POINTFROMTEXT:
            case SqlParser.ST_POINTFROMWKB:
            case SqlParser.ST_POINTN:
            case SqlParser.ST_POLYFROMTEXT:
            case SqlParser.ST_POLYFROMWKB:
            case SqlParser.ST_POLYGONFROMTEXT:
            case SqlParser.ST_POLYGONFROMWKB:
            case SqlParser.ST_SRID:
            case SqlParser.ST_STARTPOINT:
            case SqlParser.ST_SYMDIFFERENCE:
            case SqlParser.ST_TOUCHES:
            case SqlParser.ST_UNION:
            case SqlParser.ST_WITHIN:
            case SqlParser.ST_X:
            case SqlParser.ST_Y:
            case SqlParser.SUBDATE:
            case SqlParser.SUBSTRING_INDEX:
            case SqlParser.SUBTIME:
            case SqlParser.SYSTEM_USER:
            case SqlParser.TAN:
            case SqlParser.TIMEDIFF:
            case SqlParser.TIMESTAMPADD:
            case SqlParser.TIMESTAMPDIFF:
            case SqlParser.TIME_FORMAT:
            case SqlParser.TIME_TO_SEC:
            case SqlParser.TOUCHES:
            case SqlParser.TO_BASE64:
            case SqlParser.TO_DAYS:
            case SqlParser.TO_SECONDS:
            case SqlParser.UCASE:
            case SqlParser.UNCOMPRESS:
            case SqlParser.UNCOMPRESSED_LENGTH:
            case SqlParser.UNHEX:
            case SqlParser.UNIX_TIMESTAMP:
            case SqlParser.UPDATEXML:
            case SqlParser.UPPER:
            case SqlParser.UUID:
            case SqlParser.UUID_SHORT:
            case SqlParser.VALIDATE_PASSWORD_STRENGTH:
            case SqlParser.VERSION:
            case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
            case SqlParser.WEEKDAY:
            case SqlParser.WEEKOFYEAR:
            case SqlParser.WEIGHT_STRING:
            case SqlParser.WITHIN:
            case SqlParser.YEARWEEK:
            case SqlParser.Y_FUNCTION:
            case SqlParser.X_FUNCTION:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
            case SqlParser.ID:
            case SqlParser.REVERSE_QUOTE_ID:
                this.state = 2591;
                this.uidList();
                break;
            case SqlParser.ALL:
                this.state = 2592;
                this.match(SqlParser.ALL);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;

        case 41:
            localctx = new AlterByCheckPartitionContext(this, localctx);
            this.enterOuterAlt(localctx, 41);
            this.state = 2595;
            this.match(SqlParser.CHECK);
            this.state = 2596;
            this.match(SqlParser.PARTITION);
            this.state = 2599;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.CURRENT:
            case SqlParser.DATABASE:
            case SqlParser.DIAGNOSTICS:
            case SqlParser.LEFT:
            case SqlParser.NUMBER:
            case SqlParser.RIGHT:
            case SqlParser.STACKED:
            case SqlParser.DATE:
            case SqlParser.TIME:
            case SqlParser.TIMESTAMP:
            case SqlParser.DATETIME:
            case SqlParser.YEAR:
            case SqlParser.TEXT:
            case SqlParser.ENUM:
            case SqlParser.SERIAL:
            case SqlParser.JSON_VALID:
            case SqlParser.JSON_SCHEMA_VALID:
            case SqlParser.COUNT:
            case SqlParser.POSITION:
            case SqlParser.ACCOUNT:
            case SqlParser.ACTION:
            case SqlParser.AFTER:
            case SqlParser.AGGREGATE:
            case SqlParser.ALGORITHM:
            case SqlParser.ANY:
            case SqlParser.AT:
            case SqlParser.AUTHORS:
            case SqlParser.AUTOCOMMIT:
            case SqlParser.AUTOEXTEND_SIZE:
            case SqlParser.AUTO_INCREMENT:
            case SqlParser.AVG_ROW_LENGTH:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.BIT:
            case SqlParser.BLOCK:
            case SqlParser.BOOL:
            case SqlParser.BOOLEAN:
            case SqlParser.BTREE:
            case SqlParser.CACHE:
            case SqlParser.CASCADED:
            case SqlParser.CHAIN:
            case SqlParser.CHANGED:
            case SqlParser.CHANNEL:
            case SqlParser.CHECKSUM:
            case SqlParser.PAGE_CHECKSUM:
            case SqlParser.CIPHER:
            case SqlParser.CLASS_ORIGIN:
            case SqlParser.CLIENT:
            case SqlParser.CLOSE:
            case SqlParser.COALESCE:
            case SqlParser.CODE:
            case SqlParser.COLUMNS:
            case SqlParser.COLUMN_FORMAT:
            case SqlParser.COLUMN_NAME:
            case SqlParser.COMMENT:
            case SqlParser.COMMIT:
            case SqlParser.COMPACT:
            case SqlParser.COMPLETION:
            case SqlParser.COMPRESSED:
            case SqlParser.COMPRESSION:
            case SqlParser.CONCURRENT:
            case SqlParser.CONNECTION:
            case SqlParser.CONSISTENT:
            case SqlParser.CONSTRAINT_CATALOG:
            case SqlParser.CONSTRAINT_SCHEMA:
            case SqlParser.CONSTRAINT_NAME:
            case SqlParser.CONTAINS:
            case SqlParser.CONTEXT:
            case SqlParser.CONTRIBUTORS:
            case SqlParser.COPY:
            case SqlParser.CPU:
            case SqlParser.CURSOR_NAME:
            case SqlParser.DATA:
            case SqlParser.DATAFILE:
            case SqlParser.DEALLOCATE:
            case SqlParser.DEFAULT_AUTH:
            case SqlParser.DEFINER:
            case SqlParser.DELAY_KEY_WRITE:
            case SqlParser.DES_KEY_FILE:
            case SqlParser.DIRECTORY:
            case SqlParser.DISABLE:
            case SqlParser.DISCARD:
            case SqlParser.DISK:
            case SqlParser.DO:
            case SqlParser.DUMPFILE:
            case SqlParser.DUPLICATE:
            case SqlParser.DYNAMIC:
            case SqlParser.ENABLE:
            case SqlParser.ENCRYPTION:
            case SqlParser.END:
            case SqlParser.ENDS:
            case SqlParser.ENGINE:
            case SqlParser.ENGINES:
            case SqlParser.ERROR:
            case SqlParser.ERRORS:
            case SqlParser.ESCAPE:
            case SqlParser.EVEN:
            case SqlParser.EVENT:
            case SqlParser.EVENTS:
            case SqlParser.EVERY:
            case SqlParser.EXCHANGE:
            case SqlParser.EXCLUSIVE:
            case SqlParser.EXPIRE:
            case SqlParser.EXPORT:
            case SqlParser.EXTENDED:
            case SqlParser.EXTENT_SIZE:
            case SqlParser.FAST:
            case SqlParser.FAULTS:
            case SqlParser.FIELDS:
            case SqlParser.FILE_BLOCK_SIZE:
            case SqlParser.FILTER:
            case SqlParser.FIRST:
            case SqlParser.FIXED:
            case SqlParser.FLUSH:
            case SqlParser.FOLLOWS:
            case SqlParser.FOUND:
            case SqlParser.FULL:
            case SqlParser.FUNCTION:
            case SqlParser.GENERAL:
            case SqlParser.GLOBAL:
            case SqlParser.GRANTS:
            case SqlParser.GROUP_REPLICATION:
            case SqlParser.HANDLER:
            case SqlParser.HASH:
            case SqlParser.HELP:
            case SqlParser.HOST:
            case SqlParser.HOSTS:
            case SqlParser.IDENTIFIED:
            case SqlParser.IGNORE_SERVER_IDS:
            case SqlParser.IMPORT:
            case SqlParser.INDEXES:
            case SqlParser.INITIAL_SIZE:
            case SqlParser.INPLACE:
            case SqlParser.INSERT_METHOD:
            case SqlParser.INSTALL:
            case SqlParser.INSTANCE:
            case SqlParser.INVISIBLE:
            case SqlParser.INVOKER:
            case SqlParser.IO:
            case SqlParser.IO_THREAD:
            case SqlParser.IPC:
            case SqlParser.ISOLATION:
            case SqlParser.ISSUER:
            case SqlParser.JSON:
            case SqlParser.KEY_BLOCK_SIZE:
            case SqlParser.LANGUAGE:
            case SqlParser.LAST:
            case SqlParser.LEAVES:
            case SqlParser.LESS:
            case SqlParser.LEVEL:
            case SqlParser.LIST:
            case SqlParser.LOCAL:
            case SqlParser.LOGFILE:
            case SqlParser.LOGS:
            case SqlParser.MASTER:
            case SqlParser.MASTER_AUTO_POSITION:
            case SqlParser.MASTER_CONNECT_RETRY:
            case SqlParser.MASTER_DELAY:
            case SqlParser.MASTER_HEARTBEAT_PERIOD:
            case SqlParser.MASTER_HOST:
            case SqlParser.MASTER_LOG_FILE:
            case SqlParser.MASTER_LOG_POS:
            case SqlParser.MASTER_PASSWORD:
            case SqlParser.MASTER_PORT:
            case SqlParser.MASTER_RETRY_COUNT:
            case SqlParser.MASTER_SSL:
            case SqlParser.MASTER_SSL_CA:
            case SqlParser.MASTER_SSL_CAPATH:
            case SqlParser.MASTER_SSL_CERT:
            case SqlParser.MASTER_SSL_CIPHER:
            case SqlParser.MASTER_SSL_CRL:
            case SqlParser.MASTER_SSL_CRLPATH:
            case SqlParser.MASTER_SSL_KEY:
            case SqlParser.MASTER_TLS_VERSION:
            case SqlParser.MASTER_USER:
            case SqlParser.MAX_CONNECTIONS_PER_HOUR:
            case SqlParser.MAX_QUERIES_PER_HOUR:
            case SqlParser.MAX_ROWS:
            case SqlParser.MAX_SIZE:
            case SqlParser.MAX_UPDATES_PER_HOUR:
            case SqlParser.MAX_USER_CONNECTIONS:
            case SqlParser.MEDIUM:
            case SqlParser.MERGE:
            case SqlParser.MESSAGE_TEXT:
            case SqlParser.MID:
            case SqlParser.MIGRATE:
            case SqlParser.MIN_ROWS:
            case SqlParser.MODE:
            case SqlParser.MODIFY:
            case SqlParser.MUTEX:
            case SqlParser.MYSQL:
            case SqlParser.MYSQL_ERRNO:
            case SqlParser.NAME:
            case SqlParser.NAMES:
            case SqlParser.NCHAR:
            case SqlParser.NEVER:
            case SqlParser.NEXT:
            case SqlParser.NO:
            case SqlParser.NODEGROUP:
            case SqlParser.NONE:
            case SqlParser.OFFLINE:
            case SqlParser.OFFSET:
            case SqlParser.OJ:
            case SqlParser.OLD_PASSWORD:
            case SqlParser.ONE:
            case SqlParser.ONLINE:
            case SqlParser.ONLY:
            case SqlParser.OPEN:
            case SqlParser.OPTIMIZER_COSTS:
            case SqlParser.OPTIONS:
            case SqlParser.OWNER:
            case SqlParser.PACK_KEYS:
            case SqlParser.PAGE:
            case SqlParser.PARSER:
            case SqlParser.PARTIAL:
            case SqlParser.PARTITIONING:
            case SqlParser.PARTITIONS:
            case SqlParser.PASSWORD:
            case SqlParser.PHASE:
            case SqlParser.PLUGIN:
            case SqlParser.PLUGIN_DIR:
            case SqlParser.PLUGINS:
            case SqlParser.PORT:
            case SqlParser.PRECEDES:
            case SqlParser.PREPARE:
            case SqlParser.PRESERVE:
            case SqlParser.PREV:
            case SqlParser.PROCESSLIST:
            case SqlParser.PROFILE:
            case SqlParser.PROFILES:
            case SqlParser.PROXY:
            case SqlParser.QUERY:
            case SqlParser.QUICK:
            case SqlParser.REBUILD:
            case SqlParser.RECOVER:
            case SqlParser.REDO_BUFFER_SIZE:
            case SqlParser.REDUNDANT:
            case SqlParser.RELAY:
            case SqlParser.RELAY_LOG_FILE:
            case SqlParser.RELAY_LOG_POS:
            case SqlParser.RELAYLOG:
            case SqlParser.REMOVE:
            case SqlParser.REORGANIZE:
            case SqlParser.REPAIR:
            case SqlParser.REPLICATE_DO_DB:
            case SqlParser.REPLICATE_DO_TABLE:
            case SqlParser.REPLICATE_IGNORE_DB:
            case SqlParser.REPLICATE_IGNORE_TABLE:
            case SqlParser.REPLICATE_REWRITE_DB:
            case SqlParser.REPLICATE_WILD_DO_TABLE:
            case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
            case SqlParser.REPLICATION:
            case SqlParser.RESET:
            case SqlParser.RESUME:
            case SqlParser.RETURNED_SQLSTATE:
            case SqlParser.RETURNS:
            case SqlParser.ROLE:
            case SqlParser.ROLLBACK:
            case SqlParser.ROLLUP:
            case SqlParser.ROTATE:
            case SqlParser.ROW:
            case SqlParser.ROWS:
            case SqlParser.ROW_FORMAT:
            case SqlParser.SAVEPOINT:
            case SqlParser.SCHEDULE:
            case SqlParser.SECURITY:
            case SqlParser.SERVER:
            case SqlParser.SESSION:
            case SqlParser.SHARE:
            case SqlParser.SHARED:
            case SqlParser.SIGNED:
            case SqlParser.SIMPLE:
            case SqlParser.SLAVE:
            case SqlParser.SLOW:
            case SqlParser.SNAPSHOT:
            case SqlParser.SOCKET:
            case SqlParser.SOME:
            case SqlParser.SONAME:
            case SqlParser.SOUNDS:
            case SqlParser.SOURCE:
            case SqlParser.SQL_AFTER_GTIDS:
            case SqlParser.SQL_AFTER_MTS_GAPS:
            case SqlParser.SQL_BEFORE_GTIDS:
            case SqlParser.SQL_BUFFER_RESULT:
            case SqlParser.SQL_CACHE:
            case SqlParser.SQL_NO_CACHE:
            case SqlParser.SQL_THREAD:
            case SqlParser.START:
            case SqlParser.STARTS:
            case SqlParser.STATS_AUTO_RECALC:
            case SqlParser.STATS_PERSISTENT:
            case SqlParser.STATS_SAMPLE_PAGES:
            case SqlParser.STATUS:
            case SqlParser.STOP:
            case SqlParser.STORAGE:
            case SqlParser.STRING:
            case SqlParser.SUBCLASS_ORIGIN:
            case SqlParser.SUBJECT:
            case SqlParser.SUBPARTITION:
            case SqlParser.SUBPARTITIONS:
            case SqlParser.SUSPEND:
            case SqlParser.SWAPS:
            case SqlParser.SWITCHES:
            case SqlParser.TABLE_NAME:
            case SqlParser.TABLESPACE:
            case SqlParser.TEMPORARY:
            case SqlParser.TEMPTABLE:
            case SqlParser.THAN:
            case SqlParser.TRADITIONAL:
            case SqlParser.TRANSACTION:
            case SqlParser.TRANSACTIONAL:
            case SqlParser.TRIGGERS:
            case SqlParser.TRUNCATE:
            case SqlParser.UNDEFINED:
            case SqlParser.UNDOFILE:
            case SqlParser.UNDO_BUFFER_SIZE:
            case SqlParser.UNINSTALL:
            case SqlParser.UNKNOWN:
            case SqlParser.UNTIL:
            case SqlParser.UPGRADE:
            case SqlParser.USER:
            case SqlParser.USE_FRM:
            case SqlParser.USER_RESOURCES:
            case SqlParser.VALIDATION:
            case SqlParser.VALUE:
            case SqlParser.VARIABLES:
            case SqlParser.VIEW:
            case SqlParser.VISIBLE:
            case SqlParser.WAIT:
            case SqlParser.WARNINGS:
            case SqlParser.WITHOUT:
            case SqlParser.WORK:
            case SqlParser.WRAPPER:
            case SqlParser.X509:
            case SqlParser.XA:
            case SqlParser.XML:
            case SqlParser.INTERNAL:
            case SqlParser.QUARTER:
            case SqlParser.MONTH:
            case SqlParser.DAY:
            case SqlParser.HOUR:
            case SqlParser.MINUTE:
            case SqlParser.WEEK:
            case SqlParser.SECOND:
            case SqlParser.MICROSECOND:
            case SqlParser.TABLES:
            case SqlParser.ROUTINE:
            case SqlParser.EXECUTE:
            case SqlParser.FILE:
            case SqlParser.PROCESS:
            case SqlParser.RELOAD:
            case SqlParser.SHUTDOWN:
            case SqlParser.SUPER:
            case SqlParser.PRIVILEGES:
            case SqlParser.AUDIT_ADMIN:
            case SqlParser.BACKUP_ADMIN:
            case SqlParser.BINLOG_ADMIN:
            case SqlParser.BINLOG_ENCRYPTION_ADMIN:
            case SqlParser.CLONE_ADMIN:
            case SqlParser.CONNECTION_ADMIN:
            case SqlParser.ENCRYPTION_KEY_ADMIN:
            case SqlParser.FIREWALL_ADMIN:
            case SqlParser.FIREWALL_USER:
            case SqlParser.GROUP_REPLICATION_ADMIN:
            case SqlParser.INNODB_REDO_LOG_ARCHIVE:
            case SqlParser.NDB_STORED_USER:
            case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
            case SqlParser.REPLICATION_APPLIER:
            case SqlParser.REPLICATION_SLAVE_ADMIN:
            case SqlParser.RESOURCE_GROUP_ADMIN:
            case SqlParser.RESOURCE_GROUP_USER:
            case SqlParser.ROLE_ADMIN:
            case SqlParser.SESSION_VARIABLES_ADMIN:
            case SqlParser.SET_USER_ID:
            case SqlParser.SHOW_ROUTINE:
            case SqlParser.SYSTEM_VARIABLES_ADMIN:
            case SqlParser.TABLE_ENCRYPTION_ADMIN:
            case SqlParser.VERSION_TOKEN_ADMIN:
            case SqlParser.XA_RECOVER_ADMIN:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.ARCHIVE:
            case SqlParser.BLACKHOLE:
            case SqlParser.CSV:
            case SqlParser.FEDERATED:
            case SqlParser.INNODB:
            case SqlParser.MEMORY:
            case SqlParser.MRG_MYISAM:
            case SqlParser.MYISAM:
            case SqlParser.NDB:
            case SqlParser.NDBCLUSTER:
            case SqlParser.PERFORMANCE_SCHEMA:
            case SqlParser.TOKUDB:
            case SqlParser.REPEATABLE:
            case SqlParser.COMMITTED:
            case SqlParser.UNCOMMITTED:
            case SqlParser.SERIALIZABLE:
            case SqlParser.GEOMETRYCOLLECTION:
            case SqlParser.LINESTRING:
            case SqlParser.MULTILINESTRING:
            case SqlParser.MULTIPOINT:
            case SqlParser.MULTIPOLYGON:
            case SqlParser.POINT:
            case SqlParser.POLYGON:
            case SqlParser.ABS:
            case SqlParser.ACOS:
            case SqlParser.ADDDATE:
            case SqlParser.ADDTIME:
            case SqlParser.AES_DECRYPT:
            case SqlParser.AES_ENCRYPT:
            case SqlParser.AREA:
            case SqlParser.ASBINARY:
            case SqlParser.ASIN:
            case SqlParser.ASTEXT:
            case SqlParser.ASWKB:
            case SqlParser.ASWKT:
            case SqlParser.ASYMMETRIC_DECRYPT:
            case SqlParser.ASYMMETRIC_DERIVE:
            case SqlParser.ASYMMETRIC_ENCRYPT:
            case SqlParser.ASYMMETRIC_SIGN:
            case SqlParser.ASYMMETRIC_VERIFY:
            case SqlParser.ATAN:
            case SqlParser.ATAN2:
            case SqlParser.BENCHMARK:
            case SqlParser.BIN:
            case SqlParser.BIT_COUNT:
            case SqlParser.BIT_LENGTH:
            case SqlParser.BUFFER:
            case SqlParser.CATALOG_NAME:
            case SqlParser.CEIL:
            case SqlParser.CEILING:
            case SqlParser.CENTROID:
            case SqlParser.CHARACTER_LENGTH:
            case SqlParser.CHARSET:
            case SqlParser.CHAR_LENGTH:
            case SqlParser.COERCIBILITY:
            case SqlParser.COLLATION:
            case SqlParser.COMPRESS:
            case SqlParser.CONCAT:
            case SqlParser.CONCAT_WS:
            case SqlParser.CONNECTION_ID:
            case SqlParser.CONV:
            case SqlParser.CONVERT_TZ:
            case SqlParser.COS:
            case SqlParser.COT:
            case SqlParser.CRC32:
            case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
            case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
            case SqlParser.CREATE_DH_PARAMETERS:
            case SqlParser.CREATE_DIGEST:
            case SqlParser.CROSSES:
            case SqlParser.DATEDIFF:
            case SqlParser.DATE_FORMAT:
            case SqlParser.DAYNAME:
            case SqlParser.DAYOFMONTH:
            case SqlParser.DAYOFWEEK:
            case SqlParser.DAYOFYEAR:
            case SqlParser.DECODE:
            case SqlParser.DEGREES:
            case SqlParser.DES_DECRYPT:
            case SqlParser.DES_ENCRYPT:
            case SqlParser.DIMENSION:
            case SqlParser.DISJOINT:
            case SqlParser.ELT:
            case SqlParser.ENCODE:
            case SqlParser.ENCRYPT:
            case SqlParser.ENDPOINT:
            case SqlParser.ENVELOPE:
            case SqlParser.EQUALS:
            case SqlParser.EXP:
            case SqlParser.EXPORT_SET:
            case SqlParser.EXTERIORRING:
            case SqlParser.EXTRACTVALUE:
            case SqlParser.FIELD:
            case SqlParser.FIND_IN_SET:
            case SqlParser.FLOOR:
            case SqlParser.FORMAT:
            case SqlParser.FOUND_ROWS:
            case SqlParser.FROM_BASE64:
            case SqlParser.FROM_DAYS:
            case SqlParser.FROM_UNIXTIME:
            case SqlParser.GEOMCOLLFROMTEXT:
            case SqlParser.GEOMCOLLFROMWKB:
            case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.GEOMETRYFROMTEXT:
            case SqlParser.GEOMETRYFROMWKB:
            case SqlParser.GEOMETRYN:
            case SqlParser.GEOMETRYTYPE:
            case SqlParser.GEOMFROMTEXT:
            case SqlParser.GEOMFROMWKB:
            case SqlParser.GET_FORMAT:
            case SqlParser.GET_LOCK:
            case SqlParser.GLENGTH:
            case SqlParser.GREATEST:
            case SqlParser.GTID_SUBSET:
            case SqlParser.GTID_SUBTRACT:
            case SqlParser.HEX:
            case SqlParser.IFNULL:
            case SqlParser.INET6_ATON:
            case SqlParser.INET6_NTOA:
            case SqlParser.INET_ATON:
            case SqlParser.INET_NTOA:
            case SqlParser.INSTR:
            case SqlParser.INTERIORRINGN:
            case SqlParser.INTERSECTS:
            case SqlParser.ISCLOSED:
            case SqlParser.ISEMPTY:
            case SqlParser.ISNULL:
            case SqlParser.ISSIMPLE:
            case SqlParser.IS_FREE_LOCK:
            case SqlParser.IS_IPV4:
            case SqlParser.IS_IPV4_COMPAT:
            case SqlParser.IS_IPV4_MAPPED:
            case SqlParser.IS_IPV6:
            case SqlParser.IS_USED_LOCK:
            case SqlParser.LAST_INSERT_ID:
            case SqlParser.LCASE:
            case SqlParser.LEAST:
            case SqlParser.LENGTH:
            case SqlParser.LINEFROMTEXT:
            case SqlParser.LINEFROMWKB:
            case SqlParser.LINESTRINGFROMTEXT:
            case SqlParser.LINESTRINGFROMWKB:
            case SqlParser.LN:
            case SqlParser.LOAD_FILE:
            case SqlParser.LOCATE:
            case SqlParser.LOG:
            case SqlParser.LOG10:
            case SqlParser.LOG2:
            case SqlParser.LOWER:
            case SqlParser.LPAD:
            case SqlParser.LTRIM:
            case SqlParser.MAKEDATE:
            case SqlParser.MAKETIME:
            case SqlParser.MAKE_SET:
            case SqlParser.MASTER_POS_WAIT:
            case SqlParser.MBRCONTAINS:
            case SqlParser.MBRDISJOINT:
            case SqlParser.MBREQUAL:
            case SqlParser.MBRINTERSECTS:
            case SqlParser.MBROVERLAPS:
            case SqlParser.MBRTOUCHES:
            case SqlParser.MBRWITHIN:
            case SqlParser.MD5:
            case SqlParser.MLINEFROMTEXT:
            case SqlParser.MLINEFROMWKB:
            case SqlParser.MONTHNAME:
            case SqlParser.MPOINTFROMTEXT:
            case SqlParser.MPOINTFROMWKB:
            case SqlParser.MPOLYFROMTEXT:
            case SqlParser.MPOLYFROMWKB:
            case SqlParser.MULTILINESTRINGFROMTEXT:
            case SqlParser.MULTILINESTRINGFROMWKB:
            case SqlParser.MULTIPOINTFROMTEXT:
            case SqlParser.MULTIPOINTFROMWKB:
            case SqlParser.MULTIPOLYGONFROMTEXT:
            case SqlParser.MULTIPOLYGONFROMWKB:
            case SqlParser.NAME_CONST:
            case SqlParser.NULLIF:
            case SqlParser.NUMGEOMETRIES:
            case SqlParser.NUMINTERIORRINGS:
            case SqlParser.NUMPOINTS:
            case SqlParser.OCT:
            case SqlParser.OCTET_LENGTH:
            case SqlParser.ORD:
            case SqlParser.OVERLAPS:
            case SqlParser.PERIOD_ADD:
            case SqlParser.PERIOD_DIFF:
            case SqlParser.PI:
            case SqlParser.POINTFROMTEXT:
            case SqlParser.POINTFROMWKB:
            case SqlParser.POINTN:
            case SqlParser.POLYFROMTEXT:
            case SqlParser.POLYFROMWKB:
            case SqlParser.POLYGONFROMTEXT:
            case SqlParser.POLYGONFROMWKB:
            case SqlParser.POW:
            case SqlParser.POWER:
            case SqlParser.QUOTE:
            case SqlParser.RADIANS:
            case SqlParser.RAND:
            case SqlParser.RANDOM_BYTES:
            case SqlParser.RELEASE_LOCK:
            case SqlParser.REVERSE:
            case SqlParser.ROUND:
            case SqlParser.ROW_COUNT:
            case SqlParser.RPAD:
            case SqlParser.RTRIM:
            case SqlParser.SEC_TO_TIME:
            case SqlParser.SESSION_USER:
            case SqlParser.SHA:
            case SqlParser.SHA1:
            case SqlParser.SHA2:
            case SqlParser.SCHEMA_NAME:
            case SqlParser.SIGN:
            case SqlParser.SIN:
            case SqlParser.SLEEP:
            case SqlParser.SOUNDEX:
            case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
            case SqlParser.SQRT:
            case SqlParser.SRID:
            case SqlParser.STARTPOINT:
            case SqlParser.STRCMP:
            case SqlParser.STR_TO_DATE:
            case SqlParser.ST_AREA:
            case SqlParser.ST_ASBINARY:
            case SqlParser.ST_ASTEXT:
            case SqlParser.ST_ASWKB:
            case SqlParser.ST_ASWKT:
            case SqlParser.ST_BUFFER:
            case SqlParser.ST_CENTROID:
            case SqlParser.ST_CONTAINS:
            case SqlParser.ST_CROSSES:
            case SqlParser.ST_DIFFERENCE:
            case SqlParser.ST_DIMENSION:
            case SqlParser.ST_DISJOINT:
            case SqlParser.ST_DISTANCE:
            case SqlParser.ST_ENDPOINT:
            case SqlParser.ST_ENVELOPE:
            case SqlParser.ST_EQUALS:
            case SqlParser.ST_EXTERIORRING:
            case SqlParser.ST_GEOMCOLLFROMTEXT:
            case SqlParser.ST_GEOMCOLLFROMTXT:
            case SqlParser.ST_GEOMCOLLFROMWKB:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.ST_GEOMETRYFROMTEXT:
            case SqlParser.ST_GEOMETRYFROMWKB:
            case SqlParser.ST_GEOMETRYN:
            case SqlParser.ST_GEOMETRYTYPE:
            case SqlParser.ST_GEOMFROMTEXT:
            case SqlParser.ST_GEOMFROMWKB:
            case SqlParser.ST_INTERIORRINGN:
            case SqlParser.ST_INTERSECTION:
            case SqlParser.ST_INTERSECTS:
            case SqlParser.ST_ISCLOSED:
            case SqlParser.ST_ISEMPTY:
            case SqlParser.ST_ISSIMPLE:
            case SqlParser.ST_LINEFROMTEXT:
            case SqlParser.ST_LINEFROMWKB:
            case SqlParser.ST_LINESTRINGFROMTEXT:
            case SqlParser.ST_LINESTRINGFROMWKB:
            case SqlParser.ST_NUMGEOMETRIES:
            case SqlParser.ST_NUMINTERIORRING:
            case SqlParser.ST_NUMINTERIORRINGS:
            case SqlParser.ST_NUMPOINTS:
            case SqlParser.ST_OVERLAPS:
            case SqlParser.ST_POINTFROMTEXT:
            case SqlParser.ST_POINTFROMWKB:
            case SqlParser.ST_POINTN:
            case SqlParser.ST_POLYFROMTEXT:
            case SqlParser.ST_POLYFROMWKB:
            case SqlParser.ST_POLYGONFROMTEXT:
            case SqlParser.ST_POLYGONFROMWKB:
            case SqlParser.ST_SRID:
            case SqlParser.ST_STARTPOINT:
            case SqlParser.ST_SYMDIFFERENCE:
            case SqlParser.ST_TOUCHES:
            case SqlParser.ST_UNION:
            case SqlParser.ST_WITHIN:
            case SqlParser.ST_X:
            case SqlParser.ST_Y:
            case SqlParser.SUBDATE:
            case SqlParser.SUBSTRING_INDEX:
            case SqlParser.SUBTIME:
            case SqlParser.SYSTEM_USER:
            case SqlParser.TAN:
            case SqlParser.TIMEDIFF:
            case SqlParser.TIMESTAMPADD:
            case SqlParser.TIMESTAMPDIFF:
            case SqlParser.TIME_FORMAT:
            case SqlParser.TIME_TO_SEC:
            case SqlParser.TOUCHES:
            case SqlParser.TO_BASE64:
            case SqlParser.TO_DAYS:
            case SqlParser.TO_SECONDS:
            case SqlParser.UCASE:
            case SqlParser.UNCOMPRESS:
            case SqlParser.UNCOMPRESSED_LENGTH:
            case SqlParser.UNHEX:
            case SqlParser.UNIX_TIMESTAMP:
            case SqlParser.UPDATEXML:
            case SqlParser.UPPER:
            case SqlParser.UUID:
            case SqlParser.UUID_SHORT:
            case SqlParser.VALIDATE_PASSWORD_STRENGTH:
            case SqlParser.VERSION:
            case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
            case SqlParser.WEEKDAY:
            case SqlParser.WEEKOFYEAR:
            case SqlParser.WEIGHT_STRING:
            case SqlParser.WITHIN:
            case SqlParser.YEARWEEK:
            case SqlParser.Y_FUNCTION:
            case SqlParser.X_FUNCTION:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
            case SqlParser.ID:
            case SqlParser.REVERSE_QUOTE_ID:
                this.state = 2597;
                this.uidList();
                break;
            case SqlParser.ALL:
                this.state = 2598;
                this.match(SqlParser.ALL);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;

        case 42:
            localctx = new AlterByOptimizePartitionContext(this, localctx);
            this.enterOuterAlt(localctx, 42);
            this.state = 2601;
            this.match(SqlParser.OPTIMIZE);
            this.state = 2602;
            this.match(SqlParser.PARTITION);
            this.state = 2605;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.CURRENT:
            case SqlParser.DATABASE:
            case SqlParser.DIAGNOSTICS:
            case SqlParser.LEFT:
            case SqlParser.NUMBER:
            case SqlParser.RIGHT:
            case SqlParser.STACKED:
            case SqlParser.DATE:
            case SqlParser.TIME:
            case SqlParser.TIMESTAMP:
            case SqlParser.DATETIME:
            case SqlParser.YEAR:
            case SqlParser.TEXT:
            case SqlParser.ENUM:
            case SqlParser.SERIAL:
            case SqlParser.JSON_VALID:
            case SqlParser.JSON_SCHEMA_VALID:
            case SqlParser.COUNT:
            case SqlParser.POSITION:
            case SqlParser.ACCOUNT:
            case SqlParser.ACTION:
            case SqlParser.AFTER:
            case SqlParser.AGGREGATE:
            case SqlParser.ALGORITHM:
            case SqlParser.ANY:
            case SqlParser.AT:
            case SqlParser.AUTHORS:
            case SqlParser.AUTOCOMMIT:
            case SqlParser.AUTOEXTEND_SIZE:
            case SqlParser.AUTO_INCREMENT:
            case SqlParser.AVG_ROW_LENGTH:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.BIT:
            case SqlParser.BLOCK:
            case SqlParser.BOOL:
            case SqlParser.BOOLEAN:
            case SqlParser.BTREE:
            case SqlParser.CACHE:
            case SqlParser.CASCADED:
            case SqlParser.CHAIN:
            case SqlParser.CHANGED:
            case SqlParser.CHANNEL:
            case SqlParser.CHECKSUM:
            case SqlParser.PAGE_CHECKSUM:
            case SqlParser.CIPHER:
            case SqlParser.CLASS_ORIGIN:
            case SqlParser.CLIENT:
            case SqlParser.CLOSE:
            case SqlParser.COALESCE:
            case SqlParser.CODE:
            case SqlParser.COLUMNS:
            case SqlParser.COLUMN_FORMAT:
            case SqlParser.COLUMN_NAME:
            case SqlParser.COMMENT:
            case SqlParser.COMMIT:
            case SqlParser.COMPACT:
            case SqlParser.COMPLETION:
            case SqlParser.COMPRESSED:
            case SqlParser.COMPRESSION:
            case SqlParser.CONCURRENT:
            case SqlParser.CONNECTION:
            case SqlParser.CONSISTENT:
            case SqlParser.CONSTRAINT_CATALOG:
            case SqlParser.CONSTRAINT_SCHEMA:
            case SqlParser.CONSTRAINT_NAME:
            case SqlParser.CONTAINS:
            case SqlParser.CONTEXT:
            case SqlParser.CONTRIBUTORS:
            case SqlParser.COPY:
            case SqlParser.CPU:
            case SqlParser.CURSOR_NAME:
            case SqlParser.DATA:
            case SqlParser.DATAFILE:
            case SqlParser.DEALLOCATE:
            case SqlParser.DEFAULT_AUTH:
            case SqlParser.DEFINER:
            case SqlParser.DELAY_KEY_WRITE:
            case SqlParser.DES_KEY_FILE:
            case SqlParser.DIRECTORY:
            case SqlParser.DISABLE:
            case SqlParser.DISCARD:
            case SqlParser.DISK:
            case SqlParser.DO:
            case SqlParser.DUMPFILE:
            case SqlParser.DUPLICATE:
            case SqlParser.DYNAMIC:
            case SqlParser.ENABLE:
            case SqlParser.ENCRYPTION:
            case SqlParser.END:
            case SqlParser.ENDS:
            case SqlParser.ENGINE:
            case SqlParser.ENGINES:
            case SqlParser.ERROR:
            case SqlParser.ERRORS:
            case SqlParser.ESCAPE:
            case SqlParser.EVEN:
            case SqlParser.EVENT:
            case SqlParser.EVENTS:
            case SqlParser.EVERY:
            case SqlParser.EXCHANGE:
            case SqlParser.EXCLUSIVE:
            case SqlParser.EXPIRE:
            case SqlParser.EXPORT:
            case SqlParser.EXTENDED:
            case SqlParser.EXTENT_SIZE:
            case SqlParser.FAST:
            case SqlParser.FAULTS:
            case SqlParser.FIELDS:
            case SqlParser.FILE_BLOCK_SIZE:
            case SqlParser.FILTER:
            case SqlParser.FIRST:
            case SqlParser.FIXED:
            case SqlParser.FLUSH:
            case SqlParser.FOLLOWS:
            case SqlParser.FOUND:
            case SqlParser.FULL:
            case SqlParser.FUNCTION:
            case SqlParser.GENERAL:
            case SqlParser.GLOBAL:
            case SqlParser.GRANTS:
            case SqlParser.GROUP_REPLICATION:
            case SqlParser.HANDLER:
            case SqlParser.HASH:
            case SqlParser.HELP:
            case SqlParser.HOST:
            case SqlParser.HOSTS:
            case SqlParser.IDENTIFIED:
            case SqlParser.IGNORE_SERVER_IDS:
            case SqlParser.IMPORT:
            case SqlParser.INDEXES:
            case SqlParser.INITIAL_SIZE:
            case SqlParser.INPLACE:
            case SqlParser.INSERT_METHOD:
            case SqlParser.INSTALL:
            case SqlParser.INSTANCE:
            case SqlParser.INVISIBLE:
            case SqlParser.INVOKER:
            case SqlParser.IO:
            case SqlParser.IO_THREAD:
            case SqlParser.IPC:
            case SqlParser.ISOLATION:
            case SqlParser.ISSUER:
            case SqlParser.JSON:
            case SqlParser.KEY_BLOCK_SIZE:
            case SqlParser.LANGUAGE:
            case SqlParser.LAST:
            case SqlParser.LEAVES:
            case SqlParser.LESS:
            case SqlParser.LEVEL:
            case SqlParser.LIST:
            case SqlParser.LOCAL:
            case SqlParser.LOGFILE:
            case SqlParser.LOGS:
            case SqlParser.MASTER:
            case SqlParser.MASTER_AUTO_POSITION:
            case SqlParser.MASTER_CONNECT_RETRY:
            case SqlParser.MASTER_DELAY:
            case SqlParser.MASTER_HEARTBEAT_PERIOD:
            case SqlParser.MASTER_HOST:
            case SqlParser.MASTER_LOG_FILE:
            case SqlParser.MASTER_LOG_POS:
            case SqlParser.MASTER_PASSWORD:
            case SqlParser.MASTER_PORT:
            case SqlParser.MASTER_RETRY_COUNT:
            case SqlParser.MASTER_SSL:
            case SqlParser.MASTER_SSL_CA:
            case SqlParser.MASTER_SSL_CAPATH:
            case SqlParser.MASTER_SSL_CERT:
            case SqlParser.MASTER_SSL_CIPHER:
            case SqlParser.MASTER_SSL_CRL:
            case SqlParser.MASTER_SSL_CRLPATH:
            case SqlParser.MASTER_SSL_KEY:
            case SqlParser.MASTER_TLS_VERSION:
            case SqlParser.MASTER_USER:
            case SqlParser.MAX_CONNECTIONS_PER_HOUR:
            case SqlParser.MAX_QUERIES_PER_HOUR:
            case SqlParser.MAX_ROWS:
            case SqlParser.MAX_SIZE:
            case SqlParser.MAX_UPDATES_PER_HOUR:
            case SqlParser.MAX_USER_CONNECTIONS:
            case SqlParser.MEDIUM:
            case SqlParser.MERGE:
            case SqlParser.MESSAGE_TEXT:
            case SqlParser.MID:
            case SqlParser.MIGRATE:
            case SqlParser.MIN_ROWS:
            case SqlParser.MODE:
            case SqlParser.MODIFY:
            case SqlParser.MUTEX:
            case SqlParser.MYSQL:
            case SqlParser.MYSQL_ERRNO:
            case SqlParser.NAME:
            case SqlParser.NAMES:
            case SqlParser.NCHAR:
            case SqlParser.NEVER:
            case SqlParser.NEXT:
            case SqlParser.NO:
            case SqlParser.NODEGROUP:
            case SqlParser.NONE:
            case SqlParser.OFFLINE:
            case SqlParser.OFFSET:
            case SqlParser.OJ:
            case SqlParser.OLD_PASSWORD:
            case SqlParser.ONE:
            case SqlParser.ONLINE:
            case SqlParser.ONLY:
            case SqlParser.OPEN:
            case SqlParser.OPTIMIZER_COSTS:
            case SqlParser.OPTIONS:
            case SqlParser.OWNER:
            case SqlParser.PACK_KEYS:
            case SqlParser.PAGE:
            case SqlParser.PARSER:
            case SqlParser.PARTIAL:
            case SqlParser.PARTITIONING:
            case SqlParser.PARTITIONS:
            case SqlParser.PASSWORD:
            case SqlParser.PHASE:
            case SqlParser.PLUGIN:
            case SqlParser.PLUGIN_DIR:
            case SqlParser.PLUGINS:
            case SqlParser.PORT:
            case SqlParser.PRECEDES:
            case SqlParser.PREPARE:
            case SqlParser.PRESERVE:
            case SqlParser.PREV:
            case SqlParser.PROCESSLIST:
            case SqlParser.PROFILE:
            case SqlParser.PROFILES:
            case SqlParser.PROXY:
            case SqlParser.QUERY:
            case SqlParser.QUICK:
            case SqlParser.REBUILD:
            case SqlParser.RECOVER:
            case SqlParser.REDO_BUFFER_SIZE:
            case SqlParser.REDUNDANT:
            case SqlParser.RELAY:
            case SqlParser.RELAY_LOG_FILE:
            case SqlParser.RELAY_LOG_POS:
            case SqlParser.RELAYLOG:
            case SqlParser.REMOVE:
            case SqlParser.REORGANIZE:
            case SqlParser.REPAIR:
            case SqlParser.REPLICATE_DO_DB:
            case SqlParser.REPLICATE_DO_TABLE:
            case SqlParser.REPLICATE_IGNORE_DB:
            case SqlParser.REPLICATE_IGNORE_TABLE:
            case SqlParser.REPLICATE_REWRITE_DB:
            case SqlParser.REPLICATE_WILD_DO_TABLE:
            case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
            case SqlParser.REPLICATION:
            case SqlParser.RESET:
            case SqlParser.RESUME:
            case SqlParser.RETURNED_SQLSTATE:
            case SqlParser.RETURNS:
            case SqlParser.ROLE:
            case SqlParser.ROLLBACK:
            case SqlParser.ROLLUP:
            case SqlParser.ROTATE:
            case SqlParser.ROW:
            case SqlParser.ROWS:
            case SqlParser.ROW_FORMAT:
            case SqlParser.SAVEPOINT:
            case SqlParser.SCHEDULE:
            case SqlParser.SECURITY:
            case SqlParser.SERVER:
            case SqlParser.SESSION:
            case SqlParser.SHARE:
            case SqlParser.SHARED:
            case SqlParser.SIGNED:
            case SqlParser.SIMPLE:
            case SqlParser.SLAVE:
            case SqlParser.SLOW:
            case SqlParser.SNAPSHOT:
            case SqlParser.SOCKET:
            case SqlParser.SOME:
            case SqlParser.SONAME:
            case SqlParser.SOUNDS:
            case SqlParser.SOURCE:
            case SqlParser.SQL_AFTER_GTIDS:
            case SqlParser.SQL_AFTER_MTS_GAPS:
            case SqlParser.SQL_BEFORE_GTIDS:
            case SqlParser.SQL_BUFFER_RESULT:
            case SqlParser.SQL_CACHE:
            case SqlParser.SQL_NO_CACHE:
            case SqlParser.SQL_THREAD:
            case SqlParser.START:
            case SqlParser.STARTS:
            case SqlParser.STATS_AUTO_RECALC:
            case SqlParser.STATS_PERSISTENT:
            case SqlParser.STATS_SAMPLE_PAGES:
            case SqlParser.STATUS:
            case SqlParser.STOP:
            case SqlParser.STORAGE:
            case SqlParser.STRING:
            case SqlParser.SUBCLASS_ORIGIN:
            case SqlParser.SUBJECT:
            case SqlParser.SUBPARTITION:
            case SqlParser.SUBPARTITIONS:
            case SqlParser.SUSPEND:
            case SqlParser.SWAPS:
            case SqlParser.SWITCHES:
            case SqlParser.TABLE_NAME:
            case SqlParser.TABLESPACE:
            case SqlParser.TEMPORARY:
            case SqlParser.TEMPTABLE:
            case SqlParser.THAN:
            case SqlParser.TRADITIONAL:
            case SqlParser.TRANSACTION:
            case SqlParser.TRANSACTIONAL:
            case SqlParser.TRIGGERS:
            case SqlParser.TRUNCATE:
            case SqlParser.UNDEFINED:
            case SqlParser.UNDOFILE:
            case SqlParser.UNDO_BUFFER_SIZE:
            case SqlParser.UNINSTALL:
            case SqlParser.UNKNOWN:
            case SqlParser.UNTIL:
            case SqlParser.UPGRADE:
            case SqlParser.USER:
            case SqlParser.USE_FRM:
            case SqlParser.USER_RESOURCES:
            case SqlParser.VALIDATION:
            case SqlParser.VALUE:
            case SqlParser.VARIABLES:
            case SqlParser.VIEW:
            case SqlParser.VISIBLE:
            case SqlParser.WAIT:
            case SqlParser.WARNINGS:
            case SqlParser.WITHOUT:
            case SqlParser.WORK:
            case SqlParser.WRAPPER:
            case SqlParser.X509:
            case SqlParser.XA:
            case SqlParser.XML:
            case SqlParser.INTERNAL:
            case SqlParser.QUARTER:
            case SqlParser.MONTH:
            case SqlParser.DAY:
            case SqlParser.HOUR:
            case SqlParser.MINUTE:
            case SqlParser.WEEK:
            case SqlParser.SECOND:
            case SqlParser.MICROSECOND:
            case SqlParser.TABLES:
            case SqlParser.ROUTINE:
            case SqlParser.EXECUTE:
            case SqlParser.FILE:
            case SqlParser.PROCESS:
            case SqlParser.RELOAD:
            case SqlParser.SHUTDOWN:
            case SqlParser.SUPER:
            case SqlParser.PRIVILEGES:
            case SqlParser.AUDIT_ADMIN:
            case SqlParser.BACKUP_ADMIN:
            case SqlParser.BINLOG_ADMIN:
            case SqlParser.BINLOG_ENCRYPTION_ADMIN:
            case SqlParser.CLONE_ADMIN:
            case SqlParser.CONNECTION_ADMIN:
            case SqlParser.ENCRYPTION_KEY_ADMIN:
            case SqlParser.FIREWALL_ADMIN:
            case SqlParser.FIREWALL_USER:
            case SqlParser.GROUP_REPLICATION_ADMIN:
            case SqlParser.INNODB_REDO_LOG_ARCHIVE:
            case SqlParser.NDB_STORED_USER:
            case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
            case SqlParser.REPLICATION_APPLIER:
            case SqlParser.REPLICATION_SLAVE_ADMIN:
            case SqlParser.RESOURCE_GROUP_ADMIN:
            case SqlParser.RESOURCE_GROUP_USER:
            case SqlParser.ROLE_ADMIN:
            case SqlParser.SESSION_VARIABLES_ADMIN:
            case SqlParser.SET_USER_ID:
            case SqlParser.SHOW_ROUTINE:
            case SqlParser.SYSTEM_VARIABLES_ADMIN:
            case SqlParser.TABLE_ENCRYPTION_ADMIN:
            case SqlParser.VERSION_TOKEN_ADMIN:
            case SqlParser.XA_RECOVER_ADMIN:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.ARCHIVE:
            case SqlParser.BLACKHOLE:
            case SqlParser.CSV:
            case SqlParser.FEDERATED:
            case SqlParser.INNODB:
            case SqlParser.MEMORY:
            case SqlParser.MRG_MYISAM:
            case SqlParser.MYISAM:
            case SqlParser.NDB:
            case SqlParser.NDBCLUSTER:
            case SqlParser.PERFORMANCE_SCHEMA:
            case SqlParser.TOKUDB:
            case SqlParser.REPEATABLE:
            case SqlParser.COMMITTED:
            case SqlParser.UNCOMMITTED:
            case SqlParser.SERIALIZABLE:
            case SqlParser.GEOMETRYCOLLECTION:
            case SqlParser.LINESTRING:
            case SqlParser.MULTILINESTRING:
            case SqlParser.MULTIPOINT:
            case SqlParser.MULTIPOLYGON:
            case SqlParser.POINT:
            case SqlParser.POLYGON:
            case SqlParser.ABS:
            case SqlParser.ACOS:
            case SqlParser.ADDDATE:
            case SqlParser.ADDTIME:
            case SqlParser.AES_DECRYPT:
            case SqlParser.AES_ENCRYPT:
            case SqlParser.AREA:
            case SqlParser.ASBINARY:
            case SqlParser.ASIN:
            case SqlParser.ASTEXT:
            case SqlParser.ASWKB:
            case SqlParser.ASWKT:
            case SqlParser.ASYMMETRIC_DECRYPT:
            case SqlParser.ASYMMETRIC_DERIVE:
            case SqlParser.ASYMMETRIC_ENCRYPT:
            case SqlParser.ASYMMETRIC_SIGN:
            case SqlParser.ASYMMETRIC_VERIFY:
            case SqlParser.ATAN:
            case SqlParser.ATAN2:
            case SqlParser.BENCHMARK:
            case SqlParser.BIN:
            case SqlParser.BIT_COUNT:
            case SqlParser.BIT_LENGTH:
            case SqlParser.BUFFER:
            case SqlParser.CATALOG_NAME:
            case SqlParser.CEIL:
            case SqlParser.CEILING:
            case SqlParser.CENTROID:
            case SqlParser.CHARACTER_LENGTH:
            case SqlParser.CHARSET:
            case SqlParser.CHAR_LENGTH:
            case SqlParser.COERCIBILITY:
            case SqlParser.COLLATION:
            case SqlParser.COMPRESS:
            case SqlParser.CONCAT:
            case SqlParser.CONCAT_WS:
            case SqlParser.CONNECTION_ID:
            case SqlParser.CONV:
            case SqlParser.CONVERT_TZ:
            case SqlParser.COS:
            case SqlParser.COT:
            case SqlParser.CRC32:
            case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
            case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
            case SqlParser.CREATE_DH_PARAMETERS:
            case SqlParser.CREATE_DIGEST:
            case SqlParser.CROSSES:
            case SqlParser.DATEDIFF:
            case SqlParser.DATE_FORMAT:
            case SqlParser.DAYNAME:
            case SqlParser.DAYOFMONTH:
            case SqlParser.DAYOFWEEK:
            case SqlParser.DAYOFYEAR:
            case SqlParser.DECODE:
            case SqlParser.DEGREES:
            case SqlParser.DES_DECRYPT:
            case SqlParser.DES_ENCRYPT:
            case SqlParser.DIMENSION:
            case SqlParser.DISJOINT:
            case SqlParser.ELT:
            case SqlParser.ENCODE:
            case SqlParser.ENCRYPT:
            case SqlParser.ENDPOINT:
            case SqlParser.ENVELOPE:
            case SqlParser.EQUALS:
            case SqlParser.EXP:
            case SqlParser.EXPORT_SET:
            case SqlParser.EXTERIORRING:
            case SqlParser.EXTRACTVALUE:
            case SqlParser.FIELD:
            case SqlParser.FIND_IN_SET:
            case SqlParser.FLOOR:
            case SqlParser.FORMAT:
            case SqlParser.FOUND_ROWS:
            case SqlParser.FROM_BASE64:
            case SqlParser.FROM_DAYS:
            case SqlParser.FROM_UNIXTIME:
            case SqlParser.GEOMCOLLFROMTEXT:
            case SqlParser.GEOMCOLLFROMWKB:
            case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.GEOMETRYFROMTEXT:
            case SqlParser.GEOMETRYFROMWKB:
            case SqlParser.GEOMETRYN:
            case SqlParser.GEOMETRYTYPE:
            case SqlParser.GEOMFROMTEXT:
            case SqlParser.GEOMFROMWKB:
            case SqlParser.GET_FORMAT:
            case SqlParser.GET_LOCK:
            case SqlParser.GLENGTH:
            case SqlParser.GREATEST:
            case SqlParser.GTID_SUBSET:
            case SqlParser.GTID_SUBTRACT:
            case SqlParser.HEX:
            case SqlParser.IFNULL:
            case SqlParser.INET6_ATON:
            case SqlParser.INET6_NTOA:
            case SqlParser.INET_ATON:
            case SqlParser.INET_NTOA:
            case SqlParser.INSTR:
            case SqlParser.INTERIORRINGN:
            case SqlParser.INTERSECTS:
            case SqlParser.ISCLOSED:
            case SqlParser.ISEMPTY:
            case SqlParser.ISNULL:
            case SqlParser.ISSIMPLE:
            case SqlParser.IS_FREE_LOCK:
            case SqlParser.IS_IPV4:
            case SqlParser.IS_IPV4_COMPAT:
            case SqlParser.IS_IPV4_MAPPED:
            case SqlParser.IS_IPV6:
            case SqlParser.IS_USED_LOCK:
            case SqlParser.LAST_INSERT_ID:
            case SqlParser.LCASE:
            case SqlParser.LEAST:
            case SqlParser.LENGTH:
            case SqlParser.LINEFROMTEXT:
            case SqlParser.LINEFROMWKB:
            case SqlParser.LINESTRINGFROMTEXT:
            case SqlParser.LINESTRINGFROMWKB:
            case SqlParser.LN:
            case SqlParser.LOAD_FILE:
            case SqlParser.LOCATE:
            case SqlParser.LOG:
            case SqlParser.LOG10:
            case SqlParser.LOG2:
            case SqlParser.LOWER:
            case SqlParser.LPAD:
            case SqlParser.LTRIM:
            case SqlParser.MAKEDATE:
            case SqlParser.MAKETIME:
            case SqlParser.MAKE_SET:
            case SqlParser.MASTER_POS_WAIT:
            case SqlParser.MBRCONTAINS:
            case SqlParser.MBRDISJOINT:
            case SqlParser.MBREQUAL:
            case SqlParser.MBRINTERSECTS:
            case SqlParser.MBROVERLAPS:
            case SqlParser.MBRTOUCHES:
            case SqlParser.MBRWITHIN:
            case SqlParser.MD5:
            case SqlParser.MLINEFROMTEXT:
            case SqlParser.MLINEFROMWKB:
            case SqlParser.MONTHNAME:
            case SqlParser.MPOINTFROMTEXT:
            case SqlParser.MPOINTFROMWKB:
            case SqlParser.MPOLYFROMTEXT:
            case SqlParser.MPOLYFROMWKB:
            case SqlParser.MULTILINESTRINGFROMTEXT:
            case SqlParser.MULTILINESTRINGFROMWKB:
            case SqlParser.MULTIPOINTFROMTEXT:
            case SqlParser.MULTIPOINTFROMWKB:
            case SqlParser.MULTIPOLYGONFROMTEXT:
            case SqlParser.MULTIPOLYGONFROMWKB:
            case SqlParser.NAME_CONST:
            case SqlParser.NULLIF:
            case SqlParser.NUMGEOMETRIES:
            case SqlParser.NUMINTERIORRINGS:
            case SqlParser.NUMPOINTS:
            case SqlParser.OCT:
            case SqlParser.OCTET_LENGTH:
            case SqlParser.ORD:
            case SqlParser.OVERLAPS:
            case SqlParser.PERIOD_ADD:
            case SqlParser.PERIOD_DIFF:
            case SqlParser.PI:
            case SqlParser.POINTFROMTEXT:
            case SqlParser.POINTFROMWKB:
            case SqlParser.POINTN:
            case SqlParser.POLYFROMTEXT:
            case SqlParser.POLYFROMWKB:
            case SqlParser.POLYGONFROMTEXT:
            case SqlParser.POLYGONFROMWKB:
            case SqlParser.POW:
            case SqlParser.POWER:
            case SqlParser.QUOTE:
            case SqlParser.RADIANS:
            case SqlParser.RAND:
            case SqlParser.RANDOM_BYTES:
            case SqlParser.RELEASE_LOCK:
            case SqlParser.REVERSE:
            case SqlParser.ROUND:
            case SqlParser.ROW_COUNT:
            case SqlParser.RPAD:
            case SqlParser.RTRIM:
            case SqlParser.SEC_TO_TIME:
            case SqlParser.SESSION_USER:
            case SqlParser.SHA:
            case SqlParser.SHA1:
            case SqlParser.SHA2:
            case SqlParser.SCHEMA_NAME:
            case SqlParser.SIGN:
            case SqlParser.SIN:
            case SqlParser.SLEEP:
            case SqlParser.SOUNDEX:
            case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
            case SqlParser.SQRT:
            case SqlParser.SRID:
            case SqlParser.STARTPOINT:
            case SqlParser.STRCMP:
            case SqlParser.STR_TO_DATE:
            case SqlParser.ST_AREA:
            case SqlParser.ST_ASBINARY:
            case SqlParser.ST_ASTEXT:
            case SqlParser.ST_ASWKB:
            case SqlParser.ST_ASWKT:
            case SqlParser.ST_BUFFER:
            case SqlParser.ST_CENTROID:
            case SqlParser.ST_CONTAINS:
            case SqlParser.ST_CROSSES:
            case SqlParser.ST_DIFFERENCE:
            case SqlParser.ST_DIMENSION:
            case SqlParser.ST_DISJOINT:
            case SqlParser.ST_DISTANCE:
            case SqlParser.ST_ENDPOINT:
            case SqlParser.ST_ENVELOPE:
            case SqlParser.ST_EQUALS:
            case SqlParser.ST_EXTERIORRING:
            case SqlParser.ST_GEOMCOLLFROMTEXT:
            case SqlParser.ST_GEOMCOLLFROMTXT:
            case SqlParser.ST_GEOMCOLLFROMWKB:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.ST_GEOMETRYFROMTEXT:
            case SqlParser.ST_GEOMETRYFROMWKB:
            case SqlParser.ST_GEOMETRYN:
            case SqlParser.ST_GEOMETRYTYPE:
            case SqlParser.ST_GEOMFROMTEXT:
            case SqlParser.ST_GEOMFROMWKB:
            case SqlParser.ST_INTERIORRINGN:
            case SqlParser.ST_INTERSECTION:
            case SqlParser.ST_INTERSECTS:
            case SqlParser.ST_ISCLOSED:
            case SqlParser.ST_ISEMPTY:
            case SqlParser.ST_ISSIMPLE:
            case SqlParser.ST_LINEFROMTEXT:
            case SqlParser.ST_LINEFROMWKB:
            case SqlParser.ST_LINESTRINGFROMTEXT:
            case SqlParser.ST_LINESTRINGFROMWKB:
            case SqlParser.ST_NUMGEOMETRIES:
            case SqlParser.ST_NUMINTERIORRING:
            case SqlParser.ST_NUMINTERIORRINGS:
            case SqlParser.ST_NUMPOINTS:
            case SqlParser.ST_OVERLAPS:
            case SqlParser.ST_POINTFROMTEXT:
            case SqlParser.ST_POINTFROMWKB:
            case SqlParser.ST_POINTN:
            case SqlParser.ST_POLYFROMTEXT:
            case SqlParser.ST_POLYFROMWKB:
            case SqlParser.ST_POLYGONFROMTEXT:
            case SqlParser.ST_POLYGONFROMWKB:
            case SqlParser.ST_SRID:
            case SqlParser.ST_STARTPOINT:
            case SqlParser.ST_SYMDIFFERENCE:
            case SqlParser.ST_TOUCHES:
            case SqlParser.ST_UNION:
            case SqlParser.ST_WITHIN:
            case SqlParser.ST_X:
            case SqlParser.ST_Y:
            case SqlParser.SUBDATE:
            case SqlParser.SUBSTRING_INDEX:
            case SqlParser.SUBTIME:
            case SqlParser.SYSTEM_USER:
            case SqlParser.TAN:
            case SqlParser.TIMEDIFF:
            case SqlParser.TIMESTAMPADD:
            case SqlParser.TIMESTAMPDIFF:
            case SqlParser.TIME_FORMAT:
            case SqlParser.TIME_TO_SEC:
            case SqlParser.TOUCHES:
            case SqlParser.TO_BASE64:
            case SqlParser.TO_DAYS:
            case SqlParser.TO_SECONDS:
            case SqlParser.UCASE:
            case SqlParser.UNCOMPRESS:
            case SqlParser.UNCOMPRESSED_LENGTH:
            case SqlParser.UNHEX:
            case SqlParser.UNIX_TIMESTAMP:
            case SqlParser.UPDATEXML:
            case SqlParser.UPPER:
            case SqlParser.UUID:
            case SqlParser.UUID_SHORT:
            case SqlParser.VALIDATE_PASSWORD_STRENGTH:
            case SqlParser.VERSION:
            case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
            case SqlParser.WEEKDAY:
            case SqlParser.WEEKOFYEAR:
            case SqlParser.WEIGHT_STRING:
            case SqlParser.WITHIN:
            case SqlParser.YEARWEEK:
            case SqlParser.Y_FUNCTION:
            case SqlParser.X_FUNCTION:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
            case SqlParser.ID:
            case SqlParser.REVERSE_QUOTE_ID:
                this.state = 2603;
                this.uidList();
                break;
            case SqlParser.ALL:
                this.state = 2604;
                this.match(SqlParser.ALL);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;

        case 43:
            localctx = new AlterByRebuildPartitionContext(this, localctx);
            this.enterOuterAlt(localctx, 43);
            this.state = 2607;
            this.match(SqlParser.REBUILD);
            this.state = 2608;
            this.match(SqlParser.PARTITION);
            this.state = 2611;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.CURRENT:
            case SqlParser.DATABASE:
            case SqlParser.DIAGNOSTICS:
            case SqlParser.LEFT:
            case SqlParser.NUMBER:
            case SqlParser.RIGHT:
            case SqlParser.STACKED:
            case SqlParser.DATE:
            case SqlParser.TIME:
            case SqlParser.TIMESTAMP:
            case SqlParser.DATETIME:
            case SqlParser.YEAR:
            case SqlParser.TEXT:
            case SqlParser.ENUM:
            case SqlParser.SERIAL:
            case SqlParser.JSON_VALID:
            case SqlParser.JSON_SCHEMA_VALID:
            case SqlParser.COUNT:
            case SqlParser.POSITION:
            case SqlParser.ACCOUNT:
            case SqlParser.ACTION:
            case SqlParser.AFTER:
            case SqlParser.AGGREGATE:
            case SqlParser.ALGORITHM:
            case SqlParser.ANY:
            case SqlParser.AT:
            case SqlParser.AUTHORS:
            case SqlParser.AUTOCOMMIT:
            case SqlParser.AUTOEXTEND_SIZE:
            case SqlParser.AUTO_INCREMENT:
            case SqlParser.AVG_ROW_LENGTH:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.BIT:
            case SqlParser.BLOCK:
            case SqlParser.BOOL:
            case SqlParser.BOOLEAN:
            case SqlParser.BTREE:
            case SqlParser.CACHE:
            case SqlParser.CASCADED:
            case SqlParser.CHAIN:
            case SqlParser.CHANGED:
            case SqlParser.CHANNEL:
            case SqlParser.CHECKSUM:
            case SqlParser.PAGE_CHECKSUM:
            case SqlParser.CIPHER:
            case SqlParser.CLASS_ORIGIN:
            case SqlParser.CLIENT:
            case SqlParser.CLOSE:
            case SqlParser.COALESCE:
            case SqlParser.CODE:
            case SqlParser.COLUMNS:
            case SqlParser.COLUMN_FORMAT:
            case SqlParser.COLUMN_NAME:
            case SqlParser.COMMENT:
            case SqlParser.COMMIT:
            case SqlParser.COMPACT:
            case SqlParser.COMPLETION:
            case SqlParser.COMPRESSED:
            case SqlParser.COMPRESSION:
            case SqlParser.CONCURRENT:
            case SqlParser.CONNECTION:
            case SqlParser.CONSISTENT:
            case SqlParser.CONSTRAINT_CATALOG:
            case SqlParser.CONSTRAINT_SCHEMA:
            case SqlParser.CONSTRAINT_NAME:
            case SqlParser.CONTAINS:
            case SqlParser.CONTEXT:
            case SqlParser.CONTRIBUTORS:
            case SqlParser.COPY:
            case SqlParser.CPU:
            case SqlParser.CURSOR_NAME:
            case SqlParser.DATA:
            case SqlParser.DATAFILE:
            case SqlParser.DEALLOCATE:
            case SqlParser.DEFAULT_AUTH:
            case SqlParser.DEFINER:
            case SqlParser.DELAY_KEY_WRITE:
            case SqlParser.DES_KEY_FILE:
            case SqlParser.DIRECTORY:
            case SqlParser.DISABLE:
            case SqlParser.DISCARD:
            case SqlParser.DISK:
            case SqlParser.DO:
            case SqlParser.DUMPFILE:
            case SqlParser.DUPLICATE:
            case SqlParser.DYNAMIC:
            case SqlParser.ENABLE:
            case SqlParser.ENCRYPTION:
            case SqlParser.END:
            case SqlParser.ENDS:
            case SqlParser.ENGINE:
            case SqlParser.ENGINES:
            case SqlParser.ERROR:
            case SqlParser.ERRORS:
            case SqlParser.ESCAPE:
            case SqlParser.EVEN:
            case SqlParser.EVENT:
            case SqlParser.EVENTS:
            case SqlParser.EVERY:
            case SqlParser.EXCHANGE:
            case SqlParser.EXCLUSIVE:
            case SqlParser.EXPIRE:
            case SqlParser.EXPORT:
            case SqlParser.EXTENDED:
            case SqlParser.EXTENT_SIZE:
            case SqlParser.FAST:
            case SqlParser.FAULTS:
            case SqlParser.FIELDS:
            case SqlParser.FILE_BLOCK_SIZE:
            case SqlParser.FILTER:
            case SqlParser.FIRST:
            case SqlParser.FIXED:
            case SqlParser.FLUSH:
            case SqlParser.FOLLOWS:
            case SqlParser.FOUND:
            case SqlParser.FULL:
            case SqlParser.FUNCTION:
            case SqlParser.GENERAL:
            case SqlParser.GLOBAL:
            case SqlParser.GRANTS:
            case SqlParser.GROUP_REPLICATION:
            case SqlParser.HANDLER:
            case SqlParser.HASH:
            case SqlParser.HELP:
            case SqlParser.HOST:
            case SqlParser.HOSTS:
            case SqlParser.IDENTIFIED:
            case SqlParser.IGNORE_SERVER_IDS:
            case SqlParser.IMPORT:
            case SqlParser.INDEXES:
            case SqlParser.INITIAL_SIZE:
            case SqlParser.INPLACE:
            case SqlParser.INSERT_METHOD:
            case SqlParser.INSTALL:
            case SqlParser.INSTANCE:
            case SqlParser.INVISIBLE:
            case SqlParser.INVOKER:
            case SqlParser.IO:
            case SqlParser.IO_THREAD:
            case SqlParser.IPC:
            case SqlParser.ISOLATION:
            case SqlParser.ISSUER:
            case SqlParser.JSON:
            case SqlParser.KEY_BLOCK_SIZE:
            case SqlParser.LANGUAGE:
            case SqlParser.LAST:
            case SqlParser.LEAVES:
            case SqlParser.LESS:
            case SqlParser.LEVEL:
            case SqlParser.LIST:
            case SqlParser.LOCAL:
            case SqlParser.LOGFILE:
            case SqlParser.LOGS:
            case SqlParser.MASTER:
            case SqlParser.MASTER_AUTO_POSITION:
            case SqlParser.MASTER_CONNECT_RETRY:
            case SqlParser.MASTER_DELAY:
            case SqlParser.MASTER_HEARTBEAT_PERIOD:
            case SqlParser.MASTER_HOST:
            case SqlParser.MASTER_LOG_FILE:
            case SqlParser.MASTER_LOG_POS:
            case SqlParser.MASTER_PASSWORD:
            case SqlParser.MASTER_PORT:
            case SqlParser.MASTER_RETRY_COUNT:
            case SqlParser.MASTER_SSL:
            case SqlParser.MASTER_SSL_CA:
            case SqlParser.MASTER_SSL_CAPATH:
            case SqlParser.MASTER_SSL_CERT:
            case SqlParser.MASTER_SSL_CIPHER:
            case SqlParser.MASTER_SSL_CRL:
            case SqlParser.MASTER_SSL_CRLPATH:
            case SqlParser.MASTER_SSL_KEY:
            case SqlParser.MASTER_TLS_VERSION:
            case SqlParser.MASTER_USER:
            case SqlParser.MAX_CONNECTIONS_PER_HOUR:
            case SqlParser.MAX_QUERIES_PER_HOUR:
            case SqlParser.MAX_ROWS:
            case SqlParser.MAX_SIZE:
            case SqlParser.MAX_UPDATES_PER_HOUR:
            case SqlParser.MAX_USER_CONNECTIONS:
            case SqlParser.MEDIUM:
            case SqlParser.MERGE:
            case SqlParser.MESSAGE_TEXT:
            case SqlParser.MID:
            case SqlParser.MIGRATE:
            case SqlParser.MIN_ROWS:
            case SqlParser.MODE:
            case SqlParser.MODIFY:
            case SqlParser.MUTEX:
            case SqlParser.MYSQL:
            case SqlParser.MYSQL_ERRNO:
            case SqlParser.NAME:
            case SqlParser.NAMES:
            case SqlParser.NCHAR:
            case SqlParser.NEVER:
            case SqlParser.NEXT:
            case SqlParser.NO:
            case SqlParser.NODEGROUP:
            case SqlParser.NONE:
            case SqlParser.OFFLINE:
            case SqlParser.OFFSET:
            case SqlParser.OJ:
            case SqlParser.OLD_PASSWORD:
            case SqlParser.ONE:
            case SqlParser.ONLINE:
            case SqlParser.ONLY:
            case SqlParser.OPEN:
            case SqlParser.OPTIMIZER_COSTS:
            case SqlParser.OPTIONS:
            case SqlParser.OWNER:
            case SqlParser.PACK_KEYS:
            case SqlParser.PAGE:
            case SqlParser.PARSER:
            case SqlParser.PARTIAL:
            case SqlParser.PARTITIONING:
            case SqlParser.PARTITIONS:
            case SqlParser.PASSWORD:
            case SqlParser.PHASE:
            case SqlParser.PLUGIN:
            case SqlParser.PLUGIN_DIR:
            case SqlParser.PLUGINS:
            case SqlParser.PORT:
            case SqlParser.PRECEDES:
            case SqlParser.PREPARE:
            case SqlParser.PRESERVE:
            case SqlParser.PREV:
            case SqlParser.PROCESSLIST:
            case SqlParser.PROFILE:
            case SqlParser.PROFILES:
            case SqlParser.PROXY:
            case SqlParser.QUERY:
            case SqlParser.QUICK:
            case SqlParser.REBUILD:
            case SqlParser.RECOVER:
            case SqlParser.REDO_BUFFER_SIZE:
            case SqlParser.REDUNDANT:
            case SqlParser.RELAY:
            case SqlParser.RELAY_LOG_FILE:
            case SqlParser.RELAY_LOG_POS:
            case SqlParser.RELAYLOG:
            case SqlParser.REMOVE:
            case SqlParser.REORGANIZE:
            case SqlParser.REPAIR:
            case SqlParser.REPLICATE_DO_DB:
            case SqlParser.REPLICATE_DO_TABLE:
            case SqlParser.REPLICATE_IGNORE_DB:
            case SqlParser.REPLICATE_IGNORE_TABLE:
            case SqlParser.REPLICATE_REWRITE_DB:
            case SqlParser.REPLICATE_WILD_DO_TABLE:
            case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
            case SqlParser.REPLICATION:
            case SqlParser.RESET:
            case SqlParser.RESUME:
            case SqlParser.RETURNED_SQLSTATE:
            case SqlParser.RETURNS:
            case SqlParser.ROLE:
            case SqlParser.ROLLBACK:
            case SqlParser.ROLLUP:
            case SqlParser.ROTATE:
            case SqlParser.ROW:
            case SqlParser.ROWS:
            case SqlParser.ROW_FORMAT:
            case SqlParser.SAVEPOINT:
            case SqlParser.SCHEDULE:
            case SqlParser.SECURITY:
            case SqlParser.SERVER:
            case SqlParser.SESSION:
            case SqlParser.SHARE:
            case SqlParser.SHARED:
            case SqlParser.SIGNED:
            case SqlParser.SIMPLE:
            case SqlParser.SLAVE:
            case SqlParser.SLOW:
            case SqlParser.SNAPSHOT:
            case SqlParser.SOCKET:
            case SqlParser.SOME:
            case SqlParser.SONAME:
            case SqlParser.SOUNDS:
            case SqlParser.SOURCE:
            case SqlParser.SQL_AFTER_GTIDS:
            case SqlParser.SQL_AFTER_MTS_GAPS:
            case SqlParser.SQL_BEFORE_GTIDS:
            case SqlParser.SQL_BUFFER_RESULT:
            case SqlParser.SQL_CACHE:
            case SqlParser.SQL_NO_CACHE:
            case SqlParser.SQL_THREAD:
            case SqlParser.START:
            case SqlParser.STARTS:
            case SqlParser.STATS_AUTO_RECALC:
            case SqlParser.STATS_PERSISTENT:
            case SqlParser.STATS_SAMPLE_PAGES:
            case SqlParser.STATUS:
            case SqlParser.STOP:
            case SqlParser.STORAGE:
            case SqlParser.STRING:
            case SqlParser.SUBCLASS_ORIGIN:
            case SqlParser.SUBJECT:
            case SqlParser.SUBPARTITION:
            case SqlParser.SUBPARTITIONS:
            case SqlParser.SUSPEND:
            case SqlParser.SWAPS:
            case SqlParser.SWITCHES:
            case SqlParser.TABLE_NAME:
            case SqlParser.TABLESPACE:
            case SqlParser.TEMPORARY:
            case SqlParser.TEMPTABLE:
            case SqlParser.THAN:
            case SqlParser.TRADITIONAL:
            case SqlParser.TRANSACTION:
            case SqlParser.TRANSACTIONAL:
            case SqlParser.TRIGGERS:
            case SqlParser.TRUNCATE:
            case SqlParser.UNDEFINED:
            case SqlParser.UNDOFILE:
            case SqlParser.UNDO_BUFFER_SIZE:
            case SqlParser.UNINSTALL:
            case SqlParser.UNKNOWN:
            case SqlParser.UNTIL:
            case SqlParser.UPGRADE:
            case SqlParser.USER:
            case SqlParser.USE_FRM:
            case SqlParser.USER_RESOURCES:
            case SqlParser.VALIDATION:
            case SqlParser.VALUE:
            case SqlParser.VARIABLES:
            case SqlParser.VIEW:
            case SqlParser.VISIBLE:
            case SqlParser.WAIT:
            case SqlParser.WARNINGS:
            case SqlParser.WITHOUT:
            case SqlParser.WORK:
            case SqlParser.WRAPPER:
            case SqlParser.X509:
            case SqlParser.XA:
            case SqlParser.XML:
            case SqlParser.INTERNAL:
            case SqlParser.QUARTER:
            case SqlParser.MONTH:
            case SqlParser.DAY:
            case SqlParser.HOUR:
            case SqlParser.MINUTE:
            case SqlParser.WEEK:
            case SqlParser.SECOND:
            case SqlParser.MICROSECOND:
            case SqlParser.TABLES:
            case SqlParser.ROUTINE:
            case SqlParser.EXECUTE:
            case SqlParser.FILE:
            case SqlParser.PROCESS:
            case SqlParser.RELOAD:
            case SqlParser.SHUTDOWN:
            case SqlParser.SUPER:
            case SqlParser.PRIVILEGES:
            case SqlParser.AUDIT_ADMIN:
            case SqlParser.BACKUP_ADMIN:
            case SqlParser.BINLOG_ADMIN:
            case SqlParser.BINLOG_ENCRYPTION_ADMIN:
            case SqlParser.CLONE_ADMIN:
            case SqlParser.CONNECTION_ADMIN:
            case SqlParser.ENCRYPTION_KEY_ADMIN:
            case SqlParser.FIREWALL_ADMIN:
            case SqlParser.FIREWALL_USER:
            case SqlParser.GROUP_REPLICATION_ADMIN:
            case SqlParser.INNODB_REDO_LOG_ARCHIVE:
            case SqlParser.NDB_STORED_USER:
            case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
            case SqlParser.REPLICATION_APPLIER:
            case SqlParser.REPLICATION_SLAVE_ADMIN:
            case SqlParser.RESOURCE_GROUP_ADMIN:
            case SqlParser.RESOURCE_GROUP_USER:
            case SqlParser.ROLE_ADMIN:
            case SqlParser.SESSION_VARIABLES_ADMIN:
            case SqlParser.SET_USER_ID:
            case SqlParser.SHOW_ROUTINE:
            case SqlParser.SYSTEM_VARIABLES_ADMIN:
            case SqlParser.TABLE_ENCRYPTION_ADMIN:
            case SqlParser.VERSION_TOKEN_ADMIN:
            case SqlParser.XA_RECOVER_ADMIN:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.ARCHIVE:
            case SqlParser.BLACKHOLE:
            case SqlParser.CSV:
            case SqlParser.FEDERATED:
            case SqlParser.INNODB:
            case SqlParser.MEMORY:
            case SqlParser.MRG_MYISAM:
            case SqlParser.MYISAM:
            case SqlParser.NDB:
            case SqlParser.NDBCLUSTER:
            case SqlParser.PERFORMANCE_SCHEMA:
            case SqlParser.TOKUDB:
            case SqlParser.REPEATABLE:
            case SqlParser.COMMITTED:
            case SqlParser.UNCOMMITTED:
            case SqlParser.SERIALIZABLE:
            case SqlParser.GEOMETRYCOLLECTION:
            case SqlParser.LINESTRING:
            case SqlParser.MULTILINESTRING:
            case SqlParser.MULTIPOINT:
            case SqlParser.MULTIPOLYGON:
            case SqlParser.POINT:
            case SqlParser.POLYGON:
            case SqlParser.ABS:
            case SqlParser.ACOS:
            case SqlParser.ADDDATE:
            case SqlParser.ADDTIME:
            case SqlParser.AES_DECRYPT:
            case SqlParser.AES_ENCRYPT:
            case SqlParser.AREA:
            case SqlParser.ASBINARY:
            case SqlParser.ASIN:
            case SqlParser.ASTEXT:
            case SqlParser.ASWKB:
            case SqlParser.ASWKT:
            case SqlParser.ASYMMETRIC_DECRYPT:
            case SqlParser.ASYMMETRIC_DERIVE:
            case SqlParser.ASYMMETRIC_ENCRYPT:
            case SqlParser.ASYMMETRIC_SIGN:
            case SqlParser.ASYMMETRIC_VERIFY:
            case SqlParser.ATAN:
            case SqlParser.ATAN2:
            case SqlParser.BENCHMARK:
            case SqlParser.BIN:
            case SqlParser.BIT_COUNT:
            case SqlParser.BIT_LENGTH:
            case SqlParser.BUFFER:
            case SqlParser.CATALOG_NAME:
            case SqlParser.CEIL:
            case SqlParser.CEILING:
            case SqlParser.CENTROID:
            case SqlParser.CHARACTER_LENGTH:
            case SqlParser.CHARSET:
            case SqlParser.CHAR_LENGTH:
            case SqlParser.COERCIBILITY:
            case SqlParser.COLLATION:
            case SqlParser.COMPRESS:
            case SqlParser.CONCAT:
            case SqlParser.CONCAT_WS:
            case SqlParser.CONNECTION_ID:
            case SqlParser.CONV:
            case SqlParser.CONVERT_TZ:
            case SqlParser.COS:
            case SqlParser.COT:
            case SqlParser.CRC32:
            case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
            case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
            case SqlParser.CREATE_DH_PARAMETERS:
            case SqlParser.CREATE_DIGEST:
            case SqlParser.CROSSES:
            case SqlParser.DATEDIFF:
            case SqlParser.DATE_FORMAT:
            case SqlParser.DAYNAME:
            case SqlParser.DAYOFMONTH:
            case SqlParser.DAYOFWEEK:
            case SqlParser.DAYOFYEAR:
            case SqlParser.DECODE:
            case SqlParser.DEGREES:
            case SqlParser.DES_DECRYPT:
            case SqlParser.DES_ENCRYPT:
            case SqlParser.DIMENSION:
            case SqlParser.DISJOINT:
            case SqlParser.ELT:
            case SqlParser.ENCODE:
            case SqlParser.ENCRYPT:
            case SqlParser.ENDPOINT:
            case SqlParser.ENVELOPE:
            case SqlParser.EQUALS:
            case SqlParser.EXP:
            case SqlParser.EXPORT_SET:
            case SqlParser.EXTERIORRING:
            case SqlParser.EXTRACTVALUE:
            case SqlParser.FIELD:
            case SqlParser.FIND_IN_SET:
            case SqlParser.FLOOR:
            case SqlParser.FORMAT:
            case SqlParser.FOUND_ROWS:
            case SqlParser.FROM_BASE64:
            case SqlParser.FROM_DAYS:
            case SqlParser.FROM_UNIXTIME:
            case SqlParser.GEOMCOLLFROMTEXT:
            case SqlParser.GEOMCOLLFROMWKB:
            case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.GEOMETRYFROMTEXT:
            case SqlParser.GEOMETRYFROMWKB:
            case SqlParser.GEOMETRYN:
            case SqlParser.GEOMETRYTYPE:
            case SqlParser.GEOMFROMTEXT:
            case SqlParser.GEOMFROMWKB:
            case SqlParser.GET_FORMAT:
            case SqlParser.GET_LOCK:
            case SqlParser.GLENGTH:
            case SqlParser.GREATEST:
            case SqlParser.GTID_SUBSET:
            case SqlParser.GTID_SUBTRACT:
            case SqlParser.HEX:
            case SqlParser.IFNULL:
            case SqlParser.INET6_ATON:
            case SqlParser.INET6_NTOA:
            case SqlParser.INET_ATON:
            case SqlParser.INET_NTOA:
            case SqlParser.INSTR:
            case SqlParser.INTERIORRINGN:
            case SqlParser.INTERSECTS:
            case SqlParser.ISCLOSED:
            case SqlParser.ISEMPTY:
            case SqlParser.ISNULL:
            case SqlParser.ISSIMPLE:
            case SqlParser.IS_FREE_LOCK:
            case SqlParser.IS_IPV4:
            case SqlParser.IS_IPV4_COMPAT:
            case SqlParser.IS_IPV4_MAPPED:
            case SqlParser.IS_IPV6:
            case SqlParser.IS_USED_LOCK:
            case SqlParser.LAST_INSERT_ID:
            case SqlParser.LCASE:
            case SqlParser.LEAST:
            case SqlParser.LENGTH:
            case SqlParser.LINEFROMTEXT:
            case SqlParser.LINEFROMWKB:
            case SqlParser.LINESTRINGFROMTEXT:
            case SqlParser.LINESTRINGFROMWKB:
            case SqlParser.LN:
            case SqlParser.LOAD_FILE:
            case SqlParser.LOCATE:
            case SqlParser.LOG:
            case SqlParser.LOG10:
            case SqlParser.LOG2:
            case SqlParser.LOWER:
            case SqlParser.LPAD:
            case SqlParser.LTRIM:
            case SqlParser.MAKEDATE:
            case SqlParser.MAKETIME:
            case SqlParser.MAKE_SET:
            case SqlParser.MASTER_POS_WAIT:
            case SqlParser.MBRCONTAINS:
            case SqlParser.MBRDISJOINT:
            case SqlParser.MBREQUAL:
            case SqlParser.MBRINTERSECTS:
            case SqlParser.MBROVERLAPS:
            case SqlParser.MBRTOUCHES:
            case SqlParser.MBRWITHIN:
            case SqlParser.MD5:
            case SqlParser.MLINEFROMTEXT:
            case SqlParser.MLINEFROMWKB:
            case SqlParser.MONTHNAME:
            case SqlParser.MPOINTFROMTEXT:
            case SqlParser.MPOINTFROMWKB:
            case SqlParser.MPOLYFROMTEXT:
            case SqlParser.MPOLYFROMWKB:
            case SqlParser.MULTILINESTRINGFROMTEXT:
            case SqlParser.MULTILINESTRINGFROMWKB:
            case SqlParser.MULTIPOINTFROMTEXT:
            case SqlParser.MULTIPOINTFROMWKB:
            case SqlParser.MULTIPOLYGONFROMTEXT:
            case SqlParser.MULTIPOLYGONFROMWKB:
            case SqlParser.NAME_CONST:
            case SqlParser.NULLIF:
            case SqlParser.NUMGEOMETRIES:
            case SqlParser.NUMINTERIORRINGS:
            case SqlParser.NUMPOINTS:
            case SqlParser.OCT:
            case SqlParser.OCTET_LENGTH:
            case SqlParser.ORD:
            case SqlParser.OVERLAPS:
            case SqlParser.PERIOD_ADD:
            case SqlParser.PERIOD_DIFF:
            case SqlParser.PI:
            case SqlParser.POINTFROMTEXT:
            case SqlParser.POINTFROMWKB:
            case SqlParser.POINTN:
            case SqlParser.POLYFROMTEXT:
            case SqlParser.POLYFROMWKB:
            case SqlParser.POLYGONFROMTEXT:
            case SqlParser.POLYGONFROMWKB:
            case SqlParser.POW:
            case SqlParser.POWER:
            case SqlParser.QUOTE:
            case SqlParser.RADIANS:
            case SqlParser.RAND:
            case SqlParser.RANDOM_BYTES:
            case SqlParser.RELEASE_LOCK:
            case SqlParser.REVERSE:
            case SqlParser.ROUND:
            case SqlParser.ROW_COUNT:
            case SqlParser.RPAD:
            case SqlParser.RTRIM:
            case SqlParser.SEC_TO_TIME:
            case SqlParser.SESSION_USER:
            case SqlParser.SHA:
            case SqlParser.SHA1:
            case SqlParser.SHA2:
            case SqlParser.SCHEMA_NAME:
            case SqlParser.SIGN:
            case SqlParser.SIN:
            case SqlParser.SLEEP:
            case SqlParser.SOUNDEX:
            case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
            case SqlParser.SQRT:
            case SqlParser.SRID:
            case SqlParser.STARTPOINT:
            case SqlParser.STRCMP:
            case SqlParser.STR_TO_DATE:
            case SqlParser.ST_AREA:
            case SqlParser.ST_ASBINARY:
            case SqlParser.ST_ASTEXT:
            case SqlParser.ST_ASWKB:
            case SqlParser.ST_ASWKT:
            case SqlParser.ST_BUFFER:
            case SqlParser.ST_CENTROID:
            case SqlParser.ST_CONTAINS:
            case SqlParser.ST_CROSSES:
            case SqlParser.ST_DIFFERENCE:
            case SqlParser.ST_DIMENSION:
            case SqlParser.ST_DISJOINT:
            case SqlParser.ST_DISTANCE:
            case SqlParser.ST_ENDPOINT:
            case SqlParser.ST_ENVELOPE:
            case SqlParser.ST_EQUALS:
            case SqlParser.ST_EXTERIORRING:
            case SqlParser.ST_GEOMCOLLFROMTEXT:
            case SqlParser.ST_GEOMCOLLFROMTXT:
            case SqlParser.ST_GEOMCOLLFROMWKB:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.ST_GEOMETRYFROMTEXT:
            case SqlParser.ST_GEOMETRYFROMWKB:
            case SqlParser.ST_GEOMETRYN:
            case SqlParser.ST_GEOMETRYTYPE:
            case SqlParser.ST_GEOMFROMTEXT:
            case SqlParser.ST_GEOMFROMWKB:
            case SqlParser.ST_INTERIORRINGN:
            case SqlParser.ST_INTERSECTION:
            case SqlParser.ST_INTERSECTS:
            case SqlParser.ST_ISCLOSED:
            case SqlParser.ST_ISEMPTY:
            case SqlParser.ST_ISSIMPLE:
            case SqlParser.ST_LINEFROMTEXT:
            case SqlParser.ST_LINEFROMWKB:
            case SqlParser.ST_LINESTRINGFROMTEXT:
            case SqlParser.ST_LINESTRINGFROMWKB:
            case SqlParser.ST_NUMGEOMETRIES:
            case SqlParser.ST_NUMINTERIORRING:
            case SqlParser.ST_NUMINTERIORRINGS:
            case SqlParser.ST_NUMPOINTS:
            case SqlParser.ST_OVERLAPS:
            case SqlParser.ST_POINTFROMTEXT:
            case SqlParser.ST_POINTFROMWKB:
            case SqlParser.ST_POINTN:
            case SqlParser.ST_POLYFROMTEXT:
            case SqlParser.ST_POLYFROMWKB:
            case SqlParser.ST_POLYGONFROMTEXT:
            case SqlParser.ST_POLYGONFROMWKB:
            case SqlParser.ST_SRID:
            case SqlParser.ST_STARTPOINT:
            case SqlParser.ST_SYMDIFFERENCE:
            case SqlParser.ST_TOUCHES:
            case SqlParser.ST_UNION:
            case SqlParser.ST_WITHIN:
            case SqlParser.ST_X:
            case SqlParser.ST_Y:
            case SqlParser.SUBDATE:
            case SqlParser.SUBSTRING_INDEX:
            case SqlParser.SUBTIME:
            case SqlParser.SYSTEM_USER:
            case SqlParser.TAN:
            case SqlParser.TIMEDIFF:
            case SqlParser.TIMESTAMPADD:
            case SqlParser.TIMESTAMPDIFF:
            case SqlParser.TIME_FORMAT:
            case SqlParser.TIME_TO_SEC:
            case SqlParser.TOUCHES:
            case SqlParser.TO_BASE64:
            case SqlParser.TO_DAYS:
            case SqlParser.TO_SECONDS:
            case SqlParser.UCASE:
            case SqlParser.UNCOMPRESS:
            case SqlParser.UNCOMPRESSED_LENGTH:
            case SqlParser.UNHEX:
            case SqlParser.UNIX_TIMESTAMP:
            case SqlParser.UPDATEXML:
            case SqlParser.UPPER:
            case SqlParser.UUID:
            case SqlParser.UUID_SHORT:
            case SqlParser.VALIDATE_PASSWORD_STRENGTH:
            case SqlParser.VERSION:
            case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
            case SqlParser.WEEKDAY:
            case SqlParser.WEEKOFYEAR:
            case SqlParser.WEIGHT_STRING:
            case SqlParser.WITHIN:
            case SqlParser.YEARWEEK:
            case SqlParser.Y_FUNCTION:
            case SqlParser.X_FUNCTION:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
            case SqlParser.ID:
            case SqlParser.REVERSE_QUOTE_ID:
                this.state = 2609;
                this.uidList();
                break;
            case SqlParser.ALL:
                this.state = 2610;
                this.match(SqlParser.ALL);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;

        case 44:
            localctx = new AlterByRepairPartitionContext(this, localctx);
            this.enterOuterAlt(localctx, 44);
            this.state = 2613;
            this.match(SqlParser.REPAIR);
            this.state = 2614;
            this.match(SqlParser.PARTITION);
            this.state = 2617;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.CURRENT:
            case SqlParser.DATABASE:
            case SqlParser.DIAGNOSTICS:
            case SqlParser.LEFT:
            case SqlParser.NUMBER:
            case SqlParser.RIGHT:
            case SqlParser.STACKED:
            case SqlParser.DATE:
            case SqlParser.TIME:
            case SqlParser.TIMESTAMP:
            case SqlParser.DATETIME:
            case SqlParser.YEAR:
            case SqlParser.TEXT:
            case SqlParser.ENUM:
            case SqlParser.SERIAL:
            case SqlParser.JSON_VALID:
            case SqlParser.JSON_SCHEMA_VALID:
            case SqlParser.COUNT:
            case SqlParser.POSITION:
            case SqlParser.ACCOUNT:
            case SqlParser.ACTION:
            case SqlParser.AFTER:
            case SqlParser.AGGREGATE:
            case SqlParser.ALGORITHM:
            case SqlParser.ANY:
            case SqlParser.AT:
            case SqlParser.AUTHORS:
            case SqlParser.AUTOCOMMIT:
            case SqlParser.AUTOEXTEND_SIZE:
            case SqlParser.AUTO_INCREMENT:
            case SqlParser.AVG_ROW_LENGTH:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.BIT:
            case SqlParser.BLOCK:
            case SqlParser.BOOL:
            case SqlParser.BOOLEAN:
            case SqlParser.BTREE:
            case SqlParser.CACHE:
            case SqlParser.CASCADED:
            case SqlParser.CHAIN:
            case SqlParser.CHANGED:
            case SqlParser.CHANNEL:
            case SqlParser.CHECKSUM:
            case SqlParser.PAGE_CHECKSUM:
            case SqlParser.CIPHER:
            case SqlParser.CLASS_ORIGIN:
            case SqlParser.CLIENT:
            case SqlParser.CLOSE:
            case SqlParser.COALESCE:
            case SqlParser.CODE:
            case SqlParser.COLUMNS:
            case SqlParser.COLUMN_FORMAT:
            case SqlParser.COLUMN_NAME:
            case SqlParser.COMMENT:
            case SqlParser.COMMIT:
            case SqlParser.COMPACT:
            case SqlParser.COMPLETION:
            case SqlParser.COMPRESSED:
            case SqlParser.COMPRESSION:
            case SqlParser.CONCURRENT:
            case SqlParser.CONNECTION:
            case SqlParser.CONSISTENT:
            case SqlParser.CONSTRAINT_CATALOG:
            case SqlParser.CONSTRAINT_SCHEMA:
            case SqlParser.CONSTRAINT_NAME:
            case SqlParser.CONTAINS:
            case SqlParser.CONTEXT:
            case SqlParser.CONTRIBUTORS:
            case SqlParser.COPY:
            case SqlParser.CPU:
            case SqlParser.CURSOR_NAME:
            case SqlParser.DATA:
            case SqlParser.DATAFILE:
            case SqlParser.DEALLOCATE:
            case SqlParser.DEFAULT_AUTH:
            case SqlParser.DEFINER:
            case SqlParser.DELAY_KEY_WRITE:
            case SqlParser.DES_KEY_FILE:
            case SqlParser.DIRECTORY:
            case SqlParser.DISABLE:
            case SqlParser.DISCARD:
            case SqlParser.DISK:
            case SqlParser.DO:
            case SqlParser.DUMPFILE:
            case SqlParser.DUPLICATE:
            case SqlParser.DYNAMIC:
            case SqlParser.ENABLE:
            case SqlParser.ENCRYPTION:
            case SqlParser.END:
            case SqlParser.ENDS:
            case SqlParser.ENGINE:
            case SqlParser.ENGINES:
            case SqlParser.ERROR:
            case SqlParser.ERRORS:
            case SqlParser.ESCAPE:
            case SqlParser.EVEN:
            case SqlParser.EVENT:
            case SqlParser.EVENTS:
            case SqlParser.EVERY:
            case SqlParser.EXCHANGE:
            case SqlParser.EXCLUSIVE:
            case SqlParser.EXPIRE:
            case SqlParser.EXPORT:
            case SqlParser.EXTENDED:
            case SqlParser.EXTENT_SIZE:
            case SqlParser.FAST:
            case SqlParser.FAULTS:
            case SqlParser.FIELDS:
            case SqlParser.FILE_BLOCK_SIZE:
            case SqlParser.FILTER:
            case SqlParser.FIRST:
            case SqlParser.FIXED:
            case SqlParser.FLUSH:
            case SqlParser.FOLLOWS:
            case SqlParser.FOUND:
            case SqlParser.FULL:
            case SqlParser.FUNCTION:
            case SqlParser.GENERAL:
            case SqlParser.GLOBAL:
            case SqlParser.GRANTS:
            case SqlParser.GROUP_REPLICATION:
            case SqlParser.HANDLER:
            case SqlParser.HASH:
            case SqlParser.HELP:
            case SqlParser.HOST:
            case SqlParser.HOSTS:
            case SqlParser.IDENTIFIED:
            case SqlParser.IGNORE_SERVER_IDS:
            case SqlParser.IMPORT:
            case SqlParser.INDEXES:
            case SqlParser.INITIAL_SIZE:
            case SqlParser.INPLACE:
            case SqlParser.INSERT_METHOD:
            case SqlParser.INSTALL:
            case SqlParser.INSTANCE:
            case SqlParser.INVISIBLE:
            case SqlParser.INVOKER:
            case SqlParser.IO:
            case SqlParser.IO_THREAD:
            case SqlParser.IPC:
            case SqlParser.ISOLATION:
            case SqlParser.ISSUER:
            case SqlParser.JSON:
            case SqlParser.KEY_BLOCK_SIZE:
            case SqlParser.LANGUAGE:
            case SqlParser.LAST:
            case SqlParser.LEAVES:
            case SqlParser.LESS:
            case SqlParser.LEVEL:
            case SqlParser.LIST:
            case SqlParser.LOCAL:
            case SqlParser.LOGFILE:
            case SqlParser.LOGS:
            case SqlParser.MASTER:
            case SqlParser.MASTER_AUTO_POSITION:
            case SqlParser.MASTER_CONNECT_RETRY:
            case SqlParser.MASTER_DELAY:
            case SqlParser.MASTER_HEARTBEAT_PERIOD:
            case SqlParser.MASTER_HOST:
            case SqlParser.MASTER_LOG_FILE:
            case SqlParser.MASTER_LOG_POS:
            case SqlParser.MASTER_PASSWORD:
            case SqlParser.MASTER_PORT:
            case SqlParser.MASTER_RETRY_COUNT:
            case SqlParser.MASTER_SSL:
            case SqlParser.MASTER_SSL_CA:
            case SqlParser.MASTER_SSL_CAPATH:
            case SqlParser.MASTER_SSL_CERT:
            case SqlParser.MASTER_SSL_CIPHER:
            case SqlParser.MASTER_SSL_CRL:
            case SqlParser.MASTER_SSL_CRLPATH:
            case SqlParser.MASTER_SSL_KEY:
            case SqlParser.MASTER_TLS_VERSION:
            case SqlParser.MASTER_USER:
            case SqlParser.MAX_CONNECTIONS_PER_HOUR:
            case SqlParser.MAX_QUERIES_PER_HOUR:
            case SqlParser.MAX_ROWS:
            case SqlParser.MAX_SIZE:
            case SqlParser.MAX_UPDATES_PER_HOUR:
            case SqlParser.MAX_USER_CONNECTIONS:
            case SqlParser.MEDIUM:
            case SqlParser.MERGE:
            case SqlParser.MESSAGE_TEXT:
            case SqlParser.MID:
            case SqlParser.MIGRATE:
            case SqlParser.MIN_ROWS:
            case SqlParser.MODE:
            case SqlParser.MODIFY:
            case SqlParser.MUTEX:
            case SqlParser.MYSQL:
            case SqlParser.MYSQL_ERRNO:
            case SqlParser.NAME:
            case SqlParser.NAMES:
            case SqlParser.NCHAR:
            case SqlParser.NEVER:
            case SqlParser.NEXT:
            case SqlParser.NO:
            case SqlParser.NODEGROUP:
            case SqlParser.NONE:
            case SqlParser.OFFLINE:
            case SqlParser.OFFSET:
            case SqlParser.OJ:
            case SqlParser.OLD_PASSWORD:
            case SqlParser.ONE:
            case SqlParser.ONLINE:
            case SqlParser.ONLY:
            case SqlParser.OPEN:
            case SqlParser.OPTIMIZER_COSTS:
            case SqlParser.OPTIONS:
            case SqlParser.OWNER:
            case SqlParser.PACK_KEYS:
            case SqlParser.PAGE:
            case SqlParser.PARSER:
            case SqlParser.PARTIAL:
            case SqlParser.PARTITIONING:
            case SqlParser.PARTITIONS:
            case SqlParser.PASSWORD:
            case SqlParser.PHASE:
            case SqlParser.PLUGIN:
            case SqlParser.PLUGIN_DIR:
            case SqlParser.PLUGINS:
            case SqlParser.PORT:
            case SqlParser.PRECEDES:
            case SqlParser.PREPARE:
            case SqlParser.PRESERVE:
            case SqlParser.PREV:
            case SqlParser.PROCESSLIST:
            case SqlParser.PROFILE:
            case SqlParser.PROFILES:
            case SqlParser.PROXY:
            case SqlParser.QUERY:
            case SqlParser.QUICK:
            case SqlParser.REBUILD:
            case SqlParser.RECOVER:
            case SqlParser.REDO_BUFFER_SIZE:
            case SqlParser.REDUNDANT:
            case SqlParser.RELAY:
            case SqlParser.RELAY_LOG_FILE:
            case SqlParser.RELAY_LOG_POS:
            case SqlParser.RELAYLOG:
            case SqlParser.REMOVE:
            case SqlParser.REORGANIZE:
            case SqlParser.REPAIR:
            case SqlParser.REPLICATE_DO_DB:
            case SqlParser.REPLICATE_DO_TABLE:
            case SqlParser.REPLICATE_IGNORE_DB:
            case SqlParser.REPLICATE_IGNORE_TABLE:
            case SqlParser.REPLICATE_REWRITE_DB:
            case SqlParser.REPLICATE_WILD_DO_TABLE:
            case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
            case SqlParser.REPLICATION:
            case SqlParser.RESET:
            case SqlParser.RESUME:
            case SqlParser.RETURNED_SQLSTATE:
            case SqlParser.RETURNS:
            case SqlParser.ROLE:
            case SqlParser.ROLLBACK:
            case SqlParser.ROLLUP:
            case SqlParser.ROTATE:
            case SqlParser.ROW:
            case SqlParser.ROWS:
            case SqlParser.ROW_FORMAT:
            case SqlParser.SAVEPOINT:
            case SqlParser.SCHEDULE:
            case SqlParser.SECURITY:
            case SqlParser.SERVER:
            case SqlParser.SESSION:
            case SqlParser.SHARE:
            case SqlParser.SHARED:
            case SqlParser.SIGNED:
            case SqlParser.SIMPLE:
            case SqlParser.SLAVE:
            case SqlParser.SLOW:
            case SqlParser.SNAPSHOT:
            case SqlParser.SOCKET:
            case SqlParser.SOME:
            case SqlParser.SONAME:
            case SqlParser.SOUNDS:
            case SqlParser.SOURCE:
            case SqlParser.SQL_AFTER_GTIDS:
            case SqlParser.SQL_AFTER_MTS_GAPS:
            case SqlParser.SQL_BEFORE_GTIDS:
            case SqlParser.SQL_BUFFER_RESULT:
            case SqlParser.SQL_CACHE:
            case SqlParser.SQL_NO_CACHE:
            case SqlParser.SQL_THREAD:
            case SqlParser.START:
            case SqlParser.STARTS:
            case SqlParser.STATS_AUTO_RECALC:
            case SqlParser.STATS_PERSISTENT:
            case SqlParser.STATS_SAMPLE_PAGES:
            case SqlParser.STATUS:
            case SqlParser.STOP:
            case SqlParser.STORAGE:
            case SqlParser.STRING:
            case SqlParser.SUBCLASS_ORIGIN:
            case SqlParser.SUBJECT:
            case SqlParser.SUBPARTITION:
            case SqlParser.SUBPARTITIONS:
            case SqlParser.SUSPEND:
            case SqlParser.SWAPS:
            case SqlParser.SWITCHES:
            case SqlParser.TABLE_NAME:
            case SqlParser.TABLESPACE:
            case SqlParser.TEMPORARY:
            case SqlParser.TEMPTABLE:
            case SqlParser.THAN:
            case SqlParser.TRADITIONAL:
            case SqlParser.TRANSACTION:
            case SqlParser.TRANSACTIONAL:
            case SqlParser.TRIGGERS:
            case SqlParser.TRUNCATE:
            case SqlParser.UNDEFINED:
            case SqlParser.UNDOFILE:
            case SqlParser.UNDO_BUFFER_SIZE:
            case SqlParser.UNINSTALL:
            case SqlParser.UNKNOWN:
            case SqlParser.UNTIL:
            case SqlParser.UPGRADE:
            case SqlParser.USER:
            case SqlParser.USE_FRM:
            case SqlParser.USER_RESOURCES:
            case SqlParser.VALIDATION:
            case SqlParser.VALUE:
            case SqlParser.VARIABLES:
            case SqlParser.VIEW:
            case SqlParser.VISIBLE:
            case SqlParser.WAIT:
            case SqlParser.WARNINGS:
            case SqlParser.WITHOUT:
            case SqlParser.WORK:
            case SqlParser.WRAPPER:
            case SqlParser.X509:
            case SqlParser.XA:
            case SqlParser.XML:
            case SqlParser.INTERNAL:
            case SqlParser.QUARTER:
            case SqlParser.MONTH:
            case SqlParser.DAY:
            case SqlParser.HOUR:
            case SqlParser.MINUTE:
            case SqlParser.WEEK:
            case SqlParser.SECOND:
            case SqlParser.MICROSECOND:
            case SqlParser.TABLES:
            case SqlParser.ROUTINE:
            case SqlParser.EXECUTE:
            case SqlParser.FILE:
            case SqlParser.PROCESS:
            case SqlParser.RELOAD:
            case SqlParser.SHUTDOWN:
            case SqlParser.SUPER:
            case SqlParser.PRIVILEGES:
            case SqlParser.AUDIT_ADMIN:
            case SqlParser.BACKUP_ADMIN:
            case SqlParser.BINLOG_ADMIN:
            case SqlParser.BINLOG_ENCRYPTION_ADMIN:
            case SqlParser.CLONE_ADMIN:
            case SqlParser.CONNECTION_ADMIN:
            case SqlParser.ENCRYPTION_KEY_ADMIN:
            case SqlParser.FIREWALL_ADMIN:
            case SqlParser.FIREWALL_USER:
            case SqlParser.GROUP_REPLICATION_ADMIN:
            case SqlParser.INNODB_REDO_LOG_ARCHIVE:
            case SqlParser.NDB_STORED_USER:
            case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
            case SqlParser.REPLICATION_APPLIER:
            case SqlParser.REPLICATION_SLAVE_ADMIN:
            case SqlParser.RESOURCE_GROUP_ADMIN:
            case SqlParser.RESOURCE_GROUP_USER:
            case SqlParser.ROLE_ADMIN:
            case SqlParser.SESSION_VARIABLES_ADMIN:
            case SqlParser.SET_USER_ID:
            case SqlParser.SHOW_ROUTINE:
            case SqlParser.SYSTEM_VARIABLES_ADMIN:
            case SqlParser.TABLE_ENCRYPTION_ADMIN:
            case SqlParser.VERSION_TOKEN_ADMIN:
            case SqlParser.XA_RECOVER_ADMIN:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.ARCHIVE:
            case SqlParser.BLACKHOLE:
            case SqlParser.CSV:
            case SqlParser.FEDERATED:
            case SqlParser.INNODB:
            case SqlParser.MEMORY:
            case SqlParser.MRG_MYISAM:
            case SqlParser.MYISAM:
            case SqlParser.NDB:
            case SqlParser.NDBCLUSTER:
            case SqlParser.PERFORMANCE_SCHEMA:
            case SqlParser.TOKUDB:
            case SqlParser.REPEATABLE:
            case SqlParser.COMMITTED:
            case SqlParser.UNCOMMITTED:
            case SqlParser.SERIALIZABLE:
            case SqlParser.GEOMETRYCOLLECTION:
            case SqlParser.LINESTRING:
            case SqlParser.MULTILINESTRING:
            case SqlParser.MULTIPOINT:
            case SqlParser.MULTIPOLYGON:
            case SqlParser.POINT:
            case SqlParser.POLYGON:
            case SqlParser.ABS:
            case SqlParser.ACOS:
            case SqlParser.ADDDATE:
            case SqlParser.ADDTIME:
            case SqlParser.AES_DECRYPT:
            case SqlParser.AES_ENCRYPT:
            case SqlParser.AREA:
            case SqlParser.ASBINARY:
            case SqlParser.ASIN:
            case SqlParser.ASTEXT:
            case SqlParser.ASWKB:
            case SqlParser.ASWKT:
            case SqlParser.ASYMMETRIC_DECRYPT:
            case SqlParser.ASYMMETRIC_DERIVE:
            case SqlParser.ASYMMETRIC_ENCRYPT:
            case SqlParser.ASYMMETRIC_SIGN:
            case SqlParser.ASYMMETRIC_VERIFY:
            case SqlParser.ATAN:
            case SqlParser.ATAN2:
            case SqlParser.BENCHMARK:
            case SqlParser.BIN:
            case SqlParser.BIT_COUNT:
            case SqlParser.BIT_LENGTH:
            case SqlParser.BUFFER:
            case SqlParser.CATALOG_NAME:
            case SqlParser.CEIL:
            case SqlParser.CEILING:
            case SqlParser.CENTROID:
            case SqlParser.CHARACTER_LENGTH:
            case SqlParser.CHARSET:
            case SqlParser.CHAR_LENGTH:
            case SqlParser.COERCIBILITY:
            case SqlParser.COLLATION:
            case SqlParser.COMPRESS:
            case SqlParser.CONCAT:
            case SqlParser.CONCAT_WS:
            case SqlParser.CONNECTION_ID:
            case SqlParser.CONV:
            case SqlParser.CONVERT_TZ:
            case SqlParser.COS:
            case SqlParser.COT:
            case SqlParser.CRC32:
            case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
            case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
            case SqlParser.CREATE_DH_PARAMETERS:
            case SqlParser.CREATE_DIGEST:
            case SqlParser.CROSSES:
            case SqlParser.DATEDIFF:
            case SqlParser.DATE_FORMAT:
            case SqlParser.DAYNAME:
            case SqlParser.DAYOFMONTH:
            case SqlParser.DAYOFWEEK:
            case SqlParser.DAYOFYEAR:
            case SqlParser.DECODE:
            case SqlParser.DEGREES:
            case SqlParser.DES_DECRYPT:
            case SqlParser.DES_ENCRYPT:
            case SqlParser.DIMENSION:
            case SqlParser.DISJOINT:
            case SqlParser.ELT:
            case SqlParser.ENCODE:
            case SqlParser.ENCRYPT:
            case SqlParser.ENDPOINT:
            case SqlParser.ENVELOPE:
            case SqlParser.EQUALS:
            case SqlParser.EXP:
            case SqlParser.EXPORT_SET:
            case SqlParser.EXTERIORRING:
            case SqlParser.EXTRACTVALUE:
            case SqlParser.FIELD:
            case SqlParser.FIND_IN_SET:
            case SqlParser.FLOOR:
            case SqlParser.FORMAT:
            case SqlParser.FOUND_ROWS:
            case SqlParser.FROM_BASE64:
            case SqlParser.FROM_DAYS:
            case SqlParser.FROM_UNIXTIME:
            case SqlParser.GEOMCOLLFROMTEXT:
            case SqlParser.GEOMCOLLFROMWKB:
            case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.GEOMETRYFROMTEXT:
            case SqlParser.GEOMETRYFROMWKB:
            case SqlParser.GEOMETRYN:
            case SqlParser.GEOMETRYTYPE:
            case SqlParser.GEOMFROMTEXT:
            case SqlParser.GEOMFROMWKB:
            case SqlParser.GET_FORMAT:
            case SqlParser.GET_LOCK:
            case SqlParser.GLENGTH:
            case SqlParser.GREATEST:
            case SqlParser.GTID_SUBSET:
            case SqlParser.GTID_SUBTRACT:
            case SqlParser.HEX:
            case SqlParser.IFNULL:
            case SqlParser.INET6_ATON:
            case SqlParser.INET6_NTOA:
            case SqlParser.INET_ATON:
            case SqlParser.INET_NTOA:
            case SqlParser.INSTR:
            case SqlParser.INTERIORRINGN:
            case SqlParser.INTERSECTS:
            case SqlParser.ISCLOSED:
            case SqlParser.ISEMPTY:
            case SqlParser.ISNULL:
            case SqlParser.ISSIMPLE:
            case SqlParser.IS_FREE_LOCK:
            case SqlParser.IS_IPV4:
            case SqlParser.IS_IPV4_COMPAT:
            case SqlParser.IS_IPV4_MAPPED:
            case SqlParser.IS_IPV6:
            case SqlParser.IS_USED_LOCK:
            case SqlParser.LAST_INSERT_ID:
            case SqlParser.LCASE:
            case SqlParser.LEAST:
            case SqlParser.LENGTH:
            case SqlParser.LINEFROMTEXT:
            case SqlParser.LINEFROMWKB:
            case SqlParser.LINESTRINGFROMTEXT:
            case SqlParser.LINESTRINGFROMWKB:
            case SqlParser.LN:
            case SqlParser.LOAD_FILE:
            case SqlParser.LOCATE:
            case SqlParser.LOG:
            case SqlParser.LOG10:
            case SqlParser.LOG2:
            case SqlParser.LOWER:
            case SqlParser.LPAD:
            case SqlParser.LTRIM:
            case SqlParser.MAKEDATE:
            case SqlParser.MAKETIME:
            case SqlParser.MAKE_SET:
            case SqlParser.MASTER_POS_WAIT:
            case SqlParser.MBRCONTAINS:
            case SqlParser.MBRDISJOINT:
            case SqlParser.MBREQUAL:
            case SqlParser.MBRINTERSECTS:
            case SqlParser.MBROVERLAPS:
            case SqlParser.MBRTOUCHES:
            case SqlParser.MBRWITHIN:
            case SqlParser.MD5:
            case SqlParser.MLINEFROMTEXT:
            case SqlParser.MLINEFROMWKB:
            case SqlParser.MONTHNAME:
            case SqlParser.MPOINTFROMTEXT:
            case SqlParser.MPOINTFROMWKB:
            case SqlParser.MPOLYFROMTEXT:
            case SqlParser.MPOLYFROMWKB:
            case SqlParser.MULTILINESTRINGFROMTEXT:
            case SqlParser.MULTILINESTRINGFROMWKB:
            case SqlParser.MULTIPOINTFROMTEXT:
            case SqlParser.MULTIPOINTFROMWKB:
            case SqlParser.MULTIPOLYGONFROMTEXT:
            case SqlParser.MULTIPOLYGONFROMWKB:
            case SqlParser.NAME_CONST:
            case SqlParser.NULLIF:
            case SqlParser.NUMGEOMETRIES:
            case SqlParser.NUMINTERIORRINGS:
            case SqlParser.NUMPOINTS:
            case SqlParser.OCT:
            case SqlParser.OCTET_LENGTH:
            case SqlParser.ORD:
            case SqlParser.OVERLAPS:
            case SqlParser.PERIOD_ADD:
            case SqlParser.PERIOD_DIFF:
            case SqlParser.PI:
            case SqlParser.POINTFROMTEXT:
            case SqlParser.POINTFROMWKB:
            case SqlParser.POINTN:
            case SqlParser.POLYFROMTEXT:
            case SqlParser.POLYFROMWKB:
            case SqlParser.POLYGONFROMTEXT:
            case SqlParser.POLYGONFROMWKB:
            case SqlParser.POW:
            case SqlParser.POWER:
            case SqlParser.QUOTE:
            case SqlParser.RADIANS:
            case SqlParser.RAND:
            case SqlParser.RANDOM_BYTES:
            case SqlParser.RELEASE_LOCK:
            case SqlParser.REVERSE:
            case SqlParser.ROUND:
            case SqlParser.ROW_COUNT:
            case SqlParser.RPAD:
            case SqlParser.RTRIM:
            case SqlParser.SEC_TO_TIME:
            case SqlParser.SESSION_USER:
            case SqlParser.SHA:
            case SqlParser.SHA1:
            case SqlParser.SHA2:
            case SqlParser.SCHEMA_NAME:
            case SqlParser.SIGN:
            case SqlParser.SIN:
            case SqlParser.SLEEP:
            case SqlParser.SOUNDEX:
            case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
            case SqlParser.SQRT:
            case SqlParser.SRID:
            case SqlParser.STARTPOINT:
            case SqlParser.STRCMP:
            case SqlParser.STR_TO_DATE:
            case SqlParser.ST_AREA:
            case SqlParser.ST_ASBINARY:
            case SqlParser.ST_ASTEXT:
            case SqlParser.ST_ASWKB:
            case SqlParser.ST_ASWKT:
            case SqlParser.ST_BUFFER:
            case SqlParser.ST_CENTROID:
            case SqlParser.ST_CONTAINS:
            case SqlParser.ST_CROSSES:
            case SqlParser.ST_DIFFERENCE:
            case SqlParser.ST_DIMENSION:
            case SqlParser.ST_DISJOINT:
            case SqlParser.ST_DISTANCE:
            case SqlParser.ST_ENDPOINT:
            case SqlParser.ST_ENVELOPE:
            case SqlParser.ST_EQUALS:
            case SqlParser.ST_EXTERIORRING:
            case SqlParser.ST_GEOMCOLLFROMTEXT:
            case SqlParser.ST_GEOMCOLLFROMTXT:
            case SqlParser.ST_GEOMCOLLFROMWKB:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.ST_GEOMETRYFROMTEXT:
            case SqlParser.ST_GEOMETRYFROMWKB:
            case SqlParser.ST_GEOMETRYN:
            case SqlParser.ST_GEOMETRYTYPE:
            case SqlParser.ST_GEOMFROMTEXT:
            case SqlParser.ST_GEOMFROMWKB:
            case SqlParser.ST_INTERIORRINGN:
            case SqlParser.ST_INTERSECTION:
            case SqlParser.ST_INTERSECTS:
            case SqlParser.ST_ISCLOSED:
            case SqlParser.ST_ISEMPTY:
            case SqlParser.ST_ISSIMPLE:
            case SqlParser.ST_LINEFROMTEXT:
            case SqlParser.ST_LINEFROMWKB:
            case SqlParser.ST_LINESTRINGFROMTEXT:
            case SqlParser.ST_LINESTRINGFROMWKB:
            case SqlParser.ST_NUMGEOMETRIES:
            case SqlParser.ST_NUMINTERIORRING:
            case SqlParser.ST_NUMINTERIORRINGS:
            case SqlParser.ST_NUMPOINTS:
            case SqlParser.ST_OVERLAPS:
            case SqlParser.ST_POINTFROMTEXT:
            case SqlParser.ST_POINTFROMWKB:
            case SqlParser.ST_POINTN:
            case SqlParser.ST_POLYFROMTEXT:
            case SqlParser.ST_POLYFROMWKB:
            case SqlParser.ST_POLYGONFROMTEXT:
            case SqlParser.ST_POLYGONFROMWKB:
            case SqlParser.ST_SRID:
            case SqlParser.ST_STARTPOINT:
            case SqlParser.ST_SYMDIFFERENCE:
            case SqlParser.ST_TOUCHES:
            case SqlParser.ST_UNION:
            case SqlParser.ST_WITHIN:
            case SqlParser.ST_X:
            case SqlParser.ST_Y:
            case SqlParser.SUBDATE:
            case SqlParser.SUBSTRING_INDEX:
            case SqlParser.SUBTIME:
            case SqlParser.SYSTEM_USER:
            case SqlParser.TAN:
            case SqlParser.TIMEDIFF:
            case SqlParser.TIMESTAMPADD:
            case SqlParser.TIMESTAMPDIFF:
            case SqlParser.TIME_FORMAT:
            case SqlParser.TIME_TO_SEC:
            case SqlParser.TOUCHES:
            case SqlParser.TO_BASE64:
            case SqlParser.TO_DAYS:
            case SqlParser.TO_SECONDS:
            case SqlParser.UCASE:
            case SqlParser.UNCOMPRESS:
            case SqlParser.UNCOMPRESSED_LENGTH:
            case SqlParser.UNHEX:
            case SqlParser.UNIX_TIMESTAMP:
            case SqlParser.UPDATEXML:
            case SqlParser.UPPER:
            case SqlParser.UUID:
            case SqlParser.UUID_SHORT:
            case SqlParser.VALIDATE_PASSWORD_STRENGTH:
            case SqlParser.VERSION:
            case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
            case SqlParser.WEEKDAY:
            case SqlParser.WEEKOFYEAR:
            case SqlParser.WEIGHT_STRING:
            case SqlParser.WITHIN:
            case SqlParser.YEARWEEK:
            case SqlParser.Y_FUNCTION:
            case SqlParser.X_FUNCTION:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
            case SqlParser.ID:
            case SqlParser.REVERSE_QUOTE_ID:
                this.state = 2615;
                this.uidList();
                break;
            case SqlParser.ALL:
                this.state = 2616;
                this.match(SqlParser.ALL);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;

        case 45:
            localctx = new AlterByRemovePartitioningContext(this, localctx);
            this.enterOuterAlt(localctx, 45);
            this.state = 2619;
            this.match(SqlParser.REMOVE);
            this.state = 2620;
            this.match(SqlParser.PARTITIONING);
            break;

        case 46:
            localctx = new AlterByUpgradePartitioningContext(this, localctx);
            this.enterOuterAlt(localctx, 46);
            this.state = 2621;
            this.match(SqlParser.UPGRADE);
            this.state = 2622;
            this.match(SqlParser.PARTITIONING);
            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 DropDatabaseContext(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_dropDatabase;
    this.dbFormat = null; // Token
    return this;
}

DropDatabaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DropDatabaseContext.prototype.constructor = DropDatabaseContext;

DropDatabaseContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

DropDatabaseContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

DropDatabaseContext.prototype.DATABASE = function() {
    return this.getToken(SqlParser.DATABASE, 0);
};

DropDatabaseContext.prototype.SCHEMA = function() {
    return this.getToken(SqlParser.SCHEMA, 0);
};

DropDatabaseContext.prototype.ifExists = function() {
    return this.getTypedRuleContext(IfExistsContext,0);
};

DropDatabaseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDropDatabase(this);
	}
};

DropDatabaseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDropDatabase(this);
	}
};

DropDatabaseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDropDatabase(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DropDatabaseContext = DropDatabaseContext;

SqlParser.prototype.dropDatabase = function() {

    var localctx = new DropDatabaseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 136, SqlParser.RULE_dropDatabase);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2625;
        this.match(SqlParser.DROP);
        this.state = 2626;
        localctx.dbFormat = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.DATABASE || _la===SqlParser.SCHEMA)) {
            localctx.dbFormat = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 2628;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IF) {
            this.state = 2627;
            this.ifExists();
        }

        this.state = 2630;
        this.uid();
    } 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 DropEventContext(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_dropEvent;
    return this;
}

DropEventContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DropEventContext.prototype.constructor = DropEventContext;

DropEventContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

DropEventContext.prototype.EVENT = function() {
    return this.getToken(SqlParser.EVENT, 0);
};

DropEventContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

DropEventContext.prototype.ifExists = function() {
    return this.getTypedRuleContext(IfExistsContext,0);
};

DropEventContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDropEvent(this);
	}
};

DropEventContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDropEvent(this);
	}
};

DropEventContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDropEvent(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DropEventContext = DropEventContext;

SqlParser.prototype.dropEvent = function() {

    var localctx = new DropEventContext(this, this._ctx, this.state);
    this.enterRule(localctx, 138, SqlParser.RULE_dropEvent);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2632;
        this.match(SqlParser.DROP);
        this.state = 2633;
        this.match(SqlParser.EVENT);
        this.state = 2635;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IF) {
            this.state = 2634;
            this.ifExists();
        }

        this.state = 2637;
        this.fullId();
    } 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 DropIndexContext(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_dropIndex;
    this.intimeAction = null; // Token
    this.algType = null; // Token
    this.lockType = null; // Token
    return this;
}

DropIndexContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DropIndexContext.prototype.constructor = DropIndexContext;

DropIndexContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

DropIndexContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

DropIndexContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

DropIndexContext.prototype.ON = function() {
    return this.getToken(SqlParser.ON, 0);
};

DropIndexContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

DropIndexContext.prototype.ALGORITHM = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.ALGORITHM);
    } else {
        return this.getToken(SqlParser.ALGORITHM, i);
    }
};


DropIndexContext.prototype.LOCK = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.LOCK);
    } else {
        return this.getToken(SqlParser.LOCK, i);
    }
};


DropIndexContext.prototype.ONLINE = function() {
    return this.getToken(SqlParser.ONLINE, 0);
};

DropIndexContext.prototype.OFFLINE = function() {
    return this.getToken(SqlParser.OFFLINE, 0);
};

DropIndexContext.prototype.DEFAULT = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.DEFAULT);
    } else {
        return this.getToken(SqlParser.DEFAULT, i);
    }
};


DropIndexContext.prototype.INPLACE = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.INPLACE);
    } else {
        return this.getToken(SqlParser.INPLACE, i);
    }
};


DropIndexContext.prototype.COPY = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COPY);
    } else {
        return this.getToken(SqlParser.COPY, i);
    }
};


DropIndexContext.prototype.NONE = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.NONE);
    } else {
        return this.getToken(SqlParser.NONE, i);
    }
};


DropIndexContext.prototype.SHARED = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.SHARED);
    } else {
        return this.getToken(SqlParser.SHARED, i);
    }
};


DropIndexContext.prototype.EXCLUSIVE = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EXCLUSIVE);
    } else {
        return this.getToken(SqlParser.EXCLUSIVE, i);
    }
};


DropIndexContext.prototype.EQUAL_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EQUAL_SYMBOL);
    } else {
        return this.getToken(SqlParser.EQUAL_SYMBOL, i);
    }
};


DropIndexContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDropIndex(this);
	}
};

DropIndexContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDropIndex(this);
	}
};

DropIndexContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDropIndex(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DropIndexContext = DropIndexContext;

SqlParser.prototype.dropIndex = function() {

    var localctx = new DropIndexContext(this, this._ctx, this.state);
    this.enterRule(localctx, 140, SqlParser.RULE_dropIndex);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2639;
        this.match(SqlParser.DROP);
        this.state = 2640;
        this.match(SqlParser.INDEX);
        this.state = 2642;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,336,this._ctx);
        if(la_===1) {
            this.state = 2641;
            localctx.intimeAction = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.OFFLINE || _la===SqlParser.ONLINE)) {
                localctx.intimeAction = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }

        }
        this.state = 2644;
        this.uid();
        this.state = 2645;
        this.match(SqlParser.ON);
        this.state = 2646;
        this.tableName();
        this.state = 2659;
        this._errHandler.sync(this);
        var _alt = this._interp.adaptivePredict(this._input,340,this._ctx)
        while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
            if(_alt===1) {
                this.state = 2657;
                this._errHandler.sync(this);
                switch(this._input.LA(1)) {
                case SqlParser.ALGORITHM:
                    this.state = 2647;
                    this.match(SqlParser.ALGORITHM);
                    this.state = 2649;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    if(_la===SqlParser.EQUAL_SYMBOL) {
                        this.state = 2648;
                        this.match(SqlParser.EQUAL_SYMBOL);
                    }

                    this.state = 2651;
                    localctx.algType = this._input.LT(1);
                    _la = this._input.LA(1);
                    if(!(_la===SqlParser.DEFAULT || _la===SqlParser.COPY || _la===SqlParser.INPLACE)) {
                        localctx.algType = this._errHandler.recoverInline(this);
                    }
                    else {
                    	this._errHandler.reportMatch(this);
                        this.consume();
                    }
                    break;
                case SqlParser.LOCK:
                    this.state = 2652;
                    this.match(SqlParser.LOCK);
                    this.state = 2654;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    if(_la===SqlParser.EQUAL_SYMBOL) {
                        this.state = 2653;
                        this.match(SqlParser.EQUAL_SYMBOL);
                    }

                    this.state = 2656;
                    localctx.lockType = this._input.LT(1);
                    _la = this._input.LA(1);
                    if(!(_la===SqlParser.DEFAULT || _la===SqlParser.EXCLUSIVE || _la===SqlParser.NONE || _la===SqlParser.SHARED)) {
                        localctx.lockType = this._errHandler.recoverInline(this);
                    }
                    else {
                    	this._errHandler.reportMatch(this);
                        this.consume();
                    }
                    break;
                default:
                    throw new antlr4.error.NoViableAltException(this);
                } 
            }
            this.state = 2661;
            this._errHandler.sync(this);
            _alt = this._interp.adaptivePredict(this._input,340,this._ctx);
        }

    } 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 DropLogfileGroupContext(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_dropLogfileGroup;
    return this;
}

DropLogfileGroupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DropLogfileGroupContext.prototype.constructor = DropLogfileGroupContext;

DropLogfileGroupContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

DropLogfileGroupContext.prototype.LOGFILE = function() {
    return this.getToken(SqlParser.LOGFILE, 0);
};

DropLogfileGroupContext.prototype.GROUP = function() {
    return this.getToken(SqlParser.GROUP, 0);
};

DropLogfileGroupContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

DropLogfileGroupContext.prototype.ENGINE = function() {
    return this.getToken(SqlParser.ENGINE, 0);
};

DropLogfileGroupContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

DropLogfileGroupContext.prototype.engineName = function() {
    return this.getTypedRuleContext(EngineNameContext,0);
};

DropLogfileGroupContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDropLogfileGroup(this);
	}
};

DropLogfileGroupContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDropLogfileGroup(this);
	}
};

DropLogfileGroupContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDropLogfileGroup(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DropLogfileGroupContext = DropLogfileGroupContext;

SqlParser.prototype.dropLogfileGroup = function() {

    var localctx = new DropLogfileGroupContext(this, this._ctx, this.state);
    this.enterRule(localctx, 142, SqlParser.RULE_dropLogfileGroup);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2662;
        this.match(SqlParser.DROP);
        this.state = 2663;
        this.match(SqlParser.LOGFILE);
        this.state = 2664;
        this.match(SqlParser.GROUP);
        this.state = 2665;
        this.uid();
        this.state = 2666;
        this.match(SqlParser.ENGINE);
        this.state = 2667;
        this.match(SqlParser.EQUAL_SYMBOL);
        this.state = 2668;
        this.engineName();
    } 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 DropProcedureContext(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_dropProcedure;
    return this;
}

DropProcedureContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DropProcedureContext.prototype.constructor = DropProcedureContext;

DropProcedureContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

DropProcedureContext.prototype.PROCEDURE = function() {
    return this.getToken(SqlParser.PROCEDURE, 0);
};

DropProcedureContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

DropProcedureContext.prototype.ifExists = function() {
    return this.getTypedRuleContext(IfExistsContext,0);
};

DropProcedureContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDropProcedure(this);
	}
};

DropProcedureContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDropProcedure(this);
	}
};

DropProcedureContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDropProcedure(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DropProcedureContext = DropProcedureContext;

SqlParser.prototype.dropProcedure = function() {

    var localctx = new DropProcedureContext(this, this._ctx, this.state);
    this.enterRule(localctx, 144, SqlParser.RULE_dropProcedure);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2670;
        this.match(SqlParser.DROP);
        this.state = 2671;
        this.match(SqlParser.PROCEDURE);
        this.state = 2673;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IF) {
            this.state = 2672;
            this.ifExists();
        }

        this.state = 2675;
        this.fullId();
    } 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 DropFunctionContext(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_dropFunction;
    return this;
}

DropFunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DropFunctionContext.prototype.constructor = DropFunctionContext;

DropFunctionContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

DropFunctionContext.prototype.FUNCTION = function() {
    return this.getToken(SqlParser.FUNCTION, 0);
};

DropFunctionContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

DropFunctionContext.prototype.ifExists = function() {
    return this.getTypedRuleContext(IfExistsContext,0);
};

DropFunctionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDropFunction(this);
	}
};

DropFunctionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDropFunction(this);
	}
};

DropFunctionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDropFunction(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DropFunctionContext = DropFunctionContext;

SqlParser.prototype.dropFunction = function() {

    var localctx = new DropFunctionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 146, SqlParser.RULE_dropFunction);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2677;
        this.match(SqlParser.DROP);
        this.state = 2678;
        this.match(SqlParser.FUNCTION);
        this.state = 2680;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IF) {
            this.state = 2679;
            this.ifExists();
        }

        this.state = 2682;
        this.fullId();
    } 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 DropServerContext(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_dropServer;
    return this;
}

DropServerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DropServerContext.prototype.constructor = DropServerContext;

DropServerContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

DropServerContext.prototype.SERVER = function() {
    return this.getToken(SqlParser.SERVER, 0);
};

DropServerContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

DropServerContext.prototype.ifExists = function() {
    return this.getTypedRuleContext(IfExistsContext,0);
};

DropServerContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDropServer(this);
	}
};

DropServerContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDropServer(this);
	}
};

DropServerContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDropServer(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DropServerContext = DropServerContext;

SqlParser.prototype.dropServer = function() {

    var localctx = new DropServerContext(this, this._ctx, this.state);
    this.enterRule(localctx, 148, SqlParser.RULE_dropServer);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2684;
        this.match(SqlParser.DROP);
        this.state = 2685;
        this.match(SqlParser.SERVER);
        this.state = 2687;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IF) {
            this.state = 2686;
            this.ifExists();
        }

        this.state = 2689;
        this.uid();
    } 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 DropTableContext(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_dropTable;
    this.dropType = null; // Token
    return this;
}

DropTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DropTableContext.prototype.constructor = DropTableContext;

DropTableContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

DropTableContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

DropTableContext.prototype.tables = function() {
    return this.getTypedRuleContext(TablesContext,0);
};

DropTableContext.prototype.TEMPORARY = function() {
    return this.getToken(SqlParser.TEMPORARY, 0);
};

DropTableContext.prototype.ifExists = function() {
    return this.getTypedRuleContext(IfExistsContext,0);
};

DropTableContext.prototype.RESTRICT = function() {
    return this.getToken(SqlParser.RESTRICT, 0);
};

DropTableContext.prototype.CASCADE = function() {
    return this.getToken(SqlParser.CASCADE, 0);
};

DropTableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDropTable(this);
	}
};

DropTableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDropTable(this);
	}
};

DropTableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDropTable(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DropTableContext = DropTableContext;

SqlParser.prototype.dropTable = function() {

    var localctx = new DropTableContext(this, this._ctx, this.state);
    this.enterRule(localctx, 150, SqlParser.RULE_dropTable);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2691;
        this.match(SqlParser.DROP);
        this.state = 2693;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.TEMPORARY) {
            this.state = 2692;
            this.match(SqlParser.TEMPORARY);
        }

        this.state = 2695;
        this.match(SqlParser.TABLE);
        this.state = 2697;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IF) {
            this.state = 2696;
            this.ifExists();
        }

        this.state = 2699;
        this.tables();
        this.state = 2701;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.CASCADE || _la===SqlParser.RESTRICT) {
            this.state = 2700;
            localctx.dropType = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.CASCADE || _la===SqlParser.RESTRICT)) {
                localctx.dropType = 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 DropTablespaceContext(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_dropTablespace;
    return this;
}

DropTablespaceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DropTablespaceContext.prototype.constructor = DropTablespaceContext;

DropTablespaceContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

DropTablespaceContext.prototype.TABLESPACE = function() {
    return this.getToken(SqlParser.TABLESPACE, 0);
};

DropTablespaceContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

DropTablespaceContext.prototype.ENGINE = function() {
    return this.getToken(SqlParser.ENGINE, 0);
};

DropTablespaceContext.prototype.engineName = function() {
    return this.getTypedRuleContext(EngineNameContext,0);
};

DropTablespaceContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

DropTablespaceContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDropTablespace(this);
	}
};

DropTablespaceContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDropTablespace(this);
	}
};

DropTablespaceContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDropTablespace(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DropTablespaceContext = DropTablespaceContext;

SqlParser.prototype.dropTablespace = function() {

    var localctx = new DropTablespaceContext(this, this._ctx, this.state);
    this.enterRule(localctx, 152, SqlParser.RULE_dropTablespace);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2703;
        this.match(SqlParser.DROP);
        this.state = 2704;
        this.match(SqlParser.TABLESPACE);
        this.state = 2705;
        this.uid();
        this.state = 2711;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ENGINE) {
            this.state = 2706;
            this.match(SqlParser.ENGINE);
            this.state = 2708;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.EQUAL_SYMBOL) {
                this.state = 2707;
                this.match(SqlParser.EQUAL_SYMBOL);
            }

            this.state = 2710;
            this.engineName();
        }

    } 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 DropTriggerContext(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_dropTrigger;
    return this;
}

DropTriggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DropTriggerContext.prototype.constructor = DropTriggerContext;

DropTriggerContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

DropTriggerContext.prototype.TRIGGER = function() {
    return this.getToken(SqlParser.TRIGGER, 0);
};

DropTriggerContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

DropTriggerContext.prototype.ifExists = function() {
    return this.getTypedRuleContext(IfExistsContext,0);
};

DropTriggerContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDropTrigger(this);
	}
};

DropTriggerContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDropTrigger(this);
	}
};

DropTriggerContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDropTrigger(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DropTriggerContext = DropTriggerContext;

SqlParser.prototype.dropTrigger = function() {

    var localctx = new DropTriggerContext(this, this._ctx, this.state);
    this.enterRule(localctx, 154, SqlParser.RULE_dropTrigger);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2713;
        this.match(SqlParser.DROP);
        this.state = 2714;
        this.match(SqlParser.TRIGGER);
        this.state = 2716;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IF) {
            this.state = 2715;
            this.ifExists();
        }

        this.state = 2718;
        this.fullId();
    } 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 DropViewContext(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_dropView;
    this.dropType = null; // Token
    return this;
}

DropViewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DropViewContext.prototype.constructor = DropViewContext;

DropViewContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

DropViewContext.prototype.VIEW = function() {
    return this.getToken(SqlParser.VIEW, 0);
};

DropViewContext.prototype.fullId = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(FullIdContext);
    } else {
        return this.getTypedRuleContext(FullIdContext,i);
    }
};

DropViewContext.prototype.ifExists = function() {
    return this.getTypedRuleContext(IfExistsContext,0);
};

DropViewContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


DropViewContext.prototype.RESTRICT = function() {
    return this.getToken(SqlParser.RESTRICT, 0);
};

DropViewContext.prototype.CASCADE = function() {
    return this.getToken(SqlParser.CASCADE, 0);
};

DropViewContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDropView(this);
	}
};

DropViewContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDropView(this);
	}
};

DropViewContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDropView(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DropViewContext = DropViewContext;

SqlParser.prototype.dropView = function() {

    var localctx = new DropViewContext(this, this._ctx, this.state);
    this.enterRule(localctx, 156, SqlParser.RULE_dropView);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2720;
        this.match(SqlParser.DROP);
        this.state = 2721;
        this.match(SqlParser.VIEW);
        this.state = 2723;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IF) {
            this.state = 2722;
            this.ifExists();
        }

        this.state = 2725;
        this.fullId();
        this.state = 2730;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 2726;
            this.match(SqlParser.COMMA);
            this.state = 2727;
            this.fullId();
            this.state = 2732;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 2734;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.CASCADE || _la===SqlParser.RESTRICT) {
            this.state = 2733;
            localctx.dropType = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.CASCADE || _la===SqlParser.RESTRICT)) {
                localctx.dropType = 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 RenameTableContext(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_renameTable;
    return this;
}

RenameTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RenameTableContext.prototype.constructor = RenameTableContext;

RenameTableContext.prototype.RENAME = function() {
    return this.getToken(SqlParser.RENAME, 0);
};

RenameTableContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

RenameTableContext.prototype.renameTableClause = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(RenameTableClauseContext);
    } else {
        return this.getTypedRuleContext(RenameTableClauseContext,i);
    }
};

RenameTableContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


RenameTableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRenameTable(this);
	}
};

RenameTableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRenameTable(this);
	}
};

RenameTableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRenameTable(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.RenameTableContext = RenameTableContext;

SqlParser.prototype.renameTable = function() {

    var localctx = new RenameTableContext(this, this._ctx, this.state);
    this.enterRule(localctx, 158, SqlParser.RULE_renameTable);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2736;
        this.match(SqlParser.RENAME);
        this.state = 2737;
        this.match(SqlParser.TABLE);
        this.state = 2738;
        this.renameTableClause();
        this.state = 2743;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 2739;
            this.match(SqlParser.COMMA);
            this.state = 2740;
            this.renameTableClause();
            this.state = 2745;
            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 RenameTableClauseContext(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_renameTableClause;
    return this;
}

RenameTableClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RenameTableClauseContext.prototype.constructor = RenameTableClauseContext;

RenameTableClauseContext.prototype.tableName = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TableNameContext);
    } else {
        return this.getTypedRuleContext(TableNameContext,i);
    }
};

RenameTableClauseContext.prototype.TO = function() {
    return this.getToken(SqlParser.TO, 0);
};

RenameTableClauseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRenameTableClause(this);
	}
};

RenameTableClauseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRenameTableClause(this);
	}
};

RenameTableClauseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRenameTableClause(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.RenameTableClauseContext = RenameTableClauseContext;

SqlParser.prototype.renameTableClause = function() {

    var localctx = new RenameTableClauseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 160, SqlParser.RULE_renameTableClause);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2746;
        this.tableName();
        this.state = 2747;
        this.match(SqlParser.TO);
        this.state = 2748;
        this.tableName();
    } 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 TruncateTableContext(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_truncateTable;
    return this;
}

TruncateTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TruncateTableContext.prototype.constructor = TruncateTableContext;

TruncateTableContext.prototype.TRUNCATE = function() {
    return this.getToken(SqlParser.TRUNCATE, 0);
};

TruncateTableContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

TruncateTableContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

TruncateTableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTruncateTable(this);
	}
};

TruncateTableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTruncateTable(this);
	}
};

TruncateTableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTruncateTable(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.TruncateTableContext = TruncateTableContext;

SqlParser.prototype.truncateTable = function() {

    var localctx = new TruncateTableContext(this, this._ctx, this.state);
    this.enterRule(localctx, 162, SqlParser.RULE_truncateTable);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2750;
        this.match(SqlParser.TRUNCATE);
        this.state = 2752;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.TABLE) {
            this.state = 2751;
            this.match(SqlParser.TABLE);
        }

        this.state = 2754;
        this.tableName();
    } 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 CallStatementContext(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_callStatement;
    return this;
}

CallStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CallStatementContext.prototype.constructor = CallStatementContext;

CallStatementContext.prototype.CALL = function() {
    return this.getToken(SqlParser.CALL, 0);
};

CallStatementContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

CallStatementContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

CallStatementContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

CallStatementContext.prototype.constants = function() {
    return this.getTypedRuleContext(ConstantsContext,0);
};

CallStatementContext.prototype.expressions = function() {
    return this.getTypedRuleContext(ExpressionsContext,0);
};

CallStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCallStatement(this);
	}
};

CallStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCallStatement(this);
	}
};

CallStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCallStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CallStatementContext = CallStatementContext;

SqlParser.prototype.callStatement = function() {

    var localctx = new CallStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 164, SqlParser.RULE_callStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2756;
        this.match(SqlParser.CALL);
        this.state = 2757;
        this.fullId();
        this.state = 2764;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,356,this._ctx);
        if(la_===1) {
            this.state = 2758;
            this.match(SqlParser.LR_BRACKET);
            this.state = 2761;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,355,this._ctx);
            if(la_===1) {
                this.state = 2759;
                this.constants();

            } else if(la_===2) {
                this.state = 2760;
                this.expressions();

            }
            this.state = 2763;
            this.match(SqlParser.RR_BRACKET);

        }
    } 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 DeleteStatementContext(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_deleteStatement;
    return this;
}

DeleteStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DeleteStatementContext.prototype.constructor = DeleteStatementContext;

DeleteStatementContext.prototype.singleDeleteStatement = function() {
    return this.getTypedRuleContext(SingleDeleteStatementContext,0);
};

DeleteStatementContext.prototype.multipleDeleteStatement = function() {
    return this.getTypedRuleContext(MultipleDeleteStatementContext,0);
};

DeleteStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDeleteStatement(this);
	}
};

DeleteStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDeleteStatement(this);
	}
};

DeleteStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDeleteStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DeleteStatementContext = DeleteStatementContext;

SqlParser.prototype.deleteStatement = function() {

    var localctx = new DeleteStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 166, SqlParser.RULE_deleteStatement);
    try {
        this.state = 2768;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,357,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 2766;
            this.singleDeleteStatement();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 2767;
            this.multipleDeleteStatement();
            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 DoStatementContext(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_doStatement;
    return this;
}

DoStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DoStatementContext.prototype.constructor = DoStatementContext;

DoStatementContext.prototype.DO = function() {
    return this.getToken(SqlParser.DO, 0);
};

DoStatementContext.prototype.expressions = function() {
    return this.getTypedRuleContext(ExpressionsContext,0);
};

DoStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDoStatement(this);
	}
};

DoStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDoStatement(this);
	}
};

DoStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDoStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DoStatementContext = DoStatementContext;

SqlParser.prototype.doStatement = function() {

    var localctx = new DoStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 168, SqlParser.RULE_doStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2770;
        this.match(SqlParser.DO);
        this.state = 2771;
        this.expressions();
    } 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 HandlerStatementContext(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_handlerStatement;
    return this;
}

HandlerStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
HandlerStatementContext.prototype.constructor = HandlerStatementContext;

HandlerStatementContext.prototype.handlerOpenStatement = function() {
    return this.getTypedRuleContext(HandlerOpenStatementContext,0);
};

HandlerStatementContext.prototype.handlerReadIndexStatement = function() {
    return this.getTypedRuleContext(HandlerReadIndexStatementContext,0);
};

HandlerStatementContext.prototype.handlerReadStatement = function() {
    return this.getTypedRuleContext(HandlerReadStatementContext,0);
};

HandlerStatementContext.prototype.handlerCloseStatement = function() {
    return this.getTypedRuleContext(HandlerCloseStatementContext,0);
};

HandlerStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterHandlerStatement(this);
	}
};

HandlerStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitHandlerStatement(this);
	}
};

HandlerStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitHandlerStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.HandlerStatementContext = HandlerStatementContext;

SqlParser.prototype.handlerStatement = function() {

    var localctx = new HandlerStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 170, SqlParser.RULE_handlerStatement);
    try {
        this.state = 2777;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,358,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 2773;
            this.handlerOpenStatement();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 2774;
            this.handlerReadIndexStatement();
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 2775;
            this.handlerReadStatement();
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 2776;
            this.handlerCloseStatement();
            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 InsertStatementContext(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_insertStatement;
    this.priority = null; // Token
    this.partitions = null; // UidListContext
    this.columns = null; // UidListContext
    this.setFirst = null; // UpdatedElementContext
    this._updatedElement = null; // UpdatedElementContext
    this.setElements = []; // of UpdatedElementContexts
    this.duplicatedFirst = null; // UpdatedElementContext
    this.duplicatedElements = []; // of UpdatedElementContexts
    return this;
}

InsertStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
InsertStatementContext.prototype.constructor = InsertStatementContext;

InsertStatementContext.prototype.INSERT = function() {
    return this.getToken(SqlParser.INSERT, 0);
};

InsertStatementContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

InsertStatementContext.prototype.insertStatementValue = function() {
    return this.getTypedRuleContext(InsertStatementValueContext,0);
};

InsertStatementContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

InsertStatementContext.prototype.IGNORE = function() {
    return this.getToken(SqlParser.IGNORE, 0);
};

InsertStatementContext.prototype.INTO = function() {
    return this.getToken(SqlParser.INTO, 0);
};

InsertStatementContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

InsertStatementContext.prototype.LR_BRACKET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.LR_BRACKET);
    } else {
        return this.getToken(SqlParser.LR_BRACKET, i);
    }
};


InsertStatementContext.prototype.RR_BRACKET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.RR_BRACKET);
    } else {
        return this.getToken(SqlParser.RR_BRACKET, i);
    }
};


InsertStatementContext.prototype.updatedElement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UpdatedElementContext);
    } else {
        return this.getTypedRuleContext(UpdatedElementContext,i);
    }
};

InsertStatementContext.prototype.ON = function() {
    return this.getToken(SqlParser.ON, 0);
};

InsertStatementContext.prototype.DUPLICATE = function() {
    return this.getToken(SqlParser.DUPLICATE, 0);
};

InsertStatementContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

InsertStatementContext.prototype.UPDATE = function() {
    return this.getToken(SqlParser.UPDATE, 0);
};

InsertStatementContext.prototype.LOW_PRIORITY = function() {
    return this.getToken(SqlParser.LOW_PRIORITY, 0);
};

InsertStatementContext.prototype.DELAYED = function() {
    return this.getToken(SqlParser.DELAYED, 0);
};

InsertStatementContext.prototype.HIGH_PRIORITY = function() {
    return this.getToken(SqlParser.HIGH_PRIORITY, 0);
};

InsertStatementContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


InsertStatementContext.prototype.uidList = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidListContext);
    } else {
        return this.getTypedRuleContext(UidListContext,i);
    }
};

InsertStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterInsertStatement(this);
	}
};

InsertStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitInsertStatement(this);
	}
};

InsertStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitInsertStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.InsertStatementContext = InsertStatementContext;

SqlParser.prototype.insertStatement = function() {

    var localctx = new InsertStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 172, SqlParser.RULE_insertStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2779;
        this.match(SqlParser.INSERT);
        this.state = 2781;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.DELAYED || _la===SqlParser.HIGH_PRIORITY || _la===SqlParser.LOW_PRIORITY) {
            this.state = 2780;
            localctx.priority = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DELAYED || _la===SqlParser.HIGH_PRIORITY || _la===SqlParser.LOW_PRIORITY)) {
                localctx.priority = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 2784;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IGNORE) {
            this.state = 2783;
            this.match(SqlParser.IGNORE);
        }

        this.state = 2787;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.INTO) {
            this.state = 2786;
            this.match(SqlParser.INTO);
        }

        this.state = 2789;
        this.tableName();
        this.state = 2796;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.PARTITION) {
            this.state = 2790;
            this.match(SqlParser.PARTITION);
            this.state = 2791;
            this.match(SqlParser.LR_BRACKET);
            this.state = 2793;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                this.state = 2792;
                localctx.partitions = this.uidList();
            }

            this.state = 2795;
            this.match(SqlParser.RR_BRACKET);
        }

        this.state = 2814;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.SELECT:
        case SqlParser.VALUES:
        case SqlParser.VALUE:
        case SqlParser.LR_BRACKET:
            this.state = 2802;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,364,this._ctx);
            if(la_===1) {
                this.state = 2798;
                this.match(SqlParser.LR_BRACKET);
                this.state = 2799;
                localctx.columns = this.uidList();
                this.state = 2800;
                this.match(SqlParser.RR_BRACKET);

            }
            this.state = 2804;
            this.insertStatementValue();
            break;
        case SqlParser.SET:
            this.state = 2805;
            this.match(SqlParser.SET);
            this.state = 2806;
            localctx.setFirst = this.updatedElement();
            this.state = 2811;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 2807;
                this.match(SqlParser.COMMA);
                this.state = 2808;
                localctx._updatedElement = this.updatedElement();
                localctx.setElements.push(localctx._updatedElement);
                this.state = 2813;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;
        default:
            throw new antlr4.error.NoViableAltException(this);
        }
        this.state = 2828;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ON) {
            this.state = 2816;
            this.match(SqlParser.ON);
            this.state = 2817;
            this.match(SqlParser.DUPLICATE);
            this.state = 2818;
            this.match(SqlParser.KEY);
            this.state = 2819;
            this.match(SqlParser.UPDATE);
            this.state = 2820;
            localctx.duplicatedFirst = this.updatedElement();
            this.state = 2825;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 2821;
                this.match(SqlParser.COMMA);
                this.state = 2822;
                localctx._updatedElement = this.updatedElement();
                localctx.duplicatedElements.push(localctx._updatedElement);
                this.state = 2827;
                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 LoadDataStatementContext(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_loadDataStatement;
    this.priority = null; // Token
    this.filename = null; // Token
    this.violation = null; // Token
    this.charset = null; // CharsetNameContext
    this.fieldsFormat = null; // Token
    this.linesFormat = null; // Token
    return this;
}

LoadDataStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LoadDataStatementContext.prototype.constructor = LoadDataStatementContext;

LoadDataStatementContext.prototype.LOAD = function() {
    return this.getToken(SqlParser.LOAD, 0);
};

LoadDataStatementContext.prototype.DATA = function() {
    return this.getToken(SqlParser.DATA, 0);
};

LoadDataStatementContext.prototype.INFILE = function() {
    return this.getToken(SqlParser.INFILE, 0);
};

LoadDataStatementContext.prototype.INTO = function() {
    return this.getToken(SqlParser.INTO, 0);
};

LoadDataStatementContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

LoadDataStatementContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

LoadDataStatementContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

LoadDataStatementContext.prototype.LOCAL = function() {
    return this.getToken(SqlParser.LOCAL, 0);
};

LoadDataStatementContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

LoadDataStatementContext.prototype.LR_BRACKET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.LR_BRACKET);
    } else {
        return this.getToken(SqlParser.LR_BRACKET, i);
    }
};


LoadDataStatementContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

LoadDataStatementContext.prototype.RR_BRACKET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.RR_BRACKET);
    } else {
        return this.getToken(SqlParser.RR_BRACKET, i);
    }
};


LoadDataStatementContext.prototype.CHARACTER = function() {
    return this.getToken(SqlParser.CHARACTER, 0);
};

LoadDataStatementContext.prototype.SET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.SET);
    } else {
        return this.getToken(SqlParser.SET, i);
    }
};


LoadDataStatementContext.prototype.LINES = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.LINES);
    } else {
        return this.getToken(SqlParser.LINES, i);
    }
};


LoadDataStatementContext.prototype.IGNORE = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.IGNORE);
    } else {
        return this.getToken(SqlParser.IGNORE, i);
    }
};


LoadDataStatementContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

LoadDataStatementContext.prototype.assignmentField = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(AssignmentFieldContext);
    } else {
        return this.getTypedRuleContext(AssignmentFieldContext,i);
    }
};

LoadDataStatementContext.prototype.updatedElement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UpdatedElementContext);
    } else {
        return this.getTypedRuleContext(UpdatedElementContext,i);
    }
};

LoadDataStatementContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};

LoadDataStatementContext.prototype.LOW_PRIORITY = function() {
    return this.getToken(SqlParser.LOW_PRIORITY, 0);
};

LoadDataStatementContext.prototype.CONCURRENT = function() {
    return this.getToken(SqlParser.CONCURRENT, 0);
};

LoadDataStatementContext.prototype.REPLACE = function() {
    return this.getToken(SqlParser.REPLACE, 0);
};

LoadDataStatementContext.prototype.FIELDS = function() {
    return this.getToken(SqlParser.FIELDS, 0);
};

LoadDataStatementContext.prototype.COLUMNS = function() {
    return this.getToken(SqlParser.COLUMNS, 0);
};

LoadDataStatementContext.prototype.ROWS = function() {
    return this.getToken(SqlParser.ROWS, 0);
};

LoadDataStatementContext.prototype.selectFieldsInto = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(SelectFieldsIntoContext);
    } else {
        return this.getTypedRuleContext(SelectFieldsIntoContext,i);
    }
};

LoadDataStatementContext.prototype.selectLinesInto = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(SelectLinesIntoContext);
    } else {
        return this.getTypedRuleContext(SelectLinesIntoContext,i);
    }
};

LoadDataStatementContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


LoadDataStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLoadDataStatement(this);
	}
};

LoadDataStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLoadDataStatement(this);
	}
};

LoadDataStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLoadDataStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LoadDataStatementContext = LoadDataStatementContext;

SqlParser.prototype.loadDataStatement = function() {

    var localctx = new LoadDataStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 174, SqlParser.RULE_loadDataStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2830;
        this.match(SqlParser.LOAD);
        this.state = 2831;
        this.match(SqlParser.DATA);
        this.state = 2833;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LOW_PRIORITY || _la===SqlParser.CONCURRENT) {
            this.state = 2832;
            localctx.priority = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.LOW_PRIORITY || _la===SqlParser.CONCURRENT)) {
                localctx.priority = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 2836;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LOCAL) {
            this.state = 2835;
            this.match(SqlParser.LOCAL);
        }

        this.state = 2838;
        this.match(SqlParser.INFILE);
        this.state = 2839;
        localctx.filename = this.match(SqlParser.STRING_LITERAL);
        this.state = 2841;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IGNORE || _la===SqlParser.REPLACE) {
            this.state = 2840;
            localctx.violation = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.IGNORE || _la===SqlParser.REPLACE)) {
                localctx.violation = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 2843;
        this.match(SqlParser.INTO);
        this.state = 2844;
        this.match(SqlParser.TABLE);
        this.state = 2845;
        this.tableName();
        this.state = 2851;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.PARTITION) {
            this.state = 2846;
            this.match(SqlParser.PARTITION);
            this.state = 2847;
            this.match(SqlParser.LR_BRACKET);
            this.state = 2848;
            this.uidList();
            this.state = 2849;
            this.match(SqlParser.RR_BRACKET);
        }

        this.state = 2856;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.CHARACTER) {
            this.state = 2853;
            this.match(SqlParser.CHARACTER);
            this.state = 2854;
            this.match(SqlParser.SET);
            this.state = 2855;
            localctx.charset = this.charsetName();
        }

        this.state = 2864;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.COLUMNS || _la===SqlParser.FIELDS) {
            this.state = 2858;
            localctx.fieldsFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.COLUMNS || _la===SqlParser.FIELDS)) {
                localctx.fieldsFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 2860; 
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            do {
                this.state = 2859;
                this.selectFieldsInto();
                this.state = 2862; 
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            } while(_la===SqlParser.ENCLOSED || _la===SqlParser.ESCAPED || _la===SqlParser.OPTIONALLY || _la===SqlParser.TERMINATED);
        }

        this.state = 2872;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LINES) {
            this.state = 2866;
            this.match(SqlParser.LINES);
            this.state = 2868; 
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            do {
                this.state = 2867;
                this.selectLinesInto();
                this.state = 2870; 
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            } while(_la===SqlParser.STARTING || _la===SqlParser.TERMINATED);
        }

        this.state = 2878;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IGNORE) {
            this.state = 2874;
            this.match(SqlParser.IGNORE);
            this.state = 2875;
            this.decimalLiteral();
            this.state = 2876;
            localctx.linesFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.LINES || _la===SqlParser.ROWS)) {
                localctx.linesFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 2891;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,380,this._ctx);
        if(la_===1) {
            this.state = 2880;
            this.match(SqlParser.LR_BRACKET);
            this.state = 2881;
            this.assignmentField();
            this.state = 2886;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 2882;
                this.match(SqlParser.COMMA);
                this.state = 2883;
                this.assignmentField();
                this.state = 2888;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 2889;
            this.match(SqlParser.RR_BRACKET);

        }
        this.state = 2902;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,382,this._ctx);
        if(la_===1) {
            this.state = 2893;
            this.match(SqlParser.SET);
            this.state = 2894;
            this.updatedElement();
            this.state = 2899;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 2895;
                this.match(SqlParser.COMMA);
                this.state = 2896;
                this.updatedElement();
                this.state = 2901;
                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 LoadXmlStatementContext(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_loadXmlStatement;
    this.priority = null; // Token
    this.filename = null; // Token
    this.violation = null; // Token
    this.charset = null; // CharsetNameContext
    this.tag = null; // Token
    this.linesFormat = null; // Token
    return this;
}

LoadXmlStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LoadXmlStatementContext.prototype.constructor = LoadXmlStatementContext;

LoadXmlStatementContext.prototype.LOAD = function() {
    return this.getToken(SqlParser.LOAD, 0);
};

LoadXmlStatementContext.prototype.XML = function() {
    return this.getToken(SqlParser.XML, 0);
};

LoadXmlStatementContext.prototype.INFILE = function() {
    return this.getToken(SqlParser.INFILE, 0);
};

LoadXmlStatementContext.prototype.INTO = function() {
    return this.getToken(SqlParser.INTO, 0);
};

LoadXmlStatementContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

LoadXmlStatementContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

LoadXmlStatementContext.prototype.STRING_LITERAL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.STRING_LITERAL);
    } else {
        return this.getToken(SqlParser.STRING_LITERAL, i);
    }
};


LoadXmlStatementContext.prototype.LOCAL = function() {
    return this.getToken(SqlParser.LOCAL, 0);
};

LoadXmlStatementContext.prototype.CHARACTER = function() {
    return this.getToken(SqlParser.CHARACTER, 0);
};

LoadXmlStatementContext.prototype.SET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.SET);
    } else {
        return this.getToken(SqlParser.SET, i);
    }
};


LoadXmlStatementContext.prototype.ROWS = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.ROWS);
    } else {
        return this.getToken(SqlParser.ROWS, i);
    }
};


LoadXmlStatementContext.prototype.IDENTIFIED = function() {
    return this.getToken(SqlParser.IDENTIFIED, 0);
};

LoadXmlStatementContext.prototype.BY = function() {
    return this.getToken(SqlParser.BY, 0);
};

LoadXmlStatementContext.prototype.LESS_SYMBOL = function() {
    return this.getToken(SqlParser.LESS_SYMBOL, 0);
};

LoadXmlStatementContext.prototype.GREATER_SYMBOL = function() {
    return this.getToken(SqlParser.GREATER_SYMBOL, 0);
};

LoadXmlStatementContext.prototype.IGNORE = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.IGNORE);
    } else {
        return this.getToken(SqlParser.IGNORE, i);
    }
};


LoadXmlStatementContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

LoadXmlStatementContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

LoadXmlStatementContext.prototype.assignmentField = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(AssignmentFieldContext);
    } else {
        return this.getTypedRuleContext(AssignmentFieldContext,i);
    }
};

LoadXmlStatementContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

LoadXmlStatementContext.prototype.updatedElement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UpdatedElementContext);
    } else {
        return this.getTypedRuleContext(UpdatedElementContext,i);
    }
};

LoadXmlStatementContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};

LoadXmlStatementContext.prototype.LOW_PRIORITY = function() {
    return this.getToken(SqlParser.LOW_PRIORITY, 0);
};

LoadXmlStatementContext.prototype.CONCURRENT = function() {
    return this.getToken(SqlParser.CONCURRENT, 0);
};

LoadXmlStatementContext.prototype.REPLACE = function() {
    return this.getToken(SqlParser.REPLACE, 0);
};

LoadXmlStatementContext.prototype.LINES = function() {
    return this.getToken(SqlParser.LINES, 0);
};

LoadXmlStatementContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


LoadXmlStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLoadXmlStatement(this);
	}
};

LoadXmlStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLoadXmlStatement(this);
	}
};

LoadXmlStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLoadXmlStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LoadXmlStatementContext = LoadXmlStatementContext;

SqlParser.prototype.loadXmlStatement = function() {

    var localctx = new LoadXmlStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 176, SqlParser.RULE_loadXmlStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2904;
        this.match(SqlParser.LOAD);
        this.state = 2905;
        this.match(SqlParser.XML);
        this.state = 2907;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LOW_PRIORITY || _la===SqlParser.CONCURRENT) {
            this.state = 2906;
            localctx.priority = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.LOW_PRIORITY || _la===SqlParser.CONCURRENT)) {
                localctx.priority = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 2910;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LOCAL) {
            this.state = 2909;
            this.match(SqlParser.LOCAL);
        }

        this.state = 2912;
        this.match(SqlParser.INFILE);
        this.state = 2913;
        localctx.filename = this.match(SqlParser.STRING_LITERAL);
        this.state = 2915;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IGNORE || _la===SqlParser.REPLACE) {
            this.state = 2914;
            localctx.violation = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.IGNORE || _la===SqlParser.REPLACE)) {
                localctx.violation = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 2917;
        this.match(SqlParser.INTO);
        this.state = 2918;
        this.match(SqlParser.TABLE);
        this.state = 2919;
        this.tableName();
        this.state = 2923;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.CHARACTER) {
            this.state = 2920;
            this.match(SqlParser.CHARACTER);
            this.state = 2921;
            this.match(SqlParser.SET);
            this.state = 2922;
            localctx.charset = this.charsetName();
        }

        this.state = 2931;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ROWS) {
            this.state = 2925;
            this.match(SqlParser.ROWS);
            this.state = 2926;
            this.match(SqlParser.IDENTIFIED);
            this.state = 2927;
            this.match(SqlParser.BY);
            this.state = 2928;
            this.match(SqlParser.LESS_SYMBOL);
            this.state = 2929;
            localctx.tag = this.match(SqlParser.STRING_LITERAL);
            this.state = 2930;
            this.match(SqlParser.GREATER_SYMBOL);
        }

        this.state = 2937;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IGNORE) {
            this.state = 2933;
            this.match(SqlParser.IGNORE);
            this.state = 2934;
            this.decimalLiteral();
            this.state = 2935;
            localctx.linesFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.LINES || _la===SqlParser.ROWS)) {
                localctx.linesFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 2950;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,390,this._ctx);
        if(la_===1) {
            this.state = 2939;
            this.match(SqlParser.LR_BRACKET);
            this.state = 2940;
            this.assignmentField();
            this.state = 2945;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 2941;
                this.match(SqlParser.COMMA);
                this.state = 2942;
                this.assignmentField();
                this.state = 2947;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 2948;
            this.match(SqlParser.RR_BRACKET);

        }
        this.state = 2961;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,392,this._ctx);
        if(la_===1) {
            this.state = 2952;
            this.match(SqlParser.SET);
            this.state = 2953;
            this.updatedElement();
            this.state = 2958;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 2954;
                this.match(SqlParser.COMMA);
                this.state = 2955;
                this.updatedElement();
                this.state = 2960;
                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 ReplaceStatementContext(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_replaceStatement;
    this.priority = null; // Token
    this.partitions = null; // UidListContext
    this.columns = null; // UidListContext
    this.setFirst = null; // UpdatedElementContext
    this._updatedElement = null; // UpdatedElementContext
    this.setElements = []; // of UpdatedElementContexts
    return this;
}

ReplaceStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ReplaceStatementContext.prototype.constructor = ReplaceStatementContext;

ReplaceStatementContext.prototype.REPLACE = function() {
    return this.getToken(SqlParser.REPLACE, 0);
};

ReplaceStatementContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

ReplaceStatementContext.prototype.insertStatementValue = function() {
    return this.getTypedRuleContext(InsertStatementValueContext,0);
};

ReplaceStatementContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

ReplaceStatementContext.prototype.INTO = function() {
    return this.getToken(SqlParser.INTO, 0);
};

ReplaceStatementContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

ReplaceStatementContext.prototype.LR_BRACKET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.LR_BRACKET);
    } else {
        return this.getToken(SqlParser.LR_BRACKET, i);
    }
};


ReplaceStatementContext.prototype.RR_BRACKET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.RR_BRACKET);
    } else {
        return this.getToken(SqlParser.RR_BRACKET, i);
    }
};


ReplaceStatementContext.prototype.updatedElement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UpdatedElementContext);
    } else {
        return this.getTypedRuleContext(UpdatedElementContext,i);
    }
};

ReplaceStatementContext.prototype.uidList = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidListContext);
    } else {
        return this.getTypedRuleContext(UidListContext,i);
    }
};

ReplaceStatementContext.prototype.LOW_PRIORITY = function() {
    return this.getToken(SqlParser.LOW_PRIORITY, 0);
};

ReplaceStatementContext.prototype.DELAYED = function() {
    return this.getToken(SqlParser.DELAYED, 0);
};

ReplaceStatementContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


ReplaceStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterReplaceStatement(this);
	}
};

ReplaceStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitReplaceStatement(this);
	}
};

ReplaceStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitReplaceStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ReplaceStatementContext = ReplaceStatementContext;

SqlParser.prototype.replaceStatement = function() {

    var localctx = new ReplaceStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 178, SqlParser.RULE_replaceStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 2963;
        this.match(SqlParser.REPLACE);
        this.state = 2965;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.DELAYED || _la===SqlParser.LOW_PRIORITY) {
            this.state = 2964;
            localctx.priority = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DELAYED || _la===SqlParser.LOW_PRIORITY)) {
                localctx.priority = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 2968;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.INTO) {
            this.state = 2967;
            this.match(SqlParser.INTO);
        }

        this.state = 2970;
        this.tableName();
        this.state = 2976;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.PARTITION) {
            this.state = 2971;
            this.match(SqlParser.PARTITION);
            this.state = 2972;
            this.match(SqlParser.LR_BRACKET);
            this.state = 2973;
            localctx.partitions = this.uidList();
            this.state = 2974;
            this.match(SqlParser.RR_BRACKET);
        }

        this.state = 2994;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.SELECT:
        case SqlParser.VALUES:
        case SqlParser.VALUE:
        case SqlParser.LR_BRACKET:
            this.state = 2982;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,396,this._ctx);
            if(la_===1) {
                this.state = 2978;
                this.match(SqlParser.LR_BRACKET);
                this.state = 2979;
                localctx.columns = this.uidList();
                this.state = 2980;
                this.match(SqlParser.RR_BRACKET);

            }
            this.state = 2984;
            this.insertStatementValue();
            break;
        case SqlParser.SET:
            this.state = 2985;
            this.match(SqlParser.SET);
            this.state = 2986;
            localctx.setFirst = this.updatedElement();
            this.state = 2991;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 2987;
                this.match(SqlParser.COMMA);
                this.state = 2988;
                localctx._updatedElement = this.updatedElement();
                localctx.setElements.push(localctx._updatedElement);
                this.state = 2993;
                this._errHandler.sync(this);
                _la = this._input.LA(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 SelectStatementContext(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_selectStatement;
    return this;
}

SelectStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SelectStatementContext.prototype.constructor = SelectStatementContext;


 
SelectStatementContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function UnionSelectContext(parser, ctx) {
	SelectStatementContext.call(this, parser);
    this.unionType = null; // Token;
    SelectStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

UnionSelectContext.prototype = Object.create(SelectStatementContext.prototype);
UnionSelectContext.prototype.constructor = UnionSelectContext;

SqlParser.UnionSelectContext = UnionSelectContext;

UnionSelectContext.prototype.querySpecificationNointo = function() {
    return this.getTypedRuleContext(QuerySpecificationNointoContext,0);
};

UnionSelectContext.prototype.unionStatement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UnionStatementContext);
    } else {
        return this.getTypedRuleContext(UnionStatementContext,i);
    }
};

UnionSelectContext.prototype.UNION = function() {
    return this.getToken(SqlParser.UNION, 0);
};

UnionSelectContext.prototype.orderByClause = function() {
    return this.getTypedRuleContext(OrderByClauseContext,0);
};

UnionSelectContext.prototype.limitClause = function() {
    return this.getTypedRuleContext(LimitClauseContext,0);
};

UnionSelectContext.prototype.lockClause = function() {
    return this.getTypedRuleContext(LockClauseContext,0);
};

UnionSelectContext.prototype.querySpecification = function() {
    return this.getTypedRuleContext(QuerySpecificationContext,0);
};

UnionSelectContext.prototype.queryExpression = function() {
    return this.getTypedRuleContext(QueryExpressionContext,0);
};

UnionSelectContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};

UnionSelectContext.prototype.DISTINCT = function() {
    return this.getToken(SqlParser.DISTINCT, 0);
};
UnionSelectContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUnionSelect(this);
	}
};

UnionSelectContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUnionSelect(this);
	}
};

UnionSelectContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUnionSelect(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function UnionParenthesisSelectContext(parser, ctx) {
	SelectStatementContext.call(this, parser);
    this.unionType = null; // Token;
    SelectStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

UnionParenthesisSelectContext.prototype = Object.create(SelectStatementContext.prototype);
UnionParenthesisSelectContext.prototype.constructor = UnionParenthesisSelectContext;

SqlParser.UnionParenthesisSelectContext = UnionParenthesisSelectContext;

UnionParenthesisSelectContext.prototype.queryExpressionNointo = function() {
    return this.getTypedRuleContext(QueryExpressionNointoContext,0);
};

UnionParenthesisSelectContext.prototype.unionParenthesis = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UnionParenthesisContext);
    } else {
        return this.getTypedRuleContext(UnionParenthesisContext,i);
    }
};

UnionParenthesisSelectContext.prototype.UNION = function() {
    return this.getToken(SqlParser.UNION, 0);
};

UnionParenthesisSelectContext.prototype.queryExpression = function() {
    return this.getTypedRuleContext(QueryExpressionContext,0);
};

UnionParenthesisSelectContext.prototype.orderByClause = function() {
    return this.getTypedRuleContext(OrderByClauseContext,0);
};

UnionParenthesisSelectContext.prototype.limitClause = function() {
    return this.getTypedRuleContext(LimitClauseContext,0);
};

UnionParenthesisSelectContext.prototype.lockClause = function() {
    return this.getTypedRuleContext(LockClauseContext,0);
};

UnionParenthesisSelectContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};

UnionParenthesisSelectContext.prototype.DISTINCT = function() {
    return this.getToken(SqlParser.DISTINCT, 0);
};
UnionParenthesisSelectContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUnionParenthesisSelect(this);
	}
};

UnionParenthesisSelectContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUnionParenthesisSelect(this);
	}
};

UnionParenthesisSelectContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUnionParenthesisSelect(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SimpleSelectContext(parser, ctx) {
	SelectStatementContext.call(this, parser);
    SelectStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SimpleSelectContext.prototype = Object.create(SelectStatementContext.prototype);
SimpleSelectContext.prototype.constructor = SimpleSelectContext;

SqlParser.SimpleSelectContext = SimpleSelectContext;

SimpleSelectContext.prototype.querySpecification = function() {
    return this.getTypedRuleContext(QuerySpecificationContext,0);
};

SimpleSelectContext.prototype.lockClause = function() {
    return this.getTypedRuleContext(LockClauseContext,0);
};
SimpleSelectContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSimpleSelect(this);
	}
};

SimpleSelectContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSimpleSelect(this);
	}
};

SimpleSelectContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSimpleSelect(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ParenthesisSelectContext(parser, ctx) {
	SelectStatementContext.call(this, parser);
    SelectStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ParenthesisSelectContext.prototype = Object.create(SelectStatementContext.prototype);
ParenthesisSelectContext.prototype.constructor = ParenthesisSelectContext;

SqlParser.ParenthesisSelectContext = ParenthesisSelectContext;

ParenthesisSelectContext.prototype.queryExpression = function() {
    return this.getTypedRuleContext(QueryExpressionContext,0);
};

ParenthesisSelectContext.prototype.lockClause = function() {
    return this.getTypedRuleContext(LockClauseContext,0);
};
ParenthesisSelectContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterParenthesisSelect(this);
	}
};

ParenthesisSelectContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitParenthesisSelect(this);
	}
};

ParenthesisSelectContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitParenthesisSelect(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.SelectStatementContext = SelectStatementContext;

SqlParser.prototype.selectStatement = function() {

    var localctx = new SelectStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 180, SqlParser.RULE_selectStatement);
    var _la = 0; // Token type
    try {
        this.state = 3051;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,414,this._ctx);
        switch(la_) {
        case 1:
            localctx = new SimpleSelectContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 2996;
            this.querySpecification();
            this.state = 2998;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,399,this._ctx);
            if(la_===1) {
                this.state = 2997;
                this.lockClause();

            }
            break;

        case 2:
            localctx = new ParenthesisSelectContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 3000;
            this.queryExpression();
            this.state = 3002;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,400,this._ctx);
            if(la_===1) {
                this.state = 3001;
                this.lockClause();

            }
            break;

        case 3:
            localctx = new UnionSelectContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 3004;
            this.querySpecificationNointo();
            this.state = 3006; 
            this._errHandler.sync(this);
            var _alt = 1;
            do {
            	switch (_alt) {
            	case 1:
            		this.state = 3005;
            		this.unionStatement();
            		break;
            	default:
            		throw new antlr4.error.NoViableAltException(this);
            	}
            	this.state = 3008; 
            	this._errHandler.sync(this);
            	_alt = this._interp.adaptivePredict(this._input,401, this._ctx);
            } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER );
            this.state = 3018;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.UNION) {
                this.state = 3010;
                this.match(SqlParser.UNION);
                this.state = 3012;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.ALL || _la===SqlParser.DISTINCT) {
                    this.state = 3011;
                    localctx.unionType = this._input.LT(1);
                    _la = this._input.LA(1);
                    if(!(_la===SqlParser.ALL || _la===SqlParser.DISTINCT)) {
                        localctx.unionType = this._errHandler.recoverInline(this);
                    }
                    else {
                    	this._errHandler.reportMatch(this);
                        this.consume();
                    }
                }

                this.state = 3016;
                this._errHandler.sync(this);
                switch(this._input.LA(1)) {
                case SqlParser.SELECT:
                    this.state = 3014;
                    this.querySpecification();
                    break;
                case SqlParser.LR_BRACKET:
                    this.state = 3015;
                    this.queryExpression();
                    break;
                default:
                    throw new antlr4.error.NoViableAltException(this);
                }
            }

            this.state = 3021;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ORDER) {
                this.state = 3020;
                this.orderByClause();
            }

            this.state = 3024;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LIMIT) {
                this.state = 3023;
                this.limitClause();
            }

            this.state = 3027;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,407,this._ctx);
            if(la_===1) {
                this.state = 3026;
                this.lockClause();

            }
            break;

        case 4:
            localctx = new UnionParenthesisSelectContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 3029;
            this.queryExpressionNointo();
            this.state = 3031; 
            this._errHandler.sync(this);
            var _alt = 1;
            do {
            	switch (_alt) {
            	case 1:
            		this.state = 3030;
            		this.unionParenthesis();
            		break;
            	default:
            		throw new antlr4.error.NoViableAltException(this);
            	}
            	this.state = 3033; 
            	this._errHandler.sync(this);
            	_alt = this._interp.adaptivePredict(this._input,408, this._ctx);
            } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER );
            this.state = 3040;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.UNION) {
                this.state = 3035;
                this.match(SqlParser.UNION);
                this.state = 3037;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.ALL || _la===SqlParser.DISTINCT) {
                    this.state = 3036;
                    localctx.unionType = this._input.LT(1);
                    _la = this._input.LA(1);
                    if(!(_la===SqlParser.ALL || _la===SqlParser.DISTINCT)) {
                        localctx.unionType = this._errHandler.recoverInline(this);
                    }
                    else {
                    	this._errHandler.reportMatch(this);
                        this.consume();
                    }
                }

                this.state = 3039;
                this.queryExpression();
            }

            this.state = 3043;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ORDER) {
                this.state = 3042;
                this.orderByClause();
            }

            this.state = 3046;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LIMIT) {
                this.state = 3045;
                this.limitClause();
            }

            this.state = 3049;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,413,this._ctx);
            if(la_===1) {
                this.state = 3048;
                this.lockClause();

            }
            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 UpdateStatementContext(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_updateStatement;
    return this;
}

UpdateStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UpdateStatementContext.prototype.constructor = UpdateStatementContext;

UpdateStatementContext.prototype.singleUpdateStatement = function() {
    return this.getTypedRuleContext(SingleUpdateStatementContext,0);
};

UpdateStatementContext.prototype.multipleUpdateStatement = function() {
    return this.getTypedRuleContext(MultipleUpdateStatementContext,0);
};

UpdateStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUpdateStatement(this);
	}
};

UpdateStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUpdateStatement(this);
	}
};

UpdateStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUpdateStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UpdateStatementContext = UpdateStatementContext;

SqlParser.prototype.updateStatement = function() {

    var localctx = new UpdateStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 182, SqlParser.RULE_updateStatement);
    try {
        this.state = 3055;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,415,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 3053;
            this.singleUpdateStatement();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 3054;
            this.multipleUpdateStatement();
            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 InsertStatementValueContext(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_insertStatementValue;
    this.insertFormat = null; // Token
    return this;
}

InsertStatementValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
InsertStatementValueContext.prototype.constructor = InsertStatementValueContext;

InsertStatementValueContext.prototype.selectStatement = function() {
    return this.getTypedRuleContext(SelectStatementContext,0);
};

InsertStatementValueContext.prototype.LR_BRACKET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.LR_BRACKET);
    } else {
        return this.getToken(SqlParser.LR_BRACKET, i);
    }
};


InsertStatementValueContext.prototype.RR_BRACKET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.RR_BRACKET);
    } else {
        return this.getToken(SqlParser.RR_BRACKET, i);
    }
};


InsertStatementValueContext.prototype.VALUES = function() {
    return this.getToken(SqlParser.VALUES, 0);
};

InsertStatementValueContext.prototype.VALUE = function() {
    return this.getToken(SqlParser.VALUE, 0);
};

InsertStatementValueContext.prototype.expressionsWithDefaults = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionsWithDefaultsContext);
    } else {
        return this.getTypedRuleContext(ExpressionsWithDefaultsContext,i);
    }
};

InsertStatementValueContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


InsertStatementValueContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterInsertStatementValue(this);
	}
};

InsertStatementValueContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitInsertStatementValue(this);
	}
};

InsertStatementValueContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitInsertStatementValue(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.InsertStatementValueContext = InsertStatementValueContext;

SqlParser.prototype.insertStatementValue = function() {

    var localctx = new InsertStatementValueContext(this, this._ctx, this.state);
    this.enterRule(localctx, 184, SqlParser.RULE_insertStatementValue);
    var _la = 0; // Token type
    try {
        this.state = 3075;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.SELECT:
        case SqlParser.LR_BRACKET:
            this.enterOuterAlt(localctx, 1);
            this.state = 3057;
            this.selectStatement();
            break;
        case SqlParser.VALUES:
        case SqlParser.VALUE:
            this.enterOuterAlt(localctx, 2);
            this.state = 3058;
            localctx.insertFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.VALUES || _la===SqlParser.VALUE)) {
                localctx.insertFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 3059;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3061;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SqlParser.CASE) | (1 << SqlParser.CAST) | (1 << SqlParser.CONVERT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.CURRENT_USER - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DEFAULT - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)) | (1 << (SqlParser.EXISTS - 32)) | (1 << (SqlParser.FALSE - 32)))) !== 0) || ((((_la - 69)) & ~0x1f) == 0 && ((1 << (_la - 69)) & ((1 << (SqlParser.IF - 69)) | (1 << (SqlParser.INSERT - 69)) | (1 << (SqlParser.INTERVAL - 69)) | (1 << (SqlParser.LEFT - 69)))) !== 0) || ((((_la - 102)) & ~0x1f) == 0 && ((1 << (_la - 102)) & ((1 << (SqlParser.NOT - 102)) | (1 << (SqlParser.NULL_LITERAL - 102)) | (1 << (SqlParser.NUMBER - 102)) | (1 << (SqlParser.REPLACE - 102)) | (1 << (SqlParser.RIGHT - 102)))) !== 0) || ((((_la - 151)) & ~0x1f) == 0 && ((1 << (_la - 151)) & ((1 << (SqlParser.STACKED - 151)) | (1 << (SqlParser.TRUE - 151)) | (1 << (SqlParser.VALUES - 151)))) !== 0) || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.CHAR - 199)) | (1 << (SqlParser.BINARY - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.AVG - 233)) | (1 << (SqlParser.BIT_AND - 233)) | (1 << (SqlParser.BIT_OR - 233)) | (1 << (SqlParser.BIT_XOR - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.GROUP_CONCAT - 233)) | (1 << (SqlParser.MAX - 233)) | (1 << (SqlParser.MIN - 233)) | (1 << (SqlParser.STD - 233)) | (1 << (SqlParser.STDDEV - 233)) | (1 << (SqlParser.STDDEV_POP - 233)) | (1 << (SqlParser.STDDEV_SAMP - 233)) | (1 << (SqlParser.SUM - 233)) | (1 << (SqlParser.VAR_POP - 233)) | (1 << (SqlParser.VAR_SAMP - 233)) | (1 << (SqlParser.VARIANCE - 233)) | (1 << (SqlParser.CURRENT_DATE - 233)) | (1 << (SqlParser.CURRENT_TIME - 233)) | (1 << (SqlParser.CURRENT_TIMESTAMP - 233)) | (1 << (SqlParser.LOCALTIME - 233)) | (1 << (SqlParser.CURDATE - 233)) | (1 << (SqlParser.CURTIME - 233)) | (1 << (SqlParser.DATE_ADD - 233)) | (1 << (SqlParser.DATE_SUB - 233)) | (1 << (SqlParser.EXTRACT - 233)) | (1 << (SqlParser.LOCALTIMESTAMP - 233)) | (1 << (SqlParser.NOW - 233)) | (1 << (SqlParser.POSITION - 233)) | (1 << (SqlParser.SUBSTR - 233)) | (1 << (SqlParser.SUBSTRING - 233)))) !== 0) || ((((_la - 265)) & ~0x1f) == 0 && ((1 << (_la - 265)) & ((1 << (SqlParser.SYSDATE - 265)) | (1 << (SqlParser.TRIM - 265)) | (1 << (SqlParser.UTC_DATE - 265)) | (1 << (SqlParser.UTC_TIME - 265)) | (1 << (SqlParser.UTC_TIMESTAMP - 265)) | (1 << (SqlParser.ACCOUNT - 265)) | (1 << (SqlParser.ACTION - 265)) | (1 << (SqlParser.AFTER - 265)) | (1 << (SqlParser.AGGREGATE - 265)) | (1 << (SqlParser.ALGORITHM - 265)) | (1 << (SqlParser.ANY - 265)) | (1 << (SqlParser.AT - 265)) | (1 << (SqlParser.AUTHORS - 265)) | (1 << (SqlParser.AUTOCOMMIT - 265)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 265)) | (1 << (SqlParser.AUTO_INCREMENT - 265)) | (1 << (SqlParser.AVG_ROW_LENGTH - 265)) | (1 << (SqlParser.BEGIN - 265)) | (1 << (SqlParser.BINLOG - 265)) | (1 << (SqlParser.BIT - 265)) | (1 << (SqlParser.BLOCK - 265)) | (1 << (SqlParser.BOOL - 265)) | (1 << (SqlParser.BOOLEAN - 265)) | (1 << (SqlParser.BTREE - 265)) | (1 << (SqlParser.CACHE - 265)) | (1 << (SqlParser.CASCADED - 265)) | (1 << (SqlParser.CHAIN - 265)) | (1 << (SqlParser.CHANGED - 265)) | (1 << (SqlParser.CHANNEL - 265)) | (1 << (SqlParser.CHECKSUM - 265)) | (1 << (SqlParser.PAGE_CHECKSUM - 265)) | (1 << (SqlParser.CIPHER - 265)))) !== 0) || ((((_la - 297)) & ~0x1f) == 0 && ((1 << (_la - 297)) & ((1 << (SqlParser.CLASS_ORIGIN - 297)) | (1 << (SqlParser.CLIENT - 297)) | (1 << (SqlParser.CLOSE - 297)) | (1 << (SqlParser.COALESCE - 297)) | (1 << (SqlParser.CODE - 297)) | (1 << (SqlParser.COLUMNS - 297)) | (1 << (SqlParser.COLUMN_FORMAT - 297)) | (1 << (SqlParser.COLUMN_NAME - 297)) | (1 << (SqlParser.COMMENT - 297)) | (1 << (SqlParser.COMMIT - 297)) | (1 << (SqlParser.COMPACT - 297)) | (1 << (SqlParser.COMPLETION - 297)) | (1 << (SqlParser.COMPRESSED - 297)) | (1 << (SqlParser.COMPRESSION - 297)) | (1 << (SqlParser.CONCURRENT - 297)) | (1 << (SqlParser.CONNECTION - 297)) | (1 << (SqlParser.CONSISTENT - 297)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 297)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 297)) | (1 << (SqlParser.CONSTRAINT_NAME - 297)) | (1 << (SqlParser.CONTAINS - 297)) | (1 << (SqlParser.CONTEXT - 297)) | (1 << (SqlParser.CONTRIBUTORS - 297)) | (1 << (SqlParser.COPY - 297)) | (1 << (SqlParser.CPU - 297)) | (1 << (SqlParser.CURSOR_NAME - 297)) | (1 << (SqlParser.DATA - 297)) | (1 << (SqlParser.DATAFILE - 297)) | (1 << (SqlParser.DEALLOCATE - 297)) | (1 << (SqlParser.DEFAULT_AUTH - 297)) | (1 << (SqlParser.DEFINER - 297)) | (1 << (SqlParser.DELAY_KEY_WRITE - 297)))) !== 0) || ((((_la - 329)) & ~0x1f) == 0 && ((1 << (_la - 329)) & ((1 << (SqlParser.DES_KEY_FILE - 329)) | (1 << (SqlParser.DIRECTORY - 329)) | (1 << (SqlParser.DISABLE - 329)) | (1 << (SqlParser.DISCARD - 329)) | (1 << (SqlParser.DISK - 329)) | (1 << (SqlParser.DO - 329)) | (1 << (SqlParser.DUMPFILE - 329)) | (1 << (SqlParser.DUPLICATE - 329)) | (1 << (SqlParser.DYNAMIC - 329)) | (1 << (SqlParser.ENABLE - 329)) | (1 << (SqlParser.ENCRYPTION - 329)) | (1 << (SqlParser.END - 329)) | (1 << (SqlParser.ENDS - 329)) | (1 << (SqlParser.ENGINE - 329)) | (1 << (SqlParser.ENGINES - 329)) | (1 << (SqlParser.ERROR - 329)) | (1 << (SqlParser.ERRORS - 329)) | (1 << (SqlParser.ESCAPE - 329)) | (1 << (SqlParser.EVEN - 329)) | (1 << (SqlParser.EVENT - 329)) | (1 << (SqlParser.EVENTS - 329)) | (1 << (SqlParser.EVERY - 329)) | (1 << (SqlParser.EXCHANGE - 329)) | (1 << (SqlParser.EXCLUSIVE - 329)) | (1 << (SqlParser.EXPIRE - 329)) | (1 << (SqlParser.EXPORT - 329)) | (1 << (SqlParser.EXTENDED - 329)) | (1 << (SqlParser.EXTENT_SIZE - 329)) | (1 << (SqlParser.FAST - 329)) | (1 << (SqlParser.FAULTS - 329)) | (1 << (SqlParser.FIELDS - 329)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 329)))) !== 0) || ((((_la - 361)) & ~0x1f) == 0 && ((1 << (_la - 361)) & ((1 << (SqlParser.FILTER - 361)) | (1 << (SqlParser.FIRST - 361)) | (1 << (SqlParser.FIXED - 361)) | (1 << (SqlParser.FLUSH - 361)) | (1 << (SqlParser.FOLLOWS - 361)) | (1 << (SqlParser.FOUND - 361)) | (1 << (SqlParser.FULL - 361)) | (1 << (SqlParser.FUNCTION - 361)) | (1 << (SqlParser.GENERAL - 361)) | (1 << (SqlParser.GLOBAL - 361)) | (1 << (SqlParser.GRANTS - 361)) | (1 << (SqlParser.GROUP_REPLICATION - 361)) | (1 << (SqlParser.HANDLER - 361)) | (1 << (SqlParser.HASH - 361)) | (1 << (SqlParser.HELP - 361)) | (1 << (SqlParser.HOST - 361)) | (1 << (SqlParser.HOSTS - 361)) | (1 << (SqlParser.IDENTIFIED - 361)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 361)) | (1 << (SqlParser.IMPORT - 361)) | (1 << (SqlParser.INDEXES - 361)) | (1 << (SqlParser.INITIAL_SIZE - 361)) | (1 << (SqlParser.INPLACE - 361)) | (1 << (SqlParser.INSERT_METHOD - 361)) | (1 << (SqlParser.INSTALL - 361)) | (1 << (SqlParser.INSTANCE - 361)) | (1 << (SqlParser.INVISIBLE - 361)) | (1 << (SqlParser.INVOKER - 361)) | (1 << (SqlParser.IO - 361)) | (1 << (SqlParser.IO_THREAD - 361)) | (1 << (SqlParser.IPC - 361)) | (1 << (SqlParser.ISOLATION - 361)))) !== 0) || ((((_la - 393)) & ~0x1f) == 0 && ((1 << (_la - 393)) & ((1 << (SqlParser.ISSUER - 393)) | (1 << (SqlParser.JSON - 393)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 393)) | (1 << (SqlParser.LANGUAGE - 393)) | (1 << (SqlParser.LAST - 393)) | (1 << (SqlParser.LEAVES - 393)) | (1 << (SqlParser.LESS - 393)) | (1 << (SqlParser.LEVEL - 393)) | (1 << (SqlParser.LIST - 393)) | (1 << (SqlParser.LOCAL - 393)) | (1 << (SqlParser.LOGFILE - 393)) | (1 << (SqlParser.LOGS - 393)) | (1 << (SqlParser.MASTER - 393)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 393)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 393)) | (1 << (SqlParser.MASTER_DELAY - 393)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 393)) | (1 << (SqlParser.MASTER_HOST - 393)) | (1 << (SqlParser.MASTER_LOG_FILE - 393)) | (1 << (SqlParser.MASTER_LOG_POS - 393)) | (1 << (SqlParser.MASTER_PASSWORD - 393)) | (1 << (SqlParser.MASTER_PORT - 393)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 393)) | (1 << (SqlParser.MASTER_SSL - 393)) | (1 << (SqlParser.MASTER_SSL_CA - 393)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 393)) | (1 << (SqlParser.MASTER_SSL_CERT - 393)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 393)) | (1 << (SqlParser.MASTER_SSL_CRL - 393)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 393)) | (1 << (SqlParser.MASTER_SSL_KEY - 393)) | (1 << (SqlParser.MASTER_TLS_VERSION - 393)))) !== 0) || ((((_la - 425)) & ~0x1f) == 0 && ((1 << (_la - 425)) & ((1 << (SqlParser.MASTER_USER - 425)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 425)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_ROWS - 425)) | (1 << (SqlParser.MAX_SIZE - 425)) | (1 << (SqlParser.MAX_UPDATES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 425)) | (1 << (SqlParser.MEDIUM - 425)) | (1 << (SqlParser.MERGE - 425)) | (1 << (SqlParser.MESSAGE_TEXT - 425)) | (1 << (SqlParser.MID - 425)) | (1 << (SqlParser.MIGRATE - 425)) | (1 << (SqlParser.MIN_ROWS - 425)) | (1 << (SqlParser.MODE - 425)) | (1 << (SqlParser.MODIFY - 425)) | (1 << (SqlParser.MUTEX - 425)) | (1 << (SqlParser.MYSQL - 425)) | (1 << (SqlParser.MYSQL_ERRNO - 425)) | (1 << (SqlParser.NAME - 425)) | (1 << (SqlParser.NAMES - 425)) | (1 << (SqlParser.NCHAR - 425)) | (1 << (SqlParser.NEVER - 425)) | (1 << (SqlParser.NEXT - 425)) | (1 << (SqlParser.NO - 425)) | (1 << (SqlParser.NODEGROUP - 425)) | (1 << (SqlParser.NONE - 425)) | (1 << (SqlParser.OFFLINE - 425)) | (1 << (SqlParser.OFFSET - 425)) | (1 << (SqlParser.OJ - 425)) | (1 << (SqlParser.OLD_PASSWORD - 425)) | (1 << (SqlParser.ONE - 425)) | (1 << (SqlParser.ONLINE - 425)))) !== 0) || ((((_la - 457)) & ~0x1f) == 0 && ((1 << (_la - 457)) & ((1 << (SqlParser.ONLY - 457)) | (1 << (SqlParser.OPEN - 457)) | (1 << (SqlParser.OPTIMIZER_COSTS - 457)) | (1 << (SqlParser.OPTIONS - 457)) | (1 << (SqlParser.OWNER - 457)) | (1 << (SqlParser.PACK_KEYS - 457)) | (1 << (SqlParser.PAGE - 457)) | (1 << (SqlParser.PARSER - 457)) | (1 << (SqlParser.PARTIAL - 457)) | (1 << (SqlParser.PARTITIONING - 457)) | (1 << (SqlParser.PARTITIONS - 457)) | (1 << (SqlParser.PASSWORD - 457)) | (1 << (SqlParser.PHASE - 457)) | (1 << (SqlParser.PLUGIN - 457)) | (1 << (SqlParser.PLUGIN_DIR - 457)) | (1 << (SqlParser.PLUGINS - 457)) | (1 << (SqlParser.PORT - 457)) | (1 << (SqlParser.PRECEDES - 457)) | (1 << (SqlParser.PREPARE - 457)) | (1 << (SqlParser.PRESERVE - 457)) | (1 << (SqlParser.PREV - 457)) | (1 << (SqlParser.PROCESSLIST - 457)) | (1 << (SqlParser.PROFILE - 457)) | (1 << (SqlParser.PROFILES - 457)) | (1 << (SqlParser.PROXY - 457)) | (1 << (SqlParser.QUERY - 457)) | (1 << (SqlParser.QUICK - 457)) | (1 << (SqlParser.REBUILD - 457)) | (1 << (SqlParser.RECOVER - 457)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 457)) | (1 << (SqlParser.REDUNDANT - 457)) | (1 << (SqlParser.RELAY - 457)))) !== 0) || ((((_la - 489)) & ~0x1f) == 0 && ((1 << (_la - 489)) & ((1 << (SqlParser.RELAY_LOG_FILE - 489)) | (1 << (SqlParser.RELAY_LOG_POS - 489)) | (1 << (SqlParser.RELAYLOG - 489)) | (1 << (SqlParser.REMOVE - 489)) | (1 << (SqlParser.REORGANIZE - 489)) | (1 << (SqlParser.REPAIR - 489)) | (1 << (SqlParser.REPLICATE_DO_DB - 489)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 489)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATION - 489)) | (1 << (SqlParser.RESET - 489)) | (1 << (SqlParser.RESUME - 489)) | (1 << (SqlParser.RETURNED_SQLSTATE - 489)) | (1 << (SqlParser.RETURNS - 489)) | (1 << (SqlParser.ROLE - 489)) | (1 << (SqlParser.ROLLBACK - 489)) | (1 << (SqlParser.ROLLUP - 489)) | (1 << (SqlParser.ROTATE - 489)) | (1 << (SqlParser.ROW - 489)) | (1 << (SqlParser.ROWS - 489)) | (1 << (SqlParser.ROW_FORMAT - 489)) | (1 << (SqlParser.SAVEPOINT - 489)) | (1 << (SqlParser.SCHEDULE - 489)) | (1 << (SqlParser.SECURITY - 489)) | (1 << (SqlParser.SERVER - 489)) | (1 << (SqlParser.SESSION - 489)) | (1 << (SqlParser.SHARE - 489)) | (1 << (SqlParser.SHARED - 489)))) !== 0) || ((((_la - 521)) & ~0x1f) == 0 && ((1 << (_la - 521)) & ((1 << (SqlParser.SIGNED - 521)) | (1 << (SqlParser.SIMPLE - 521)) | (1 << (SqlParser.SLAVE - 521)) | (1 << (SqlParser.SLOW - 521)) | (1 << (SqlParser.SNAPSHOT - 521)) | (1 << (SqlParser.SOCKET - 521)) | (1 << (SqlParser.SOME - 521)) | (1 << (SqlParser.SONAME - 521)) | (1 << (SqlParser.SOUNDS - 521)) | (1 << (SqlParser.SOURCE - 521)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 521)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 521)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 521)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 521)) | (1 << (SqlParser.SQL_CACHE - 521)) | (1 << (SqlParser.SQL_NO_CACHE - 521)) | (1 << (SqlParser.SQL_THREAD - 521)) | (1 << (SqlParser.START - 521)) | (1 << (SqlParser.STARTS - 521)) | (1 << (SqlParser.STATS_AUTO_RECALC - 521)) | (1 << (SqlParser.STATS_PERSISTENT - 521)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 521)) | (1 << (SqlParser.STATUS - 521)) | (1 << (SqlParser.STOP - 521)) | (1 << (SqlParser.STORAGE - 521)) | (1 << (SqlParser.STRING - 521)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 521)) | (1 << (SqlParser.SUBJECT - 521)) | (1 << (SqlParser.SUBPARTITION - 521)) | (1 << (SqlParser.SUBPARTITIONS - 521)) | (1 << (SqlParser.SUSPEND - 521)))) !== 0) || ((((_la - 553)) & ~0x1f) == 0 && ((1 << (_la - 553)) & ((1 << (SqlParser.SWAPS - 553)) | (1 << (SqlParser.SWITCHES - 553)) | (1 << (SqlParser.TABLE_NAME - 553)) | (1 << (SqlParser.TABLESPACE - 553)) | (1 << (SqlParser.TEMPORARY - 553)) | (1 << (SqlParser.TEMPTABLE - 553)) | (1 << (SqlParser.THAN - 553)) | (1 << (SqlParser.TRADITIONAL - 553)) | (1 << (SqlParser.TRANSACTION - 553)) | (1 << (SqlParser.TRANSACTIONAL - 553)) | (1 << (SqlParser.TRIGGERS - 553)) | (1 << (SqlParser.TRUNCATE - 553)) | (1 << (SqlParser.UNDEFINED - 553)) | (1 << (SqlParser.UNDOFILE - 553)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 553)) | (1 << (SqlParser.UNINSTALL - 553)) | (1 << (SqlParser.UNKNOWN - 553)) | (1 << (SqlParser.UNTIL - 553)) | (1 << (SqlParser.UPGRADE - 553)) | (1 << (SqlParser.USER - 553)) | (1 << (SqlParser.USE_FRM - 553)) | (1 << (SqlParser.USER_RESOURCES - 553)) | (1 << (SqlParser.VALIDATION - 553)) | (1 << (SqlParser.VALUE - 553)) | (1 << (SqlParser.VARIABLES - 553)) | (1 << (SqlParser.VIEW - 553)) | (1 << (SqlParser.VISIBLE - 553)) | (1 << (SqlParser.WAIT - 553)) | (1 << (SqlParser.WARNINGS - 553)) | (1 << (SqlParser.WITHOUT - 553)) | (1 << (SqlParser.WORK - 553)))) !== 0) || ((((_la - 585)) & ~0x1f) == 0 && ((1 << (_la - 585)) & ((1 << (SqlParser.WRAPPER - 585)) | (1 << (SqlParser.X509 - 585)) | (1 << (SqlParser.XA - 585)) | (1 << (SqlParser.XML - 585)) | (1 << (SqlParser.INTERNAL - 585)) | (1 << (SqlParser.QUARTER - 585)) | (1 << (SqlParser.MONTH - 585)) | (1 << (SqlParser.DAY - 585)) | (1 << (SqlParser.HOUR - 585)) | (1 << (SqlParser.MINUTE - 585)) | (1 << (SqlParser.WEEK - 585)) | (1 << (SqlParser.SECOND - 585)) | (1 << (SqlParser.MICROSECOND - 585)) | (1 << (SqlParser.TABLES - 585)) | (1 << (SqlParser.ROUTINE - 585)) | (1 << (SqlParser.EXECUTE - 585)) | (1 << (SqlParser.FILE - 585)) | (1 << (SqlParser.PROCESS - 585)) | (1 << (SqlParser.RELOAD - 585)) | (1 << (SqlParser.SHUTDOWN - 585)) | (1 << (SqlParser.SUPER - 585)) | (1 << (SqlParser.PRIVILEGES - 585)) | (1 << (SqlParser.AUDIT_ADMIN - 585)) | (1 << (SqlParser.BACKUP_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 585)) | (1 << (SqlParser.CLONE_ADMIN - 585)))) !== 0) || ((((_la - 617)) & ~0x1f) == 0 && ((1 << (_la - 617)) & ((1 << (SqlParser.CONNECTION_ADMIN - 617)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_USER - 617)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 617)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 617)) | (1 << (SqlParser.NDB_STORED_USER - 617)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.REPLICATION_APPLIER - 617)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 617)) | (1 << (SqlParser.ROLE_ADMIN - 617)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.SET_USER_ID - 617)) | (1 << (SqlParser.SHOW_ROUTINE - 617)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 617)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 617)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 617)) | (1 << (SqlParser.ARMSCII8 - 617)) | (1 << (SqlParser.ASCII - 617)) | (1 << (SqlParser.BIG5 - 617)) | (1 << (SqlParser.CP1250 - 617)) | (1 << (SqlParser.CP1251 - 617)) | (1 << (SqlParser.CP1256 - 617)) | (1 << (SqlParser.CP1257 - 617)) | (1 << (SqlParser.CP850 - 617)) | (1 << (SqlParser.CP852 - 617)) | (1 << (SqlParser.CP866 - 617)) | (1 << (SqlParser.CP932 - 617)) | (1 << (SqlParser.DEC8 - 617)))) !== 0) || ((((_la - 649)) & ~0x1f) == 0 && ((1 << (_la - 649)) & ((1 << (SqlParser.EUCJPMS - 649)) | (1 << (SqlParser.EUCKR - 649)) | (1 << (SqlParser.GB2312 - 649)) | (1 << (SqlParser.GBK - 649)) | (1 << (SqlParser.GEOSTD8 - 649)) | (1 << (SqlParser.GREEK - 649)) | (1 << (SqlParser.HEBREW - 649)) | (1 << (SqlParser.HP8 - 649)) | (1 << (SqlParser.KEYBCS2 - 649)) | (1 << (SqlParser.KOI8R - 649)) | (1 << (SqlParser.KOI8U - 649)) | (1 << (SqlParser.LATIN1 - 649)) | (1 << (SqlParser.LATIN2 - 649)) | (1 << (SqlParser.LATIN5 - 649)) | (1 << (SqlParser.LATIN7 - 649)) | (1 << (SqlParser.MACCE - 649)) | (1 << (SqlParser.MACROMAN - 649)) | (1 << (SqlParser.SJIS - 649)) | (1 << (SqlParser.SWE7 - 649)) | (1 << (SqlParser.TIS620 - 649)) | (1 << (SqlParser.UCS2 - 649)) | (1 << (SqlParser.UJIS - 649)) | (1 << (SqlParser.UTF16 - 649)) | (1 << (SqlParser.UTF16LE - 649)) | (1 << (SqlParser.UTF32 - 649)) | (1 << (SqlParser.UTF8 - 649)) | (1 << (SqlParser.UTF8MB3 - 649)) | (1 << (SqlParser.UTF8MB4 - 649)) | (1 << (SqlParser.ARCHIVE - 649)) | (1 << (SqlParser.BLACKHOLE - 649)) | (1 << (SqlParser.CSV - 649)) | (1 << (SqlParser.FEDERATED - 649)))) !== 0) || ((((_la - 681)) & ~0x1f) == 0 && ((1 << (_la - 681)) & ((1 << (SqlParser.INNODB - 681)) | (1 << (SqlParser.MEMORY - 681)) | (1 << (SqlParser.MRG_MYISAM - 681)) | (1 << (SqlParser.MYISAM - 681)) | (1 << (SqlParser.NDB - 681)) | (1 << (SqlParser.NDBCLUSTER - 681)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 681)) | (1 << (SqlParser.TOKUDB - 681)) | (1 << (SqlParser.REPEATABLE - 681)) | (1 << (SqlParser.COMMITTED - 681)) | (1 << (SqlParser.UNCOMMITTED - 681)) | (1 << (SqlParser.SERIALIZABLE - 681)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 681)) | (1 << (SqlParser.LINESTRING - 681)) | (1 << (SqlParser.MULTILINESTRING - 681)) | (1 << (SqlParser.MULTIPOINT - 681)) | (1 << (SqlParser.MULTIPOLYGON - 681)) | (1 << (SqlParser.POINT - 681)) | (1 << (SqlParser.POLYGON - 681)) | (1 << (SqlParser.ABS - 681)) | (1 << (SqlParser.ACOS - 681)) | (1 << (SqlParser.ADDDATE - 681)) | (1 << (SqlParser.ADDTIME - 681)) | (1 << (SqlParser.AES_DECRYPT - 681)) | (1 << (SqlParser.AES_ENCRYPT - 681)) | (1 << (SqlParser.AREA - 681)) | (1 << (SqlParser.ASBINARY - 681)) | (1 << (SqlParser.ASIN - 681)) | (1 << (SqlParser.ASTEXT - 681)) | (1 << (SqlParser.ASWKB - 681)))) !== 0) || ((((_la - 713)) & ~0x1f) == 0 && ((1 << (_la - 713)) & ((1 << (SqlParser.ASWKT - 713)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 713)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 713)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 713)) | (1 << (SqlParser.ATAN - 713)) | (1 << (SqlParser.ATAN2 - 713)) | (1 << (SqlParser.BENCHMARK - 713)) | (1 << (SqlParser.BIN - 713)) | (1 << (SqlParser.BIT_COUNT - 713)) | (1 << (SqlParser.BIT_LENGTH - 713)) | (1 << (SqlParser.BUFFER - 713)) | (1 << (SqlParser.CATALOG_NAME - 713)) | (1 << (SqlParser.CEIL - 713)) | (1 << (SqlParser.CEILING - 713)) | (1 << (SqlParser.CENTROID - 713)) | (1 << (SqlParser.CHARACTER_LENGTH - 713)) | (1 << (SqlParser.CHARSET - 713)) | (1 << (SqlParser.CHAR_LENGTH - 713)) | (1 << (SqlParser.COERCIBILITY - 713)) | (1 << (SqlParser.COLLATION - 713)) | (1 << (SqlParser.COMPRESS - 713)) | (1 << (SqlParser.CONCAT - 713)) | (1 << (SqlParser.CONCAT_WS - 713)) | (1 << (SqlParser.CONNECTION_ID - 713)) | (1 << (SqlParser.CONV - 713)) | (1 << (SqlParser.CONVERT_TZ - 713)) | (1 << (SqlParser.COS - 713)) | (1 << (SqlParser.COT - 713)) | (1 << (SqlParser.CRC32 - 713)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 713)))) !== 0) || ((((_la - 745)) & ~0x1f) == 0 && ((1 << (_la - 745)) & ((1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 745)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 745)) | (1 << (SqlParser.CREATE_DIGEST - 745)) | (1 << (SqlParser.CROSSES - 745)) | (1 << (SqlParser.DATEDIFF - 745)) | (1 << (SqlParser.DATE_FORMAT - 745)) | (1 << (SqlParser.DAYNAME - 745)) | (1 << (SqlParser.DAYOFMONTH - 745)) | (1 << (SqlParser.DAYOFWEEK - 745)) | (1 << (SqlParser.DAYOFYEAR - 745)) | (1 << (SqlParser.DECODE - 745)) | (1 << (SqlParser.DEGREES - 745)) | (1 << (SqlParser.DES_DECRYPT - 745)) | (1 << (SqlParser.DES_ENCRYPT - 745)) | (1 << (SqlParser.DIMENSION - 745)) | (1 << (SqlParser.DISJOINT - 745)) | (1 << (SqlParser.ELT - 745)) | (1 << (SqlParser.ENCODE - 745)) | (1 << (SqlParser.ENCRYPT - 745)) | (1 << (SqlParser.ENDPOINT - 745)) | (1 << (SqlParser.ENVELOPE - 745)) | (1 << (SqlParser.EQUALS - 745)) | (1 << (SqlParser.EXP - 745)) | (1 << (SqlParser.EXPORT_SET - 745)) | (1 << (SqlParser.EXTERIORRING - 745)) | (1 << (SqlParser.EXTRACTVALUE - 745)) | (1 << (SqlParser.FIELD - 745)) | (1 << (SqlParser.FIND_IN_SET - 745)) | (1 << (SqlParser.FLOOR - 745)) | (1 << (SqlParser.FORMAT - 745)) | (1 << (SqlParser.FOUND_ROWS - 745)) | (1 << (SqlParser.FROM_BASE64 - 745)))) !== 0) || ((((_la - 777)) & ~0x1f) == 0 && ((1 << (_la - 777)) & ((1 << (SqlParser.FROM_DAYS - 777)) | (1 << (SqlParser.FROM_UNIXTIME - 777)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 777)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYN - 777)) | (1 << (SqlParser.GEOMETRYTYPE - 777)) | (1 << (SqlParser.GEOMFROMTEXT - 777)) | (1 << (SqlParser.GEOMFROMWKB - 777)) | (1 << (SqlParser.GET_FORMAT - 777)) | (1 << (SqlParser.GET_LOCK - 777)) | (1 << (SqlParser.GLENGTH - 777)) | (1 << (SqlParser.GREATEST - 777)) | (1 << (SqlParser.GTID_SUBSET - 777)) | (1 << (SqlParser.GTID_SUBTRACT - 777)) | (1 << (SqlParser.HEX - 777)) | (1 << (SqlParser.IFNULL - 777)) | (1 << (SqlParser.INET6_ATON - 777)) | (1 << (SqlParser.INET6_NTOA - 777)) | (1 << (SqlParser.INET_ATON - 777)) | (1 << (SqlParser.INET_NTOA - 777)) | (1 << (SqlParser.INSTR - 777)) | (1 << (SqlParser.INTERIORRINGN - 777)) | (1 << (SqlParser.INTERSECTS - 777)) | (1 << (SqlParser.ISCLOSED - 777)) | (1 << (SqlParser.ISEMPTY - 777)) | (1 << (SqlParser.ISNULL - 777)) | (1 << (SqlParser.ISSIMPLE - 777)) | (1 << (SqlParser.IS_FREE_LOCK - 777)))) !== 0) || ((((_la - 809)) & ~0x1f) == 0 && ((1 << (_la - 809)) & ((1 << (SqlParser.IS_IPV4 - 809)) | (1 << (SqlParser.IS_IPV4_COMPAT - 809)) | (1 << (SqlParser.IS_IPV4_MAPPED - 809)) | (1 << (SqlParser.IS_IPV6 - 809)) | (1 << (SqlParser.IS_USED_LOCK - 809)) | (1 << (SqlParser.LAST_INSERT_ID - 809)) | (1 << (SqlParser.LCASE - 809)) | (1 << (SqlParser.LEAST - 809)) | (1 << (SqlParser.LENGTH - 809)) | (1 << (SqlParser.LINEFROMTEXT - 809)) | (1 << (SqlParser.LINEFROMWKB - 809)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 809)) | (1 << (SqlParser.LINESTRINGFROMWKB - 809)) | (1 << (SqlParser.LN - 809)) | (1 << (SqlParser.LOAD_FILE - 809)) | (1 << (SqlParser.LOCATE - 809)) | (1 << (SqlParser.LOG - 809)) | (1 << (SqlParser.LOG10 - 809)) | (1 << (SqlParser.LOG2 - 809)) | (1 << (SqlParser.LOWER - 809)) | (1 << (SqlParser.LPAD - 809)) | (1 << (SqlParser.LTRIM - 809)) | (1 << (SqlParser.MAKEDATE - 809)) | (1 << (SqlParser.MAKETIME - 809)) | (1 << (SqlParser.MAKE_SET - 809)) | (1 << (SqlParser.MASTER_POS_WAIT - 809)) | (1 << (SqlParser.MBRCONTAINS - 809)) | (1 << (SqlParser.MBRDISJOINT - 809)) | (1 << (SqlParser.MBREQUAL - 809)) | (1 << (SqlParser.MBRINTERSECTS - 809)) | (1 << (SqlParser.MBROVERLAPS - 809)) | (1 << (SqlParser.MBRTOUCHES - 809)))) !== 0) || ((((_la - 841)) & ~0x1f) == 0 && ((1 << (_la - 841)) & ((1 << (SqlParser.MBRWITHIN - 841)) | (1 << (SqlParser.MD5 - 841)) | (1 << (SqlParser.MLINEFROMTEXT - 841)) | (1 << (SqlParser.MLINEFROMWKB - 841)) | (1 << (SqlParser.MONTHNAME - 841)) | (1 << (SqlParser.MPOINTFROMTEXT - 841)) | (1 << (SqlParser.MPOINTFROMWKB - 841)) | (1 << (SqlParser.MPOLYFROMTEXT - 841)) | (1 << (SqlParser.MPOLYFROMWKB - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 841)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 841)) | (1 << (SqlParser.NAME_CONST - 841)) | (1 << (SqlParser.NULLIF - 841)) | (1 << (SqlParser.NUMGEOMETRIES - 841)) | (1 << (SqlParser.NUMINTERIORRINGS - 841)) | (1 << (SqlParser.NUMPOINTS - 841)) | (1 << (SqlParser.OCT - 841)) | (1 << (SqlParser.OCTET_LENGTH - 841)) | (1 << (SqlParser.ORD - 841)) | (1 << (SqlParser.OVERLAPS - 841)) | (1 << (SqlParser.PERIOD_ADD - 841)) | (1 << (SqlParser.PERIOD_DIFF - 841)) | (1 << (SqlParser.PI - 841)) | (1 << (SqlParser.POINTFROMTEXT - 841)) | (1 << (SqlParser.POINTFROMWKB - 841)) | (1 << (SqlParser.POINTN - 841)) | (1 << (SqlParser.POLYFROMTEXT - 841)) | (1 << (SqlParser.POLYFROMWKB - 841)))) !== 0) || ((((_la - 873)) & ~0x1f) == 0 && ((1 << (_la - 873)) & ((1 << (SqlParser.POLYGONFROMTEXT - 873)) | (1 << (SqlParser.POLYGONFROMWKB - 873)) | (1 << (SqlParser.POW - 873)) | (1 << (SqlParser.POWER - 873)) | (1 << (SqlParser.QUOTE - 873)) | (1 << (SqlParser.RADIANS - 873)) | (1 << (SqlParser.RAND - 873)) | (1 << (SqlParser.RANDOM_BYTES - 873)) | (1 << (SqlParser.RELEASE_LOCK - 873)) | (1 << (SqlParser.REVERSE - 873)) | (1 << (SqlParser.ROUND - 873)) | (1 << (SqlParser.ROW_COUNT - 873)) | (1 << (SqlParser.RPAD - 873)) | (1 << (SqlParser.RTRIM - 873)) | (1 << (SqlParser.SEC_TO_TIME - 873)) | (1 << (SqlParser.SESSION_USER - 873)) | (1 << (SqlParser.SHA - 873)) | (1 << (SqlParser.SHA1 - 873)) | (1 << (SqlParser.SHA2 - 873)) | (1 << (SqlParser.SCHEMA_NAME - 873)) | (1 << (SqlParser.SIGN - 873)) | (1 << (SqlParser.SIN - 873)) | (1 << (SqlParser.SLEEP - 873)) | (1 << (SqlParser.SOUNDEX - 873)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 873)) | (1 << (SqlParser.SQRT - 873)) | (1 << (SqlParser.SRID - 873)) | (1 << (SqlParser.STARTPOINT - 873)) | (1 << (SqlParser.STRCMP - 873)) | (1 << (SqlParser.STR_TO_DATE - 873)) | (1 << (SqlParser.ST_AREA - 873)) | (1 << (SqlParser.ST_ASBINARY - 873)))) !== 0) || ((((_la - 905)) & ~0x1f) == 0 && ((1 << (_la - 905)) & ((1 << (SqlParser.ST_ASTEXT - 905)) | (1 << (SqlParser.ST_ASWKB - 905)) | (1 << (SqlParser.ST_ASWKT - 905)) | (1 << (SqlParser.ST_BUFFER - 905)) | (1 << (SqlParser.ST_CENTROID - 905)) | (1 << (SqlParser.ST_CONTAINS - 905)) | (1 << (SqlParser.ST_CROSSES - 905)) | (1 << (SqlParser.ST_DIFFERENCE - 905)) | (1 << (SqlParser.ST_DIMENSION - 905)) | (1 << (SqlParser.ST_DISJOINT - 905)) | (1 << (SqlParser.ST_DISTANCE - 905)) | (1 << (SqlParser.ST_ENDPOINT - 905)) | (1 << (SqlParser.ST_ENVELOPE - 905)) | (1 << (SqlParser.ST_EQUALS - 905)) | (1 << (SqlParser.ST_EXTERIORRING - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYN - 905)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 905)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMFROMWKB - 905)) | (1 << (SqlParser.ST_INTERIORRINGN - 905)) | (1 << (SqlParser.ST_INTERSECTION - 905)) | (1 << (SqlParser.ST_INTERSECTS - 905)) | (1 << (SqlParser.ST_ISCLOSED - 905)) | (1 << (SqlParser.ST_ISEMPTY - 905)) | (1 << (SqlParser.ST_ISSIMPLE - 905)))) !== 0) || ((((_la - 937)) & ~0x1f) == 0 && ((1 << (_la - 937)) & ((1 << (SqlParser.ST_LINEFROMTEXT - 937)) | (1 << (SqlParser.ST_LINEFROMWKB - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 937)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 937)) | (1 << (SqlParser.ST_NUMINTERIORRING - 937)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 937)) | (1 << (SqlParser.ST_NUMPOINTS - 937)) | (1 << (SqlParser.ST_OVERLAPS - 937)) | (1 << (SqlParser.ST_POINTFROMTEXT - 937)) | (1 << (SqlParser.ST_POINTFROMWKB - 937)) | (1 << (SqlParser.ST_POINTN - 937)) | (1 << (SqlParser.ST_POLYFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYFROMWKB - 937)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 937)) | (1 << (SqlParser.ST_SRID - 937)) | (1 << (SqlParser.ST_STARTPOINT - 937)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 937)) | (1 << (SqlParser.ST_TOUCHES - 937)) | (1 << (SqlParser.ST_UNION - 937)) | (1 << (SqlParser.ST_WITHIN - 937)) | (1 << (SqlParser.ST_X - 937)) | (1 << (SqlParser.ST_Y - 937)) | (1 << (SqlParser.SUBDATE - 937)) | (1 << (SqlParser.SUBSTRING_INDEX - 937)) | (1 << (SqlParser.SUBTIME - 937)) | (1 << (SqlParser.SYSTEM_USER - 937)) | (1 << (SqlParser.TAN - 937)) | (1 << (SqlParser.TIMEDIFF - 937)) | (1 << (SqlParser.TIMESTAMPADD - 937)) | (1 << (SqlParser.TIMESTAMPDIFF - 937)))) !== 0) || ((((_la - 969)) & ~0x1f) == 0 && ((1 << (_la - 969)) & ((1 << (SqlParser.TIME_FORMAT - 969)) | (1 << (SqlParser.TIME_TO_SEC - 969)) | (1 << (SqlParser.TOUCHES - 969)) | (1 << (SqlParser.TO_BASE64 - 969)) | (1 << (SqlParser.TO_DAYS - 969)) | (1 << (SqlParser.TO_SECONDS - 969)) | (1 << (SqlParser.UCASE - 969)) | (1 << (SqlParser.UNCOMPRESS - 969)) | (1 << (SqlParser.UNCOMPRESSED_LENGTH - 969)) | (1 << (SqlParser.UNHEX - 969)) | (1 << (SqlParser.UNIX_TIMESTAMP - 969)) | (1 << (SqlParser.UPDATEXML - 969)) | (1 << (SqlParser.UPPER - 969)) | (1 << (SqlParser.UUID - 969)) | (1 << (SqlParser.UUID_SHORT - 969)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 969)) | (1 << (SqlParser.VERSION - 969)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 969)) | (1 << (SqlParser.WEEKDAY - 969)) | (1 << (SqlParser.WEEKOFYEAR - 969)) | (1 << (SqlParser.WEIGHT_STRING - 969)) | (1 << (SqlParser.WITHIN - 969)) | (1 << (SqlParser.YEARWEEK - 969)) | (1 << (SqlParser.Y_FUNCTION - 969)) | (1 << (SqlParser.X_FUNCTION - 969)))) !== 0) || ((((_la - 1006)) & ~0x1f) == 0 && ((1 << (_la - 1006)) & ((1 << (SqlParser.PLUS - 1006)) | (1 << (SqlParser.MINUS - 1006)) | (1 << (SqlParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (SqlParser.BIT_NOT_OP - 1006)) | (1 << (SqlParser.LR_BRACKET - 1006)) | (1 << (SqlParser.ZERO_DECIMAL - 1006)) | (1 << (SqlParser.ONE_DECIMAL - 1006)) | (1 << (SqlParser.TWO_DECIMAL - 1006)) | (1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1006)) | (1 << (SqlParser.START_NATIONAL_STRING_LITERAL - 1006)) | (1 << (SqlParser.STRING_LITERAL - 1006)) | (1 << (SqlParser.DECIMAL_LITERAL - 1006)) | (1 << (SqlParser.HEXADECIMAL_LITERAL - 1006)))) !== 0) || ((((_la - 1038)) & ~0x1f) == 0 && ((1 << (_la - 1038)) & ((1 << (SqlParser.REAL_LITERAL - 1038)) | (1 << (SqlParser.NULL_SPEC_LITERAL - 1038)) | (1 << (SqlParser.BIT_STRING - 1038)) | (1 << (SqlParser.STRING_CHARSET_NAME - 1038)) | (1 << (SqlParser.ID - 1038)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1038)) | (1 << (SqlParser.LOCAL_ID - 1038)) | (1 << (SqlParser.GLOBAL_ID - 1038)))) !== 0)) {
                this.state = 3060;
                this.expressionsWithDefaults();
            }

            this.state = 3063;
            this.match(SqlParser.RR_BRACKET);
            this.state = 3072;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 3064;
                this.match(SqlParser.COMMA);
                this.state = 3065;
                this.match(SqlParser.LR_BRACKET);
                this.state = 3067;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SqlParser.CASE) | (1 << SqlParser.CAST) | (1 << SqlParser.CONVERT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.CURRENT_USER - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DEFAULT - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)) | (1 << (SqlParser.EXISTS - 32)) | (1 << (SqlParser.FALSE - 32)))) !== 0) || ((((_la - 69)) & ~0x1f) == 0 && ((1 << (_la - 69)) & ((1 << (SqlParser.IF - 69)) | (1 << (SqlParser.INSERT - 69)) | (1 << (SqlParser.INTERVAL - 69)) | (1 << (SqlParser.LEFT - 69)))) !== 0) || ((((_la - 102)) & ~0x1f) == 0 && ((1 << (_la - 102)) & ((1 << (SqlParser.NOT - 102)) | (1 << (SqlParser.NULL_LITERAL - 102)) | (1 << (SqlParser.NUMBER - 102)) | (1 << (SqlParser.REPLACE - 102)) | (1 << (SqlParser.RIGHT - 102)))) !== 0) || ((((_la - 151)) & ~0x1f) == 0 && ((1 << (_la - 151)) & ((1 << (SqlParser.STACKED - 151)) | (1 << (SqlParser.TRUE - 151)) | (1 << (SqlParser.VALUES - 151)))) !== 0) || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.CHAR - 199)) | (1 << (SqlParser.BINARY - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.AVG - 233)) | (1 << (SqlParser.BIT_AND - 233)) | (1 << (SqlParser.BIT_OR - 233)) | (1 << (SqlParser.BIT_XOR - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.GROUP_CONCAT - 233)) | (1 << (SqlParser.MAX - 233)) | (1 << (SqlParser.MIN - 233)) | (1 << (SqlParser.STD - 233)) | (1 << (SqlParser.STDDEV - 233)) | (1 << (SqlParser.STDDEV_POP - 233)) | (1 << (SqlParser.STDDEV_SAMP - 233)) | (1 << (SqlParser.SUM - 233)) | (1 << (SqlParser.VAR_POP - 233)) | (1 << (SqlParser.VAR_SAMP - 233)) | (1 << (SqlParser.VARIANCE - 233)) | (1 << (SqlParser.CURRENT_DATE - 233)) | (1 << (SqlParser.CURRENT_TIME - 233)) | (1 << (SqlParser.CURRENT_TIMESTAMP - 233)) | (1 << (SqlParser.LOCALTIME - 233)) | (1 << (SqlParser.CURDATE - 233)) | (1 << (SqlParser.CURTIME - 233)) | (1 << (SqlParser.DATE_ADD - 233)) | (1 << (SqlParser.DATE_SUB - 233)) | (1 << (SqlParser.EXTRACT - 233)) | (1 << (SqlParser.LOCALTIMESTAMP - 233)) | (1 << (SqlParser.NOW - 233)) | (1 << (SqlParser.POSITION - 233)) | (1 << (SqlParser.SUBSTR - 233)) | (1 << (SqlParser.SUBSTRING - 233)))) !== 0) || ((((_la - 265)) & ~0x1f) == 0 && ((1 << (_la - 265)) & ((1 << (SqlParser.SYSDATE - 265)) | (1 << (SqlParser.TRIM - 265)) | (1 << (SqlParser.UTC_DATE - 265)) | (1 << (SqlParser.UTC_TIME - 265)) | (1 << (SqlParser.UTC_TIMESTAMP - 265)) | (1 << (SqlParser.ACCOUNT - 265)) | (1 << (SqlParser.ACTION - 265)) | (1 << (SqlParser.AFTER - 265)) | (1 << (SqlParser.AGGREGATE - 265)) | (1 << (SqlParser.ALGORITHM - 265)) | (1 << (SqlParser.ANY - 265)) | (1 << (SqlParser.AT - 265)) | (1 << (SqlParser.AUTHORS - 265)) | (1 << (SqlParser.AUTOCOMMIT - 265)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 265)) | (1 << (SqlParser.AUTO_INCREMENT - 265)) | (1 << (SqlParser.AVG_ROW_LENGTH - 265)) | (1 << (SqlParser.BEGIN - 265)) | (1 << (SqlParser.BINLOG - 265)) | (1 << (SqlParser.BIT - 265)) | (1 << (SqlParser.BLOCK - 265)) | (1 << (SqlParser.BOOL - 265)) | (1 << (SqlParser.BOOLEAN - 265)) | (1 << (SqlParser.BTREE - 265)) | (1 << (SqlParser.CACHE - 265)) | (1 << (SqlParser.CASCADED - 265)) | (1 << (SqlParser.CHAIN - 265)) | (1 << (SqlParser.CHANGED - 265)) | (1 << (SqlParser.CHANNEL - 265)) | (1 << (SqlParser.CHECKSUM - 265)) | (1 << (SqlParser.PAGE_CHECKSUM - 265)) | (1 << (SqlParser.CIPHER - 265)))) !== 0) || ((((_la - 297)) & ~0x1f) == 0 && ((1 << (_la - 297)) & ((1 << (SqlParser.CLASS_ORIGIN - 297)) | (1 << (SqlParser.CLIENT - 297)) | (1 << (SqlParser.CLOSE - 297)) | (1 << (SqlParser.COALESCE - 297)) | (1 << (SqlParser.CODE - 297)) | (1 << (SqlParser.COLUMNS - 297)) | (1 << (SqlParser.COLUMN_FORMAT - 297)) | (1 << (SqlParser.COLUMN_NAME - 297)) | (1 << (SqlParser.COMMENT - 297)) | (1 << (SqlParser.COMMIT - 297)) | (1 << (SqlParser.COMPACT - 297)) | (1 << (SqlParser.COMPLETION - 297)) | (1 << (SqlParser.COMPRESSED - 297)) | (1 << (SqlParser.COMPRESSION - 297)) | (1 << (SqlParser.CONCURRENT - 297)) | (1 << (SqlParser.CONNECTION - 297)) | (1 << (SqlParser.CONSISTENT - 297)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 297)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 297)) | (1 << (SqlParser.CONSTRAINT_NAME - 297)) | (1 << (SqlParser.CONTAINS - 297)) | (1 << (SqlParser.CONTEXT - 297)) | (1 << (SqlParser.CONTRIBUTORS - 297)) | (1 << (SqlParser.COPY - 297)) | (1 << (SqlParser.CPU - 297)) | (1 << (SqlParser.CURSOR_NAME - 297)) | (1 << (SqlParser.DATA - 297)) | (1 << (SqlParser.DATAFILE - 297)) | (1 << (SqlParser.DEALLOCATE - 297)) | (1 << (SqlParser.DEFAULT_AUTH - 297)) | (1 << (SqlParser.DEFINER - 297)) | (1 << (SqlParser.DELAY_KEY_WRITE - 297)))) !== 0) || ((((_la - 329)) & ~0x1f) == 0 && ((1 << (_la - 329)) & ((1 << (SqlParser.DES_KEY_FILE - 329)) | (1 << (SqlParser.DIRECTORY - 329)) | (1 << (SqlParser.DISABLE - 329)) | (1 << (SqlParser.DISCARD - 329)) | (1 << (SqlParser.DISK - 329)) | (1 << (SqlParser.DO - 329)) | (1 << (SqlParser.DUMPFILE - 329)) | (1 << (SqlParser.DUPLICATE - 329)) | (1 << (SqlParser.DYNAMIC - 329)) | (1 << (SqlParser.ENABLE - 329)) | (1 << (SqlParser.ENCRYPTION - 329)) | (1 << (SqlParser.END - 329)) | (1 << (SqlParser.ENDS - 329)) | (1 << (SqlParser.ENGINE - 329)) | (1 << (SqlParser.ENGINES - 329)) | (1 << (SqlParser.ERROR - 329)) | (1 << (SqlParser.ERRORS - 329)) | (1 << (SqlParser.ESCAPE - 329)) | (1 << (SqlParser.EVEN - 329)) | (1 << (SqlParser.EVENT - 329)) | (1 << (SqlParser.EVENTS - 329)) | (1 << (SqlParser.EVERY - 329)) | (1 << (SqlParser.EXCHANGE - 329)) | (1 << (SqlParser.EXCLUSIVE - 329)) | (1 << (SqlParser.EXPIRE - 329)) | (1 << (SqlParser.EXPORT - 329)) | (1 << (SqlParser.EXTENDED - 329)) | (1 << (SqlParser.EXTENT_SIZE - 329)) | (1 << (SqlParser.FAST - 329)) | (1 << (SqlParser.FAULTS - 329)) | (1 << (SqlParser.FIELDS - 329)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 329)))) !== 0) || ((((_la - 361)) & ~0x1f) == 0 && ((1 << (_la - 361)) & ((1 << (SqlParser.FILTER - 361)) | (1 << (SqlParser.FIRST - 361)) | (1 << (SqlParser.FIXED - 361)) | (1 << (SqlParser.FLUSH - 361)) | (1 << (SqlParser.FOLLOWS - 361)) | (1 << (SqlParser.FOUND - 361)) | (1 << (SqlParser.FULL - 361)) | (1 << (SqlParser.FUNCTION - 361)) | (1 << (SqlParser.GENERAL - 361)) | (1 << (SqlParser.GLOBAL - 361)) | (1 << (SqlParser.GRANTS - 361)) | (1 << (SqlParser.GROUP_REPLICATION - 361)) | (1 << (SqlParser.HANDLER - 361)) | (1 << (SqlParser.HASH - 361)) | (1 << (SqlParser.HELP - 361)) | (1 << (SqlParser.HOST - 361)) | (1 << (SqlParser.HOSTS - 361)) | (1 << (SqlParser.IDENTIFIED - 361)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 361)) | (1 << (SqlParser.IMPORT - 361)) | (1 << (SqlParser.INDEXES - 361)) | (1 << (SqlParser.INITIAL_SIZE - 361)) | (1 << (SqlParser.INPLACE - 361)) | (1 << (SqlParser.INSERT_METHOD - 361)) | (1 << (SqlParser.INSTALL - 361)) | (1 << (SqlParser.INSTANCE - 361)) | (1 << (SqlParser.INVISIBLE - 361)) | (1 << (SqlParser.INVOKER - 361)) | (1 << (SqlParser.IO - 361)) | (1 << (SqlParser.IO_THREAD - 361)) | (1 << (SqlParser.IPC - 361)) | (1 << (SqlParser.ISOLATION - 361)))) !== 0) || ((((_la - 393)) & ~0x1f) == 0 && ((1 << (_la - 393)) & ((1 << (SqlParser.ISSUER - 393)) | (1 << (SqlParser.JSON - 393)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 393)) | (1 << (SqlParser.LANGUAGE - 393)) | (1 << (SqlParser.LAST - 393)) | (1 << (SqlParser.LEAVES - 393)) | (1 << (SqlParser.LESS - 393)) | (1 << (SqlParser.LEVEL - 393)) | (1 << (SqlParser.LIST - 393)) | (1 << (SqlParser.LOCAL - 393)) | (1 << (SqlParser.LOGFILE - 393)) | (1 << (SqlParser.LOGS - 393)) | (1 << (SqlParser.MASTER - 393)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 393)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 393)) | (1 << (SqlParser.MASTER_DELAY - 393)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 393)) | (1 << (SqlParser.MASTER_HOST - 393)) | (1 << (SqlParser.MASTER_LOG_FILE - 393)) | (1 << (SqlParser.MASTER_LOG_POS - 393)) | (1 << (SqlParser.MASTER_PASSWORD - 393)) | (1 << (SqlParser.MASTER_PORT - 393)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 393)) | (1 << (SqlParser.MASTER_SSL - 393)) | (1 << (SqlParser.MASTER_SSL_CA - 393)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 393)) | (1 << (SqlParser.MASTER_SSL_CERT - 393)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 393)) | (1 << (SqlParser.MASTER_SSL_CRL - 393)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 393)) | (1 << (SqlParser.MASTER_SSL_KEY - 393)) | (1 << (SqlParser.MASTER_TLS_VERSION - 393)))) !== 0) || ((((_la - 425)) & ~0x1f) == 0 && ((1 << (_la - 425)) & ((1 << (SqlParser.MASTER_USER - 425)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 425)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_ROWS - 425)) | (1 << (SqlParser.MAX_SIZE - 425)) | (1 << (SqlParser.MAX_UPDATES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 425)) | (1 << (SqlParser.MEDIUM - 425)) | (1 << (SqlParser.MERGE - 425)) | (1 << (SqlParser.MESSAGE_TEXT - 425)) | (1 << (SqlParser.MID - 425)) | (1 << (SqlParser.MIGRATE - 425)) | (1 << (SqlParser.MIN_ROWS - 425)) | (1 << (SqlParser.MODE - 425)) | (1 << (SqlParser.MODIFY - 425)) | (1 << (SqlParser.MUTEX - 425)) | (1 << (SqlParser.MYSQL - 425)) | (1 << (SqlParser.MYSQL_ERRNO - 425)) | (1 << (SqlParser.NAME - 425)) | (1 << (SqlParser.NAMES - 425)) | (1 << (SqlParser.NCHAR - 425)) | (1 << (SqlParser.NEVER - 425)) | (1 << (SqlParser.NEXT - 425)) | (1 << (SqlParser.NO - 425)) | (1 << (SqlParser.NODEGROUP - 425)) | (1 << (SqlParser.NONE - 425)) | (1 << (SqlParser.OFFLINE - 425)) | (1 << (SqlParser.OFFSET - 425)) | (1 << (SqlParser.OJ - 425)) | (1 << (SqlParser.OLD_PASSWORD - 425)) | (1 << (SqlParser.ONE - 425)) | (1 << (SqlParser.ONLINE - 425)))) !== 0) || ((((_la - 457)) & ~0x1f) == 0 && ((1 << (_la - 457)) & ((1 << (SqlParser.ONLY - 457)) | (1 << (SqlParser.OPEN - 457)) | (1 << (SqlParser.OPTIMIZER_COSTS - 457)) | (1 << (SqlParser.OPTIONS - 457)) | (1 << (SqlParser.OWNER - 457)) | (1 << (SqlParser.PACK_KEYS - 457)) | (1 << (SqlParser.PAGE - 457)) | (1 << (SqlParser.PARSER - 457)) | (1 << (SqlParser.PARTIAL - 457)) | (1 << (SqlParser.PARTITIONING - 457)) | (1 << (SqlParser.PARTITIONS - 457)) | (1 << (SqlParser.PASSWORD - 457)) | (1 << (SqlParser.PHASE - 457)) | (1 << (SqlParser.PLUGIN - 457)) | (1 << (SqlParser.PLUGIN_DIR - 457)) | (1 << (SqlParser.PLUGINS - 457)) | (1 << (SqlParser.PORT - 457)) | (1 << (SqlParser.PRECEDES - 457)) | (1 << (SqlParser.PREPARE - 457)) | (1 << (SqlParser.PRESERVE - 457)) | (1 << (SqlParser.PREV - 457)) | (1 << (SqlParser.PROCESSLIST - 457)) | (1 << (SqlParser.PROFILE - 457)) | (1 << (SqlParser.PROFILES - 457)) | (1 << (SqlParser.PROXY - 457)) | (1 << (SqlParser.QUERY - 457)) | (1 << (SqlParser.QUICK - 457)) | (1 << (SqlParser.REBUILD - 457)) | (1 << (SqlParser.RECOVER - 457)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 457)) | (1 << (SqlParser.REDUNDANT - 457)) | (1 << (SqlParser.RELAY - 457)))) !== 0) || ((((_la - 489)) & ~0x1f) == 0 && ((1 << (_la - 489)) & ((1 << (SqlParser.RELAY_LOG_FILE - 489)) | (1 << (SqlParser.RELAY_LOG_POS - 489)) | (1 << (SqlParser.RELAYLOG - 489)) | (1 << (SqlParser.REMOVE - 489)) | (1 << (SqlParser.REORGANIZE - 489)) | (1 << (SqlParser.REPAIR - 489)) | (1 << (SqlParser.REPLICATE_DO_DB - 489)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 489)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATION - 489)) | (1 << (SqlParser.RESET - 489)) | (1 << (SqlParser.RESUME - 489)) | (1 << (SqlParser.RETURNED_SQLSTATE - 489)) | (1 << (SqlParser.RETURNS - 489)) | (1 << (SqlParser.ROLE - 489)) | (1 << (SqlParser.ROLLBACK - 489)) | (1 << (SqlParser.ROLLUP - 489)) | (1 << (SqlParser.ROTATE - 489)) | (1 << (SqlParser.ROW - 489)) | (1 << (SqlParser.ROWS - 489)) | (1 << (SqlParser.ROW_FORMAT - 489)) | (1 << (SqlParser.SAVEPOINT - 489)) | (1 << (SqlParser.SCHEDULE - 489)) | (1 << (SqlParser.SECURITY - 489)) | (1 << (SqlParser.SERVER - 489)) | (1 << (SqlParser.SESSION - 489)) | (1 << (SqlParser.SHARE - 489)) | (1 << (SqlParser.SHARED - 489)))) !== 0) || ((((_la - 521)) & ~0x1f) == 0 && ((1 << (_la - 521)) & ((1 << (SqlParser.SIGNED - 521)) | (1 << (SqlParser.SIMPLE - 521)) | (1 << (SqlParser.SLAVE - 521)) | (1 << (SqlParser.SLOW - 521)) | (1 << (SqlParser.SNAPSHOT - 521)) | (1 << (SqlParser.SOCKET - 521)) | (1 << (SqlParser.SOME - 521)) | (1 << (SqlParser.SONAME - 521)) | (1 << (SqlParser.SOUNDS - 521)) | (1 << (SqlParser.SOURCE - 521)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 521)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 521)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 521)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 521)) | (1 << (SqlParser.SQL_CACHE - 521)) | (1 << (SqlParser.SQL_NO_CACHE - 521)) | (1 << (SqlParser.SQL_THREAD - 521)) | (1 << (SqlParser.START - 521)) | (1 << (SqlParser.STARTS - 521)) | (1 << (SqlParser.STATS_AUTO_RECALC - 521)) | (1 << (SqlParser.STATS_PERSISTENT - 521)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 521)) | (1 << (SqlParser.STATUS - 521)) | (1 << (SqlParser.STOP - 521)) | (1 << (SqlParser.STORAGE - 521)) | (1 << (SqlParser.STRING - 521)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 521)) | (1 << (SqlParser.SUBJECT - 521)) | (1 << (SqlParser.SUBPARTITION - 521)) | (1 << (SqlParser.SUBPARTITIONS - 521)) | (1 << (SqlParser.SUSPEND - 521)))) !== 0) || ((((_la - 553)) & ~0x1f) == 0 && ((1 << (_la - 553)) & ((1 << (SqlParser.SWAPS - 553)) | (1 << (SqlParser.SWITCHES - 553)) | (1 << (SqlParser.TABLE_NAME - 553)) | (1 << (SqlParser.TABLESPACE - 553)) | (1 << (SqlParser.TEMPORARY - 553)) | (1 << (SqlParser.TEMPTABLE - 553)) | (1 << (SqlParser.THAN - 553)) | (1 << (SqlParser.TRADITIONAL - 553)) | (1 << (SqlParser.TRANSACTION - 553)) | (1 << (SqlParser.TRANSACTIONAL - 553)) | (1 << (SqlParser.TRIGGERS - 553)) | (1 << (SqlParser.TRUNCATE - 553)) | (1 << (SqlParser.UNDEFINED - 553)) | (1 << (SqlParser.UNDOFILE - 553)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 553)) | (1 << (SqlParser.UNINSTALL - 553)) | (1 << (SqlParser.UNKNOWN - 553)) | (1 << (SqlParser.UNTIL - 553)) | (1 << (SqlParser.UPGRADE - 553)) | (1 << (SqlParser.USER - 553)) | (1 << (SqlParser.USE_FRM - 553)) | (1 << (SqlParser.USER_RESOURCES - 553)) | (1 << (SqlParser.VALIDATION - 553)) | (1 << (SqlParser.VALUE - 553)) | (1 << (SqlParser.VARIABLES - 553)) | (1 << (SqlParser.VIEW - 553)) | (1 << (SqlParser.VISIBLE - 553)) | (1 << (SqlParser.WAIT - 553)) | (1 << (SqlParser.WARNINGS - 553)) | (1 << (SqlParser.WITHOUT - 553)) | (1 << (SqlParser.WORK - 553)))) !== 0) || ((((_la - 585)) & ~0x1f) == 0 && ((1 << (_la - 585)) & ((1 << (SqlParser.WRAPPER - 585)) | (1 << (SqlParser.X509 - 585)) | (1 << (SqlParser.XA - 585)) | (1 << (SqlParser.XML - 585)) | (1 << (SqlParser.INTERNAL - 585)) | (1 << (SqlParser.QUARTER - 585)) | (1 << (SqlParser.MONTH - 585)) | (1 << (SqlParser.DAY - 585)) | (1 << (SqlParser.HOUR - 585)) | (1 << (SqlParser.MINUTE - 585)) | (1 << (SqlParser.WEEK - 585)) | (1 << (SqlParser.SECOND - 585)) | (1 << (SqlParser.MICROSECOND - 585)) | (1 << (SqlParser.TABLES - 585)) | (1 << (SqlParser.ROUTINE - 585)) | (1 << (SqlParser.EXECUTE - 585)) | (1 << (SqlParser.FILE - 585)) | (1 << (SqlParser.PROCESS - 585)) | (1 << (SqlParser.RELOAD - 585)) | (1 << (SqlParser.SHUTDOWN - 585)) | (1 << (SqlParser.SUPER - 585)) | (1 << (SqlParser.PRIVILEGES - 585)) | (1 << (SqlParser.AUDIT_ADMIN - 585)) | (1 << (SqlParser.BACKUP_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 585)) | (1 << (SqlParser.CLONE_ADMIN - 585)))) !== 0) || ((((_la - 617)) & ~0x1f) == 0 && ((1 << (_la - 617)) & ((1 << (SqlParser.CONNECTION_ADMIN - 617)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_USER - 617)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 617)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 617)) | (1 << (SqlParser.NDB_STORED_USER - 617)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.REPLICATION_APPLIER - 617)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 617)) | (1 << (SqlParser.ROLE_ADMIN - 617)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.SET_USER_ID - 617)) | (1 << (SqlParser.SHOW_ROUTINE - 617)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 617)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 617)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 617)) | (1 << (SqlParser.ARMSCII8 - 617)) | (1 << (SqlParser.ASCII - 617)) | (1 << (SqlParser.BIG5 - 617)) | (1 << (SqlParser.CP1250 - 617)) | (1 << (SqlParser.CP1251 - 617)) | (1 << (SqlParser.CP1256 - 617)) | (1 << (SqlParser.CP1257 - 617)) | (1 << (SqlParser.CP850 - 617)) | (1 << (SqlParser.CP852 - 617)) | (1 << (SqlParser.CP866 - 617)) | (1 << (SqlParser.CP932 - 617)) | (1 << (SqlParser.DEC8 - 617)))) !== 0) || ((((_la - 649)) & ~0x1f) == 0 && ((1 << (_la - 649)) & ((1 << (SqlParser.EUCJPMS - 649)) | (1 << (SqlParser.EUCKR - 649)) | (1 << (SqlParser.GB2312 - 649)) | (1 << (SqlParser.GBK - 649)) | (1 << (SqlParser.GEOSTD8 - 649)) | (1 << (SqlParser.GREEK - 649)) | (1 << (SqlParser.HEBREW - 649)) | (1 << (SqlParser.HP8 - 649)) | (1 << (SqlParser.KEYBCS2 - 649)) | (1 << (SqlParser.KOI8R - 649)) | (1 << (SqlParser.KOI8U - 649)) | (1 << (SqlParser.LATIN1 - 649)) | (1 << (SqlParser.LATIN2 - 649)) | (1 << (SqlParser.LATIN5 - 649)) | (1 << (SqlParser.LATIN7 - 649)) | (1 << (SqlParser.MACCE - 649)) | (1 << (SqlParser.MACROMAN - 649)) | (1 << (SqlParser.SJIS - 649)) | (1 << (SqlParser.SWE7 - 649)) | (1 << (SqlParser.TIS620 - 649)) | (1 << (SqlParser.UCS2 - 649)) | (1 << (SqlParser.UJIS - 649)) | (1 << (SqlParser.UTF16 - 649)) | (1 << (SqlParser.UTF16LE - 649)) | (1 << (SqlParser.UTF32 - 649)) | (1 << (SqlParser.UTF8 - 649)) | (1 << (SqlParser.UTF8MB3 - 649)) | (1 << (SqlParser.UTF8MB4 - 649)) | (1 << (SqlParser.ARCHIVE - 649)) | (1 << (SqlParser.BLACKHOLE - 649)) | (1 << (SqlParser.CSV - 649)) | (1 << (SqlParser.FEDERATED - 649)))) !== 0) || ((((_la - 681)) & ~0x1f) == 0 && ((1 << (_la - 681)) & ((1 << (SqlParser.INNODB - 681)) | (1 << (SqlParser.MEMORY - 681)) | (1 << (SqlParser.MRG_MYISAM - 681)) | (1 << (SqlParser.MYISAM - 681)) | (1 << (SqlParser.NDB - 681)) | (1 << (SqlParser.NDBCLUSTER - 681)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 681)) | (1 << (SqlParser.TOKUDB - 681)) | (1 << (SqlParser.REPEATABLE - 681)) | (1 << (SqlParser.COMMITTED - 681)) | (1 << (SqlParser.UNCOMMITTED - 681)) | (1 << (SqlParser.SERIALIZABLE - 681)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 681)) | (1 << (SqlParser.LINESTRING - 681)) | (1 << (SqlParser.MULTILINESTRING - 681)) | (1 << (SqlParser.MULTIPOINT - 681)) | (1 << (SqlParser.MULTIPOLYGON - 681)) | (1 << (SqlParser.POINT - 681)) | (1 << (SqlParser.POLYGON - 681)) | (1 << (SqlParser.ABS - 681)) | (1 << (SqlParser.ACOS - 681)) | (1 << (SqlParser.ADDDATE - 681)) | (1 << (SqlParser.ADDTIME - 681)) | (1 << (SqlParser.AES_DECRYPT - 681)) | (1 << (SqlParser.AES_ENCRYPT - 681)) | (1 << (SqlParser.AREA - 681)) | (1 << (SqlParser.ASBINARY - 681)) | (1 << (SqlParser.ASIN - 681)) | (1 << (SqlParser.ASTEXT - 681)) | (1 << (SqlParser.ASWKB - 681)))) !== 0) || ((((_la - 713)) & ~0x1f) == 0 && ((1 << (_la - 713)) & ((1 << (SqlParser.ASWKT - 713)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 713)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 713)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 713)) | (1 << (SqlParser.ATAN - 713)) | (1 << (SqlParser.ATAN2 - 713)) | (1 << (SqlParser.BENCHMARK - 713)) | (1 << (SqlParser.BIN - 713)) | (1 << (SqlParser.BIT_COUNT - 713)) | (1 << (SqlParser.BIT_LENGTH - 713)) | (1 << (SqlParser.BUFFER - 713)) | (1 << (SqlParser.CATALOG_NAME - 713)) | (1 << (SqlParser.CEIL - 713)) | (1 << (SqlParser.CEILING - 713)) | (1 << (SqlParser.CENTROID - 713)) | (1 << (SqlParser.CHARACTER_LENGTH - 713)) | (1 << (SqlParser.CHARSET - 713)) | (1 << (SqlParser.CHAR_LENGTH - 713)) | (1 << (SqlParser.COERCIBILITY - 713)) | (1 << (SqlParser.COLLATION - 713)) | (1 << (SqlParser.COMPRESS - 713)) | (1 << (SqlParser.CONCAT - 713)) | (1 << (SqlParser.CONCAT_WS - 713)) | (1 << (SqlParser.CONNECTION_ID - 713)) | (1 << (SqlParser.CONV - 713)) | (1 << (SqlParser.CONVERT_TZ - 713)) | (1 << (SqlParser.COS - 713)) | (1 << (SqlParser.COT - 713)) | (1 << (SqlParser.CRC32 - 713)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 713)))) !== 0) || ((((_la - 745)) & ~0x1f) == 0 && ((1 << (_la - 745)) & ((1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 745)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 745)) | (1 << (SqlParser.CREATE_DIGEST - 745)) | (1 << (SqlParser.CROSSES - 745)) | (1 << (SqlParser.DATEDIFF - 745)) | (1 << (SqlParser.DATE_FORMAT - 745)) | (1 << (SqlParser.DAYNAME - 745)) | (1 << (SqlParser.DAYOFMONTH - 745)) | (1 << (SqlParser.DAYOFWEEK - 745)) | (1 << (SqlParser.DAYOFYEAR - 745)) | (1 << (SqlParser.DECODE - 745)) | (1 << (SqlParser.DEGREES - 745)) | (1 << (SqlParser.DES_DECRYPT - 745)) | (1 << (SqlParser.DES_ENCRYPT - 745)) | (1 << (SqlParser.DIMENSION - 745)) | (1 << (SqlParser.DISJOINT - 745)) | (1 << (SqlParser.ELT - 745)) | (1 << (SqlParser.ENCODE - 745)) | (1 << (SqlParser.ENCRYPT - 745)) | (1 << (SqlParser.ENDPOINT - 745)) | (1 << (SqlParser.ENVELOPE - 745)) | (1 << (SqlParser.EQUALS - 745)) | (1 << (SqlParser.EXP - 745)) | (1 << (SqlParser.EXPORT_SET - 745)) | (1 << (SqlParser.EXTERIORRING - 745)) | (1 << (SqlParser.EXTRACTVALUE - 745)) | (1 << (SqlParser.FIELD - 745)) | (1 << (SqlParser.FIND_IN_SET - 745)) | (1 << (SqlParser.FLOOR - 745)) | (1 << (SqlParser.FORMAT - 745)) | (1 << (SqlParser.FOUND_ROWS - 745)) | (1 << (SqlParser.FROM_BASE64 - 745)))) !== 0) || ((((_la - 777)) & ~0x1f) == 0 && ((1 << (_la - 777)) & ((1 << (SqlParser.FROM_DAYS - 777)) | (1 << (SqlParser.FROM_UNIXTIME - 777)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 777)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYN - 777)) | (1 << (SqlParser.GEOMETRYTYPE - 777)) | (1 << (SqlParser.GEOMFROMTEXT - 777)) | (1 << (SqlParser.GEOMFROMWKB - 777)) | (1 << (SqlParser.GET_FORMAT - 777)) | (1 << (SqlParser.GET_LOCK - 777)) | (1 << (SqlParser.GLENGTH - 777)) | (1 << (SqlParser.GREATEST - 777)) | (1 << (SqlParser.GTID_SUBSET - 777)) | (1 << (SqlParser.GTID_SUBTRACT - 777)) | (1 << (SqlParser.HEX - 777)) | (1 << (SqlParser.IFNULL - 777)) | (1 << (SqlParser.INET6_ATON - 777)) | (1 << (SqlParser.INET6_NTOA - 777)) | (1 << (SqlParser.INET_ATON - 777)) | (1 << (SqlParser.INET_NTOA - 777)) | (1 << (SqlParser.INSTR - 777)) | (1 << (SqlParser.INTERIORRINGN - 777)) | (1 << (SqlParser.INTERSECTS - 777)) | (1 << (SqlParser.ISCLOSED - 777)) | (1 << (SqlParser.ISEMPTY - 777)) | (1 << (SqlParser.ISNULL - 777)) | (1 << (SqlParser.ISSIMPLE - 777)) | (1 << (SqlParser.IS_FREE_LOCK - 777)))) !== 0) || ((((_la - 809)) & ~0x1f) == 0 && ((1 << (_la - 809)) & ((1 << (SqlParser.IS_IPV4 - 809)) | (1 << (SqlParser.IS_IPV4_COMPAT - 809)) | (1 << (SqlParser.IS_IPV4_MAPPED - 809)) | (1 << (SqlParser.IS_IPV6 - 809)) | (1 << (SqlParser.IS_USED_LOCK - 809)) | (1 << (SqlParser.LAST_INSERT_ID - 809)) | (1 << (SqlParser.LCASE - 809)) | (1 << (SqlParser.LEAST - 809)) | (1 << (SqlParser.LENGTH - 809)) | (1 << (SqlParser.LINEFROMTEXT - 809)) | (1 << (SqlParser.LINEFROMWKB - 809)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 809)) | (1 << (SqlParser.LINESTRINGFROMWKB - 809)) | (1 << (SqlParser.LN - 809)) | (1 << (SqlParser.LOAD_FILE - 809)) | (1 << (SqlParser.LOCATE - 809)) | (1 << (SqlParser.LOG - 809)) | (1 << (SqlParser.LOG10 - 809)) | (1 << (SqlParser.LOG2 - 809)) | (1 << (SqlParser.LOWER - 809)) | (1 << (SqlParser.LPAD - 809)) | (1 << (SqlParser.LTRIM - 809)) | (1 << (SqlParser.MAKEDATE - 809)) | (1 << (SqlParser.MAKETIME - 809)) | (1 << (SqlParser.MAKE_SET - 809)) | (1 << (SqlParser.MASTER_POS_WAIT - 809)) | (1 << (SqlParser.MBRCONTAINS - 809)) | (1 << (SqlParser.MBRDISJOINT - 809)) | (1 << (SqlParser.MBREQUAL - 809)) | (1 << (SqlParser.MBRINTERSECTS - 809)) | (1 << (SqlParser.MBROVERLAPS - 809)) | (1 << (SqlParser.MBRTOUCHES - 809)))) !== 0) || ((((_la - 841)) & ~0x1f) == 0 && ((1 << (_la - 841)) & ((1 << (SqlParser.MBRWITHIN - 841)) | (1 << (SqlParser.MD5 - 841)) | (1 << (SqlParser.MLINEFROMTEXT - 841)) | (1 << (SqlParser.MLINEFROMWKB - 841)) | (1 << (SqlParser.MONTHNAME - 841)) | (1 << (SqlParser.MPOINTFROMTEXT - 841)) | (1 << (SqlParser.MPOINTFROMWKB - 841)) | (1 << (SqlParser.MPOLYFROMTEXT - 841)) | (1 << (SqlParser.MPOLYFROMWKB - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 841)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 841)) | (1 << (SqlParser.NAME_CONST - 841)) | (1 << (SqlParser.NULLIF - 841)) | (1 << (SqlParser.NUMGEOMETRIES - 841)) | (1 << (SqlParser.NUMINTERIORRINGS - 841)) | (1 << (SqlParser.NUMPOINTS - 841)) | (1 << (SqlParser.OCT - 841)) | (1 << (SqlParser.OCTET_LENGTH - 841)) | (1 << (SqlParser.ORD - 841)) | (1 << (SqlParser.OVERLAPS - 841)) | (1 << (SqlParser.PERIOD_ADD - 841)) | (1 << (SqlParser.PERIOD_DIFF - 841)) | (1 << (SqlParser.PI - 841)) | (1 << (SqlParser.POINTFROMTEXT - 841)) | (1 << (SqlParser.POINTFROMWKB - 841)) | (1 << (SqlParser.POINTN - 841)) | (1 << (SqlParser.POLYFROMTEXT - 841)) | (1 << (SqlParser.POLYFROMWKB - 841)))) !== 0) || ((((_la - 873)) & ~0x1f) == 0 && ((1 << (_la - 873)) & ((1 << (SqlParser.POLYGONFROMTEXT - 873)) | (1 << (SqlParser.POLYGONFROMWKB - 873)) | (1 << (SqlParser.POW - 873)) | (1 << (SqlParser.POWER - 873)) | (1 << (SqlParser.QUOTE - 873)) | (1 << (SqlParser.RADIANS - 873)) | (1 << (SqlParser.RAND - 873)) | (1 << (SqlParser.RANDOM_BYTES - 873)) | (1 << (SqlParser.RELEASE_LOCK - 873)) | (1 << (SqlParser.REVERSE - 873)) | (1 << (SqlParser.ROUND - 873)) | (1 << (SqlParser.ROW_COUNT - 873)) | (1 << (SqlParser.RPAD - 873)) | (1 << (SqlParser.RTRIM - 873)) | (1 << (SqlParser.SEC_TO_TIME - 873)) | (1 << (SqlParser.SESSION_USER - 873)) | (1 << (SqlParser.SHA - 873)) | (1 << (SqlParser.SHA1 - 873)) | (1 << (SqlParser.SHA2 - 873)) | (1 << (SqlParser.SCHEMA_NAME - 873)) | (1 << (SqlParser.SIGN - 873)) | (1 << (SqlParser.SIN - 873)) | (1 << (SqlParser.SLEEP - 873)) | (1 << (SqlParser.SOUNDEX - 873)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 873)) | (1 << (SqlParser.SQRT - 873)) | (1 << (SqlParser.SRID - 873)) | (1 << (SqlParser.STARTPOINT - 873)) | (1 << (SqlParser.STRCMP - 873)) | (1 << (SqlParser.STR_TO_DATE - 873)) | (1 << (SqlParser.ST_AREA - 873)) | (1 << (SqlParser.ST_ASBINARY - 873)))) !== 0) || ((((_la - 905)) & ~0x1f) == 0 && ((1 << (_la - 905)) & ((1 << (SqlParser.ST_ASTEXT - 905)) | (1 << (SqlParser.ST_ASWKB - 905)) | (1 << (SqlParser.ST_ASWKT - 905)) | (1 << (SqlParser.ST_BUFFER - 905)) | (1 << (SqlParser.ST_CENTROID - 905)) | (1 << (SqlParser.ST_CONTAINS - 905)) | (1 << (SqlParser.ST_CROSSES - 905)) | (1 << (SqlParser.ST_DIFFERENCE - 905)) | (1 << (SqlParser.ST_DIMENSION - 905)) | (1 << (SqlParser.ST_DISJOINT - 905)) | (1 << (SqlParser.ST_DISTANCE - 905)) | (1 << (SqlParser.ST_ENDPOINT - 905)) | (1 << (SqlParser.ST_ENVELOPE - 905)) | (1 << (SqlParser.ST_EQUALS - 905)) | (1 << (SqlParser.ST_EXTERIORRING - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYN - 905)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 905)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMFROMWKB - 905)) | (1 << (SqlParser.ST_INTERIORRINGN - 905)) | (1 << (SqlParser.ST_INTERSECTION - 905)) | (1 << (SqlParser.ST_INTERSECTS - 905)) | (1 << (SqlParser.ST_ISCLOSED - 905)) | (1 << (SqlParser.ST_ISEMPTY - 905)) | (1 << (SqlParser.ST_ISSIMPLE - 905)))) !== 0) || ((((_la - 937)) & ~0x1f) == 0 && ((1 << (_la - 937)) & ((1 << (SqlParser.ST_LINEFROMTEXT - 937)) | (1 << (SqlParser.ST_LINEFROMWKB - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 937)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 937)) | (1 << (SqlParser.ST_NUMINTERIORRING - 937)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 937)) | (1 << (SqlParser.ST_NUMPOINTS - 937)) | (1 << (SqlParser.ST_OVERLAPS - 937)) | (1 << (SqlParser.ST_POINTFROMTEXT - 937)) | (1 << (SqlParser.ST_POINTFROMWKB - 937)) | (1 << (SqlParser.ST_POINTN - 937)) | (1 << (SqlParser.ST_POLYFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYFROMWKB - 937)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 937)) | (1 << (SqlParser.ST_SRID - 937)) | (1 << (SqlParser.ST_STARTPOINT - 937)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 937)) | (1 << (SqlParser.ST_TOUCHES - 937)) | (1 << (SqlParser.ST_UNION - 937)) | (1 << (SqlParser.ST_WITHIN - 937)) | (1 << (SqlParser.ST_X - 937)) | (1 << (SqlParser.ST_Y - 937)) | (1 << (SqlParser.SUBDATE - 937)) | (1 << (SqlParser.SUBSTRING_INDEX - 937)) | (1 << (SqlParser.SUBTIME - 937)) | (1 << (SqlParser.SYSTEM_USER - 937)) | (1 << (SqlParser.TAN - 937)) | (1 << (SqlParser.TIMEDIFF - 937)) | (1 << (SqlParser.TIMESTAMPADD - 937)) | (1 << (SqlParser.TIMESTAMPDIFF - 937)))) !== 0) || ((((_la - 969)) & ~0x1f) == 0 && ((1 << (_la - 969)) & ((1 << (SqlParser.TIME_FORMAT - 969)) | (1 << (SqlParser.TIME_TO_SEC - 969)) | (1 << (SqlParser.TOUCHES - 969)) | (1 << (SqlParser.TO_BASE64 - 969)) | (1 << (SqlParser.TO_DAYS - 969)) | (1 << (SqlParser.TO_SECONDS - 969)) | (1 << (SqlParser.UCASE - 969)) | (1 << (SqlParser.UNCOMPRESS - 969)) | (1 << (SqlParser.UNCOMPRESSED_LENGTH - 969)) | (1 << (SqlParser.UNHEX - 969)) | (1 << (SqlParser.UNIX_TIMESTAMP - 969)) | (1 << (SqlParser.UPDATEXML - 969)) | (1 << (SqlParser.UPPER - 969)) | (1 << (SqlParser.UUID - 969)) | (1 << (SqlParser.UUID_SHORT - 969)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 969)) | (1 << (SqlParser.VERSION - 969)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 969)) | (1 << (SqlParser.WEEKDAY - 969)) | (1 << (SqlParser.WEEKOFYEAR - 969)) | (1 << (SqlParser.WEIGHT_STRING - 969)) | (1 << (SqlParser.WITHIN - 969)) | (1 << (SqlParser.YEARWEEK - 969)) | (1 << (SqlParser.Y_FUNCTION - 969)) | (1 << (SqlParser.X_FUNCTION - 969)))) !== 0) || ((((_la - 1006)) & ~0x1f) == 0 && ((1 << (_la - 1006)) & ((1 << (SqlParser.PLUS - 1006)) | (1 << (SqlParser.MINUS - 1006)) | (1 << (SqlParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (SqlParser.BIT_NOT_OP - 1006)) | (1 << (SqlParser.LR_BRACKET - 1006)) | (1 << (SqlParser.ZERO_DECIMAL - 1006)) | (1 << (SqlParser.ONE_DECIMAL - 1006)) | (1 << (SqlParser.TWO_DECIMAL - 1006)) | (1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1006)) | (1 << (SqlParser.START_NATIONAL_STRING_LITERAL - 1006)) | (1 << (SqlParser.STRING_LITERAL - 1006)) | (1 << (SqlParser.DECIMAL_LITERAL - 1006)) | (1 << (SqlParser.HEXADECIMAL_LITERAL - 1006)))) !== 0) || ((((_la - 1038)) & ~0x1f) == 0 && ((1 << (_la - 1038)) & ((1 << (SqlParser.REAL_LITERAL - 1038)) | (1 << (SqlParser.NULL_SPEC_LITERAL - 1038)) | (1 << (SqlParser.BIT_STRING - 1038)) | (1 << (SqlParser.STRING_CHARSET_NAME - 1038)) | (1 << (SqlParser.ID - 1038)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1038)) | (1 << (SqlParser.LOCAL_ID - 1038)) | (1 << (SqlParser.GLOBAL_ID - 1038)))) !== 0)) {
                    this.state = 3066;
                    this.expressionsWithDefaults();
                }

                this.state = 3069;
                this.match(SqlParser.RR_BRACKET);
                this.state = 3074;
                this._errHandler.sync(this);
                _la = this._input.LA(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 UpdatedElementContext(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_updatedElement;
    return this;
}

UpdatedElementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UpdatedElementContext.prototype.constructor = UpdatedElementContext;

UpdatedElementContext.prototype.fullColumnName = function() {
    return this.getTypedRuleContext(FullColumnNameContext,0);
};

UpdatedElementContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

UpdatedElementContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

UpdatedElementContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

UpdatedElementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUpdatedElement(this);
	}
};

UpdatedElementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUpdatedElement(this);
	}
};

UpdatedElementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUpdatedElement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UpdatedElementContext = UpdatedElementContext;

SqlParser.prototype.updatedElement = function() {

    var localctx = new UpdatedElementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 186, SqlParser.RULE_updatedElement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3077;
        this.fullColumnName();
        this.state = 3078;
        this.match(SqlParser.EQUAL_SYMBOL);
        this.state = 3081;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.CASE:
        case SqlParser.CAST:
        case SqlParser.CONVERT:
        case SqlParser.CURRENT:
        case SqlParser.CURRENT_USER:
        case SqlParser.DATABASE:
        case SqlParser.DIAGNOSTICS:
        case SqlParser.EXISTS:
        case SqlParser.FALSE:
        case SqlParser.IF:
        case SqlParser.INSERT:
        case SqlParser.INTERVAL:
        case SqlParser.LEFT:
        case SqlParser.NOT:
        case SqlParser.NULL_LITERAL:
        case SqlParser.NUMBER:
        case SqlParser.REPLACE:
        case SqlParser.RIGHT:
        case SqlParser.STACKED:
        case SqlParser.TRUE:
        case SqlParser.VALUES:
        case SqlParser.DATE:
        case SqlParser.TIME:
        case SqlParser.TIMESTAMP:
        case SqlParser.DATETIME:
        case SqlParser.YEAR:
        case SqlParser.CHAR:
        case SqlParser.BINARY:
        case SqlParser.TEXT:
        case SqlParser.ENUM:
        case SqlParser.SERIAL:
        case SqlParser.JSON_VALID:
        case SqlParser.JSON_SCHEMA_VALID:
        case SqlParser.AVG:
        case SqlParser.BIT_AND:
        case SqlParser.BIT_OR:
        case SqlParser.BIT_XOR:
        case SqlParser.COUNT:
        case SqlParser.GROUP_CONCAT:
        case SqlParser.MAX:
        case SqlParser.MIN:
        case SqlParser.STD:
        case SqlParser.STDDEV:
        case SqlParser.STDDEV_POP:
        case SqlParser.STDDEV_SAMP:
        case SqlParser.SUM:
        case SqlParser.VAR_POP:
        case SqlParser.VAR_SAMP:
        case SqlParser.VARIANCE:
        case SqlParser.CURRENT_DATE:
        case SqlParser.CURRENT_TIME:
        case SqlParser.CURRENT_TIMESTAMP:
        case SqlParser.LOCALTIME:
        case SqlParser.CURDATE:
        case SqlParser.CURTIME:
        case SqlParser.DATE_ADD:
        case SqlParser.DATE_SUB:
        case SqlParser.EXTRACT:
        case SqlParser.LOCALTIMESTAMP:
        case SqlParser.NOW:
        case SqlParser.POSITION:
        case SqlParser.SUBSTR:
        case SqlParser.SUBSTRING:
        case SqlParser.SYSDATE:
        case SqlParser.TRIM:
        case SqlParser.UTC_DATE:
        case SqlParser.UTC_TIME:
        case SqlParser.UTC_TIMESTAMP:
        case SqlParser.ACCOUNT:
        case SqlParser.ACTION:
        case SqlParser.AFTER:
        case SqlParser.AGGREGATE:
        case SqlParser.ALGORITHM:
        case SqlParser.ANY:
        case SqlParser.AT:
        case SqlParser.AUTHORS:
        case SqlParser.AUTOCOMMIT:
        case SqlParser.AUTOEXTEND_SIZE:
        case SqlParser.AUTO_INCREMENT:
        case SqlParser.AVG_ROW_LENGTH:
        case SqlParser.BEGIN:
        case SqlParser.BINLOG:
        case SqlParser.BIT:
        case SqlParser.BLOCK:
        case SqlParser.BOOL:
        case SqlParser.BOOLEAN:
        case SqlParser.BTREE:
        case SqlParser.CACHE:
        case SqlParser.CASCADED:
        case SqlParser.CHAIN:
        case SqlParser.CHANGED:
        case SqlParser.CHANNEL:
        case SqlParser.CHECKSUM:
        case SqlParser.PAGE_CHECKSUM:
        case SqlParser.CIPHER:
        case SqlParser.CLASS_ORIGIN:
        case SqlParser.CLIENT:
        case SqlParser.CLOSE:
        case SqlParser.COALESCE:
        case SqlParser.CODE:
        case SqlParser.COLUMNS:
        case SqlParser.COLUMN_FORMAT:
        case SqlParser.COLUMN_NAME:
        case SqlParser.COMMENT:
        case SqlParser.COMMIT:
        case SqlParser.COMPACT:
        case SqlParser.COMPLETION:
        case SqlParser.COMPRESSED:
        case SqlParser.COMPRESSION:
        case SqlParser.CONCURRENT:
        case SqlParser.CONNECTION:
        case SqlParser.CONSISTENT:
        case SqlParser.CONSTRAINT_CATALOG:
        case SqlParser.CONSTRAINT_SCHEMA:
        case SqlParser.CONSTRAINT_NAME:
        case SqlParser.CONTAINS:
        case SqlParser.CONTEXT:
        case SqlParser.CONTRIBUTORS:
        case SqlParser.COPY:
        case SqlParser.CPU:
        case SqlParser.CURSOR_NAME:
        case SqlParser.DATA:
        case SqlParser.DATAFILE:
        case SqlParser.DEALLOCATE:
        case SqlParser.DEFAULT_AUTH:
        case SqlParser.DEFINER:
        case SqlParser.DELAY_KEY_WRITE:
        case SqlParser.DES_KEY_FILE:
        case SqlParser.DIRECTORY:
        case SqlParser.DISABLE:
        case SqlParser.DISCARD:
        case SqlParser.DISK:
        case SqlParser.DO:
        case SqlParser.DUMPFILE:
        case SqlParser.DUPLICATE:
        case SqlParser.DYNAMIC:
        case SqlParser.ENABLE:
        case SqlParser.ENCRYPTION:
        case SqlParser.END:
        case SqlParser.ENDS:
        case SqlParser.ENGINE:
        case SqlParser.ENGINES:
        case SqlParser.ERROR:
        case SqlParser.ERRORS:
        case SqlParser.ESCAPE:
        case SqlParser.EVEN:
        case SqlParser.EVENT:
        case SqlParser.EVENTS:
        case SqlParser.EVERY:
        case SqlParser.EXCHANGE:
        case SqlParser.EXCLUSIVE:
        case SqlParser.EXPIRE:
        case SqlParser.EXPORT:
        case SqlParser.EXTENDED:
        case SqlParser.EXTENT_SIZE:
        case SqlParser.FAST:
        case SqlParser.FAULTS:
        case SqlParser.FIELDS:
        case SqlParser.FILE_BLOCK_SIZE:
        case SqlParser.FILTER:
        case SqlParser.FIRST:
        case SqlParser.FIXED:
        case SqlParser.FLUSH:
        case SqlParser.FOLLOWS:
        case SqlParser.FOUND:
        case SqlParser.FULL:
        case SqlParser.FUNCTION:
        case SqlParser.GENERAL:
        case SqlParser.GLOBAL:
        case SqlParser.GRANTS:
        case SqlParser.GROUP_REPLICATION:
        case SqlParser.HANDLER:
        case SqlParser.HASH:
        case SqlParser.HELP:
        case SqlParser.HOST:
        case SqlParser.HOSTS:
        case SqlParser.IDENTIFIED:
        case SqlParser.IGNORE_SERVER_IDS:
        case SqlParser.IMPORT:
        case SqlParser.INDEXES:
        case SqlParser.INITIAL_SIZE:
        case SqlParser.INPLACE:
        case SqlParser.INSERT_METHOD:
        case SqlParser.INSTALL:
        case SqlParser.INSTANCE:
        case SqlParser.INVISIBLE:
        case SqlParser.INVOKER:
        case SqlParser.IO:
        case SqlParser.IO_THREAD:
        case SqlParser.IPC:
        case SqlParser.ISOLATION:
        case SqlParser.ISSUER:
        case SqlParser.JSON:
        case SqlParser.KEY_BLOCK_SIZE:
        case SqlParser.LANGUAGE:
        case SqlParser.LAST:
        case SqlParser.LEAVES:
        case SqlParser.LESS:
        case SqlParser.LEVEL:
        case SqlParser.LIST:
        case SqlParser.LOCAL:
        case SqlParser.LOGFILE:
        case SqlParser.LOGS:
        case SqlParser.MASTER:
        case SqlParser.MASTER_AUTO_POSITION:
        case SqlParser.MASTER_CONNECT_RETRY:
        case SqlParser.MASTER_DELAY:
        case SqlParser.MASTER_HEARTBEAT_PERIOD:
        case SqlParser.MASTER_HOST:
        case SqlParser.MASTER_LOG_FILE:
        case SqlParser.MASTER_LOG_POS:
        case SqlParser.MASTER_PASSWORD:
        case SqlParser.MASTER_PORT:
        case SqlParser.MASTER_RETRY_COUNT:
        case SqlParser.MASTER_SSL:
        case SqlParser.MASTER_SSL_CA:
        case SqlParser.MASTER_SSL_CAPATH:
        case SqlParser.MASTER_SSL_CERT:
        case SqlParser.MASTER_SSL_CIPHER:
        case SqlParser.MASTER_SSL_CRL:
        case SqlParser.MASTER_SSL_CRLPATH:
        case SqlParser.MASTER_SSL_KEY:
        case SqlParser.MASTER_TLS_VERSION:
        case SqlParser.MASTER_USER:
        case SqlParser.MAX_CONNECTIONS_PER_HOUR:
        case SqlParser.MAX_QUERIES_PER_HOUR:
        case SqlParser.MAX_ROWS:
        case SqlParser.MAX_SIZE:
        case SqlParser.MAX_UPDATES_PER_HOUR:
        case SqlParser.MAX_USER_CONNECTIONS:
        case SqlParser.MEDIUM:
        case SqlParser.MERGE:
        case SqlParser.MESSAGE_TEXT:
        case SqlParser.MID:
        case SqlParser.MIGRATE:
        case SqlParser.MIN_ROWS:
        case SqlParser.MODE:
        case SqlParser.MODIFY:
        case SqlParser.MUTEX:
        case SqlParser.MYSQL:
        case SqlParser.MYSQL_ERRNO:
        case SqlParser.NAME:
        case SqlParser.NAMES:
        case SqlParser.NCHAR:
        case SqlParser.NEVER:
        case SqlParser.NEXT:
        case SqlParser.NO:
        case SqlParser.NODEGROUP:
        case SqlParser.NONE:
        case SqlParser.OFFLINE:
        case SqlParser.OFFSET:
        case SqlParser.OJ:
        case SqlParser.OLD_PASSWORD:
        case SqlParser.ONE:
        case SqlParser.ONLINE:
        case SqlParser.ONLY:
        case SqlParser.OPEN:
        case SqlParser.OPTIMIZER_COSTS:
        case SqlParser.OPTIONS:
        case SqlParser.OWNER:
        case SqlParser.PACK_KEYS:
        case SqlParser.PAGE:
        case SqlParser.PARSER:
        case SqlParser.PARTIAL:
        case SqlParser.PARTITIONING:
        case SqlParser.PARTITIONS:
        case SqlParser.PASSWORD:
        case SqlParser.PHASE:
        case SqlParser.PLUGIN:
        case SqlParser.PLUGIN_DIR:
        case SqlParser.PLUGINS:
        case SqlParser.PORT:
        case SqlParser.PRECEDES:
        case SqlParser.PREPARE:
        case SqlParser.PRESERVE:
        case SqlParser.PREV:
        case SqlParser.PROCESSLIST:
        case SqlParser.PROFILE:
        case SqlParser.PROFILES:
        case SqlParser.PROXY:
        case SqlParser.QUERY:
        case SqlParser.QUICK:
        case SqlParser.REBUILD:
        case SqlParser.RECOVER:
        case SqlParser.REDO_BUFFER_SIZE:
        case SqlParser.REDUNDANT:
        case SqlParser.RELAY:
        case SqlParser.RELAY_LOG_FILE:
        case SqlParser.RELAY_LOG_POS:
        case SqlParser.RELAYLOG:
        case SqlParser.REMOVE:
        case SqlParser.REORGANIZE:
        case SqlParser.REPAIR:
        case SqlParser.REPLICATE_DO_DB:
        case SqlParser.REPLICATE_DO_TABLE:
        case SqlParser.REPLICATE_IGNORE_DB:
        case SqlParser.REPLICATE_IGNORE_TABLE:
        case SqlParser.REPLICATE_REWRITE_DB:
        case SqlParser.REPLICATE_WILD_DO_TABLE:
        case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
        case SqlParser.REPLICATION:
        case SqlParser.RESET:
        case SqlParser.RESUME:
        case SqlParser.RETURNED_SQLSTATE:
        case SqlParser.RETURNS:
        case SqlParser.ROLE:
        case SqlParser.ROLLBACK:
        case SqlParser.ROLLUP:
        case SqlParser.ROTATE:
        case SqlParser.ROW:
        case SqlParser.ROWS:
        case SqlParser.ROW_FORMAT:
        case SqlParser.SAVEPOINT:
        case SqlParser.SCHEDULE:
        case SqlParser.SECURITY:
        case SqlParser.SERVER:
        case SqlParser.SESSION:
        case SqlParser.SHARE:
        case SqlParser.SHARED:
        case SqlParser.SIGNED:
        case SqlParser.SIMPLE:
        case SqlParser.SLAVE:
        case SqlParser.SLOW:
        case SqlParser.SNAPSHOT:
        case SqlParser.SOCKET:
        case SqlParser.SOME:
        case SqlParser.SONAME:
        case SqlParser.SOUNDS:
        case SqlParser.SOURCE:
        case SqlParser.SQL_AFTER_GTIDS:
        case SqlParser.SQL_AFTER_MTS_GAPS:
        case SqlParser.SQL_BEFORE_GTIDS:
        case SqlParser.SQL_BUFFER_RESULT:
        case SqlParser.SQL_CACHE:
        case SqlParser.SQL_NO_CACHE:
        case SqlParser.SQL_THREAD:
        case SqlParser.START:
        case SqlParser.STARTS:
        case SqlParser.STATS_AUTO_RECALC:
        case SqlParser.STATS_PERSISTENT:
        case SqlParser.STATS_SAMPLE_PAGES:
        case SqlParser.STATUS:
        case SqlParser.STOP:
        case SqlParser.STORAGE:
        case SqlParser.STRING:
        case SqlParser.SUBCLASS_ORIGIN:
        case SqlParser.SUBJECT:
        case SqlParser.SUBPARTITION:
        case SqlParser.SUBPARTITIONS:
        case SqlParser.SUSPEND:
        case SqlParser.SWAPS:
        case SqlParser.SWITCHES:
        case SqlParser.TABLE_NAME:
        case SqlParser.TABLESPACE:
        case SqlParser.TEMPORARY:
        case SqlParser.TEMPTABLE:
        case SqlParser.THAN:
        case SqlParser.TRADITIONAL:
        case SqlParser.TRANSACTION:
        case SqlParser.TRANSACTIONAL:
        case SqlParser.TRIGGERS:
        case SqlParser.TRUNCATE:
        case SqlParser.UNDEFINED:
        case SqlParser.UNDOFILE:
        case SqlParser.UNDO_BUFFER_SIZE:
        case SqlParser.UNINSTALL:
        case SqlParser.UNKNOWN:
        case SqlParser.UNTIL:
        case SqlParser.UPGRADE:
        case SqlParser.USER:
        case SqlParser.USE_FRM:
        case SqlParser.USER_RESOURCES:
        case SqlParser.VALIDATION:
        case SqlParser.VALUE:
        case SqlParser.VARIABLES:
        case SqlParser.VIEW:
        case SqlParser.VISIBLE:
        case SqlParser.WAIT:
        case SqlParser.WARNINGS:
        case SqlParser.WITHOUT:
        case SqlParser.WORK:
        case SqlParser.WRAPPER:
        case SqlParser.X509:
        case SqlParser.XA:
        case SqlParser.XML:
        case SqlParser.INTERNAL:
        case SqlParser.QUARTER:
        case SqlParser.MONTH:
        case SqlParser.DAY:
        case SqlParser.HOUR:
        case SqlParser.MINUTE:
        case SqlParser.WEEK:
        case SqlParser.SECOND:
        case SqlParser.MICROSECOND:
        case SqlParser.TABLES:
        case SqlParser.ROUTINE:
        case SqlParser.EXECUTE:
        case SqlParser.FILE:
        case SqlParser.PROCESS:
        case SqlParser.RELOAD:
        case SqlParser.SHUTDOWN:
        case SqlParser.SUPER:
        case SqlParser.PRIVILEGES:
        case SqlParser.AUDIT_ADMIN:
        case SqlParser.BACKUP_ADMIN:
        case SqlParser.BINLOG_ADMIN:
        case SqlParser.BINLOG_ENCRYPTION_ADMIN:
        case SqlParser.CLONE_ADMIN:
        case SqlParser.CONNECTION_ADMIN:
        case SqlParser.ENCRYPTION_KEY_ADMIN:
        case SqlParser.FIREWALL_ADMIN:
        case SqlParser.FIREWALL_USER:
        case SqlParser.GROUP_REPLICATION_ADMIN:
        case SqlParser.INNODB_REDO_LOG_ARCHIVE:
        case SqlParser.NDB_STORED_USER:
        case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
        case SqlParser.REPLICATION_APPLIER:
        case SqlParser.REPLICATION_SLAVE_ADMIN:
        case SqlParser.RESOURCE_GROUP_ADMIN:
        case SqlParser.RESOURCE_GROUP_USER:
        case SqlParser.ROLE_ADMIN:
        case SqlParser.SESSION_VARIABLES_ADMIN:
        case SqlParser.SET_USER_ID:
        case SqlParser.SHOW_ROUTINE:
        case SqlParser.SYSTEM_VARIABLES_ADMIN:
        case SqlParser.TABLE_ENCRYPTION_ADMIN:
        case SqlParser.VERSION_TOKEN_ADMIN:
        case SqlParser.XA_RECOVER_ADMIN:
        case SqlParser.ARMSCII8:
        case SqlParser.ASCII:
        case SqlParser.BIG5:
        case SqlParser.CP1250:
        case SqlParser.CP1251:
        case SqlParser.CP1256:
        case SqlParser.CP1257:
        case SqlParser.CP850:
        case SqlParser.CP852:
        case SqlParser.CP866:
        case SqlParser.CP932:
        case SqlParser.DEC8:
        case SqlParser.EUCJPMS:
        case SqlParser.EUCKR:
        case SqlParser.GB2312:
        case SqlParser.GBK:
        case SqlParser.GEOSTD8:
        case SqlParser.GREEK:
        case SqlParser.HEBREW:
        case SqlParser.HP8:
        case SqlParser.KEYBCS2:
        case SqlParser.KOI8R:
        case SqlParser.KOI8U:
        case SqlParser.LATIN1:
        case SqlParser.LATIN2:
        case SqlParser.LATIN5:
        case SqlParser.LATIN7:
        case SqlParser.MACCE:
        case SqlParser.MACROMAN:
        case SqlParser.SJIS:
        case SqlParser.SWE7:
        case SqlParser.TIS620:
        case SqlParser.UCS2:
        case SqlParser.UJIS:
        case SqlParser.UTF16:
        case SqlParser.UTF16LE:
        case SqlParser.UTF32:
        case SqlParser.UTF8:
        case SqlParser.UTF8MB3:
        case SqlParser.UTF8MB4:
        case SqlParser.ARCHIVE:
        case SqlParser.BLACKHOLE:
        case SqlParser.CSV:
        case SqlParser.FEDERATED:
        case SqlParser.INNODB:
        case SqlParser.MEMORY:
        case SqlParser.MRG_MYISAM:
        case SqlParser.MYISAM:
        case SqlParser.NDB:
        case SqlParser.NDBCLUSTER:
        case SqlParser.PERFORMANCE_SCHEMA:
        case SqlParser.TOKUDB:
        case SqlParser.REPEATABLE:
        case SqlParser.COMMITTED:
        case SqlParser.UNCOMMITTED:
        case SqlParser.SERIALIZABLE:
        case SqlParser.GEOMETRYCOLLECTION:
        case SqlParser.LINESTRING:
        case SqlParser.MULTILINESTRING:
        case SqlParser.MULTIPOINT:
        case SqlParser.MULTIPOLYGON:
        case SqlParser.POINT:
        case SqlParser.POLYGON:
        case SqlParser.ABS:
        case SqlParser.ACOS:
        case SqlParser.ADDDATE:
        case SqlParser.ADDTIME:
        case SqlParser.AES_DECRYPT:
        case SqlParser.AES_ENCRYPT:
        case SqlParser.AREA:
        case SqlParser.ASBINARY:
        case SqlParser.ASIN:
        case SqlParser.ASTEXT:
        case SqlParser.ASWKB:
        case SqlParser.ASWKT:
        case SqlParser.ASYMMETRIC_DECRYPT:
        case SqlParser.ASYMMETRIC_DERIVE:
        case SqlParser.ASYMMETRIC_ENCRYPT:
        case SqlParser.ASYMMETRIC_SIGN:
        case SqlParser.ASYMMETRIC_VERIFY:
        case SqlParser.ATAN:
        case SqlParser.ATAN2:
        case SqlParser.BENCHMARK:
        case SqlParser.BIN:
        case SqlParser.BIT_COUNT:
        case SqlParser.BIT_LENGTH:
        case SqlParser.BUFFER:
        case SqlParser.CATALOG_NAME:
        case SqlParser.CEIL:
        case SqlParser.CEILING:
        case SqlParser.CENTROID:
        case SqlParser.CHARACTER_LENGTH:
        case SqlParser.CHARSET:
        case SqlParser.CHAR_LENGTH:
        case SqlParser.COERCIBILITY:
        case SqlParser.COLLATION:
        case SqlParser.COMPRESS:
        case SqlParser.CONCAT:
        case SqlParser.CONCAT_WS:
        case SqlParser.CONNECTION_ID:
        case SqlParser.CONV:
        case SqlParser.CONVERT_TZ:
        case SqlParser.COS:
        case SqlParser.COT:
        case SqlParser.CRC32:
        case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
        case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
        case SqlParser.CREATE_DH_PARAMETERS:
        case SqlParser.CREATE_DIGEST:
        case SqlParser.CROSSES:
        case SqlParser.DATEDIFF:
        case SqlParser.DATE_FORMAT:
        case SqlParser.DAYNAME:
        case SqlParser.DAYOFMONTH:
        case SqlParser.DAYOFWEEK:
        case SqlParser.DAYOFYEAR:
        case SqlParser.DECODE:
        case SqlParser.DEGREES:
        case SqlParser.DES_DECRYPT:
        case SqlParser.DES_ENCRYPT:
        case SqlParser.DIMENSION:
        case SqlParser.DISJOINT:
        case SqlParser.ELT:
        case SqlParser.ENCODE:
        case SqlParser.ENCRYPT:
        case SqlParser.ENDPOINT:
        case SqlParser.ENVELOPE:
        case SqlParser.EQUALS:
        case SqlParser.EXP:
        case SqlParser.EXPORT_SET:
        case SqlParser.EXTERIORRING:
        case SqlParser.EXTRACTVALUE:
        case SqlParser.FIELD:
        case SqlParser.FIND_IN_SET:
        case SqlParser.FLOOR:
        case SqlParser.FORMAT:
        case SqlParser.FOUND_ROWS:
        case SqlParser.FROM_BASE64:
        case SqlParser.FROM_DAYS:
        case SqlParser.FROM_UNIXTIME:
        case SqlParser.GEOMCOLLFROMTEXT:
        case SqlParser.GEOMCOLLFROMWKB:
        case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.GEOMETRYFROMTEXT:
        case SqlParser.GEOMETRYFROMWKB:
        case SqlParser.GEOMETRYN:
        case SqlParser.GEOMETRYTYPE:
        case SqlParser.GEOMFROMTEXT:
        case SqlParser.GEOMFROMWKB:
        case SqlParser.GET_FORMAT:
        case SqlParser.GET_LOCK:
        case SqlParser.GLENGTH:
        case SqlParser.GREATEST:
        case SqlParser.GTID_SUBSET:
        case SqlParser.GTID_SUBTRACT:
        case SqlParser.HEX:
        case SqlParser.IFNULL:
        case SqlParser.INET6_ATON:
        case SqlParser.INET6_NTOA:
        case SqlParser.INET_ATON:
        case SqlParser.INET_NTOA:
        case SqlParser.INSTR:
        case SqlParser.INTERIORRINGN:
        case SqlParser.INTERSECTS:
        case SqlParser.ISCLOSED:
        case SqlParser.ISEMPTY:
        case SqlParser.ISNULL:
        case SqlParser.ISSIMPLE:
        case SqlParser.IS_FREE_LOCK:
        case SqlParser.IS_IPV4:
        case SqlParser.IS_IPV4_COMPAT:
        case SqlParser.IS_IPV4_MAPPED:
        case SqlParser.IS_IPV6:
        case SqlParser.IS_USED_LOCK:
        case SqlParser.LAST_INSERT_ID:
        case SqlParser.LCASE:
        case SqlParser.LEAST:
        case SqlParser.LENGTH:
        case SqlParser.LINEFROMTEXT:
        case SqlParser.LINEFROMWKB:
        case SqlParser.LINESTRINGFROMTEXT:
        case SqlParser.LINESTRINGFROMWKB:
        case SqlParser.LN:
        case SqlParser.LOAD_FILE:
        case SqlParser.LOCATE:
        case SqlParser.LOG:
        case SqlParser.LOG10:
        case SqlParser.LOG2:
        case SqlParser.LOWER:
        case SqlParser.LPAD:
        case SqlParser.LTRIM:
        case SqlParser.MAKEDATE:
        case SqlParser.MAKETIME:
        case SqlParser.MAKE_SET:
        case SqlParser.MASTER_POS_WAIT:
        case SqlParser.MBRCONTAINS:
        case SqlParser.MBRDISJOINT:
        case SqlParser.MBREQUAL:
        case SqlParser.MBRINTERSECTS:
        case SqlParser.MBROVERLAPS:
        case SqlParser.MBRTOUCHES:
        case SqlParser.MBRWITHIN:
        case SqlParser.MD5:
        case SqlParser.MLINEFROMTEXT:
        case SqlParser.MLINEFROMWKB:
        case SqlParser.MONTHNAME:
        case SqlParser.MPOINTFROMTEXT:
        case SqlParser.MPOINTFROMWKB:
        case SqlParser.MPOLYFROMTEXT:
        case SqlParser.MPOLYFROMWKB:
        case SqlParser.MULTILINESTRINGFROMTEXT:
        case SqlParser.MULTILINESTRINGFROMWKB:
        case SqlParser.MULTIPOINTFROMTEXT:
        case SqlParser.MULTIPOINTFROMWKB:
        case SqlParser.MULTIPOLYGONFROMTEXT:
        case SqlParser.MULTIPOLYGONFROMWKB:
        case SqlParser.NAME_CONST:
        case SqlParser.NULLIF:
        case SqlParser.NUMGEOMETRIES:
        case SqlParser.NUMINTERIORRINGS:
        case SqlParser.NUMPOINTS:
        case SqlParser.OCT:
        case SqlParser.OCTET_LENGTH:
        case SqlParser.ORD:
        case SqlParser.OVERLAPS:
        case SqlParser.PERIOD_ADD:
        case SqlParser.PERIOD_DIFF:
        case SqlParser.PI:
        case SqlParser.POINTFROMTEXT:
        case SqlParser.POINTFROMWKB:
        case SqlParser.POINTN:
        case SqlParser.POLYFROMTEXT:
        case SqlParser.POLYFROMWKB:
        case SqlParser.POLYGONFROMTEXT:
        case SqlParser.POLYGONFROMWKB:
        case SqlParser.POW:
        case SqlParser.POWER:
        case SqlParser.QUOTE:
        case SqlParser.RADIANS:
        case SqlParser.RAND:
        case SqlParser.RANDOM_BYTES:
        case SqlParser.RELEASE_LOCK:
        case SqlParser.REVERSE:
        case SqlParser.ROUND:
        case SqlParser.ROW_COUNT:
        case SqlParser.RPAD:
        case SqlParser.RTRIM:
        case SqlParser.SEC_TO_TIME:
        case SqlParser.SESSION_USER:
        case SqlParser.SHA:
        case SqlParser.SHA1:
        case SqlParser.SHA2:
        case SqlParser.SCHEMA_NAME:
        case SqlParser.SIGN:
        case SqlParser.SIN:
        case SqlParser.SLEEP:
        case SqlParser.SOUNDEX:
        case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
        case SqlParser.SQRT:
        case SqlParser.SRID:
        case SqlParser.STARTPOINT:
        case SqlParser.STRCMP:
        case SqlParser.STR_TO_DATE:
        case SqlParser.ST_AREA:
        case SqlParser.ST_ASBINARY:
        case SqlParser.ST_ASTEXT:
        case SqlParser.ST_ASWKB:
        case SqlParser.ST_ASWKT:
        case SqlParser.ST_BUFFER:
        case SqlParser.ST_CENTROID:
        case SqlParser.ST_CONTAINS:
        case SqlParser.ST_CROSSES:
        case SqlParser.ST_DIFFERENCE:
        case SqlParser.ST_DIMENSION:
        case SqlParser.ST_DISJOINT:
        case SqlParser.ST_DISTANCE:
        case SqlParser.ST_ENDPOINT:
        case SqlParser.ST_ENVELOPE:
        case SqlParser.ST_EQUALS:
        case SqlParser.ST_EXTERIORRING:
        case SqlParser.ST_GEOMCOLLFROMTEXT:
        case SqlParser.ST_GEOMCOLLFROMTXT:
        case SqlParser.ST_GEOMCOLLFROMWKB:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.ST_GEOMETRYFROMTEXT:
        case SqlParser.ST_GEOMETRYFROMWKB:
        case SqlParser.ST_GEOMETRYN:
        case SqlParser.ST_GEOMETRYTYPE:
        case SqlParser.ST_GEOMFROMTEXT:
        case SqlParser.ST_GEOMFROMWKB:
        case SqlParser.ST_INTERIORRINGN:
        case SqlParser.ST_INTERSECTION:
        case SqlParser.ST_INTERSECTS:
        case SqlParser.ST_ISCLOSED:
        case SqlParser.ST_ISEMPTY:
        case SqlParser.ST_ISSIMPLE:
        case SqlParser.ST_LINEFROMTEXT:
        case SqlParser.ST_LINEFROMWKB:
        case SqlParser.ST_LINESTRINGFROMTEXT:
        case SqlParser.ST_LINESTRINGFROMWKB:
        case SqlParser.ST_NUMGEOMETRIES:
        case SqlParser.ST_NUMINTERIORRING:
        case SqlParser.ST_NUMINTERIORRINGS:
        case SqlParser.ST_NUMPOINTS:
        case SqlParser.ST_OVERLAPS:
        case SqlParser.ST_POINTFROMTEXT:
        case SqlParser.ST_POINTFROMWKB:
        case SqlParser.ST_POINTN:
        case SqlParser.ST_POLYFROMTEXT:
        case SqlParser.ST_POLYFROMWKB:
        case SqlParser.ST_POLYGONFROMTEXT:
        case SqlParser.ST_POLYGONFROMWKB:
        case SqlParser.ST_SRID:
        case SqlParser.ST_STARTPOINT:
        case SqlParser.ST_SYMDIFFERENCE:
        case SqlParser.ST_TOUCHES:
        case SqlParser.ST_UNION:
        case SqlParser.ST_WITHIN:
        case SqlParser.ST_X:
        case SqlParser.ST_Y:
        case SqlParser.SUBDATE:
        case SqlParser.SUBSTRING_INDEX:
        case SqlParser.SUBTIME:
        case SqlParser.SYSTEM_USER:
        case SqlParser.TAN:
        case SqlParser.TIMEDIFF:
        case SqlParser.TIMESTAMPADD:
        case SqlParser.TIMESTAMPDIFF:
        case SqlParser.TIME_FORMAT:
        case SqlParser.TIME_TO_SEC:
        case SqlParser.TOUCHES:
        case SqlParser.TO_BASE64:
        case SqlParser.TO_DAYS:
        case SqlParser.TO_SECONDS:
        case SqlParser.UCASE:
        case SqlParser.UNCOMPRESS:
        case SqlParser.UNCOMPRESSED_LENGTH:
        case SqlParser.UNHEX:
        case SqlParser.UNIX_TIMESTAMP:
        case SqlParser.UPDATEXML:
        case SqlParser.UPPER:
        case SqlParser.UUID:
        case SqlParser.UUID_SHORT:
        case SqlParser.VALIDATE_PASSWORD_STRENGTH:
        case SqlParser.VERSION:
        case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
        case SqlParser.WEEKDAY:
        case SqlParser.WEEKOFYEAR:
        case SqlParser.WEIGHT_STRING:
        case SqlParser.WITHIN:
        case SqlParser.YEARWEEK:
        case SqlParser.Y_FUNCTION:
        case SqlParser.X_FUNCTION:
        case SqlParser.PLUS:
        case SqlParser.MINUS:
        case SqlParser.EXCLAMATION_SYMBOL:
        case SqlParser.BIT_NOT_OP:
        case SqlParser.LR_BRACKET:
        case SqlParser.ZERO_DECIMAL:
        case SqlParser.ONE_DECIMAL:
        case SqlParser.TWO_DECIMAL:
        case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
        case SqlParser.START_NATIONAL_STRING_LITERAL:
        case SqlParser.STRING_LITERAL:
        case SqlParser.DECIMAL_LITERAL:
        case SqlParser.HEXADECIMAL_LITERAL:
        case SqlParser.REAL_LITERAL:
        case SqlParser.NULL_SPEC_LITERAL:
        case SqlParser.BIT_STRING:
        case SqlParser.STRING_CHARSET_NAME:
        case SqlParser.ID:
        case SqlParser.REVERSE_QUOTE_ID:
        case SqlParser.LOCAL_ID:
        case SqlParser.GLOBAL_ID:
            this.state = 3079;
            this.expression(0);
            break;
        case SqlParser.DEFAULT:
            this.state = 3080;
            this.match(SqlParser.DEFAULT);
            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 AssignmentFieldContext(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_assignmentField;
    return this;
}

AssignmentFieldContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AssignmentFieldContext.prototype.constructor = AssignmentFieldContext;

AssignmentFieldContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AssignmentFieldContext.prototype.LOCAL_ID = function() {
    return this.getToken(SqlParser.LOCAL_ID, 0);
};

AssignmentFieldContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAssignmentField(this);
	}
};

AssignmentFieldContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAssignmentField(this);
	}
};

AssignmentFieldContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAssignmentField(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.AssignmentFieldContext = AssignmentFieldContext;

SqlParser.prototype.assignmentField = function() {

    var localctx = new AssignmentFieldContext(this, this._ctx, this.state);
    this.enterRule(localctx, 188, SqlParser.RULE_assignmentField);
    try {
        this.state = 3085;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.CURRENT:
        case SqlParser.DATABASE:
        case SqlParser.DIAGNOSTICS:
        case SqlParser.LEFT:
        case SqlParser.NUMBER:
        case SqlParser.RIGHT:
        case SqlParser.STACKED:
        case SqlParser.DATE:
        case SqlParser.TIME:
        case SqlParser.TIMESTAMP:
        case SqlParser.DATETIME:
        case SqlParser.YEAR:
        case SqlParser.TEXT:
        case SqlParser.ENUM:
        case SqlParser.SERIAL:
        case SqlParser.JSON_VALID:
        case SqlParser.JSON_SCHEMA_VALID:
        case SqlParser.COUNT:
        case SqlParser.POSITION:
        case SqlParser.ACCOUNT:
        case SqlParser.ACTION:
        case SqlParser.AFTER:
        case SqlParser.AGGREGATE:
        case SqlParser.ALGORITHM:
        case SqlParser.ANY:
        case SqlParser.AT:
        case SqlParser.AUTHORS:
        case SqlParser.AUTOCOMMIT:
        case SqlParser.AUTOEXTEND_SIZE:
        case SqlParser.AUTO_INCREMENT:
        case SqlParser.AVG_ROW_LENGTH:
        case SqlParser.BEGIN:
        case SqlParser.BINLOG:
        case SqlParser.BIT:
        case SqlParser.BLOCK:
        case SqlParser.BOOL:
        case SqlParser.BOOLEAN:
        case SqlParser.BTREE:
        case SqlParser.CACHE:
        case SqlParser.CASCADED:
        case SqlParser.CHAIN:
        case SqlParser.CHANGED:
        case SqlParser.CHANNEL:
        case SqlParser.CHECKSUM:
        case SqlParser.PAGE_CHECKSUM:
        case SqlParser.CIPHER:
        case SqlParser.CLASS_ORIGIN:
        case SqlParser.CLIENT:
        case SqlParser.CLOSE:
        case SqlParser.COALESCE:
        case SqlParser.CODE:
        case SqlParser.COLUMNS:
        case SqlParser.COLUMN_FORMAT:
        case SqlParser.COLUMN_NAME:
        case SqlParser.COMMENT:
        case SqlParser.COMMIT:
        case SqlParser.COMPACT:
        case SqlParser.COMPLETION:
        case SqlParser.COMPRESSED:
        case SqlParser.COMPRESSION:
        case SqlParser.CONCURRENT:
        case SqlParser.CONNECTION:
        case SqlParser.CONSISTENT:
        case SqlParser.CONSTRAINT_CATALOG:
        case SqlParser.CONSTRAINT_SCHEMA:
        case SqlParser.CONSTRAINT_NAME:
        case SqlParser.CONTAINS:
        case SqlParser.CONTEXT:
        case SqlParser.CONTRIBUTORS:
        case SqlParser.COPY:
        case SqlParser.CPU:
        case SqlParser.CURSOR_NAME:
        case SqlParser.DATA:
        case SqlParser.DATAFILE:
        case SqlParser.DEALLOCATE:
        case SqlParser.DEFAULT_AUTH:
        case SqlParser.DEFINER:
        case SqlParser.DELAY_KEY_WRITE:
        case SqlParser.DES_KEY_FILE:
        case SqlParser.DIRECTORY:
        case SqlParser.DISABLE:
        case SqlParser.DISCARD:
        case SqlParser.DISK:
        case SqlParser.DO:
        case SqlParser.DUMPFILE:
        case SqlParser.DUPLICATE:
        case SqlParser.DYNAMIC:
        case SqlParser.ENABLE:
        case SqlParser.ENCRYPTION:
        case SqlParser.END:
        case SqlParser.ENDS:
        case SqlParser.ENGINE:
        case SqlParser.ENGINES:
        case SqlParser.ERROR:
        case SqlParser.ERRORS:
        case SqlParser.ESCAPE:
        case SqlParser.EVEN:
        case SqlParser.EVENT:
        case SqlParser.EVENTS:
        case SqlParser.EVERY:
        case SqlParser.EXCHANGE:
        case SqlParser.EXCLUSIVE:
        case SqlParser.EXPIRE:
        case SqlParser.EXPORT:
        case SqlParser.EXTENDED:
        case SqlParser.EXTENT_SIZE:
        case SqlParser.FAST:
        case SqlParser.FAULTS:
        case SqlParser.FIELDS:
        case SqlParser.FILE_BLOCK_SIZE:
        case SqlParser.FILTER:
        case SqlParser.FIRST:
        case SqlParser.FIXED:
        case SqlParser.FLUSH:
        case SqlParser.FOLLOWS:
        case SqlParser.FOUND:
        case SqlParser.FULL:
        case SqlParser.FUNCTION:
        case SqlParser.GENERAL:
        case SqlParser.GLOBAL:
        case SqlParser.GRANTS:
        case SqlParser.GROUP_REPLICATION:
        case SqlParser.HANDLER:
        case SqlParser.HASH:
        case SqlParser.HELP:
        case SqlParser.HOST:
        case SqlParser.HOSTS:
        case SqlParser.IDENTIFIED:
        case SqlParser.IGNORE_SERVER_IDS:
        case SqlParser.IMPORT:
        case SqlParser.INDEXES:
        case SqlParser.INITIAL_SIZE:
        case SqlParser.INPLACE:
        case SqlParser.INSERT_METHOD:
        case SqlParser.INSTALL:
        case SqlParser.INSTANCE:
        case SqlParser.INVISIBLE:
        case SqlParser.INVOKER:
        case SqlParser.IO:
        case SqlParser.IO_THREAD:
        case SqlParser.IPC:
        case SqlParser.ISOLATION:
        case SqlParser.ISSUER:
        case SqlParser.JSON:
        case SqlParser.KEY_BLOCK_SIZE:
        case SqlParser.LANGUAGE:
        case SqlParser.LAST:
        case SqlParser.LEAVES:
        case SqlParser.LESS:
        case SqlParser.LEVEL:
        case SqlParser.LIST:
        case SqlParser.LOCAL:
        case SqlParser.LOGFILE:
        case SqlParser.LOGS:
        case SqlParser.MASTER:
        case SqlParser.MASTER_AUTO_POSITION:
        case SqlParser.MASTER_CONNECT_RETRY:
        case SqlParser.MASTER_DELAY:
        case SqlParser.MASTER_HEARTBEAT_PERIOD:
        case SqlParser.MASTER_HOST:
        case SqlParser.MASTER_LOG_FILE:
        case SqlParser.MASTER_LOG_POS:
        case SqlParser.MASTER_PASSWORD:
        case SqlParser.MASTER_PORT:
        case SqlParser.MASTER_RETRY_COUNT:
        case SqlParser.MASTER_SSL:
        case SqlParser.MASTER_SSL_CA:
        case SqlParser.MASTER_SSL_CAPATH:
        case SqlParser.MASTER_SSL_CERT:
        case SqlParser.MASTER_SSL_CIPHER:
        case SqlParser.MASTER_SSL_CRL:
        case SqlParser.MASTER_SSL_CRLPATH:
        case SqlParser.MASTER_SSL_KEY:
        case SqlParser.MASTER_TLS_VERSION:
        case SqlParser.MASTER_USER:
        case SqlParser.MAX_CONNECTIONS_PER_HOUR:
        case SqlParser.MAX_QUERIES_PER_HOUR:
        case SqlParser.MAX_ROWS:
        case SqlParser.MAX_SIZE:
        case SqlParser.MAX_UPDATES_PER_HOUR:
        case SqlParser.MAX_USER_CONNECTIONS:
        case SqlParser.MEDIUM:
        case SqlParser.MERGE:
        case SqlParser.MESSAGE_TEXT:
        case SqlParser.MID:
        case SqlParser.MIGRATE:
        case SqlParser.MIN_ROWS:
        case SqlParser.MODE:
        case SqlParser.MODIFY:
        case SqlParser.MUTEX:
        case SqlParser.MYSQL:
        case SqlParser.MYSQL_ERRNO:
        case SqlParser.NAME:
        case SqlParser.NAMES:
        case SqlParser.NCHAR:
        case SqlParser.NEVER:
        case SqlParser.NEXT:
        case SqlParser.NO:
        case SqlParser.NODEGROUP:
        case SqlParser.NONE:
        case SqlParser.OFFLINE:
        case SqlParser.OFFSET:
        case SqlParser.OJ:
        case SqlParser.OLD_PASSWORD:
        case SqlParser.ONE:
        case SqlParser.ONLINE:
        case SqlParser.ONLY:
        case SqlParser.OPEN:
        case SqlParser.OPTIMIZER_COSTS:
        case SqlParser.OPTIONS:
        case SqlParser.OWNER:
        case SqlParser.PACK_KEYS:
        case SqlParser.PAGE:
        case SqlParser.PARSER:
        case SqlParser.PARTIAL:
        case SqlParser.PARTITIONING:
        case SqlParser.PARTITIONS:
        case SqlParser.PASSWORD:
        case SqlParser.PHASE:
        case SqlParser.PLUGIN:
        case SqlParser.PLUGIN_DIR:
        case SqlParser.PLUGINS:
        case SqlParser.PORT:
        case SqlParser.PRECEDES:
        case SqlParser.PREPARE:
        case SqlParser.PRESERVE:
        case SqlParser.PREV:
        case SqlParser.PROCESSLIST:
        case SqlParser.PROFILE:
        case SqlParser.PROFILES:
        case SqlParser.PROXY:
        case SqlParser.QUERY:
        case SqlParser.QUICK:
        case SqlParser.REBUILD:
        case SqlParser.RECOVER:
        case SqlParser.REDO_BUFFER_SIZE:
        case SqlParser.REDUNDANT:
        case SqlParser.RELAY:
        case SqlParser.RELAY_LOG_FILE:
        case SqlParser.RELAY_LOG_POS:
        case SqlParser.RELAYLOG:
        case SqlParser.REMOVE:
        case SqlParser.REORGANIZE:
        case SqlParser.REPAIR:
        case SqlParser.REPLICATE_DO_DB:
        case SqlParser.REPLICATE_DO_TABLE:
        case SqlParser.REPLICATE_IGNORE_DB:
        case SqlParser.REPLICATE_IGNORE_TABLE:
        case SqlParser.REPLICATE_REWRITE_DB:
        case SqlParser.REPLICATE_WILD_DO_TABLE:
        case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
        case SqlParser.REPLICATION:
        case SqlParser.RESET:
        case SqlParser.RESUME:
        case SqlParser.RETURNED_SQLSTATE:
        case SqlParser.RETURNS:
        case SqlParser.ROLE:
        case SqlParser.ROLLBACK:
        case SqlParser.ROLLUP:
        case SqlParser.ROTATE:
        case SqlParser.ROW:
        case SqlParser.ROWS:
        case SqlParser.ROW_FORMAT:
        case SqlParser.SAVEPOINT:
        case SqlParser.SCHEDULE:
        case SqlParser.SECURITY:
        case SqlParser.SERVER:
        case SqlParser.SESSION:
        case SqlParser.SHARE:
        case SqlParser.SHARED:
        case SqlParser.SIGNED:
        case SqlParser.SIMPLE:
        case SqlParser.SLAVE:
        case SqlParser.SLOW:
        case SqlParser.SNAPSHOT:
        case SqlParser.SOCKET:
        case SqlParser.SOME:
        case SqlParser.SONAME:
        case SqlParser.SOUNDS:
        case SqlParser.SOURCE:
        case SqlParser.SQL_AFTER_GTIDS:
        case SqlParser.SQL_AFTER_MTS_GAPS:
        case SqlParser.SQL_BEFORE_GTIDS:
        case SqlParser.SQL_BUFFER_RESULT:
        case SqlParser.SQL_CACHE:
        case SqlParser.SQL_NO_CACHE:
        case SqlParser.SQL_THREAD:
        case SqlParser.START:
        case SqlParser.STARTS:
        case SqlParser.STATS_AUTO_RECALC:
        case SqlParser.STATS_PERSISTENT:
        case SqlParser.STATS_SAMPLE_PAGES:
        case SqlParser.STATUS:
        case SqlParser.STOP:
        case SqlParser.STORAGE:
        case SqlParser.STRING:
        case SqlParser.SUBCLASS_ORIGIN:
        case SqlParser.SUBJECT:
        case SqlParser.SUBPARTITION:
        case SqlParser.SUBPARTITIONS:
        case SqlParser.SUSPEND:
        case SqlParser.SWAPS:
        case SqlParser.SWITCHES:
        case SqlParser.TABLE_NAME:
        case SqlParser.TABLESPACE:
        case SqlParser.TEMPORARY:
        case SqlParser.TEMPTABLE:
        case SqlParser.THAN:
        case SqlParser.TRADITIONAL:
        case SqlParser.TRANSACTION:
        case SqlParser.TRANSACTIONAL:
        case SqlParser.TRIGGERS:
        case SqlParser.TRUNCATE:
        case SqlParser.UNDEFINED:
        case SqlParser.UNDOFILE:
        case SqlParser.UNDO_BUFFER_SIZE:
        case SqlParser.UNINSTALL:
        case SqlParser.UNKNOWN:
        case SqlParser.UNTIL:
        case SqlParser.UPGRADE:
        case SqlParser.USER:
        case SqlParser.USE_FRM:
        case SqlParser.USER_RESOURCES:
        case SqlParser.VALIDATION:
        case SqlParser.VALUE:
        case SqlParser.VARIABLES:
        case SqlParser.VIEW:
        case SqlParser.VISIBLE:
        case SqlParser.WAIT:
        case SqlParser.WARNINGS:
        case SqlParser.WITHOUT:
        case SqlParser.WORK:
        case SqlParser.WRAPPER:
        case SqlParser.X509:
        case SqlParser.XA:
        case SqlParser.XML:
        case SqlParser.INTERNAL:
        case SqlParser.QUARTER:
        case SqlParser.MONTH:
        case SqlParser.DAY:
        case SqlParser.HOUR:
        case SqlParser.MINUTE:
        case SqlParser.WEEK:
        case SqlParser.SECOND:
        case SqlParser.MICROSECOND:
        case SqlParser.TABLES:
        case SqlParser.ROUTINE:
        case SqlParser.EXECUTE:
        case SqlParser.FILE:
        case SqlParser.PROCESS:
        case SqlParser.RELOAD:
        case SqlParser.SHUTDOWN:
        case SqlParser.SUPER:
        case SqlParser.PRIVILEGES:
        case SqlParser.AUDIT_ADMIN:
        case SqlParser.BACKUP_ADMIN:
        case SqlParser.BINLOG_ADMIN:
        case SqlParser.BINLOG_ENCRYPTION_ADMIN:
        case SqlParser.CLONE_ADMIN:
        case SqlParser.CONNECTION_ADMIN:
        case SqlParser.ENCRYPTION_KEY_ADMIN:
        case SqlParser.FIREWALL_ADMIN:
        case SqlParser.FIREWALL_USER:
        case SqlParser.GROUP_REPLICATION_ADMIN:
        case SqlParser.INNODB_REDO_LOG_ARCHIVE:
        case SqlParser.NDB_STORED_USER:
        case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
        case SqlParser.REPLICATION_APPLIER:
        case SqlParser.REPLICATION_SLAVE_ADMIN:
        case SqlParser.RESOURCE_GROUP_ADMIN:
        case SqlParser.RESOURCE_GROUP_USER:
        case SqlParser.ROLE_ADMIN:
        case SqlParser.SESSION_VARIABLES_ADMIN:
        case SqlParser.SET_USER_ID:
        case SqlParser.SHOW_ROUTINE:
        case SqlParser.SYSTEM_VARIABLES_ADMIN:
        case SqlParser.TABLE_ENCRYPTION_ADMIN:
        case SqlParser.VERSION_TOKEN_ADMIN:
        case SqlParser.XA_RECOVER_ADMIN:
        case SqlParser.ARMSCII8:
        case SqlParser.ASCII:
        case SqlParser.BIG5:
        case SqlParser.CP1250:
        case SqlParser.CP1251:
        case SqlParser.CP1256:
        case SqlParser.CP1257:
        case SqlParser.CP850:
        case SqlParser.CP852:
        case SqlParser.CP866:
        case SqlParser.CP932:
        case SqlParser.DEC8:
        case SqlParser.EUCJPMS:
        case SqlParser.EUCKR:
        case SqlParser.GB2312:
        case SqlParser.GBK:
        case SqlParser.GEOSTD8:
        case SqlParser.GREEK:
        case SqlParser.HEBREW:
        case SqlParser.HP8:
        case SqlParser.KEYBCS2:
        case SqlParser.KOI8R:
        case SqlParser.KOI8U:
        case SqlParser.LATIN1:
        case SqlParser.LATIN2:
        case SqlParser.LATIN5:
        case SqlParser.LATIN7:
        case SqlParser.MACCE:
        case SqlParser.MACROMAN:
        case SqlParser.SJIS:
        case SqlParser.SWE7:
        case SqlParser.TIS620:
        case SqlParser.UCS2:
        case SqlParser.UJIS:
        case SqlParser.UTF16:
        case SqlParser.UTF16LE:
        case SqlParser.UTF32:
        case SqlParser.UTF8:
        case SqlParser.UTF8MB3:
        case SqlParser.UTF8MB4:
        case SqlParser.ARCHIVE:
        case SqlParser.BLACKHOLE:
        case SqlParser.CSV:
        case SqlParser.FEDERATED:
        case SqlParser.INNODB:
        case SqlParser.MEMORY:
        case SqlParser.MRG_MYISAM:
        case SqlParser.MYISAM:
        case SqlParser.NDB:
        case SqlParser.NDBCLUSTER:
        case SqlParser.PERFORMANCE_SCHEMA:
        case SqlParser.TOKUDB:
        case SqlParser.REPEATABLE:
        case SqlParser.COMMITTED:
        case SqlParser.UNCOMMITTED:
        case SqlParser.SERIALIZABLE:
        case SqlParser.GEOMETRYCOLLECTION:
        case SqlParser.LINESTRING:
        case SqlParser.MULTILINESTRING:
        case SqlParser.MULTIPOINT:
        case SqlParser.MULTIPOLYGON:
        case SqlParser.POINT:
        case SqlParser.POLYGON:
        case SqlParser.ABS:
        case SqlParser.ACOS:
        case SqlParser.ADDDATE:
        case SqlParser.ADDTIME:
        case SqlParser.AES_DECRYPT:
        case SqlParser.AES_ENCRYPT:
        case SqlParser.AREA:
        case SqlParser.ASBINARY:
        case SqlParser.ASIN:
        case SqlParser.ASTEXT:
        case SqlParser.ASWKB:
        case SqlParser.ASWKT:
        case SqlParser.ASYMMETRIC_DECRYPT:
        case SqlParser.ASYMMETRIC_DERIVE:
        case SqlParser.ASYMMETRIC_ENCRYPT:
        case SqlParser.ASYMMETRIC_SIGN:
        case SqlParser.ASYMMETRIC_VERIFY:
        case SqlParser.ATAN:
        case SqlParser.ATAN2:
        case SqlParser.BENCHMARK:
        case SqlParser.BIN:
        case SqlParser.BIT_COUNT:
        case SqlParser.BIT_LENGTH:
        case SqlParser.BUFFER:
        case SqlParser.CATALOG_NAME:
        case SqlParser.CEIL:
        case SqlParser.CEILING:
        case SqlParser.CENTROID:
        case SqlParser.CHARACTER_LENGTH:
        case SqlParser.CHARSET:
        case SqlParser.CHAR_LENGTH:
        case SqlParser.COERCIBILITY:
        case SqlParser.COLLATION:
        case SqlParser.COMPRESS:
        case SqlParser.CONCAT:
        case SqlParser.CONCAT_WS:
        case SqlParser.CONNECTION_ID:
        case SqlParser.CONV:
        case SqlParser.CONVERT_TZ:
        case SqlParser.COS:
        case SqlParser.COT:
        case SqlParser.CRC32:
        case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
        case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
        case SqlParser.CREATE_DH_PARAMETERS:
        case SqlParser.CREATE_DIGEST:
        case SqlParser.CROSSES:
        case SqlParser.DATEDIFF:
        case SqlParser.DATE_FORMAT:
        case SqlParser.DAYNAME:
        case SqlParser.DAYOFMONTH:
        case SqlParser.DAYOFWEEK:
        case SqlParser.DAYOFYEAR:
        case SqlParser.DECODE:
        case SqlParser.DEGREES:
        case SqlParser.DES_DECRYPT:
        case SqlParser.DES_ENCRYPT:
        case SqlParser.DIMENSION:
        case SqlParser.DISJOINT:
        case SqlParser.ELT:
        case SqlParser.ENCODE:
        case SqlParser.ENCRYPT:
        case SqlParser.ENDPOINT:
        case SqlParser.ENVELOPE:
        case SqlParser.EQUALS:
        case SqlParser.EXP:
        case SqlParser.EXPORT_SET:
        case SqlParser.EXTERIORRING:
        case SqlParser.EXTRACTVALUE:
        case SqlParser.FIELD:
        case SqlParser.FIND_IN_SET:
        case SqlParser.FLOOR:
        case SqlParser.FORMAT:
        case SqlParser.FOUND_ROWS:
        case SqlParser.FROM_BASE64:
        case SqlParser.FROM_DAYS:
        case SqlParser.FROM_UNIXTIME:
        case SqlParser.GEOMCOLLFROMTEXT:
        case SqlParser.GEOMCOLLFROMWKB:
        case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.GEOMETRYFROMTEXT:
        case SqlParser.GEOMETRYFROMWKB:
        case SqlParser.GEOMETRYN:
        case SqlParser.GEOMETRYTYPE:
        case SqlParser.GEOMFROMTEXT:
        case SqlParser.GEOMFROMWKB:
        case SqlParser.GET_FORMAT:
        case SqlParser.GET_LOCK:
        case SqlParser.GLENGTH:
        case SqlParser.GREATEST:
        case SqlParser.GTID_SUBSET:
        case SqlParser.GTID_SUBTRACT:
        case SqlParser.HEX:
        case SqlParser.IFNULL:
        case SqlParser.INET6_ATON:
        case SqlParser.INET6_NTOA:
        case SqlParser.INET_ATON:
        case SqlParser.INET_NTOA:
        case SqlParser.INSTR:
        case SqlParser.INTERIORRINGN:
        case SqlParser.INTERSECTS:
        case SqlParser.ISCLOSED:
        case SqlParser.ISEMPTY:
        case SqlParser.ISNULL:
        case SqlParser.ISSIMPLE:
        case SqlParser.IS_FREE_LOCK:
        case SqlParser.IS_IPV4:
        case SqlParser.IS_IPV4_COMPAT:
        case SqlParser.IS_IPV4_MAPPED:
        case SqlParser.IS_IPV6:
        case SqlParser.IS_USED_LOCK:
        case SqlParser.LAST_INSERT_ID:
        case SqlParser.LCASE:
        case SqlParser.LEAST:
        case SqlParser.LENGTH:
        case SqlParser.LINEFROMTEXT:
        case SqlParser.LINEFROMWKB:
        case SqlParser.LINESTRINGFROMTEXT:
        case SqlParser.LINESTRINGFROMWKB:
        case SqlParser.LN:
        case SqlParser.LOAD_FILE:
        case SqlParser.LOCATE:
        case SqlParser.LOG:
        case SqlParser.LOG10:
        case SqlParser.LOG2:
        case SqlParser.LOWER:
        case SqlParser.LPAD:
        case SqlParser.LTRIM:
        case SqlParser.MAKEDATE:
        case SqlParser.MAKETIME:
        case SqlParser.MAKE_SET:
        case SqlParser.MASTER_POS_WAIT:
        case SqlParser.MBRCONTAINS:
        case SqlParser.MBRDISJOINT:
        case SqlParser.MBREQUAL:
        case SqlParser.MBRINTERSECTS:
        case SqlParser.MBROVERLAPS:
        case SqlParser.MBRTOUCHES:
        case SqlParser.MBRWITHIN:
        case SqlParser.MD5:
        case SqlParser.MLINEFROMTEXT:
        case SqlParser.MLINEFROMWKB:
        case SqlParser.MONTHNAME:
        case SqlParser.MPOINTFROMTEXT:
        case SqlParser.MPOINTFROMWKB:
        case SqlParser.MPOLYFROMTEXT:
        case SqlParser.MPOLYFROMWKB:
        case SqlParser.MULTILINESTRINGFROMTEXT:
        case SqlParser.MULTILINESTRINGFROMWKB:
        case SqlParser.MULTIPOINTFROMTEXT:
        case SqlParser.MULTIPOINTFROMWKB:
        case SqlParser.MULTIPOLYGONFROMTEXT:
        case SqlParser.MULTIPOLYGONFROMWKB:
        case SqlParser.NAME_CONST:
        case SqlParser.NULLIF:
        case SqlParser.NUMGEOMETRIES:
        case SqlParser.NUMINTERIORRINGS:
        case SqlParser.NUMPOINTS:
        case SqlParser.OCT:
        case SqlParser.OCTET_LENGTH:
        case SqlParser.ORD:
        case SqlParser.OVERLAPS:
        case SqlParser.PERIOD_ADD:
        case SqlParser.PERIOD_DIFF:
        case SqlParser.PI:
        case SqlParser.POINTFROMTEXT:
        case SqlParser.POINTFROMWKB:
        case SqlParser.POINTN:
        case SqlParser.POLYFROMTEXT:
        case SqlParser.POLYFROMWKB:
        case SqlParser.POLYGONFROMTEXT:
        case SqlParser.POLYGONFROMWKB:
        case SqlParser.POW:
        case SqlParser.POWER:
        case SqlParser.QUOTE:
        case SqlParser.RADIANS:
        case SqlParser.RAND:
        case SqlParser.RANDOM_BYTES:
        case SqlParser.RELEASE_LOCK:
        case SqlParser.REVERSE:
        case SqlParser.ROUND:
        case SqlParser.ROW_COUNT:
        case SqlParser.RPAD:
        case SqlParser.RTRIM:
        case SqlParser.SEC_TO_TIME:
        case SqlParser.SESSION_USER:
        case SqlParser.SHA:
        case SqlParser.SHA1:
        case SqlParser.SHA2:
        case SqlParser.SCHEMA_NAME:
        case SqlParser.SIGN:
        case SqlParser.SIN:
        case SqlParser.SLEEP:
        case SqlParser.SOUNDEX:
        case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
        case SqlParser.SQRT:
        case SqlParser.SRID:
        case SqlParser.STARTPOINT:
        case SqlParser.STRCMP:
        case SqlParser.STR_TO_DATE:
        case SqlParser.ST_AREA:
        case SqlParser.ST_ASBINARY:
        case SqlParser.ST_ASTEXT:
        case SqlParser.ST_ASWKB:
        case SqlParser.ST_ASWKT:
        case SqlParser.ST_BUFFER:
        case SqlParser.ST_CENTROID:
        case SqlParser.ST_CONTAINS:
        case SqlParser.ST_CROSSES:
        case SqlParser.ST_DIFFERENCE:
        case SqlParser.ST_DIMENSION:
        case SqlParser.ST_DISJOINT:
        case SqlParser.ST_DISTANCE:
        case SqlParser.ST_ENDPOINT:
        case SqlParser.ST_ENVELOPE:
        case SqlParser.ST_EQUALS:
        case SqlParser.ST_EXTERIORRING:
        case SqlParser.ST_GEOMCOLLFROMTEXT:
        case SqlParser.ST_GEOMCOLLFROMTXT:
        case SqlParser.ST_GEOMCOLLFROMWKB:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.ST_GEOMETRYFROMTEXT:
        case SqlParser.ST_GEOMETRYFROMWKB:
        case SqlParser.ST_GEOMETRYN:
        case SqlParser.ST_GEOMETRYTYPE:
        case SqlParser.ST_GEOMFROMTEXT:
        case SqlParser.ST_GEOMFROMWKB:
        case SqlParser.ST_INTERIORRINGN:
        case SqlParser.ST_INTERSECTION:
        case SqlParser.ST_INTERSECTS:
        case SqlParser.ST_ISCLOSED:
        case SqlParser.ST_ISEMPTY:
        case SqlParser.ST_ISSIMPLE:
        case SqlParser.ST_LINEFROMTEXT:
        case SqlParser.ST_LINEFROMWKB:
        case SqlParser.ST_LINESTRINGFROMTEXT:
        case SqlParser.ST_LINESTRINGFROMWKB:
        case SqlParser.ST_NUMGEOMETRIES:
        case SqlParser.ST_NUMINTERIORRING:
        case SqlParser.ST_NUMINTERIORRINGS:
        case SqlParser.ST_NUMPOINTS:
        case SqlParser.ST_OVERLAPS:
        case SqlParser.ST_POINTFROMTEXT:
        case SqlParser.ST_POINTFROMWKB:
        case SqlParser.ST_POINTN:
        case SqlParser.ST_POLYFROMTEXT:
        case SqlParser.ST_POLYFROMWKB:
        case SqlParser.ST_POLYGONFROMTEXT:
        case SqlParser.ST_POLYGONFROMWKB:
        case SqlParser.ST_SRID:
        case SqlParser.ST_STARTPOINT:
        case SqlParser.ST_SYMDIFFERENCE:
        case SqlParser.ST_TOUCHES:
        case SqlParser.ST_UNION:
        case SqlParser.ST_WITHIN:
        case SqlParser.ST_X:
        case SqlParser.ST_Y:
        case SqlParser.SUBDATE:
        case SqlParser.SUBSTRING_INDEX:
        case SqlParser.SUBTIME:
        case SqlParser.SYSTEM_USER:
        case SqlParser.TAN:
        case SqlParser.TIMEDIFF:
        case SqlParser.TIMESTAMPADD:
        case SqlParser.TIMESTAMPDIFF:
        case SqlParser.TIME_FORMAT:
        case SqlParser.TIME_TO_SEC:
        case SqlParser.TOUCHES:
        case SqlParser.TO_BASE64:
        case SqlParser.TO_DAYS:
        case SqlParser.TO_SECONDS:
        case SqlParser.UCASE:
        case SqlParser.UNCOMPRESS:
        case SqlParser.UNCOMPRESSED_LENGTH:
        case SqlParser.UNHEX:
        case SqlParser.UNIX_TIMESTAMP:
        case SqlParser.UPDATEXML:
        case SqlParser.UPPER:
        case SqlParser.UUID:
        case SqlParser.UUID_SHORT:
        case SqlParser.VALIDATE_PASSWORD_STRENGTH:
        case SqlParser.VERSION:
        case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
        case SqlParser.WEEKDAY:
        case SqlParser.WEEKOFYEAR:
        case SqlParser.WEIGHT_STRING:
        case SqlParser.WITHIN:
        case SqlParser.YEARWEEK:
        case SqlParser.Y_FUNCTION:
        case SqlParser.X_FUNCTION:
        case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
        case SqlParser.STRING_LITERAL:
        case SqlParser.ID:
        case SqlParser.REVERSE_QUOTE_ID:
            this.enterOuterAlt(localctx, 1);
            this.state = 3083;
            this.uid();
            break;
        case SqlParser.LOCAL_ID:
            this.enterOuterAlt(localctx, 2);
            this.state = 3084;
            this.match(SqlParser.LOCAL_ID);
            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 LockClauseContext(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_lockClause;
    return this;
}

LockClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LockClauseContext.prototype.constructor = LockClauseContext;

LockClauseContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

LockClauseContext.prototype.UPDATE = function() {
    return this.getToken(SqlParser.UPDATE, 0);
};

LockClauseContext.prototype.LOCK = function() {
    return this.getToken(SqlParser.LOCK, 0);
};

LockClauseContext.prototype.IN = function() {
    return this.getToken(SqlParser.IN, 0);
};

LockClauseContext.prototype.SHARE = function() {
    return this.getToken(SqlParser.SHARE, 0);
};

LockClauseContext.prototype.MODE = function() {
    return this.getToken(SqlParser.MODE, 0);
};

LockClauseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLockClause(this);
	}
};

LockClauseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLockClause(this);
	}
};

LockClauseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLockClause(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LockClauseContext = LockClauseContext;

SqlParser.prototype.lockClause = function() {

    var localctx = new LockClauseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 190, SqlParser.RULE_lockClause);
    try {
        this.state = 3093;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.FOR:
            this.enterOuterAlt(localctx, 1);
            this.state = 3087;
            this.match(SqlParser.FOR);
            this.state = 3088;
            this.match(SqlParser.UPDATE);
            break;
        case SqlParser.LOCK:
            this.enterOuterAlt(localctx, 2);
            this.state = 3089;
            this.match(SqlParser.LOCK);
            this.state = 3090;
            this.match(SqlParser.IN);
            this.state = 3091;
            this.match(SqlParser.SHARE);
            this.state = 3092;
            this.match(SqlParser.MODE);
            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 SingleDeleteStatementContext(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_singleDeleteStatement;
    this.priority = null; // Token
    return this;
}

SingleDeleteStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SingleDeleteStatementContext.prototype.constructor = SingleDeleteStatementContext;

SingleDeleteStatementContext.prototype.DELETE = function() {
    return this.getToken(SqlParser.DELETE, 0);
};

SingleDeleteStatementContext.prototype.FROM = function() {
    return this.getToken(SqlParser.FROM, 0);
};

SingleDeleteStatementContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

SingleDeleteStatementContext.prototype.QUICK = function() {
    return this.getToken(SqlParser.QUICK, 0);
};

SingleDeleteStatementContext.prototype.IGNORE = function() {
    return this.getToken(SqlParser.IGNORE, 0);
};

SingleDeleteStatementContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

SingleDeleteStatementContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

SingleDeleteStatementContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

SingleDeleteStatementContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

SingleDeleteStatementContext.prototype.WHERE = function() {
    return this.getToken(SqlParser.WHERE, 0);
};

SingleDeleteStatementContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

SingleDeleteStatementContext.prototype.orderByClause = function() {
    return this.getTypedRuleContext(OrderByClauseContext,0);
};

SingleDeleteStatementContext.prototype.LIMIT = function() {
    return this.getToken(SqlParser.LIMIT, 0);
};

SingleDeleteStatementContext.prototype.limitClauseAtom = function() {
    return this.getTypedRuleContext(LimitClauseAtomContext,0);
};

SingleDeleteStatementContext.prototype.LOW_PRIORITY = function() {
    return this.getToken(SqlParser.LOW_PRIORITY, 0);
};

SingleDeleteStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSingleDeleteStatement(this);
	}
};

SingleDeleteStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSingleDeleteStatement(this);
	}
};

SingleDeleteStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSingleDeleteStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SingleDeleteStatementContext = SingleDeleteStatementContext;

SqlParser.prototype.singleDeleteStatement = function() {

    var localctx = new SingleDeleteStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 192, SqlParser.RULE_singleDeleteStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3095;
        this.match(SqlParser.DELETE);
        this.state = 3097;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LOW_PRIORITY) {
            this.state = 3096;
            localctx.priority = this.match(SqlParser.LOW_PRIORITY);
        }

        this.state = 3100;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.QUICK) {
            this.state = 3099;
            this.match(SqlParser.QUICK);
        }

        this.state = 3103;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IGNORE) {
            this.state = 3102;
            this.match(SqlParser.IGNORE);
        }

        this.state = 3105;
        this.match(SqlParser.FROM);
        this.state = 3106;
        this.tableName();
        this.state = 3112;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.PARTITION) {
            this.state = 3107;
            this.match(SqlParser.PARTITION);
            this.state = 3108;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3109;
            this.uidList();
            this.state = 3110;
            this.match(SqlParser.RR_BRACKET);
        }

        this.state = 3116;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WHERE) {
            this.state = 3114;
            this.match(SqlParser.WHERE);
            this.state = 3115;
            this.expression(0);
        }

        this.state = 3119;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ORDER) {
            this.state = 3118;
            this.orderByClause();
        }

        this.state = 3123;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LIMIT) {
            this.state = 3121;
            this.match(SqlParser.LIMIT);
            this.state = 3122;
            this.limitClauseAtom();
        }

    } 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 MultipleDeleteStatementContext(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_multipleDeleteStatement;
    this.priority = null; // Token
    return this;
}

MultipleDeleteStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
MultipleDeleteStatementContext.prototype.constructor = MultipleDeleteStatementContext;

MultipleDeleteStatementContext.prototype.DELETE = function() {
    return this.getToken(SqlParser.DELETE, 0);
};

MultipleDeleteStatementContext.prototype.tableName = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TableNameContext);
    } else {
        return this.getTypedRuleContext(TableNameContext,i);
    }
};

MultipleDeleteStatementContext.prototype.FROM = function() {
    return this.getToken(SqlParser.FROM, 0);
};

MultipleDeleteStatementContext.prototype.tableSources = function() {
    return this.getTypedRuleContext(TableSourcesContext,0);
};

MultipleDeleteStatementContext.prototype.USING = function() {
    return this.getToken(SqlParser.USING, 0);
};

MultipleDeleteStatementContext.prototype.QUICK = function() {
    return this.getToken(SqlParser.QUICK, 0);
};

MultipleDeleteStatementContext.prototype.IGNORE = function() {
    return this.getToken(SqlParser.IGNORE, 0);
};

MultipleDeleteStatementContext.prototype.WHERE = function() {
    return this.getToken(SqlParser.WHERE, 0);
};

MultipleDeleteStatementContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

MultipleDeleteStatementContext.prototype.LOW_PRIORITY = function() {
    return this.getToken(SqlParser.LOW_PRIORITY, 0);
};

MultipleDeleteStatementContext.prototype.DOT = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.DOT);
    } else {
        return this.getToken(SqlParser.DOT, i);
    }
};


MultipleDeleteStatementContext.prototype.STAR = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.STAR);
    } else {
        return this.getToken(SqlParser.STAR, i);
    }
};


MultipleDeleteStatementContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


MultipleDeleteStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterMultipleDeleteStatement(this);
	}
};

MultipleDeleteStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitMultipleDeleteStatement(this);
	}
};

MultipleDeleteStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitMultipleDeleteStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.MultipleDeleteStatementContext = MultipleDeleteStatementContext;

SqlParser.prototype.multipleDeleteStatement = function() {

    var localctx = new MultipleDeleteStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 194, SqlParser.RULE_multipleDeleteStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3125;
        this.match(SqlParser.DELETE);
        this.state = 3127;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LOW_PRIORITY) {
            this.state = 3126;
            localctx.priority = this.match(SqlParser.LOW_PRIORITY);
        }

        this.state = 3130;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,431,this._ctx);
        if(la_===1) {
            this.state = 3129;
            this.match(SqlParser.QUICK);

        }
        this.state = 3133;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IGNORE) {
            this.state = 3132;
            this.match(SqlParser.IGNORE);
        }

        this.state = 3174;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.CURRENT:
        case SqlParser.DATABASE:
        case SqlParser.DIAGNOSTICS:
        case SqlParser.LEFT:
        case SqlParser.NUMBER:
        case SqlParser.RIGHT:
        case SqlParser.STACKED:
        case SqlParser.DATE:
        case SqlParser.TIME:
        case SqlParser.TIMESTAMP:
        case SqlParser.DATETIME:
        case SqlParser.YEAR:
        case SqlParser.TEXT:
        case SqlParser.ENUM:
        case SqlParser.SERIAL:
        case SqlParser.JSON_VALID:
        case SqlParser.JSON_SCHEMA_VALID:
        case SqlParser.COUNT:
        case SqlParser.POSITION:
        case SqlParser.ACCOUNT:
        case SqlParser.ACTION:
        case SqlParser.AFTER:
        case SqlParser.AGGREGATE:
        case SqlParser.ALGORITHM:
        case SqlParser.ANY:
        case SqlParser.AT:
        case SqlParser.AUTHORS:
        case SqlParser.AUTOCOMMIT:
        case SqlParser.AUTOEXTEND_SIZE:
        case SqlParser.AUTO_INCREMENT:
        case SqlParser.AVG_ROW_LENGTH:
        case SqlParser.BEGIN:
        case SqlParser.BINLOG:
        case SqlParser.BIT:
        case SqlParser.BLOCK:
        case SqlParser.BOOL:
        case SqlParser.BOOLEAN:
        case SqlParser.BTREE:
        case SqlParser.CACHE:
        case SqlParser.CASCADED:
        case SqlParser.CHAIN:
        case SqlParser.CHANGED:
        case SqlParser.CHANNEL:
        case SqlParser.CHECKSUM:
        case SqlParser.PAGE_CHECKSUM:
        case SqlParser.CIPHER:
        case SqlParser.CLASS_ORIGIN:
        case SqlParser.CLIENT:
        case SqlParser.CLOSE:
        case SqlParser.COALESCE:
        case SqlParser.CODE:
        case SqlParser.COLUMNS:
        case SqlParser.COLUMN_FORMAT:
        case SqlParser.COLUMN_NAME:
        case SqlParser.COMMENT:
        case SqlParser.COMMIT:
        case SqlParser.COMPACT:
        case SqlParser.COMPLETION:
        case SqlParser.COMPRESSED:
        case SqlParser.COMPRESSION:
        case SqlParser.CONCURRENT:
        case SqlParser.CONNECTION:
        case SqlParser.CONSISTENT:
        case SqlParser.CONSTRAINT_CATALOG:
        case SqlParser.CONSTRAINT_SCHEMA:
        case SqlParser.CONSTRAINT_NAME:
        case SqlParser.CONTAINS:
        case SqlParser.CONTEXT:
        case SqlParser.CONTRIBUTORS:
        case SqlParser.COPY:
        case SqlParser.CPU:
        case SqlParser.CURSOR_NAME:
        case SqlParser.DATA:
        case SqlParser.DATAFILE:
        case SqlParser.DEALLOCATE:
        case SqlParser.DEFAULT_AUTH:
        case SqlParser.DEFINER:
        case SqlParser.DELAY_KEY_WRITE:
        case SqlParser.DES_KEY_FILE:
        case SqlParser.DIRECTORY:
        case SqlParser.DISABLE:
        case SqlParser.DISCARD:
        case SqlParser.DISK:
        case SqlParser.DO:
        case SqlParser.DUMPFILE:
        case SqlParser.DUPLICATE:
        case SqlParser.DYNAMIC:
        case SqlParser.ENABLE:
        case SqlParser.ENCRYPTION:
        case SqlParser.END:
        case SqlParser.ENDS:
        case SqlParser.ENGINE:
        case SqlParser.ENGINES:
        case SqlParser.ERROR:
        case SqlParser.ERRORS:
        case SqlParser.ESCAPE:
        case SqlParser.EVEN:
        case SqlParser.EVENT:
        case SqlParser.EVENTS:
        case SqlParser.EVERY:
        case SqlParser.EXCHANGE:
        case SqlParser.EXCLUSIVE:
        case SqlParser.EXPIRE:
        case SqlParser.EXPORT:
        case SqlParser.EXTENDED:
        case SqlParser.EXTENT_SIZE:
        case SqlParser.FAST:
        case SqlParser.FAULTS:
        case SqlParser.FIELDS:
        case SqlParser.FILE_BLOCK_SIZE:
        case SqlParser.FILTER:
        case SqlParser.FIRST:
        case SqlParser.FIXED:
        case SqlParser.FLUSH:
        case SqlParser.FOLLOWS:
        case SqlParser.FOUND:
        case SqlParser.FULL:
        case SqlParser.FUNCTION:
        case SqlParser.GENERAL:
        case SqlParser.GLOBAL:
        case SqlParser.GRANTS:
        case SqlParser.GROUP_REPLICATION:
        case SqlParser.HANDLER:
        case SqlParser.HASH:
        case SqlParser.HELP:
        case SqlParser.HOST:
        case SqlParser.HOSTS:
        case SqlParser.IDENTIFIED:
        case SqlParser.IGNORE_SERVER_IDS:
        case SqlParser.IMPORT:
        case SqlParser.INDEXES:
        case SqlParser.INITIAL_SIZE:
        case SqlParser.INPLACE:
        case SqlParser.INSERT_METHOD:
        case SqlParser.INSTALL:
        case SqlParser.INSTANCE:
        case SqlParser.INVISIBLE:
        case SqlParser.INVOKER:
        case SqlParser.IO:
        case SqlParser.IO_THREAD:
        case SqlParser.IPC:
        case SqlParser.ISOLATION:
        case SqlParser.ISSUER:
        case SqlParser.JSON:
        case SqlParser.KEY_BLOCK_SIZE:
        case SqlParser.LANGUAGE:
        case SqlParser.LAST:
        case SqlParser.LEAVES:
        case SqlParser.LESS:
        case SqlParser.LEVEL:
        case SqlParser.LIST:
        case SqlParser.LOCAL:
        case SqlParser.LOGFILE:
        case SqlParser.LOGS:
        case SqlParser.MASTER:
        case SqlParser.MASTER_AUTO_POSITION:
        case SqlParser.MASTER_CONNECT_RETRY:
        case SqlParser.MASTER_DELAY:
        case SqlParser.MASTER_HEARTBEAT_PERIOD:
        case SqlParser.MASTER_HOST:
        case SqlParser.MASTER_LOG_FILE:
        case SqlParser.MASTER_LOG_POS:
        case SqlParser.MASTER_PASSWORD:
        case SqlParser.MASTER_PORT:
        case SqlParser.MASTER_RETRY_COUNT:
        case SqlParser.MASTER_SSL:
        case SqlParser.MASTER_SSL_CA:
        case SqlParser.MASTER_SSL_CAPATH:
        case SqlParser.MASTER_SSL_CERT:
        case SqlParser.MASTER_SSL_CIPHER:
        case SqlParser.MASTER_SSL_CRL:
        case SqlParser.MASTER_SSL_CRLPATH:
        case SqlParser.MASTER_SSL_KEY:
        case SqlParser.MASTER_TLS_VERSION:
        case SqlParser.MASTER_USER:
        case SqlParser.MAX_CONNECTIONS_PER_HOUR:
        case SqlParser.MAX_QUERIES_PER_HOUR:
        case SqlParser.MAX_ROWS:
        case SqlParser.MAX_SIZE:
        case SqlParser.MAX_UPDATES_PER_HOUR:
        case SqlParser.MAX_USER_CONNECTIONS:
        case SqlParser.MEDIUM:
        case SqlParser.MERGE:
        case SqlParser.MESSAGE_TEXT:
        case SqlParser.MID:
        case SqlParser.MIGRATE:
        case SqlParser.MIN_ROWS:
        case SqlParser.MODE:
        case SqlParser.MODIFY:
        case SqlParser.MUTEX:
        case SqlParser.MYSQL:
        case SqlParser.MYSQL_ERRNO:
        case SqlParser.NAME:
        case SqlParser.NAMES:
        case SqlParser.NCHAR:
        case SqlParser.NEVER:
        case SqlParser.NEXT:
        case SqlParser.NO:
        case SqlParser.NODEGROUP:
        case SqlParser.NONE:
        case SqlParser.OFFLINE:
        case SqlParser.OFFSET:
        case SqlParser.OJ:
        case SqlParser.OLD_PASSWORD:
        case SqlParser.ONE:
        case SqlParser.ONLINE:
        case SqlParser.ONLY:
        case SqlParser.OPEN:
        case SqlParser.OPTIMIZER_COSTS:
        case SqlParser.OPTIONS:
        case SqlParser.OWNER:
        case SqlParser.PACK_KEYS:
        case SqlParser.PAGE:
        case SqlParser.PARSER:
        case SqlParser.PARTIAL:
        case SqlParser.PARTITIONING:
        case SqlParser.PARTITIONS:
        case SqlParser.PASSWORD:
        case SqlParser.PHASE:
        case SqlParser.PLUGIN:
        case SqlParser.PLUGIN_DIR:
        case SqlParser.PLUGINS:
        case SqlParser.PORT:
        case SqlParser.PRECEDES:
        case SqlParser.PREPARE:
        case SqlParser.PRESERVE:
        case SqlParser.PREV:
        case SqlParser.PROCESSLIST:
        case SqlParser.PROFILE:
        case SqlParser.PROFILES:
        case SqlParser.PROXY:
        case SqlParser.QUERY:
        case SqlParser.QUICK:
        case SqlParser.REBUILD:
        case SqlParser.RECOVER:
        case SqlParser.REDO_BUFFER_SIZE:
        case SqlParser.REDUNDANT:
        case SqlParser.RELAY:
        case SqlParser.RELAY_LOG_FILE:
        case SqlParser.RELAY_LOG_POS:
        case SqlParser.RELAYLOG:
        case SqlParser.REMOVE:
        case SqlParser.REORGANIZE:
        case SqlParser.REPAIR:
        case SqlParser.REPLICATE_DO_DB:
        case SqlParser.REPLICATE_DO_TABLE:
        case SqlParser.REPLICATE_IGNORE_DB:
        case SqlParser.REPLICATE_IGNORE_TABLE:
        case SqlParser.REPLICATE_REWRITE_DB:
        case SqlParser.REPLICATE_WILD_DO_TABLE:
        case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
        case SqlParser.REPLICATION:
        case SqlParser.RESET:
        case SqlParser.RESUME:
        case SqlParser.RETURNED_SQLSTATE:
        case SqlParser.RETURNS:
        case SqlParser.ROLE:
        case SqlParser.ROLLBACK:
        case SqlParser.ROLLUP:
        case SqlParser.ROTATE:
        case SqlParser.ROW:
        case SqlParser.ROWS:
        case SqlParser.ROW_FORMAT:
        case SqlParser.SAVEPOINT:
        case SqlParser.SCHEDULE:
        case SqlParser.SECURITY:
        case SqlParser.SERVER:
        case SqlParser.SESSION:
        case SqlParser.SHARE:
        case SqlParser.SHARED:
        case SqlParser.SIGNED:
        case SqlParser.SIMPLE:
        case SqlParser.SLAVE:
        case SqlParser.SLOW:
        case SqlParser.SNAPSHOT:
        case SqlParser.SOCKET:
        case SqlParser.SOME:
        case SqlParser.SONAME:
        case SqlParser.SOUNDS:
        case SqlParser.SOURCE:
        case SqlParser.SQL_AFTER_GTIDS:
        case SqlParser.SQL_AFTER_MTS_GAPS:
        case SqlParser.SQL_BEFORE_GTIDS:
        case SqlParser.SQL_BUFFER_RESULT:
        case SqlParser.SQL_CACHE:
        case SqlParser.SQL_NO_CACHE:
        case SqlParser.SQL_THREAD:
        case SqlParser.START:
        case SqlParser.STARTS:
        case SqlParser.STATS_AUTO_RECALC:
        case SqlParser.STATS_PERSISTENT:
        case SqlParser.STATS_SAMPLE_PAGES:
        case SqlParser.STATUS:
        case SqlParser.STOP:
        case SqlParser.STORAGE:
        case SqlParser.STRING:
        case SqlParser.SUBCLASS_ORIGIN:
        case SqlParser.SUBJECT:
        case SqlParser.SUBPARTITION:
        case SqlParser.SUBPARTITIONS:
        case SqlParser.SUSPEND:
        case SqlParser.SWAPS:
        case SqlParser.SWITCHES:
        case SqlParser.TABLE_NAME:
        case SqlParser.TABLESPACE:
        case SqlParser.TEMPORARY:
        case SqlParser.TEMPTABLE:
        case SqlParser.THAN:
        case SqlParser.TRADITIONAL:
        case SqlParser.TRANSACTION:
        case SqlParser.TRANSACTIONAL:
        case SqlParser.TRIGGERS:
        case SqlParser.TRUNCATE:
        case SqlParser.UNDEFINED:
        case SqlParser.UNDOFILE:
        case SqlParser.UNDO_BUFFER_SIZE:
        case SqlParser.UNINSTALL:
        case SqlParser.UNKNOWN:
        case SqlParser.UNTIL:
        case SqlParser.UPGRADE:
        case SqlParser.USER:
        case SqlParser.USE_FRM:
        case SqlParser.USER_RESOURCES:
        case SqlParser.VALIDATION:
        case SqlParser.VALUE:
        case SqlParser.VARIABLES:
        case SqlParser.VIEW:
        case SqlParser.VISIBLE:
        case SqlParser.WAIT:
        case SqlParser.WARNINGS:
        case SqlParser.WITHOUT:
        case SqlParser.WORK:
        case SqlParser.WRAPPER:
        case SqlParser.X509:
        case SqlParser.XA:
        case SqlParser.XML:
        case SqlParser.INTERNAL:
        case SqlParser.QUARTER:
        case SqlParser.MONTH:
        case SqlParser.DAY:
        case SqlParser.HOUR:
        case SqlParser.MINUTE:
        case SqlParser.WEEK:
        case SqlParser.SECOND:
        case SqlParser.MICROSECOND:
        case SqlParser.TABLES:
        case SqlParser.ROUTINE:
        case SqlParser.EXECUTE:
        case SqlParser.FILE:
        case SqlParser.PROCESS:
        case SqlParser.RELOAD:
        case SqlParser.SHUTDOWN:
        case SqlParser.SUPER:
        case SqlParser.PRIVILEGES:
        case SqlParser.AUDIT_ADMIN:
        case SqlParser.BACKUP_ADMIN:
        case SqlParser.BINLOG_ADMIN:
        case SqlParser.BINLOG_ENCRYPTION_ADMIN:
        case SqlParser.CLONE_ADMIN:
        case SqlParser.CONNECTION_ADMIN:
        case SqlParser.ENCRYPTION_KEY_ADMIN:
        case SqlParser.FIREWALL_ADMIN:
        case SqlParser.FIREWALL_USER:
        case SqlParser.GROUP_REPLICATION_ADMIN:
        case SqlParser.INNODB_REDO_LOG_ARCHIVE:
        case SqlParser.NDB_STORED_USER:
        case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
        case SqlParser.REPLICATION_APPLIER:
        case SqlParser.REPLICATION_SLAVE_ADMIN:
        case SqlParser.RESOURCE_GROUP_ADMIN:
        case SqlParser.RESOURCE_GROUP_USER:
        case SqlParser.ROLE_ADMIN:
        case SqlParser.SESSION_VARIABLES_ADMIN:
        case SqlParser.SET_USER_ID:
        case SqlParser.SHOW_ROUTINE:
        case SqlParser.SYSTEM_VARIABLES_ADMIN:
        case SqlParser.TABLE_ENCRYPTION_ADMIN:
        case SqlParser.VERSION_TOKEN_ADMIN:
        case SqlParser.XA_RECOVER_ADMIN:
        case SqlParser.ARMSCII8:
        case SqlParser.ASCII:
        case SqlParser.BIG5:
        case SqlParser.CP1250:
        case SqlParser.CP1251:
        case SqlParser.CP1256:
        case SqlParser.CP1257:
        case SqlParser.CP850:
        case SqlParser.CP852:
        case SqlParser.CP866:
        case SqlParser.CP932:
        case SqlParser.DEC8:
        case SqlParser.EUCJPMS:
        case SqlParser.EUCKR:
        case SqlParser.GB2312:
        case SqlParser.GBK:
        case SqlParser.GEOSTD8:
        case SqlParser.GREEK:
        case SqlParser.HEBREW:
        case SqlParser.HP8:
        case SqlParser.KEYBCS2:
        case SqlParser.KOI8R:
        case SqlParser.KOI8U:
        case SqlParser.LATIN1:
        case SqlParser.LATIN2:
        case SqlParser.LATIN5:
        case SqlParser.LATIN7:
        case SqlParser.MACCE:
        case SqlParser.MACROMAN:
        case SqlParser.SJIS:
        case SqlParser.SWE7:
        case SqlParser.TIS620:
        case SqlParser.UCS2:
        case SqlParser.UJIS:
        case SqlParser.UTF16:
        case SqlParser.UTF16LE:
        case SqlParser.UTF32:
        case SqlParser.UTF8:
        case SqlParser.UTF8MB3:
        case SqlParser.UTF8MB4:
        case SqlParser.ARCHIVE:
        case SqlParser.BLACKHOLE:
        case SqlParser.CSV:
        case SqlParser.FEDERATED:
        case SqlParser.INNODB:
        case SqlParser.MEMORY:
        case SqlParser.MRG_MYISAM:
        case SqlParser.MYISAM:
        case SqlParser.NDB:
        case SqlParser.NDBCLUSTER:
        case SqlParser.PERFORMANCE_SCHEMA:
        case SqlParser.TOKUDB:
        case SqlParser.REPEATABLE:
        case SqlParser.COMMITTED:
        case SqlParser.UNCOMMITTED:
        case SqlParser.SERIALIZABLE:
        case SqlParser.GEOMETRYCOLLECTION:
        case SqlParser.LINESTRING:
        case SqlParser.MULTILINESTRING:
        case SqlParser.MULTIPOINT:
        case SqlParser.MULTIPOLYGON:
        case SqlParser.POINT:
        case SqlParser.POLYGON:
        case SqlParser.ABS:
        case SqlParser.ACOS:
        case SqlParser.ADDDATE:
        case SqlParser.ADDTIME:
        case SqlParser.AES_DECRYPT:
        case SqlParser.AES_ENCRYPT:
        case SqlParser.AREA:
        case SqlParser.ASBINARY:
        case SqlParser.ASIN:
        case SqlParser.ASTEXT:
        case SqlParser.ASWKB:
        case SqlParser.ASWKT:
        case SqlParser.ASYMMETRIC_DECRYPT:
        case SqlParser.ASYMMETRIC_DERIVE:
        case SqlParser.ASYMMETRIC_ENCRYPT:
        case SqlParser.ASYMMETRIC_SIGN:
        case SqlParser.ASYMMETRIC_VERIFY:
        case SqlParser.ATAN:
        case SqlParser.ATAN2:
        case SqlParser.BENCHMARK:
        case SqlParser.BIN:
        case SqlParser.BIT_COUNT:
        case SqlParser.BIT_LENGTH:
        case SqlParser.BUFFER:
        case SqlParser.CATALOG_NAME:
        case SqlParser.CEIL:
        case SqlParser.CEILING:
        case SqlParser.CENTROID:
        case SqlParser.CHARACTER_LENGTH:
        case SqlParser.CHARSET:
        case SqlParser.CHAR_LENGTH:
        case SqlParser.COERCIBILITY:
        case SqlParser.COLLATION:
        case SqlParser.COMPRESS:
        case SqlParser.CONCAT:
        case SqlParser.CONCAT_WS:
        case SqlParser.CONNECTION_ID:
        case SqlParser.CONV:
        case SqlParser.CONVERT_TZ:
        case SqlParser.COS:
        case SqlParser.COT:
        case SqlParser.CRC32:
        case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
        case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
        case SqlParser.CREATE_DH_PARAMETERS:
        case SqlParser.CREATE_DIGEST:
        case SqlParser.CROSSES:
        case SqlParser.DATEDIFF:
        case SqlParser.DATE_FORMAT:
        case SqlParser.DAYNAME:
        case SqlParser.DAYOFMONTH:
        case SqlParser.DAYOFWEEK:
        case SqlParser.DAYOFYEAR:
        case SqlParser.DECODE:
        case SqlParser.DEGREES:
        case SqlParser.DES_DECRYPT:
        case SqlParser.DES_ENCRYPT:
        case SqlParser.DIMENSION:
        case SqlParser.DISJOINT:
        case SqlParser.ELT:
        case SqlParser.ENCODE:
        case SqlParser.ENCRYPT:
        case SqlParser.ENDPOINT:
        case SqlParser.ENVELOPE:
        case SqlParser.EQUALS:
        case SqlParser.EXP:
        case SqlParser.EXPORT_SET:
        case SqlParser.EXTERIORRING:
        case SqlParser.EXTRACTVALUE:
        case SqlParser.FIELD:
        case SqlParser.FIND_IN_SET:
        case SqlParser.FLOOR:
        case SqlParser.FORMAT:
        case SqlParser.FOUND_ROWS:
        case SqlParser.FROM_BASE64:
        case SqlParser.FROM_DAYS:
        case SqlParser.FROM_UNIXTIME:
        case SqlParser.GEOMCOLLFROMTEXT:
        case SqlParser.GEOMCOLLFROMWKB:
        case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.GEOMETRYFROMTEXT:
        case SqlParser.GEOMETRYFROMWKB:
        case SqlParser.GEOMETRYN:
        case SqlParser.GEOMETRYTYPE:
        case SqlParser.GEOMFROMTEXT:
        case SqlParser.GEOMFROMWKB:
        case SqlParser.GET_FORMAT:
        case SqlParser.GET_LOCK:
        case SqlParser.GLENGTH:
        case SqlParser.GREATEST:
        case SqlParser.GTID_SUBSET:
        case SqlParser.GTID_SUBTRACT:
        case SqlParser.HEX:
        case SqlParser.IFNULL:
        case SqlParser.INET6_ATON:
        case SqlParser.INET6_NTOA:
        case SqlParser.INET_ATON:
        case SqlParser.INET_NTOA:
        case SqlParser.INSTR:
        case SqlParser.INTERIORRINGN:
        case SqlParser.INTERSECTS:
        case SqlParser.ISCLOSED:
        case SqlParser.ISEMPTY:
        case SqlParser.ISNULL:
        case SqlParser.ISSIMPLE:
        case SqlParser.IS_FREE_LOCK:
        case SqlParser.IS_IPV4:
        case SqlParser.IS_IPV4_COMPAT:
        case SqlParser.IS_IPV4_MAPPED:
        case SqlParser.IS_IPV6:
        case SqlParser.IS_USED_LOCK:
        case SqlParser.LAST_INSERT_ID:
        case SqlParser.LCASE:
        case SqlParser.LEAST:
        case SqlParser.LENGTH:
        case SqlParser.LINEFROMTEXT:
        case SqlParser.LINEFROMWKB:
        case SqlParser.LINESTRINGFROMTEXT:
        case SqlParser.LINESTRINGFROMWKB:
        case SqlParser.LN:
        case SqlParser.LOAD_FILE:
        case SqlParser.LOCATE:
        case SqlParser.LOG:
        case SqlParser.LOG10:
        case SqlParser.LOG2:
        case SqlParser.LOWER:
        case SqlParser.LPAD:
        case SqlParser.LTRIM:
        case SqlParser.MAKEDATE:
        case SqlParser.MAKETIME:
        case SqlParser.MAKE_SET:
        case SqlParser.MASTER_POS_WAIT:
        case SqlParser.MBRCONTAINS:
        case SqlParser.MBRDISJOINT:
        case SqlParser.MBREQUAL:
        case SqlParser.MBRINTERSECTS:
        case SqlParser.MBROVERLAPS:
        case SqlParser.MBRTOUCHES:
        case SqlParser.MBRWITHIN:
        case SqlParser.MD5:
        case SqlParser.MLINEFROMTEXT:
        case SqlParser.MLINEFROMWKB:
        case SqlParser.MONTHNAME:
        case SqlParser.MPOINTFROMTEXT:
        case SqlParser.MPOINTFROMWKB:
        case SqlParser.MPOLYFROMTEXT:
        case SqlParser.MPOLYFROMWKB:
        case SqlParser.MULTILINESTRINGFROMTEXT:
        case SqlParser.MULTILINESTRINGFROMWKB:
        case SqlParser.MULTIPOINTFROMTEXT:
        case SqlParser.MULTIPOINTFROMWKB:
        case SqlParser.MULTIPOLYGONFROMTEXT:
        case SqlParser.MULTIPOLYGONFROMWKB:
        case SqlParser.NAME_CONST:
        case SqlParser.NULLIF:
        case SqlParser.NUMGEOMETRIES:
        case SqlParser.NUMINTERIORRINGS:
        case SqlParser.NUMPOINTS:
        case SqlParser.OCT:
        case SqlParser.OCTET_LENGTH:
        case SqlParser.ORD:
        case SqlParser.OVERLAPS:
        case SqlParser.PERIOD_ADD:
        case SqlParser.PERIOD_DIFF:
        case SqlParser.PI:
        case SqlParser.POINTFROMTEXT:
        case SqlParser.POINTFROMWKB:
        case SqlParser.POINTN:
        case SqlParser.POLYFROMTEXT:
        case SqlParser.POLYFROMWKB:
        case SqlParser.POLYGONFROMTEXT:
        case SqlParser.POLYGONFROMWKB:
        case SqlParser.POW:
        case SqlParser.POWER:
        case SqlParser.QUOTE:
        case SqlParser.RADIANS:
        case SqlParser.RAND:
        case SqlParser.RANDOM_BYTES:
        case SqlParser.RELEASE_LOCK:
        case SqlParser.REVERSE:
        case SqlParser.ROUND:
        case SqlParser.ROW_COUNT:
        case SqlParser.RPAD:
        case SqlParser.RTRIM:
        case SqlParser.SEC_TO_TIME:
        case SqlParser.SESSION_USER:
        case SqlParser.SHA:
        case SqlParser.SHA1:
        case SqlParser.SHA2:
        case SqlParser.SCHEMA_NAME:
        case SqlParser.SIGN:
        case SqlParser.SIN:
        case SqlParser.SLEEP:
        case SqlParser.SOUNDEX:
        case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
        case SqlParser.SQRT:
        case SqlParser.SRID:
        case SqlParser.STARTPOINT:
        case SqlParser.STRCMP:
        case SqlParser.STR_TO_DATE:
        case SqlParser.ST_AREA:
        case SqlParser.ST_ASBINARY:
        case SqlParser.ST_ASTEXT:
        case SqlParser.ST_ASWKB:
        case SqlParser.ST_ASWKT:
        case SqlParser.ST_BUFFER:
        case SqlParser.ST_CENTROID:
        case SqlParser.ST_CONTAINS:
        case SqlParser.ST_CROSSES:
        case SqlParser.ST_DIFFERENCE:
        case SqlParser.ST_DIMENSION:
        case SqlParser.ST_DISJOINT:
        case SqlParser.ST_DISTANCE:
        case SqlParser.ST_ENDPOINT:
        case SqlParser.ST_ENVELOPE:
        case SqlParser.ST_EQUALS:
        case SqlParser.ST_EXTERIORRING:
        case SqlParser.ST_GEOMCOLLFROMTEXT:
        case SqlParser.ST_GEOMCOLLFROMTXT:
        case SqlParser.ST_GEOMCOLLFROMWKB:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.ST_GEOMETRYFROMTEXT:
        case SqlParser.ST_GEOMETRYFROMWKB:
        case SqlParser.ST_GEOMETRYN:
        case SqlParser.ST_GEOMETRYTYPE:
        case SqlParser.ST_GEOMFROMTEXT:
        case SqlParser.ST_GEOMFROMWKB:
        case SqlParser.ST_INTERIORRINGN:
        case SqlParser.ST_INTERSECTION:
        case SqlParser.ST_INTERSECTS:
        case SqlParser.ST_ISCLOSED:
        case SqlParser.ST_ISEMPTY:
        case SqlParser.ST_ISSIMPLE:
        case SqlParser.ST_LINEFROMTEXT:
        case SqlParser.ST_LINEFROMWKB:
        case SqlParser.ST_LINESTRINGFROMTEXT:
        case SqlParser.ST_LINESTRINGFROMWKB:
        case SqlParser.ST_NUMGEOMETRIES:
        case SqlParser.ST_NUMINTERIORRING:
        case SqlParser.ST_NUMINTERIORRINGS:
        case SqlParser.ST_NUMPOINTS:
        case SqlParser.ST_OVERLAPS:
        case SqlParser.ST_POINTFROMTEXT:
        case SqlParser.ST_POINTFROMWKB:
        case SqlParser.ST_POINTN:
        case SqlParser.ST_POLYFROMTEXT:
        case SqlParser.ST_POLYFROMWKB:
        case SqlParser.ST_POLYGONFROMTEXT:
        case SqlParser.ST_POLYGONFROMWKB:
        case SqlParser.ST_SRID:
        case SqlParser.ST_STARTPOINT:
        case SqlParser.ST_SYMDIFFERENCE:
        case SqlParser.ST_TOUCHES:
        case SqlParser.ST_UNION:
        case SqlParser.ST_WITHIN:
        case SqlParser.ST_X:
        case SqlParser.ST_Y:
        case SqlParser.SUBDATE:
        case SqlParser.SUBSTRING_INDEX:
        case SqlParser.SUBTIME:
        case SqlParser.SYSTEM_USER:
        case SqlParser.TAN:
        case SqlParser.TIMEDIFF:
        case SqlParser.TIMESTAMPADD:
        case SqlParser.TIMESTAMPDIFF:
        case SqlParser.TIME_FORMAT:
        case SqlParser.TIME_TO_SEC:
        case SqlParser.TOUCHES:
        case SqlParser.TO_BASE64:
        case SqlParser.TO_DAYS:
        case SqlParser.TO_SECONDS:
        case SqlParser.UCASE:
        case SqlParser.UNCOMPRESS:
        case SqlParser.UNCOMPRESSED_LENGTH:
        case SqlParser.UNHEX:
        case SqlParser.UNIX_TIMESTAMP:
        case SqlParser.UPDATEXML:
        case SqlParser.UPPER:
        case SqlParser.UUID:
        case SqlParser.UUID_SHORT:
        case SqlParser.VALIDATE_PASSWORD_STRENGTH:
        case SqlParser.VERSION:
        case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
        case SqlParser.WEEKDAY:
        case SqlParser.WEEKOFYEAR:
        case SqlParser.WEIGHT_STRING:
        case SqlParser.WITHIN:
        case SqlParser.YEARWEEK:
        case SqlParser.Y_FUNCTION:
        case SqlParser.X_FUNCTION:
        case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
        case SqlParser.STRING_LITERAL:
        case SqlParser.ID:
        case SqlParser.REVERSE_QUOTE_ID:
            this.state = 3135;
            this.tableName();
            this.state = 3138;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.DOT) {
                this.state = 3136;
                this.match(SqlParser.DOT);
                this.state = 3137;
                this.match(SqlParser.STAR);
            }

            this.state = 3148;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 3140;
                this.match(SqlParser.COMMA);
                this.state = 3141;
                this.tableName();
                this.state = 3144;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.DOT) {
                    this.state = 3142;
                    this.match(SqlParser.DOT);
                    this.state = 3143;
                    this.match(SqlParser.STAR);
                }

                this.state = 3150;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 3151;
            this.match(SqlParser.FROM);
            this.state = 3152;
            this.tableSources();
            break;
        case SqlParser.FROM:
            this.state = 3154;
            this.match(SqlParser.FROM);
            this.state = 3155;
            this.tableName();
            this.state = 3158;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.DOT) {
                this.state = 3156;
                this.match(SqlParser.DOT);
                this.state = 3157;
                this.match(SqlParser.STAR);
            }

            this.state = 3168;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 3160;
                this.match(SqlParser.COMMA);
                this.state = 3161;
                this.tableName();
                this.state = 3164;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.DOT) {
                    this.state = 3162;
                    this.match(SqlParser.DOT);
                    this.state = 3163;
                    this.match(SqlParser.STAR);
                }

                this.state = 3170;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 3171;
            this.match(SqlParser.USING);
            this.state = 3172;
            this.tableSources();
            break;
        default:
            throw new antlr4.error.NoViableAltException(this);
        }
        this.state = 3178;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WHERE) {
            this.state = 3176;
            this.match(SqlParser.WHERE);
            this.state = 3177;
            this.expression(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 HandlerOpenStatementContext(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_handlerOpenStatement;
    return this;
}

HandlerOpenStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
HandlerOpenStatementContext.prototype.constructor = HandlerOpenStatementContext;

HandlerOpenStatementContext.prototype.HANDLER = function() {
    return this.getToken(SqlParser.HANDLER, 0);
};

HandlerOpenStatementContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

HandlerOpenStatementContext.prototype.OPEN = function() {
    return this.getToken(SqlParser.OPEN, 0);
};

HandlerOpenStatementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

HandlerOpenStatementContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};

HandlerOpenStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterHandlerOpenStatement(this);
	}
};

HandlerOpenStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitHandlerOpenStatement(this);
	}
};

HandlerOpenStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitHandlerOpenStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.HandlerOpenStatementContext = HandlerOpenStatementContext;

SqlParser.prototype.handlerOpenStatement = function() {

    var localctx = new HandlerOpenStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 196, SqlParser.RULE_handlerOpenStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3180;
        this.match(SqlParser.HANDLER);
        this.state = 3181;
        this.tableName();
        this.state = 3182;
        this.match(SqlParser.OPEN);
        this.state = 3187;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,442,this._ctx);
        if(la_===1) {
            this.state = 3184;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.AS) {
                this.state = 3183;
                this.match(SqlParser.AS);
            }

            this.state = 3186;
            this.uid();

        }
    } 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 HandlerReadIndexStatementContext(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_handlerReadIndexStatement;
    this.index = null; // UidContext
    this.moveOrder = null; // Token
    return this;
}

HandlerReadIndexStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
HandlerReadIndexStatementContext.prototype.constructor = HandlerReadIndexStatementContext;

HandlerReadIndexStatementContext.prototype.HANDLER = function() {
    return this.getToken(SqlParser.HANDLER, 0);
};

HandlerReadIndexStatementContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

HandlerReadIndexStatementContext.prototype.READ = function() {
    return this.getToken(SqlParser.READ, 0);
};

HandlerReadIndexStatementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

HandlerReadIndexStatementContext.prototype.comparisonOperator = function() {
    return this.getTypedRuleContext(ComparisonOperatorContext,0);
};

HandlerReadIndexStatementContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

HandlerReadIndexStatementContext.prototype.constants = function() {
    return this.getTypedRuleContext(ConstantsContext,0);
};

HandlerReadIndexStatementContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

HandlerReadIndexStatementContext.prototype.WHERE = function() {
    return this.getToken(SqlParser.WHERE, 0);
};

HandlerReadIndexStatementContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

HandlerReadIndexStatementContext.prototype.LIMIT = function() {
    return this.getToken(SqlParser.LIMIT, 0);
};

HandlerReadIndexStatementContext.prototype.limitClauseAtom = function() {
    return this.getTypedRuleContext(LimitClauseAtomContext,0);
};

HandlerReadIndexStatementContext.prototype.FIRST = function() {
    return this.getToken(SqlParser.FIRST, 0);
};

HandlerReadIndexStatementContext.prototype.NEXT = function() {
    return this.getToken(SqlParser.NEXT, 0);
};

HandlerReadIndexStatementContext.prototype.PREV = function() {
    return this.getToken(SqlParser.PREV, 0);
};

HandlerReadIndexStatementContext.prototype.LAST = function() {
    return this.getToken(SqlParser.LAST, 0);
};

HandlerReadIndexStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterHandlerReadIndexStatement(this);
	}
};

HandlerReadIndexStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitHandlerReadIndexStatement(this);
	}
};

HandlerReadIndexStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitHandlerReadIndexStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.HandlerReadIndexStatementContext = HandlerReadIndexStatementContext;

SqlParser.prototype.handlerReadIndexStatement = function() {

    var localctx = new HandlerReadIndexStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 198, SqlParser.RULE_handlerReadIndexStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3189;
        this.match(SqlParser.HANDLER);
        this.state = 3190;
        this.tableName();
        this.state = 3191;
        this.match(SqlParser.READ);
        this.state = 3192;
        localctx.index = this.uid();
        this.state = 3199;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.EQUAL_SYMBOL:
        case SqlParser.GREATER_SYMBOL:
        case SqlParser.LESS_SYMBOL:
        case SqlParser.EXCLAMATION_SYMBOL:
            this.state = 3193;
            this.comparisonOperator();
            this.state = 3194;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3195;
            this.constants();
            this.state = 3196;
            this.match(SqlParser.RR_BRACKET);
            break;
        case SqlParser.FIRST:
        case SqlParser.LAST:
        case SqlParser.NEXT:
        case SqlParser.PREV:
            this.state = 3198;
            localctx.moveOrder = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.FIRST || _la===SqlParser.LAST || _la===SqlParser.NEXT || _la===SqlParser.PREV)) {
                localctx.moveOrder = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;
        default:
            throw new antlr4.error.NoViableAltException(this);
        }
        this.state = 3203;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WHERE) {
            this.state = 3201;
            this.match(SqlParser.WHERE);
            this.state = 3202;
            this.expression(0);
        }

        this.state = 3207;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LIMIT) {
            this.state = 3205;
            this.match(SqlParser.LIMIT);
            this.state = 3206;
            this.limitClauseAtom();
        }

    } 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 HandlerReadStatementContext(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_handlerReadStatement;
    this.moveOrder = null; // Token
    return this;
}

HandlerReadStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
HandlerReadStatementContext.prototype.constructor = HandlerReadStatementContext;

HandlerReadStatementContext.prototype.HANDLER = function() {
    return this.getToken(SqlParser.HANDLER, 0);
};

HandlerReadStatementContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

HandlerReadStatementContext.prototype.READ = function() {
    return this.getToken(SqlParser.READ, 0);
};

HandlerReadStatementContext.prototype.FIRST = function() {
    return this.getToken(SqlParser.FIRST, 0);
};

HandlerReadStatementContext.prototype.NEXT = function() {
    return this.getToken(SqlParser.NEXT, 0);
};

HandlerReadStatementContext.prototype.WHERE = function() {
    return this.getToken(SqlParser.WHERE, 0);
};

HandlerReadStatementContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

HandlerReadStatementContext.prototype.LIMIT = function() {
    return this.getToken(SqlParser.LIMIT, 0);
};

HandlerReadStatementContext.prototype.limitClauseAtom = function() {
    return this.getTypedRuleContext(LimitClauseAtomContext,0);
};

HandlerReadStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterHandlerReadStatement(this);
	}
};

HandlerReadStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitHandlerReadStatement(this);
	}
};

HandlerReadStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitHandlerReadStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.HandlerReadStatementContext = HandlerReadStatementContext;

SqlParser.prototype.handlerReadStatement = function() {

    var localctx = new HandlerReadStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 200, SqlParser.RULE_handlerReadStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3209;
        this.match(SqlParser.HANDLER);
        this.state = 3210;
        this.tableName();
        this.state = 3211;
        this.match(SqlParser.READ);
        this.state = 3212;
        localctx.moveOrder = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.FIRST || _la===SqlParser.NEXT)) {
            localctx.moveOrder = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 3215;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WHERE) {
            this.state = 3213;
            this.match(SqlParser.WHERE);
            this.state = 3214;
            this.expression(0);
        }

        this.state = 3219;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LIMIT) {
            this.state = 3217;
            this.match(SqlParser.LIMIT);
            this.state = 3218;
            this.limitClauseAtom();
        }

    } 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 HandlerCloseStatementContext(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_handlerCloseStatement;
    return this;
}

HandlerCloseStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
HandlerCloseStatementContext.prototype.constructor = HandlerCloseStatementContext;

HandlerCloseStatementContext.prototype.HANDLER = function() {
    return this.getToken(SqlParser.HANDLER, 0);
};

HandlerCloseStatementContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

HandlerCloseStatementContext.prototype.CLOSE = function() {
    return this.getToken(SqlParser.CLOSE, 0);
};

HandlerCloseStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterHandlerCloseStatement(this);
	}
};

HandlerCloseStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitHandlerCloseStatement(this);
	}
};

HandlerCloseStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitHandlerCloseStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.HandlerCloseStatementContext = HandlerCloseStatementContext;

SqlParser.prototype.handlerCloseStatement = function() {

    var localctx = new HandlerCloseStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 202, SqlParser.RULE_handlerCloseStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3221;
        this.match(SqlParser.HANDLER);
        this.state = 3222;
        this.tableName();
        this.state = 3223;
        this.match(SqlParser.CLOSE);
    } 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 SingleUpdateStatementContext(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_singleUpdateStatement;
    this.priority = null; // Token
    return this;
}

SingleUpdateStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SingleUpdateStatementContext.prototype.constructor = SingleUpdateStatementContext;

SingleUpdateStatementContext.prototype.UPDATE = function() {
    return this.getToken(SqlParser.UPDATE, 0);
};

SingleUpdateStatementContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

SingleUpdateStatementContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

SingleUpdateStatementContext.prototype.updatedElement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UpdatedElementContext);
    } else {
        return this.getTypedRuleContext(UpdatedElementContext,i);
    }
};

SingleUpdateStatementContext.prototype.IGNORE = function() {
    return this.getToken(SqlParser.IGNORE, 0);
};

SingleUpdateStatementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

SingleUpdateStatementContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


SingleUpdateStatementContext.prototype.WHERE = function() {
    return this.getToken(SqlParser.WHERE, 0);
};

SingleUpdateStatementContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

SingleUpdateStatementContext.prototype.orderByClause = function() {
    return this.getTypedRuleContext(OrderByClauseContext,0);
};

SingleUpdateStatementContext.prototype.limitClause = function() {
    return this.getTypedRuleContext(LimitClauseContext,0);
};

SingleUpdateStatementContext.prototype.LOW_PRIORITY = function() {
    return this.getToken(SqlParser.LOW_PRIORITY, 0);
};

SingleUpdateStatementContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};

SingleUpdateStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSingleUpdateStatement(this);
	}
};

SingleUpdateStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSingleUpdateStatement(this);
	}
};

SingleUpdateStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSingleUpdateStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SingleUpdateStatementContext = SingleUpdateStatementContext;

SqlParser.prototype.singleUpdateStatement = function() {

    var localctx = new SingleUpdateStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 204, SqlParser.RULE_singleUpdateStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3225;
        this.match(SqlParser.UPDATE);
        this.state = 3227;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LOW_PRIORITY) {
            this.state = 3226;
            localctx.priority = this.match(SqlParser.LOW_PRIORITY);
        }

        this.state = 3230;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IGNORE) {
            this.state = 3229;
            this.match(SqlParser.IGNORE);
        }

        this.state = 3232;
        this.tableName();
        this.state = 3237;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.AS || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
            this.state = 3234;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.AS) {
                this.state = 3233;
                this.match(SqlParser.AS);
            }

            this.state = 3236;
            this.uid();
        }

        this.state = 3239;
        this.match(SqlParser.SET);
        this.state = 3240;
        this.updatedElement();
        this.state = 3245;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 3241;
            this.match(SqlParser.COMMA);
            this.state = 3242;
            this.updatedElement();
            this.state = 3247;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 3250;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WHERE) {
            this.state = 3248;
            this.match(SqlParser.WHERE);
            this.state = 3249;
            this.expression(0);
        }

        this.state = 3253;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ORDER) {
            this.state = 3252;
            this.orderByClause();
        }

        this.state = 3256;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LIMIT) {
            this.state = 3255;
            this.limitClause();
        }

    } 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 MultipleUpdateStatementContext(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_multipleUpdateStatement;
    this.priority = null; // Token
    return this;
}

MultipleUpdateStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
MultipleUpdateStatementContext.prototype.constructor = MultipleUpdateStatementContext;

MultipleUpdateStatementContext.prototype.UPDATE = function() {
    return this.getToken(SqlParser.UPDATE, 0);
};

MultipleUpdateStatementContext.prototype.tableSources = function() {
    return this.getTypedRuleContext(TableSourcesContext,0);
};

MultipleUpdateStatementContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

MultipleUpdateStatementContext.prototype.updatedElement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UpdatedElementContext);
    } else {
        return this.getTypedRuleContext(UpdatedElementContext,i);
    }
};

MultipleUpdateStatementContext.prototype.IGNORE = function() {
    return this.getToken(SqlParser.IGNORE, 0);
};

MultipleUpdateStatementContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


MultipleUpdateStatementContext.prototype.WHERE = function() {
    return this.getToken(SqlParser.WHERE, 0);
};

MultipleUpdateStatementContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

MultipleUpdateStatementContext.prototype.LOW_PRIORITY = function() {
    return this.getToken(SqlParser.LOW_PRIORITY, 0);
};

MultipleUpdateStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterMultipleUpdateStatement(this);
	}
};

MultipleUpdateStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitMultipleUpdateStatement(this);
	}
};

MultipleUpdateStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitMultipleUpdateStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.MultipleUpdateStatementContext = MultipleUpdateStatementContext;

SqlParser.prototype.multipleUpdateStatement = function() {

    var localctx = new MultipleUpdateStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 206, SqlParser.RULE_multipleUpdateStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3258;
        this.match(SqlParser.UPDATE);
        this.state = 3260;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LOW_PRIORITY) {
            this.state = 3259;
            localctx.priority = this.match(SqlParser.LOW_PRIORITY);
        }

        this.state = 3263;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IGNORE) {
            this.state = 3262;
            this.match(SqlParser.IGNORE);
        }

        this.state = 3265;
        this.tableSources();
        this.state = 3266;
        this.match(SqlParser.SET);
        this.state = 3267;
        this.updatedElement();
        this.state = 3272;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 3268;
            this.match(SqlParser.COMMA);
            this.state = 3269;
            this.updatedElement();
            this.state = 3274;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 3277;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WHERE) {
            this.state = 3275;
            this.match(SqlParser.WHERE);
            this.state = 3276;
            this.expression(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 OrderByClauseContext(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_orderByClause;
    return this;
}

OrderByClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
OrderByClauseContext.prototype.constructor = OrderByClauseContext;

OrderByClauseContext.prototype.ORDER = function() {
    return this.getToken(SqlParser.ORDER, 0);
};

OrderByClauseContext.prototype.BY = function() {
    return this.getToken(SqlParser.BY, 0);
};

OrderByClauseContext.prototype.orderByExpression = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(OrderByExpressionContext);
    } else {
        return this.getTypedRuleContext(OrderByExpressionContext,i);
    }
};

OrderByClauseContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


OrderByClauseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterOrderByClause(this);
	}
};

OrderByClauseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitOrderByClause(this);
	}
};

OrderByClauseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitOrderByClause(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.OrderByClauseContext = OrderByClauseContext;

SqlParser.prototype.orderByClause = function() {

    var localctx = new OrderByClauseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 208, SqlParser.RULE_orderByClause);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3279;
        this.match(SqlParser.ORDER);
        this.state = 3280;
        this.match(SqlParser.BY);
        this.state = 3281;
        this.orderByExpression();
        this.state = 3286;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 3282;
            this.match(SqlParser.COMMA);
            this.state = 3283;
            this.orderByExpression();
            this.state = 3288;
            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 OrderByExpressionContext(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_orderByExpression;
    this.order = null; // Token
    return this;
}

OrderByExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
OrderByExpressionContext.prototype.constructor = OrderByExpressionContext;

OrderByExpressionContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

OrderByExpressionContext.prototype.ASC = function() {
    return this.getToken(SqlParser.ASC, 0);
};

OrderByExpressionContext.prototype.DESC = function() {
    return this.getToken(SqlParser.DESC, 0);
};

OrderByExpressionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterOrderByExpression(this);
	}
};

OrderByExpressionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitOrderByExpression(this);
	}
};

OrderByExpressionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitOrderByExpression(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.OrderByExpressionContext = OrderByExpressionContext;

SqlParser.prototype.orderByExpression = function() {

    var localctx = new OrderByExpressionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 210, SqlParser.RULE_orderByExpression);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3289;
        this.expression(0);
        this.state = 3291;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,461,this._ctx);
        if(la_===1) {
            this.state = 3290;
            localctx.order = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.ASC || _la===SqlParser.DESC)) {
                localctx.order = 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 TableSourcesContext(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_tableSources;
    return this;
}

TableSourcesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TableSourcesContext.prototype.constructor = TableSourcesContext;

TableSourcesContext.prototype.tableSource = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TableSourceContext);
    } else {
        return this.getTypedRuleContext(TableSourceContext,i);
    }
};

TableSourcesContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


TableSourcesContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableSources(this);
	}
};

TableSourcesContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableSources(this);
	}
};

TableSourcesContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableSources(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.TableSourcesContext = TableSourcesContext;

SqlParser.prototype.tableSources = function() {

    var localctx = new TableSourcesContext(this, this._ctx, this.state);
    this.enterRule(localctx, 212, SqlParser.RULE_tableSources);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3293;
        this.tableSource();
        this.state = 3298;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 3294;
            this.match(SqlParser.COMMA);
            this.state = 3295;
            this.tableSource();
            this.state = 3300;
            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 TableSourceContext(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_tableSource;
    return this;
}

TableSourceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TableSourceContext.prototype.constructor = TableSourceContext;


 
TableSourceContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function TableSourceNestedContext(parser, ctx) {
	TableSourceContext.call(this, parser);
    TableSourceContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableSourceNestedContext.prototype = Object.create(TableSourceContext.prototype);
TableSourceNestedContext.prototype.constructor = TableSourceNestedContext;

SqlParser.TableSourceNestedContext = TableSourceNestedContext;

TableSourceNestedContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

TableSourceNestedContext.prototype.tableSourceItem = function() {
    return this.getTypedRuleContext(TableSourceItemContext,0);
};

TableSourceNestedContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

TableSourceNestedContext.prototype.joinPart = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(JoinPartContext);
    } else {
        return this.getTypedRuleContext(JoinPartContext,i);
    }
};
TableSourceNestedContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableSourceNested(this);
	}
};

TableSourceNestedContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableSourceNested(this);
	}
};

TableSourceNestedContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableSourceNested(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableSourceBaseContext(parser, ctx) {
	TableSourceContext.call(this, parser);
    TableSourceContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableSourceBaseContext.prototype = Object.create(TableSourceContext.prototype);
TableSourceBaseContext.prototype.constructor = TableSourceBaseContext;

SqlParser.TableSourceBaseContext = TableSourceBaseContext;

TableSourceBaseContext.prototype.tableSourceItem = function() {
    return this.getTypedRuleContext(TableSourceItemContext,0);
};

TableSourceBaseContext.prototype.joinPart = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(JoinPartContext);
    } else {
        return this.getTypedRuleContext(JoinPartContext,i);
    }
};
TableSourceBaseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableSourceBase(this);
	}
};

TableSourceBaseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableSourceBase(this);
	}
};

TableSourceBaseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableSourceBase(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.TableSourceContext = TableSourceContext;

SqlParser.prototype.tableSource = function() {

    var localctx = new TableSourceContext(this, this._ctx, this.state);
    this.enterRule(localctx, 214, SqlParser.RULE_tableSource);
    var _la = 0; // Token type
    try {
        this.state = 3318;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,465,this._ctx);
        switch(la_) {
        case 1:
            localctx = new TableSourceBaseContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 3301;
            this.tableSourceItem();
            this.state = 3305;
            this._errHandler.sync(this);
            var _alt = this._interp.adaptivePredict(this._input,463,this._ctx)
            while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                if(_alt===1) {
                    this.state = 3302;
                    this.joinPart(); 
                }
                this.state = 3307;
                this._errHandler.sync(this);
                _alt = this._interp.adaptivePredict(this._input,463,this._ctx);
            }

            break;

        case 2:
            localctx = new TableSourceNestedContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 3308;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3309;
            this.tableSourceItem();
            this.state = 3313;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.CROSS || ((((_la - 74)) & ~0x1f) == 0 && ((1 << (_la - 74)) & ((1 << (SqlParser.INNER - 74)) | (1 << (SqlParser.JOIN - 74)) | (1 << (SqlParser.LEFT - 74)) | (1 << (SqlParser.NATURAL - 74)))) !== 0) || _la===SqlParser.RIGHT || _la===SqlParser.STRAIGHT_JOIN) {
                this.state = 3310;
                this.joinPart();
                this.state = 3315;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 3316;
            this.match(SqlParser.RR_BRACKET);
            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 TableSourceItemContext(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_tableSourceItem;
    return this;
}

TableSourceItemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TableSourceItemContext.prototype.constructor = TableSourceItemContext;


 
TableSourceItemContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function SubqueryTableItemContext(parser, ctx) {
	TableSourceItemContext.call(this, parser);
    this.parenthesisSubquery = null; // SelectStatementContext;
    this.alias = null; // UidContext;
    TableSourceItemContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SubqueryTableItemContext.prototype = Object.create(TableSourceItemContext.prototype);
SubqueryTableItemContext.prototype.constructor = SubqueryTableItemContext;

SqlParser.SubqueryTableItemContext = SubqueryTableItemContext;

SubqueryTableItemContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

SubqueryTableItemContext.prototype.selectStatement = function() {
    return this.getTypedRuleContext(SelectStatementContext,0);
};

SubqueryTableItemContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

SubqueryTableItemContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

SubqueryTableItemContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};
SubqueryTableItemContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSubqueryTableItem(this);
	}
};

SubqueryTableItemContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSubqueryTableItem(this);
	}
};

SubqueryTableItemContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSubqueryTableItem(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AtomTableItemContext(parser, ctx) {
	TableSourceItemContext.call(this, parser);
    this.alias = null; // UidContext;
    TableSourceItemContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AtomTableItemContext.prototype = Object.create(TableSourceItemContext.prototype);
AtomTableItemContext.prototype.constructor = AtomTableItemContext;

SqlParser.AtomTableItemContext = AtomTableItemContext;

AtomTableItemContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

AtomTableItemContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

AtomTableItemContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

AtomTableItemContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

AtomTableItemContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

AtomTableItemContext.prototype.indexHint = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(IndexHintContext);
    } else {
        return this.getTypedRuleContext(IndexHintContext,i);
    }
};

AtomTableItemContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AtomTableItemContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};

AtomTableItemContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

AtomTableItemContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAtomTableItem(this);
	}
};

AtomTableItemContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAtomTableItem(this);
	}
};

AtomTableItemContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAtomTableItem(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TableSourcesItemContext(parser, ctx) {
	TableSourceItemContext.call(this, parser);
    TableSourceItemContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableSourcesItemContext.prototype = Object.create(TableSourceItemContext.prototype);
TableSourcesItemContext.prototype.constructor = TableSourcesItemContext;

SqlParser.TableSourcesItemContext = TableSourcesItemContext;

TableSourcesItemContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

TableSourcesItemContext.prototype.tableSources = function() {
    return this.getTypedRuleContext(TableSourcesContext,0);
};

TableSourcesItemContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};
TableSourcesItemContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableSourcesItem(this);
	}
};

TableSourcesItemContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableSourcesItem(this);
	}
};

TableSourcesItemContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableSourcesItem(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.TableSourceItemContext = TableSourceItemContext;

SqlParser.prototype.tableSourceItem = function() {

    var localctx = new TableSourceItemContext(this, this._ctx, this.state);
    this.enterRule(localctx, 216, SqlParser.RULE_tableSourceItem);
    var _la = 0; // Token type
    try {
        this.state = 3360;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,473,this._ctx);
        switch(la_) {
        case 1:
            localctx = new AtomTableItemContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 3320;
            this.tableName();
            this.state = 3326;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.PARTITION) {
                this.state = 3321;
                this.match(SqlParser.PARTITION);
                this.state = 3322;
                this.match(SqlParser.LR_BRACKET);
                this.state = 3323;
                this.uidList();
                this.state = 3324;
                this.match(SqlParser.RR_BRACKET);
            }

            this.state = 3332;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,468,this._ctx);
            if(la_===1) {
                this.state = 3329;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.AS) {
                    this.state = 3328;
                    this.match(SqlParser.AS);
                }

                this.state = 3331;
                localctx.alias = this.uid();

            }
            this.state = 3342;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,470,this._ctx);
            if(la_===1) {
                this.state = 3334;
                this.indexHint();
                this.state = 3339;
                this._errHandler.sync(this);
                var _alt = this._interp.adaptivePredict(this._input,469,this._ctx)
                while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                    if(_alt===1) {
                        this.state = 3335;
                        this.match(SqlParser.COMMA);
                        this.state = 3336;
                        this.indexHint(); 
                    }
                    this.state = 3341;
                    this._errHandler.sync(this);
                    _alt = this._interp.adaptivePredict(this._input,469,this._ctx);
                }


            }
            break;

        case 2:
            localctx = new SubqueryTableItemContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 3349;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,471,this._ctx);
            switch(la_) {
            case 1:
                this.state = 3344;
                this.selectStatement();
                break;

            case 2:
                this.state = 3345;
                this.match(SqlParser.LR_BRACKET);
                this.state = 3346;
                localctx.parenthesisSubquery = this.selectStatement();
                this.state = 3347;
                this.match(SqlParser.RR_BRACKET);
                break;

            }
            this.state = 3352;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.AS) {
                this.state = 3351;
                this.match(SqlParser.AS);
            }

            this.state = 3354;
            localctx.alias = this.uid();
            break;

        case 3:
            localctx = new TableSourcesItemContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 3356;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3357;
            this.tableSources();
            this.state = 3358;
            this.match(SqlParser.RR_BRACKET);
            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 IndexHintContext(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_indexHint;
    this.indexHintAction = null; // Token
    this.keyFormat = null; // Token
    return this;
}

IndexHintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IndexHintContext.prototype.constructor = IndexHintContext;

IndexHintContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

IndexHintContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

IndexHintContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

IndexHintContext.prototype.USE = function() {
    return this.getToken(SqlParser.USE, 0);
};

IndexHintContext.prototype.IGNORE = function() {
    return this.getToken(SqlParser.IGNORE, 0);
};

IndexHintContext.prototype.FORCE = function() {
    return this.getToken(SqlParser.FORCE, 0);
};

IndexHintContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

IndexHintContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

IndexHintContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

IndexHintContext.prototype.indexHintType = function() {
    return this.getTypedRuleContext(IndexHintTypeContext,0);
};

IndexHintContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIndexHint(this);
	}
};

IndexHintContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIndexHint(this);
	}
};

IndexHintContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIndexHint(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.IndexHintContext = IndexHintContext;

SqlParser.prototype.indexHint = function() {

    var localctx = new IndexHintContext(this, this._ctx, this.state);
    this.enterRule(localctx, 218, SqlParser.RULE_indexHint);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3362;
        localctx.indexHintAction = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.FORCE || _la===SqlParser.IGNORE || _la===SqlParser.USE)) {
            localctx.indexHintAction = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 3363;
        localctx.keyFormat = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.INDEX || _la===SqlParser.KEY)) {
            localctx.keyFormat = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 3366;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.FOR) {
            this.state = 3364;
            this.match(SqlParser.FOR);
            this.state = 3365;
            this.indexHintType();
        }

        this.state = 3368;
        this.match(SqlParser.LR_BRACKET);
        this.state = 3369;
        this.uidList();
        this.state = 3370;
        this.match(SqlParser.RR_BRACKET);
    } 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 IndexHintTypeContext(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_indexHintType;
    return this;
}

IndexHintTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IndexHintTypeContext.prototype.constructor = IndexHintTypeContext;

IndexHintTypeContext.prototype.JOIN = function() {
    return this.getToken(SqlParser.JOIN, 0);
};

IndexHintTypeContext.prototype.ORDER = function() {
    return this.getToken(SqlParser.ORDER, 0);
};

IndexHintTypeContext.prototype.BY = function() {
    return this.getToken(SqlParser.BY, 0);
};

IndexHintTypeContext.prototype.GROUP = function() {
    return this.getToken(SqlParser.GROUP, 0);
};

IndexHintTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIndexHintType(this);
	}
};

IndexHintTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIndexHintType(this);
	}
};

IndexHintTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIndexHintType(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.IndexHintTypeContext = IndexHintTypeContext;

SqlParser.prototype.indexHintType = function() {

    var localctx = new IndexHintTypeContext(this, this._ctx, this.state);
    this.enterRule(localctx, 220, SqlParser.RULE_indexHintType);
    try {
        this.state = 3377;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.JOIN:
            this.enterOuterAlt(localctx, 1);
            this.state = 3372;
            this.match(SqlParser.JOIN);
            break;
        case SqlParser.ORDER:
            this.enterOuterAlt(localctx, 2);
            this.state = 3373;
            this.match(SqlParser.ORDER);
            this.state = 3374;
            this.match(SqlParser.BY);
            break;
        case SqlParser.GROUP:
            this.enterOuterAlt(localctx, 3);
            this.state = 3375;
            this.match(SqlParser.GROUP);
            this.state = 3376;
            this.match(SqlParser.BY);
            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 JoinPartContext(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_joinPart;
    return this;
}

JoinPartContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
JoinPartContext.prototype.constructor = JoinPartContext;


 
JoinPartContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function InnerJoinContext(parser, ctx) {
	JoinPartContext.call(this, parser);
    JoinPartContext.prototype.copyFrom.call(this, ctx);
    return this;
}

InnerJoinContext.prototype = Object.create(JoinPartContext.prototype);
InnerJoinContext.prototype.constructor = InnerJoinContext;

SqlParser.InnerJoinContext = InnerJoinContext;

InnerJoinContext.prototype.JOIN = function() {
    return this.getToken(SqlParser.JOIN, 0);
};

InnerJoinContext.prototype.tableSourceItem = function() {
    return this.getTypedRuleContext(TableSourceItemContext,0);
};

InnerJoinContext.prototype.ON = function() {
    return this.getToken(SqlParser.ON, 0);
};

InnerJoinContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

InnerJoinContext.prototype.USING = function() {
    return this.getToken(SqlParser.USING, 0);
};

InnerJoinContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

InnerJoinContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

InnerJoinContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

InnerJoinContext.prototype.INNER = function() {
    return this.getToken(SqlParser.INNER, 0);
};

InnerJoinContext.prototype.CROSS = function() {
    return this.getToken(SqlParser.CROSS, 0);
};
InnerJoinContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterInnerJoin(this);
	}
};

InnerJoinContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitInnerJoin(this);
	}
};

InnerJoinContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitInnerJoin(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function NaturalJoinContext(parser, ctx) {
	JoinPartContext.call(this, parser);
    JoinPartContext.prototype.copyFrom.call(this, ctx);
    return this;
}

NaturalJoinContext.prototype = Object.create(JoinPartContext.prototype);
NaturalJoinContext.prototype.constructor = NaturalJoinContext;

SqlParser.NaturalJoinContext = NaturalJoinContext;

NaturalJoinContext.prototype.NATURAL = function() {
    return this.getToken(SqlParser.NATURAL, 0);
};

NaturalJoinContext.prototype.JOIN = function() {
    return this.getToken(SqlParser.JOIN, 0);
};

NaturalJoinContext.prototype.tableSourceItem = function() {
    return this.getTypedRuleContext(TableSourceItemContext,0);
};

NaturalJoinContext.prototype.LEFT = function() {
    return this.getToken(SqlParser.LEFT, 0);
};

NaturalJoinContext.prototype.RIGHT = function() {
    return this.getToken(SqlParser.RIGHT, 0);
};

NaturalJoinContext.prototype.OUTER = function() {
    return this.getToken(SqlParser.OUTER, 0);
};
NaturalJoinContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterNaturalJoin(this);
	}
};

NaturalJoinContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitNaturalJoin(this);
	}
};

NaturalJoinContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitNaturalJoin(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function OuterJoinContext(parser, ctx) {
	JoinPartContext.call(this, parser);
    JoinPartContext.prototype.copyFrom.call(this, ctx);
    return this;
}

OuterJoinContext.prototype = Object.create(JoinPartContext.prototype);
OuterJoinContext.prototype.constructor = OuterJoinContext;

SqlParser.OuterJoinContext = OuterJoinContext;

OuterJoinContext.prototype.JOIN = function() {
    return this.getToken(SqlParser.JOIN, 0);
};

OuterJoinContext.prototype.tableSourceItem = function() {
    return this.getTypedRuleContext(TableSourceItemContext,0);
};

OuterJoinContext.prototype.LEFT = function() {
    return this.getToken(SqlParser.LEFT, 0);
};

OuterJoinContext.prototype.RIGHT = function() {
    return this.getToken(SqlParser.RIGHT, 0);
};

OuterJoinContext.prototype.ON = function() {
    return this.getToken(SqlParser.ON, 0);
};

OuterJoinContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

OuterJoinContext.prototype.USING = function() {
    return this.getToken(SqlParser.USING, 0);
};

OuterJoinContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

OuterJoinContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

OuterJoinContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

OuterJoinContext.prototype.OUTER = function() {
    return this.getToken(SqlParser.OUTER, 0);
};
OuterJoinContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterOuterJoin(this);
	}
};

OuterJoinContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitOuterJoin(this);
	}
};

OuterJoinContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitOuterJoin(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function StraightJoinContext(parser, ctx) {
	JoinPartContext.call(this, parser);
    JoinPartContext.prototype.copyFrom.call(this, ctx);
    return this;
}

StraightJoinContext.prototype = Object.create(JoinPartContext.prototype);
StraightJoinContext.prototype.constructor = StraightJoinContext;

SqlParser.StraightJoinContext = StraightJoinContext;

StraightJoinContext.prototype.STRAIGHT_JOIN = function() {
    return this.getToken(SqlParser.STRAIGHT_JOIN, 0);
};

StraightJoinContext.prototype.tableSourceItem = function() {
    return this.getTypedRuleContext(TableSourceItemContext,0);
};

StraightJoinContext.prototype.ON = function() {
    return this.getToken(SqlParser.ON, 0);
};

StraightJoinContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};
StraightJoinContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterStraightJoin(this);
	}
};

StraightJoinContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitStraightJoin(this);
	}
};

StraightJoinContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitStraightJoin(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.JoinPartContext = JoinPartContext;

SqlParser.prototype.joinPart = function() {

    var localctx = new JoinPartContext(this, this._ctx, this.state);
    this.enterRule(localctx, 222, SqlParser.RULE_joinPart);
    var _la = 0; // Token type
    try {
        this.state = 3423;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.CROSS:
        case SqlParser.INNER:
        case SqlParser.JOIN:
            localctx = new InnerJoinContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 3380;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.CROSS || _la===SqlParser.INNER) {
                this.state = 3379;
                _la = this._input.LA(1);
                if(!(_la===SqlParser.CROSS || _la===SqlParser.INNER)) {
                this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 3382;
            this.match(SqlParser.JOIN);
            this.state = 3383;
            this.tableSourceItem();
            this.state = 3391;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,477,this._ctx);
            if(la_===1) {
                this.state = 3384;
                this.match(SqlParser.ON);
                this.state = 3385;
                this.expression(0);

            } else if(la_===2) {
                this.state = 3386;
                this.match(SqlParser.USING);
                this.state = 3387;
                this.match(SqlParser.LR_BRACKET);
                this.state = 3388;
                this.uidList();
                this.state = 3389;
                this.match(SqlParser.RR_BRACKET);

            }
            break;
        case SqlParser.STRAIGHT_JOIN:
            localctx = new StraightJoinContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 3393;
            this.match(SqlParser.STRAIGHT_JOIN);
            this.state = 3394;
            this.tableSourceItem();
            this.state = 3397;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,478,this._ctx);
            if(la_===1) {
                this.state = 3395;
                this.match(SqlParser.ON);
                this.state = 3396;
                this.expression(0);

            }
            break;
        case SqlParser.LEFT:
        case SqlParser.RIGHT:
            localctx = new OuterJoinContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 3399;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.LEFT || _la===SqlParser.RIGHT)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 3401;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.OUTER) {
                this.state = 3400;
                this.match(SqlParser.OUTER);
            }

            this.state = 3403;
            this.match(SqlParser.JOIN);
            this.state = 3404;
            this.tableSourceItem();
            this.state = 3412;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.ON:
                this.state = 3405;
                this.match(SqlParser.ON);
                this.state = 3406;
                this.expression(0);
                break;
            case SqlParser.USING:
                this.state = 3407;
                this.match(SqlParser.USING);
                this.state = 3408;
                this.match(SqlParser.LR_BRACKET);
                this.state = 3409;
                this.uidList();
                this.state = 3410;
                this.match(SqlParser.RR_BRACKET);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;
        case SqlParser.NATURAL:
            localctx = new NaturalJoinContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 3414;
            this.match(SqlParser.NATURAL);
            this.state = 3419;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LEFT || _la===SqlParser.RIGHT) {
                this.state = 3415;
                _la = this._input.LA(1);
                if(!(_la===SqlParser.LEFT || _la===SqlParser.RIGHT)) {
                this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
                this.state = 3417;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.OUTER) {
                    this.state = 3416;
                    this.match(SqlParser.OUTER);
                }

            }

            this.state = 3421;
            this.match(SqlParser.JOIN);
            this.state = 3422;
            this.tableSourceItem();
            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 QueryExpressionContext(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_queryExpression;
    return this;
}

QueryExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
QueryExpressionContext.prototype.constructor = QueryExpressionContext;

QueryExpressionContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

QueryExpressionContext.prototype.querySpecification = function() {
    return this.getTypedRuleContext(QuerySpecificationContext,0);
};

QueryExpressionContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

QueryExpressionContext.prototype.queryExpression = function() {
    return this.getTypedRuleContext(QueryExpressionContext,0);
};

QueryExpressionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterQueryExpression(this);
	}
};

QueryExpressionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitQueryExpression(this);
	}
};

QueryExpressionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitQueryExpression(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.QueryExpressionContext = QueryExpressionContext;

SqlParser.prototype.queryExpression = function() {

    var localctx = new QueryExpressionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 224, SqlParser.RULE_queryExpression);
    try {
        this.state = 3433;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,484,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 3425;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3426;
            this.querySpecification();
            this.state = 3427;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 3429;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3430;
            this.queryExpression();
            this.state = 3431;
            this.match(SqlParser.RR_BRACKET);
            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 QueryExpressionNointoContext(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_queryExpressionNointo;
    return this;
}

QueryExpressionNointoContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
QueryExpressionNointoContext.prototype.constructor = QueryExpressionNointoContext;

QueryExpressionNointoContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

QueryExpressionNointoContext.prototype.querySpecificationNointo = function() {
    return this.getTypedRuleContext(QuerySpecificationNointoContext,0);
};

QueryExpressionNointoContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

QueryExpressionNointoContext.prototype.queryExpressionNointo = function() {
    return this.getTypedRuleContext(QueryExpressionNointoContext,0);
};

QueryExpressionNointoContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterQueryExpressionNointo(this);
	}
};

QueryExpressionNointoContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitQueryExpressionNointo(this);
	}
};

QueryExpressionNointoContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitQueryExpressionNointo(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.QueryExpressionNointoContext = QueryExpressionNointoContext;

SqlParser.prototype.queryExpressionNointo = function() {

    var localctx = new QueryExpressionNointoContext(this, this._ctx, this.state);
    this.enterRule(localctx, 226, SqlParser.RULE_queryExpressionNointo);
    try {
        this.state = 3443;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,485,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 3435;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3436;
            this.querySpecificationNointo();
            this.state = 3437;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 3439;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3440;
            this.queryExpressionNointo();
            this.state = 3441;
            this.match(SqlParser.RR_BRACKET);
            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 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;
    return this;
}

QuerySpecificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
QuerySpecificationContext.prototype.constructor = QuerySpecificationContext;

QuerySpecificationContext.prototype.SELECT = function() {
    return this.getToken(SqlParser.SELECT, 0);
};

QuerySpecificationContext.prototype.selectElements = function() {
    return this.getTypedRuleContext(SelectElementsContext,0);
};

QuerySpecificationContext.prototype.selectSpec = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(SelectSpecContext);
    } else {
        return this.getTypedRuleContext(SelectSpecContext,i);
    }
};

QuerySpecificationContext.prototype.selectIntoExpression = function() {
    return this.getTypedRuleContext(SelectIntoExpressionContext,0);
};

QuerySpecificationContext.prototype.fromClause = function() {
    return this.getTypedRuleContext(FromClauseContext,0);
};

QuerySpecificationContext.prototype.orderByClause = function() {
    return this.getTypedRuleContext(OrderByClauseContext,0);
};

QuerySpecificationContext.prototype.limitClause = function() {
    return this.getTypedRuleContext(LimitClauseContext,0);
};

QuerySpecificationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterQuerySpecification(this);
	}
};

QuerySpecificationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitQuerySpecification(this);
	}
};

QuerySpecificationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        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, 228, SqlParser.RULE_querySpecification);
    var _la = 0; // Token type
    try {
        this.state = 3485;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,496,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 3445;
            this.match(SqlParser.SELECT);
            this.state = 3449;
            this._errHandler.sync(this);
            var _alt = this._interp.adaptivePredict(this._input,486,this._ctx)
            while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                if(_alt===1) {
                    this.state = 3446;
                    this.selectSpec(); 
                }
                this.state = 3451;
                this._errHandler.sync(this);
                _alt = this._interp.adaptivePredict(this._input,486,this._ctx);
            }

            this.state = 3452;
            this.selectElements();
            this.state = 3454;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.INTO) {
                this.state = 3453;
                this.selectIntoExpression();
            }

            this.state = 3457;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FROM) {
                this.state = 3456;
                this.fromClause();
            }

            this.state = 3460;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,489,this._ctx);
            if(la_===1) {
                this.state = 3459;
                this.orderByClause();

            }
            this.state = 3463;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,490,this._ctx);
            if(la_===1) {
                this.state = 3462;
                this.limitClause();

            }
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 3465;
            this.match(SqlParser.SELECT);
            this.state = 3469;
            this._errHandler.sync(this);
            var _alt = this._interp.adaptivePredict(this._input,491,this._ctx)
            while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                if(_alt===1) {
                    this.state = 3466;
                    this.selectSpec(); 
                }
                this.state = 3471;
                this._errHandler.sync(this);
                _alt = this._interp.adaptivePredict(this._input,491,this._ctx);
            }

            this.state = 3472;
            this.selectElements();
            this.state = 3474;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FROM) {
                this.state = 3473;
                this.fromClause();
            }

            this.state = 3477;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,493,this._ctx);
            if(la_===1) {
                this.state = 3476;
                this.orderByClause();

            }
            this.state = 3480;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,494,this._ctx);
            if(la_===1) {
                this.state = 3479;
                this.limitClause();

            }
            this.state = 3483;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.INTO) {
                this.state = 3482;
                this.selectIntoExpression();
            }

            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 QuerySpecificationNointoContext(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_querySpecificationNointo;
    return this;
}

QuerySpecificationNointoContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
QuerySpecificationNointoContext.prototype.constructor = QuerySpecificationNointoContext;

QuerySpecificationNointoContext.prototype.SELECT = function() {
    return this.getToken(SqlParser.SELECT, 0);
};

QuerySpecificationNointoContext.prototype.selectElements = function() {
    return this.getTypedRuleContext(SelectElementsContext,0);
};

QuerySpecificationNointoContext.prototype.selectSpec = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(SelectSpecContext);
    } else {
        return this.getTypedRuleContext(SelectSpecContext,i);
    }
};

QuerySpecificationNointoContext.prototype.fromClause = function() {
    return this.getTypedRuleContext(FromClauseContext,0);
};

QuerySpecificationNointoContext.prototype.orderByClause = function() {
    return this.getTypedRuleContext(OrderByClauseContext,0);
};

QuerySpecificationNointoContext.prototype.limitClause = function() {
    return this.getTypedRuleContext(LimitClauseContext,0);
};

QuerySpecificationNointoContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterQuerySpecificationNointo(this);
	}
};

QuerySpecificationNointoContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitQuerySpecificationNointo(this);
	}
};

QuerySpecificationNointoContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitQuerySpecificationNointo(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.QuerySpecificationNointoContext = QuerySpecificationNointoContext;

SqlParser.prototype.querySpecificationNointo = function() {

    var localctx = new QuerySpecificationNointoContext(this, this._ctx, this.state);
    this.enterRule(localctx, 230, SqlParser.RULE_querySpecificationNointo);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3487;
        this.match(SqlParser.SELECT);
        this.state = 3491;
        this._errHandler.sync(this);
        var _alt = this._interp.adaptivePredict(this._input,497,this._ctx)
        while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
            if(_alt===1) {
                this.state = 3488;
                this.selectSpec(); 
            }
            this.state = 3493;
            this._errHandler.sync(this);
            _alt = this._interp.adaptivePredict(this._input,497,this._ctx);
        }

        this.state = 3494;
        this.selectElements();
        this.state = 3496;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.FROM) {
            this.state = 3495;
            this.fromClause();
        }

        this.state = 3499;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,499,this._ctx);
        if(la_===1) {
            this.state = 3498;
            this.orderByClause();

        }
        this.state = 3502;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,500,this._ctx);
        if(la_===1) {
            this.state = 3501;
            this.limitClause();

        }
    } 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 UnionParenthesisContext(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_unionParenthesis;
    this.unionType = null; // Token
    return this;
}

UnionParenthesisContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UnionParenthesisContext.prototype.constructor = UnionParenthesisContext;

UnionParenthesisContext.prototype.UNION = function() {
    return this.getToken(SqlParser.UNION, 0);
};

UnionParenthesisContext.prototype.queryExpressionNointo = function() {
    return this.getTypedRuleContext(QueryExpressionNointoContext,0);
};

UnionParenthesisContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};

UnionParenthesisContext.prototype.DISTINCT = function() {
    return this.getToken(SqlParser.DISTINCT, 0);
};

UnionParenthesisContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUnionParenthesis(this);
	}
};

UnionParenthesisContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUnionParenthesis(this);
	}
};

UnionParenthesisContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUnionParenthesis(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UnionParenthesisContext = UnionParenthesisContext;

SqlParser.prototype.unionParenthesis = function() {

    var localctx = new UnionParenthesisContext(this, this._ctx, this.state);
    this.enterRule(localctx, 232, SqlParser.RULE_unionParenthesis);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3504;
        this.match(SqlParser.UNION);
        this.state = 3506;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ALL || _la===SqlParser.DISTINCT) {
            this.state = 3505;
            localctx.unionType = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.ALL || _la===SqlParser.DISTINCT)) {
                localctx.unionType = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 3508;
        this.queryExpressionNointo();
    } 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 UnionStatementContext(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_unionStatement;
    this.unionType = null; // Token
    return this;
}

UnionStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UnionStatementContext.prototype.constructor = UnionStatementContext;

UnionStatementContext.prototype.UNION = function() {
    return this.getToken(SqlParser.UNION, 0);
};

UnionStatementContext.prototype.querySpecificationNointo = function() {
    return this.getTypedRuleContext(QuerySpecificationNointoContext,0);
};

UnionStatementContext.prototype.queryExpressionNointo = function() {
    return this.getTypedRuleContext(QueryExpressionNointoContext,0);
};

UnionStatementContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};

UnionStatementContext.prototype.DISTINCT = function() {
    return this.getToken(SqlParser.DISTINCT, 0);
};

UnionStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUnionStatement(this);
	}
};

UnionStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUnionStatement(this);
	}
};

UnionStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUnionStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UnionStatementContext = UnionStatementContext;

SqlParser.prototype.unionStatement = function() {

    var localctx = new UnionStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 234, SqlParser.RULE_unionStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3510;
        this.match(SqlParser.UNION);
        this.state = 3512;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ALL || _la===SqlParser.DISTINCT) {
            this.state = 3511;
            localctx.unionType = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.ALL || _la===SqlParser.DISTINCT)) {
                localctx.unionType = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 3516;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.SELECT:
            this.state = 3514;
            this.querySpecificationNointo();
            break;
        case SqlParser.LR_BRACKET:
            this.state = 3515;
            this.queryExpressionNointo();
            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 SelectSpecContext(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_selectSpec;
    return this;
}

SelectSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SelectSpecContext.prototype.constructor = SelectSpecContext;

SelectSpecContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};

SelectSpecContext.prototype.DISTINCT = function() {
    return this.getToken(SqlParser.DISTINCT, 0);
};

SelectSpecContext.prototype.DISTINCTROW = function() {
    return this.getToken(SqlParser.DISTINCTROW, 0);
};

SelectSpecContext.prototype.HIGH_PRIORITY = function() {
    return this.getToken(SqlParser.HIGH_PRIORITY, 0);
};

SelectSpecContext.prototype.STRAIGHT_JOIN = function() {
    return this.getToken(SqlParser.STRAIGHT_JOIN, 0);
};

SelectSpecContext.prototype.SQL_SMALL_RESULT = function() {
    return this.getToken(SqlParser.SQL_SMALL_RESULT, 0);
};

SelectSpecContext.prototype.SQL_BIG_RESULT = function() {
    return this.getToken(SqlParser.SQL_BIG_RESULT, 0);
};

SelectSpecContext.prototype.SQL_BUFFER_RESULT = function() {
    return this.getToken(SqlParser.SQL_BUFFER_RESULT, 0);
};

SelectSpecContext.prototype.SQL_CACHE = function() {
    return this.getToken(SqlParser.SQL_CACHE, 0);
};

SelectSpecContext.prototype.SQL_NO_CACHE = function() {
    return this.getToken(SqlParser.SQL_NO_CACHE, 0);
};

SelectSpecContext.prototype.SQL_CALC_FOUND_ROWS = function() {
    return this.getToken(SqlParser.SQL_CALC_FOUND_ROWS, 0);
};

SelectSpecContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSelectSpec(this);
	}
};

SelectSpecContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSelectSpec(this);
	}
};

SelectSpecContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSelectSpec(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SelectSpecContext = SelectSpecContext;

SqlParser.prototype.selectSpec = function() {

    var localctx = new SelectSpecContext(this, this._ctx, this.state);
    this.enterRule(localctx, 236, SqlParser.RULE_selectSpec);
    var _la = 0; // Token type
    try {
        this.state = 3526;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.ALL:
        case SqlParser.DISTINCT:
        case SqlParser.DISTINCTROW:
            this.enterOuterAlt(localctx, 1);
            this.state = 3518;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.ALL || _la===SqlParser.DISTINCT || _la===SqlParser.DISTINCTROW)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;
        case SqlParser.HIGH_PRIORITY:
            this.enterOuterAlt(localctx, 2);
            this.state = 3519;
            this.match(SqlParser.HIGH_PRIORITY);
            break;
        case SqlParser.STRAIGHT_JOIN:
            this.enterOuterAlt(localctx, 3);
            this.state = 3520;
            this.match(SqlParser.STRAIGHT_JOIN);
            break;
        case SqlParser.SQL_SMALL_RESULT:
            this.enterOuterAlt(localctx, 4);
            this.state = 3521;
            this.match(SqlParser.SQL_SMALL_RESULT);
            break;
        case SqlParser.SQL_BIG_RESULT:
            this.enterOuterAlt(localctx, 5);
            this.state = 3522;
            this.match(SqlParser.SQL_BIG_RESULT);
            break;
        case SqlParser.SQL_BUFFER_RESULT:
            this.enterOuterAlt(localctx, 6);
            this.state = 3523;
            this.match(SqlParser.SQL_BUFFER_RESULT);
            break;
        case SqlParser.SQL_CACHE:
        case SqlParser.SQL_NO_CACHE:
            this.enterOuterAlt(localctx, 7);
            this.state = 3524;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.SQL_CACHE || _la===SqlParser.SQL_NO_CACHE)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;
        case SqlParser.SQL_CALC_FOUND_ROWS:
            this.enterOuterAlt(localctx, 8);
            this.state = 3525;
            this.match(SqlParser.SQL_CALC_FOUND_ROWS);
            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 SelectElementsContext(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_selectElements;
    this.star = null; // Token
    return this;
}

SelectElementsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SelectElementsContext.prototype.constructor = SelectElementsContext;

SelectElementsContext.prototype.selectElement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(SelectElementContext);
    } else {
        return this.getTypedRuleContext(SelectElementContext,i);
    }
};

SelectElementsContext.prototype.STAR = function() {
    return this.getToken(SqlParser.STAR, 0);
};

SelectElementsContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


SelectElementsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSelectElements(this);
	}
};

SelectElementsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSelectElements(this);
	}
};

SelectElementsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSelectElements(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SelectElementsContext = SelectElementsContext;

SqlParser.prototype.selectElements = function() {

    var localctx = new SelectElementsContext(this, this._ctx, this.state);
    this.enterRule(localctx, 238, SqlParser.RULE_selectElements);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3530;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.STAR:
            this.state = 3528;
            localctx.star = this.match(SqlParser.STAR);
            break;
        case SqlParser.CASE:
        case SqlParser.CAST:
        case SqlParser.CONVERT:
        case SqlParser.CURRENT:
        case SqlParser.CURRENT_USER:
        case SqlParser.DATABASE:
        case SqlParser.DIAGNOSTICS:
        case SqlParser.EXISTS:
        case SqlParser.FALSE:
        case SqlParser.IF:
        case SqlParser.INSERT:
        case SqlParser.INTERVAL:
        case SqlParser.LEFT:
        case SqlParser.NOT:
        case SqlParser.NULL_LITERAL:
        case SqlParser.NUMBER:
        case SqlParser.REPLACE:
        case SqlParser.RIGHT:
        case SqlParser.STACKED:
        case SqlParser.TRUE:
        case SqlParser.VALUES:
        case SqlParser.DATE:
        case SqlParser.TIME:
        case SqlParser.TIMESTAMP:
        case SqlParser.DATETIME:
        case SqlParser.YEAR:
        case SqlParser.CHAR:
        case SqlParser.BINARY:
        case SqlParser.TEXT:
        case SqlParser.ENUM:
        case SqlParser.SERIAL:
        case SqlParser.JSON_VALID:
        case SqlParser.JSON_SCHEMA_VALID:
        case SqlParser.AVG:
        case SqlParser.BIT_AND:
        case SqlParser.BIT_OR:
        case SqlParser.BIT_XOR:
        case SqlParser.COUNT:
        case SqlParser.GROUP_CONCAT:
        case SqlParser.MAX:
        case SqlParser.MIN:
        case SqlParser.STD:
        case SqlParser.STDDEV:
        case SqlParser.STDDEV_POP:
        case SqlParser.STDDEV_SAMP:
        case SqlParser.SUM:
        case SqlParser.VAR_POP:
        case SqlParser.VAR_SAMP:
        case SqlParser.VARIANCE:
        case SqlParser.CURRENT_DATE:
        case SqlParser.CURRENT_TIME:
        case SqlParser.CURRENT_TIMESTAMP:
        case SqlParser.LOCALTIME:
        case SqlParser.CURDATE:
        case SqlParser.CURTIME:
        case SqlParser.DATE_ADD:
        case SqlParser.DATE_SUB:
        case SqlParser.EXTRACT:
        case SqlParser.LOCALTIMESTAMP:
        case SqlParser.NOW:
        case SqlParser.POSITION:
        case SqlParser.SUBSTR:
        case SqlParser.SUBSTRING:
        case SqlParser.SYSDATE:
        case SqlParser.TRIM:
        case SqlParser.UTC_DATE:
        case SqlParser.UTC_TIME:
        case SqlParser.UTC_TIMESTAMP:
        case SqlParser.ACCOUNT:
        case SqlParser.ACTION:
        case SqlParser.AFTER:
        case SqlParser.AGGREGATE:
        case SqlParser.ALGORITHM:
        case SqlParser.ANY:
        case SqlParser.AT:
        case SqlParser.AUTHORS:
        case SqlParser.AUTOCOMMIT:
        case SqlParser.AUTOEXTEND_SIZE:
        case SqlParser.AUTO_INCREMENT:
        case SqlParser.AVG_ROW_LENGTH:
        case SqlParser.BEGIN:
        case SqlParser.BINLOG:
        case SqlParser.BIT:
        case SqlParser.BLOCK:
        case SqlParser.BOOL:
        case SqlParser.BOOLEAN:
        case SqlParser.BTREE:
        case SqlParser.CACHE:
        case SqlParser.CASCADED:
        case SqlParser.CHAIN:
        case SqlParser.CHANGED:
        case SqlParser.CHANNEL:
        case SqlParser.CHECKSUM:
        case SqlParser.PAGE_CHECKSUM:
        case SqlParser.CIPHER:
        case SqlParser.CLASS_ORIGIN:
        case SqlParser.CLIENT:
        case SqlParser.CLOSE:
        case SqlParser.COALESCE:
        case SqlParser.CODE:
        case SqlParser.COLUMNS:
        case SqlParser.COLUMN_FORMAT:
        case SqlParser.COLUMN_NAME:
        case SqlParser.COMMENT:
        case SqlParser.COMMIT:
        case SqlParser.COMPACT:
        case SqlParser.COMPLETION:
        case SqlParser.COMPRESSED:
        case SqlParser.COMPRESSION:
        case SqlParser.CONCURRENT:
        case SqlParser.CONNECTION:
        case SqlParser.CONSISTENT:
        case SqlParser.CONSTRAINT_CATALOG:
        case SqlParser.CONSTRAINT_SCHEMA:
        case SqlParser.CONSTRAINT_NAME:
        case SqlParser.CONTAINS:
        case SqlParser.CONTEXT:
        case SqlParser.CONTRIBUTORS:
        case SqlParser.COPY:
        case SqlParser.CPU:
        case SqlParser.CURSOR_NAME:
        case SqlParser.DATA:
        case SqlParser.DATAFILE:
        case SqlParser.DEALLOCATE:
        case SqlParser.DEFAULT_AUTH:
        case SqlParser.DEFINER:
        case SqlParser.DELAY_KEY_WRITE:
        case SqlParser.DES_KEY_FILE:
        case SqlParser.DIRECTORY:
        case SqlParser.DISABLE:
        case SqlParser.DISCARD:
        case SqlParser.DISK:
        case SqlParser.DO:
        case SqlParser.DUMPFILE:
        case SqlParser.DUPLICATE:
        case SqlParser.DYNAMIC:
        case SqlParser.ENABLE:
        case SqlParser.ENCRYPTION:
        case SqlParser.END:
        case SqlParser.ENDS:
        case SqlParser.ENGINE:
        case SqlParser.ENGINES:
        case SqlParser.ERROR:
        case SqlParser.ERRORS:
        case SqlParser.ESCAPE:
        case SqlParser.EVEN:
        case SqlParser.EVENT:
        case SqlParser.EVENTS:
        case SqlParser.EVERY:
        case SqlParser.EXCHANGE:
        case SqlParser.EXCLUSIVE:
        case SqlParser.EXPIRE:
        case SqlParser.EXPORT:
        case SqlParser.EXTENDED:
        case SqlParser.EXTENT_SIZE:
        case SqlParser.FAST:
        case SqlParser.FAULTS:
        case SqlParser.FIELDS:
        case SqlParser.FILE_BLOCK_SIZE:
        case SqlParser.FILTER:
        case SqlParser.FIRST:
        case SqlParser.FIXED:
        case SqlParser.FLUSH:
        case SqlParser.FOLLOWS:
        case SqlParser.FOUND:
        case SqlParser.FULL:
        case SqlParser.FUNCTION:
        case SqlParser.GENERAL:
        case SqlParser.GLOBAL:
        case SqlParser.GRANTS:
        case SqlParser.GROUP_REPLICATION:
        case SqlParser.HANDLER:
        case SqlParser.HASH:
        case SqlParser.HELP:
        case SqlParser.HOST:
        case SqlParser.HOSTS:
        case SqlParser.IDENTIFIED:
        case SqlParser.IGNORE_SERVER_IDS:
        case SqlParser.IMPORT:
        case SqlParser.INDEXES:
        case SqlParser.INITIAL_SIZE:
        case SqlParser.INPLACE:
        case SqlParser.INSERT_METHOD:
        case SqlParser.INSTALL:
        case SqlParser.INSTANCE:
        case SqlParser.INVISIBLE:
        case SqlParser.INVOKER:
        case SqlParser.IO:
        case SqlParser.IO_THREAD:
        case SqlParser.IPC:
        case SqlParser.ISOLATION:
        case SqlParser.ISSUER:
        case SqlParser.JSON:
        case SqlParser.KEY_BLOCK_SIZE:
        case SqlParser.LANGUAGE:
        case SqlParser.LAST:
        case SqlParser.LEAVES:
        case SqlParser.LESS:
        case SqlParser.LEVEL:
        case SqlParser.LIST:
        case SqlParser.LOCAL:
        case SqlParser.LOGFILE:
        case SqlParser.LOGS:
        case SqlParser.MASTER:
        case SqlParser.MASTER_AUTO_POSITION:
        case SqlParser.MASTER_CONNECT_RETRY:
        case SqlParser.MASTER_DELAY:
        case SqlParser.MASTER_HEARTBEAT_PERIOD:
        case SqlParser.MASTER_HOST:
        case SqlParser.MASTER_LOG_FILE:
        case SqlParser.MASTER_LOG_POS:
        case SqlParser.MASTER_PASSWORD:
        case SqlParser.MASTER_PORT:
        case SqlParser.MASTER_RETRY_COUNT:
        case SqlParser.MASTER_SSL:
        case SqlParser.MASTER_SSL_CA:
        case SqlParser.MASTER_SSL_CAPATH:
        case SqlParser.MASTER_SSL_CERT:
        case SqlParser.MASTER_SSL_CIPHER:
        case SqlParser.MASTER_SSL_CRL:
        case SqlParser.MASTER_SSL_CRLPATH:
        case SqlParser.MASTER_SSL_KEY:
        case SqlParser.MASTER_TLS_VERSION:
        case SqlParser.MASTER_USER:
        case SqlParser.MAX_CONNECTIONS_PER_HOUR:
        case SqlParser.MAX_QUERIES_PER_HOUR:
        case SqlParser.MAX_ROWS:
        case SqlParser.MAX_SIZE:
        case SqlParser.MAX_UPDATES_PER_HOUR:
        case SqlParser.MAX_USER_CONNECTIONS:
        case SqlParser.MEDIUM:
        case SqlParser.MERGE:
        case SqlParser.MESSAGE_TEXT:
        case SqlParser.MID:
        case SqlParser.MIGRATE:
        case SqlParser.MIN_ROWS:
        case SqlParser.MODE:
        case SqlParser.MODIFY:
        case SqlParser.MUTEX:
        case SqlParser.MYSQL:
        case SqlParser.MYSQL_ERRNO:
        case SqlParser.NAME:
        case SqlParser.NAMES:
        case SqlParser.NCHAR:
        case SqlParser.NEVER:
        case SqlParser.NEXT:
        case SqlParser.NO:
        case SqlParser.NODEGROUP:
        case SqlParser.NONE:
        case SqlParser.OFFLINE:
        case SqlParser.OFFSET:
        case SqlParser.OJ:
        case SqlParser.OLD_PASSWORD:
        case SqlParser.ONE:
        case SqlParser.ONLINE:
        case SqlParser.ONLY:
        case SqlParser.OPEN:
        case SqlParser.OPTIMIZER_COSTS:
        case SqlParser.OPTIONS:
        case SqlParser.OWNER:
        case SqlParser.PACK_KEYS:
        case SqlParser.PAGE:
        case SqlParser.PARSER:
        case SqlParser.PARTIAL:
        case SqlParser.PARTITIONING:
        case SqlParser.PARTITIONS:
        case SqlParser.PASSWORD:
        case SqlParser.PHASE:
        case SqlParser.PLUGIN:
        case SqlParser.PLUGIN_DIR:
        case SqlParser.PLUGINS:
        case SqlParser.PORT:
        case SqlParser.PRECEDES:
        case SqlParser.PREPARE:
        case SqlParser.PRESERVE:
        case SqlParser.PREV:
        case SqlParser.PROCESSLIST:
        case SqlParser.PROFILE:
        case SqlParser.PROFILES:
        case SqlParser.PROXY:
        case SqlParser.QUERY:
        case SqlParser.QUICK:
        case SqlParser.REBUILD:
        case SqlParser.RECOVER:
        case SqlParser.REDO_BUFFER_SIZE:
        case SqlParser.REDUNDANT:
        case SqlParser.RELAY:
        case SqlParser.RELAY_LOG_FILE:
        case SqlParser.RELAY_LOG_POS:
        case SqlParser.RELAYLOG:
        case SqlParser.REMOVE:
        case SqlParser.REORGANIZE:
        case SqlParser.REPAIR:
        case SqlParser.REPLICATE_DO_DB:
        case SqlParser.REPLICATE_DO_TABLE:
        case SqlParser.REPLICATE_IGNORE_DB:
        case SqlParser.REPLICATE_IGNORE_TABLE:
        case SqlParser.REPLICATE_REWRITE_DB:
        case SqlParser.REPLICATE_WILD_DO_TABLE:
        case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
        case SqlParser.REPLICATION:
        case SqlParser.RESET:
        case SqlParser.RESUME:
        case SqlParser.RETURNED_SQLSTATE:
        case SqlParser.RETURNS:
        case SqlParser.ROLE:
        case SqlParser.ROLLBACK:
        case SqlParser.ROLLUP:
        case SqlParser.ROTATE:
        case SqlParser.ROW:
        case SqlParser.ROWS:
        case SqlParser.ROW_FORMAT:
        case SqlParser.SAVEPOINT:
        case SqlParser.SCHEDULE:
        case SqlParser.SECURITY:
        case SqlParser.SERVER:
        case SqlParser.SESSION:
        case SqlParser.SHARE:
        case SqlParser.SHARED:
        case SqlParser.SIGNED:
        case SqlParser.SIMPLE:
        case SqlParser.SLAVE:
        case SqlParser.SLOW:
        case SqlParser.SNAPSHOT:
        case SqlParser.SOCKET:
        case SqlParser.SOME:
        case SqlParser.SONAME:
        case SqlParser.SOUNDS:
        case SqlParser.SOURCE:
        case SqlParser.SQL_AFTER_GTIDS:
        case SqlParser.SQL_AFTER_MTS_GAPS:
        case SqlParser.SQL_BEFORE_GTIDS:
        case SqlParser.SQL_BUFFER_RESULT:
        case SqlParser.SQL_CACHE:
        case SqlParser.SQL_NO_CACHE:
        case SqlParser.SQL_THREAD:
        case SqlParser.START:
        case SqlParser.STARTS:
        case SqlParser.STATS_AUTO_RECALC:
        case SqlParser.STATS_PERSISTENT:
        case SqlParser.STATS_SAMPLE_PAGES:
        case SqlParser.STATUS:
        case SqlParser.STOP:
        case SqlParser.STORAGE:
        case SqlParser.STRING:
        case SqlParser.SUBCLASS_ORIGIN:
        case SqlParser.SUBJECT:
        case SqlParser.SUBPARTITION:
        case SqlParser.SUBPARTITIONS:
        case SqlParser.SUSPEND:
        case SqlParser.SWAPS:
        case SqlParser.SWITCHES:
        case SqlParser.TABLE_NAME:
        case SqlParser.TABLESPACE:
        case SqlParser.TEMPORARY:
        case SqlParser.TEMPTABLE:
        case SqlParser.THAN:
        case SqlParser.TRADITIONAL:
        case SqlParser.TRANSACTION:
        case SqlParser.TRANSACTIONAL:
        case SqlParser.TRIGGERS:
        case SqlParser.TRUNCATE:
        case SqlParser.UNDEFINED:
        case SqlParser.UNDOFILE:
        case SqlParser.UNDO_BUFFER_SIZE:
        case SqlParser.UNINSTALL:
        case SqlParser.UNKNOWN:
        case SqlParser.UNTIL:
        case SqlParser.UPGRADE:
        case SqlParser.USER:
        case SqlParser.USE_FRM:
        case SqlParser.USER_RESOURCES:
        case SqlParser.VALIDATION:
        case SqlParser.VALUE:
        case SqlParser.VARIABLES:
        case SqlParser.VIEW:
        case SqlParser.VISIBLE:
        case SqlParser.WAIT:
        case SqlParser.WARNINGS:
        case SqlParser.WITHOUT:
        case SqlParser.WORK:
        case SqlParser.WRAPPER:
        case SqlParser.X509:
        case SqlParser.XA:
        case SqlParser.XML:
        case SqlParser.INTERNAL:
        case SqlParser.QUARTER:
        case SqlParser.MONTH:
        case SqlParser.DAY:
        case SqlParser.HOUR:
        case SqlParser.MINUTE:
        case SqlParser.WEEK:
        case SqlParser.SECOND:
        case SqlParser.MICROSECOND:
        case SqlParser.TABLES:
        case SqlParser.ROUTINE:
        case SqlParser.EXECUTE:
        case SqlParser.FILE:
        case SqlParser.PROCESS:
        case SqlParser.RELOAD:
        case SqlParser.SHUTDOWN:
        case SqlParser.SUPER:
        case SqlParser.PRIVILEGES:
        case SqlParser.AUDIT_ADMIN:
        case SqlParser.BACKUP_ADMIN:
        case SqlParser.BINLOG_ADMIN:
        case SqlParser.BINLOG_ENCRYPTION_ADMIN:
        case SqlParser.CLONE_ADMIN:
        case SqlParser.CONNECTION_ADMIN:
        case SqlParser.ENCRYPTION_KEY_ADMIN:
        case SqlParser.FIREWALL_ADMIN:
        case SqlParser.FIREWALL_USER:
        case SqlParser.GROUP_REPLICATION_ADMIN:
        case SqlParser.INNODB_REDO_LOG_ARCHIVE:
        case SqlParser.NDB_STORED_USER:
        case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
        case SqlParser.REPLICATION_APPLIER:
        case SqlParser.REPLICATION_SLAVE_ADMIN:
        case SqlParser.RESOURCE_GROUP_ADMIN:
        case SqlParser.RESOURCE_GROUP_USER:
        case SqlParser.ROLE_ADMIN:
        case SqlParser.SESSION_VARIABLES_ADMIN:
        case SqlParser.SET_USER_ID:
        case SqlParser.SHOW_ROUTINE:
        case SqlParser.SYSTEM_VARIABLES_ADMIN:
        case SqlParser.TABLE_ENCRYPTION_ADMIN:
        case SqlParser.VERSION_TOKEN_ADMIN:
        case SqlParser.XA_RECOVER_ADMIN:
        case SqlParser.ARMSCII8:
        case SqlParser.ASCII:
        case SqlParser.BIG5:
        case SqlParser.CP1250:
        case SqlParser.CP1251:
        case SqlParser.CP1256:
        case SqlParser.CP1257:
        case SqlParser.CP850:
        case SqlParser.CP852:
        case SqlParser.CP866:
        case SqlParser.CP932:
        case SqlParser.DEC8:
        case SqlParser.EUCJPMS:
        case SqlParser.EUCKR:
        case SqlParser.GB2312:
        case SqlParser.GBK:
        case SqlParser.GEOSTD8:
        case SqlParser.GREEK:
        case SqlParser.HEBREW:
        case SqlParser.HP8:
        case SqlParser.KEYBCS2:
        case SqlParser.KOI8R:
        case SqlParser.KOI8U:
        case SqlParser.LATIN1:
        case SqlParser.LATIN2:
        case SqlParser.LATIN5:
        case SqlParser.LATIN7:
        case SqlParser.MACCE:
        case SqlParser.MACROMAN:
        case SqlParser.SJIS:
        case SqlParser.SWE7:
        case SqlParser.TIS620:
        case SqlParser.UCS2:
        case SqlParser.UJIS:
        case SqlParser.UTF16:
        case SqlParser.UTF16LE:
        case SqlParser.UTF32:
        case SqlParser.UTF8:
        case SqlParser.UTF8MB3:
        case SqlParser.UTF8MB4:
        case SqlParser.ARCHIVE:
        case SqlParser.BLACKHOLE:
        case SqlParser.CSV:
        case SqlParser.FEDERATED:
        case SqlParser.INNODB:
        case SqlParser.MEMORY:
        case SqlParser.MRG_MYISAM:
        case SqlParser.MYISAM:
        case SqlParser.NDB:
        case SqlParser.NDBCLUSTER:
        case SqlParser.PERFORMANCE_SCHEMA:
        case SqlParser.TOKUDB:
        case SqlParser.REPEATABLE:
        case SqlParser.COMMITTED:
        case SqlParser.UNCOMMITTED:
        case SqlParser.SERIALIZABLE:
        case SqlParser.GEOMETRYCOLLECTION:
        case SqlParser.LINESTRING:
        case SqlParser.MULTILINESTRING:
        case SqlParser.MULTIPOINT:
        case SqlParser.MULTIPOLYGON:
        case SqlParser.POINT:
        case SqlParser.POLYGON:
        case SqlParser.ABS:
        case SqlParser.ACOS:
        case SqlParser.ADDDATE:
        case SqlParser.ADDTIME:
        case SqlParser.AES_DECRYPT:
        case SqlParser.AES_ENCRYPT:
        case SqlParser.AREA:
        case SqlParser.ASBINARY:
        case SqlParser.ASIN:
        case SqlParser.ASTEXT:
        case SqlParser.ASWKB:
        case SqlParser.ASWKT:
        case SqlParser.ASYMMETRIC_DECRYPT:
        case SqlParser.ASYMMETRIC_DERIVE:
        case SqlParser.ASYMMETRIC_ENCRYPT:
        case SqlParser.ASYMMETRIC_SIGN:
        case SqlParser.ASYMMETRIC_VERIFY:
        case SqlParser.ATAN:
        case SqlParser.ATAN2:
        case SqlParser.BENCHMARK:
        case SqlParser.BIN:
        case SqlParser.BIT_COUNT:
        case SqlParser.BIT_LENGTH:
        case SqlParser.BUFFER:
        case SqlParser.CATALOG_NAME:
        case SqlParser.CEIL:
        case SqlParser.CEILING:
        case SqlParser.CENTROID:
        case SqlParser.CHARACTER_LENGTH:
        case SqlParser.CHARSET:
        case SqlParser.CHAR_LENGTH:
        case SqlParser.COERCIBILITY:
        case SqlParser.COLLATION:
        case SqlParser.COMPRESS:
        case SqlParser.CONCAT:
        case SqlParser.CONCAT_WS:
        case SqlParser.CONNECTION_ID:
        case SqlParser.CONV:
        case SqlParser.CONVERT_TZ:
        case SqlParser.COS:
        case SqlParser.COT:
        case SqlParser.CRC32:
        case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
        case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
        case SqlParser.CREATE_DH_PARAMETERS:
        case SqlParser.CREATE_DIGEST:
        case SqlParser.CROSSES:
        case SqlParser.DATEDIFF:
        case SqlParser.DATE_FORMAT:
        case SqlParser.DAYNAME:
        case SqlParser.DAYOFMONTH:
        case SqlParser.DAYOFWEEK:
        case SqlParser.DAYOFYEAR:
        case SqlParser.DECODE:
        case SqlParser.DEGREES:
        case SqlParser.DES_DECRYPT:
        case SqlParser.DES_ENCRYPT:
        case SqlParser.DIMENSION:
        case SqlParser.DISJOINT:
        case SqlParser.ELT:
        case SqlParser.ENCODE:
        case SqlParser.ENCRYPT:
        case SqlParser.ENDPOINT:
        case SqlParser.ENVELOPE:
        case SqlParser.EQUALS:
        case SqlParser.EXP:
        case SqlParser.EXPORT_SET:
        case SqlParser.EXTERIORRING:
        case SqlParser.EXTRACTVALUE:
        case SqlParser.FIELD:
        case SqlParser.FIND_IN_SET:
        case SqlParser.FLOOR:
        case SqlParser.FORMAT:
        case SqlParser.FOUND_ROWS:
        case SqlParser.FROM_BASE64:
        case SqlParser.FROM_DAYS:
        case SqlParser.FROM_UNIXTIME:
        case SqlParser.GEOMCOLLFROMTEXT:
        case SqlParser.GEOMCOLLFROMWKB:
        case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.GEOMETRYFROMTEXT:
        case SqlParser.GEOMETRYFROMWKB:
        case SqlParser.GEOMETRYN:
        case SqlParser.GEOMETRYTYPE:
        case SqlParser.GEOMFROMTEXT:
        case SqlParser.GEOMFROMWKB:
        case SqlParser.GET_FORMAT:
        case SqlParser.GET_LOCK:
        case SqlParser.GLENGTH:
        case SqlParser.GREATEST:
        case SqlParser.GTID_SUBSET:
        case SqlParser.GTID_SUBTRACT:
        case SqlParser.HEX:
        case SqlParser.IFNULL:
        case SqlParser.INET6_ATON:
        case SqlParser.INET6_NTOA:
        case SqlParser.INET_ATON:
        case SqlParser.INET_NTOA:
        case SqlParser.INSTR:
        case SqlParser.INTERIORRINGN:
        case SqlParser.INTERSECTS:
        case SqlParser.ISCLOSED:
        case SqlParser.ISEMPTY:
        case SqlParser.ISNULL:
        case SqlParser.ISSIMPLE:
        case SqlParser.IS_FREE_LOCK:
        case SqlParser.IS_IPV4:
        case SqlParser.IS_IPV4_COMPAT:
        case SqlParser.IS_IPV4_MAPPED:
        case SqlParser.IS_IPV6:
        case SqlParser.IS_USED_LOCK:
        case SqlParser.LAST_INSERT_ID:
        case SqlParser.LCASE:
        case SqlParser.LEAST:
        case SqlParser.LENGTH:
        case SqlParser.LINEFROMTEXT:
        case SqlParser.LINEFROMWKB:
        case SqlParser.LINESTRINGFROMTEXT:
        case SqlParser.LINESTRINGFROMWKB:
        case SqlParser.LN:
        case SqlParser.LOAD_FILE:
        case SqlParser.LOCATE:
        case SqlParser.LOG:
        case SqlParser.LOG10:
        case SqlParser.LOG2:
        case SqlParser.LOWER:
        case SqlParser.LPAD:
        case SqlParser.LTRIM:
        case SqlParser.MAKEDATE:
        case SqlParser.MAKETIME:
        case SqlParser.MAKE_SET:
        case SqlParser.MASTER_POS_WAIT:
        case SqlParser.MBRCONTAINS:
        case SqlParser.MBRDISJOINT:
        case SqlParser.MBREQUAL:
        case SqlParser.MBRINTERSECTS:
        case SqlParser.MBROVERLAPS:
        case SqlParser.MBRTOUCHES:
        case SqlParser.MBRWITHIN:
        case SqlParser.MD5:
        case SqlParser.MLINEFROMTEXT:
        case SqlParser.MLINEFROMWKB:
        case SqlParser.MONTHNAME:
        case SqlParser.MPOINTFROMTEXT:
        case SqlParser.MPOINTFROMWKB:
        case SqlParser.MPOLYFROMTEXT:
        case SqlParser.MPOLYFROMWKB:
        case SqlParser.MULTILINESTRINGFROMTEXT:
        case SqlParser.MULTILINESTRINGFROMWKB:
        case SqlParser.MULTIPOINTFROMTEXT:
        case SqlParser.MULTIPOINTFROMWKB:
        case SqlParser.MULTIPOLYGONFROMTEXT:
        case SqlParser.MULTIPOLYGONFROMWKB:
        case SqlParser.NAME_CONST:
        case SqlParser.NULLIF:
        case SqlParser.NUMGEOMETRIES:
        case SqlParser.NUMINTERIORRINGS:
        case SqlParser.NUMPOINTS:
        case SqlParser.OCT:
        case SqlParser.OCTET_LENGTH:
        case SqlParser.ORD:
        case SqlParser.OVERLAPS:
        case SqlParser.PERIOD_ADD:
        case SqlParser.PERIOD_DIFF:
        case SqlParser.PI:
        case SqlParser.POINTFROMTEXT:
        case SqlParser.POINTFROMWKB:
        case SqlParser.POINTN:
        case SqlParser.POLYFROMTEXT:
        case SqlParser.POLYFROMWKB:
        case SqlParser.POLYGONFROMTEXT:
        case SqlParser.POLYGONFROMWKB:
        case SqlParser.POW:
        case SqlParser.POWER:
        case SqlParser.QUOTE:
        case SqlParser.RADIANS:
        case SqlParser.RAND:
        case SqlParser.RANDOM_BYTES:
        case SqlParser.RELEASE_LOCK:
        case SqlParser.REVERSE:
        case SqlParser.ROUND:
        case SqlParser.ROW_COUNT:
        case SqlParser.RPAD:
        case SqlParser.RTRIM:
        case SqlParser.SEC_TO_TIME:
        case SqlParser.SESSION_USER:
        case SqlParser.SHA:
        case SqlParser.SHA1:
        case SqlParser.SHA2:
        case SqlParser.SCHEMA_NAME:
        case SqlParser.SIGN:
        case SqlParser.SIN:
        case SqlParser.SLEEP:
        case SqlParser.SOUNDEX:
        case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
        case SqlParser.SQRT:
        case SqlParser.SRID:
        case SqlParser.STARTPOINT:
        case SqlParser.STRCMP:
        case SqlParser.STR_TO_DATE:
        case SqlParser.ST_AREA:
        case SqlParser.ST_ASBINARY:
        case SqlParser.ST_ASTEXT:
        case SqlParser.ST_ASWKB:
        case SqlParser.ST_ASWKT:
        case SqlParser.ST_BUFFER:
        case SqlParser.ST_CENTROID:
        case SqlParser.ST_CONTAINS:
        case SqlParser.ST_CROSSES:
        case SqlParser.ST_DIFFERENCE:
        case SqlParser.ST_DIMENSION:
        case SqlParser.ST_DISJOINT:
        case SqlParser.ST_DISTANCE:
        case SqlParser.ST_ENDPOINT:
        case SqlParser.ST_ENVELOPE:
        case SqlParser.ST_EQUALS:
        case SqlParser.ST_EXTERIORRING:
        case SqlParser.ST_GEOMCOLLFROMTEXT:
        case SqlParser.ST_GEOMCOLLFROMTXT:
        case SqlParser.ST_GEOMCOLLFROMWKB:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.ST_GEOMETRYFROMTEXT:
        case SqlParser.ST_GEOMETRYFROMWKB:
        case SqlParser.ST_GEOMETRYN:
        case SqlParser.ST_GEOMETRYTYPE:
        case SqlParser.ST_GEOMFROMTEXT:
        case SqlParser.ST_GEOMFROMWKB:
        case SqlParser.ST_INTERIORRINGN:
        case SqlParser.ST_INTERSECTION:
        case SqlParser.ST_INTERSECTS:
        case SqlParser.ST_ISCLOSED:
        case SqlParser.ST_ISEMPTY:
        case SqlParser.ST_ISSIMPLE:
        case SqlParser.ST_LINEFROMTEXT:
        case SqlParser.ST_LINEFROMWKB:
        case SqlParser.ST_LINESTRINGFROMTEXT:
        case SqlParser.ST_LINESTRINGFROMWKB:
        case SqlParser.ST_NUMGEOMETRIES:
        case SqlParser.ST_NUMINTERIORRING:
        case SqlParser.ST_NUMINTERIORRINGS:
        case SqlParser.ST_NUMPOINTS:
        case SqlParser.ST_OVERLAPS:
        case SqlParser.ST_POINTFROMTEXT:
        case SqlParser.ST_POINTFROMWKB:
        case SqlParser.ST_POINTN:
        case SqlParser.ST_POLYFROMTEXT:
        case SqlParser.ST_POLYFROMWKB:
        case SqlParser.ST_POLYGONFROMTEXT:
        case SqlParser.ST_POLYGONFROMWKB:
        case SqlParser.ST_SRID:
        case SqlParser.ST_STARTPOINT:
        case SqlParser.ST_SYMDIFFERENCE:
        case SqlParser.ST_TOUCHES:
        case SqlParser.ST_UNION:
        case SqlParser.ST_WITHIN:
        case SqlParser.ST_X:
        case SqlParser.ST_Y:
        case SqlParser.SUBDATE:
        case SqlParser.SUBSTRING_INDEX:
        case SqlParser.SUBTIME:
        case SqlParser.SYSTEM_USER:
        case SqlParser.TAN:
        case SqlParser.TIMEDIFF:
        case SqlParser.TIMESTAMPADD:
        case SqlParser.TIMESTAMPDIFF:
        case SqlParser.TIME_FORMAT:
        case SqlParser.TIME_TO_SEC:
        case SqlParser.TOUCHES:
        case SqlParser.TO_BASE64:
        case SqlParser.TO_DAYS:
        case SqlParser.TO_SECONDS:
        case SqlParser.UCASE:
        case SqlParser.UNCOMPRESS:
        case SqlParser.UNCOMPRESSED_LENGTH:
        case SqlParser.UNHEX:
        case SqlParser.UNIX_TIMESTAMP:
        case SqlParser.UPDATEXML:
        case SqlParser.UPPER:
        case SqlParser.UUID:
        case SqlParser.UUID_SHORT:
        case SqlParser.VALIDATE_PASSWORD_STRENGTH:
        case SqlParser.VERSION:
        case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
        case SqlParser.WEEKDAY:
        case SqlParser.WEEKOFYEAR:
        case SqlParser.WEIGHT_STRING:
        case SqlParser.WITHIN:
        case SqlParser.YEARWEEK:
        case SqlParser.Y_FUNCTION:
        case SqlParser.X_FUNCTION:
        case SqlParser.PLUS:
        case SqlParser.MINUS:
        case SqlParser.EXCLAMATION_SYMBOL:
        case SqlParser.BIT_NOT_OP:
        case SqlParser.LR_BRACKET:
        case SqlParser.ZERO_DECIMAL:
        case SqlParser.ONE_DECIMAL:
        case SqlParser.TWO_DECIMAL:
        case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
        case SqlParser.START_NATIONAL_STRING_LITERAL:
        case SqlParser.STRING_LITERAL:
        case SqlParser.DECIMAL_LITERAL:
        case SqlParser.HEXADECIMAL_LITERAL:
        case SqlParser.REAL_LITERAL:
        case SqlParser.NULL_SPEC_LITERAL:
        case SqlParser.BIT_STRING:
        case SqlParser.STRING_CHARSET_NAME:
        case SqlParser.ID:
        case SqlParser.REVERSE_QUOTE_ID:
        case SqlParser.LOCAL_ID:
        case SqlParser.GLOBAL_ID:
            this.state = 3529;
            this.selectElement();
            break;
        default:
            throw new antlr4.error.NoViableAltException(this);
        }
        this.state = 3536;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 3532;
            this.match(SqlParser.COMMA);
            this.state = 3533;
            this.selectElement();
            this.state = 3538;
            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 SelectElementContext(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_selectElement;
    return this;
}

SelectElementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SelectElementContext.prototype.constructor = SelectElementContext;


 
SelectElementContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function SelectExpressionElementContext(parser, ctx) {
	SelectElementContext.call(this, parser);
    SelectElementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SelectExpressionElementContext.prototype = Object.create(SelectElementContext.prototype);
SelectExpressionElementContext.prototype.constructor = SelectExpressionElementContext;

SqlParser.SelectExpressionElementContext = SelectExpressionElementContext;

SelectExpressionElementContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

SelectExpressionElementContext.prototype.LOCAL_ID = function() {
    return this.getToken(SqlParser.LOCAL_ID, 0);
};

SelectExpressionElementContext.prototype.VAR_ASSIGN = function() {
    return this.getToken(SqlParser.VAR_ASSIGN, 0);
};

SelectExpressionElementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

SelectExpressionElementContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};
SelectExpressionElementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSelectExpressionElement(this);
	}
};

SelectExpressionElementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSelectExpressionElement(this);
	}
};

SelectExpressionElementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSelectExpressionElement(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SelectFunctionElementContext(parser, ctx) {
	SelectElementContext.call(this, parser);
    SelectElementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SelectFunctionElementContext.prototype = Object.create(SelectElementContext.prototype);
SelectFunctionElementContext.prototype.constructor = SelectFunctionElementContext;

SqlParser.SelectFunctionElementContext = SelectFunctionElementContext;

SelectFunctionElementContext.prototype.functionCall = function() {
    return this.getTypedRuleContext(FunctionCallContext,0);
};

SelectFunctionElementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

SelectFunctionElementContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};
SelectFunctionElementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSelectFunctionElement(this);
	}
};

SelectFunctionElementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSelectFunctionElement(this);
	}
};

SelectFunctionElementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSelectFunctionElement(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SelectStarElementContext(parser, ctx) {
	SelectElementContext.call(this, parser);
    SelectElementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SelectStarElementContext.prototype = Object.create(SelectElementContext.prototype);
SelectStarElementContext.prototype.constructor = SelectStarElementContext;

SqlParser.SelectStarElementContext = SelectStarElementContext;

SelectStarElementContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

SelectStarElementContext.prototype.DOT = function() {
    return this.getToken(SqlParser.DOT, 0);
};

SelectStarElementContext.prototype.STAR = function() {
    return this.getToken(SqlParser.STAR, 0);
};
SelectStarElementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSelectStarElement(this);
	}
};

SelectStarElementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSelectStarElement(this);
	}
};

SelectStarElementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSelectStarElement(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SelectColumnElementContext(parser, ctx) {
	SelectElementContext.call(this, parser);
    SelectElementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SelectColumnElementContext.prototype = Object.create(SelectElementContext.prototype);
SelectColumnElementContext.prototype.constructor = SelectColumnElementContext;

SqlParser.SelectColumnElementContext = SelectColumnElementContext;

SelectColumnElementContext.prototype.fullColumnName = function() {
    return this.getTypedRuleContext(FullColumnNameContext,0);
};

SelectColumnElementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

SelectColumnElementContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};
SelectColumnElementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSelectColumnElement(this);
	}
};

SelectColumnElementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSelectColumnElement(this);
	}
};

SelectColumnElementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSelectColumnElement(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.SelectElementContext = SelectElementContext;

SqlParser.prototype.selectElement = function() {

    var localctx = new SelectElementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 240, SqlParser.RULE_selectElement);
    var _la = 0; // Token type
    try {
        this.state = 3568;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,514,this._ctx);
        switch(la_) {
        case 1:
            localctx = new SelectStarElementContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 3539;
            this.fullId();
            this.state = 3540;
            this.match(SqlParser.DOT);
            this.state = 3541;
            this.match(SqlParser.STAR);
            break;

        case 2:
            localctx = new SelectColumnElementContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 3543;
            this.fullColumnName();
            this.state = 3548;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,508,this._ctx);
            if(la_===1) {
                this.state = 3545;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.AS) {
                    this.state = 3544;
                    this.match(SqlParser.AS);
                }

                this.state = 3547;
                this.uid();

            }
            break;

        case 3:
            localctx = new SelectFunctionElementContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 3550;
            this.functionCall();
            this.state = 3555;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,510,this._ctx);
            if(la_===1) {
                this.state = 3552;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.AS) {
                    this.state = 3551;
                    this.match(SqlParser.AS);
                }

                this.state = 3554;
                this.uid();

            }
            break;

        case 4:
            localctx = new SelectExpressionElementContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 3559;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,511,this._ctx);
            if(la_===1) {
                this.state = 3557;
                this.match(SqlParser.LOCAL_ID);
                this.state = 3558;
                this.match(SqlParser.VAR_ASSIGN);

            }
            this.state = 3561;
            this.expression(0);
            this.state = 3566;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,513,this._ctx);
            if(la_===1) {
                this.state = 3563;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.AS) {
                    this.state = 3562;
                    this.match(SqlParser.AS);
                }

                this.state = 3565;
                this.uid();

            }
            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 SelectIntoExpressionContext(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_selectIntoExpression;
    return this;
}

SelectIntoExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SelectIntoExpressionContext.prototype.constructor = SelectIntoExpressionContext;


 
SelectIntoExpressionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function SelectIntoVariablesContext(parser, ctx) {
	SelectIntoExpressionContext.call(this, parser);
    SelectIntoExpressionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SelectIntoVariablesContext.prototype = Object.create(SelectIntoExpressionContext.prototype);
SelectIntoVariablesContext.prototype.constructor = SelectIntoVariablesContext;

SqlParser.SelectIntoVariablesContext = SelectIntoVariablesContext;

SelectIntoVariablesContext.prototype.INTO = function() {
    return this.getToken(SqlParser.INTO, 0);
};

SelectIntoVariablesContext.prototype.assignmentField = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(AssignmentFieldContext);
    } else {
        return this.getTypedRuleContext(AssignmentFieldContext,i);
    }
};

SelectIntoVariablesContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

SelectIntoVariablesContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSelectIntoVariables(this);
	}
};

SelectIntoVariablesContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSelectIntoVariables(this);
	}
};

SelectIntoVariablesContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSelectIntoVariables(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SelectIntoTextFileContext(parser, ctx) {
	SelectIntoExpressionContext.call(this, parser);
    this.filename = null; // Token;
    this.charset = null; // CharsetNameContext;
    this.fieldsFormat = null; // Token;
    SelectIntoExpressionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SelectIntoTextFileContext.prototype = Object.create(SelectIntoExpressionContext.prototype);
SelectIntoTextFileContext.prototype.constructor = SelectIntoTextFileContext;

SqlParser.SelectIntoTextFileContext = SelectIntoTextFileContext;

SelectIntoTextFileContext.prototype.INTO = function() {
    return this.getToken(SqlParser.INTO, 0);
};

SelectIntoTextFileContext.prototype.OUTFILE = function() {
    return this.getToken(SqlParser.OUTFILE, 0);
};

SelectIntoTextFileContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

SelectIntoTextFileContext.prototype.CHARACTER = function() {
    return this.getToken(SqlParser.CHARACTER, 0);
};

SelectIntoTextFileContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

SelectIntoTextFileContext.prototype.LINES = function() {
    return this.getToken(SqlParser.LINES, 0);
};

SelectIntoTextFileContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};

SelectIntoTextFileContext.prototype.FIELDS = function() {
    return this.getToken(SqlParser.FIELDS, 0);
};

SelectIntoTextFileContext.prototype.COLUMNS = function() {
    return this.getToken(SqlParser.COLUMNS, 0);
};

SelectIntoTextFileContext.prototype.selectFieldsInto = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(SelectFieldsIntoContext);
    } else {
        return this.getTypedRuleContext(SelectFieldsIntoContext,i);
    }
};

SelectIntoTextFileContext.prototype.selectLinesInto = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(SelectLinesIntoContext);
    } else {
        return this.getTypedRuleContext(SelectLinesIntoContext,i);
    }
};
SelectIntoTextFileContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSelectIntoTextFile(this);
	}
};

SelectIntoTextFileContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSelectIntoTextFile(this);
	}
};

SelectIntoTextFileContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSelectIntoTextFile(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SelectIntoDumpFileContext(parser, ctx) {
	SelectIntoExpressionContext.call(this, parser);
    SelectIntoExpressionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SelectIntoDumpFileContext.prototype = Object.create(SelectIntoExpressionContext.prototype);
SelectIntoDumpFileContext.prototype.constructor = SelectIntoDumpFileContext;

SqlParser.SelectIntoDumpFileContext = SelectIntoDumpFileContext;

SelectIntoDumpFileContext.prototype.INTO = function() {
    return this.getToken(SqlParser.INTO, 0);
};

SelectIntoDumpFileContext.prototype.DUMPFILE = function() {
    return this.getToken(SqlParser.DUMPFILE, 0);
};

SelectIntoDumpFileContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};
SelectIntoDumpFileContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSelectIntoDumpFile(this);
	}
};

SelectIntoDumpFileContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSelectIntoDumpFile(this);
	}
};

SelectIntoDumpFileContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSelectIntoDumpFile(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.SelectIntoExpressionContext = SelectIntoExpressionContext;

SqlParser.prototype.selectIntoExpression = function() {

    var localctx = new SelectIntoExpressionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 242, SqlParser.RULE_selectIntoExpression);
    var _la = 0; // Token type
    try {
        this.state = 3606;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,521,this._ctx);
        switch(la_) {
        case 1:
            localctx = new SelectIntoVariablesContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 3570;
            this.match(SqlParser.INTO);
            this.state = 3571;
            this.assignmentField();
            this.state = 3576;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 3572;
                this.match(SqlParser.COMMA);
                this.state = 3573;
                this.assignmentField();
                this.state = 3578;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;

        case 2:
            localctx = new SelectIntoDumpFileContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 3579;
            this.match(SqlParser.INTO);
            this.state = 3580;
            this.match(SqlParser.DUMPFILE);
            this.state = 3581;
            this.match(SqlParser.STRING_LITERAL);
            break;

        case 3:
            localctx = new SelectIntoTextFileContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 3582;
            this.match(SqlParser.INTO);
            this.state = 3583;
            this.match(SqlParser.OUTFILE);
            this.state = 3584;
            localctx.filename = this.match(SqlParser.STRING_LITERAL);
            this.state = 3588;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.CHARACTER) {
                this.state = 3585;
                this.match(SqlParser.CHARACTER);
                this.state = 3586;
                this.match(SqlParser.SET);
                this.state = 3587;
                localctx.charset = this.charsetName();
            }

            this.state = 3596;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,518,this._ctx);
            if(la_===1) {
                this.state = 3590;
                localctx.fieldsFormat = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.COLUMNS || _la===SqlParser.FIELDS)) {
                    localctx.fieldsFormat = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
                this.state = 3592; 
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                do {
                    this.state = 3591;
                    this.selectFieldsInto();
                    this.state = 3594; 
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                } while(_la===SqlParser.ENCLOSED || _la===SqlParser.ESCAPED || _la===SqlParser.OPTIONALLY || _la===SqlParser.TERMINATED);

            }
            this.state = 3604;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LINES) {
                this.state = 3598;
                this.match(SqlParser.LINES);
                this.state = 3600; 
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                do {
                    this.state = 3599;
                    this.selectLinesInto();
                    this.state = 3602; 
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                } while(_la===SqlParser.STARTING || _la===SqlParser.TERMINATED);
            }

            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 SelectFieldsIntoContext(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_selectFieldsInto;
    this.terminationField = null; // Token
    this.enclosion = null; // Token
    this.escaping = null; // Token
    return this;
}

SelectFieldsIntoContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SelectFieldsIntoContext.prototype.constructor = SelectFieldsIntoContext;

SelectFieldsIntoContext.prototype.TERMINATED = function() {
    return this.getToken(SqlParser.TERMINATED, 0);
};

SelectFieldsIntoContext.prototype.BY = function() {
    return this.getToken(SqlParser.BY, 0);
};

SelectFieldsIntoContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

SelectFieldsIntoContext.prototype.ENCLOSED = function() {
    return this.getToken(SqlParser.ENCLOSED, 0);
};

SelectFieldsIntoContext.prototype.OPTIONALLY = function() {
    return this.getToken(SqlParser.OPTIONALLY, 0);
};

SelectFieldsIntoContext.prototype.ESCAPED = function() {
    return this.getToken(SqlParser.ESCAPED, 0);
};

SelectFieldsIntoContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSelectFieldsInto(this);
	}
};

SelectFieldsIntoContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSelectFieldsInto(this);
	}
};

SelectFieldsIntoContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSelectFieldsInto(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SelectFieldsIntoContext = SelectFieldsIntoContext;

SqlParser.prototype.selectFieldsInto = function() {

    var localctx = new SelectFieldsIntoContext(this, this._ctx, this.state);
    this.enterRule(localctx, 244, SqlParser.RULE_selectFieldsInto);
    var _la = 0; // Token type
    try {
        this.state = 3620;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.TERMINATED:
            this.enterOuterAlt(localctx, 1);
            this.state = 3608;
            this.match(SqlParser.TERMINATED);
            this.state = 3609;
            this.match(SqlParser.BY);
            this.state = 3610;
            localctx.terminationField = this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.ENCLOSED:
        case SqlParser.OPTIONALLY:
            this.enterOuterAlt(localctx, 2);
            this.state = 3612;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.OPTIONALLY) {
                this.state = 3611;
                this.match(SqlParser.OPTIONALLY);
            }

            this.state = 3614;
            this.match(SqlParser.ENCLOSED);
            this.state = 3615;
            this.match(SqlParser.BY);
            this.state = 3616;
            localctx.enclosion = this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.ESCAPED:
            this.enterOuterAlt(localctx, 3);
            this.state = 3617;
            this.match(SqlParser.ESCAPED);
            this.state = 3618;
            this.match(SqlParser.BY);
            this.state = 3619;
            localctx.escaping = this.match(SqlParser.STRING_LITERAL);
            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 SelectLinesIntoContext(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_selectLinesInto;
    this.starting = null; // Token
    this.terminationLine = null; // Token
    return this;
}

SelectLinesIntoContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SelectLinesIntoContext.prototype.constructor = SelectLinesIntoContext;

SelectLinesIntoContext.prototype.STARTING = function() {
    return this.getToken(SqlParser.STARTING, 0);
};

SelectLinesIntoContext.prototype.BY = function() {
    return this.getToken(SqlParser.BY, 0);
};

SelectLinesIntoContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

SelectLinesIntoContext.prototype.TERMINATED = function() {
    return this.getToken(SqlParser.TERMINATED, 0);
};

SelectLinesIntoContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSelectLinesInto(this);
	}
};

SelectLinesIntoContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSelectLinesInto(this);
	}
};

SelectLinesIntoContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSelectLinesInto(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SelectLinesIntoContext = SelectLinesIntoContext;

SqlParser.prototype.selectLinesInto = function() {

    var localctx = new SelectLinesIntoContext(this, this._ctx, this.state);
    this.enterRule(localctx, 246, SqlParser.RULE_selectLinesInto);
    try {
        this.state = 3628;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.STARTING:
            this.enterOuterAlt(localctx, 1);
            this.state = 3622;
            this.match(SqlParser.STARTING);
            this.state = 3623;
            this.match(SqlParser.BY);
            this.state = 3624;
            localctx.starting = this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.TERMINATED:
            this.enterOuterAlt(localctx, 2);
            this.state = 3625;
            this.match(SqlParser.TERMINATED);
            this.state = 3626;
            this.match(SqlParser.BY);
            this.state = 3627;
            localctx.terminationLine = this.match(SqlParser.STRING_LITERAL);
            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 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;
    this.whereExpr = null; // ExpressionContext
    this.havingExpr = null; // ExpressionContext
    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.tableSources = function() {
    return this.getTypedRuleContext(TableSourcesContext,0);
};

FromClauseContext.prototype.WHERE = function() {
    return this.getToken(SqlParser.WHERE, 0);
};

FromClauseContext.prototype.GROUP = function() {
    return this.getToken(SqlParser.GROUP, 0);
};

FromClauseContext.prototype.BY = function() {
    return this.getToken(SqlParser.BY, 0);
};

FromClauseContext.prototype.groupByItem = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(GroupByItemContext);
    } else {
        return this.getTypedRuleContext(GroupByItemContext,i);
    }
};

FromClauseContext.prototype.HAVING = function() {
    return this.getToken(SqlParser.HAVING, 0);
};

FromClauseContext.prototype.expression = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionContext);
    } else {
        return this.getTypedRuleContext(ExpressionContext,i);
    }
};

FromClauseContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


FromClauseContext.prototype.WITH = function() {
    return this.getToken(SqlParser.WITH, 0);
};

FromClauseContext.prototype.ROLLUP = function() {
    return this.getToken(SqlParser.ROLLUP, 0);
};

FromClauseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFromClause(this);
	}
};

FromClauseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFromClause(this);
	}
};

FromClauseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        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, 248, SqlParser.RULE_fromClause);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3630;
        this.match(SqlParser.FROM);
        this.state = 3631;
        this.tableSources();
        this.state = 3634;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WHERE) {
            this.state = 3632;
            this.match(SqlParser.WHERE);
            this.state = 3633;
            localctx.whereExpr = this.expression(0);
        }

        this.state = 3650;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.GROUP) {
            this.state = 3636;
            this.match(SqlParser.GROUP);
            this.state = 3637;
            this.match(SqlParser.BY);
            this.state = 3638;
            this.groupByItem();
            this.state = 3643;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 3639;
                this.match(SqlParser.COMMA);
                this.state = 3640;
                this.groupByItem();
                this.state = 3645;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 3648;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,527,this._ctx);
            if(la_===1) {
                this.state = 3646;
                this.match(SqlParser.WITH);
                this.state = 3647;
                this.match(SqlParser.ROLLUP);

            }
        }

        this.state = 3654;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.HAVING) {
            this.state = 3652;
            this.match(SqlParser.HAVING);
            this.state = 3653;
            localctx.havingExpr = this.expression(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 GroupByItemContext(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_groupByItem;
    this.order = null; // Token
    return this;
}

GroupByItemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
GroupByItemContext.prototype.constructor = GroupByItemContext;

GroupByItemContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

GroupByItemContext.prototype.ASC = function() {
    return this.getToken(SqlParser.ASC, 0);
};

GroupByItemContext.prototype.DESC = function() {
    return this.getToken(SqlParser.DESC, 0);
};

GroupByItemContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterGroupByItem(this);
	}
};

GroupByItemContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitGroupByItem(this);
	}
};

GroupByItemContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitGroupByItem(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.GroupByItemContext = GroupByItemContext;

SqlParser.prototype.groupByItem = function() {

    var localctx = new GroupByItemContext(this, this._ctx, this.state);
    this.enterRule(localctx, 250, SqlParser.RULE_groupByItem);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3656;
        this.expression(0);
        this.state = 3658;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,530,this._ctx);
        if(la_===1) {
            this.state = 3657;
            localctx.order = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.ASC || _la===SqlParser.DESC)) {
                localctx.order = 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 LimitClauseContext(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_limitClause;
    this.offset = null; // LimitClauseAtomContext
    this.limit = null; // LimitClauseAtomContext
    return this;
}

LimitClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LimitClauseContext.prototype.constructor = LimitClauseContext;

LimitClauseContext.prototype.LIMIT = function() {
    return this.getToken(SqlParser.LIMIT, 0);
};

LimitClauseContext.prototype.OFFSET = function() {
    return this.getToken(SqlParser.OFFSET, 0);
};

LimitClauseContext.prototype.limitClauseAtom = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(LimitClauseAtomContext);
    } else {
        return this.getTypedRuleContext(LimitClauseAtomContext,i);
    }
};

LimitClauseContext.prototype.COMMA = function() {
    return this.getToken(SqlParser.COMMA, 0);
};

LimitClauseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLimitClause(this);
	}
};

LimitClauseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLimitClause(this);
	}
};

LimitClauseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLimitClause(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LimitClauseContext = LimitClauseContext;

SqlParser.prototype.limitClause = function() {

    var localctx = new LimitClauseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 252, SqlParser.RULE_limitClause);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3660;
        this.match(SqlParser.LIMIT);
        this.state = 3671;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,532,this._ctx);
        switch(la_) {
        case 1:
            this.state = 3664;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,531,this._ctx);
            if(la_===1) {
                this.state = 3661;
                localctx.offset = this.limitClauseAtom();
                this.state = 3662;
                this.match(SqlParser.COMMA);

            }
            this.state = 3666;
            localctx.limit = this.limitClauseAtom();
            break;

        case 2:
            this.state = 3667;
            localctx.limit = this.limitClauseAtom();
            this.state = 3668;
            this.match(SqlParser.OFFSET);
            this.state = 3669;
            localctx.offset = this.limitClauseAtom();
            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 LimitClauseAtomContext(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_limitClauseAtom;
    return this;
}

LimitClauseAtomContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LimitClauseAtomContext.prototype.constructor = LimitClauseAtomContext;

LimitClauseAtomContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

LimitClauseAtomContext.prototype.mysqlVariable = function() {
    return this.getTypedRuleContext(MysqlVariableContext,0);
};

LimitClauseAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLimitClauseAtom(this);
	}
};

LimitClauseAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLimitClauseAtom(this);
	}
};

LimitClauseAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLimitClauseAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LimitClauseAtomContext = LimitClauseAtomContext;

SqlParser.prototype.limitClauseAtom = function() {

    var localctx = new LimitClauseAtomContext(this, this._ctx, this.state);
    this.enterRule(localctx, 254, SqlParser.RULE_limitClauseAtom);
    try {
        this.state = 3675;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.ZERO_DECIMAL:
        case SqlParser.ONE_DECIMAL:
        case SqlParser.TWO_DECIMAL:
        case SqlParser.DECIMAL_LITERAL:
            this.enterOuterAlt(localctx, 1);
            this.state = 3673;
            this.decimalLiteral();
            break;
        case SqlParser.LOCAL_ID:
        case SqlParser.GLOBAL_ID:
            this.enterOuterAlt(localctx, 2);
            this.state = 3674;
            this.mysqlVariable();
            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 StartTransactionContext(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_startTransaction;
    return this;
}

StartTransactionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
StartTransactionContext.prototype.constructor = StartTransactionContext;

StartTransactionContext.prototype.START = function() {
    return this.getToken(SqlParser.START, 0);
};

StartTransactionContext.prototype.TRANSACTION = function() {
    return this.getToken(SqlParser.TRANSACTION, 0);
};

StartTransactionContext.prototype.transactionMode = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TransactionModeContext);
    } else {
        return this.getTypedRuleContext(TransactionModeContext,i);
    }
};

StartTransactionContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


StartTransactionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterStartTransaction(this);
	}
};

StartTransactionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitStartTransaction(this);
	}
};

StartTransactionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitStartTransaction(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.StartTransactionContext = StartTransactionContext;

SqlParser.prototype.startTransaction = function() {

    var localctx = new StartTransactionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 256, SqlParser.RULE_startTransaction);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3677;
        this.match(SqlParser.START);
        this.state = 3678;
        this.match(SqlParser.TRANSACTION);
        this.state = 3687;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.READ || _la===SqlParser.WITH) {
            this.state = 3679;
            this.transactionMode();
            this.state = 3684;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 3680;
                this.match(SqlParser.COMMA);
                this.state = 3681;
                this.transactionMode();
                this.state = 3686;
                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 BeginWorkContext(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_beginWork;
    return this;
}

BeginWorkContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
BeginWorkContext.prototype.constructor = BeginWorkContext;

BeginWorkContext.prototype.BEGIN = function() {
    return this.getToken(SqlParser.BEGIN, 0);
};

BeginWorkContext.prototype.WORK = function() {
    return this.getToken(SqlParser.WORK, 0);
};

BeginWorkContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterBeginWork(this);
	}
};

BeginWorkContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitBeginWork(this);
	}
};

BeginWorkContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitBeginWork(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.BeginWorkContext = BeginWorkContext;

SqlParser.prototype.beginWork = function() {

    var localctx = new BeginWorkContext(this, this._ctx, this.state);
    this.enterRule(localctx, 258, SqlParser.RULE_beginWork);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3689;
        this.match(SqlParser.BEGIN);
        this.state = 3691;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WORK) {
            this.state = 3690;
            this.match(SqlParser.WORK);
        }

    } 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 CommitWorkContext(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_commitWork;
    this.nochain = null; // Token
    this.norelease = null; // Token
    return this;
}

CommitWorkContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CommitWorkContext.prototype.constructor = CommitWorkContext;

CommitWorkContext.prototype.COMMIT = function() {
    return this.getToken(SqlParser.COMMIT, 0);
};

CommitWorkContext.prototype.WORK = function() {
    return this.getToken(SqlParser.WORK, 0);
};

CommitWorkContext.prototype.AND = function() {
    return this.getToken(SqlParser.AND, 0);
};

CommitWorkContext.prototype.CHAIN = function() {
    return this.getToken(SqlParser.CHAIN, 0);
};

CommitWorkContext.prototype.RELEASE = function() {
    return this.getToken(SqlParser.RELEASE, 0);
};

CommitWorkContext.prototype.NO = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.NO);
    } else {
        return this.getToken(SqlParser.NO, i);
    }
};


CommitWorkContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCommitWork(this);
	}
};

CommitWorkContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCommitWork(this);
	}
};

CommitWorkContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCommitWork(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CommitWorkContext = CommitWorkContext;

SqlParser.prototype.commitWork = function() {

    var localctx = new CommitWorkContext(this, this._ctx, this.state);
    this.enterRule(localctx, 260, SqlParser.RULE_commitWork);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3693;
        this.match(SqlParser.COMMIT);
        this.state = 3695;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WORK) {
            this.state = 3694;
            this.match(SqlParser.WORK);
        }

        this.state = 3702;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.AND) {
            this.state = 3697;
            this.match(SqlParser.AND);
            this.state = 3699;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.NO) {
                this.state = 3698;
                localctx.nochain = this.match(SqlParser.NO);
            }

            this.state = 3701;
            this.match(SqlParser.CHAIN);
        }

        this.state = 3708;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,541,this._ctx);
        if(la_===1) {
            this.state = 3705;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.NO) {
                this.state = 3704;
                localctx.norelease = this.match(SqlParser.NO);
            }

            this.state = 3707;
            this.match(SqlParser.RELEASE);

        }
    } 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 RollbackWorkContext(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_rollbackWork;
    this.nochain = null; // Token
    this.norelease = null; // Token
    return this;
}

RollbackWorkContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RollbackWorkContext.prototype.constructor = RollbackWorkContext;

RollbackWorkContext.prototype.ROLLBACK = function() {
    return this.getToken(SqlParser.ROLLBACK, 0);
};

RollbackWorkContext.prototype.WORK = function() {
    return this.getToken(SqlParser.WORK, 0);
};

RollbackWorkContext.prototype.AND = function() {
    return this.getToken(SqlParser.AND, 0);
};

RollbackWorkContext.prototype.CHAIN = function() {
    return this.getToken(SqlParser.CHAIN, 0);
};

RollbackWorkContext.prototype.RELEASE = function() {
    return this.getToken(SqlParser.RELEASE, 0);
};

RollbackWorkContext.prototype.NO = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.NO);
    } else {
        return this.getToken(SqlParser.NO, i);
    }
};


RollbackWorkContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRollbackWork(this);
	}
};

RollbackWorkContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRollbackWork(this);
	}
};

RollbackWorkContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRollbackWork(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.RollbackWorkContext = RollbackWorkContext;

SqlParser.prototype.rollbackWork = function() {

    var localctx = new RollbackWorkContext(this, this._ctx, this.state);
    this.enterRule(localctx, 262, SqlParser.RULE_rollbackWork);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3710;
        this.match(SqlParser.ROLLBACK);
        this.state = 3712;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WORK) {
            this.state = 3711;
            this.match(SqlParser.WORK);
        }

        this.state = 3719;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.AND) {
            this.state = 3714;
            this.match(SqlParser.AND);
            this.state = 3716;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.NO) {
                this.state = 3715;
                localctx.nochain = this.match(SqlParser.NO);
            }

            this.state = 3718;
            this.match(SqlParser.CHAIN);
        }

        this.state = 3725;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,546,this._ctx);
        if(la_===1) {
            this.state = 3722;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.NO) {
                this.state = 3721;
                localctx.norelease = this.match(SqlParser.NO);
            }

            this.state = 3724;
            this.match(SqlParser.RELEASE);

        }
    } 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 SavepointStatementContext(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_savepointStatement;
    return this;
}

SavepointStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SavepointStatementContext.prototype.constructor = SavepointStatementContext;

SavepointStatementContext.prototype.SAVEPOINT = function() {
    return this.getToken(SqlParser.SAVEPOINT, 0);
};

SavepointStatementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

SavepointStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSavepointStatement(this);
	}
};

SavepointStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSavepointStatement(this);
	}
};

SavepointStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSavepointStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SavepointStatementContext = SavepointStatementContext;

SqlParser.prototype.savepointStatement = function() {

    var localctx = new SavepointStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 264, SqlParser.RULE_savepointStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3727;
        this.match(SqlParser.SAVEPOINT);
        this.state = 3728;
        this.uid();
    } 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 RollbackStatementContext(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_rollbackStatement;
    return this;
}

RollbackStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RollbackStatementContext.prototype.constructor = RollbackStatementContext;

RollbackStatementContext.prototype.ROLLBACK = function() {
    return this.getToken(SqlParser.ROLLBACK, 0);
};

RollbackStatementContext.prototype.TO = function() {
    return this.getToken(SqlParser.TO, 0);
};

RollbackStatementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

RollbackStatementContext.prototype.WORK = function() {
    return this.getToken(SqlParser.WORK, 0);
};

RollbackStatementContext.prototype.SAVEPOINT = function() {
    return this.getToken(SqlParser.SAVEPOINT, 0);
};

RollbackStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRollbackStatement(this);
	}
};

RollbackStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRollbackStatement(this);
	}
};

RollbackStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRollbackStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.RollbackStatementContext = RollbackStatementContext;

SqlParser.prototype.rollbackStatement = function() {

    var localctx = new RollbackStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 266, SqlParser.RULE_rollbackStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3730;
        this.match(SqlParser.ROLLBACK);
        this.state = 3732;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WORK) {
            this.state = 3731;
            this.match(SqlParser.WORK);
        }

        this.state = 3734;
        this.match(SqlParser.TO);
        this.state = 3736;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,548,this._ctx);
        if(la_===1) {
            this.state = 3735;
            this.match(SqlParser.SAVEPOINT);

        }
        this.state = 3738;
        this.uid();
    } 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 ReleaseStatementContext(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_releaseStatement;
    return this;
}

ReleaseStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ReleaseStatementContext.prototype.constructor = ReleaseStatementContext;

ReleaseStatementContext.prototype.RELEASE = function() {
    return this.getToken(SqlParser.RELEASE, 0);
};

ReleaseStatementContext.prototype.SAVEPOINT = function() {
    return this.getToken(SqlParser.SAVEPOINT, 0);
};

ReleaseStatementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

ReleaseStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterReleaseStatement(this);
	}
};

ReleaseStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitReleaseStatement(this);
	}
};

ReleaseStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitReleaseStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ReleaseStatementContext = ReleaseStatementContext;

SqlParser.prototype.releaseStatement = function() {

    var localctx = new ReleaseStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 268, SqlParser.RULE_releaseStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3740;
        this.match(SqlParser.RELEASE);
        this.state = 3741;
        this.match(SqlParser.SAVEPOINT);
        this.state = 3742;
        this.uid();
    } 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 LockTablesContext(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_lockTables;
    return this;
}

LockTablesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LockTablesContext.prototype.constructor = LockTablesContext;

LockTablesContext.prototype.LOCK = function() {
    return this.getToken(SqlParser.LOCK, 0);
};

LockTablesContext.prototype.TABLES = function() {
    return this.getToken(SqlParser.TABLES, 0);
};

LockTablesContext.prototype.lockTableElement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(LockTableElementContext);
    } else {
        return this.getTypedRuleContext(LockTableElementContext,i);
    }
};

LockTablesContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


LockTablesContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLockTables(this);
	}
};

LockTablesContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLockTables(this);
	}
};

LockTablesContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLockTables(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LockTablesContext = LockTablesContext;

SqlParser.prototype.lockTables = function() {

    var localctx = new LockTablesContext(this, this._ctx, this.state);
    this.enterRule(localctx, 270, SqlParser.RULE_lockTables);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3744;
        this.match(SqlParser.LOCK);
        this.state = 3745;
        this.match(SqlParser.TABLES);
        this.state = 3746;
        this.lockTableElement();
        this.state = 3751;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 3747;
            this.match(SqlParser.COMMA);
            this.state = 3748;
            this.lockTableElement();
            this.state = 3753;
            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 UnlockTablesContext(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_unlockTables;
    return this;
}

UnlockTablesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UnlockTablesContext.prototype.constructor = UnlockTablesContext;

UnlockTablesContext.prototype.UNLOCK = function() {
    return this.getToken(SqlParser.UNLOCK, 0);
};

UnlockTablesContext.prototype.TABLES = function() {
    return this.getToken(SqlParser.TABLES, 0);
};

UnlockTablesContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUnlockTables(this);
	}
};

UnlockTablesContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUnlockTables(this);
	}
};

UnlockTablesContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUnlockTables(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UnlockTablesContext = UnlockTablesContext;

SqlParser.prototype.unlockTables = function() {

    var localctx = new UnlockTablesContext(this, this._ctx, this.state);
    this.enterRule(localctx, 272, SqlParser.RULE_unlockTables);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3754;
        this.match(SqlParser.UNLOCK);
        this.state = 3755;
        this.match(SqlParser.TABLES);
    } 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 SetAutocommitStatementContext(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_setAutocommitStatement;
    this.autocommitValue = null; // Token
    return this;
}

SetAutocommitStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SetAutocommitStatementContext.prototype.constructor = SetAutocommitStatementContext;

SetAutocommitStatementContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

SetAutocommitStatementContext.prototype.AUTOCOMMIT = function() {
    return this.getToken(SqlParser.AUTOCOMMIT, 0);
};

SetAutocommitStatementContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

SetAutocommitStatementContext.prototype.ZERO_DECIMAL = function() {
    return this.getToken(SqlParser.ZERO_DECIMAL, 0);
};

SetAutocommitStatementContext.prototype.ONE_DECIMAL = function() {
    return this.getToken(SqlParser.ONE_DECIMAL, 0);
};

SetAutocommitStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSetAutocommitStatement(this);
	}
};

SetAutocommitStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSetAutocommitStatement(this);
	}
};

SetAutocommitStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSetAutocommitStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SetAutocommitStatementContext = SetAutocommitStatementContext;

SqlParser.prototype.setAutocommitStatement = function() {

    var localctx = new SetAutocommitStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 274, SqlParser.RULE_setAutocommitStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3757;
        this.match(SqlParser.SET);
        this.state = 3758;
        this.match(SqlParser.AUTOCOMMIT);
        this.state = 3759;
        this.match(SqlParser.EQUAL_SYMBOL);
        this.state = 3760;
        localctx.autocommitValue = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.ZERO_DECIMAL || _la===SqlParser.ONE_DECIMAL)) {
            localctx.autocommitValue = 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 SetTransactionStatementContext(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_setTransactionStatement;
    this.transactionContext = null; // Token
    return this;
}

SetTransactionStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SetTransactionStatementContext.prototype.constructor = SetTransactionStatementContext;

SetTransactionStatementContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

SetTransactionStatementContext.prototype.TRANSACTION = function() {
    return this.getToken(SqlParser.TRANSACTION, 0);
};

SetTransactionStatementContext.prototype.transactionOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TransactionOptionContext);
    } else {
        return this.getTypedRuleContext(TransactionOptionContext,i);
    }
};

SetTransactionStatementContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


SetTransactionStatementContext.prototype.GLOBAL = function() {
    return this.getToken(SqlParser.GLOBAL, 0);
};

SetTransactionStatementContext.prototype.SESSION = function() {
    return this.getToken(SqlParser.SESSION, 0);
};

SetTransactionStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSetTransactionStatement(this);
	}
};

SetTransactionStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSetTransactionStatement(this);
	}
};

SetTransactionStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSetTransactionStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SetTransactionStatementContext = SetTransactionStatementContext;

SqlParser.prototype.setTransactionStatement = function() {

    var localctx = new SetTransactionStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 276, SqlParser.RULE_setTransactionStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3762;
        this.match(SqlParser.SET);
        this.state = 3764;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.GLOBAL || _la===SqlParser.SESSION) {
            this.state = 3763;
            localctx.transactionContext = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.GLOBAL || _la===SqlParser.SESSION)) {
                localctx.transactionContext = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 3766;
        this.match(SqlParser.TRANSACTION);
        this.state = 3767;
        this.transactionOption();
        this.state = 3772;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 3768;
            this.match(SqlParser.COMMA);
            this.state = 3769;
            this.transactionOption();
            this.state = 3774;
            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 TransactionModeContext(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_transactionMode;
    return this;
}

TransactionModeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TransactionModeContext.prototype.constructor = TransactionModeContext;

TransactionModeContext.prototype.WITH = function() {
    return this.getToken(SqlParser.WITH, 0);
};

TransactionModeContext.prototype.CONSISTENT = function() {
    return this.getToken(SqlParser.CONSISTENT, 0);
};

TransactionModeContext.prototype.SNAPSHOT = function() {
    return this.getToken(SqlParser.SNAPSHOT, 0);
};

TransactionModeContext.prototype.READ = function() {
    return this.getToken(SqlParser.READ, 0);
};

TransactionModeContext.prototype.WRITE = function() {
    return this.getToken(SqlParser.WRITE, 0);
};

TransactionModeContext.prototype.ONLY = function() {
    return this.getToken(SqlParser.ONLY, 0);
};

TransactionModeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTransactionMode(this);
	}
};

TransactionModeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTransactionMode(this);
	}
};

TransactionModeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTransactionMode(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.TransactionModeContext = TransactionModeContext;

SqlParser.prototype.transactionMode = function() {

    var localctx = new TransactionModeContext(this, this._ctx, this.state);
    this.enterRule(localctx, 278, SqlParser.RULE_transactionMode);
    try {
        this.state = 3782;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,552,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 3775;
            this.match(SqlParser.WITH);
            this.state = 3776;
            this.match(SqlParser.CONSISTENT);
            this.state = 3777;
            this.match(SqlParser.SNAPSHOT);
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 3778;
            this.match(SqlParser.READ);
            this.state = 3779;
            this.match(SqlParser.WRITE);
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 3780;
            this.match(SqlParser.READ);
            this.state = 3781;
            this.match(SqlParser.ONLY);
            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 LockTableElementContext(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_lockTableElement;
    return this;
}

LockTableElementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LockTableElementContext.prototype.constructor = LockTableElementContext;

LockTableElementContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

LockTableElementContext.prototype.lockAction = function() {
    return this.getTypedRuleContext(LockActionContext,0);
};

LockTableElementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

LockTableElementContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};

LockTableElementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLockTableElement(this);
	}
};

LockTableElementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLockTableElement(this);
	}
};

LockTableElementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLockTableElement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LockTableElementContext = LockTableElementContext;

SqlParser.prototype.lockTableElement = function() {

    var localctx = new LockTableElementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 280, SqlParser.RULE_lockTableElement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3784;
        this.tableName();
        this.state = 3789;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.AS || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
            this.state = 3786;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.AS) {
                this.state = 3785;
                this.match(SqlParser.AS);
            }

            this.state = 3788;
            this.uid();
        }

        this.state = 3791;
        this.lockAction();
    } 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 LockActionContext(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_lockAction;
    return this;
}

LockActionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LockActionContext.prototype.constructor = LockActionContext;

LockActionContext.prototype.READ = function() {
    return this.getToken(SqlParser.READ, 0);
};

LockActionContext.prototype.LOCAL = function() {
    return this.getToken(SqlParser.LOCAL, 0);
};

LockActionContext.prototype.WRITE = function() {
    return this.getToken(SqlParser.WRITE, 0);
};

LockActionContext.prototype.LOW_PRIORITY = function() {
    return this.getToken(SqlParser.LOW_PRIORITY, 0);
};

LockActionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLockAction(this);
	}
};

LockActionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLockAction(this);
	}
};

LockActionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLockAction(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LockActionContext = LockActionContext;

SqlParser.prototype.lockAction = function() {

    var localctx = new LockActionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 282, SqlParser.RULE_lockAction);
    var _la = 0; // Token type
    try {
        this.state = 3801;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.READ:
            this.enterOuterAlt(localctx, 1);
            this.state = 3793;
            this.match(SqlParser.READ);
            this.state = 3795;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LOCAL) {
                this.state = 3794;
                this.match(SqlParser.LOCAL);
            }

            break;
        case SqlParser.LOW_PRIORITY:
        case SqlParser.WRITE:
            this.enterOuterAlt(localctx, 2);
            this.state = 3798;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LOW_PRIORITY) {
                this.state = 3797;
                this.match(SqlParser.LOW_PRIORITY);
            }

            this.state = 3800;
            this.match(SqlParser.WRITE);
            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 TransactionOptionContext(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_transactionOption;
    return this;
}

TransactionOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TransactionOptionContext.prototype.constructor = TransactionOptionContext;

TransactionOptionContext.prototype.ISOLATION = function() {
    return this.getToken(SqlParser.ISOLATION, 0);
};

TransactionOptionContext.prototype.LEVEL = function() {
    return this.getToken(SqlParser.LEVEL, 0);
};

TransactionOptionContext.prototype.transactionLevel = function() {
    return this.getTypedRuleContext(TransactionLevelContext,0);
};

TransactionOptionContext.prototype.READ = function() {
    return this.getToken(SqlParser.READ, 0);
};

TransactionOptionContext.prototype.WRITE = function() {
    return this.getToken(SqlParser.WRITE, 0);
};

TransactionOptionContext.prototype.ONLY = function() {
    return this.getToken(SqlParser.ONLY, 0);
};

TransactionOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTransactionOption(this);
	}
};

TransactionOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTransactionOption(this);
	}
};

TransactionOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTransactionOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.TransactionOptionContext = TransactionOptionContext;

SqlParser.prototype.transactionOption = function() {

    var localctx = new TransactionOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 284, SqlParser.RULE_transactionOption);
    try {
        this.state = 3810;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,558,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 3803;
            this.match(SqlParser.ISOLATION);
            this.state = 3804;
            this.match(SqlParser.LEVEL);
            this.state = 3805;
            this.transactionLevel();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 3806;
            this.match(SqlParser.READ);
            this.state = 3807;
            this.match(SqlParser.WRITE);
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 3808;
            this.match(SqlParser.READ);
            this.state = 3809;
            this.match(SqlParser.ONLY);
            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 TransactionLevelContext(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_transactionLevel;
    return this;
}

TransactionLevelContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TransactionLevelContext.prototype.constructor = TransactionLevelContext;

TransactionLevelContext.prototype.REPEATABLE = function() {
    return this.getToken(SqlParser.REPEATABLE, 0);
};

TransactionLevelContext.prototype.READ = function() {
    return this.getToken(SqlParser.READ, 0);
};

TransactionLevelContext.prototype.COMMITTED = function() {
    return this.getToken(SqlParser.COMMITTED, 0);
};

TransactionLevelContext.prototype.UNCOMMITTED = function() {
    return this.getToken(SqlParser.UNCOMMITTED, 0);
};

TransactionLevelContext.prototype.SERIALIZABLE = function() {
    return this.getToken(SqlParser.SERIALIZABLE, 0);
};

TransactionLevelContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTransactionLevel(this);
	}
};

TransactionLevelContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTransactionLevel(this);
	}
};

TransactionLevelContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTransactionLevel(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.TransactionLevelContext = TransactionLevelContext;

SqlParser.prototype.transactionLevel = function() {

    var localctx = new TransactionLevelContext(this, this._ctx, this.state);
    this.enterRule(localctx, 286, SqlParser.RULE_transactionLevel);
    try {
        this.state = 3819;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,559,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 3812;
            this.match(SqlParser.REPEATABLE);
            this.state = 3813;
            this.match(SqlParser.READ);
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 3814;
            this.match(SqlParser.READ);
            this.state = 3815;
            this.match(SqlParser.COMMITTED);
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 3816;
            this.match(SqlParser.READ);
            this.state = 3817;
            this.match(SqlParser.UNCOMMITTED);
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 3818;
            this.match(SqlParser.SERIALIZABLE);
            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 ChangeMasterContext(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_changeMaster;
    return this;
}

ChangeMasterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ChangeMasterContext.prototype.constructor = ChangeMasterContext;

ChangeMasterContext.prototype.CHANGE = function() {
    return this.getToken(SqlParser.CHANGE, 0);
};

ChangeMasterContext.prototype.MASTER = function() {
    return this.getToken(SqlParser.MASTER, 0);
};

ChangeMasterContext.prototype.TO = function() {
    return this.getToken(SqlParser.TO, 0);
};

ChangeMasterContext.prototype.masterOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(MasterOptionContext);
    } else {
        return this.getTypedRuleContext(MasterOptionContext,i);
    }
};

ChangeMasterContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


ChangeMasterContext.prototype.channelOption = function() {
    return this.getTypedRuleContext(ChannelOptionContext,0);
};

ChangeMasterContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterChangeMaster(this);
	}
};

ChangeMasterContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitChangeMaster(this);
	}
};

ChangeMasterContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitChangeMaster(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ChangeMasterContext = ChangeMasterContext;

SqlParser.prototype.changeMaster = function() {

    var localctx = new ChangeMasterContext(this, this._ctx, this.state);
    this.enterRule(localctx, 288, SqlParser.RULE_changeMaster);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3821;
        this.match(SqlParser.CHANGE);
        this.state = 3822;
        this.match(SqlParser.MASTER);
        this.state = 3823;
        this.match(SqlParser.TO);
        this.state = 3824;
        this.masterOption();
        this.state = 3829;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 3825;
            this.match(SqlParser.COMMA);
            this.state = 3826;
            this.masterOption();
            this.state = 3831;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 3833;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.FOR) {
            this.state = 3832;
            this.channelOption();
        }

    } 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 ChangeReplicationFilterContext(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_changeReplicationFilter;
    return this;
}

ChangeReplicationFilterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ChangeReplicationFilterContext.prototype.constructor = ChangeReplicationFilterContext;

ChangeReplicationFilterContext.prototype.CHANGE = function() {
    return this.getToken(SqlParser.CHANGE, 0);
};

ChangeReplicationFilterContext.prototype.REPLICATION = function() {
    return this.getToken(SqlParser.REPLICATION, 0);
};

ChangeReplicationFilterContext.prototype.FILTER = function() {
    return this.getToken(SqlParser.FILTER, 0);
};

ChangeReplicationFilterContext.prototype.replicationFilter = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ReplicationFilterContext);
    } else {
        return this.getTypedRuleContext(ReplicationFilterContext,i);
    }
};

ChangeReplicationFilterContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


ChangeReplicationFilterContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterChangeReplicationFilter(this);
	}
};

ChangeReplicationFilterContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitChangeReplicationFilter(this);
	}
};

ChangeReplicationFilterContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitChangeReplicationFilter(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ChangeReplicationFilterContext = ChangeReplicationFilterContext;

SqlParser.prototype.changeReplicationFilter = function() {

    var localctx = new ChangeReplicationFilterContext(this, this._ctx, this.state);
    this.enterRule(localctx, 290, SqlParser.RULE_changeReplicationFilter);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3835;
        this.match(SqlParser.CHANGE);
        this.state = 3836;
        this.match(SqlParser.REPLICATION);
        this.state = 3837;
        this.match(SqlParser.FILTER);
        this.state = 3838;
        this.replicationFilter();
        this.state = 3843;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 3839;
            this.match(SqlParser.COMMA);
            this.state = 3840;
            this.replicationFilter();
            this.state = 3845;
            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 PurgeBinaryLogsContext(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_purgeBinaryLogs;
    this.purgeFormat = null; // Token
    this.fileName = null; // Token
    this.timeValue = null; // Token
    return this;
}

PurgeBinaryLogsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PurgeBinaryLogsContext.prototype.constructor = PurgeBinaryLogsContext;

PurgeBinaryLogsContext.prototype.PURGE = function() {
    return this.getToken(SqlParser.PURGE, 0);
};

PurgeBinaryLogsContext.prototype.LOGS = function() {
    return this.getToken(SqlParser.LOGS, 0);
};

PurgeBinaryLogsContext.prototype.BINARY = function() {
    return this.getToken(SqlParser.BINARY, 0);
};

PurgeBinaryLogsContext.prototype.MASTER = function() {
    return this.getToken(SqlParser.MASTER, 0);
};

PurgeBinaryLogsContext.prototype.TO = function() {
    return this.getToken(SqlParser.TO, 0);
};

PurgeBinaryLogsContext.prototype.BEFORE = function() {
    return this.getToken(SqlParser.BEFORE, 0);
};

PurgeBinaryLogsContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

PurgeBinaryLogsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPurgeBinaryLogs(this);
	}
};

PurgeBinaryLogsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPurgeBinaryLogs(this);
	}
};

PurgeBinaryLogsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPurgeBinaryLogs(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.PurgeBinaryLogsContext = PurgeBinaryLogsContext;

SqlParser.prototype.purgeBinaryLogs = function() {

    var localctx = new PurgeBinaryLogsContext(this, this._ctx, this.state);
    this.enterRule(localctx, 292, SqlParser.RULE_purgeBinaryLogs);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3846;
        this.match(SqlParser.PURGE);
        this.state = 3847;
        localctx.purgeFormat = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.BINARY || _la===SqlParser.MASTER)) {
            localctx.purgeFormat = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 3848;
        this.match(SqlParser.LOGS);
        this.state = 3853;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.TO:
            this.state = 3849;
            this.match(SqlParser.TO);
            this.state = 3850;
            localctx.fileName = this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.BEFORE:
            this.state = 3851;
            this.match(SqlParser.BEFORE);
            this.state = 3852;
            localctx.timeValue = this.match(SqlParser.STRING_LITERAL);
            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 ResetMasterContext(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_resetMaster;
    return this;
}

ResetMasterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ResetMasterContext.prototype.constructor = ResetMasterContext;

ResetMasterContext.prototype.RESET = function() {
    return this.getToken(SqlParser.RESET, 0);
};

ResetMasterContext.prototype.MASTER = function() {
    return this.getToken(SqlParser.MASTER, 0);
};

ResetMasterContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterResetMaster(this);
	}
};

ResetMasterContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitResetMaster(this);
	}
};

ResetMasterContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitResetMaster(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ResetMasterContext = ResetMasterContext;

SqlParser.prototype.resetMaster = function() {

    var localctx = new ResetMasterContext(this, this._ctx, this.state);
    this.enterRule(localctx, 294, SqlParser.RULE_resetMaster);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3855;
        this.match(SqlParser.RESET);
        this.state = 3856;
        this.match(SqlParser.MASTER);
    } 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 ResetSlaveContext(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_resetSlave;
    return this;
}

ResetSlaveContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ResetSlaveContext.prototype.constructor = ResetSlaveContext;

ResetSlaveContext.prototype.RESET = function() {
    return this.getToken(SqlParser.RESET, 0);
};

ResetSlaveContext.prototype.SLAVE = function() {
    return this.getToken(SqlParser.SLAVE, 0);
};

ResetSlaveContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};

ResetSlaveContext.prototype.channelOption = function() {
    return this.getTypedRuleContext(ChannelOptionContext,0);
};

ResetSlaveContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterResetSlave(this);
	}
};

ResetSlaveContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitResetSlave(this);
	}
};

ResetSlaveContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitResetSlave(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ResetSlaveContext = ResetSlaveContext;

SqlParser.prototype.resetSlave = function() {

    var localctx = new ResetSlaveContext(this, this._ctx, this.state);
    this.enterRule(localctx, 296, SqlParser.RULE_resetSlave);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3858;
        this.match(SqlParser.RESET);
        this.state = 3859;
        this.match(SqlParser.SLAVE);
        this.state = 3861;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ALL) {
            this.state = 3860;
            this.match(SqlParser.ALL);
        }

        this.state = 3864;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.FOR) {
            this.state = 3863;
            this.channelOption();
        }

    } 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 StartSlaveContext(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_startSlave;
    return this;
}

StartSlaveContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
StartSlaveContext.prototype.constructor = StartSlaveContext;

StartSlaveContext.prototype.START = function() {
    return this.getToken(SqlParser.START, 0);
};

StartSlaveContext.prototype.SLAVE = function() {
    return this.getToken(SqlParser.SLAVE, 0);
};

StartSlaveContext.prototype.threadType = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ThreadTypeContext);
    } else {
        return this.getTypedRuleContext(ThreadTypeContext,i);
    }
};

StartSlaveContext.prototype.UNTIL = function() {
    return this.getToken(SqlParser.UNTIL, 0);
};

StartSlaveContext.prototype.untilOption = function() {
    return this.getTypedRuleContext(UntilOptionContext,0);
};

StartSlaveContext.prototype.connectionOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ConnectionOptionContext);
    } else {
        return this.getTypedRuleContext(ConnectionOptionContext,i);
    }
};

StartSlaveContext.prototype.channelOption = function() {
    return this.getTypedRuleContext(ChannelOptionContext,0);
};

StartSlaveContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


StartSlaveContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterStartSlave(this);
	}
};

StartSlaveContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitStartSlave(this);
	}
};

StartSlaveContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitStartSlave(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.StartSlaveContext = StartSlaveContext;

SqlParser.prototype.startSlave = function() {

    var localctx = new StartSlaveContext(this, this._ctx, this.state);
    this.enterRule(localctx, 298, SqlParser.RULE_startSlave);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3866;
        this.match(SqlParser.START);
        this.state = 3867;
        this.match(SqlParser.SLAVE);
        this.state = 3876;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IO_THREAD || _la===SqlParser.SQL_THREAD) {
            this.state = 3868;
            this.threadType();
            this.state = 3873;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 3869;
                this.match(SqlParser.COMMA);
                this.state = 3870;
                this.threadType();
                this.state = 3875;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
        }

        this.state = 3880;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.UNTIL) {
            this.state = 3878;
            this.match(SqlParser.UNTIL);
            this.state = 3879;
            this.untilOption();
        }

        this.state = 3885;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.DEFAULT_AUTH || _la===SqlParser.PASSWORD || _la===SqlParser.PLUGIN_DIR || _la===SqlParser.USER) {
            this.state = 3882;
            this.connectionOption();
            this.state = 3887;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 3889;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.FOR) {
            this.state = 3888;
            this.channelOption();
        }

    } 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 StopSlaveContext(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_stopSlave;
    return this;
}

StopSlaveContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
StopSlaveContext.prototype.constructor = StopSlaveContext;

StopSlaveContext.prototype.STOP = function() {
    return this.getToken(SqlParser.STOP, 0);
};

StopSlaveContext.prototype.SLAVE = function() {
    return this.getToken(SqlParser.SLAVE, 0);
};

StopSlaveContext.prototype.threadType = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ThreadTypeContext);
    } else {
        return this.getTypedRuleContext(ThreadTypeContext,i);
    }
};

StopSlaveContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


StopSlaveContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterStopSlave(this);
	}
};

StopSlaveContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitStopSlave(this);
	}
};

StopSlaveContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitStopSlave(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.StopSlaveContext = StopSlaveContext;

SqlParser.prototype.stopSlave = function() {

    var localctx = new StopSlaveContext(this, this._ctx, this.state);
    this.enterRule(localctx, 300, SqlParser.RULE_stopSlave);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3891;
        this.match(SqlParser.STOP);
        this.state = 3892;
        this.match(SqlParser.SLAVE);
        this.state = 3901;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IO_THREAD || _la===SqlParser.SQL_THREAD) {
            this.state = 3893;
            this.threadType();
            this.state = 3898;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 3894;
                this.match(SqlParser.COMMA);
                this.state = 3895;
                this.threadType();
                this.state = 3900;
                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 StartGroupReplicationContext(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_startGroupReplication;
    return this;
}

StartGroupReplicationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
StartGroupReplicationContext.prototype.constructor = StartGroupReplicationContext;

StartGroupReplicationContext.prototype.START = function() {
    return this.getToken(SqlParser.START, 0);
};

StartGroupReplicationContext.prototype.GROUP_REPLICATION = function() {
    return this.getToken(SqlParser.GROUP_REPLICATION, 0);
};

StartGroupReplicationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterStartGroupReplication(this);
	}
};

StartGroupReplicationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitStartGroupReplication(this);
	}
};

StartGroupReplicationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitStartGroupReplication(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.StartGroupReplicationContext = StartGroupReplicationContext;

SqlParser.prototype.startGroupReplication = function() {

    var localctx = new StartGroupReplicationContext(this, this._ctx, this.state);
    this.enterRule(localctx, 302, SqlParser.RULE_startGroupReplication);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3903;
        this.match(SqlParser.START);
        this.state = 3904;
        this.match(SqlParser.GROUP_REPLICATION);
    } 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 StopGroupReplicationContext(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_stopGroupReplication;
    return this;
}

StopGroupReplicationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
StopGroupReplicationContext.prototype.constructor = StopGroupReplicationContext;

StopGroupReplicationContext.prototype.STOP = function() {
    return this.getToken(SqlParser.STOP, 0);
};

StopGroupReplicationContext.prototype.GROUP_REPLICATION = function() {
    return this.getToken(SqlParser.GROUP_REPLICATION, 0);
};

StopGroupReplicationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterStopGroupReplication(this);
	}
};

StopGroupReplicationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitStopGroupReplication(this);
	}
};

StopGroupReplicationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitStopGroupReplication(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.StopGroupReplicationContext = StopGroupReplicationContext;

SqlParser.prototype.stopGroupReplication = function() {

    var localctx = new StopGroupReplicationContext(this, this._ctx, this.state);
    this.enterRule(localctx, 304, SqlParser.RULE_stopGroupReplication);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3906;
        this.match(SqlParser.STOP);
        this.state = 3907;
        this.match(SqlParser.GROUP_REPLICATION);
    } 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 MasterOptionContext(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_masterOption;
    return this;
}

MasterOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
MasterOptionContext.prototype.constructor = MasterOptionContext;


 
MasterOptionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function MasterStringOptionContext(parser, ctx) {
	MasterOptionContext.call(this, parser);
    MasterOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

MasterStringOptionContext.prototype = Object.create(MasterOptionContext.prototype);
MasterStringOptionContext.prototype.constructor = MasterStringOptionContext;

SqlParser.MasterStringOptionContext = MasterStringOptionContext;

MasterStringOptionContext.prototype.stringMasterOption = function() {
    return this.getTypedRuleContext(StringMasterOptionContext,0);
};

MasterStringOptionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

MasterStringOptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};
MasterStringOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterMasterStringOption(this);
	}
};

MasterStringOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitMasterStringOption(this);
	}
};

MasterStringOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitMasterStringOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function MasterRealOptionContext(parser, ctx) {
	MasterOptionContext.call(this, parser);
    MasterOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

MasterRealOptionContext.prototype = Object.create(MasterOptionContext.prototype);
MasterRealOptionContext.prototype.constructor = MasterRealOptionContext;

SqlParser.MasterRealOptionContext = MasterRealOptionContext;

MasterRealOptionContext.prototype.MASTER_HEARTBEAT_PERIOD = function() {
    return this.getToken(SqlParser.MASTER_HEARTBEAT_PERIOD, 0);
};

MasterRealOptionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

MasterRealOptionContext.prototype.REAL_LITERAL = function() {
    return this.getToken(SqlParser.REAL_LITERAL, 0);
};
MasterRealOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterMasterRealOption(this);
	}
};

MasterRealOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitMasterRealOption(this);
	}
};

MasterRealOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitMasterRealOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function MasterBoolOptionContext(parser, ctx) {
	MasterOptionContext.call(this, parser);
    this.boolVal = null; // Token;
    MasterOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

MasterBoolOptionContext.prototype = Object.create(MasterOptionContext.prototype);
MasterBoolOptionContext.prototype.constructor = MasterBoolOptionContext;

SqlParser.MasterBoolOptionContext = MasterBoolOptionContext;

MasterBoolOptionContext.prototype.boolMasterOption = function() {
    return this.getTypedRuleContext(BoolMasterOptionContext,0);
};

MasterBoolOptionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

MasterBoolOptionContext.prototype.ZERO_DECIMAL = function() {
    return this.getToken(SqlParser.ZERO_DECIMAL, 0);
};

MasterBoolOptionContext.prototype.ONE_DECIMAL = function() {
    return this.getToken(SqlParser.ONE_DECIMAL, 0);
};
MasterBoolOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterMasterBoolOption(this);
	}
};

MasterBoolOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitMasterBoolOption(this);
	}
};

MasterBoolOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitMasterBoolOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function MasterUidListOptionContext(parser, ctx) {
	MasterOptionContext.call(this, parser);
    MasterOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

MasterUidListOptionContext.prototype = Object.create(MasterOptionContext.prototype);
MasterUidListOptionContext.prototype.constructor = MasterUidListOptionContext;

SqlParser.MasterUidListOptionContext = MasterUidListOptionContext;

MasterUidListOptionContext.prototype.IGNORE_SERVER_IDS = function() {
    return this.getToken(SqlParser.IGNORE_SERVER_IDS, 0);
};

MasterUidListOptionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

MasterUidListOptionContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

MasterUidListOptionContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

MasterUidListOptionContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

MasterUidListOptionContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

MasterUidListOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterMasterUidListOption(this);
	}
};

MasterUidListOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitMasterUidListOption(this);
	}
};

MasterUidListOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitMasterUidListOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function MasterDecimalOptionContext(parser, ctx) {
	MasterOptionContext.call(this, parser);
    MasterOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

MasterDecimalOptionContext.prototype = Object.create(MasterOptionContext.prototype);
MasterDecimalOptionContext.prototype.constructor = MasterDecimalOptionContext;

SqlParser.MasterDecimalOptionContext = MasterDecimalOptionContext;

MasterDecimalOptionContext.prototype.decimalMasterOption = function() {
    return this.getTypedRuleContext(DecimalMasterOptionContext,0);
};

MasterDecimalOptionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

MasterDecimalOptionContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};
MasterDecimalOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterMasterDecimalOption(this);
	}
};

MasterDecimalOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitMasterDecimalOption(this);
	}
};

MasterDecimalOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitMasterDecimalOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.MasterOptionContext = MasterOptionContext;

SqlParser.prototype.masterOption = function() {

    var localctx = new MasterOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 306, SqlParser.RULE_masterOption);
    var _la = 0; // Token type
    try {
        this.state = 3938;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.MASTER_BIND:
        case SqlParser.MASTER_HOST:
        case SqlParser.MASTER_LOG_FILE:
        case SqlParser.MASTER_PASSWORD:
        case SqlParser.MASTER_SSL_CA:
        case SqlParser.MASTER_SSL_CAPATH:
        case SqlParser.MASTER_SSL_CERT:
        case SqlParser.MASTER_SSL_CIPHER:
        case SqlParser.MASTER_SSL_CRL:
        case SqlParser.MASTER_SSL_CRLPATH:
        case SqlParser.MASTER_SSL_KEY:
        case SqlParser.MASTER_TLS_VERSION:
        case SqlParser.MASTER_USER:
        case SqlParser.RELAY_LOG_FILE:
            localctx = new MasterStringOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 3909;
            this.stringMasterOption();
            this.state = 3910;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 3911;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.MASTER_CONNECT_RETRY:
        case SqlParser.MASTER_DELAY:
        case SqlParser.MASTER_LOG_POS:
        case SqlParser.MASTER_PORT:
        case SqlParser.MASTER_RETRY_COUNT:
        case SqlParser.RELAY_LOG_POS:
            localctx = new MasterDecimalOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 3913;
            this.decimalMasterOption();
            this.state = 3914;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 3915;
            this.decimalLiteral();
            break;
        case SqlParser.MASTER_SSL_VERIFY_SERVER_CERT:
        case SqlParser.MASTER_AUTO_POSITION:
        case SqlParser.MASTER_SSL:
            localctx = new MasterBoolOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 3917;
            this.boolMasterOption();
            this.state = 3918;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 3919;
            localctx.boolVal = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.ZERO_DECIMAL || _la===SqlParser.ONE_DECIMAL)) {
                localctx.boolVal = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;
        case SqlParser.MASTER_HEARTBEAT_PERIOD:
            localctx = new MasterRealOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 3921;
            this.match(SqlParser.MASTER_HEARTBEAT_PERIOD);
            this.state = 3922;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 3923;
            this.match(SqlParser.REAL_LITERAL);
            break;
        case SqlParser.IGNORE_SERVER_IDS:
            localctx = new MasterUidListOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 3924;
            this.match(SqlParser.IGNORE_SERVER_IDS);
            this.state = 3925;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 3926;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3935;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
                this.state = 3927;
                this.uid();
                this.state = 3932;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                while(_la===SqlParser.COMMA) {
                    this.state = 3928;
                    this.match(SqlParser.COMMA);
                    this.state = 3929;
                    this.uid();
                    this.state = 3934;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                }
            }

            this.state = 3937;
            this.match(SqlParser.RR_BRACKET);
            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 StringMasterOptionContext(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_stringMasterOption;
    return this;
}

StringMasterOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
StringMasterOptionContext.prototype.constructor = StringMasterOptionContext;

StringMasterOptionContext.prototype.MASTER_BIND = function() {
    return this.getToken(SqlParser.MASTER_BIND, 0);
};

StringMasterOptionContext.prototype.MASTER_HOST = function() {
    return this.getToken(SqlParser.MASTER_HOST, 0);
};

StringMasterOptionContext.prototype.MASTER_USER = function() {
    return this.getToken(SqlParser.MASTER_USER, 0);
};

StringMasterOptionContext.prototype.MASTER_PASSWORD = function() {
    return this.getToken(SqlParser.MASTER_PASSWORD, 0);
};

StringMasterOptionContext.prototype.MASTER_LOG_FILE = function() {
    return this.getToken(SqlParser.MASTER_LOG_FILE, 0);
};

StringMasterOptionContext.prototype.RELAY_LOG_FILE = function() {
    return this.getToken(SqlParser.RELAY_LOG_FILE, 0);
};

StringMasterOptionContext.prototype.MASTER_SSL_CA = function() {
    return this.getToken(SqlParser.MASTER_SSL_CA, 0);
};

StringMasterOptionContext.prototype.MASTER_SSL_CAPATH = function() {
    return this.getToken(SqlParser.MASTER_SSL_CAPATH, 0);
};

StringMasterOptionContext.prototype.MASTER_SSL_CERT = function() {
    return this.getToken(SqlParser.MASTER_SSL_CERT, 0);
};

StringMasterOptionContext.prototype.MASTER_SSL_CRL = function() {
    return this.getToken(SqlParser.MASTER_SSL_CRL, 0);
};

StringMasterOptionContext.prototype.MASTER_SSL_CRLPATH = function() {
    return this.getToken(SqlParser.MASTER_SSL_CRLPATH, 0);
};

StringMasterOptionContext.prototype.MASTER_SSL_KEY = function() {
    return this.getToken(SqlParser.MASTER_SSL_KEY, 0);
};

StringMasterOptionContext.prototype.MASTER_SSL_CIPHER = function() {
    return this.getToken(SqlParser.MASTER_SSL_CIPHER, 0);
};

StringMasterOptionContext.prototype.MASTER_TLS_VERSION = function() {
    return this.getToken(SqlParser.MASTER_TLS_VERSION, 0);
};

StringMasterOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterStringMasterOption(this);
	}
};

StringMasterOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitStringMasterOption(this);
	}
};

StringMasterOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitStringMasterOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.StringMasterOptionContext = StringMasterOptionContext;

SqlParser.prototype.stringMasterOption = function() {

    var localctx = new StringMasterOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 308, SqlParser.RULE_stringMasterOption);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3940;
        _la = this._input.LA(1);
        if(!(_la===SqlParser.MASTER_BIND || ((((_la - 410)) & ~0x1f) == 0 && ((1 << (_la - 410)) & ((1 << (SqlParser.MASTER_HOST - 410)) | (1 << (SqlParser.MASTER_LOG_FILE - 410)) | (1 << (SqlParser.MASTER_PASSWORD - 410)) | (1 << (SqlParser.MASTER_SSL_CA - 410)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 410)) | (1 << (SqlParser.MASTER_SSL_CERT - 410)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 410)) | (1 << (SqlParser.MASTER_SSL_CRL - 410)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 410)) | (1 << (SqlParser.MASTER_SSL_KEY - 410)) | (1 << (SqlParser.MASTER_TLS_VERSION - 410)) | (1 << (SqlParser.MASTER_USER - 410)))) !== 0) || _la===SqlParser.RELAY_LOG_FILE)) {
        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 DecimalMasterOptionContext(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_decimalMasterOption;
    return this;
}

DecimalMasterOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DecimalMasterOptionContext.prototype.constructor = DecimalMasterOptionContext;

DecimalMasterOptionContext.prototype.MASTER_PORT = function() {
    return this.getToken(SqlParser.MASTER_PORT, 0);
};

DecimalMasterOptionContext.prototype.MASTER_CONNECT_RETRY = function() {
    return this.getToken(SqlParser.MASTER_CONNECT_RETRY, 0);
};

DecimalMasterOptionContext.prototype.MASTER_RETRY_COUNT = function() {
    return this.getToken(SqlParser.MASTER_RETRY_COUNT, 0);
};

DecimalMasterOptionContext.prototype.MASTER_DELAY = function() {
    return this.getToken(SqlParser.MASTER_DELAY, 0);
};

DecimalMasterOptionContext.prototype.MASTER_LOG_POS = function() {
    return this.getToken(SqlParser.MASTER_LOG_POS, 0);
};

DecimalMasterOptionContext.prototype.RELAY_LOG_POS = function() {
    return this.getToken(SqlParser.RELAY_LOG_POS, 0);
};

DecimalMasterOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDecimalMasterOption(this);
	}
};

DecimalMasterOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDecimalMasterOption(this);
	}
};

DecimalMasterOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDecimalMasterOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DecimalMasterOptionContext = DecimalMasterOptionContext;

SqlParser.prototype.decimalMasterOption = function() {

    var localctx = new DecimalMasterOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 310, SqlParser.RULE_decimalMasterOption);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3942;
        _la = this._input.LA(1);
        if(!(((((_la - 407)) & ~0x1f) == 0 && ((1 << (_la - 407)) & ((1 << (SqlParser.MASTER_CONNECT_RETRY - 407)) | (1 << (SqlParser.MASTER_DELAY - 407)) | (1 << (SqlParser.MASTER_LOG_POS - 407)) | (1 << (SqlParser.MASTER_PORT - 407)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 407)))) !== 0) || _la===SqlParser.RELAY_LOG_POS)) {
        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 BoolMasterOptionContext(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_boolMasterOption;
    return this;
}

BoolMasterOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
BoolMasterOptionContext.prototype.constructor = BoolMasterOptionContext;

BoolMasterOptionContext.prototype.MASTER_AUTO_POSITION = function() {
    return this.getToken(SqlParser.MASTER_AUTO_POSITION, 0);
};

BoolMasterOptionContext.prototype.MASTER_SSL = function() {
    return this.getToken(SqlParser.MASTER_SSL, 0);
};

BoolMasterOptionContext.prototype.MASTER_SSL_VERIFY_SERVER_CERT = function() {
    return this.getToken(SqlParser.MASTER_SSL_VERIFY_SERVER_CERT, 0);
};

BoolMasterOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterBoolMasterOption(this);
	}
};

BoolMasterOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitBoolMasterOption(this);
	}
};

BoolMasterOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitBoolMasterOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.BoolMasterOptionContext = BoolMasterOptionContext;

SqlParser.prototype.boolMasterOption = function() {

    var localctx = new BoolMasterOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 312, SqlParser.RULE_boolMasterOption);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3944;
        _la = this._input.LA(1);
        if(!(_la===SqlParser.MASTER_SSL_VERIFY_SERVER_CERT || _la===SqlParser.MASTER_AUTO_POSITION || _la===SqlParser.MASTER_SSL)) {
        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 ChannelOptionContext(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_channelOption;
    return this;
}

ChannelOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ChannelOptionContext.prototype.constructor = ChannelOptionContext;

ChannelOptionContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

ChannelOptionContext.prototype.CHANNEL = function() {
    return this.getToken(SqlParser.CHANNEL, 0);
};

ChannelOptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

ChannelOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterChannelOption(this);
	}
};

ChannelOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitChannelOption(this);
	}
};

ChannelOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitChannelOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ChannelOptionContext = ChannelOptionContext;

SqlParser.prototype.channelOption = function() {

    var localctx = new ChannelOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 314, SqlParser.RULE_channelOption);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 3946;
        this.match(SqlParser.FOR);
        this.state = 3947;
        this.match(SqlParser.CHANNEL);
        this.state = 3948;
        this.match(SqlParser.STRING_LITERAL);
    } 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 ReplicationFilterContext(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_replicationFilter;
    return this;
}

ReplicationFilterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ReplicationFilterContext.prototype.constructor = ReplicationFilterContext;


 
ReplicationFilterContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function WildIgnoreTableReplicationContext(parser, ctx) {
	ReplicationFilterContext.call(this, parser);
    ReplicationFilterContext.prototype.copyFrom.call(this, ctx);
    return this;
}

WildIgnoreTableReplicationContext.prototype = Object.create(ReplicationFilterContext.prototype);
WildIgnoreTableReplicationContext.prototype.constructor = WildIgnoreTableReplicationContext;

SqlParser.WildIgnoreTableReplicationContext = WildIgnoreTableReplicationContext;

WildIgnoreTableReplicationContext.prototype.REPLICATE_WILD_IGNORE_TABLE = function() {
    return this.getToken(SqlParser.REPLICATE_WILD_IGNORE_TABLE, 0);
};

WildIgnoreTableReplicationContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

WildIgnoreTableReplicationContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

WildIgnoreTableReplicationContext.prototype.simpleStrings = function() {
    return this.getTypedRuleContext(SimpleStringsContext,0);
};

WildIgnoreTableReplicationContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};
WildIgnoreTableReplicationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterWildIgnoreTableReplication(this);
	}
};

WildIgnoreTableReplicationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitWildIgnoreTableReplication(this);
	}
};

WildIgnoreTableReplicationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitWildIgnoreTableReplication(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function DoTableReplicationContext(parser, ctx) {
	ReplicationFilterContext.call(this, parser);
    ReplicationFilterContext.prototype.copyFrom.call(this, ctx);
    return this;
}

DoTableReplicationContext.prototype = Object.create(ReplicationFilterContext.prototype);
DoTableReplicationContext.prototype.constructor = DoTableReplicationContext;

SqlParser.DoTableReplicationContext = DoTableReplicationContext;

DoTableReplicationContext.prototype.REPLICATE_DO_TABLE = function() {
    return this.getToken(SqlParser.REPLICATE_DO_TABLE, 0);
};

DoTableReplicationContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

DoTableReplicationContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

DoTableReplicationContext.prototype.tables = function() {
    return this.getTypedRuleContext(TablesContext,0);
};

DoTableReplicationContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};
DoTableReplicationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDoTableReplication(this);
	}
};

DoTableReplicationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDoTableReplication(this);
	}
};

DoTableReplicationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDoTableReplication(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function IgnoreTableReplicationContext(parser, ctx) {
	ReplicationFilterContext.call(this, parser);
    ReplicationFilterContext.prototype.copyFrom.call(this, ctx);
    return this;
}

IgnoreTableReplicationContext.prototype = Object.create(ReplicationFilterContext.prototype);
IgnoreTableReplicationContext.prototype.constructor = IgnoreTableReplicationContext;

SqlParser.IgnoreTableReplicationContext = IgnoreTableReplicationContext;

IgnoreTableReplicationContext.prototype.REPLICATE_IGNORE_TABLE = function() {
    return this.getToken(SqlParser.REPLICATE_IGNORE_TABLE, 0);
};

IgnoreTableReplicationContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

IgnoreTableReplicationContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

IgnoreTableReplicationContext.prototype.tables = function() {
    return this.getTypedRuleContext(TablesContext,0);
};

IgnoreTableReplicationContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};
IgnoreTableReplicationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIgnoreTableReplication(this);
	}
};

IgnoreTableReplicationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIgnoreTableReplication(this);
	}
};

IgnoreTableReplicationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIgnoreTableReplication(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function RewriteDbReplicationContext(parser, ctx) {
	ReplicationFilterContext.call(this, parser);
    ReplicationFilterContext.prototype.copyFrom.call(this, ctx);
    return this;
}

RewriteDbReplicationContext.prototype = Object.create(ReplicationFilterContext.prototype);
RewriteDbReplicationContext.prototype.constructor = RewriteDbReplicationContext;

SqlParser.RewriteDbReplicationContext = RewriteDbReplicationContext;

RewriteDbReplicationContext.prototype.REPLICATE_REWRITE_DB = function() {
    return this.getToken(SqlParser.REPLICATE_REWRITE_DB, 0);
};

RewriteDbReplicationContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

RewriteDbReplicationContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

RewriteDbReplicationContext.prototype.tablePair = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TablePairContext);
    } else {
        return this.getTypedRuleContext(TablePairContext,i);
    }
};

RewriteDbReplicationContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

RewriteDbReplicationContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

RewriteDbReplicationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRewriteDbReplication(this);
	}
};

RewriteDbReplicationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRewriteDbReplication(this);
	}
};

RewriteDbReplicationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRewriteDbReplication(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function DoDbReplicationContext(parser, ctx) {
	ReplicationFilterContext.call(this, parser);
    ReplicationFilterContext.prototype.copyFrom.call(this, ctx);
    return this;
}

DoDbReplicationContext.prototype = Object.create(ReplicationFilterContext.prototype);
DoDbReplicationContext.prototype.constructor = DoDbReplicationContext;

SqlParser.DoDbReplicationContext = DoDbReplicationContext;

DoDbReplicationContext.prototype.REPLICATE_DO_DB = function() {
    return this.getToken(SqlParser.REPLICATE_DO_DB, 0);
};

DoDbReplicationContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

DoDbReplicationContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

DoDbReplicationContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

DoDbReplicationContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};
DoDbReplicationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDoDbReplication(this);
	}
};

DoDbReplicationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDoDbReplication(this);
	}
};

DoDbReplicationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDoDbReplication(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function IgnoreDbReplicationContext(parser, ctx) {
	ReplicationFilterContext.call(this, parser);
    ReplicationFilterContext.prototype.copyFrom.call(this, ctx);
    return this;
}

IgnoreDbReplicationContext.prototype = Object.create(ReplicationFilterContext.prototype);
IgnoreDbReplicationContext.prototype.constructor = IgnoreDbReplicationContext;

SqlParser.IgnoreDbReplicationContext = IgnoreDbReplicationContext;

IgnoreDbReplicationContext.prototype.REPLICATE_IGNORE_DB = function() {
    return this.getToken(SqlParser.REPLICATE_IGNORE_DB, 0);
};

IgnoreDbReplicationContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

IgnoreDbReplicationContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

IgnoreDbReplicationContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

IgnoreDbReplicationContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};
IgnoreDbReplicationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIgnoreDbReplication(this);
	}
};

IgnoreDbReplicationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIgnoreDbReplication(this);
	}
};

IgnoreDbReplicationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIgnoreDbReplication(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function WildDoTableReplicationContext(parser, ctx) {
	ReplicationFilterContext.call(this, parser);
    ReplicationFilterContext.prototype.copyFrom.call(this, ctx);
    return this;
}

WildDoTableReplicationContext.prototype = Object.create(ReplicationFilterContext.prototype);
WildDoTableReplicationContext.prototype.constructor = WildDoTableReplicationContext;

SqlParser.WildDoTableReplicationContext = WildDoTableReplicationContext;

WildDoTableReplicationContext.prototype.REPLICATE_WILD_DO_TABLE = function() {
    return this.getToken(SqlParser.REPLICATE_WILD_DO_TABLE, 0);
};

WildDoTableReplicationContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

WildDoTableReplicationContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

WildDoTableReplicationContext.prototype.simpleStrings = function() {
    return this.getTypedRuleContext(SimpleStringsContext,0);
};

WildDoTableReplicationContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};
WildDoTableReplicationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterWildDoTableReplication(this);
	}
};

WildDoTableReplicationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitWildDoTableReplication(this);
	}
};

WildDoTableReplicationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitWildDoTableReplication(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.ReplicationFilterContext = ReplicationFilterContext;

SqlParser.prototype.replicationFilter = function() {

    var localctx = new ReplicationFilterContext(this, this._ctx, this.state);
    this.enterRule(localctx, 316, SqlParser.RULE_replicationFilter);
    var _la = 0; // Token type
    try {
        this.state = 3999;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.REPLICATE_DO_DB:
            localctx = new DoDbReplicationContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 3950;
            this.match(SqlParser.REPLICATE_DO_DB);
            this.state = 3951;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 3952;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3953;
            this.uidList();
            this.state = 3954;
            this.match(SqlParser.RR_BRACKET);
            break;
        case SqlParser.REPLICATE_IGNORE_DB:
            localctx = new IgnoreDbReplicationContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 3956;
            this.match(SqlParser.REPLICATE_IGNORE_DB);
            this.state = 3957;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 3958;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3959;
            this.uidList();
            this.state = 3960;
            this.match(SqlParser.RR_BRACKET);
            break;
        case SqlParser.REPLICATE_DO_TABLE:
            localctx = new DoTableReplicationContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 3962;
            this.match(SqlParser.REPLICATE_DO_TABLE);
            this.state = 3963;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 3964;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3965;
            this.tables();
            this.state = 3966;
            this.match(SqlParser.RR_BRACKET);
            break;
        case SqlParser.REPLICATE_IGNORE_TABLE:
            localctx = new IgnoreTableReplicationContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 3968;
            this.match(SqlParser.REPLICATE_IGNORE_TABLE);
            this.state = 3969;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 3970;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3971;
            this.tables();
            this.state = 3972;
            this.match(SqlParser.RR_BRACKET);
            break;
        case SqlParser.REPLICATE_WILD_DO_TABLE:
            localctx = new WildDoTableReplicationContext(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 3974;
            this.match(SqlParser.REPLICATE_WILD_DO_TABLE);
            this.state = 3975;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 3976;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3977;
            this.simpleStrings();
            this.state = 3978;
            this.match(SqlParser.RR_BRACKET);
            break;
        case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
            localctx = new WildIgnoreTableReplicationContext(this, localctx);
            this.enterOuterAlt(localctx, 6);
            this.state = 3980;
            this.match(SqlParser.REPLICATE_WILD_IGNORE_TABLE);
            this.state = 3981;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 3982;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3983;
            this.simpleStrings();
            this.state = 3984;
            this.match(SqlParser.RR_BRACKET);
            break;
        case SqlParser.REPLICATE_REWRITE_DB:
            localctx = new RewriteDbReplicationContext(this, localctx);
            this.enterOuterAlt(localctx, 7);
            this.state = 3986;
            this.match(SqlParser.REPLICATE_REWRITE_DB);
            this.state = 3987;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 3988;
            this.match(SqlParser.LR_BRACKET);
            this.state = 3989;
            this.tablePair();
            this.state = 3994;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 3990;
                this.match(SqlParser.COMMA);
                this.state = 3991;
                this.tablePair();
                this.state = 3996;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 3997;
            this.match(SqlParser.RR_BRACKET);
            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 TablePairContext(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_tablePair;
    this.firstTable = null; // TableNameContext
    this.secondTable = null; // TableNameContext
    return this;
}

TablePairContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TablePairContext.prototype.constructor = TablePairContext;

TablePairContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

TablePairContext.prototype.COMMA = function() {
    return this.getToken(SqlParser.COMMA, 0);
};

TablePairContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

TablePairContext.prototype.tableName = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TableNameContext);
    } else {
        return this.getTypedRuleContext(TableNameContext,i);
    }
};

TablePairContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTablePair(this);
	}
};

TablePairContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTablePair(this);
	}
};

TablePairContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTablePair(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.TablePairContext = TablePairContext;

SqlParser.prototype.tablePair = function() {

    var localctx = new TablePairContext(this, this._ctx, this.state);
    this.enterRule(localctx, 318, SqlParser.RULE_tablePair);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4001;
        this.match(SqlParser.LR_BRACKET);
        this.state = 4002;
        localctx.firstTable = this.tableName();
        this.state = 4003;
        this.match(SqlParser.COMMA);
        this.state = 4004;
        localctx.secondTable = this.tableName();
        this.state = 4005;
        this.match(SqlParser.RR_BRACKET);
    } 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 ThreadTypeContext(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_threadType;
    return this;
}

ThreadTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ThreadTypeContext.prototype.constructor = ThreadTypeContext;

ThreadTypeContext.prototype.IO_THREAD = function() {
    return this.getToken(SqlParser.IO_THREAD, 0);
};

ThreadTypeContext.prototype.SQL_THREAD = function() {
    return this.getToken(SqlParser.SQL_THREAD, 0);
};

ThreadTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterThreadType(this);
	}
};

ThreadTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitThreadType(this);
	}
};

ThreadTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitThreadType(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ThreadTypeContext = ThreadTypeContext;

SqlParser.prototype.threadType = function() {

    var localctx = new ThreadTypeContext(this, this._ctx, this.state);
    this.enterRule(localctx, 320, SqlParser.RULE_threadType);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4007;
        _la = this._input.LA(1);
        if(!(_la===SqlParser.IO_THREAD || _la===SqlParser.SQL_THREAD)) {
        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 UntilOptionContext(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_untilOption;
    return this;
}

UntilOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UntilOptionContext.prototype.constructor = UntilOptionContext;


 
UntilOptionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function GtidsUntilOptionContext(parser, ctx) {
	UntilOptionContext.call(this, parser);
    this.gtids = null; // Token;
    UntilOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

GtidsUntilOptionContext.prototype = Object.create(UntilOptionContext.prototype);
GtidsUntilOptionContext.prototype.constructor = GtidsUntilOptionContext;

SqlParser.GtidsUntilOptionContext = GtidsUntilOptionContext;

GtidsUntilOptionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

GtidsUntilOptionContext.prototype.gtuidSet = function() {
    return this.getTypedRuleContext(GtuidSetContext,0);
};

GtidsUntilOptionContext.prototype.SQL_BEFORE_GTIDS = function() {
    return this.getToken(SqlParser.SQL_BEFORE_GTIDS, 0);
};

GtidsUntilOptionContext.prototype.SQL_AFTER_GTIDS = function() {
    return this.getToken(SqlParser.SQL_AFTER_GTIDS, 0);
};
GtidsUntilOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterGtidsUntilOption(this);
	}
};

GtidsUntilOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitGtidsUntilOption(this);
	}
};

GtidsUntilOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitGtidsUntilOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SqlGapsUntilOptionContext(parser, ctx) {
	UntilOptionContext.call(this, parser);
    UntilOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SqlGapsUntilOptionContext.prototype = Object.create(UntilOptionContext.prototype);
SqlGapsUntilOptionContext.prototype.constructor = SqlGapsUntilOptionContext;

SqlParser.SqlGapsUntilOptionContext = SqlGapsUntilOptionContext;

SqlGapsUntilOptionContext.prototype.SQL_AFTER_MTS_GAPS = function() {
    return this.getToken(SqlParser.SQL_AFTER_MTS_GAPS, 0);
};
SqlGapsUntilOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSqlGapsUntilOption(this);
	}
};

SqlGapsUntilOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSqlGapsUntilOption(this);
	}
};

SqlGapsUntilOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSqlGapsUntilOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function MasterLogUntilOptionContext(parser, ctx) {
	UntilOptionContext.call(this, parser);
    UntilOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

MasterLogUntilOptionContext.prototype = Object.create(UntilOptionContext.prototype);
MasterLogUntilOptionContext.prototype.constructor = MasterLogUntilOptionContext;

SqlParser.MasterLogUntilOptionContext = MasterLogUntilOptionContext;

MasterLogUntilOptionContext.prototype.MASTER_LOG_FILE = function() {
    return this.getToken(SqlParser.MASTER_LOG_FILE, 0);
};

MasterLogUntilOptionContext.prototype.EQUAL_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EQUAL_SYMBOL);
    } else {
        return this.getToken(SqlParser.EQUAL_SYMBOL, i);
    }
};


MasterLogUntilOptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

MasterLogUntilOptionContext.prototype.COMMA = function() {
    return this.getToken(SqlParser.COMMA, 0);
};

MasterLogUntilOptionContext.prototype.MASTER_LOG_POS = function() {
    return this.getToken(SqlParser.MASTER_LOG_POS, 0);
};

MasterLogUntilOptionContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};
MasterLogUntilOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterMasterLogUntilOption(this);
	}
};

MasterLogUntilOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitMasterLogUntilOption(this);
	}
};

MasterLogUntilOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitMasterLogUntilOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function RelayLogUntilOptionContext(parser, ctx) {
	UntilOptionContext.call(this, parser);
    UntilOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

RelayLogUntilOptionContext.prototype = Object.create(UntilOptionContext.prototype);
RelayLogUntilOptionContext.prototype.constructor = RelayLogUntilOptionContext;

SqlParser.RelayLogUntilOptionContext = RelayLogUntilOptionContext;

RelayLogUntilOptionContext.prototype.RELAY_LOG_FILE = function() {
    return this.getToken(SqlParser.RELAY_LOG_FILE, 0);
};

RelayLogUntilOptionContext.prototype.EQUAL_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EQUAL_SYMBOL);
    } else {
        return this.getToken(SqlParser.EQUAL_SYMBOL, i);
    }
};


RelayLogUntilOptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

RelayLogUntilOptionContext.prototype.COMMA = function() {
    return this.getToken(SqlParser.COMMA, 0);
};

RelayLogUntilOptionContext.prototype.RELAY_LOG_POS = function() {
    return this.getToken(SqlParser.RELAY_LOG_POS, 0);
};

RelayLogUntilOptionContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};
RelayLogUntilOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRelayLogUntilOption(this);
	}
};

RelayLogUntilOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRelayLogUntilOption(this);
	}
};

RelayLogUntilOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRelayLogUntilOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.UntilOptionContext = UntilOptionContext;

SqlParser.prototype.untilOption = function() {

    var localctx = new UntilOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 322, SqlParser.RULE_untilOption);
    var _la = 0; // Token type
    try {
        this.state = 4027;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.SQL_AFTER_GTIDS:
        case SqlParser.SQL_BEFORE_GTIDS:
            localctx = new GtidsUntilOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 4009;
            localctx.gtids = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.SQL_AFTER_GTIDS || _la===SqlParser.SQL_BEFORE_GTIDS)) {
                localctx.gtids = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 4010;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 4011;
            this.gtuidSet();
            break;
        case SqlParser.MASTER_LOG_FILE:
            localctx = new MasterLogUntilOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 4012;
            this.match(SqlParser.MASTER_LOG_FILE);
            this.state = 4013;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 4014;
            this.match(SqlParser.STRING_LITERAL);
            this.state = 4015;
            this.match(SqlParser.COMMA);
            this.state = 4016;
            this.match(SqlParser.MASTER_LOG_POS);
            this.state = 4017;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 4018;
            this.decimalLiteral();
            break;
        case SqlParser.RELAY_LOG_FILE:
            localctx = new RelayLogUntilOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 4019;
            this.match(SqlParser.RELAY_LOG_FILE);
            this.state = 4020;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 4021;
            this.match(SqlParser.STRING_LITERAL);
            this.state = 4022;
            this.match(SqlParser.COMMA);
            this.state = 4023;
            this.match(SqlParser.RELAY_LOG_POS);
            this.state = 4024;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 4025;
            this.decimalLiteral();
            break;
        case SqlParser.SQL_AFTER_MTS_GAPS:
            localctx = new SqlGapsUntilOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 4026;
            this.match(SqlParser.SQL_AFTER_MTS_GAPS);
            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 ConnectionOptionContext(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_connectionOption;
    return this;
}

ConnectionOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ConnectionOptionContext.prototype.constructor = ConnectionOptionContext;


 
ConnectionOptionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function PluginDirConnectionOptionContext(parser, ctx) {
	ConnectionOptionContext.call(this, parser);
    this.conOptPluginDir = null; // Token;
    ConnectionOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PluginDirConnectionOptionContext.prototype = Object.create(ConnectionOptionContext.prototype);
PluginDirConnectionOptionContext.prototype.constructor = PluginDirConnectionOptionContext;

SqlParser.PluginDirConnectionOptionContext = PluginDirConnectionOptionContext;

PluginDirConnectionOptionContext.prototype.PLUGIN_DIR = function() {
    return this.getToken(SqlParser.PLUGIN_DIR, 0);
};

PluginDirConnectionOptionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

PluginDirConnectionOptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};
PluginDirConnectionOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPluginDirConnectionOption(this);
	}
};

PluginDirConnectionOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPluginDirConnectionOption(this);
	}
};

PluginDirConnectionOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPluginDirConnectionOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function UserConnectionOptionContext(parser, ctx) {
	ConnectionOptionContext.call(this, parser);
    this.conOptUser = null; // Token;
    ConnectionOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

UserConnectionOptionContext.prototype = Object.create(ConnectionOptionContext.prototype);
UserConnectionOptionContext.prototype.constructor = UserConnectionOptionContext;

SqlParser.UserConnectionOptionContext = UserConnectionOptionContext;

UserConnectionOptionContext.prototype.USER = function() {
    return this.getToken(SqlParser.USER, 0);
};

UserConnectionOptionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

UserConnectionOptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};
UserConnectionOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUserConnectionOption(this);
	}
};

UserConnectionOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUserConnectionOption(this);
	}
};

UserConnectionOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUserConnectionOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function DefaultAuthConnectionOptionContext(parser, ctx) {
	ConnectionOptionContext.call(this, parser);
    this.conOptDefAuth = null; // Token;
    ConnectionOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

DefaultAuthConnectionOptionContext.prototype = Object.create(ConnectionOptionContext.prototype);
DefaultAuthConnectionOptionContext.prototype.constructor = DefaultAuthConnectionOptionContext;

SqlParser.DefaultAuthConnectionOptionContext = DefaultAuthConnectionOptionContext;

DefaultAuthConnectionOptionContext.prototype.DEFAULT_AUTH = function() {
    return this.getToken(SqlParser.DEFAULT_AUTH, 0);
};

DefaultAuthConnectionOptionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

DefaultAuthConnectionOptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};
DefaultAuthConnectionOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDefaultAuthConnectionOption(this);
	}
};

DefaultAuthConnectionOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDefaultAuthConnectionOption(this);
	}
};

DefaultAuthConnectionOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDefaultAuthConnectionOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PasswordConnectionOptionContext(parser, ctx) {
	ConnectionOptionContext.call(this, parser);
    this.conOptPassword = null; // Token;
    ConnectionOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PasswordConnectionOptionContext.prototype = Object.create(ConnectionOptionContext.prototype);
PasswordConnectionOptionContext.prototype.constructor = PasswordConnectionOptionContext;

SqlParser.PasswordConnectionOptionContext = PasswordConnectionOptionContext;

PasswordConnectionOptionContext.prototype.PASSWORD = function() {
    return this.getToken(SqlParser.PASSWORD, 0);
};

PasswordConnectionOptionContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

PasswordConnectionOptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};
PasswordConnectionOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPasswordConnectionOption(this);
	}
};

PasswordConnectionOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPasswordConnectionOption(this);
	}
};

PasswordConnectionOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPasswordConnectionOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.ConnectionOptionContext = ConnectionOptionContext;

SqlParser.prototype.connectionOption = function() {

    var localctx = new ConnectionOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 324, SqlParser.RULE_connectionOption);
    try {
        this.state = 4041;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.USER:
            localctx = new UserConnectionOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 4029;
            this.match(SqlParser.USER);
            this.state = 4030;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 4031;
            localctx.conOptUser = this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.PASSWORD:
            localctx = new PasswordConnectionOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 4032;
            this.match(SqlParser.PASSWORD);
            this.state = 4033;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 4034;
            localctx.conOptPassword = this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.DEFAULT_AUTH:
            localctx = new DefaultAuthConnectionOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 4035;
            this.match(SqlParser.DEFAULT_AUTH);
            this.state = 4036;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 4037;
            localctx.conOptDefAuth = this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.PLUGIN_DIR:
            localctx = new PluginDirConnectionOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 4038;
            this.match(SqlParser.PLUGIN_DIR);
            this.state = 4039;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 4040;
            localctx.conOptPluginDir = this.match(SqlParser.STRING_LITERAL);
            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 GtuidSetContext(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_gtuidSet;
    return this;
}

GtuidSetContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
GtuidSetContext.prototype.constructor = GtuidSetContext;

GtuidSetContext.prototype.uuidSet = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UuidSetContext);
    } else {
        return this.getTypedRuleContext(UuidSetContext,i);
    }
};

GtuidSetContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


GtuidSetContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

GtuidSetContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterGtuidSet(this);
	}
};

GtuidSetContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitGtuidSet(this);
	}
};

GtuidSetContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitGtuidSet(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.GtuidSetContext = GtuidSetContext;

SqlParser.prototype.gtuidSet = function() {

    var localctx = new GtuidSetContext(this, this._ctx, this.state);
    this.enterRule(localctx, 326, SqlParser.RULE_gtuidSet);
    var _la = 0; // Token type
    try {
        this.state = 4052;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.ZERO_DECIMAL:
        case SqlParser.ONE_DECIMAL:
        case SqlParser.TWO_DECIMAL:
        case SqlParser.DECIMAL_LITERAL:
            this.enterOuterAlt(localctx, 1);
            this.state = 4043;
            this.uuidSet();
            this.state = 4048;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 4044;
                this.match(SqlParser.COMMA);
                this.state = 4045;
                this.uuidSet();
                this.state = 4050;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;
        case SqlParser.STRING_LITERAL:
            this.enterOuterAlt(localctx, 2);
            this.state = 4051;
            this.match(SqlParser.STRING_LITERAL);
            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 XaStartTransactionContext(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_xaStartTransaction;
    this.xaStart = null; // Token
    this.xaAction = null; // Token
    return this;
}

XaStartTransactionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
XaStartTransactionContext.prototype.constructor = XaStartTransactionContext;

XaStartTransactionContext.prototype.XA = function() {
    return this.getToken(SqlParser.XA, 0);
};

XaStartTransactionContext.prototype.xid = function() {
    return this.getTypedRuleContext(XidContext,0);
};

XaStartTransactionContext.prototype.START = function() {
    return this.getToken(SqlParser.START, 0);
};

XaStartTransactionContext.prototype.BEGIN = function() {
    return this.getToken(SqlParser.BEGIN, 0);
};

XaStartTransactionContext.prototype.JOIN = function() {
    return this.getToken(SqlParser.JOIN, 0);
};

XaStartTransactionContext.prototype.RESUME = function() {
    return this.getToken(SqlParser.RESUME, 0);
};

XaStartTransactionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterXaStartTransaction(this);
	}
};

XaStartTransactionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitXaStartTransaction(this);
	}
};

XaStartTransactionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitXaStartTransaction(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.XaStartTransactionContext = XaStartTransactionContext;

SqlParser.prototype.xaStartTransaction = function() {

    var localctx = new XaStartTransactionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 328, SqlParser.RULE_xaStartTransaction);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4054;
        this.match(SqlParser.XA);
        this.state = 4055;
        localctx.xaStart = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.BEGIN || _la===SqlParser.START)) {
            localctx.xaStart = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 4056;
        this.xid();
        this.state = 4058;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.JOIN || _la===SqlParser.RESUME) {
            this.state = 4057;
            localctx.xaAction = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.JOIN || _la===SqlParser.RESUME)) {
                localctx.xaAction = 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 XaEndTransactionContext(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_xaEndTransaction;
    return this;
}

XaEndTransactionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
XaEndTransactionContext.prototype.constructor = XaEndTransactionContext;

XaEndTransactionContext.prototype.XA = function() {
    return this.getToken(SqlParser.XA, 0);
};

XaEndTransactionContext.prototype.END = function() {
    return this.getToken(SqlParser.END, 0);
};

XaEndTransactionContext.prototype.xid = function() {
    return this.getTypedRuleContext(XidContext,0);
};

XaEndTransactionContext.prototype.SUSPEND = function() {
    return this.getToken(SqlParser.SUSPEND, 0);
};

XaEndTransactionContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

XaEndTransactionContext.prototype.MIGRATE = function() {
    return this.getToken(SqlParser.MIGRATE, 0);
};

XaEndTransactionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterXaEndTransaction(this);
	}
};

XaEndTransactionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitXaEndTransaction(this);
	}
};

XaEndTransactionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitXaEndTransaction(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.XaEndTransactionContext = XaEndTransactionContext;

SqlParser.prototype.xaEndTransaction = function() {

    var localctx = new XaEndTransactionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 330, SqlParser.RULE_xaEndTransaction);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4060;
        this.match(SqlParser.XA);
        this.state = 4061;
        this.match(SqlParser.END);
        this.state = 4062;
        this.xid();
        this.state = 4068;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.SUSPEND) {
            this.state = 4063;
            this.match(SqlParser.SUSPEND);
            this.state = 4066;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FOR) {
                this.state = 4064;
                this.match(SqlParser.FOR);
                this.state = 4065;
                this.match(SqlParser.MIGRATE);
            }

        }

    } 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 XaPrepareStatementContext(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_xaPrepareStatement;
    return this;
}

XaPrepareStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
XaPrepareStatementContext.prototype.constructor = XaPrepareStatementContext;

XaPrepareStatementContext.prototype.XA = function() {
    return this.getToken(SqlParser.XA, 0);
};

XaPrepareStatementContext.prototype.PREPARE = function() {
    return this.getToken(SqlParser.PREPARE, 0);
};

XaPrepareStatementContext.prototype.xid = function() {
    return this.getTypedRuleContext(XidContext,0);
};

XaPrepareStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterXaPrepareStatement(this);
	}
};

XaPrepareStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitXaPrepareStatement(this);
	}
};

XaPrepareStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitXaPrepareStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.XaPrepareStatementContext = XaPrepareStatementContext;

SqlParser.prototype.xaPrepareStatement = function() {

    var localctx = new XaPrepareStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 332, SqlParser.RULE_xaPrepareStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4070;
        this.match(SqlParser.XA);
        this.state = 4071;
        this.match(SqlParser.PREPARE);
        this.state = 4072;
        this.xid();
    } 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 XaCommitWorkContext(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_xaCommitWork;
    return this;
}

XaCommitWorkContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
XaCommitWorkContext.prototype.constructor = XaCommitWorkContext;

XaCommitWorkContext.prototype.XA = function() {
    return this.getToken(SqlParser.XA, 0);
};

XaCommitWorkContext.prototype.COMMIT = function() {
    return this.getToken(SqlParser.COMMIT, 0);
};

XaCommitWorkContext.prototype.xid = function() {
    return this.getTypedRuleContext(XidContext,0);
};

XaCommitWorkContext.prototype.ONE = function() {
    return this.getToken(SqlParser.ONE, 0);
};

XaCommitWorkContext.prototype.PHASE = function() {
    return this.getToken(SqlParser.PHASE, 0);
};

XaCommitWorkContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterXaCommitWork(this);
	}
};

XaCommitWorkContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitXaCommitWork(this);
	}
};

XaCommitWorkContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitXaCommitWork(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.XaCommitWorkContext = XaCommitWorkContext;

SqlParser.prototype.xaCommitWork = function() {

    var localctx = new XaCommitWorkContext(this, this._ctx, this.state);
    this.enterRule(localctx, 334, SqlParser.RULE_xaCommitWork);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4074;
        this.match(SqlParser.XA);
        this.state = 4075;
        this.match(SqlParser.COMMIT);
        this.state = 4076;
        this.xid();
        this.state = 4079;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ONE) {
            this.state = 4077;
            this.match(SqlParser.ONE);
            this.state = 4078;
            this.match(SqlParser.PHASE);
        }

    } 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 XaRollbackWorkContext(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_xaRollbackWork;
    return this;
}

XaRollbackWorkContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
XaRollbackWorkContext.prototype.constructor = XaRollbackWorkContext;

XaRollbackWorkContext.prototype.XA = function() {
    return this.getToken(SqlParser.XA, 0);
};

XaRollbackWorkContext.prototype.ROLLBACK = function() {
    return this.getToken(SqlParser.ROLLBACK, 0);
};

XaRollbackWorkContext.prototype.xid = function() {
    return this.getTypedRuleContext(XidContext,0);
};

XaRollbackWorkContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterXaRollbackWork(this);
	}
};

XaRollbackWorkContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitXaRollbackWork(this);
	}
};

XaRollbackWorkContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitXaRollbackWork(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.XaRollbackWorkContext = XaRollbackWorkContext;

SqlParser.prototype.xaRollbackWork = function() {

    var localctx = new XaRollbackWorkContext(this, this._ctx, this.state);
    this.enterRule(localctx, 336, SqlParser.RULE_xaRollbackWork);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4081;
        this.match(SqlParser.XA);
        this.state = 4082;
        this.match(SqlParser.ROLLBACK);
        this.state = 4083;
        this.xid();
    } 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 XaRecoverWorkContext(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_xaRecoverWork;
    return this;
}

XaRecoverWorkContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
XaRecoverWorkContext.prototype.constructor = XaRecoverWorkContext;

XaRecoverWorkContext.prototype.XA = function() {
    return this.getToken(SqlParser.XA, 0);
};

XaRecoverWorkContext.prototype.RECOVER = function() {
    return this.getToken(SqlParser.RECOVER, 0);
};

XaRecoverWorkContext.prototype.CONVERT = function() {
    return this.getToken(SqlParser.CONVERT, 0);
};

XaRecoverWorkContext.prototype.xid = function() {
    return this.getTypedRuleContext(XidContext,0);
};

XaRecoverWorkContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterXaRecoverWork(this);
	}
};

XaRecoverWorkContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitXaRecoverWork(this);
	}
};

XaRecoverWorkContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitXaRecoverWork(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.XaRecoverWorkContext = XaRecoverWorkContext;

SqlParser.prototype.xaRecoverWork = function() {

    var localctx = new XaRecoverWorkContext(this, this._ctx, this.state);
    this.enterRule(localctx, 338, SqlParser.RULE_xaRecoverWork);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4085;
        this.match(SqlParser.XA);
        this.state = 4086;
        this.match(SqlParser.RECOVER);
        this.state = 4089;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.CONVERT) {
            this.state = 4087;
            this.match(SqlParser.CONVERT);
            this.state = 4088;
            this.xid();
        }

    } 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 PrepareStatementContext(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_prepareStatement;
    this.query = null; // Token
    this.variable = null; // Token
    return this;
}

PrepareStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PrepareStatementContext.prototype.constructor = PrepareStatementContext;

PrepareStatementContext.prototype.PREPARE = function() {
    return this.getToken(SqlParser.PREPARE, 0);
};

PrepareStatementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

PrepareStatementContext.prototype.FROM = function() {
    return this.getToken(SqlParser.FROM, 0);
};

PrepareStatementContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

PrepareStatementContext.prototype.LOCAL_ID = function() {
    return this.getToken(SqlParser.LOCAL_ID, 0);
};

PrepareStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPrepareStatement(this);
	}
};

PrepareStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPrepareStatement(this);
	}
};

PrepareStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPrepareStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.PrepareStatementContext = PrepareStatementContext;

SqlParser.prototype.prepareStatement = function() {

    var localctx = new PrepareStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 340, SqlParser.RULE_prepareStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4091;
        this.match(SqlParser.PREPARE);
        this.state = 4092;
        this.uid();
        this.state = 4093;
        this.match(SqlParser.FROM);
        this.state = 4096;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.STRING_LITERAL:
            this.state = 4094;
            localctx.query = this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.LOCAL_ID:
            this.state = 4095;
            localctx.variable = this.match(SqlParser.LOCAL_ID);
            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 ExecuteStatementContext(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_executeStatement;
    return this;
}

ExecuteStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ExecuteStatementContext.prototype.constructor = ExecuteStatementContext;

ExecuteStatementContext.prototype.EXECUTE = function() {
    return this.getToken(SqlParser.EXECUTE, 0);
};

ExecuteStatementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

ExecuteStatementContext.prototype.USING = function() {
    return this.getToken(SqlParser.USING, 0);
};

ExecuteStatementContext.prototype.userVariables = function() {
    return this.getTypedRuleContext(UserVariablesContext,0);
};

ExecuteStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterExecuteStatement(this);
	}
};

ExecuteStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitExecuteStatement(this);
	}
};

ExecuteStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitExecuteStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ExecuteStatementContext = ExecuteStatementContext;

SqlParser.prototype.executeStatement = function() {

    var localctx = new ExecuteStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 342, SqlParser.RULE_executeStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4098;
        this.match(SqlParser.EXECUTE);
        this.state = 4099;
        this.uid();
        this.state = 4102;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.USING) {
            this.state = 4100;
            this.match(SqlParser.USING);
            this.state = 4101;
            this.userVariables();
        }

    } 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 DeallocatePrepareContext(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_deallocatePrepare;
    this.dropFormat = null; // Token
    return this;
}

DeallocatePrepareContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DeallocatePrepareContext.prototype.constructor = DeallocatePrepareContext;

DeallocatePrepareContext.prototype.PREPARE = function() {
    return this.getToken(SqlParser.PREPARE, 0);
};

DeallocatePrepareContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

DeallocatePrepareContext.prototype.DEALLOCATE = function() {
    return this.getToken(SqlParser.DEALLOCATE, 0);
};

DeallocatePrepareContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

DeallocatePrepareContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDeallocatePrepare(this);
	}
};

DeallocatePrepareContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDeallocatePrepare(this);
	}
};

DeallocatePrepareContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDeallocatePrepare(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DeallocatePrepareContext = DeallocatePrepareContext;

SqlParser.prototype.deallocatePrepare = function() {

    var localctx = new DeallocatePrepareContext(this, this._ctx, this.state);
    this.enterRule(localctx, 344, SqlParser.RULE_deallocatePrepare);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4104;
        localctx.dropFormat = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.DROP || _la===SqlParser.DEALLOCATE)) {
            localctx.dropFormat = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 4105;
        this.match(SqlParser.PREPARE);
        this.state = 4106;
        this.uid();
    } 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 RoutineBodyContext(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_routineBody;
    return this;
}

RoutineBodyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RoutineBodyContext.prototype.constructor = RoutineBodyContext;

RoutineBodyContext.prototype.blockStatement = function() {
    return this.getTypedRuleContext(BlockStatementContext,0);
};

RoutineBodyContext.prototype.sqlStatement = function() {
    return this.getTypedRuleContext(SqlStatementContext,0);
};

RoutineBodyContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRoutineBody(this);
	}
};

RoutineBodyContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRoutineBody(this);
	}
};

RoutineBodyContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRoutineBody(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.RoutineBodyContext = RoutineBodyContext;

SqlParser.prototype.routineBody = function() {

    var localctx = new RoutineBodyContext(this, this._ctx, this.state);
    this.enterRule(localctx, 346, SqlParser.RULE_routineBody);
    try {
        this.state = 4110;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,589,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 4108;
            this.blockStatement();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 4109;
            this.sqlStatement();
            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 BlockStatementContext(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_blockStatement;
    return this;
}

BlockStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
BlockStatementContext.prototype.constructor = BlockStatementContext;

BlockStatementContext.prototype.BEGIN = function() {
    return this.getToken(SqlParser.BEGIN, 0);
};

BlockStatementContext.prototype.END = function() {
    return this.getToken(SqlParser.END, 0);
};

BlockStatementContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

BlockStatementContext.prototype.COLON_SYMB = function() {
    return this.getToken(SqlParser.COLON_SYMB, 0);
};

BlockStatementContext.prototype.declareVariable = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DeclareVariableContext);
    } else {
        return this.getTypedRuleContext(DeclareVariableContext,i);
    }
};

BlockStatementContext.prototype.SEMI = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.SEMI);
    } else {
        return this.getToken(SqlParser.SEMI, i);
    }
};


BlockStatementContext.prototype.declareCondition = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DeclareConditionContext);
    } else {
        return this.getTypedRuleContext(DeclareConditionContext,i);
    }
};

BlockStatementContext.prototype.declareCursor = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DeclareCursorContext);
    } else {
        return this.getTypedRuleContext(DeclareCursorContext,i);
    }
};

BlockStatementContext.prototype.declareHandler = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DeclareHandlerContext);
    } else {
        return this.getTypedRuleContext(DeclareHandlerContext,i);
    }
};

BlockStatementContext.prototype.procedureSqlStatement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ProcedureSqlStatementContext);
    } else {
        return this.getTypedRuleContext(ProcedureSqlStatementContext,i);
    }
};

BlockStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterBlockStatement(this);
	}
};

BlockStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitBlockStatement(this);
	}
};

BlockStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitBlockStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.BlockStatementContext = BlockStatementContext;

SqlParser.prototype.blockStatement = function() {

    var localctx = new BlockStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 348, SqlParser.RULE_blockStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4115;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,590,this._ctx);
        if(la_===1) {
            this.state = 4112;
            this.uid();
            this.state = 4113;
            this.match(SqlParser.COLON_SYMB);

        }
        this.state = 4117;
        this.match(SqlParser.BEGIN);
        this.state = 4156;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,596,this._ctx);
        if(la_===1) {
            this.state = 4123;
            this._errHandler.sync(this);
            var _alt = this._interp.adaptivePredict(this._input,591,this._ctx)
            while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                if(_alt===1) {
                    this.state = 4118;
                    this.declareVariable();
                    this.state = 4119;
                    this.match(SqlParser.SEMI); 
                }
                this.state = 4125;
                this._errHandler.sync(this);
                _alt = this._interp.adaptivePredict(this._input,591,this._ctx);
            }

            this.state = 4131;
            this._errHandler.sync(this);
            var _alt = this._interp.adaptivePredict(this._input,592,this._ctx)
            while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                if(_alt===1) {
                    this.state = 4126;
                    this.declareCondition();
                    this.state = 4127;
                    this.match(SqlParser.SEMI); 
                }
                this.state = 4133;
                this._errHandler.sync(this);
                _alt = this._interp.adaptivePredict(this._input,592,this._ctx);
            }

            this.state = 4139;
            this._errHandler.sync(this);
            var _alt = this._interp.adaptivePredict(this._input,593,this._ctx)
            while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                if(_alt===1) {
                    this.state = 4134;
                    this.declareCursor();
                    this.state = 4135;
                    this.match(SqlParser.SEMI); 
                }
                this.state = 4141;
                this._errHandler.sync(this);
                _alt = this._interp.adaptivePredict(this._input,593,this._ctx);
            }

            this.state = 4147;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.DECLARE) {
                this.state = 4142;
                this.declareHandler();
                this.state = 4143;
                this.match(SqlParser.SEMI);
                this.state = 4149;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 4153;
            this._errHandler.sync(this);
            var _alt = this._interp.adaptivePredict(this._input,595,this._ctx)
            while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                if(_alt===1) {
                    this.state = 4150;
                    this.procedureSqlStatement(); 
                }
                this.state = 4155;
                this._errHandler.sync(this);
                _alt = this._interp.adaptivePredict(this._input,595,this._ctx);
            }


        }
        this.state = 4158;
        this.match(SqlParser.END);
        this.state = 4160;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,597,this._ctx);
        if(la_===1) {
            this.state = 4159;
            this.uid();

        }
    } 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 CaseStatementContext(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_caseStatement;
    return this;
}

CaseStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CaseStatementContext.prototype.constructor = CaseStatementContext;

CaseStatementContext.prototype.CASE = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.CASE);
    } else {
        return this.getToken(SqlParser.CASE, i);
    }
};


CaseStatementContext.prototype.END = function() {
    return this.getToken(SqlParser.END, 0);
};

CaseStatementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

CaseStatementContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

CaseStatementContext.prototype.caseAlternative = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(CaseAlternativeContext);
    } else {
        return this.getTypedRuleContext(CaseAlternativeContext,i);
    }
};

CaseStatementContext.prototype.ELSE = function() {
    return this.getToken(SqlParser.ELSE, 0);
};

CaseStatementContext.prototype.procedureSqlStatement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ProcedureSqlStatementContext);
    } else {
        return this.getTypedRuleContext(ProcedureSqlStatementContext,i);
    }
};

CaseStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCaseStatement(this);
	}
};

CaseStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCaseStatement(this);
	}
};

CaseStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCaseStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CaseStatementContext = CaseStatementContext;

SqlParser.prototype.caseStatement = function() {

    var localctx = new CaseStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 350, SqlParser.RULE_caseStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4162;
        this.match(SqlParser.CASE);
        this.state = 4165;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,598,this._ctx);
        if(la_===1) {
            this.state = 4163;
            this.uid();

        } else if(la_===2) {
            this.state = 4164;
            this.expression(0);

        }
        this.state = 4168; 
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        do {
            this.state = 4167;
            this.caseAlternative();
            this.state = 4170; 
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        } while(_la===SqlParser.WHEN);
        this.state = 4178;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ELSE) {
            this.state = 4172;
            this.match(SqlParser.ELSE);
            this.state = 4174; 
            this._errHandler.sync(this);
            var _alt = 1;
            do {
            	switch (_alt) {
            	case 1:
            		this.state = 4173;
            		this.procedureSqlStatement();
            		break;
            	default:
            		throw new antlr4.error.NoViableAltException(this);
            	}
            	this.state = 4176; 
            	this._errHandler.sync(this);
            	_alt = this._interp.adaptivePredict(this._input,600, this._ctx);
            } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER );
        }

        this.state = 4180;
        this.match(SqlParser.END);
        this.state = 4181;
        this.match(SqlParser.CASE);
    } 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 IfStatementContext(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_ifStatement;
    this._procedureSqlStatement = null; // ProcedureSqlStatementContext
    this.thenStatements = []; // of ProcedureSqlStatementContexts
    this.elseStatements = []; // of ProcedureSqlStatementContexts
    return this;
}

IfStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IfStatementContext.prototype.constructor = IfStatementContext;

IfStatementContext.prototype.IF = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.IF);
    } else {
        return this.getToken(SqlParser.IF, i);
    }
};


IfStatementContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

IfStatementContext.prototype.THEN = function() {
    return this.getToken(SqlParser.THEN, 0);
};

IfStatementContext.prototype.END = function() {
    return this.getToken(SqlParser.END, 0);
};

IfStatementContext.prototype.elifAlternative = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ElifAlternativeContext);
    } else {
        return this.getTypedRuleContext(ElifAlternativeContext,i);
    }
};

IfStatementContext.prototype.ELSE = function() {
    return this.getToken(SqlParser.ELSE, 0);
};

IfStatementContext.prototype.procedureSqlStatement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ProcedureSqlStatementContext);
    } else {
        return this.getTypedRuleContext(ProcedureSqlStatementContext,i);
    }
};

IfStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIfStatement(this);
	}
};

IfStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIfStatement(this);
	}
};

IfStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIfStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.IfStatementContext = IfStatementContext;

SqlParser.prototype.ifStatement = function() {

    var localctx = new IfStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 352, SqlParser.RULE_ifStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4183;
        this.match(SqlParser.IF);
        this.state = 4184;
        this.expression(0);
        this.state = 4185;
        this.match(SqlParser.THEN);
        this.state = 4187; 
        this._errHandler.sync(this);
        var _alt = 1;
        do {
        	switch (_alt) {
        	case 1:
        		this.state = 4186;
        		localctx._procedureSqlStatement = this.procedureSqlStatement();
        		localctx.thenStatements.push(localctx._procedureSqlStatement);
        		break;
        	default:
        		throw new antlr4.error.NoViableAltException(this);
        	}
        	this.state = 4189; 
        	this._errHandler.sync(this);
        	_alt = this._interp.adaptivePredict(this._input,602, this._ctx);
        } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER );
        this.state = 4194;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.ELSEIF) {
            this.state = 4191;
            this.elifAlternative();
            this.state = 4196;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 4203;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ELSE) {
            this.state = 4197;
            this.match(SqlParser.ELSE);
            this.state = 4199; 
            this._errHandler.sync(this);
            var _alt = 1;
            do {
            	switch (_alt) {
            	case 1:
            		this.state = 4198;
            		localctx._procedureSqlStatement = this.procedureSqlStatement();
            		localctx.elseStatements.push(localctx._procedureSqlStatement);
            		break;
            	default:
            		throw new antlr4.error.NoViableAltException(this);
            	}
            	this.state = 4201; 
            	this._errHandler.sync(this);
            	_alt = this._interp.adaptivePredict(this._input,604, this._ctx);
            } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER );
        }

        this.state = 4205;
        this.match(SqlParser.END);
        this.state = 4206;
        this.match(SqlParser.IF);
    } 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 IterateStatementContext(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_iterateStatement;
    return this;
}

IterateStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IterateStatementContext.prototype.constructor = IterateStatementContext;

IterateStatementContext.prototype.ITERATE = function() {
    return this.getToken(SqlParser.ITERATE, 0);
};

IterateStatementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

IterateStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIterateStatement(this);
	}
};

IterateStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIterateStatement(this);
	}
};

IterateStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIterateStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.IterateStatementContext = IterateStatementContext;

SqlParser.prototype.iterateStatement = function() {

    var localctx = new IterateStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 354, SqlParser.RULE_iterateStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4208;
        this.match(SqlParser.ITERATE);
        this.state = 4209;
        this.uid();
    } 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 LeaveStatementContext(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_leaveStatement;
    return this;
}

LeaveStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LeaveStatementContext.prototype.constructor = LeaveStatementContext;

LeaveStatementContext.prototype.LEAVE = function() {
    return this.getToken(SqlParser.LEAVE, 0);
};

LeaveStatementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

LeaveStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLeaveStatement(this);
	}
};

LeaveStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLeaveStatement(this);
	}
};

LeaveStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLeaveStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LeaveStatementContext = LeaveStatementContext;

SqlParser.prototype.leaveStatement = function() {

    var localctx = new LeaveStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 356, SqlParser.RULE_leaveStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4211;
        this.match(SqlParser.LEAVE);
        this.state = 4212;
        this.uid();
    } 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 LoopStatementContext(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_loopStatement;
    return this;
}

LoopStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LoopStatementContext.prototype.constructor = LoopStatementContext;

LoopStatementContext.prototype.LOOP = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.LOOP);
    } else {
        return this.getToken(SqlParser.LOOP, i);
    }
};


LoopStatementContext.prototype.END = function() {
    return this.getToken(SqlParser.END, 0);
};

LoopStatementContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

LoopStatementContext.prototype.COLON_SYMB = function() {
    return this.getToken(SqlParser.COLON_SYMB, 0);
};

LoopStatementContext.prototype.procedureSqlStatement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ProcedureSqlStatementContext);
    } else {
        return this.getTypedRuleContext(ProcedureSqlStatementContext,i);
    }
};

LoopStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLoopStatement(this);
	}
};

LoopStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLoopStatement(this);
	}
};

LoopStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLoopStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LoopStatementContext = LoopStatementContext;

SqlParser.prototype.loopStatement = function() {

    var localctx = new LoopStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 358, SqlParser.RULE_loopStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4217;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
            this.state = 4214;
            this.uid();
            this.state = 4215;
            this.match(SqlParser.COLON_SYMB);
        }

        this.state = 4219;
        this.match(SqlParser.LOOP);
        this.state = 4221; 
        this._errHandler.sync(this);
        var _alt = 1;
        do {
        	switch (_alt) {
        	case 1:
        		this.state = 4220;
        		this.procedureSqlStatement();
        		break;
        	default:
        		throw new antlr4.error.NoViableAltException(this);
        	}
        	this.state = 4223; 
        	this._errHandler.sync(this);
        	_alt = this._interp.adaptivePredict(this._input,607, this._ctx);
        } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER );
        this.state = 4225;
        this.match(SqlParser.END);
        this.state = 4226;
        this.match(SqlParser.LOOP);
        this.state = 4228;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
            this.state = 4227;
            this.uid();
        }

    } 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 RepeatStatementContext(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_repeatStatement;
    return this;
}

RepeatStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RepeatStatementContext.prototype.constructor = RepeatStatementContext;

RepeatStatementContext.prototype.REPEAT = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.REPEAT);
    } else {
        return this.getToken(SqlParser.REPEAT, i);
    }
};


RepeatStatementContext.prototype.UNTIL = function() {
    return this.getToken(SqlParser.UNTIL, 0);
};

RepeatStatementContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

RepeatStatementContext.prototype.END = function() {
    return this.getToken(SqlParser.END, 0);
};

RepeatStatementContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

RepeatStatementContext.prototype.COLON_SYMB = function() {
    return this.getToken(SqlParser.COLON_SYMB, 0);
};

RepeatStatementContext.prototype.procedureSqlStatement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ProcedureSqlStatementContext);
    } else {
        return this.getTypedRuleContext(ProcedureSqlStatementContext,i);
    }
};

RepeatStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRepeatStatement(this);
	}
};

RepeatStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRepeatStatement(this);
	}
};

RepeatStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRepeatStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.RepeatStatementContext = RepeatStatementContext;

SqlParser.prototype.repeatStatement = function() {

    var localctx = new RepeatStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 360, SqlParser.RULE_repeatStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4233;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
            this.state = 4230;
            this.uid();
            this.state = 4231;
            this.match(SqlParser.COLON_SYMB);
        }

        this.state = 4235;
        this.match(SqlParser.REPEAT);
        this.state = 4237; 
        this._errHandler.sync(this);
        var _alt = 1;
        do {
        	switch (_alt) {
        	case 1:
        		this.state = 4236;
        		this.procedureSqlStatement();
        		break;
        	default:
        		throw new antlr4.error.NoViableAltException(this);
        	}
        	this.state = 4239; 
        	this._errHandler.sync(this);
        	_alt = this._interp.adaptivePredict(this._input,610, this._ctx);
        } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER );
        this.state = 4241;
        this.match(SqlParser.UNTIL);
        this.state = 4242;
        this.expression(0);
        this.state = 4243;
        this.match(SqlParser.END);
        this.state = 4244;
        this.match(SqlParser.REPEAT);
        this.state = 4246;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
            this.state = 4245;
            this.uid();
        }

    } 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 ReturnStatementContext(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_returnStatement;
    return this;
}

ReturnStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ReturnStatementContext.prototype.constructor = ReturnStatementContext;

ReturnStatementContext.prototype.RETURN = function() {
    return this.getToken(SqlParser.RETURN, 0);
};

ReturnStatementContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

ReturnStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterReturnStatement(this);
	}
};

ReturnStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitReturnStatement(this);
	}
};

ReturnStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitReturnStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ReturnStatementContext = ReturnStatementContext;

SqlParser.prototype.returnStatement = function() {

    var localctx = new ReturnStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 362, SqlParser.RULE_returnStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4248;
        this.match(SqlParser.RETURN);
        this.state = 4249;
        this.expression(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 WhileStatementContext(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_whileStatement;
    return this;
}

WhileStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
WhileStatementContext.prototype.constructor = WhileStatementContext;

WhileStatementContext.prototype.WHILE = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.WHILE);
    } else {
        return this.getToken(SqlParser.WHILE, i);
    }
};


WhileStatementContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

WhileStatementContext.prototype.DO = function() {
    return this.getToken(SqlParser.DO, 0);
};

WhileStatementContext.prototype.END = function() {
    return this.getToken(SqlParser.END, 0);
};

WhileStatementContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

WhileStatementContext.prototype.COLON_SYMB = function() {
    return this.getToken(SqlParser.COLON_SYMB, 0);
};

WhileStatementContext.prototype.procedureSqlStatement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ProcedureSqlStatementContext);
    } else {
        return this.getTypedRuleContext(ProcedureSqlStatementContext,i);
    }
};

WhileStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterWhileStatement(this);
	}
};

WhileStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitWhileStatement(this);
	}
};

WhileStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitWhileStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.WhileStatementContext = WhileStatementContext;

SqlParser.prototype.whileStatement = function() {

    var localctx = new WhileStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 364, SqlParser.RULE_whileStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4254;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
            this.state = 4251;
            this.uid();
            this.state = 4252;
            this.match(SqlParser.COLON_SYMB);
        }

        this.state = 4256;
        this.match(SqlParser.WHILE);
        this.state = 4257;
        this.expression(0);
        this.state = 4258;
        this.match(SqlParser.DO);
        this.state = 4260; 
        this._errHandler.sync(this);
        var _alt = 1;
        do {
        	switch (_alt) {
        	case 1:
        		this.state = 4259;
        		this.procedureSqlStatement();
        		break;
        	default:
        		throw new antlr4.error.NoViableAltException(this);
        	}
        	this.state = 4262; 
        	this._errHandler.sync(this);
        	_alt = this._interp.adaptivePredict(this._input,613, this._ctx);
        } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER );
        this.state = 4264;
        this.match(SqlParser.END);
        this.state = 4265;
        this.match(SqlParser.WHILE);
        this.state = 4267;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la===SqlParser.LEFT || _la===SqlParser.NUMBER || _la===SqlParser.RIGHT || _la===SqlParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) {
            this.state = 4266;
            this.uid();
        }

    } 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 CursorStatementContext(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_cursorStatement;
    return this;
}

CursorStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CursorStatementContext.prototype.constructor = CursorStatementContext;


 
CursorStatementContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function CloseCursorContext(parser, ctx) {
	CursorStatementContext.call(this, parser);
    CursorStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

CloseCursorContext.prototype = Object.create(CursorStatementContext.prototype);
CloseCursorContext.prototype.constructor = CloseCursorContext;

SqlParser.CloseCursorContext = CloseCursorContext;

CloseCursorContext.prototype.CLOSE = function() {
    return this.getToken(SqlParser.CLOSE, 0);
};

CloseCursorContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};
CloseCursorContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCloseCursor(this);
	}
};

CloseCursorContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCloseCursor(this);
	}
};

CloseCursorContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCloseCursor(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function OpenCursorContext(parser, ctx) {
	CursorStatementContext.call(this, parser);
    CursorStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

OpenCursorContext.prototype = Object.create(CursorStatementContext.prototype);
OpenCursorContext.prototype.constructor = OpenCursorContext;

SqlParser.OpenCursorContext = OpenCursorContext;

OpenCursorContext.prototype.OPEN = function() {
    return this.getToken(SqlParser.OPEN, 0);
};

OpenCursorContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};
OpenCursorContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterOpenCursor(this);
	}
};

OpenCursorContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitOpenCursor(this);
	}
};

OpenCursorContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitOpenCursor(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function FetchCursorContext(parser, ctx) {
	CursorStatementContext.call(this, parser);
    CursorStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

FetchCursorContext.prototype = Object.create(CursorStatementContext.prototype);
FetchCursorContext.prototype.constructor = FetchCursorContext;

SqlParser.FetchCursorContext = FetchCursorContext;

FetchCursorContext.prototype.FETCH = function() {
    return this.getToken(SqlParser.FETCH, 0);
};

FetchCursorContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

FetchCursorContext.prototype.INTO = function() {
    return this.getToken(SqlParser.INTO, 0);
};

FetchCursorContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

FetchCursorContext.prototype.FROM = function() {
    return this.getToken(SqlParser.FROM, 0);
};

FetchCursorContext.prototype.NEXT = function() {
    return this.getToken(SqlParser.NEXT, 0);
};
FetchCursorContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFetchCursor(this);
	}
};

FetchCursorContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFetchCursor(this);
	}
};

FetchCursorContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitFetchCursor(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.CursorStatementContext = CursorStatementContext;

SqlParser.prototype.cursorStatement = function() {

    var localctx = new CursorStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 366, SqlParser.RULE_cursorStatement);
    var _la = 0; // Token type
    try {
        this.state = 4284;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.CLOSE:
            localctx = new CloseCursorContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 4269;
            this.match(SqlParser.CLOSE);
            this.state = 4270;
            this.uid();
            break;
        case SqlParser.FETCH:
            localctx = new FetchCursorContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 4271;
            this.match(SqlParser.FETCH);
            this.state = 4276;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,616,this._ctx);
            if(la_===1) {
                this.state = 4273;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.NEXT) {
                    this.state = 4272;
                    this.match(SqlParser.NEXT);
                }

                this.state = 4275;
                this.match(SqlParser.FROM);

            }
            this.state = 4278;
            this.uid();
            this.state = 4279;
            this.match(SqlParser.INTO);
            this.state = 4280;
            this.uidList();
            break;
        case SqlParser.OPEN:
            localctx = new OpenCursorContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 4282;
            this.match(SqlParser.OPEN);
            this.state = 4283;
            this.uid();
            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 DeclareVariableContext(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_declareVariable;
    return this;
}

DeclareVariableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DeclareVariableContext.prototype.constructor = DeclareVariableContext;

DeclareVariableContext.prototype.DECLARE = function() {
    return this.getToken(SqlParser.DECLARE, 0);
};

DeclareVariableContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

DeclareVariableContext.prototype.dataType = function() {
    return this.getTypedRuleContext(DataTypeContext,0);
};

DeclareVariableContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

DeclareVariableContext.prototype.defaultValue = function() {
    return this.getTypedRuleContext(DefaultValueContext,0);
};

DeclareVariableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDeclareVariable(this);
	}
};

DeclareVariableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDeclareVariable(this);
	}
};

DeclareVariableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDeclareVariable(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DeclareVariableContext = DeclareVariableContext;

SqlParser.prototype.declareVariable = function() {

    var localctx = new DeclareVariableContext(this, this._ctx, this.state);
    this.enterRule(localctx, 368, SqlParser.RULE_declareVariable);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4286;
        this.match(SqlParser.DECLARE);
        this.state = 4287;
        this.uidList();
        this.state = 4288;
        this.dataType();
        this.state = 4291;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.DEFAULT) {
            this.state = 4289;
            this.match(SqlParser.DEFAULT);
            this.state = 4290;
            this.defaultValue();
        }

    } 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 DeclareConditionContext(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_declareCondition;
    return this;
}

DeclareConditionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DeclareConditionContext.prototype.constructor = DeclareConditionContext;

DeclareConditionContext.prototype.DECLARE = function() {
    return this.getToken(SqlParser.DECLARE, 0);
};

DeclareConditionContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

DeclareConditionContext.prototype.CONDITION = function() {
    return this.getToken(SqlParser.CONDITION, 0);
};

DeclareConditionContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

DeclareConditionContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

DeclareConditionContext.prototype.SQLSTATE = function() {
    return this.getToken(SqlParser.SQLSTATE, 0);
};

DeclareConditionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

DeclareConditionContext.prototype.VALUE = function() {
    return this.getToken(SqlParser.VALUE, 0);
};

DeclareConditionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDeclareCondition(this);
	}
};

DeclareConditionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDeclareCondition(this);
	}
};

DeclareConditionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDeclareCondition(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DeclareConditionContext = DeclareConditionContext;

SqlParser.prototype.declareCondition = function() {

    var localctx = new DeclareConditionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 370, SqlParser.RULE_declareCondition);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4293;
        this.match(SqlParser.DECLARE);
        this.state = 4294;
        this.uid();
        this.state = 4295;
        this.match(SqlParser.CONDITION);
        this.state = 4296;
        this.match(SqlParser.FOR);
        this.state = 4303;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.ZERO_DECIMAL:
        case SqlParser.ONE_DECIMAL:
        case SqlParser.TWO_DECIMAL:
        case SqlParser.DECIMAL_LITERAL:
            this.state = 4297;
            this.decimalLiteral();
            break;
        case SqlParser.SQLSTATE:
            this.state = 4298;
            this.match(SqlParser.SQLSTATE);
            this.state = 4300;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.VALUE) {
                this.state = 4299;
                this.match(SqlParser.VALUE);
            }

            this.state = 4302;
            this.match(SqlParser.STRING_LITERAL);
            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 DeclareCursorContext(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_declareCursor;
    return this;
}

DeclareCursorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DeclareCursorContext.prototype.constructor = DeclareCursorContext;

DeclareCursorContext.prototype.DECLARE = function() {
    return this.getToken(SqlParser.DECLARE, 0);
};

DeclareCursorContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

DeclareCursorContext.prototype.CURSOR = function() {
    return this.getToken(SqlParser.CURSOR, 0);
};

DeclareCursorContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

DeclareCursorContext.prototype.selectStatement = function() {
    return this.getTypedRuleContext(SelectStatementContext,0);
};

DeclareCursorContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDeclareCursor(this);
	}
};

DeclareCursorContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDeclareCursor(this);
	}
};

DeclareCursorContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDeclareCursor(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DeclareCursorContext = DeclareCursorContext;

SqlParser.prototype.declareCursor = function() {

    var localctx = new DeclareCursorContext(this, this._ctx, this.state);
    this.enterRule(localctx, 372, SqlParser.RULE_declareCursor);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4305;
        this.match(SqlParser.DECLARE);
        this.state = 4306;
        this.uid();
        this.state = 4307;
        this.match(SqlParser.CURSOR);
        this.state = 4308;
        this.match(SqlParser.FOR);
        this.state = 4309;
        this.selectStatement();
    } 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 DeclareHandlerContext(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_declareHandler;
    this.handlerAction = null; // Token
    return this;
}

DeclareHandlerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DeclareHandlerContext.prototype.constructor = DeclareHandlerContext;

DeclareHandlerContext.prototype.DECLARE = function() {
    return this.getToken(SqlParser.DECLARE, 0);
};

DeclareHandlerContext.prototype.HANDLER = function() {
    return this.getToken(SqlParser.HANDLER, 0);
};

DeclareHandlerContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

DeclareHandlerContext.prototype.handlerConditionValue = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(HandlerConditionValueContext);
    } else {
        return this.getTypedRuleContext(HandlerConditionValueContext,i);
    }
};

DeclareHandlerContext.prototype.routineBody = function() {
    return this.getTypedRuleContext(RoutineBodyContext,0);
};

DeclareHandlerContext.prototype.CONTINUE = function() {
    return this.getToken(SqlParser.CONTINUE, 0);
};

DeclareHandlerContext.prototype.EXIT = function() {
    return this.getToken(SqlParser.EXIT, 0);
};

DeclareHandlerContext.prototype.UNDO = function() {
    return this.getToken(SqlParser.UNDO, 0);
};

DeclareHandlerContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


DeclareHandlerContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDeclareHandler(this);
	}
};

DeclareHandlerContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDeclareHandler(this);
	}
};

DeclareHandlerContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDeclareHandler(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DeclareHandlerContext = DeclareHandlerContext;

SqlParser.prototype.declareHandler = function() {

    var localctx = new DeclareHandlerContext(this, this._ctx, this.state);
    this.enterRule(localctx, 374, SqlParser.RULE_declareHandler);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4311;
        this.match(SqlParser.DECLARE);
        this.state = 4312;
        localctx.handlerAction = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.CONTINUE || _la===SqlParser.EXIT || _la===SqlParser.UNDO)) {
            localctx.handlerAction = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 4313;
        this.match(SqlParser.HANDLER);
        this.state = 4314;
        this.match(SqlParser.FOR);
        this.state = 4315;
        this.handlerConditionValue();
        this.state = 4320;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 4316;
            this.match(SqlParser.COMMA);
            this.state = 4317;
            this.handlerConditionValue();
            this.state = 4322;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 4323;
        this.routineBody();
    } 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 HandlerConditionValueContext(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_handlerConditionValue;
    return this;
}

HandlerConditionValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
HandlerConditionValueContext.prototype.constructor = HandlerConditionValueContext;


 
HandlerConditionValueContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function HandlerConditionWarningContext(parser, ctx) {
	HandlerConditionValueContext.call(this, parser);
    HandlerConditionValueContext.prototype.copyFrom.call(this, ctx);
    return this;
}

HandlerConditionWarningContext.prototype = Object.create(HandlerConditionValueContext.prototype);
HandlerConditionWarningContext.prototype.constructor = HandlerConditionWarningContext;

SqlParser.HandlerConditionWarningContext = HandlerConditionWarningContext;

HandlerConditionWarningContext.prototype.SQLWARNING = function() {
    return this.getToken(SqlParser.SQLWARNING, 0);
};
HandlerConditionWarningContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterHandlerConditionWarning(this);
	}
};

HandlerConditionWarningContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitHandlerConditionWarning(this);
	}
};

HandlerConditionWarningContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitHandlerConditionWarning(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function HandlerConditionCodeContext(parser, ctx) {
	HandlerConditionValueContext.call(this, parser);
    HandlerConditionValueContext.prototype.copyFrom.call(this, ctx);
    return this;
}

HandlerConditionCodeContext.prototype = Object.create(HandlerConditionValueContext.prototype);
HandlerConditionCodeContext.prototype.constructor = HandlerConditionCodeContext;

SqlParser.HandlerConditionCodeContext = HandlerConditionCodeContext;

HandlerConditionCodeContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};
HandlerConditionCodeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterHandlerConditionCode(this);
	}
};

HandlerConditionCodeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitHandlerConditionCode(this);
	}
};

HandlerConditionCodeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitHandlerConditionCode(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function HandlerConditionNotfoundContext(parser, ctx) {
	HandlerConditionValueContext.call(this, parser);
    HandlerConditionValueContext.prototype.copyFrom.call(this, ctx);
    return this;
}

HandlerConditionNotfoundContext.prototype = Object.create(HandlerConditionValueContext.prototype);
HandlerConditionNotfoundContext.prototype.constructor = HandlerConditionNotfoundContext;

SqlParser.HandlerConditionNotfoundContext = HandlerConditionNotfoundContext;

HandlerConditionNotfoundContext.prototype.NOT = function() {
    return this.getToken(SqlParser.NOT, 0);
};

HandlerConditionNotfoundContext.prototype.FOUND = function() {
    return this.getToken(SqlParser.FOUND, 0);
};
HandlerConditionNotfoundContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterHandlerConditionNotfound(this);
	}
};

HandlerConditionNotfoundContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitHandlerConditionNotfound(this);
	}
};

HandlerConditionNotfoundContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitHandlerConditionNotfound(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function HandlerConditionStateContext(parser, ctx) {
	HandlerConditionValueContext.call(this, parser);
    HandlerConditionValueContext.prototype.copyFrom.call(this, ctx);
    return this;
}

HandlerConditionStateContext.prototype = Object.create(HandlerConditionValueContext.prototype);
HandlerConditionStateContext.prototype.constructor = HandlerConditionStateContext;

SqlParser.HandlerConditionStateContext = HandlerConditionStateContext;

HandlerConditionStateContext.prototype.SQLSTATE = function() {
    return this.getToken(SqlParser.SQLSTATE, 0);
};

HandlerConditionStateContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

HandlerConditionStateContext.prototype.VALUE = function() {
    return this.getToken(SqlParser.VALUE, 0);
};
HandlerConditionStateContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterHandlerConditionState(this);
	}
};

HandlerConditionStateContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitHandlerConditionState(this);
	}
};

HandlerConditionStateContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitHandlerConditionState(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function HandlerConditionExceptionContext(parser, ctx) {
	HandlerConditionValueContext.call(this, parser);
    HandlerConditionValueContext.prototype.copyFrom.call(this, ctx);
    return this;
}

HandlerConditionExceptionContext.prototype = Object.create(HandlerConditionValueContext.prototype);
HandlerConditionExceptionContext.prototype.constructor = HandlerConditionExceptionContext;

SqlParser.HandlerConditionExceptionContext = HandlerConditionExceptionContext;

HandlerConditionExceptionContext.prototype.SQLEXCEPTION = function() {
    return this.getToken(SqlParser.SQLEXCEPTION, 0);
};
HandlerConditionExceptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterHandlerConditionException(this);
	}
};

HandlerConditionExceptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitHandlerConditionException(this);
	}
};

HandlerConditionExceptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitHandlerConditionException(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function HandlerConditionNameContext(parser, ctx) {
	HandlerConditionValueContext.call(this, parser);
    HandlerConditionValueContext.prototype.copyFrom.call(this, ctx);
    return this;
}

HandlerConditionNameContext.prototype = Object.create(HandlerConditionValueContext.prototype);
HandlerConditionNameContext.prototype.constructor = HandlerConditionNameContext;

SqlParser.HandlerConditionNameContext = HandlerConditionNameContext;

HandlerConditionNameContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};
HandlerConditionNameContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterHandlerConditionName(this);
	}
};

HandlerConditionNameContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitHandlerConditionName(this);
	}
};

HandlerConditionNameContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitHandlerConditionName(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.HandlerConditionValueContext = HandlerConditionValueContext;

SqlParser.prototype.handlerConditionValue = function() {

    var localctx = new HandlerConditionValueContext(this, this._ctx, this.state);
    this.enterRule(localctx, 376, SqlParser.RULE_handlerConditionValue);
    var _la = 0; // Token type
    try {
        this.state = 4336;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.ZERO_DECIMAL:
        case SqlParser.ONE_DECIMAL:
        case SqlParser.TWO_DECIMAL:
        case SqlParser.DECIMAL_LITERAL:
            localctx = new HandlerConditionCodeContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 4325;
            this.decimalLiteral();
            break;
        case SqlParser.SQLSTATE:
            localctx = new HandlerConditionStateContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 4326;
            this.match(SqlParser.SQLSTATE);
            this.state = 4328;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.VALUE) {
                this.state = 4327;
                this.match(SqlParser.VALUE);
            }

            this.state = 4330;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.CURRENT:
        case SqlParser.DATABASE:
        case SqlParser.DIAGNOSTICS:
        case SqlParser.LEFT:
        case SqlParser.NUMBER:
        case SqlParser.RIGHT:
        case SqlParser.STACKED:
        case SqlParser.DATE:
        case SqlParser.TIME:
        case SqlParser.TIMESTAMP:
        case SqlParser.DATETIME:
        case SqlParser.YEAR:
        case SqlParser.TEXT:
        case SqlParser.ENUM:
        case SqlParser.SERIAL:
        case SqlParser.JSON_VALID:
        case SqlParser.JSON_SCHEMA_VALID:
        case SqlParser.COUNT:
        case SqlParser.POSITION:
        case SqlParser.ACCOUNT:
        case SqlParser.ACTION:
        case SqlParser.AFTER:
        case SqlParser.AGGREGATE:
        case SqlParser.ALGORITHM:
        case SqlParser.ANY:
        case SqlParser.AT:
        case SqlParser.AUTHORS:
        case SqlParser.AUTOCOMMIT:
        case SqlParser.AUTOEXTEND_SIZE:
        case SqlParser.AUTO_INCREMENT:
        case SqlParser.AVG_ROW_LENGTH:
        case SqlParser.BEGIN:
        case SqlParser.BINLOG:
        case SqlParser.BIT:
        case SqlParser.BLOCK:
        case SqlParser.BOOL:
        case SqlParser.BOOLEAN:
        case SqlParser.BTREE:
        case SqlParser.CACHE:
        case SqlParser.CASCADED:
        case SqlParser.CHAIN:
        case SqlParser.CHANGED:
        case SqlParser.CHANNEL:
        case SqlParser.CHECKSUM:
        case SqlParser.PAGE_CHECKSUM:
        case SqlParser.CIPHER:
        case SqlParser.CLASS_ORIGIN:
        case SqlParser.CLIENT:
        case SqlParser.CLOSE:
        case SqlParser.COALESCE:
        case SqlParser.CODE:
        case SqlParser.COLUMNS:
        case SqlParser.COLUMN_FORMAT:
        case SqlParser.COLUMN_NAME:
        case SqlParser.COMMENT:
        case SqlParser.COMMIT:
        case SqlParser.COMPACT:
        case SqlParser.COMPLETION:
        case SqlParser.COMPRESSED:
        case SqlParser.COMPRESSION:
        case SqlParser.CONCURRENT:
        case SqlParser.CONNECTION:
        case SqlParser.CONSISTENT:
        case SqlParser.CONSTRAINT_CATALOG:
        case SqlParser.CONSTRAINT_SCHEMA:
        case SqlParser.CONSTRAINT_NAME:
        case SqlParser.CONTAINS:
        case SqlParser.CONTEXT:
        case SqlParser.CONTRIBUTORS:
        case SqlParser.COPY:
        case SqlParser.CPU:
        case SqlParser.CURSOR_NAME:
        case SqlParser.DATA:
        case SqlParser.DATAFILE:
        case SqlParser.DEALLOCATE:
        case SqlParser.DEFAULT_AUTH:
        case SqlParser.DEFINER:
        case SqlParser.DELAY_KEY_WRITE:
        case SqlParser.DES_KEY_FILE:
        case SqlParser.DIRECTORY:
        case SqlParser.DISABLE:
        case SqlParser.DISCARD:
        case SqlParser.DISK:
        case SqlParser.DO:
        case SqlParser.DUMPFILE:
        case SqlParser.DUPLICATE:
        case SqlParser.DYNAMIC:
        case SqlParser.ENABLE:
        case SqlParser.ENCRYPTION:
        case SqlParser.END:
        case SqlParser.ENDS:
        case SqlParser.ENGINE:
        case SqlParser.ENGINES:
        case SqlParser.ERROR:
        case SqlParser.ERRORS:
        case SqlParser.ESCAPE:
        case SqlParser.EVEN:
        case SqlParser.EVENT:
        case SqlParser.EVENTS:
        case SqlParser.EVERY:
        case SqlParser.EXCHANGE:
        case SqlParser.EXCLUSIVE:
        case SqlParser.EXPIRE:
        case SqlParser.EXPORT:
        case SqlParser.EXTENDED:
        case SqlParser.EXTENT_SIZE:
        case SqlParser.FAST:
        case SqlParser.FAULTS:
        case SqlParser.FIELDS:
        case SqlParser.FILE_BLOCK_SIZE:
        case SqlParser.FILTER:
        case SqlParser.FIRST:
        case SqlParser.FIXED:
        case SqlParser.FLUSH:
        case SqlParser.FOLLOWS:
        case SqlParser.FOUND:
        case SqlParser.FULL:
        case SqlParser.FUNCTION:
        case SqlParser.GENERAL:
        case SqlParser.GLOBAL:
        case SqlParser.GRANTS:
        case SqlParser.GROUP_REPLICATION:
        case SqlParser.HANDLER:
        case SqlParser.HASH:
        case SqlParser.HELP:
        case SqlParser.HOST:
        case SqlParser.HOSTS:
        case SqlParser.IDENTIFIED:
        case SqlParser.IGNORE_SERVER_IDS:
        case SqlParser.IMPORT:
        case SqlParser.INDEXES:
        case SqlParser.INITIAL_SIZE:
        case SqlParser.INPLACE:
        case SqlParser.INSERT_METHOD:
        case SqlParser.INSTALL:
        case SqlParser.INSTANCE:
        case SqlParser.INVISIBLE:
        case SqlParser.INVOKER:
        case SqlParser.IO:
        case SqlParser.IO_THREAD:
        case SqlParser.IPC:
        case SqlParser.ISOLATION:
        case SqlParser.ISSUER:
        case SqlParser.JSON:
        case SqlParser.KEY_BLOCK_SIZE:
        case SqlParser.LANGUAGE:
        case SqlParser.LAST:
        case SqlParser.LEAVES:
        case SqlParser.LESS:
        case SqlParser.LEVEL:
        case SqlParser.LIST:
        case SqlParser.LOCAL:
        case SqlParser.LOGFILE:
        case SqlParser.LOGS:
        case SqlParser.MASTER:
        case SqlParser.MASTER_AUTO_POSITION:
        case SqlParser.MASTER_CONNECT_RETRY:
        case SqlParser.MASTER_DELAY:
        case SqlParser.MASTER_HEARTBEAT_PERIOD:
        case SqlParser.MASTER_HOST:
        case SqlParser.MASTER_LOG_FILE:
        case SqlParser.MASTER_LOG_POS:
        case SqlParser.MASTER_PASSWORD:
        case SqlParser.MASTER_PORT:
        case SqlParser.MASTER_RETRY_COUNT:
        case SqlParser.MASTER_SSL:
        case SqlParser.MASTER_SSL_CA:
        case SqlParser.MASTER_SSL_CAPATH:
        case SqlParser.MASTER_SSL_CERT:
        case SqlParser.MASTER_SSL_CIPHER:
        case SqlParser.MASTER_SSL_CRL:
        case SqlParser.MASTER_SSL_CRLPATH:
        case SqlParser.MASTER_SSL_KEY:
        case SqlParser.MASTER_TLS_VERSION:
        case SqlParser.MASTER_USER:
        case SqlParser.MAX_CONNECTIONS_PER_HOUR:
        case SqlParser.MAX_QUERIES_PER_HOUR:
        case SqlParser.MAX_ROWS:
        case SqlParser.MAX_SIZE:
        case SqlParser.MAX_UPDATES_PER_HOUR:
        case SqlParser.MAX_USER_CONNECTIONS:
        case SqlParser.MEDIUM:
        case SqlParser.MERGE:
        case SqlParser.MESSAGE_TEXT:
        case SqlParser.MID:
        case SqlParser.MIGRATE:
        case SqlParser.MIN_ROWS:
        case SqlParser.MODE:
        case SqlParser.MODIFY:
        case SqlParser.MUTEX:
        case SqlParser.MYSQL:
        case SqlParser.MYSQL_ERRNO:
        case SqlParser.NAME:
        case SqlParser.NAMES:
        case SqlParser.NCHAR:
        case SqlParser.NEVER:
        case SqlParser.NEXT:
        case SqlParser.NO:
        case SqlParser.NODEGROUP:
        case SqlParser.NONE:
        case SqlParser.OFFLINE:
        case SqlParser.OFFSET:
        case SqlParser.OJ:
        case SqlParser.OLD_PASSWORD:
        case SqlParser.ONE:
        case SqlParser.ONLINE:
        case SqlParser.ONLY:
        case SqlParser.OPEN:
        case SqlParser.OPTIMIZER_COSTS:
        case SqlParser.OPTIONS:
        case SqlParser.OWNER:
        case SqlParser.PACK_KEYS:
        case SqlParser.PAGE:
        case SqlParser.PARSER:
        case SqlParser.PARTIAL:
        case SqlParser.PARTITIONING:
        case SqlParser.PARTITIONS:
        case SqlParser.PASSWORD:
        case SqlParser.PHASE:
        case SqlParser.PLUGIN:
        case SqlParser.PLUGIN_DIR:
        case SqlParser.PLUGINS:
        case SqlParser.PORT:
        case SqlParser.PRECEDES:
        case SqlParser.PREPARE:
        case SqlParser.PRESERVE:
        case SqlParser.PREV:
        case SqlParser.PROCESSLIST:
        case SqlParser.PROFILE:
        case SqlParser.PROFILES:
        case SqlParser.PROXY:
        case SqlParser.QUERY:
        case SqlParser.QUICK:
        case SqlParser.REBUILD:
        case SqlParser.RECOVER:
        case SqlParser.REDO_BUFFER_SIZE:
        case SqlParser.REDUNDANT:
        case SqlParser.RELAY:
        case SqlParser.RELAY_LOG_FILE:
        case SqlParser.RELAY_LOG_POS:
        case SqlParser.RELAYLOG:
        case SqlParser.REMOVE:
        case SqlParser.REORGANIZE:
        case SqlParser.REPAIR:
        case SqlParser.REPLICATE_DO_DB:
        case SqlParser.REPLICATE_DO_TABLE:
        case SqlParser.REPLICATE_IGNORE_DB:
        case SqlParser.REPLICATE_IGNORE_TABLE:
        case SqlParser.REPLICATE_REWRITE_DB:
        case SqlParser.REPLICATE_WILD_DO_TABLE:
        case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
        case SqlParser.REPLICATION:
        case SqlParser.RESET:
        case SqlParser.RESUME:
        case SqlParser.RETURNED_SQLSTATE:
        case SqlParser.RETURNS:
        case SqlParser.ROLE:
        case SqlParser.ROLLBACK:
        case SqlParser.ROLLUP:
        case SqlParser.ROTATE:
        case SqlParser.ROW:
        case SqlParser.ROWS:
        case SqlParser.ROW_FORMAT:
        case SqlParser.SAVEPOINT:
        case SqlParser.SCHEDULE:
        case SqlParser.SECURITY:
        case SqlParser.SERVER:
        case SqlParser.SESSION:
        case SqlParser.SHARE:
        case SqlParser.SHARED:
        case SqlParser.SIGNED:
        case SqlParser.SIMPLE:
        case SqlParser.SLAVE:
        case SqlParser.SLOW:
        case SqlParser.SNAPSHOT:
        case SqlParser.SOCKET:
        case SqlParser.SOME:
        case SqlParser.SONAME:
        case SqlParser.SOUNDS:
        case SqlParser.SOURCE:
        case SqlParser.SQL_AFTER_GTIDS:
        case SqlParser.SQL_AFTER_MTS_GAPS:
        case SqlParser.SQL_BEFORE_GTIDS:
        case SqlParser.SQL_BUFFER_RESULT:
        case SqlParser.SQL_CACHE:
        case SqlParser.SQL_NO_CACHE:
        case SqlParser.SQL_THREAD:
        case SqlParser.START:
        case SqlParser.STARTS:
        case SqlParser.STATS_AUTO_RECALC:
        case SqlParser.STATS_PERSISTENT:
        case SqlParser.STATS_SAMPLE_PAGES:
        case SqlParser.STATUS:
        case SqlParser.STOP:
        case SqlParser.STORAGE:
        case SqlParser.STRING:
        case SqlParser.SUBCLASS_ORIGIN:
        case SqlParser.SUBJECT:
        case SqlParser.SUBPARTITION:
        case SqlParser.SUBPARTITIONS:
        case SqlParser.SUSPEND:
        case SqlParser.SWAPS:
        case SqlParser.SWITCHES:
        case SqlParser.TABLE_NAME:
        case SqlParser.TABLESPACE:
        case SqlParser.TEMPORARY:
        case SqlParser.TEMPTABLE:
        case SqlParser.THAN:
        case SqlParser.TRADITIONAL:
        case SqlParser.TRANSACTION:
        case SqlParser.TRANSACTIONAL:
        case SqlParser.TRIGGERS:
        case SqlParser.TRUNCATE:
        case SqlParser.UNDEFINED:
        case SqlParser.UNDOFILE:
        case SqlParser.UNDO_BUFFER_SIZE:
        case SqlParser.UNINSTALL:
        case SqlParser.UNKNOWN:
        case SqlParser.UNTIL:
        case SqlParser.UPGRADE:
        case SqlParser.USER:
        case SqlParser.USE_FRM:
        case SqlParser.USER_RESOURCES:
        case SqlParser.VALIDATION:
        case SqlParser.VALUE:
        case SqlParser.VARIABLES:
        case SqlParser.VIEW:
        case SqlParser.VISIBLE:
        case SqlParser.WAIT:
        case SqlParser.WARNINGS:
        case SqlParser.WITHOUT:
        case SqlParser.WORK:
        case SqlParser.WRAPPER:
        case SqlParser.X509:
        case SqlParser.XA:
        case SqlParser.XML:
        case SqlParser.INTERNAL:
        case SqlParser.QUARTER:
        case SqlParser.MONTH:
        case SqlParser.DAY:
        case SqlParser.HOUR:
        case SqlParser.MINUTE:
        case SqlParser.WEEK:
        case SqlParser.SECOND:
        case SqlParser.MICROSECOND:
        case SqlParser.TABLES:
        case SqlParser.ROUTINE:
        case SqlParser.EXECUTE:
        case SqlParser.FILE:
        case SqlParser.PROCESS:
        case SqlParser.RELOAD:
        case SqlParser.SHUTDOWN:
        case SqlParser.SUPER:
        case SqlParser.PRIVILEGES:
        case SqlParser.AUDIT_ADMIN:
        case SqlParser.BACKUP_ADMIN:
        case SqlParser.BINLOG_ADMIN:
        case SqlParser.BINLOG_ENCRYPTION_ADMIN:
        case SqlParser.CLONE_ADMIN:
        case SqlParser.CONNECTION_ADMIN:
        case SqlParser.ENCRYPTION_KEY_ADMIN:
        case SqlParser.FIREWALL_ADMIN:
        case SqlParser.FIREWALL_USER:
        case SqlParser.GROUP_REPLICATION_ADMIN:
        case SqlParser.INNODB_REDO_LOG_ARCHIVE:
        case SqlParser.NDB_STORED_USER:
        case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
        case SqlParser.REPLICATION_APPLIER:
        case SqlParser.REPLICATION_SLAVE_ADMIN:
        case SqlParser.RESOURCE_GROUP_ADMIN:
        case SqlParser.RESOURCE_GROUP_USER:
        case SqlParser.ROLE_ADMIN:
        case SqlParser.SESSION_VARIABLES_ADMIN:
        case SqlParser.SET_USER_ID:
        case SqlParser.SHOW_ROUTINE:
        case SqlParser.SYSTEM_VARIABLES_ADMIN:
        case SqlParser.TABLE_ENCRYPTION_ADMIN:
        case SqlParser.VERSION_TOKEN_ADMIN:
        case SqlParser.XA_RECOVER_ADMIN:
        case SqlParser.ARMSCII8:
        case SqlParser.ASCII:
        case SqlParser.BIG5:
        case SqlParser.CP1250:
        case SqlParser.CP1251:
        case SqlParser.CP1256:
        case SqlParser.CP1257:
        case SqlParser.CP850:
        case SqlParser.CP852:
        case SqlParser.CP866:
        case SqlParser.CP932:
        case SqlParser.DEC8:
        case SqlParser.EUCJPMS:
        case SqlParser.EUCKR:
        case SqlParser.GB2312:
        case SqlParser.GBK:
        case SqlParser.GEOSTD8:
        case SqlParser.GREEK:
        case SqlParser.HEBREW:
        case SqlParser.HP8:
        case SqlParser.KEYBCS2:
        case SqlParser.KOI8R:
        case SqlParser.KOI8U:
        case SqlParser.LATIN1:
        case SqlParser.LATIN2:
        case SqlParser.LATIN5:
        case SqlParser.LATIN7:
        case SqlParser.MACCE:
        case SqlParser.MACROMAN:
        case SqlParser.SJIS:
        case SqlParser.SWE7:
        case SqlParser.TIS620:
        case SqlParser.UCS2:
        case SqlParser.UJIS:
        case SqlParser.UTF16:
        case SqlParser.UTF16LE:
        case SqlParser.UTF32:
        case SqlParser.UTF8:
        case SqlParser.UTF8MB3:
        case SqlParser.UTF8MB4:
        case SqlParser.ARCHIVE:
        case SqlParser.BLACKHOLE:
        case SqlParser.CSV:
        case SqlParser.FEDERATED:
        case SqlParser.INNODB:
        case SqlParser.MEMORY:
        case SqlParser.MRG_MYISAM:
        case SqlParser.MYISAM:
        case SqlParser.NDB:
        case SqlParser.NDBCLUSTER:
        case SqlParser.PERFORMANCE_SCHEMA:
        case SqlParser.TOKUDB:
        case SqlParser.REPEATABLE:
        case SqlParser.COMMITTED:
        case SqlParser.UNCOMMITTED:
        case SqlParser.SERIALIZABLE:
        case SqlParser.GEOMETRYCOLLECTION:
        case SqlParser.LINESTRING:
        case SqlParser.MULTILINESTRING:
        case SqlParser.MULTIPOINT:
        case SqlParser.MULTIPOLYGON:
        case SqlParser.POINT:
        case SqlParser.POLYGON:
        case SqlParser.ABS:
        case SqlParser.ACOS:
        case SqlParser.ADDDATE:
        case SqlParser.ADDTIME:
        case SqlParser.AES_DECRYPT:
        case SqlParser.AES_ENCRYPT:
        case SqlParser.AREA:
        case SqlParser.ASBINARY:
        case SqlParser.ASIN:
        case SqlParser.ASTEXT:
        case SqlParser.ASWKB:
        case SqlParser.ASWKT:
        case SqlParser.ASYMMETRIC_DECRYPT:
        case SqlParser.ASYMMETRIC_DERIVE:
        case SqlParser.ASYMMETRIC_ENCRYPT:
        case SqlParser.ASYMMETRIC_SIGN:
        case SqlParser.ASYMMETRIC_VERIFY:
        case SqlParser.ATAN:
        case SqlParser.ATAN2:
        case SqlParser.BENCHMARK:
        case SqlParser.BIN:
        case SqlParser.BIT_COUNT:
        case SqlParser.BIT_LENGTH:
        case SqlParser.BUFFER:
        case SqlParser.CATALOG_NAME:
        case SqlParser.CEIL:
        case SqlParser.CEILING:
        case SqlParser.CENTROID:
        case SqlParser.CHARACTER_LENGTH:
        case SqlParser.CHARSET:
        case SqlParser.CHAR_LENGTH:
        case SqlParser.COERCIBILITY:
        case SqlParser.COLLATION:
        case SqlParser.COMPRESS:
        case SqlParser.CONCAT:
        case SqlParser.CONCAT_WS:
        case SqlParser.CONNECTION_ID:
        case SqlParser.CONV:
        case SqlParser.CONVERT_TZ:
        case SqlParser.COS:
        case SqlParser.COT:
        case SqlParser.CRC32:
        case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
        case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
        case SqlParser.CREATE_DH_PARAMETERS:
        case SqlParser.CREATE_DIGEST:
        case SqlParser.CROSSES:
        case SqlParser.DATEDIFF:
        case SqlParser.DATE_FORMAT:
        case SqlParser.DAYNAME:
        case SqlParser.DAYOFMONTH:
        case SqlParser.DAYOFWEEK:
        case SqlParser.DAYOFYEAR:
        case SqlParser.DECODE:
        case SqlParser.DEGREES:
        case SqlParser.DES_DECRYPT:
        case SqlParser.DES_ENCRYPT:
        case SqlParser.DIMENSION:
        case SqlParser.DISJOINT:
        case SqlParser.ELT:
        case SqlParser.ENCODE:
        case SqlParser.ENCRYPT:
        case SqlParser.ENDPOINT:
        case SqlParser.ENVELOPE:
        case SqlParser.EQUALS:
        case SqlParser.EXP:
        case SqlParser.EXPORT_SET:
        case SqlParser.EXTERIORRING:
        case SqlParser.EXTRACTVALUE:
        case SqlParser.FIELD:
        case SqlParser.FIND_IN_SET:
        case SqlParser.FLOOR:
        case SqlParser.FORMAT:
        case SqlParser.FOUND_ROWS:
        case SqlParser.FROM_BASE64:
        case SqlParser.FROM_DAYS:
        case SqlParser.FROM_UNIXTIME:
        case SqlParser.GEOMCOLLFROMTEXT:
        case SqlParser.GEOMCOLLFROMWKB:
        case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.GEOMETRYFROMTEXT:
        case SqlParser.GEOMETRYFROMWKB:
        case SqlParser.GEOMETRYN:
        case SqlParser.GEOMETRYTYPE:
        case SqlParser.GEOMFROMTEXT:
        case SqlParser.GEOMFROMWKB:
        case SqlParser.GET_FORMAT:
        case SqlParser.GET_LOCK:
        case SqlParser.GLENGTH:
        case SqlParser.GREATEST:
        case SqlParser.GTID_SUBSET:
        case SqlParser.GTID_SUBTRACT:
        case SqlParser.HEX:
        case SqlParser.IFNULL:
        case SqlParser.INET6_ATON:
        case SqlParser.INET6_NTOA:
        case SqlParser.INET_ATON:
        case SqlParser.INET_NTOA:
        case SqlParser.INSTR:
        case SqlParser.INTERIORRINGN:
        case SqlParser.INTERSECTS:
        case SqlParser.ISCLOSED:
        case SqlParser.ISEMPTY:
        case SqlParser.ISNULL:
        case SqlParser.ISSIMPLE:
        case SqlParser.IS_FREE_LOCK:
        case SqlParser.IS_IPV4:
        case SqlParser.IS_IPV4_COMPAT:
        case SqlParser.IS_IPV4_MAPPED:
        case SqlParser.IS_IPV6:
        case SqlParser.IS_USED_LOCK:
        case SqlParser.LAST_INSERT_ID:
        case SqlParser.LCASE:
        case SqlParser.LEAST:
        case SqlParser.LENGTH:
        case SqlParser.LINEFROMTEXT:
        case SqlParser.LINEFROMWKB:
        case SqlParser.LINESTRINGFROMTEXT:
        case SqlParser.LINESTRINGFROMWKB:
        case SqlParser.LN:
        case SqlParser.LOAD_FILE:
        case SqlParser.LOCATE:
        case SqlParser.LOG:
        case SqlParser.LOG10:
        case SqlParser.LOG2:
        case SqlParser.LOWER:
        case SqlParser.LPAD:
        case SqlParser.LTRIM:
        case SqlParser.MAKEDATE:
        case SqlParser.MAKETIME:
        case SqlParser.MAKE_SET:
        case SqlParser.MASTER_POS_WAIT:
        case SqlParser.MBRCONTAINS:
        case SqlParser.MBRDISJOINT:
        case SqlParser.MBREQUAL:
        case SqlParser.MBRINTERSECTS:
        case SqlParser.MBROVERLAPS:
        case SqlParser.MBRTOUCHES:
        case SqlParser.MBRWITHIN:
        case SqlParser.MD5:
        case SqlParser.MLINEFROMTEXT:
        case SqlParser.MLINEFROMWKB:
        case SqlParser.MONTHNAME:
        case SqlParser.MPOINTFROMTEXT:
        case SqlParser.MPOINTFROMWKB:
        case SqlParser.MPOLYFROMTEXT:
        case SqlParser.MPOLYFROMWKB:
        case SqlParser.MULTILINESTRINGFROMTEXT:
        case SqlParser.MULTILINESTRINGFROMWKB:
        case SqlParser.MULTIPOINTFROMTEXT:
        case SqlParser.MULTIPOINTFROMWKB:
        case SqlParser.MULTIPOLYGONFROMTEXT:
        case SqlParser.MULTIPOLYGONFROMWKB:
        case SqlParser.NAME_CONST:
        case SqlParser.NULLIF:
        case SqlParser.NUMGEOMETRIES:
        case SqlParser.NUMINTERIORRINGS:
        case SqlParser.NUMPOINTS:
        case SqlParser.OCT:
        case SqlParser.OCTET_LENGTH:
        case SqlParser.ORD:
        case SqlParser.OVERLAPS:
        case SqlParser.PERIOD_ADD:
        case SqlParser.PERIOD_DIFF:
        case SqlParser.PI:
        case SqlParser.POINTFROMTEXT:
        case SqlParser.POINTFROMWKB:
        case SqlParser.POINTN:
        case SqlParser.POLYFROMTEXT:
        case SqlParser.POLYFROMWKB:
        case SqlParser.POLYGONFROMTEXT:
        case SqlParser.POLYGONFROMWKB:
        case SqlParser.POW:
        case SqlParser.POWER:
        case SqlParser.QUOTE:
        case SqlParser.RADIANS:
        case SqlParser.RAND:
        case SqlParser.RANDOM_BYTES:
        case SqlParser.RELEASE_LOCK:
        case SqlParser.REVERSE:
        case SqlParser.ROUND:
        case SqlParser.ROW_COUNT:
        case SqlParser.RPAD:
        case SqlParser.RTRIM:
        case SqlParser.SEC_TO_TIME:
        case SqlParser.SESSION_USER:
        case SqlParser.SHA:
        case SqlParser.SHA1:
        case SqlParser.SHA2:
        case SqlParser.SCHEMA_NAME:
        case SqlParser.SIGN:
        case SqlParser.SIN:
        case SqlParser.SLEEP:
        case SqlParser.SOUNDEX:
        case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
        case SqlParser.SQRT:
        case SqlParser.SRID:
        case SqlParser.STARTPOINT:
        case SqlParser.STRCMP:
        case SqlParser.STR_TO_DATE:
        case SqlParser.ST_AREA:
        case SqlParser.ST_ASBINARY:
        case SqlParser.ST_ASTEXT:
        case SqlParser.ST_ASWKB:
        case SqlParser.ST_ASWKT:
        case SqlParser.ST_BUFFER:
        case SqlParser.ST_CENTROID:
        case SqlParser.ST_CONTAINS:
        case SqlParser.ST_CROSSES:
        case SqlParser.ST_DIFFERENCE:
        case SqlParser.ST_DIMENSION:
        case SqlParser.ST_DISJOINT:
        case SqlParser.ST_DISTANCE:
        case SqlParser.ST_ENDPOINT:
        case SqlParser.ST_ENVELOPE:
        case SqlParser.ST_EQUALS:
        case SqlParser.ST_EXTERIORRING:
        case SqlParser.ST_GEOMCOLLFROMTEXT:
        case SqlParser.ST_GEOMCOLLFROMTXT:
        case SqlParser.ST_GEOMCOLLFROMWKB:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.ST_GEOMETRYFROMTEXT:
        case SqlParser.ST_GEOMETRYFROMWKB:
        case SqlParser.ST_GEOMETRYN:
        case SqlParser.ST_GEOMETRYTYPE:
        case SqlParser.ST_GEOMFROMTEXT:
        case SqlParser.ST_GEOMFROMWKB:
        case SqlParser.ST_INTERIORRINGN:
        case SqlParser.ST_INTERSECTION:
        case SqlParser.ST_INTERSECTS:
        case SqlParser.ST_ISCLOSED:
        case SqlParser.ST_ISEMPTY:
        case SqlParser.ST_ISSIMPLE:
        case SqlParser.ST_LINEFROMTEXT:
        case SqlParser.ST_LINEFROMWKB:
        case SqlParser.ST_LINESTRINGFROMTEXT:
        case SqlParser.ST_LINESTRINGFROMWKB:
        case SqlParser.ST_NUMGEOMETRIES:
        case SqlParser.ST_NUMINTERIORRING:
        case SqlParser.ST_NUMINTERIORRINGS:
        case SqlParser.ST_NUMPOINTS:
        case SqlParser.ST_OVERLAPS:
        case SqlParser.ST_POINTFROMTEXT:
        case SqlParser.ST_POINTFROMWKB:
        case SqlParser.ST_POINTN:
        case SqlParser.ST_POLYFROMTEXT:
        case SqlParser.ST_POLYFROMWKB:
        case SqlParser.ST_POLYGONFROMTEXT:
        case SqlParser.ST_POLYGONFROMWKB:
        case SqlParser.ST_SRID:
        case SqlParser.ST_STARTPOINT:
        case SqlParser.ST_SYMDIFFERENCE:
        case SqlParser.ST_TOUCHES:
        case SqlParser.ST_UNION:
        case SqlParser.ST_WITHIN:
        case SqlParser.ST_X:
        case SqlParser.ST_Y:
        case SqlParser.SUBDATE:
        case SqlParser.SUBSTRING_INDEX:
        case SqlParser.SUBTIME:
        case SqlParser.SYSTEM_USER:
        case SqlParser.TAN:
        case SqlParser.TIMEDIFF:
        case SqlParser.TIMESTAMPADD:
        case SqlParser.TIMESTAMPDIFF:
        case SqlParser.TIME_FORMAT:
        case SqlParser.TIME_TO_SEC:
        case SqlParser.TOUCHES:
        case SqlParser.TO_BASE64:
        case SqlParser.TO_DAYS:
        case SqlParser.TO_SECONDS:
        case SqlParser.UCASE:
        case SqlParser.UNCOMPRESS:
        case SqlParser.UNCOMPRESSED_LENGTH:
        case SqlParser.UNHEX:
        case SqlParser.UNIX_TIMESTAMP:
        case SqlParser.UPDATEXML:
        case SqlParser.UPPER:
        case SqlParser.UUID:
        case SqlParser.UUID_SHORT:
        case SqlParser.VALIDATE_PASSWORD_STRENGTH:
        case SqlParser.VERSION:
        case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
        case SqlParser.WEEKDAY:
        case SqlParser.WEEKOFYEAR:
        case SqlParser.WEIGHT_STRING:
        case SqlParser.WITHIN:
        case SqlParser.YEARWEEK:
        case SqlParser.Y_FUNCTION:
        case SqlParser.X_FUNCTION:
        case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
        case SqlParser.STRING_LITERAL:
        case SqlParser.ID:
        case SqlParser.REVERSE_QUOTE_ID:
            localctx = new HandlerConditionNameContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 4331;
            this.uid();
            break;
        case SqlParser.SQLWARNING:
            localctx = new HandlerConditionWarningContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 4332;
            this.match(SqlParser.SQLWARNING);
            break;
        case SqlParser.NOT:
            localctx = new HandlerConditionNotfoundContext(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 4333;
            this.match(SqlParser.NOT);
            this.state = 4334;
            this.match(SqlParser.FOUND);
            break;
        case SqlParser.SQLEXCEPTION:
            localctx = new HandlerConditionExceptionContext(this, localctx);
            this.enterOuterAlt(localctx, 6);
            this.state = 4335;
            this.match(SqlParser.SQLEXCEPTION);
            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 ProcedureSqlStatementContext(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_procedureSqlStatement;
    return this;
}

ProcedureSqlStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ProcedureSqlStatementContext.prototype.constructor = ProcedureSqlStatementContext;

ProcedureSqlStatementContext.prototype.SEMI = function() {
    return this.getToken(SqlParser.SEMI, 0);
};

ProcedureSqlStatementContext.prototype.compoundStatement = function() {
    return this.getTypedRuleContext(CompoundStatementContext,0);
};

ProcedureSqlStatementContext.prototype.sqlStatement = function() {
    return this.getTypedRuleContext(SqlStatementContext,0);
};

ProcedureSqlStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterProcedureSqlStatement(this);
	}
};

ProcedureSqlStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitProcedureSqlStatement(this);
	}
};

ProcedureSqlStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitProcedureSqlStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ProcedureSqlStatementContext = ProcedureSqlStatementContext;

SqlParser.prototype.procedureSqlStatement = function() {

    var localctx = new ProcedureSqlStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 378, SqlParser.RULE_procedureSqlStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4340;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,624,this._ctx);
        switch(la_) {
        case 1:
            this.state = 4338;
            this.compoundStatement();
            break;

        case 2:
            this.state = 4339;
            this.sqlStatement();
            break;

        }
        this.state = 4342;
        this.match(SqlParser.SEMI);
    } catch (re) {
    	if(re instanceof antlr4.error.RecognitionException) {
	        localctx.exception = re;
	        this._errHandler.reportError(this, re);
	        this._errHandler.recover(this, re);
	    } else {
	    	throw re;
	    }
    } finally {
        this.exitRule();
    }
    return localctx;
};


function CaseAlternativeContext(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_caseAlternative;
    return this;
}

CaseAlternativeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CaseAlternativeContext.prototype.constructor = CaseAlternativeContext;

CaseAlternativeContext.prototype.WHEN = function() {
    return this.getToken(SqlParser.WHEN, 0);
};

CaseAlternativeContext.prototype.THEN = function() {
    return this.getToken(SqlParser.THEN, 0);
};

CaseAlternativeContext.prototype.constant = function() {
    return this.getTypedRuleContext(ConstantContext,0);
};

CaseAlternativeContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

CaseAlternativeContext.prototype.procedureSqlStatement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ProcedureSqlStatementContext);
    } else {
        return this.getTypedRuleContext(ProcedureSqlStatementContext,i);
    }
};

CaseAlternativeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCaseAlternative(this);
	}
};

CaseAlternativeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCaseAlternative(this);
	}
};

CaseAlternativeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCaseAlternative(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CaseAlternativeContext = CaseAlternativeContext;

SqlParser.prototype.caseAlternative = function() {

    var localctx = new CaseAlternativeContext(this, this._ctx, this.state);
    this.enterRule(localctx, 380, SqlParser.RULE_caseAlternative);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4344;
        this.match(SqlParser.WHEN);
        this.state = 4347;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,625,this._ctx);
        switch(la_) {
        case 1:
            this.state = 4345;
            this.constant();
            break;

        case 2:
            this.state = 4346;
            this.expression(0);
            break;

        }
        this.state = 4349;
        this.match(SqlParser.THEN);
        this.state = 4351; 
        this._errHandler.sync(this);
        var _alt = 1;
        do {
        	switch (_alt) {
        	case 1:
        		this.state = 4350;
        		this.procedureSqlStatement();
        		break;
        	default:
        		throw new antlr4.error.NoViableAltException(this);
        	}
        	this.state = 4353; 
        	this._errHandler.sync(this);
        	_alt = this._interp.adaptivePredict(this._input,626, this._ctx);
        } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER );
    } 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 ElifAlternativeContext(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_elifAlternative;
    return this;
}

ElifAlternativeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ElifAlternativeContext.prototype.constructor = ElifAlternativeContext;

ElifAlternativeContext.prototype.ELSEIF = function() {
    return this.getToken(SqlParser.ELSEIF, 0);
};

ElifAlternativeContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

ElifAlternativeContext.prototype.THEN = function() {
    return this.getToken(SqlParser.THEN, 0);
};

ElifAlternativeContext.prototype.procedureSqlStatement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ProcedureSqlStatementContext);
    } else {
        return this.getTypedRuleContext(ProcedureSqlStatementContext,i);
    }
};

ElifAlternativeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterElifAlternative(this);
	}
};

ElifAlternativeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitElifAlternative(this);
	}
};

ElifAlternativeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitElifAlternative(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ElifAlternativeContext = ElifAlternativeContext;

SqlParser.prototype.elifAlternative = function() {

    var localctx = new ElifAlternativeContext(this, this._ctx, this.state);
    this.enterRule(localctx, 382, SqlParser.RULE_elifAlternative);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4355;
        this.match(SqlParser.ELSEIF);
        this.state = 4356;
        this.expression(0);
        this.state = 4357;
        this.match(SqlParser.THEN);
        this.state = 4359; 
        this._errHandler.sync(this);
        var _alt = 1;
        do {
        	switch (_alt) {
        	case 1:
        		this.state = 4358;
        		this.procedureSqlStatement();
        		break;
        	default:
        		throw new antlr4.error.NoViableAltException(this);
        	}
        	this.state = 4361; 
        	this._errHandler.sync(this);
        	_alt = this._interp.adaptivePredict(this._input,627, this._ctx);
        } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER );
    } 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 AlterUserContext(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_alterUser;
    return this;
}

AlterUserContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AlterUserContext.prototype.constructor = AlterUserContext;


 
AlterUserContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function AlterUserMysqlV56Context(parser, ctx) {
	AlterUserContext.call(this, parser);
    AlterUserContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterUserMysqlV56Context.prototype = Object.create(AlterUserContext.prototype);
AlterUserMysqlV56Context.prototype.constructor = AlterUserMysqlV56Context;

SqlParser.AlterUserMysqlV56Context = AlterUserMysqlV56Context;

AlterUserMysqlV56Context.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterUserMysqlV56Context.prototype.USER = function() {
    return this.getToken(SqlParser.USER, 0);
};

AlterUserMysqlV56Context.prototype.userSpecification = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserSpecificationContext);
    } else {
        return this.getTypedRuleContext(UserSpecificationContext,i);
    }
};

AlterUserMysqlV56Context.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

AlterUserMysqlV56Context.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterUserMysqlV56(this);
	}
};

AlterUserMysqlV56Context.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterUserMysqlV56(this);
	}
};

AlterUserMysqlV56Context.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterUserMysqlV56(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AlterUserMysqlV57Context(parser, ctx) {
	AlterUserContext.call(this, parser);
    this.tlsNone = null; // Token;
    AlterUserContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AlterUserMysqlV57Context.prototype = Object.create(AlterUserContext.prototype);
AlterUserMysqlV57Context.prototype.constructor = AlterUserMysqlV57Context;

SqlParser.AlterUserMysqlV57Context = AlterUserMysqlV57Context;

AlterUserMysqlV57Context.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

AlterUserMysqlV57Context.prototype.USER = function() {
    return this.getToken(SqlParser.USER, 0);
};

AlterUserMysqlV57Context.prototype.userAuthOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserAuthOptionContext);
    } else {
        return this.getTypedRuleContext(UserAuthOptionContext,i);
    }
};

AlterUserMysqlV57Context.prototype.ifExists = function() {
    return this.getTypedRuleContext(IfExistsContext,0);
};

AlterUserMysqlV57Context.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


AlterUserMysqlV57Context.prototype.REQUIRE = function() {
    return this.getToken(SqlParser.REQUIRE, 0);
};

AlterUserMysqlV57Context.prototype.WITH = function() {
    return this.getToken(SqlParser.WITH, 0);
};

AlterUserMysqlV57Context.prototype.userPasswordOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserPasswordOptionContext);
    } else {
        return this.getTypedRuleContext(UserPasswordOptionContext,i);
    }
};

AlterUserMysqlV57Context.prototype.userLockOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserLockOptionContext);
    } else {
        return this.getTypedRuleContext(UserLockOptionContext,i);
    }
};

AlterUserMysqlV57Context.prototype.tlsOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TlsOptionContext);
    } else {
        return this.getTypedRuleContext(TlsOptionContext,i);
    }
};

AlterUserMysqlV57Context.prototype.NONE = function() {
    return this.getToken(SqlParser.NONE, 0);
};

AlterUserMysqlV57Context.prototype.userResourceOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserResourceOptionContext);
    } else {
        return this.getTypedRuleContext(UserResourceOptionContext,i);
    }
};

AlterUserMysqlV57Context.prototype.AND = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.AND);
    } else {
        return this.getToken(SqlParser.AND, i);
    }
};

AlterUserMysqlV57Context.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAlterUserMysqlV57(this);
	}
};

AlterUserMysqlV57Context.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAlterUserMysqlV57(this);
	}
};

AlterUserMysqlV57Context.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAlterUserMysqlV57(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.AlterUserContext = AlterUserContext;

SqlParser.prototype.alterUser = function() {

    var localctx = new AlterUserContext(this, this._ctx, this.state);
    this.enterRule(localctx, 384, SqlParser.RULE_alterUser);
    var _la = 0; // Token type
    try {
        this.state = 4417;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,639,this._ctx);
        switch(la_) {
        case 1:
            localctx = new AlterUserMysqlV56Context(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 4363;
            this.match(SqlParser.ALTER);
            this.state = 4364;
            this.match(SqlParser.USER);
            this.state = 4365;
            this.userSpecification();
            this.state = 4370;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 4366;
                this.match(SqlParser.COMMA);
                this.state = 4367;
                this.userSpecification();
                this.state = 4372;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;

        case 2:
            localctx = new AlterUserMysqlV57Context(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 4373;
            this.match(SqlParser.ALTER);
            this.state = 4374;
            this.match(SqlParser.USER);
            this.state = 4376;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.IF) {
                this.state = 4375;
                this.ifExists();
            }

            this.state = 4378;
            this.userAuthOption();
            this.state = 4383;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 4379;
                this.match(SqlParser.COMMA);
                this.state = 4380;
                this.userAuthOption();
                this.state = 4385;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 4400;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.REQUIRE) {
                this.state = 4386;
                this.match(SqlParser.REQUIRE);
                this.state = 4398;
                this._errHandler.sync(this);
                switch(this._input.LA(1)) {
                case SqlParser.NONE:
                    this.state = 4387;
                    localctx.tlsNone = this.match(SqlParser.NONE);
                    break;
                case SqlParser.SSL:
                case SqlParser.CIPHER:
                case SqlParser.ISSUER:
                case SqlParser.SUBJECT:
                case SqlParser.X509:
                    this.state = 4388;
                    this.tlsOption();
                    this.state = 4395;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    while(_la===SqlParser.AND || _la===SqlParser.SSL || _la===SqlParser.CIPHER || _la===SqlParser.ISSUER || _la===SqlParser.SUBJECT || _la===SqlParser.X509) {
                        this.state = 4390;
                        this._errHandler.sync(this);
                        _la = this._input.LA(1);
                        if(_la===SqlParser.AND) {
                            this.state = 4389;
                            this.match(SqlParser.AND);
                        }

                        this.state = 4392;
                        this.tlsOption();
                        this.state = 4397;
                        this._errHandler.sync(this);
                        _la = this._input.LA(1);
                    }
                    break;
                default:
                    throw new antlr4.error.NoViableAltException(this);
                }
            }

            this.state = 4408;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.WITH) {
                this.state = 4402;
                this.match(SqlParser.WITH);
                this.state = 4404; 
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                do {
                    this.state = 4403;
                    this.userResourceOption();
                    this.state = 4406; 
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                } while(((((_la - 426)) & ~0x1f) == 0 && ((1 << (_la - 426)) & ((1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 426)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 426)) | (1 << (SqlParser.MAX_UPDATES_PER_HOUR - 426)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 426)))) !== 0));
            }

            this.state = 4414;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.ACCOUNT || _la===SqlParser.PASSWORD) {
                this.state = 4412;
                this._errHandler.sync(this);
                switch(this._input.LA(1)) {
                case SqlParser.PASSWORD:
                    this.state = 4410;
                    this.userPasswordOption();
                    break;
                case SqlParser.ACCOUNT:
                    this.state = 4411;
                    this.userLockOption();
                    break;
                default:
                    throw new antlr4.error.NoViableAltException(this);
                }
                this.state = 4416;
                this._errHandler.sync(this);
                _la = this._input.LA(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 CreateUserContext(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_createUser;
    return this;
}

CreateUserContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateUserContext.prototype.constructor = CreateUserContext;


 
CreateUserContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function CreateUserMysqlV57Context(parser, ctx) {
	CreateUserContext.call(this, parser);
    this.tlsNone = null; // Token;
    CreateUserContext.prototype.copyFrom.call(this, ctx);
    return this;
}

CreateUserMysqlV57Context.prototype = Object.create(CreateUserContext.prototype);
CreateUserMysqlV57Context.prototype.constructor = CreateUserMysqlV57Context;

SqlParser.CreateUserMysqlV57Context = CreateUserMysqlV57Context;

CreateUserMysqlV57Context.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CreateUserMysqlV57Context.prototype.USER = function() {
    return this.getToken(SqlParser.USER, 0);
};

CreateUserMysqlV57Context.prototype.userAuthOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserAuthOptionContext);
    } else {
        return this.getTypedRuleContext(UserAuthOptionContext,i);
    }
};

CreateUserMysqlV57Context.prototype.ifNotExists = function() {
    return this.getTypedRuleContext(IfNotExistsContext,0);
};

CreateUserMysqlV57Context.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


CreateUserMysqlV57Context.prototype.REQUIRE = function() {
    return this.getToken(SqlParser.REQUIRE, 0);
};

CreateUserMysqlV57Context.prototype.WITH = function() {
    return this.getToken(SqlParser.WITH, 0);
};

CreateUserMysqlV57Context.prototype.userPasswordOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserPasswordOptionContext);
    } else {
        return this.getTypedRuleContext(UserPasswordOptionContext,i);
    }
};

CreateUserMysqlV57Context.prototype.userLockOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserLockOptionContext);
    } else {
        return this.getTypedRuleContext(UserLockOptionContext,i);
    }
};

CreateUserMysqlV57Context.prototype.tlsOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TlsOptionContext);
    } else {
        return this.getTypedRuleContext(TlsOptionContext,i);
    }
};

CreateUserMysqlV57Context.prototype.NONE = function() {
    return this.getToken(SqlParser.NONE, 0);
};

CreateUserMysqlV57Context.prototype.userResourceOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserResourceOptionContext);
    } else {
        return this.getTypedRuleContext(UserResourceOptionContext,i);
    }
};

CreateUserMysqlV57Context.prototype.AND = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.AND);
    } else {
        return this.getToken(SqlParser.AND, i);
    }
};

CreateUserMysqlV57Context.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateUserMysqlV57(this);
	}
};

CreateUserMysqlV57Context.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateUserMysqlV57(this);
	}
};

CreateUserMysqlV57Context.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateUserMysqlV57(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function CreateUserMysqlV56Context(parser, ctx) {
	CreateUserContext.call(this, parser);
    CreateUserContext.prototype.copyFrom.call(this, ctx);
    return this;
}

CreateUserMysqlV56Context.prototype = Object.create(CreateUserContext.prototype);
CreateUserMysqlV56Context.prototype.constructor = CreateUserMysqlV56Context;

SqlParser.CreateUserMysqlV56Context = CreateUserMysqlV56Context;

CreateUserMysqlV56Context.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CreateUserMysqlV56Context.prototype.USER = function() {
    return this.getToken(SqlParser.USER, 0);
};

CreateUserMysqlV56Context.prototype.userAuthOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserAuthOptionContext);
    } else {
        return this.getTypedRuleContext(UserAuthOptionContext,i);
    }
};

CreateUserMysqlV56Context.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

CreateUserMysqlV56Context.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateUserMysqlV56(this);
	}
};

CreateUserMysqlV56Context.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateUserMysqlV56(this);
	}
};

CreateUserMysqlV56Context.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateUserMysqlV56(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.CreateUserContext = CreateUserContext;

SqlParser.prototype.createUser = function() {

    var localctx = new CreateUserContext(this, this._ctx, this.state);
    this.enterRule(localctx, 386, SqlParser.RULE_createUser);
    var _la = 0; // Token type
    try {
        this.state = 4473;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,651,this._ctx);
        switch(la_) {
        case 1:
            localctx = new CreateUserMysqlV56Context(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 4419;
            this.match(SqlParser.CREATE);
            this.state = 4420;
            this.match(SqlParser.USER);
            this.state = 4421;
            this.userAuthOption();
            this.state = 4426;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 4422;
                this.match(SqlParser.COMMA);
                this.state = 4423;
                this.userAuthOption();
                this.state = 4428;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;

        case 2:
            localctx = new CreateUserMysqlV57Context(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 4429;
            this.match(SqlParser.CREATE);
            this.state = 4430;
            this.match(SqlParser.USER);
            this.state = 4432;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.IF) {
                this.state = 4431;
                this.ifNotExists();
            }

            this.state = 4434;
            this.userAuthOption();
            this.state = 4439;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 4435;
                this.match(SqlParser.COMMA);
                this.state = 4436;
                this.userAuthOption();
                this.state = 4441;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 4456;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.REQUIRE) {
                this.state = 4442;
                this.match(SqlParser.REQUIRE);
                this.state = 4454;
                this._errHandler.sync(this);
                switch(this._input.LA(1)) {
                case SqlParser.NONE:
                    this.state = 4443;
                    localctx.tlsNone = this.match(SqlParser.NONE);
                    break;
                case SqlParser.SSL:
                case SqlParser.CIPHER:
                case SqlParser.ISSUER:
                case SqlParser.SUBJECT:
                case SqlParser.X509:
                    this.state = 4444;
                    this.tlsOption();
                    this.state = 4451;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    while(_la===SqlParser.AND || _la===SqlParser.SSL || _la===SqlParser.CIPHER || _la===SqlParser.ISSUER || _la===SqlParser.SUBJECT || _la===SqlParser.X509) {
                        this.state = 4446;
                        this._errHandler.sync(this);
                        _la = this._input.LA(1);
                        if(_la===SqlParser.AND) {
                            this.state = 4445;
                            this.match(SqlParser.AND);
                        }

                        this.state = 4448;
                        this.tlsOption();
                        this.state = 4453;
                        this._errHandler.sync(this);
                        _la = this._input.LA(1);
                    }
                    break;
                default:
                    throw new antlr4.error.NoViableAltException(this);
                }
            }

            this.state = 4464;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.WITH) {
                this.state = 4458;
                this.match(SqlParser.WITH);
                this.state = 4460; 
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                do {
                    this.state = 4459;
                    this.userResourceOption();
                    this.state = 4462; 
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                } while(((((_la - 426)) & ~0x1f) == 0 && ((1 << (_la - 426)) & ((1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 426)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 426)) | (1 << (SqlParser.MAX_UPDATES_PER_HOUR - 426)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 426)))) !== 0));
            }

            this.state = 4470;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.ACCOUNT || _la===SqlParser.PASSWORD) {
                this.state = 4468;
                this._errHandler.sync(this);
                switch(this._input.LA(1)) {
                case SqlParser.PASSWORD:
                    this.state = 4466;
                    this.userPasswordOption();
                    break;
                case SqlParser.ACCOUNT:
                    this.state = 4467;
                    this.userLockOption();
                    break;
                default:
                    throw new antlr4.error.NoViableAltException(this);
                }
                this.state = 4472;
                this._errHandler.sync(this);
                _la = this._input.LA(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 DropUserContext(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_dropUser;
    return this;
}

DropUserContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DropUserContext.prototype.constructor = DropUserContext;

DropUserContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

DropUserContext.prototype.USER = function() {
    return this.getToken(SqlParser.USER, 0);
};

DropUserContext.prototype.userName = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserNameContext);
    } else {
        return this.getTypedRuleContext(UserNameContext,i);
    }
};

DropUserContext.prototype.ifExists = function() {
    return this.getTypedRuleContext(IfExistsContext,0);
};

DropUserContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


DropUserContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDropUser(this);
	}
};

DropUserContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDropUser(this);
	}
};

DropUserContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDropUser(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DropUserContext = DropUserContext;

SqlParser.prototype.dropUser = function() {

    var localctx = new DropUserContext(this, this._ctx, this.state);
    this.enterRule(localctx, 388, SqlParser.RULE_dropUser);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4475;
        this.match(SqlParser.DROP);
        this.state = 4476;
        this.match(SqlParser.USER);
        this.state = 4478;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IF) {
            this.state = 4477;
            this.ifExists();
        }

        this.state = 4480;
        this.userName();
        this.state = 4485;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 4481;
            this.match(SqlParser.COMMA);
            this.state = 4482;
            this.userName();
            this.state = 4487;
            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 GrantStatementContext(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_grantStatement;
    this.privilegeObject = null; // Token
    this.tlsNone = null; // Token
    return this;
}

GrantStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
GrantStatementContext.prototype.constructor = GrantStatementContext;

GrantStatementContext.prototype.GRANT = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.GRANT);
    } else {
        return this.getToken(SqlParser.GRANT, i);
    }
};


GrantStatementContext.prototype.privelegeClause = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PrivelegeClauseContext);
    } else {
        return this.getTypedRuleContext(PrivelegeClauseContext,i);
    }
};

GrantStatementContext.prototype.ON = function() {
    return this.getToken(SqlParser.ON, 0);
};

GrantStatementContext.prototype.privilegeLevel = function() {
    return this.getTypedRuleContext(PrivilegeLevelContext,0);
};

GrantStatementContext.prototype.TO = function() {
    return this.getToken(SqlParser.TO, 0);
};

GrantStatementContext.prototype.userAuthOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserAuthOptionContext);
    } else {
        return this.getTypedRuleContext(UserAuthOptionContext,i);
    }
};

GrantStatementContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


GrantStatementContext.prototype.REQUIRE = function() {
    return this.getToken(SqlParser.REQUIRE, 0);
};

GrantStatementContext.prototype.WITH = function() {
    return this.getToken(SqlParser.WITH, 0);
};

GrantStatementContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

GrantStatementContext.prototype.FUNCTION = function() {
    return this.getToken(SqlParser.FUNCTION, 0);
};

GrantStatementContext.prototype.PROCEDURE = function() {
    return this.getToken(SqlParser.PROCEDURE, 0);
};

GrantStatementContext.prototype.tlsOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TlsOptionContext);
    } else {
        return this.getTypedRuleContext(TlsOptionContext,i);
    }
};

GrantStatementContext.prototype.NONE = function() {
    return this.getToken(SqlParser.NONE, 0);
};

GrantStatementContext.prototype.OPTION = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.OPTION);
    } else {
        return this.getToken(SqlParser.OPTION, i);
    }
};


GrantStatementContext.prototype.userResourceOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserResourceOptionContext);
    } else {
        return this.getTypedRuleContext(UserResourceOptionContext,i);
    }
};

GrantStatementContext.prototype.AND = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.AND);
    } else {
        return this.getToken(SqlParser.AND, i);
    }
};


GrantStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterGrantStatement(this);
	}
};

GrantStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitGrantStatement(this);
	}
};

GrantStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitGrantStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.GrantStatementContext = GrantStatementContext;

SqlParser.prototype.grantStatement = function() {

    var localctx = new GrantStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 390, SqlParser.RULE_grantStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4488;
        this.match(SqlParser.GRANT);
        this.state = 4489;
        this.privelegeClause();
        this.state = 4494;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 4490;
            this.match(SqlParser.COMMA);
            this.state = 4491;
            this.privelegeClause();
            this.state = 4496;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 4497;
        this.match(SqlParser.ON);
        this.state = 4499;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,655,this._ctx);
        if(la_===1) {
            this.state = 4498;
            localctx.privilegeObject = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.PROCEDURE || _la===SqlParser.TABLE || _la===SqlParser.FUNCTION)) {
                localctx.privilegeObject = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }

        }
        this.state = 4501;
        this.privilegeLevel();
        this.state = 4502;
        this.match(SqlParser.TO);
        this.state = 4503;
        this.userAuthOption();
        this.state = 4508;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 4504;
            this.match(SqlParser.COMMA);
            this.state = 4505;
            this.userAuthOption();
            this.state = 4510;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 4525;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.REQUIRE) {
            this.state = 4511;
            this.match(SqlParser.REQUIRE);
            this.state = 4523;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.NONE:
                this.state = 4512;
                localctx.tlsNone = this.match(SqlParser.NONE);
                break;
            case SqlParser.SSL:
            case SqlParser.CIPHER:
            case SqlParser.ISSUER:
            case SqlParser.SUBJECT:
            case SqlParser.X509:
                this.state = 4513;
                this.tlsOption();
                this.state = 4520;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                while(_la===SqlParser.AND || _la===SqlParser.SSL || _la===SqlParser.CIPHER || _la===SqlParser.ISSUER || _la===SqlParser.SUBJECT || _la===SqlParser.X509) {
                    this.state = 4515;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    if(_la===SqlParser.AND) {
                        this.state = 4514;
                        this.match(SqlParser.AND);
                    }

                    this.state = 4517;
                    this.tlsOption();
                    this.state = 4522;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                }
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
        }

        this.state = 4536;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WITH) {
            this.state = 4527;
            this.match(SqlParser.WITH);
            this.state = 4533;
            this._errHandler.sync(this);
            var _alt = this._interp.adaptivePredict(this._input,662,this._ctx)
            while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
                if(_alt===1) {
                    this.state = 4531;
                    this._errHandler.sync(this);
                    switch(this._input.LA(1)) {
                    case SqlParser.GRANT:
                        this.state = 4528;
                        this.match(SqlParser.GRANT);
                        this.state = 4529;
                        this.match(SqlParser.OPTION);
                        break;
                    case SqlParser.MAX_CONNECTIONS_PER_HOUR:
                    case SqlParser.MAX_QUERIES_PER_HOUR:
                    case SqlParser.MAX_UPDATES_PER_HOUR:
                    case SqlParser.MAX_USER_CONNECTIONS:
                        this.state = 4530;
                        this.userResourceOption();
                        break;
                    default:
                        throw new antlr4.error.NoViableAltException(this);
                    } 
                }
                this.state = 4535;
                this._errHandler.sync(this);
                _alt = this._interp.adaptivePredict(this._input,662,this._ctx);
            }

        }

    } 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 GrantProxyContext(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_grantProxy;
    this.fromFirst = null; // UserNameContext
    this.toFirst = null; // UserNameContext
    this._userName = null; // UserNameContext
    this.toOther = []; // of UserNameContexts
    return this;
}

GrantProxyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
GrantProxyContext.prototype.constructor = GrantProxyContext;

GrantProxyContext.prototype.GRANT = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.GRANT);
    } else {
        return this.getToken(SqlParser.GRANT, i);
    }
};


GrantProxyContext.prototype.PROXY = function() {
    return this.getToken(SqlParser.PROXY, 0);
};

GrantProxyContext.prototype.ON = function() {
    return this.getToken(SqlParser.ON, 0);
};

GrantProxyContext.prototype.TO = function() {
    return this.getToken(SqlParser.TO, 0);
};

GrantProxyContext.prototype.userName = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserNameContext);
    } else {
        return this.getTypedRuleContext(UserNameContext,i);
    }
};

GrantProxyContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


GrantProxyContext.prototype.WITH = function() {
    return this.getToken(SqlParser.WITH, 0);
};

GrantProxyContext.prototype.OPTION = function() {
    return this.getToken(SqlParser.OPTION, 0);
};

GrantProxyContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterGrantProxy(this);
	}
};

GrantProxyContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitGrantProxy(this);
	}
};

GrantProxyContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitGrantProxy(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.GrantProxyContext = GrantProxyContext;

SqlParser.prototype.grantProxy = function() {

    var localctx = new GrantProxyContext(this, this._ctx, this.state);
    this.enterRule(localctx, 392, SqlParser.RULE_grantProxy);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4538;
        this.match(SqlParser.GRANT);
        this.state = 4539;
        this.match(SqlParser.PROXY);
        this.state = 4540;
        this.match(SqlParser.ON);
        this.state = 4541;
        localctx.fromFirst = this.userName();
        this.state = 4542;
        this.match(SqlParser.TO);
        this.state = 4543;
        localctx.toFirst = this.userName();
        this.state = 4548;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 4544;
            this.match(SqlParser.COMMA);
            this.state = 4545;
            localctx._userName = this.userName();
            localctx.toOther.push(localctx._userName);
            this.state = 4550;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 4554;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.WITH) {
            this.state = 4551;
            this.match(SqlParser.WITH);
            this.state = 4552;
            this.match(SqlParser.GRANT);
            this.state = 4553;
            this.match(SqlParser.OPTION);
        }

    } 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 RenameUserContext(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_renameUser;
    return this;
}

RenameUserContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RenameUserContext.prototype.constructor = RenameUserContext;

RenameUserContext.prototype.RENAME = function() {
    return this.getToken(SqlParser.RENAME, 0);
};

RenameUserContext.prototype.USER = function() {
    return this.getToken(SqlParser.USER, 0);
};

RenameUserContext.prototype.renameUserClause = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(RenameUserClauseContext);
    } else {
        return this.getTypedRuleContext(RenameUserClauseContext,i);
    }
};

RenameUserContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


RenameUserContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRenameUser(this);
	}
};

RenameUserContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRenameUser(this);
	}
};

RenameUserContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRenameUser(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.RenameUserContext = RenameUserContext;

SqlParser.prototype.renameUser = function() {

    var localctx = new RenameUserContext(this, this._ctx, this.state);
    this.enterRule(localctx, 394, SqlParser.RULE_renameUser);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4556;
        this.match(SqlParser.RENAME);
        this.state = 4557;
        this.match(SqlParser.USER);
        this.state = 4558;
        this.renameUserClause();
        this.state = 4563;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 4559;
            this.match(SqlParser.COMMA);
            this.state = 4560;
            this.renameUserClause();
            this.state = 4565;
            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 RevokeStatementContext(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_revokeStatement;
    return this;
}

RevokeStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RevokeStatementContext.prototype.constructor = RevokeStatementContext;


 
RevokeStatementContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function DetailRevokeContext(parser, ctx) {
	RevokeStatementContext.call(this, parser);
    this.privilegeObject = null; // Token;
    RevokeStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

DetailRevokeContext.prototype = Object.create(RevokeStatementContext.prototype);
DetailRevokeContext.prototype.constructor = DetailRevokeContext;

SqlParser.DetailRevokeContext = DetailRevokeContext;

DetailRevokeContext.prototype.REVOKE = function() {
    return this.getToken(SqlParser.REVOKE, 0);
};

DetailRevokeContext.prototype.privelegeClause = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PrivelegeClauseContext);
    } else {
        return this.getTypedRuleContext(PrivelegeClauseContext,i);
    }
};

DetailRevokeContext.prototype.ON = function() {
    return this.getToken(SqlParser.ON, 0);
};

DetailRevokeContext.prototype.privilegeLevel = function() {
    return this.getTypedRuleContext(PrivilegeLevelContext,0);
};

DetailRevokeContext.prototype.FROM = function() {
    return this.getToken(SqlParser.FROM, 0);
};

DetailRevokeContext.prototype.userName = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserNameContext);
    } else {
        return this.getTypedRuleContext(UserNameContext,i);
    }
};

DetailRevokeContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


DetailRevokeContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

DetailRevokeContext.prototype.FUNCTION = function() {
    return this.getToken(SqlParser.FUNCTION, 0);
};

DetailRevokeContext.prototype.PROCEDURE = function() {
    return this.getToken(SqlParser.PROCEDURE, 0);
};
DetailRevokeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDetailRevoke(this);
	}
};

DetailRevokeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDetailRevoke(this);
	}
};

DetailRevokeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDetailRevoke(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShortRevokeContext(parser, ctx) {
	RevokeStatementContext.call(this, parser);
    RevokeStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShortRevokeContext.prototype = Object.create(RevokeStatementContext.prototype);
ShortRevokeContext.prototype.constructor = ShortRevokeContext;

SqlParser.ShortRevokeContext = ShortRevokeContext;

ShortRevokeContext.prototype.REVOKE = function() {
    return this.getToken(SqlParser.REVOKE, 0);
};

ShortRevokeContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};

ShortRevokeContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


ShortRevokeContext.prototype.GRANT = function() {
    return this.getToken(SqlParser.GRANT, 0);
};

ShortRevokeContext.prototype.OPTION = function() {
    return this.getToken(SqlParser.OPTION, 0);
};

ShortRevokeContext.prototype.FROM = function() {
    return this.getToken(SqlParser.FROM, 0);
};

ShortRevokeContext.prototype.userName = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserNameContext);
    } else {
        return this.getTypedRuleContext(UserNameContext,i);
    }
};

ShortRevokeContext.prototype.PRIVILEGES = function() {
    return this.getToken(SqlParser.PRIVILEGES, 0);
};
ShortRevokeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShortRevoke(this);
	}
};

ShortRevokeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShortRevoke(this);
	}
};

ShortRevokeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShortRevoke(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.RevokeStatementContext = RevokeStatementContext;

SqlParser.prototype.revokeStatement = function() {

    var localctx = new RevokeStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 396, SqlParser.RULE_revokeStatement);
    var _la = 0; // Token type
    try {
        this.state = 4606;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,672,this._ctx);
        switch(la_) {
        case 1:
            localctx = new DetailRevokeContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 4566;
            this.match(SqlParser.REVOKE);
            this.state = 4567;
            this.privelegeClause();
            this.state = 4572;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 4568;
                this.match(SqlParser.COMMA);
                this.state = 4569;
                this.privelegeClause();
                this.state = 4574;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 4575;
            this.match(SqlParser.ON);
            this.state = 4577;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,668,this._ctx);
            if(la_===1) {
                this.state = 4576;
                localctx.privilegeObject = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.PROCEDURE || _la===SqlParser.TABLE || _la===SqlParser.FUNCTION)) {
                    localctx.privilegeObject = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }

            }
            this.state = 4579;
            this.privilegeLevel();
            this.state = 4580;
            this.match(SqlParser.FROM);
            this.state = 4581;
            this.userName();
            this.state = 4586;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 4582;
                this.match(SqlParser.COMMA);
                this.state = 4583;
                this.userName();
                this.state = 4588;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;

        case 2:
            localctx = new ShortRevokeContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 4589;
            this.match(SqlParser.REVOKE);
            this.state = 4590;
            this.match(SqlParser.ALL);
            this.state = 4592;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.PRIVILEGES) {
                this.state = 4591;
                this.match(SqlParser.PRIVILEGES);
            }

            this.state = 4594;
            this.match(SqlParser.COMMA);
            this.state = 4595;
            this.match(SqlParser.GRANT);
            this.state = 4596;
            this.match(SqlParser.OPTION);
            this.state = 4597;
            this.match(SqlParser.FROM);
            this.state = 4598;
            this.userName();
            this.state = 4603;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 4599;
                this.match(SqlParser.COMMA);
                this.state = 4600;
                this.userName();
                this.state = 4605;
                this._errHandler.sync(this);
                _la = this._input.LA(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 RevokeProxyContext(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_revokeProxy;
    this.onUser = null; // UserNameContext
    this.fromFirst = null; // UserNameContext
    this._userName = null; // UserNameContext
    this.fromOther = []; // of UserNameContexts
    return this;
}

RevokeProxyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RevokeProxyContext.prototype.constructor = RevokeProxyContext;

RevokeProxyContext.prototype.REVOKE = function() {
    return this.getToken(SqlParser.REVOKE, 0);
};

RevokeProxyContext.prototype.PROXY = function() {
    return this.getToken(SqlParser.PROXY, 0);
};

RevokeProxyContext.prototype.ON = function() {
    return this.getToken(SqlParser.ON, 0);
};

RevokeProxyContext.prototype.FROM = function() {
    return this.getToken(SqlParser.FROM, 0);
};

RevokeProxyContext.prototype.userName = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserNameContext);
    } else {
        return this.getTypedRuleContext(UserNameContext,i);
    }
};

RevokeProxyContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


RevokeProxyContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRevokeProxy(this);
	}
};

RevokeProxyContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRevokeProxy(this);
	}
};

RevokeProxyContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRevokeProxy(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.RevokeProxyContext = RevokeProxyContext;

SqlParser.prototype.revokeProxy = function() {

    var localctx = new RevokeProxyContext(this, this._ctx, this.state);
    this.enterRule(localctx, 398, SqlParser.RULE_revokeProxy);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4608;
        this.match(SqlParser.REVOKE);
        this.state = 4609;
        this.match(SqlParser.PROXY);
        this.state = 4610;
        this.match(SqlParser.ON);
        this.state = 4611;
        localctx.onUser = this.userName();
        this.state = 4612;
        this.match(SqlParser.FROM);
        this.state = 4613;
        localctx.fromFirst = this.userName();
        this.state = 4618;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 4614;
            this.match(SqlParser.COMMA);
            this.state = 4615;
            localctx._userName = this.userName();
            localctx.fromOther.push(localctx._userName);
            this.state = 4620;
            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 SetPasswordStatementContext(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_setPasswordStatement;
    return this;
}

SetPasswordStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SetPasswordStatementContext.prototype.constructor = SetPasswordStatementContext;

SetPasswordStatementContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

SetPasswordStatementContext.prototype.PASSWORD = function() {
    return this.getToken(SqlParser.PASSWORD, 0);
};

SetPasswordStatementContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

SetPasswordStatementContext.prototype.passwordFunctionClause = function() {
    return this.getTypedRuleContext(PasswordFunctionClauseContext,0);
};

SetPasswordStatementContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

SetPasswordStatementContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

SetPasswordStatementContext.prototype.userName = function() {
    return this.getTypedRuleContext(UserNameContext,0);
};

SetPasswordStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSetPasswordStatement(this);
	}
};

SetPasswordStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSetPasswordStatement(this);
	}
};

SetPasswordStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSetPasswordStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SetPasswordStatementContext = SetPasswordStatementContext;

SqlParser.prototype.setPasswordStatement = function() {

    var localctx = new SetPasswordStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 400, SqlParser.RULE_setPasswordStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4621;
        this.match(SqlParser.SET);
        this.state = 4622;
        this.match(SqlParser.PASSWORD);
        this.state = 4625;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.FOR) {
            this.state = 4623;
            this.match(SqlParser.FOR);
            this.state = 4624;
            this.userName();
        }

        this.state = 4627;
        this.match(SqlParser.EQUAL_SYMBOL);
        this.state = 4630;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.OLD_PASSWORD:
        case SqlParser.PASSWORD:
            this.state = 4628;
            this.passwordFunctionClause();
            break;
        case SqlParser.STRING_LITERAL:
            this.state = 4629;
            this.match(SqlParser.STRING_LITERAL);
            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 UserSpecificationContext(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_userSpecification;
    return this;
}

UserSpecificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UserSpecificationContext.prototype.constructor = UserSpecificationContext;

UserSpecificationContext.prototype.userName = function() {
    return this.getTypedRuleContext(UserNameContext,0);
};

UserSpecificationContext.prototype.userPasswordOption = function() {
    return this.getTypedRuleContext(UserPasswordOptionContext,0);
};

UserSpecificationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUserSpecification(this);
	}
};

UserSpecificationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUserSpecification(this);
	}
};

UserSpecificationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUserSpecification(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UserSpecificationContext = UserSpecificationContext;

SqlParser.prototype.userSpecification = function() {

    var localctx = new UserSpecificationContext(this, this._ctx, this.state);
    this.enterRule(localctx, 402, SqlParser.RULE_userSpecification);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4632;
        this.userName();
        this.state = 4633;
        this.userPasswordOption();
    } 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 UserAuthOptionContext(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_userAuthOption;
    return this;
}

UserAuthOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UserAuthOptionContext.prototype.constructor = UserAuthOptionContext;


 
UserAuthOptionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function SimpleAuthOptionContext(parser, ctx) {
	UserAuthOptionContext.call(this, parser);
    UserAuthOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SimpleAuthOptionContext.prototype = Object.create(UserAuthOptionContext.prototype);
SimpleAuthOptionContext.prototype.constructor = SimpleAuthOptionContext;

SqlParser.SimpleAuthOptionContext = SimpleAuthOptionContext;

SimpleAuthOptionContext.prototype.userName = function() {
    return this.getTypedRuleContext(UserNameContext,0);
};
SimpleAuthOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSimpleAuthOption(this);
	}
};

SimpleAuthOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSimpleAuthOption(this);
	}
};

SimpleAuthOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSimpleAuthOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PasswordAuthOptionContext(parser, ctx) {
	UserAuthOptionContext.call(this, parser);
    this.hashed = null; // Token;
    UserAuthOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PasswordAuthOptionContext.prototype = Object.create(UserAuthOptionContext.prototype);
PasswordAuthOptionContext.prototype.constructor = PasswordAuthOptionContext;

SqlParser.PasswordAuthOptionContext = PasswordAuthOptionContext;

PasswordAuthOptionContext.prototype.userName = function() {
    return this.getTypedRuleContext(UserNameContext,0);
};

PasswordAuthOptionContext.prototype.IDENTIFIED = function() {
    return this.getToken(SqlParser.IDENTIFIED, 0);
};

PasswordAuthOptionContext.prototype.BY = function() {
    return this.getToken(SqlParser.BY, 0);
};

PasswordAuthOptionContext.prototype.PASSWORD = function() {
    return this.getToken(SqlParser.PASSWORD, 0);
};

PasswordAuthOptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};
PasswordAuthOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPasswordAuthOption(this);
	}
};

PasswordAuthOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPasswordAuthOption(this);
	}
};

PasswordAuthOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPasswordAuthOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function StringAuthOptionContext(parser, ctx) {
	UserAuthOptionContext.call(this, parser);
    UserAuthOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

StringAuthOptionContext.prototype = Object.create(UserAuthOptionContext.prototype);
StringAuthOptionContext.prototype.constructor = StringAuthOptionContext;

SqlParser.StringAuthOptionContext = StringAuthOptionContext;

StringAuthOptionContext.prototype.userName = function() {
    return this.getTypedRuleContext(UserNameContext,0);
};

StringAuthOptionContext.prototype.IDENTIFIED = function() {
    return this.getToken(SqlParser.IDENTIFIED, 0);
};

StringAuthOptionContext.prototype.BY = function() {
    return this.getToken(SqlParser.BY, 0);
};

StringAuthOptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

StringAuthOptionContext.prototype.WITH = function() {
    return this.getToken(SqlParser.WITH, 0);
};

StringAuthOptionContext.prototype.authPlugin = function() {
    return this.getTypedRuleContext(AuthPluginContext,0);
};
StringAuthOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterStringAuthOption(this);
	}
};

StringAuthOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitStringAuthOption(this);
	}
};

StringAuthOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitStringAuthOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function HashAuthOptionContext(parser, ctx) {
	UserAuthOptionContext.call(this, parser);
    UserAuthOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

HashAuthOptionContext.prototype = Object.create(UserAuthOptionContext.prototype);
HashAuthOptionContext.prototype.constructor = HashAuthOptionContext;

SqlParser.HashAuthOptionContext = HashAuthOptionContext;

HashAuthOptionContext.prototype.userName = function() {
    return this.getTypedRuleContext(UserNameContext,0);
};

HashAuthOptionContext.prototype.IDENTIFIED = function() {
    return this.getToken(SqlParser.IDENTIFIED, 0);
};

HashAuthOptionContext.prototype.WITH = function() {
    return this.getToken(SqlParser.WITH, 0);
};

HashAuthOptionContext.prototype.authPlugin = function() {
    return this.getTypedRuleContext(AuthPluginContext,0);
};

HashAuthOptionContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};

HashAuthOptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};
HashAuthOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterHashAuthOption(this);
	}
};

HashAuthOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitHashAuthOption(this);
	}
};

HashAuthOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitHashAuthOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.UserAuthOptionContext = UserAuthOptionContext;

SqlParser.prototype.userAuthOption = function() {

    var localctx = new UserAuthOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 404, SqlParser.RULE_userAuthOption);
    var _la = 0; // Token type
    try {
        this.state = 4659;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,678,this._ctx);
        switch(la_) {
        case 1:
            localctx = new PasswordAuthOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 4635;
            this.userName();
            this.state = 4636;
            this.match(SqlParser.IDENTIFIED);
            this.state = 4637;
            this.match(SqlParser.BY);
            this.state = 4638;
            this.match(SqlParser.PASSWORD);
            this.state = 4639;
            localctx.hashed = this.match(SqlParser.STRING_LITERAL);
            break;

        case 2:
            localctx = new StringAuthOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 4641;
            this.userName();
            this.state = 4642;
            this.match(SqlParser.IDENTIFIED);
            this.state = 4645;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.WITH) {
                this.state = 4643;
                this.match(SqlParser.WITH);
                this.state = 4644;
                this.authPlugin();
            }

            this.state = 4647;
            this.match(SqlParser.BY);
            this.state = 4648;
            this.match(SqlParser.STRING_LITERAL);
            break;

        case 3:
            localctx = new HashAuthOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 4650;
            this.userName();
            this.state = 4651;
            this.match(SqlParser.IDENTIFIED);
            this.state = 4652;
            this.match(SqlParser.WITH);
            this.state = 4653;
            this.authPlugin();
            this.state = 4656;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.AS) {
                this.state = 4654;
                this.match(SqlParser.AS);
                this.state = 4655;
                this.match(SqlParser.STRING_LITERAL);
            }

            break;

        case 4:
            localctx = new SimpleAuthOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 4658;
            this.userName();
            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 TlsOptionContext(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_tlsOption;
    return this;
}

TlsOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TlsOptionContext.prototype.constructor = TlsOptionContext;

TlsOptionContext.prototype.SSL = function() {
    return this.getToken(SqlParser.SSL, 0);
};

TlsOptionContext.prototype.X509 = function() {
    return this.getToken(SqlParser.X509, 0);
};

TlsOptionContext.prototype.CIPHER = function() {
    return this.getToken(SqlParser.CIPHER, 0);
};

TlsOptionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

TlsOptionContext.prototype.ISSUER = function() {
    return this.getToken(SqlParser.ISSUER, 0);
};

TlsOptionContext.prototype.SUBJECT = function() {
    return this.getToken(SqlParser.SUBJECT, 0);
};

TlsOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTlsOption(this);
	}
};

TlsOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTlsOption(this);
	}
};

TlsOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTlsOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.TlsOptionContext = TlsOptionContext;

SqlParser.prototype.tlsOption = function() {

    var localctx = new TlsOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 406, SqlParser.RULE_tlsOption);
    try {
        this.state = 4669;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.SSL:
            this.enterOuterAlt(localctx, 1);
            this.state = 4661;
            this.match(SqlParser.SSL);
            break;
        case SqlParser.X509:
            this.enterOuterAlt(localctx, 2);
            this.state = 4662;
            this.match(SqlParser.X509);
            break;
        case SqlParser.CIPHER:
            this.enterOuterAlt(localctx, 3);
            this.state = 4663;
            this.match(SqlParser.CIPHER);
            this.state = 4664;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.ISSUER:
            this.enterOuterAlt(localctx, 4);
            this.state = 4665;
            this.match(SqlParser.ISSUER);
            this.state = 4666;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.SUBJECT:
            this.enterOuterAlt(localctx, 5);
            this.state = 4667;
            this.match(SqlParser.SUBJECT);
            this.state = 4668;
            this.match(SqlParser.STRING_LITERAL);
            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 UserResourceOptionContext(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_userResourceOption;
    return this;
}

UserResourceOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UserResourceOptionContext.prototype.constructor = UserResourceOptionContext;

UserResourceOptionContext.prototype.MAX_QUERIES_PER_HOUR = function() {
    return this.getToken(SqlParser.MAX_QUERIES_PER_HOUR, 0);
};

UserResourceOptionContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

UserResourceOptionContext.prototype.MAX_UPDATES_PER_HOUR = function() {
    return this.getToken(SqlParser.MAX_UPDATES_PER_HOUR, 0);
};

UserResourceOptionContext.prototype.MAX_CONNECTIONS_PER_HOUR = function() {
    return this.getToken(SqlParser.MAX_CONNECTIONS_PER_HOUR, 0);
};

UserResourceOptionContext.prototype.MAX_USER_CONNECTIONS = function() {
    return this.getToken(SqlParser.MAX_USER_CONNECTIONS, 0);
};

UserResourceOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUserResourceOption(this);
	}
};

UserResourceOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUserResourceOption(this);
	}
};

UserResourceOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUserResourceOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UserResourceOptionContext = UserResourceOptionContext;

SqlParser.prototype.userResourceOption = function() {

    var localctx = new UserResourceOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 408, SqlParser.RULE_userResourceOption);
    try {
        this.state = 4679;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.MAX_QUERIES_PER_HOUR:
            this.enterOuterAlt(localctx, 1);
            this.state = 4671;
            this.match(SqlParser.MAX_QUERIES_PER_HOUR);
            this.state = 4672;
            this.decimalLiteral();
            break;
        case SqlParser.MAX_UPDATES_PER_HOUR:
            this.enterOuterAlt(localctx, 2);
            this.state = 4673;
            this.match(SqlParser.MAX_UPDATES_PER_HOUR);
            this.state = 4674;
            this.decimalLiteral();
            break;
        case SqlParser.MAX_CONNECTIONS_PER_HOUR:
            this.enterOuterAlt(localctx, 3);
            this.state = 4675;
            this.match(SqlParser.MAX_CONNECTIONS_PER_HOUR);
            this.state = 4676;
            this.decimalLiteral();
            break;
        case SqlParser.MAX_USER_CONNECTIONS:
            this.enterOuterAlt(localctx, 4);
            this.state = 4677;
            this.match(SqlParser.MAX_USER_CONNECTIONS);
            this.state = 4678;
            this.decimalLiteral();
            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 UserPasswordOptionContext(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_userPasswordOption;
    this.expireType = null; // Token
    return this;
}

UserPasswordOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UserPasswordOptionContext.prototype.constructor = UserPasswordOptionContext;

UserPasswordOptionContext.prototype.PASSWORD = function() {
    return this.getToken(SqlParser.PASSWORD, 0);
};

UserPasswordOptionContext.prototype.EXPIRE = function() {
    return this.getToken(SqlParser.EXPIRE, 0);
};

UserPasswordOptionContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

UserPasswordOptionContext.prototype.DAY = function() {
    return this.getToken(SqlParser.DAY, 0);
};

UserPasswordOptionContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

UserPasswordOptionContext.prototype.NEVER = function() {
    return this.getToken(SqlParser.NEVER, 0);
};

UserPasswordOptionContext.prototype.INTERVAL = function() {
    return this.getToken(SqlParser.INTERVAL, 0);
};

UserPasswordOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUserPasswordOption(this);
	}
};

UserPasswordOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUserPasswordOption(this);
	}
};

UserPasswordOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUserPasswordOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UserPasswordOptionContext = UserPasswordOptionContext;

SqlParser.prototype.userPasswordOption = function() {

    var localctx = new UserPasswordOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 410, SqlParser.RULE_userPasswordOption);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4681;
        this.match(SqlParser.PASSWORD);
        this.state = 4682;
        this.match(SqlParser.EXPIRE);
        this.state = 4689;
        this._errHandler.sync(this);
        switch (this._input.LA(1)) {
        case SqlParser.DEFAULT:
        	this.state = 4683;
        	localctx.expireType = this.match(SqlParser.DEFAULT);
        	break;
        case SqlParser.NEVER:
        	this.state = 4684;
        	localctx.expireType = this.match(SqlParser.NEVER);
        	break;
        case SqlParser.INTERVAL:
        	this.state = 4685;
        	localctx.expireType = this.match(SqlParser.INTERVAL);
        	this.state = 4686;
        	this.decimalLiteral();
        	this.state = 4687;
        	this.match(SqlParser.DAY);
        	break;
        case SqlParser.EOF:
        case SqlParser.ALTER:
        case SqlParser.ANALYZE:
        case SqlParser.CALL:
        case SqlParser.CHANGE:
        case SqlParser.CHECK:
        case SqlParser.CREATE:
        case SqlParser.DELETE:
        case SqlParser.DESC:
        case SqlParser.DESCRIBE:
        case SqlParser.DROP:
        case SqlParser.EXPLAIN:
        case SqlParser.GET:
        case SqlParser.GRANT:
        case SqlParser.INSERT:
        case SqlParser.KILL:
        case SqlParser.LOAD:
        case SqlParser.LOCK:
        case SqlParser.OPTIMIZE:
        case SqlParser.PURGE:
        case SqlParser.RELEASE:
        case SqlParser.RENAME:
        case SqlParser.REPLACE:
        case SqlParser.RESIGNAL:
        case SqlParser.REVOKE:
        case SqlParser.SELECT:
        case SqlParser.SET:
        case SqlParser.SHOW:
        case SqlParser.SIGNAL:
        case SqlParser.UNLOCK:
        case SqlParser.UPDATE:
        case SqlParser.USE:
        case SqlParser.ACCOUNT:
        case SqlParser.BEGIN:
        case SqlParser.BINLOG:
        case SqlParser.CACHE:
        case SqlParser.CHECKSUM:
        case SqlParser.COMMIT:
        case SqlParser.DEALLOCATE:
        case SqlParser.DO:
        case SqlParser.FLUSH:
        case SqlParser.HANDLER:
        case SqlParser.HELP:
        case SqlParser.INSTALL:
        case SqlParser.PASSWORD:
        case SqlParser.PREPARE:
        case SqlParser.REPAIR:
        case SqlParser.RESET:
        case SqlParser.ROLLBACK:
        case SqlParser.SAVEPOINT:
        case SqlParser.START:
        case SqlParser.STOP:
        case SqlParser.TRUNCATE:
        case SqlParser.UNINSTALL:
        case SqlParser.XA:
        case SqlParser.EXECUTE:
        case SqlParser.SHUTDOWN:
        case SqlParser.MINUSMINUS:
        case SqlParser.LR_BRACKET:
        case SqlParser.COMMA:
        case SqlParser.SEMI:
        	break;
        default:
        	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 UserLockOptionContext(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_userLockOption;
    this.lockType = null; // Token
    return this;
}

UserLockOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UserLockOptionContext.prototype.constructor = UserLockOptionContext;

UserLockOptionContext.prototype.ACCOUNT = function() {
    return this.getToken(SqlParser.ACCOUNT, 0);
};

UserLockOptionContext.prototype.LOCK = function() {
    return this.getToken(SqlParser.LOCK, 0);
};

UserLockOptionContext.prototype.UNLOCK = function() {
    return this.getToken(SqlParser.UNLOCK, 0);
};

UserLockOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUserLockOption(this);
	}
};

UserLockOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUserLockOption(this);
	}
};

UserLockOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUserLockOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UserLockOptionContext = UserLockOptionContext;

SqlParser.prototype.userLockOption = function() {

    var localctx = new UserLockOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 412, SqlParser.RULE_userLockOption);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4691;
        this.match(SqlParser.ACCOUNT);
        this.state = 4692;
        localctx.lockType = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.LOCK || _la===SqlParser.UNLOCK)) {
            localctx.lockType = 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 PrivelegeClauseContext(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_privelegeClause;
    return this;
}

PrivelegeClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PrivelegeClauseContext.prototype.constructor = PrivelegeClauseContext;

PrivelegeClauseContext.prototype.privilege = function() {
    return this.getTypedRuleContext(PrivilegeContext,0);
};

PrivelegeClauseContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

PrivelegeClauseContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

PrivelegeClauseContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

PrivelegeClauseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPrivelegeClause(this);
	}
};

PrivelegeClauseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPrivelegeClause(this);
	}
};

PrivelegeClauseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPrivelegeClause(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.PrivelegeClauseContext = PrivelegeClauseContext;

SqlParser.prototype.privelegeClause = function() {

    var localctx = new PrivelegeClauseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 414, SqlParser.RULE_privelegeClause);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4694;
        this.privilege();
        this.state = 4699;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LR_BRACKET) {
            this.state = 4695;
            this.match(SqlParser.LR_BRACKET);
            this.state = 4696;
            this.uidList();
            this.state = 4697;
            this.match(SqlParser.RR_BRACKET);
        }

    } 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 PrivilegeContext(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_privilege;
    return this;
}

PrivilegeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PrivilegeContext.prototype.constructor = PrivilegeContext;

PrivilegeContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};

PrivilegeContext.prototype.PRIVILEGES = function() {
    return this.getToken(SqlParser.PRIVILEGES, 0);
};

PrivilegeContext.prototype.ALTER = function() {
    return this.getToken(SqlParser.ALTER, 0);
};

PrivilegeContext.prototype.ROUTINE = function() {
    return this.getToken(SqlParser.ROUTINE, 0);
};

PrivilegeContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

PrivilegeContext.prototype.TEMPORARY = function() {
    return this.getToken(SqlParser.TEMPORARY, 0);
};

PrivilegeContext.prototype.TABLES = function() {
    return this.getToken(SqlParser.TABLES, 0);
};

PrivilegeContext.prototype.VIEW = function() {
    return this.getToken(SqlParser.VIEW, 0);
};

PrivilegeContext.prototype.USER = function() {
    return this.getToken(SqlParser.USER, 0);
};

PrivilegeContext.prototype.TABLESPACE = function() {
    return this.getToken(SqlParser.TABLESPACE, 0);
};

PrivilegeContext.prototype.ROLE = function() {
    return this.getToken(SqlParser.ROLE, 0);
};

PrivilegeContext.prototype.DELETE = function() {
    return this.getToken(SqlParser.DELETE, 0);
};

PrivilegeContext.prototype.DROP = function() {
    return this.getToken(SqlParser.DROP, 0);
};

PrivilegeContext.prototype.EVENT = function() {
    return this.getToken(SqlParser.EVENT, 0);
};

PrivilegeContext.prototype.EXECUTE = function() {
    return this.getToken(SqlParser.EXECUTE, 0);
};

PrivilegeContext.prototype.FILE = function() {
    return this.getToken(SqlParser.FILE, 0);
};

PrivilegeContext.prototype.GRANT = function() {
    return this.getToken(SqlParser.GRANT, 0);
};

PrivilegeContext.prototype.OPTION = function() {
    return this.getToken(SqlParser.OPTION, 0);
};

PrivilegeContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

PrivilegeContext.prototype.INSERT = function() {
    return this.getToken(SqlParser.INSERT, 0);
};

PrivilegeContext.prototype.LOCK = function() {
    return this.getToken(SqlParser.LOCK, 0);
};

PrivilegeContext.prototype.PROCESS = function() {
    return this.getToken(SqlParser.PROCESS, 0);
};

PrivilegeContext.prototype.PROXY = function() {
    return this.getToken(SqlParser.PROXY, 0);
};

PrivilegeContext.prototype.REFERENCES = function() {
    return this.getToken(SqlParser.REFERENCES, 0);
};

PrivilegeContext.prototype.RELOAD = function() {
    return this.getToken(SqlParser.RELOAD, 0);
};

PrivilegeContext.prototype.REPLICATION = function() {
    return this.getToken(SqlParser.REPLICATION, 0);
};

PrivilegeContext.prototype.CLIENT = function() {
    return this.getToken(SqlParser.CLIENT, 0);
};

PrivilegeContext.prototype.SLAVE = function() {
    return this.getToken(SqlParser.SLAVE, 0);
};

PrivilegeContext.prototype.SELECT = function() {
    return this.getToken(SqlParser.SELECT, 0);
};

PrivilegeContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

PrivilegeContext.prototype.DATABASES = function() {
    return this.getToken(SqlParser.DATABASES, 0);
};

PrivilegeContext.prototype.SHUTDOWN = function() {
    return this.getToken(SqlParser.SHUTDOWN, 0);
};

PrivilegeContext.prototype.SUPER = function() {
    return this.getToken(SqlParser.SUPER, 0);
};

PrivilegeContext.prototype.TRIGGER = function() {
    return this.getToken(SqlParser.TRIGGER, 0);
};

PrivilegeContext.prototype.UPDATE = function() {
    return this.getToken(SqlParser.UPDATE, 0);
};

PrivilegeContext.prototype.USAGE = function() {
    return this.getToken(SqlParser.USAGE, 0);
};

PrivilegeContext.prototype.AUDIT_ADMIN = function() {
    return this.getToken(SqlParser.AUDIT_ADMIN, 0);
};

PrivilegeContext.prototype.BACKUP_ADMIN = function() {
    return this.getToken(SqlParser.BACKUP_ADMIN, 0);
};

PrivilegeContext.prototype.BINLOG_ADMIN = function() {
    return this.getToken(SqlParser.BINLOG_ADMIN, 0);
};

PrivilegeContext.prototype.BINLOG_ENCRYPTION_ADMIN = function() {
    return this.getToken(SqlParser.BINLOG_ENCRYPTION_ADMIN, 0);
};

PrivilegeContext.prototype.CLONE_ADMIN = function() {
    return this.getToken(SqlParser.CLONE_ADMIN, 0);
};

PrivilegeContext.prototype.CONNECTION_ADMIN = function() {
    return this.getToken(SqlParser.CONNECTION_ADMIN, 0);
};

PrivilegeContext.prototype.ENCRYPTION_KEY_ADMIN = function() {
    return this.getToken(SqlParser.ENCRYPTION_KEY_ADMIN, 0);
};

PrivilegeContext.prototype.FIREWALL_ADMIN = function() {
    return this.getToken(SqlParser.FIREWALL_ADMIN, 0);
};

PrivilegeContext.prototype.FIREWALL_USER = function() {
    return this.getToken(SqlParser.FIREWALL_USER, 0);
};

PrivilegeContext.prototype.GROUP_REPLICATION_ADMIN = function() {
    return this.getToken(SqlParser.GROUP_REPLICATION_ADMIN, 0);
};

PrivilegeContext.prototype.INNODB_REDO_LOG_ARCHIVE = function() {
    return this.getToken(SqlParser.INNODB_REDO_LOG_ARCHIVE, 0);
};

PrivilegeContext.prototype.NDB_STORED_USER = function() {
    return this.getToken(SqlParser.NDB_STORED_USER, 0);
};

PrivilegeContext.prototype.PERSIST_RO_VARIABLES_ADMIN = function() {
    return this.getToken(SqlParser.PERSIST_RO_VARIABLES_ADMIN, 0);
};

PrivilegeContext.prototype.REPLICATION_APPLIER = function() {
    return this.getToken(SqlParser.REPLICATION_APPLIER, 0);
};

PrivilegeContext.prototype.REPLICATION_SLAVE_ADMIN = function() {
    return this.getToken(SqlParser.REPLICATION_SLAVE_ADMIN, 0);
};

PrivilegeContext.prototype.RESOURCE_GROUP_ADMIN = function() {
    return this.getToken(SqlParser.RESOURCE_GROUP_ADMIN, 0);
};

PrivilegeContext.prototype.RESOURCE_GROUP_USER = function() {
    return this.getToken(SqlParser.RESOURCE_GROUP_USER, 0);
};

PrivilegeContext.prototype.ROLE_ADMIN = function() {
    return this.getToken(SqlParser.ROLE_ADMIN, 0);
};

PrivilegeContext.prototype.SESSION_VARIABLES_ADMIN = function() {
    return this.getToken(SqlParser.SESSION_VARIABLES_ADMIN, 0);
};

PrivilegeContext.prototype.SET_USER_ID = function() {
    return this.getToken(SqlParser.SET_USER_ID, 0);
};

PrivilegeContext.prototype.SHOW_ROUTINE = function() {
    return this.getToken(SqlParser.SHOW_ROUTINE, 0);
};

PrivilegeContext.prototype.SYSTEM_VARIABLES_ADMIN = function() {
    return this.getToken(SqlParser.SYSTEM_VARIABLES_ADMIN, 0);
};

PrivilegeContext.prototype.TABLE_ENCRYPTION_ADMIN = function() {
    return this.getToken(SqlParser.TABLE_ENCRYPTION_ADMIN, 0);
};

PrivilegeContext.prototype.VERSION_TOKEN_ADMIN = function() {
    return this.getToken(SqlParser.VERSION_TOKEN_ADMIN, 0);
};

PrivilegeContext.prototype.XA_RECOVER_ADMIN = function() {
    return this.getToken(SqlParser.XA_RECOVER_ADMIN, 0);
};

PrivilegeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPrivilege(this);
	}
};

PrivilegeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPrivilege(this);
	}
};

PrivilegeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPrivilege(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.PrivilegeContext = PrivilegeContext;

SqlParser.prototype.privilege = function() {

    var localctx = new PrivilegeContext(this, this._ctx, this.state);
    this.enterRule(localctx, 416, SqlParser.RULE_privilege);
    var _la = 0; // Token type
    try {
        this.state = 4772;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.ALL:
            this.enterOuterAlt(localctx, 1);
            this.state = 4701;
            this.match(SqlParser.ALL);
            this.state = 4703;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.PRIVILEGES) {
                this.state = 4702;
                this.match(SqlParser.PRIVILEGES);
            }

            break;
        case SqlParser.ALTER:
            this.enterOuterAlt(localctx, 2);
            this.state = 4705;
            this.match(SqlParser.ALTER);
            this.state = 4707;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ROUTINE) {
                this.state = 4706;
                this.match(SqlParser.ROUTINE);
            }

            break;
        case SqlParser.CREATE:
            this.enterOuterAlt(localctx, 3);
            this.state = 4709;
            this.match(SqlParser.CREATE);
            this.state = 4717;
            this._errHandler.sync(this);
            switch (this._input.LA(1)) {
            case SqlParser.TEMPORARY:
            	this.state = 4710;
            	this.match(SqlParser.TEMPORARY);
            	this.state = 4711;
            	this.match(SqlParser.TABLES);
            	break;
            case SqlParser.ROUTINE:
            	this.state = 4712;
            	this.match(SqlParser.ROUTINE);
            	break;
            case SqlParser.VIEW:
            	this.state = 4713;
            	this.match(SqlParser.VIEW);
            	break;
            case SqlParser.USER:
            	this.state = 4714;
            	this.match(SqlParser.USER);
            	break;
            case SqlParser.TABLESPACE:
            	this.state = 4715;
            	this.match(SqlParser.TABLESPACE);
            	break;
            case SqlParser.ROLE:
            	this.state = 4716;
            	this.match(SqlParser.ROLE);
            	break;
            case SqlParser.ON:
            case SqlParser.LR_BRACKET:
            case SqlParser.COMMA:
            	break;
            default:
            	break;
            }
            break;
        case SqlParser.DELETE:
            this.enterOuterAlt(localctx, 4);
            this.state = 4719;
            this.match(SqlParser.DELETE);
            break;
        case SqlParser.DROP:
            this.enterOuterAlt(localctx, 5);
            this.state = 4720;
            this.match(SqlParser.DROP);
            this.state = 4722;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ROLE) {
                this.state = 4721;
                this.match(SqlParser.ROLE);
            }

            break;
        case SqlParser.EVENT:
            this.enterOuterAlt(localctx, 6);
            this.state = 4724;
            this.match(SqlParser.EVENT);
            break;
        case SqlParser.EXECUTE:
            this.enterOuterAlt(localctx, 7);
            this.state = 4725;
            this.match(SqlParser.EXECUTE);
            break;
        case SqlParser.FILE:
            this.enterOuterAlt(localctx, 8);
            this.state = 4726;
            this.match(SqlParser.FILE);
            break;
        case SqlParser.GRANT:
            this.enterOuterAlt(localctx, 9);
            this.state = 4727;
            this.match(SqlParser.GRANT);
            this.state = 4728;
            this.match(SqlParser.OPTION);
            break;
        case SqlParser.INDEX:
            this.enterOuterAlt(localctx, 10);
            this.state = 4729;
            this.match(SqlParser.INDEX);
            break;
        case SqlParser.INSERT:
            this.enterOuterAlt(localctx, 11);
            this.state = 4730;
            this.match(SqlParser.INSERT);
            break;
        case SqlParser.LOCK:
            this.enterOuterAlt(localctx, 12);
            this.state = 4731;
            this.match(SqlParser.LOCK);
            this.state = 4732;
            this.match(SqlParser.TABLES);
            break;
        case SqlParser.PROCESS:
            this.enterOuterAlt(localctx, 13);
            this.state = 4733;
            this.match(SqlParser.PROCESS);
            break;
        case SqlParser.PROXY:
            this.enterOuterAlt(localctx, 14);
            this.state = 4734;
            this.match(SqlParser.PROXY);
            break;
        case SqlParser.REFERENCES:
            this.enterOuterAlt(localctx, 15);
            this.state = 4735;
            this.match(SqlParser.REFERENCES);
            break;
        case SqlParser.RELOAD:
            this.enterOuterAlt(localctx, 16);
            this.state = 4736;
            this.match(SqlParser.RELOAD);
            break;
        case SqlParser.REPLICATION:
            this.enterOuterAlt(localctx, 17);
            this.state = 4737;
            this.match(SqlParser.REPLICATION);
            this.state = 4738;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.CLIENT || _la===SqlParser.SLAVE)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;
        case SqlParser.SELECT:
            this.enterOuterAlt(localctx, 18);
            this.state = 4739;
            this.match(SqlParser.SELECT);
            break;
        case SqlParser.SHOW:
            this.enterOuterAlt(localctx, 19);
            this.state = 4740;
            this.match(SqlParser.SHOW);
            this.state = 4741;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DATABASES || _la===SqlParser.VIEW)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;
        case SqlParser.SHUTDOWN:
            this.enterOuterAlt(localctx, 20);
            this.state = 4742;
            this.match(SqlParser.SHUTDOWN);
            break;
        case SqlParser.SUPER:
            this.enterOuterAlt(localctx, 21);
            this.state = 4743;
            this.match(SqlParser.SUPER);
            break;
        case SqlParser.TRIGGER:
            this.enterOuterAlt(localctx, 22);
            this.state = 4744;
            this.match(SqlParser.TRIGGER);
            break;
        case SqlParser.UPDATE:
            this.enterOuterAlt(localctx, 23);
            this.state = 4745;
            this.match(SqlParser.UPDATE);
            break;
        case SqlParser.USAGE:
            this.enterOuterAlt(localctx, 24);
            this.state = 4746;
            this.match(SqlParser.USAGE);
            break;
        case SqlParser.AUDIT_ADMIN:
            this.enterOuterAlt(localctx, 25);
            this.state = 4747;
            this.match(SqlParser.AUDIT_ADMIN);
            break;
        case SqlParser.BACKUP_ADMIN:
            this.enterOuterAlt(localctx, 26);
            this.state = 4748;
            this.match(SqlParser.BACKUP_ADMIN);
            break;
        case SqlParser.BINLOG_ADMIN:
            this.enterOuterAlt(localctx, 27);
            this.state = 4749;
            this.match(SqlParser.BINLOG_ADMIN);
            break;
        case SqlParser.BINLOG_ENCRYPTION_ADMIN:
            this.enterOuterAlt(localctx, 28);
            this.state = 4750;
            this.match(SqlParser.BINLOG_ENCRYPTION_ADMIN);
            break;
        case SqlParser.CLONE_ADMIN:
            this.enterOuterAlt(localctx, 29);
            this.state = 4751;
            this.match(SqlParser.CLONE_ADMIN);
            break;
        case SqlParser.CONNECTION_ADMIN:
            this.enterOuterAlt(localctx, 30);
            this.state = 4752;
            this.match(SqlParser.CONNECTION_ADMIN);
            break;
        case SqlParser.ENCRYPTION_KEY_ADMIN:
            this.enterOuterAlt(localctx, 31);
            this.state = 4753;
            this.match(SqlParser.ENCRYPTION_KEY_ADMIN);
            break;
        case SqlParser.FIREWALL_ADMIN:
            this.enterOuterAlt(localctx, 32);
            this.state = 4754;
            this.match(SqlParser.FIREWALL_ADMIN);
            break;
        case SqlParser.FIREWALL_USER:
            this.enterOuterAlt(localctx, 33);
            this.state = 4755;
            this.match(SqlParser.FIREWALL_USER);
            break;
        case SqlParser.GROUP_REPLICATION_ADMIN:
            this.enterOuterAlt(localctx, 34);
            this.state = 4756;
            this.match(SqlParser.GROUP_REPLICATION_ADMIN);
            break;
        case SqlParser.INNODB_REDO_LOG_ARCHIVE:
            this.enterOuterAlt(localctx, 35);
            this.state = 4757;
            this.match(SqlParser.INNODB_REDO_LOG_ARCHIVE);
            break;
        case SqlParser.NDB_STORED_USER:
            this.enterOuterAlt(localctx, 36);
            this.state = 4758;
            this.match(SqlParser.NDB_STORED_USER);
            break;
        case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
            this.enterOuterAlt(localctx, 37);
            this.state = 4759;
            this.match(SqlParser.PERSIST_RO_VARIABLES_ADMIN);
            break;
        case SqlParser.REPLICATION_APPLIER:
            this.enterOuterAlt(localctx, 38);
            this.state = 4760;
            this.match(SqlParser.REPLICATION_APPLIER);
            break;
        case SqlParser.REPLICATION_SLAVE_ADMIN:
            this.enterOuterAlt(localctx, 39);
            this.state = 4761;
            this.match(SqlParser.REPLICATION_SLAVE_ADMIN);
            break;
        case SqlParser.RESOURCE_GROUP_ADMIN:
            this.enterOuterAlt(localctx, 40);
            this.state = 4762;
            this.match(SqlParser.RESOURCE_GROUP_ADMIN);
            break;
        case SqlParser.RESOURCE_GROUP_USER:
            this.enterOuterAlt(localctx, 41);
            this.state = 4763;
            this.match(SqlParser.RESOURCE_GROUP_USER);
            break;
        case SqlParser.ROLE_ADMIN:
            this.enterOuterAlt(localctx, 42);
            this.state = 4764;
            this.match(SqlParser.ROLE_ADMIN);
            break;
        case SqlParser.SESSION_VARIABLES_ADMIN:
            this.enterOuterAlt(localctx, 43);
            this.state = 4765;
            this.match(SqlParser.SESSION_VARIABLES_ADMIN);
            break;
        case SqlParser.SET_USER_ID:
            this.enterOuterAlt(localctx, 44);
            this.state = 4766;
            this.match(SqlParser.SET_USER_ID);
            break;
        case SqlParser.SHOW_ROUTINE:
            this.enterOuterAlt(localctx, 45);
            this.state = 4767;
            this.match(SqlParser.SHOW_ROUTINE);
            break;
        case SqlParser.SYSTEM_VARIABLES_ADMIN:
            this.enterOuterAlt(localctx, 46);
            this.state = 4768;
            this.match(SqlParser.SYSTEM_VARIABLES_ADMIN);
            break;
        case SqlParser.TABLE_ENCRYPTION_ADMIN:
            this.enterOuterAlt(localctx, 47);
            this.state = 4769;
            this.match(SqlParser.TABLE_ENCRYPTION_ADMIN);
            break;
        case SqlParser.VERSION_TOKEN_ADMIN:
            this.enterOuterAlt(localctx, 48);
            this.state = 4770;
            this.match(SqlParser.VERSION_TOKEN_ADMIN);
            break;
        case SqlParser.XA_RECOVER_ADMIN:
            this.enterOuterAlt(localctx, 49);
            this.state = 4771;
            this.match(SqlParser.XA_RECOVER_ADMIN);
            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 PrivilegeLevelContext(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_privilegeLevel;
    return this;
}

PrivilegeLevelContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PrivilegeLevelContext.prototype.constructor = PrivilegeLevelContext;


 
PrivilegeLevelContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function DefiniteSchemaPrivLevelContext(parser, ctx) {
	PrivilegeLevelContext.call(this, parser);
    PrivilegeLevelContext.prototype.copyFrom.call(this, ctx);
    return this;
}

DefiniteSchemaPrivLevelContext.prototype = Object.create(PrivilegeLevelContext.prototype);
DefiniteSchemaPrivLevelContext.prototype.constructor = DefiniteSchemaPrivLevelContext;

SqlParser.DefiniteSchemaPrivLevelContext = DefiniteSchemaPrivLevelContext;

DefiniteSchemaPrivLevelContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

DefiniteSchemaPrivLevelContext.prototype.DOT = function() {
    return this.getToken(SqlParser.DOT, 0);
};

DefiniteSchemaPrivLevelContext.prototype.STAR = function() {
    return this.getToken(SqlParser.STAR, 0);
};
DefiniteSchemaPrivLevelContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDefiniteSchemaPrivLevel(this);
	}
};

DefiniteSchemaPrivLevelContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDefiniteSchemaPrivLevel(this);
	}
};

DefiniteSchemaPrivLevelContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDefiniteSchemaPrivLevel(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function DefiniteFullTablePrivLevel2Context(parser, ctx) {
	PrivilegeLevelContext.call(this, parser);
    PrivilegeLevelContext.prototype.copyFrom.call(this, ctx);
    return this;
}

DefiniteFullTablePrivLevel2Context.prototype = Object.create(PrivilegeLevelContext.prototype);
DefiniteFullTablePrivLevel2Context.prototype.constructor = DefiniteFullTablePrivLevel2Context;

SqlParser.DefiniteFullTablePrivLevel2Context = DefiniteFullTablePrivLevel2Context;

DefiniteFullTablePrivLevel2Context.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

DefiniteFullTablePrivLevel2Context.prototype.dottedId = function() {
    return this.getTypedRuleContext(DottedIdContext,0);
};
DefiniteFullTablePrivLevel2Context.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDefiniteFullTablePrivLevel2(this);
	}
};

DefiniteFullTablePrivLevel2Context.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDefiniteFullTablePrivLevel2(this);
	}
};

DefiniteFullTablePrivLevel2Context.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDefiniteFullTablePrivLevel2(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function DefiniteFullTablePrivLevelContext(parser, ctx) {
	PrivilegeLevelContext.call(this, parser);
    PrivilegeLevelContext.prototype.copyFrom.call(this, ctx);
    return this;
}

DefiniteFullTablePrivLevelContext.prototype = Object.create(PrivilegeLevelContext.prototype);
DefiniteFullTablePrivLevelContext.prototype.constructor = DefiniteFullTablePrivLevelContext;

SqlParser.DefiniteFullTablePrivLevelContext = DefiniteFullTablePrivLevelContext;

DefiniteFullTablePrivLevelContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

DefiniteFullTablePrivLevelContext.prototype.DOT = function() {
    return this.getToken(SqlParser.DOT, 0);
};
DefiniteFullTablePrivLevelContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDefiniteFullTablePrivLevel(this);
	}
};

DefiniteFullTablePrivLevelContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDefiniteFullTablePrivLevel(this);
	}
};

DefiniteFullTablePrivLevelContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDefiniteFullTablePrivLevel(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function GlobalPrivLevelContext(parser, ctx) {
	PrivilegeLevelContext.call(this, parser);
    PrivilegeLevelContext.prototype.copyFrom.call(this, ctx);
    return this;
}

GlobalPrivLevelContext.prototype = Object.create(PrivilegeLevelContext.prototype);
GlobalPrivLevelContext.prototype.constructor = GlobalPrivLevelContext;

SqlParser.GlobalPrivLevelContext = GlobalPrivLevelContext;

GlobalPrivLevelContext.prototype.STAR = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.STAR);
    } else {
        return this.getToken(SqlParser.STAR, i);
    }
};


GlobalPrivLevelContext.prototype.DOT = function() {
    return this.getToken(SqlParser.DOT, 0);
};
GlobalPrivLevelContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterGlobalPrivLevel(this);
	}
};

GlobalPrivLevelContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitGlobalPrivLevel(this);
	}
};

GlobalPrivLevelContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitGlobalPrivLevel(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function DefiniteTablePrivLevelContext(parser, ctx) {
	PrivilegeLevelContext.call(this, parser);
    PrivilegeLevelContext.prototype.copyFrom.call(this, ctx);
    return this;
}

DefiniteTablePrivLevelContext.prototype = Object.create(PrivilegeLevelContext.prototype);
DefiniteTablePrivLevelContext.prototype.constructor = DefiniteTablePrivLevelContext;

SqlParser.DefiniteTablePrivLevelContext = DefiniteTablePrivLevelContext;

DefiniteTablePrivLevelContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};
DefiniteTablePrivLevelContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDefiniteTablePrivLevel(this);
	}
};

DefiniteTablePrivLevelContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDefiniteTablePrivLevel(this);
	}
};

DefiniteTablePrivLevelContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDefiniteTablePrivLevel(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function CurrentSchemaPriviLevelContext(parser, ctx) {
	PrivilegeLevelContext.call(this, parser);
    PrivilegeLevelContext.prototype.copyFrom.call(this, ctx);
    return this;
}

CurrentSchemaPriviLevelContext.prototype = Object.create(PrivilegeLevelContext.prototype);
CurrentSchemaPriviLevelContext.prototype.constructor = CurrentSchemaPriviLevelContext;

SqlParser.CurrentSchemaPriviLevelContext = CurrentSchemaPriviLevelContext;

CurrentSchemaPriviLevelContext.prototype.STAR = function() {
    return this.getToken(SqlParser.STAR, 0);
};
CurrentSchemaPriviLevelContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCurrentSchemaPriviLevel(this);
	}
};

CurrentSchemaPriviLevelContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCurrentSchemaPriviLevel(this);
	}
};

CurrentSchemaPriviLevelContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCurrentSchemaPriviLevel(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.PrivilegeLevelContext = PrivilegeLevelContext;

SqlParser.prototype.privilegeLevel = function() {

    var localctx = new PrivilegeLevelContext(this, this._ctx, this.state);
    this.enterRule(localctx, 418, SqlParser.RULE_privilegeLevel);
    try {
        this.state = 4790;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,688,this._ctx);
        switch(la_) {
        case 1:
            localctx = new CurrentSchemaPriviLevelContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 4774;
            this.match(SqlParser.STAR);
            break;

        case 2:
            localctx = new GlobalPrivLevelContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 4775;
            this.match(SqlParser.STAR);
            this.state = 4776;
            this.match(SqlParser.DOT);
            this.state = 4777;
            this.match(SqlParser.STAR);
            break;

        case 3:
            localctx = new DefiniteSchemaPrivLevelContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 4778;
            this.uid();
            this.state = 4779;
            this.match(SqlParser.DOT);
            this.state = 4780;
            this.match(SqlParser.STAR);
            break;

        case 4:
            localctx = new DefiniteFullTablePrivLevelContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 4782;
            this.uid();
            this.state = 4783;
            this.match(SqlParser.DOT);
            this.state = 4784;
            this.uid();
            break;

        case 5:
            localctx = new DefiniteFullTablePrivLevel2Context(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 4786;
            this.uid();
            this.state = 4787;
            this.dottedId();
            break;

        case 6:
            localctx = new DefiniteTablePrivLevelContext(this, localctx);
            this.enterOuterAlt(localctx, 6);
            this.state = 4789;
            this.uid();
            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 RenameUserClauseContext(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_renameUserClause;
    this.fromFirst = null; // UserNameContext
    this.toFirst = null; // UserNameContext
    return this;
}

RenameUserClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RenameUserClauseContext.prototype.constructor = RenameUserClauseContext;

RenameUserClauseContext.prototype.TO = function() {
    return this.getToken(SqlParser.TO, 0);
};

RenameUserClauseContext.prototype.userName = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UserNameContext);
    } else {
        return this.getTypedRuleContext(UserNameContext,i);
    }
};

RenameUserClauseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRenameUserClause(this);
	}
};

RenameUserClauseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRenameUserClause(this);
	}
};

RenameUserClauseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRenameUserClause(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.RenameUserClauseContext = RenameUserClauseContext;

SqlParser.prototype.renameUserClause = function() {

    var localctx = new RenameUserClauseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 420, SqlParser.RULE_renameUserClause);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4792;
        localctx.fromFirst = this.userName();
        this.state = 4793;
        this.match(SqlParser.TO);
        this.state = 4794;
        localctx.toFirst = this.userName();
    } 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 AnalyzeTableContext(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_analyzeTable;
    this.actionOption = null; // Token
    return this;
}

AnalyzeTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AnalyzeTableContext.prototype.constructor = AnalyzeTableContext;

AnalyzeTableContext.prototype.ANALYZE = function() {
    return this.getToken(SqlParser.ANALYZE, 0);
};

AnalyzeTableContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

AnalyzeTableContext.prototype.tables = function() {
    return this.getTypedRuleContext(TablesContext,0);
};

AnalyzeTableContext.prototype.NO_WRITE_TO_BINLOG = function() {
    return this.getToken(SqlParser.NO_WRITE_TO_BINLOG, 0);
};

AnalyzeTableContext.prototype.LOCAL = function() {
    return this.getToken(SqlParser.LOCAL, 0);
};

AnalyzeTableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAnalyzeTable(this);
	}
};

AnalyzeTableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAnalyzeTable(this);
	}
};

AnalyzeTableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAnalyzeTable(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.AnalyzeTableContext = AnalyzeTableContext;

SqlParser.prototype.analyzeTable = function() {

    var localctx = new AnalyzeTableContext(this, this._ctx, this.state);
    this.enterRule(localctx, 422, SqlParser.RULE_analyzeTable);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4796;
        this.match(SqlParser.ANALYZE);
        this.state = 4798;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.NO_WRITE_TO_BINLOG || _la===SqlParser.LOCAL) {
            this.state = 4797;
            localctx.actionOption = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.NO_WRITE_TO_BINLOG || _la===SqlParser.LOCAL)) {
                localctx.actionOption = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 4800;
        this.match(SqlParser.TABLE);
        this.state = 4801;
        this.tables();
    } 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 CheckTableContext(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_checkTable;
    return this;
}

CheckTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CheckTableContext.prototype.constructor = CheckTableContext;

CheckTableContext.prototype.CHECK = function() {
    return this.getToken(SqlParser.CHECK, 0);
};

CheckTableContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

CheckTableContext.prototype.tables = function() {
    return this.getTypedRuleContext(TablesContext,0);
};

CheckTableContext.prototype.checkTableOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(CheckTableOptionContext);
    } else {
        return this.getTypedRuleContext(CheckTableOptionContext,i);
    }
};

CheckTableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCheckTable(this);
	}
};

CheckTableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCheckTable(this);
	}
};

CheckTableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCheckTable(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CheckTableContext = CheckTableContext;

SqlParser.prototype.checkTable = function() {

    var localctx = new CheckTableContext(this, this._ctx, this.state);
    this.enterRule(localctx, 424, SqlParser.RULE_checkTable);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4803;
        this.match(SqlParser.CHECK);
        this.state = 4804;
        this.match(SqlParser.TABLE);
        this.state = 4805;
        this.tables();
        this.state = 4809;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.FOR || _la===SqlParser.CHANGED || _la===SqlParser.EXTENDED || _la===SqlParser.FAST || _la===SqlParser.MEDIUM || _la===SqlParser.QUICK) {
            this.state = 4806;
            this.checkTableOption();
            this.state = 4811;
            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 ChecksumTableContext(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_checksumTable;
    this.actionOption = null; // Token
    return this;
}

ChecksumTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ChecksumTableContext.prototype.constructor = ChecksumTableContext;

ChecksumTableContext.prototype.CHECKSUM = function() {
    return this.getToken(SqlParser.CHECKSUM, 0);
};

ChecksumTableContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

ChecksumTableContext.prototype.tables = function() {
    return this.getTypedRuleContext(TablesContext,0);
};

ChecksumTableContext.prototype.QUICK = function() {
    return this.getToken(SqlParser.QUICK, 0);
};

ChecksumTableContext.prototype.EXTENDED = function() {
    return this.getToken(SqlParser.EXTENDED, 0);
};

ChecksumTableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterChecksumTable(this);
	}
};

ChecksumTableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitChecksumTable(this);
	}
};

ChecksumTableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitChecksumTable(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ChecksumTableContext = ChecksumTableContext;

SqlParser.prototype.checksumTable = function() {

    var localctx = new ChecksumTableContext(this, this._ctx, this.state);
    this.enterRule(localctx, 426, SqlParser.RULE_checksumTable);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4812;
        this.match(SqlParser.CHECKSUM);
        this.state = 4813;
        this.match(SqlParser.TABLE);
        this.state = 4814;
        this.tables();
        this.state = 4816;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.EXTENDED || _la===SqlParser.QUICK) {
            this.state = 4815;
            localctx.actionOption = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.EXTENDED || _la===SqlParser.QUICK)) {
                localctx.actionOption = 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 OptimizeTableContext(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_optimizeTable;
    this.actionOption = null; // Token
    return this;
}

OptimizeTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
OptimizeTableContext.prototype.constructor = OptimizeTableContext;

OptimizeTableContext.prototype.OPTIMIZE = function() {
    return this.getToken(SqlParser.OPTIMIZE, 0);
};

OptimizeTableContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

OptimizeTableContext.prototype.tables = function() {
    return this.getTypedRuleContext(TablesContext,0);
};

OptimizeTableContext.prototype.NO_WRITE_TO_BINLOG = function() {
    return this.getToken(SqlParser.NO_WRITE_TO_BINLOG, 0);
};

OptimizeTableContext.prototype.LOCAL = function() {
    return this.getToken(SqlParser.LOCAL, 0);
};

OptimizeTableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterOptimizeTable(this);
	}
};

OptimizeTableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitOptimizeTable(this);
	}
};

OptimizeTableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitOptimizeTable(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.OptimizeTableContext = OptimizeTableContext;

SqlParser.prototype.optimizeTable = function() {

    var localctx = new OptimizeTableContext(this, this._ctx, this.state);
    this.enterRule(localctx, 428, SqlParser.RULE_optimizeTable);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4818;
        this.match(SqlParser.OPTIMIZE);
        this.state = 4820;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.NO_WRITE_TO_BINLOG || _la===SqlParser.LOCAL) {
            this.state = 4819;
            localctx.actionOption = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.NO_WRITE_TO_BINLOG || _la===SqlParser.LOCAL)) {
                localctx.actionOption = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 4822;
        this.match(SqlParser.TABLE);
        this.state = 4823;
        this.tables();
    } 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 RepairTableContext(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_repairTable;
    this.actionOption = null; // Token
    return this;
}

RepairTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
RepairTableContext.prototype.constructor = RepairTableContext;

RepairTableContext.prototype.REPAIR = function() {
    return this.getToken(SqlParser.REPAIR, 0);
};

RepairTableContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

RepairTableContext.prototype.tables = function() {
    return this.getTypedRuleContext(TablesContext,0);
};

RepairTableContext.prototype.QUICK = function() {
    return this.getToken(SqlParser.QUICK, 0);
};

RepairTableContext.prototype.EXTENDED = function() {
    return this.getToken(SqlParser.EXTENDED, 0);
};

RepairTableContext.prototype.USE_FRM = function() {
    return this.getToken(SqlParser.USE_FRM, 0);
};

RepairTableContext.prototype.NO_WRITE_TO_BINLOG = function() {
    return this.getToken(SqlParser.NO_WRITE_TO_BINLOG, 0);
};

RepairTableContext.prototype.LOCAL = function() {
    return this.getToken(SqlParser.LOCAL, 0);
};

RepairTableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRepairTable(this);
	}
};

RepairTableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRepairTable(this);
	}
};

RepairTableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRepairTable(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.RepairTableContext = RepairTableContext;

SqlParser.prototype.repairTable = function() {

    var localctx = new RepairTableContext(this, this._ctx, this.state);
    this.enterRule(localctx, 430, SqlParser.RULE_repairTable);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4825;
        this.match(SqlParser.REPAIR);
        this.state = 4827;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.NO_WRITE_TO_BINLOG || _la===SqlParser.LOCAL) {
            this.state = 4826;
            localctx.actionOption = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.NO_WRITE_TO_BINLOG || _la===SqlParser.LOCAL)) {
                localctx.actionOption = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 4829;
        this.match(SqlParser.TABLE);
        this.state = 4830;
        this.tables();
        this.state = 4832;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.QUICK) {
            this.state = 4831;
            this.match(SqlParser.QUICK);
        }

        this.state = 4835;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.EXTENDED) {
            this.state = 4834;
            this.match(SqlParser.EXTENDED);
        }

        this.state = 4838;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.USE_FRM) {
            this.state = 4837;
            this.match(SqlParser.USE_FRM);
        }

    } 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 CheckTableOptionContext(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_checkTableOption;
    return this;
}

CheckTableOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CheckTableOptionContext.prototype.constructor = CheckTableOptionContext;

CheckTableOptionContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

CheckTableOptionContext.prototype.UPGRADE = function() {
    return this.getToken(SqlParser.UPGRADE, 0);
};

CheckTableOptionContext.prototype.QUICK = function() {
    return this.getToken(SqlParser.QUICK, 0);
};

CheckTableOptionContext.prototype.FAST = function() {
    return this.getToken(SqlParser.FAST, 0);
};

CheckTableOptionContext.prototype.MEDIUM = function() {
    return this.getToken(SqlParser.MEDIUM, 0);
};

CheckTableOptionContext.prototype.EXTENDED = function() {
    return this.getToken(SqlParser.EXTENDED, 0);
};

CheckTableOptionContext.prototype.CHANGED = function() {
    return this.getToken(SqlParser.CHANGED, 0);
};

CheckTableOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCheckTableOption(this);
	}
};

CheckTableOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCheckTableOption(this);
	}
};

CheckTableOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCheckTableOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CheckTableOptionContext = CheckTableOptionContext;

SqlParser.prototype.checkTableOption = function() {

    var localctx = new CheckTableOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 432, SqlParser.RULE_checkTableOption);
    try {
        this.state = 4847;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.FOR:
            this.enterOuterAlt(localctx, 1);
            this.state = 4840;
            this.match(SqlParser.FOR);
            this.state = 4841;
            this.match(SqlParser.UPGRADE);
            break;
        case SqlParser.QUICK:
            this.enterOuterAlt(localctx, 2);
            this.state = 4842;
            this.match(SqlParser.QUICK);
            break;
        case SqlParser.FAST:
            this.enterOuterAlt(localctx, 3);
            this.state = 4843;
            this.match(SqlParser.FAST);
            break;
        case SqlParser.MEDIUM:
            this.enterOuterAlt(localctx, 4);
            this.state = 4844;
            this.match(SqlParser.MEDIUM);
            break;
        case SqlParser.EXTENDED:
            this.enterOuterAlt(localctx, 5);
            this.state = 4845;
            this.match(SqlParser.EXTENDED);
            break;
        case SqlParser.CHANGED:
            this.enterOuterAlt(localctx, 6);
            this.state = 4846;
            this.match(SqlParser.CHANGED);
            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 CreateUdfunctionContext(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_createUdfunction;
    this.returnType = null; // Token
    return this;
}

CreateUdfunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CreateUdfunctionContext.prototype.constructor = CreateUdfunctionContext;

CreateUdfunctionContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

CreateUdfunctionContext.prototype.FUNCTION = function() {
    return this.getToken(SqlParser.FUNCTION, 0);
};

CreateUdfunctionContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

CreateUdfunctionContext.prototype.RETURNS = function() {
    return this.getToken(SqlParser.RETURNS, 0);
};

CreateUdfunctionContext.prototype.SONAME = function() {
    return this.getToken(SqlParser.SONAME, 0);
};

CreateUdfunctionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

CreateUdfunctionContext.prototype.STRING = function() {
    return this.getToken(SqlParser.STRING, 0);
};

CreateUdfunctionContext.prototype.INTEGER = function() {
    return this.getToken(SqlParser.INTEGER, 0);
};

CreateUdfunctionContext.prototype.REAL = function() {
    return this.getToken(SqlParser.REAL, 0);
};

CreateUdfunctionContext.prototype.DECIMAL = function() {
    return this.getToken(SqlParser.DECIMAL, 0);
};

CreateUdfunctionContext.prototype.AGGREGATE = function() {
    return this.getToken(SqlParser.AGGREGATE, 0);
};

CreateUdfunctionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCreateUdfunction(this);
	}
};

CreateUdfunctionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCreateUdfunction(this);
	}
};

CreateUdfunctionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCreateUdfunction(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CreateUdfunctionContext = CreateUdfunctionContext;

SqlParser.prototype.createUdfunction = function() {

    var localctx = new CreateUdfunctionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 434, SqlParser.RULE_createUdfunction);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4849;
        this.match(SqlParser.CREATE);
        this.state = 4851;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.AGGREGATE) {
            this.state = 4850;
            this.match(SqlParser.AGGREGATE);
        }

        this.state = 4853;
        this.match(SqlParser.FUNCTION);
        this.state = 4854;
        this.uid();
        this.state = 4855;
        this.match(SqlParser.RETURNS);
        this.state = 4856;
        localctx.returnType = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(((((_la - 188)) & ~0x1f) == 0 && ((1 << (_la - 188)) & ((1 << (SqlParser.INTEGER - 188)) | (1 << (SqlParser.REAL - 188)) | (1 << (SqlParser.DECIMAL - 188)))) !== 0) || _la===SqlParser.STRING)) {
            localctx.returnType = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 4857;
        this.match(SqlParser.SONAME);
        this.state = 4858;
        this.match(SqlParser.STRING_LITERAL);
    } 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 InstallPluginContext(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_installPlugin;
    return this;
}

InstallPluginContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
InstallPluginContext.prototype.constructor = InstallPluginContext;

InstallPluginContext.prototype.INSTALL = function() {
    return this.getToken(SqlParser.INSTALL, 0);
};

InstallPluginContext.prototype.PLUGIN = function() {
    return this.getToken(SqlParser.PLUGIN, 0);
};

InstallPluginContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

InstallPluginContext.prototype.SONAME = function() {
    return this.getToken(SqlParser.SONAME, 0);
};

InstallPluginContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

InstallPluginContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterInstallPlugin(this);
	}
};

InstallPluginContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitInstallPlugin(this);
	}
};

InstallPluginContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitInstallPlugin(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.InstallPluginContext = InstallPluginContext;

SqlParser.prototype.installPlugin = function() {

    var localctx = new InstallPluginContext(this, this._ctx, this.state);
    this.enterRule(localctx, 436, SqlParser.RULE_installPlugin);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4860;
        this.match(SqlParser.INSTALL);
        this.state = 4861;
        this.match(SqlParser.PLUGIN);
        this.state = 4862;
        this.uid();
        this.state = 4863;
        this.match(SqlParser.SONAME);
        this.state = 4864;
        this.match(SqlParser.STRING_LITERAL);
    } 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 UninstallPluginContext(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_uninstallPlugin;
    return this;
}

UninstallPluginContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UninstallPluginContext.prototype.constructor = UninstallPluginContext;

UninstallPluginContext.prototype.UNINSTALL = function() {
    return this.getToken(SqlParser.UNINSTALL, 0);
};

UninstallPluginContext.prototype.PLUGIN = function() {
    return this.getToken(SqlParser.PLUGIN, 0);
};

UninstallPluginContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

UninstallPluginContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUninstallPlugin(this);
	}
};

UninstallPluginContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUninstallPlugin(this);
	}
};

UninstallPluginContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUninstallPlugin(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UninstallPluginContext = UninstallPluginContext;

SqlParser.prototype.uninstallPlugin = function() {

    var localctx = new UninstallPluginContext(this, this._ctx, this.state);
    this.enterRule(localctx, 438, SqlParser.RULE_uninstallPlugin);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 4866;
        this.match(SqlParser.UNINSTALL);
        this.state = 4867;
        this.match(SqlParser.PLUGIN);
        this.state = 4868;
        this.uid();
    } 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 SetStatementContext(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_setStatement;
    return this;
}

SetStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SetStatementContext.prototype.constructor = SetStatementContext;


 
SetStatementContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function SetTransactionContext(parser, ctx) {
	SetStatementContext.call(this, parser);
    SetStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SetTransactionContext.prototype = Object.create(SetStatementContext.prototype);
SetTransactionContext.prototype.constructor = SetTransactionContext;

SqlParser.SetTransactionContext = SetTransactionContext;

SetTransactionContext.prototype.setTransactionStatement = function() {
    return this.getTypedRuleContext(SetTransactionStatementContext,0);
};
SetTransactionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSetTransaction(this);
	}
};

SetTransactionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSetTransaction(this);
	}
};

SetTransactionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSetTransaction(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SetCharsetContext(parser, ctx) {
	SetStatementContext.call(this, parser);
    SetStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SetCharsetContext.prototype = Object.create(SetStatementContext.prototype);
SetCharsetContext.prototype.constructor = SetCharsetContext;

SqlParser.SetCharsetContext = SetCharsetContext;

SetCharsetContext.prototype.SET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.SET);
    } else {
        return this.getToken(SqlParser.SET, i);
    }
};


SetCharsetContext.prototype.CHARACTER = function() {
    return this.getToken(SqlParser.CHARACTER, 0);
};

SetCharsetContext.prototype.CHARSET = function() {
    return this.getToken(SqlParser.CHARSET, 0);
};

SetCharsetContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};

SetCharsetContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};
SetCharsetContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSetCharset(this);
	}
};

SetCharsetContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSetCharset(this);
	}
};

SetCharsetContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSetCharset(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SetNamesContext(parser, ctx) {
	SetStatementContext.call(this, parser);
    SetStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SetNamesContext.prototype = Object.create(SetStatementContext.prototype);
SetNamesContext.prototype.constructor = SetNamesContext;

SqlParser.SetNamesContext = SetNamesContext;

SetNamesContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

SetNamesContext.prototype.NAMES = function() {
    return this.getToken(SqlParser.NAMES, 0);
};

SetNamesContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};

SetNamesContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

SetNamesContext.prototype.COLLATE = function() {
    return this.getToken(SqlParser.COLLATE, 0);
};

SetNamesContext.prototype.collationName = function() {
    return this.getTypedRuleContext(CollationNameContext,0);
};
SetNamesContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSetNames(this);
	}
};

SetNamesContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSetNames(this);
	}
};

SetNamesContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSetNames(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SetPasswordContext(parser, ctx) {
	SetStatementContext.call(this, parser);
    SetStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SetPasswordContext.prototype = Object.create(SetStatementContext.prototype);
SetPasswordContext.prototype.constructor = SetPasswordContext;

SqlParser.SetPasswordContext = SetPasswordContext;

SetPasswordContext.prototype.setPasswordStatement = function() {
    return this.getTypedRuleContext(SetPasswordStatementContext,0);
};
SetPasswordContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSetPassword(this);
	}
};

SetPasswordContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSetPassword(this);
	}
};

SetPasswordContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSetPassword(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SetAutocommitContext(parser, ctx) {
	SetStatementContext.call(this, parser);
    SetStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SetAutocommitContext.prototype = Object.create(SetStatementContext.prototype);
SetAutocommitContext.prototype.constructor = SetAutocommitContext;

SqlParser.SetAutocommitContext = SetAutocommitContext;

SetAutocommitContext.prototype.setAutocommitStatement = function() {
    return this.getTypedRuleContext(SetAutocommitStatementContext,0);
};
SetAutocommitContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSetAutocommit(this);
	}
};

SetAutocommitContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSetAutocommit(this);
	}
};

SetAutocommitContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSetAutocommit(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SetNewValueInsideTriggerContext(parser, ctx) {
	SetStatementContext.call(this, parser);
    SetStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SetNewValueInsideTriggerContext.prototype = Object.create(SetStatementContext.prototype);
SetNewValueInsideTriggerContext.prototype.constructor = SetNewValueInsideTriggerContext;

SqlParser.SetNewValueInsideTriggerContext = SetNewValueInsideTriggerContext;

SetNewValueInsideTriggerContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

SetNewValueInsideTriggerContext.prototype.fullId = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(FullIdContext);
    } else {
        return this.getTypedRuleContext(FullIdContext,i);
    }
};

SetNewValueInsideTriggerContext.prototype.expression = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionContext);
    } else {
        return this.getTypedRuleContext(ExpressionContext,i);
    }
};

SetNewValueInsideTriggerContext.prototype.EQUAL_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EQUAL_SYMBOL);
    } else {
        return this.getToken(SqlParser.EQUAL_SYMBOL, i);
    }
};


SetNewValueInsideTriggerContext.prototype.VAR_ASSIGN = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.VAR_ASSIGN);
    } else {
        return this.getToken(SqlParser.VAR_ASSIGN, i);
    }
};


SetNewValueInsideTriggerContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

SetNewValueInsideTriggerContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSetNewValueInsideTrigger(this);
	}
};

SetNewValueInsideTriggerContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSetNewValueInsideTrigger(this);
	}
};

SetNewValueInsideTriggerContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSetNewValueInsideTrigger(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SetVariableContext(parser, ctx) {
	SetStatementContext.call(this, parser);
    SetStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SetVariableContext.prototype = Object.create(SetStatementContext.prototype);
SetVariableContext.prototype.constructor = SetVariableContext;

SqlParser.SetVariableContext = SetVariableContext;

SetVariableContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

SetVariableContext.prototype.variableClause = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(VariableClauseContext);
    } else {
        return this.getTypedRuleContext(VariableClauseContext,i);
    }
};

SetVariableContext.prototype.expression = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionContext);
    } else {
        return this.getTypedRuleContext(ExpressionContext,i);
    }
};

SetVariableContext.prototype.EQUAL_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EQUAL_SYMBOL);
    } else {
        return this.getToken(SqlParser.EQUAL_SYMBOL, i);
    }
};


SetVariableContext.prototype.VAR_ASSIGN = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.VAR_ASSIGN);
    } else {
        return this.getToken(SqlParser.VAR_ASSIGN, i);
    }
};


SetVariableContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

SetVariableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSetVariable(this);
	}
};

SetVariableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSetVariable(this);
	}
};

SetVariableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSetVariable(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.SetStatementContext = SetStatementContext;

SqlParser.prototype.setStatement = function() {

    var localctx = new SetStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 440, SqlParser.RULE_setStatement);
    var _la = 0; // Token type
    try {
        this.state = 4921;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,705,this._ctx);
        switch(la_) {
        case 1:
            localctx = new SetVariableContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 4870;
            this.match(SqlParser.SET);
            this.state = 4871;
            this.variableClause();
            this.state = 4872;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.VAR_ASSIGN || _la===SqlParser.EQUAL_SYMBOL)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 4873;
            this.expression(0);
            this.state = 4881;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 4874;
                this.match(SqlParser.COMMA);
                this.state = 4875;
                this.variableClause();
                this.state = 4876;
                _la = this._input.LA(1);
                if(!(_la===SqlParser.VAR_ASSIGN || _la===SqlParser.EQUAL_SYMBOL)) {
                this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
                this.state = 4877;
                this.expression(0);
                this.state = 4883;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;

        case 2:
            localctx = new SetCharsetContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 4884;
            this.match(SqlParser.SET);
            this.state = 4888;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.CHARACTER:
                this.state = 4885;
                this.match(SqlParser.CHARACTER);
                this.state = 4886;
                this.match(SqlParser.SET);
                break;
            case SqlParser.CHARSET:
                this.state = 4887;
                this.match(SqlParser.CHARSET);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            this.state = 4892;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.BINARY:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
                this.state = 4890;
                this.charsetName();
                break;
            case SqlParser.DEFAULT:
                this.state = 4891;
                this.match(SqlParser.DEFAULT);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;

        case 3:
            localctx = new SetNamesContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 4894;
            this.match(SqlParser.SET);
            this.state = 4895;
            this.match(SqlParser.NAMES);
            this.state = 4902;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.BINARY:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
                this.state = 4896;
                this.charsetName();
                this.state = 4899;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.COLLATE) {
                    this.state = 4897;
                    this.match(SqlParser.COLLATE);
                    this.state = 4898;
                    this.collationName();
                }

                break;
            case SqlParser.DEFAULT:
                this.state = 4901;
                this.match(SqlParser.DEFAULT);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;

        case 4:
            localctx = new SetPasswordContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 4904;
            this.setPasswordStatement();
            break;

        case 5:
            localctx = new SetTransactionContext(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 4905;
            this.setTransactionStatement();
            break;

        case 6:
            localctx = new SetAutocommitContext(this, localctx);
            this.enterOuterAlt(localctx, 6);
            this.state = 4906;
            this.setAutocommitStatement();
            break;

        case 7:
            localctx = new SetNewValueInsideTriggerContext(this, localctx);
            this.enterOuterAlt(localctx, 7);
            this.state = 4907;
            this.match(SqlParser.SET);
            this.state = 4908;
            this.fullId();
            this.state = 4909;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.VAR_ASSIGN || _la===SqlParser.EQUAL_SYMBOL)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 4910;
            this.expression(0);
            this.state = 4918;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 4911;
                this.match(SqlParser.COMMA);
                this.state = 4912;
                this.fullId();
                this.state = 4913;
                _la = this._input.LA(1);
                if(!(_la===SqlParser.VAR_ASSIGN || _la===SqlParser.EQUAL_SYMBOL)) {
                this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
                this.state = 4914;
                this.expression(0);
                this.state = 4920;
                this._errHandler.sync(this);
                _la = this._input.LA(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 ShowStatementContext(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_showStatement;
    return this;
}

ShowStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ShowStatementContext.prototype.constructor = ShowStatementContext;


 
ShowStatementContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function ShowOpenTablesContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    this.schemaFormat = null; // Token;
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowOpenTablesContext.prototype = Object.create(ShowStatementContext.prototype);
ShowOpenTablesContext.prototype.constructor = ShowOpenTablesContext;

SqlParser.ShowOpenTablesContext = ShowOpenTablesContext;

ShowOpenTablesContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowOpenTablesContext.prototype.OPEN = function() {
    return this.getToken(SqlParser.OPEN, 0);
};

ShowOpenTablesContext.prototype.TABLES = function() {
    return this.getToken(SqlParser.TABLES, 0);
};

ShowOpenTablesContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

ShowOpenTablesContext.prototype.showFilter = function() {
    return this.getTypedRuleContext(ShowFilterContext,0);
};

ShowOpenTablesContext.prototype.FROM = function() {
    return this.getToken(SqlParser.FROM, 0);
};

ShowOpenTablesContext.prototype.IN = function() {
    return this.getToken(SqlParser.IN, 0);
};
ShowOpenTablesContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowOpenTables(this);
	}
};

ShowOpenTablesContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowOpenTables(this);
	}
};

ShowOpenTablesContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowOpenTables(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowGlobalInfoContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowGlobalInfoContext.prototype = Object.create(ShowStatementContext.prototype);
ShowGlobalInfoContext.prototype.constructor = ShowGlobalInfoContext;

SqlParser.ShowGlobalInfoContext = ShowGlobalInfoContext;

ShowGlobalInfoContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowGlobalInfoContext.prototype.showGlobalInfoClause = function() {
    return this.getTypedRuleContext(ShowGlobalInfoClauseContext,0);
};
ShowGlobalInfoContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowGlobalInfo(this);
	}
};

ShowGlobalInfoContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowGlobalInfo(this);
	}
};

ShowGlobalInfoContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowGlobalInfo(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowCreateFullIdObjectContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    this.namedEntity = null; // Token;
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowCreateFullIdObjectContext.prototype = Object.create(ShowStatementContext.prototype);
ShowCreateFullIdObjectContext.prototype.constructor = ShowCreateFullIdObjectContext;

SqlParser.ShowCreateFullIdObjectContext = ShowCreateFullIdObjectContext;

ShowCreateFullIdObjectContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowCreateFullIdObjectContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

ShowCreateFullIdObjectContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

ShowCreateFullIdObjectContext.prototype.EVENT = function() {
    return this.getToken(SqlParser.EVENT, 0);
};

ShowCreateFullIdObjectContext.prototype.FUNCTION = function() {
    return this.getToken(SqlParser.FUNCTION, 0);
};

ShowCreateFullIdObjectContext.prototype.PROCEDURE = function() {
    return this.getToken(SqlParser.PROCEDURE, 0);
};

ShowCreateFullIdObjectContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

ShowCreateFullIdObjectContext.prototype.TRIGGER = function() {
    return this.getToken(SqlParser.TRIGGER, 0);
};

ShowCreateFullIdObjectContext.prototype.VIEW = function() {
    return this.getToken(SqlParser.VIEW, 0);
};
ShowCreateFullIdObjectContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowCreateFullIdObject(this);
	}
};

ShowCreateFullIdObjectContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowCreateFullIdObject(this);
	}
};

ShowCreateFullIdObjectContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowCreateFullIdObject(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowCreateUserContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowCreateUserContext.prototype = Object.create(ShowStatementContext.prototype);
ShowCreateUserContext.prototype.constructor = ShowCreateUserContext;

SqlParser.ShowCreateUserContext = ShowCreateUserContext;

ShowCreateUserContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowCreateUserContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

ShowCreateUserContext.prototype.USER = function() {
    return this.getToken(SqlParser.USER, 0);
};

ShowCreateUserContext.prototype.userName = function() {
    return this.getTypedRuleContext(UserNameContext,0);
};
ShowCreateUserContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowCreateUser(this);
	}
};

ShowCreateUserContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowCreateUser(this);
	}
};

ShowCreateUserContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowCreateUser(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowErrorsContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    this.errorFormat = null; // Token;
    this.offset = null; // DecimalLiteralContext;
    this.rowCount = null; // DecimalLiteralContext;
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowErrorsContext.prototype = Object.create(ShowStatementContext.prototype);
ShowErrorsContext.prototype.constructor = ShowErrorsContext;

SqlParser.ShowErrorsContext = ShowErrorsContext;

ShowErrorsContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowErrorsContext.prototype.ERRORS = function() {
    return this.getToken(SqlParser.ERRORS, 0);
};

ShowErrorsContext.prototype.WARNINGS = function() {
    return this.getToken(SqlParser.WARNINGS, 0);
};

ShowErrorsContext.prototype.LIMIT = function() {
    return this.getToken(SqlParser.LIMIT, 0);
};

ShowErrorsContext.prototype.decimalLiteral = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DecimalLiteralContext);
    } else {
        return this.getTypedRuleContext(DecimalLiteralContext,i);
    }
};

ShowErrorsContext.prototype.COMMA = function() {
    return this.getToken(SqlParser.COMMA, 0);
};
ShowErrorsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowErrors(this);
	}
};

ShowErrorsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowErrors(this);
	}
};

ShowErrorsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowErrors(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowCountErrorsContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    this.errorFormat = null; // Token;
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowCountErrorsContext.prototype = Object.create(ShowStatementContext.prototype);
ShowCountErrorsContext.prototype.constructor = ShowCountErrorsContext;

SqlParser.ShowCountErrorsContext = ShowCountErrorsContext;

ShowCountErrorsContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowCountErrorsContext.prototype.COUNT = function() {
    return this.getToken(SqlParser.COUNT, 0);
};

ShowCountErrorsContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

ShowCountErrorsContext.prototype.STAR = function() {
    return this.getToken(SqlParser.STAR, 0);
};

ShowCountErrorsContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

ShowCountErrorsContext.prototype.ERRORS = function() {
    return this.getToken(SqlParser.ERRORS, 0);
};

ShowCountErrorsContext.prototype.WARNINGS = function() {
    return this.getToken(SqlParser.WARNINGS, 0);
};
ShowCountErrorsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowCountErrors(this);
	}
};

ShowCountErrorsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowCountErrors(this);
	}
};

ShowCountErrorsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowCountErrors(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowObjectFilterContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowObjectFilterContext.prototype = Object.create(ShowStatementContext.prototype);
ShowObjectFilterContext.prototype.constructor = ShowObjectFilterContext;

SqlParser.ShowObjectFilterContext = ShowObjectFilterContext;

ShowObjectFilterContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowObjectFilterContext.prototype.showCommonEntity = function() {
    return this.getTypedRuleContext(ShowCommonEntityContext,0);
};

ShowObjectFilterContext.prototype.showFilter = function() {
    return this.getTypedRuleContext(ShowFilterContext,0);
};
ShowObjectFilterContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowObjectFilter(this);
	}
};

ShowObjectFilterContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowObjectFilter(this);
	}
};

ShowObjectFilterContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowObjectFilter(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowCreateDbContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    this.schemaFormat = null; // Token;
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowCreateDbContext.prototype = Object.create(ShowStatementContext.prototype);
ShowCreateDbContext.prototype.constructor = ShowCreateDbContext;

SqlParser.ShowCreateDbContext = ShowCreateDbContext;

ShowCreateDbContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowCreateDbContext.prototype.CREATE = function() {
    return this.getToken(SqlParser.CREATE, 0);
};

ShowCreateDbContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

ShowCreateDbContext.prototype.DATABASE = function() {
    return this.getToken(SqlParser.DATABASE, 0);
};

ShowCreateDbContext.prototype.SCHEMA = function() {
    return this.getToken(SqlParser.SCHEMA, 0);
};

ShowCreateDbContext.prototype.ifNotExists = function() {
    return this.getTypedRuleContext(IfNotExistsContext,0);
};
ShowCreateDbContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowCreateDb(this);
	}
};

ShowCreateDbContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowCreateDb(this);
	}
};

ShowCreateDbContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowCreateDb(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowEngineContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    this.engineOption = null; // Token;
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowEngineContext.prototype = Object.create(ShowStatementContext.prototype);
ShowEngineContext.prototype.constructor = ShowEngineContext;

SqlParser.ShowEngineContext = ShowEngineContext;

ShowEngineContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowEngineContext.prototype.ENGINE = function() {
    return this.getToken(SqlParser.ENGINE, 0);
};

ShowEngineContext.prototype.engineName = function() {
    return this.getTypedRuleContext(EngineNameContext,0);
};

ShowEngineContext.prototype.STATUS = function() {
    return this.getToken(SqlParser.STATUS, 0);
};

ShowEngineContext.prototype.MUTEX = function() {
    return this.getToken(SqlParser.MUTEX, 0);
};
ShowEngineContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowEngine(this);
	}
};

ShowEngineContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowEngine(this);
	}
};

ShowEngineContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowEngine(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowSchemaFilterContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    this.schemaFormat = null; // Token;
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowSchemaFilterContext.prototype = Object.create(ShowStatementContext.prototype);
ShowSchemaFilterContext.prototype.constructor = ShowSchemaFilterContext;

SqlParser.ShowSchemaFilterContext = ShowSchemaFilterContext;

ShowSchemaFilterContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowSchemaFilterContext.prototype.showSchemaEntity = function() {
    return this.getTypedRuleContext(ShowSchemaEntityContext,0);
};

ShowSchemaFilterContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

ShowSchemaFilterContext.prototype.showFilter = function() {
    return this.getTypedRuleContext(ShowFilterContext,0);
};

ShowSchemaFilterContext.prototype.FROM = function() {
    return this.getToken(SqlParser.FROM, 0);
};

ShowSchemaFilterContext.prototype.IN = function() {
    return this.getToken(SqlParser.IN, 0);
};
ShowSchemaFilterContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowSchemaFilter(this);
	}
};

ShowSchemaFilterContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowSchemaFilter(this);
	}
};

ShowSchemaFilterContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowSchemaFilter(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowIndexesContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    this.indexFormat = null; // Token;
    this.tableFormat = null; // Token;
    this.schemaFormat = null; // Token;
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowIndexesContext.prototype = Object.create(ShowStatementContext.prototype);
ShowIndexesContext.prototype.constructor = ShowIndexesContext;

SqlParser.ShowIndexesContext = ShowIndexesContext;

ShowIndexesContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowIndexesContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

ShowIndexesContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

ShowIndexesContext.prototype.INDEXES = function() {
    return this.getToken(SqlParser.INDEXES, 0);
};

ShowIndexesContext.prototype.KEYS = function() {
    return this.getToken(SqlParser.KEYS, 0);
};

ShowIndexesContext.prototype.FROM = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.FROM);
    } else {
        return this.getToken(SqlParser.FROM, i);
    }
};


ShowIndexesContext.prototype.IN = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.IN);
    } else {
        return this.getToken(SqlParser.IN, i);
    }
};


ShowIndexesContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

ShowIndexesContext.prototype.WHERE = function() {
    return this.getToken(SqlParser.WHERE, 0);
};

ShowIndexesContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};
ShowIndexesContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowIndexes(this);
	}
};

ShowIndexesContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowIndexes(this);
	}
};

ShowIndexesContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowIndexes(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowLogEventsContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    this.logFormat = null; // Token;
    this.filename = null; // Token;
    this.fromPosition = null; // DecimalLiteralContext;
    this.offset = null; // DecimalLiteralContext;
    this.rowCount = null; // DecimalLiteralContext;
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowLogEventsContext.prototype = Object.create(ShowStatementContext.prototype);
ShowLogEventsContext.prototype.constructor = ShowLogEventsContext;

SqlParser.ShowLogEventsContext = ShowLogEventsContext;

ShowLogEventsContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowLogEventsContext.prototype.EVENTS = function() {
    return this.getToken(SqlParser.EVENTS, 0);
};

ShowLogEventsContext.prototype.BINLOG = function() {
    return this.getToken(SqlParser.BINLOG, 0);
};

ShowLogEventsContext.prototype.RELAYLOG = function() {
    return this.getToken(SqlParser.RELAYLOG, 0);
};

ShowLogEventsContext.prototype.IN = function() {
    return this.getToken(SqlParser.IN, 0);
};

ShowLogEventsContext.prototype.FROM = function() {
    return this.getToken(SqlParser.FROM, 0);
};

ShowLogEventsContext.prototype.LIMIT = function() {
    return this.getToken(SqlParser.LIMIT, 0);
};

ShowLogEventsContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

ShowLogEventsContext.prototype.decimalLiteral = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DecimalLiteralContext);
    } else {
        return this.getTypedRuleContext(DecimalLiteralContext,i);
    }
};

ShowLogEventsContext.prototype.COMMA = function() {
    return this.getToken(SqlParser.COMMA, 0);
};
ShowLogEventsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowLogEvents(this);
	}
};

ShowLogEventsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowLogEvents(this);
	}
};

ShowLogEventsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowLogEvents(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowMasterLogsContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    this.logFormat = null; // Token;
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowMasterLogsContext.prototype = Object.create(ShowStatementContext.prototype);
ShowMasterLogsContext.prototype.constructor = ShowMasterLogsContext;

SqlParser.ShowMasterLogsContext = ShowMasterLogsContext;

ShowMasterLogsContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowMasterLogsContext.prototype.LOGS = function() {
    return this.getToken(SqlParser.LOGS, 0);
};

ShowMasterLogsContext.prototype.BINARY = function() {
    return this.getToken(SqlParser.BINARY, 0);
};

ShowMasterLogsContext.prototype.MASTER = function() {
    return this.getToken(SqlParser.MASTER, 0);
};
ShowMasterLogsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowMasterLogs(this);
	}
};

ShowMasterLogsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowMasterLogs(this);
	}
};

ShowMasterLogsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowMasterLogs(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowGrantsContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowGrantsContext.prototype = Object.create(ShowStatementContext.prototype);
ShowGrantsContext.prototype.constructor = ShowGrantsContext;

SqlParser.ShowGrantsContext = ShowGrantsContext;

ShowGrantsContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowGrantsContext.prototype.GRANTS = function() {
    return this.getToken(SqlParser.GRANTS, 0);
};

ShowGrantsContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

ShowGrantsContext.prototype.userName = function() {
    return this.getTypedRuleContext(UserNameContext,0);
};
ShowGrantsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowGrants(this);
	}
};

ShowGrantsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowGrants(this);
	}
};

ShowGrantsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowGrants(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowSlaveStatusContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowSlaveStatusContext.prototype = Object.create(ShowStatementContext.prototype);
ShowSlaveStatusContext.prototype.constructor = ShowSlaveStatusContext;

SqlParser.ShowSlaveStatusContext = ShowSlaveStatusContext;

ShowSlaveStatusContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowSlaveStatusContext.prototype.SLAVE = function() {
    return this.getToken(SqlParser.SLAVE, 0);
};

ShowSlaveStatusContext.prototype.STATUS = function() {
    return this.getToken(SqlParser.STATUS, 0);
};

ShowSlaveStatusContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

ShowSlaveStatusContext.prototype.CHANNEL = function() {
    return this.getToken(SqlParser.CHANNEL, 0);
};

ShowSlaveStatusContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};
ShowSlaveStatusContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowSlaveStatus(this);
	}
};

ShowSlaveStatusContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowSlaveStatus(this);
	}
};

ShowSlaveStatusContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowSlaveStatus(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowRoutineContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    this.routine = null; // Token;
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowRoutineContext.prototype = Object.create(ShowStatementContext.prototype);
ShowRoutineContext.prototype.constructor = ShowRoutineContext;

SqlParser.ShowRoutineContext = ShowRoutineContext;

ShowRoutineContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowRoutineContext.prototype.CODE = function() {
    return this.getToken(SqlParser.CODE, 0);
};

ShowRoutineContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

ShowRoutineContext.prototype.FUNCTION = function() {
    return this.getToken(SqlParser.FUNCTION, 0);
};

ShowRoutineContext.prototype.PROCEDURE = function() {
    return this.getToken(SqlParser.PROCEDURE, 0);
};
ShowRoutineContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowRoutine(this);
	}
};

ShowRoutineContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowRoutine(this);
	}
};

ShowRoutineContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowRoutine(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowProfileContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    this.queryCount = null; // DecimalLiteralContext;
    this.offset = null; // DecimalLiteralContext;
    this.rowCount = null; // DecimalLiteralContext;
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowProfileContext.prototype = Object.create(ShowStatementContext.prototype);
ShowProfileContext.prototype.constructor = ShowProfileContext;

SqlParser.ShowProfileContext = ShowProfileContext;

ShowProfileContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowProfileContext.prototype.PROFILE = function() {
    return this.getToken(SqlParser.PROFILE, 0);
};

ShowProfileContext.prototype.showProfileType = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ShowProfileTypeContext);
    } else {
        return this.getTypedRuleContext(ShowProfileTypeContext,i);
    }
};

ShowProfileContext.prototype.LIMIT = function() {
    return this.getToken(SqlParser.LIMIT, 0);
};

ShowProfileContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


ShowProfileContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

ShowProfileContext.prototype.QUERY = function() {
    return this.getToken(SqlParser.QUERY, 0);
};

ShowProfileContext.prototype.decimalLiteral = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DecimalLiteralContext);
    } else {
        return this.getTypedRuleContext(DecimalLiteralContext,i);
    }
};
ShowProfileContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowProfile(this);
	}
};

ShowProfileContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowProfile(this);
	}
};

ShowProfileContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowProfile(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ShowColumnsContext(parser, ctx) {
	ShowStatementContext.call(this, parser);
    this.columnsFormat = null; // Token;
    this.tableFormat = null; // Token;
    this.schemaFormat = null; // Token;
    ShowStatementContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ShowColumnsContext.prototype = Object.create(ShowStatementContext.prototype);
ShowColumnsContext.prototype.constructor = ShowColumnsContext;

SqlParser.ShowColumnsContext = ShowColumnsContext;

ShowColumnsContext.prototype.SHOW = function() {
    return this.getToken(SqlParser.SHOW, 0);
};

ShowColumnsContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

ShowColumnsContext.prototype.COLUMNS = function() {
    return this.getToken(SqlParser.COLUMNS, 0);
};

ShowColumnsContext.prototype.FIELDS = function() {
    return this.getToken(SqlParser.FIELDS, 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.FULL = function() {
    return this.getToken(SqlParser.FULL, 0);
};

ShowColumnsContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

ShowColumnsContext.prototype.showFilter = function() {
    return this.getTypedRuleContext(ShowFilterContext,0);
};
ShowColumnsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowColumns(this);
	}
};

ShowColumnsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowColumns(this);
	}
};

ShowColumnsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowColumns(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.ShowStatementContext = ShowStatementContext;

SqlParser.prototype.showStatement = function() {

    var localctx = new ShowStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 442, SqlParser.RULE_showStatement);
    var _la = 0; // Token type
    try {
        this.state = 5074;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,727,this._ctx);
        switch(la_) {
        case 1:
            localctx = new ShowMasterLogsContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 4923;
            this.match(SqlParser.SHOW);
            this.state = 4924;
            localctx.logFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.BINARY || _la===SqlParser.MASTER)) {
                localctx.logFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 4925;
            this.match(SqlParser.LOGS);
            break;

        case 2:
            localctx = new ShowLogEventsContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 4926;
            this.match(SqlParser.SHOW);
            this.state = 4927;
            localctx.logFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.BINLOG || _la===SqlParser.RELAYLOG)) {
                localctx.logFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 4928;
            this.match(SqlParser.EVENTS);
            this.state = 4931;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.IN) {
                this.state = 4929;
                this.match(SqlParser.IN);
                this.state = 4930;
                localctx.filename = this.match(SqlParser.STRING_LITERAL);
            }

            this.state = 4935;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FROM) {
                this.state = 4933;
                this.match(SqlParser.FROM);
                this.state = 4934;
                localctx.fromPosition = this.decimalLiteral();
            }

            this.state = 4944;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LIMIT) {
                this.state = 4937;
                this.match(SqlParser.LIMIT);
                this.state = 4941;
                this._errHandler.sync(this);
                var la_ = this._interp.adaptivePredict(this._input,708,this._ctx);
                if(la_===1) {
                    this.state = 4938;
                    localctx.offset = this.decimalLiteral();
                    this.state = 4939;
                    this.match(SqlParser.COMMA);

                }
                this.state = 4943;
                localctx.rowCount = this.decimalLiteral();
            }

            break;

        case 3:
            localctx = new ShowObjectFilterContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 4946;
            this.match(SqlParser.SHOW);
            this.state = 4947;
            this.showCommonEntity();
            this.state = 4949;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LIKE || _la===SqlParser.WHERE) {
                this.state = 4948;
                this.showFilter();
            }

            break;

        case 4:
            localctx = new ShowColumnsContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 4951;
            this.match(SqlParser.SHOW);
            this.state = 4953;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FULL) {
                this.state = 4952;
                this.match(SqlParser.FULL);
            }

            this.state = 4955;
            localctx.columnsFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.COLUMNS || _la===SqlParser.FIELDS)) {
                localctx.columnsFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 4956;
            localctx.tableFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.FROM || _la===SqlParser.IN)) {
                localctx.tableFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 4957;
            this.tableName();
            this.state = 4960;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FROM || _la===SqlParser.IN) {
                this.state = 4958;
                localctx.schemaFormat = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.FROM || _la===SqlParser.IN)) {
                    localctx.schemaFormat = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
                this.state = 4959;
                this.uid();
            }

            this.state = 4963;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LIKE || _la===SqlParser.WHERE) {
                this.state = 4962;
                this.showFilter();
            }

            break;

        case 5:
            localctx = new ShowCreateDbContext(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 4965;
            this.match(SqlParser.SHOW);
            this.state = 4966;
            this.match(SqlParser.CREATE);
            this.state = 4967;
            localctx.schemaFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.DATABASE || _la===SqlParser.SCHEMA)) {
                localctx.schemaFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 4969;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.IF) {
                this.state = 4968;
                this.ifNotExists();
            }

            this.state = 4971;
            this.uid();
            break;

        case 6:
            localctx = new ShowCreateFullIdObjectContext(this, localctx);
            this.enterOuterAlt(localctx, 6);
            this.state = 4972;
            this.match(SqlParser.SHOW);
            this.state = 4973;
            this.match(SqlParser.CREATE);
            this.state = 4974;
            localctx.namedEntity = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.PROCEDURE || _la===SqlParser.TABLE || _la===SqlParser.TRIGGER || _la===SqlParser.EVENT || _la===SqlParser.FUNCTION || _la===SqlParser.VIEW)) {
                localctx.namedEntity = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 4975;
            this.fullId();
            break;

        case 7:
            localctx = new ShowCreateUserContext(this, localctx);
            this.enterOuterAlt(localctx, 7);
            this.state = 4976;
            this.match(SqlParser.SHOW);
            this.state = 4977;
            this.match(SqlParser.CREATE);
            this.state = 4978;
            this.match(SqlParser.USER);
            this.state = 4979;
            this.userName();
            break;

        case 8:
            localctx = new ShowEngineContext(this, localctx);
            this.enterOuterAlt(localctx, 8);
            this.state = 4980;
            this.match(SqlParser.SHOW);
            this.state = 4981;
            this.match(SqlParser.ENGINE);
            this.state = 4982;
            this.engineName();
            this.state = 4983;
            localctx.engineOption = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.MUTEX || _la===SqlParser.STATUS)) {
                localctx.engineOption = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 9:
            localctx = new ShowGlobalInfoContext(this, localctx);
            this.enterOuterAlt(localctx, 9);
            this.state = 4985;
            this.match(SqlParser.SHOW);
            this.state = 4986;
            this.showGlobalInfoClause();
            break;

        case 10:
            localctx = new ShowErrorsContext(this, localctx);
            this.enterOuterAlt(localctx, 10);
            this.state = 4987;
            this.match(SqlParser.SHOW);
            this.state = 4988;
            localctx.errorFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.ERRORS || _la===SqlParser.WARNINGS)) {
                localctx.errorFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }

            this.state = 4989;
            this.match(SqlParser.LIMIT);
            this.state = 4993;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,715,this._ctx);
            if(la_===1) {
                this.state = 4990;
                localctx.offset = this.decimalLiteral();
                this.state = 4991;
                this.match(SqlParser.COMMA);

            }
            this.state = 4995;
            localctx.rowCount = this.decimalLiteral();
            break;

        case 11:
            localctx = new ShowCountErrorsContext(this, localctx);
            this.enterOuterAlt(localctx, 11);
            this.state = 4996;
            this.match(SqlParser.SHOW);
            this.state = 4997;
            this.match(SqlParser.COUNT);
            this.state = 4998;
            this.match(SqlParser.LR_BRACKET);
            this.state = 4999;
            this.match(SqlParser.STAR);
            this.state = 5000;
            this.match(SqlParser.RR_BRACKET);
            this.state = 5001;
            localctx.errorFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.ERRORS || _la===SqlParser.WARNINGS)) {
                localctx.errorFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 12:
            localctx = new ShowSchemaFilterContext(this, localctx);
            this.enterOuterAlt(localctx, 12);
            this.state = 5002;
            this.match(SqlParser.SHOW);
            this.state = 5003;
            this.showSchemaEntity();
            this.state = 5006;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FROM || _la===SqlParser.IN) {
                this.state = 5004;
                localctx.schemaFormat = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.FROM || _la===SqlParser.IN)) {
                    localctx.schemaFormat = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
                this.state = 5005;
                this.uid();
            }

            this.state = 5009;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LIKE || _la===SqlParser.WHERE) {
                this.state = 5008;
                this.showFilter();
            }

            break;

        case 13:
            localctx = new ShowRoutineContext(this, localctx);
            this.enterOuterAlt(localctx, 13);
            this.state = 5011;
            this.match(SqlParser.SHOW);
            this.state = 5012;
            localctx.routine = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.PROCEDURE || _la===SqlParser.FUNCTION)) {
                localctx.routine = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5013;
            this.match(SqlParser.CODE);
            this.state = 5014;
            this.fullId();
            break;

        case 14:
            localctx = new ShowGrantsContext(this, localctx);
            this.enterOuterAlt(localctx, 14);
            this.state = 5015;
            this.match(SqlParser.SHOW);
            this.state = 5016;
            this.match(SqlParser.GRANTS);
            this.state = 5019;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FOR) {
                this.state = 5017;
                this.match(SqlParser.FOR);
                this.state = 5018;
                this.userName();
            }

            break;

        case 15:
            localctx = new ShowIndexesContext(this, localctx);
            this.enterOuterAlt(localctx, 15);
            this.state = 5021;
            this.match(SqlParser.SHOW);
            this.state = 5022;
            localctx.indexFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.INDEX || _la===SqlParser.KEYS || _la===SqlParser.INDEXES)) {
                localctx.indexFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5023;
            localctx.tableFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.FROM || _la===SqlParser.IN)) {
                localctx.tableFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5024;
            this.tableName();
            this.state = 5027;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FROM || _la===SqlParser.IN) {
                this.state = 5025;
                localctx.schemaFormat = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.FROM || _la===SqlParser.IN)) {
                    localctx.schemaFormat = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
                this.state = 5026;
                this.uid();
            }

            this.state = 5031;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.WHERE) {
                this.state = 5029;
                this.match(SqlParser.WHERE);
                this.state = 5030;
                this.expression(0);
            }

            break;

        case 16:
            localctx = new ShowOpenTablesContext(this, localctx);
            this.enterOuterAlt(localctx, 16);
            this.state = 5033;
            this.match(SqlParser.SHOW);
            this.state = 5034;
            this.match(SqlParser.OPEN);
            this.state = 5035;
            this.match(SqlParser.TABLES);
            this.state = 5038;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FROM || _la===SqlParser.IN) {
                this.state = 5036;
                localctx.schemaFormat = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.FROM || _la===SqlParser.IN)) {
                    localctx.schemaFormat = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
                this.state = 5037;
                this.uid();
            }

            this.state = 5041;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LIKE || _la===SqlParser.WHERE) {
                this.state = 5040;
                this.showFilter();
            }

            break;

        case 17:
            localctx = new ShowProfileContext(this, localctx);
            this.enterOuterAlt(localctx, 17);
            this.state = 5043;
            this.match(SqlParser.SHOW);
            this.state = 5044;
            this.match(SqlParser.PROFILE);
            this.state = 5045;
            this.showProfileType();
            this.state = 5050;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 5046;
                this.match(SqlParser.COMMA);
                this.state = 5047;
                this.showProfileType();
                this.state = 5052;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 5056;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FOR) {
                this.state = 5053;
                this.match(SqlParser.FOR);
                this.state = 5054;
                this.match(SqlParser.QUERY);
                this.state = 5055;
                localctx.queryCount = this.decimalLiteral();
            }

            this.state = 5058;
            this.match(SqlParser.LIMIT);
            this.state = 5062;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,725,this._ctx);
            if(la_===1) {
                this.state = 5059;
                localctx.offset = this.decimalLiteral();
                this.state = 5060;
                this.match(SqlParser.COMMA);

            }
            this.state = 5064;
            localctx.rowCount = this.decimalLiteral();
            break;

        case 18:
            localctx = new ShowSlaveStatusContext(this, localctx);
            this.enterOuterAlt(localctx, 18);
            this.state = 5066;
            this.match(SqlParser.SHOW);
            this.state = 5067;
            this.match(SqlParser.SLAVE);
            this.state = 5068;
            this.match(SqlParser.STATUS);
            this.state = 5072;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FOR) {
                this.state = 5069;
                this.match(SqlParser.FOR);
                this.state = 5070;
                this.match(SqlParser.CHANNEL);
                this.state = 5071;
                this.match(SqlParser.STRING_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 VariableClauseContext(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_variableClause;
    return this;
}

VariableClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
VariableClauseContext.prototype.constructor = VariableClauseContext;

VariableClauseContext.prototype.LOCAL_ID = function() {
    return this.getToken(SqlParser.LOCAL_ID, 0);
};

VariableClauseContext.prototype.GLOBAL_ID = function() {
    return this.getToken(SqlParser.GLOBAL_ID, 0);
};

VariableClauseContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

VariableClauseContext.prototype.GLOBAL = function() {
    return this.getToken(SqlParser.GLOBAL, 0);
};

VariableClauseContext.prototype.SESSION = function() {
    return this.getToken(SqlParser.SESSION, 0);
};

VariableClauseContext.prototype.LOCAL = function() {
    return this.getToken(SqlParser.LOCAL, 0);
};

VariableClauseContext.prototype.AT_SIGN = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.AT_SIGN);
    } else {
        return this.getToken(SqlParser.AT_SIGN, i);
    }
};


VariableClauseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterVariableClause(this);
	}
};

VariableClauseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitVariableClause(this);
	}
};

VariableClauseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitVariableClause(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.VariableClauseContext = VariableClauseContext;

SqlParser.prototype.variableClause = function() {

    var localctx = new VariableClauseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 444, SqlParser.RULE_variableClause);
    var _la = 0; // Token type
    try {
        this.state = 5086;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.LOCAL_ID:
            this.enterOuterAlt(localctx, 1);
            this.state = 5076;
            this.match(SqlParser.LOCAL_ID);
            break;
        case SqlParser.GLOBAL_ID:
            this.enterOuterAlt(localctx, 2);
            this.state = 5077;
            this.match(SqlParser.GLOBAL_ID);
            break;
        case SqlParser.CURRENT:
        case SqlParser.DATABASE:
        case SqlParser.DIAGNOSTICS:
        case SqlParser.LEFT:
        case SqlParser.NUMBER:
        case SqlParser.RIGHT:
        case SqlParser.STACKED:
        case SqlParser.DATE:
        case SqlParser.TIME:
        case SqlParser.TIMESTAMP:
        case SqlParser.DATETIME:
        case SqlParser.YEAR:
        case SqlParser.TEXT:
        case SqlParser.ENUM:
        case SqlParser.SERIAL:
        case SqlParser.JSON_VALID:
        case SqlParser.JSON_SCHEMA_VALID:
        case SqlParser.COUNT:
        case SqlParser.POSITION:
        case SqlParser.ACCOUNT:
        case SqlParser.ACTION:
        case SqlParser.AFTER:
        case SqlParser.AGGREGATE:
        case SqlParser.ALGORITHM:
        case SqlParser.ANY:
        case SqlParser.AT:
        case SqlParser.AUTHORS:
        case SqlParser.AUTOCOMMIT:
        case SqlParser.AUTOEXTEND_SIZE:
        case SqlParser.AUTO_INCREMENT:
        case SqlParser.AVG_ROW_LENGTH:
        case SqlParser.BEGIN:
        case SqlParser.BINLOG:
        case SqlParser.BIT:
        case SqlParser.BLOCK:
        case SqlParser.BOOL:
        case SqlParser.BOOLEAN:
        case SqlParser.BTREE:
        case SqlParser.CACHE:
        case SqlParser.CASCADED:
        case SqlParser.CHAIN:
        case SqlParser.CHANGED:
        case SqlParser.CHANNEL:
        case SqlParser.CHECKSUM:
        case SqlParser.PAGE_CHECKSUM:
        case SqlParser.CIPHER:
        case SqlParser.CLASS_ORIGIN:
        case SqlParser.CLIENT:
        case SqlParser.CLOSE:
        case SqlParser.COALESCE:
        case SqlParser.CODE:
        case SqlParser.COLUMNS:
        case SqlParser.COLUMN_FORMAT:
        case SqlParser.COLUMN_NAME:
        case SqlParser.COMMENT:
        case SqlParser.COMMIT:
        case SqlParser.COMPACT:
        case SqlParser.COMPLETION:
        case SqlParser.COMPRESSED:
        case SqlParser.COMPRESSION:
        case SqlParser.CONCURRENT:
        case SqlParser.CONNECTION:
        case SqlParser.CONSISTENT:
        case SqlParser.CONSTRAINT_CATALOG:
        case SqlParser.CONSTRAINT_SCHEMA:
        case SqlParser.CONSTRAINT_NAME:
        case SqlParser.CONTAINS:
        case SqlParser.CONTEXT:
        case SqlParser.CONTRIBUTORS:
        case SqlParser.COPY:
        case SqlParser.CPU:
        case SqlParser.CURSOR_NAME:
        case SqlParser.DATA:
        case SqlParser.DATAFILE:
        case SqlParser.DEALLOCATE:
        case SqlParser.DEFAULT_AUTH:
        case SqlParser.DEFINER:
        case SqlParser.DELAY_KEY_WRITE:
        case SqlParser.DES_KEY_FILE:
        case SqlParser.DIRECTORY:
        case SqlParser.DISABLE:
        case SqlParser.DISCARD:
        case SqlParser.DISK:
        case SqlParser.DO:
        case SqlParser.DUMPFILE:
        case SqlParser.DUPLICATE:
        case SqlParser.DYNAMIC:
        case SqlParser.ENABLE:
        case SqlParser.ENCRYPTION:
        case SqlParser.END:
        case SqlParser.ENDS:
        case SqlParser.ENGINE:
        case SqlParser.ENGINES:
        case SqlParser.ERROR:
        case SqlParser.ERRORS:
        case SqlParser.ESCAPE:
        case SqlParser.EVEN:
        case SqlParser.EVENT:
        case SqlParser.EVENTS:
        case SqlParser.EVERY:
        case SqlParser.EXCHANGE:
        case SqlParser.EXCLUSIVE:
        case SqlParser.EXPIRE:
        case SqlParser.EXPORT:
        case SqlParser.EXTENDED:
        case SqlParser.EXTENT_SIZE:
        case SqlParser.FAST:
        case SqlParser.FAULTS:
        case SqlParser.FIELDS:
        case SqlParser.FILE_BLOCK_SIZE:
        case SqlParser.FILTER:
        case SqlParser.FIRST:
        case SqlParser.FIXED:
        case SqlParser.FLUSH:
        case SqlParser.FOLLOWS:
        case SqlParser.FOUND:
        case SqlParser.FULL:
        case SqlParser.FUNCTION:
        case SqlParser.GENERAL:
        case SqlParser.GLOBAL:
        case SqlParser.GRANTS:
        case SqlParser.GROUP_REPLICATION:
        case SqlParser.HANDLER:
        case SqlParser.HASH:
        case SqlParser.HELP:
        case SqlParser.HOST:
        case SqlParser.HOSTS:
        case SqlParser.IDENTIFIED:
        case SqlParser.IGNORE_SERVER_IDS:
        case SqlParser.IMPORT:
        case SqlParser.INDEXES:
        case SqlParser.INITIAL_SIZE:
        case SqlParser.INPLACE:
        case SqlParser.INSERT_METHOD:
        case SqlParser.INSTALL:
        case SqlParser.INSTANCE:
        case SqlParser.INVISIBLE:
        case SqlParser.INVOKER:
        case SqlParser.IO:
        case SqlParser.IO_THREAD:
        case SqlParser.IPC:
        case SqlParser.ISOLATION:
        case SqlParser.ISSUER:
        case SqlParser.JSON:
        case SqlParser.KEY_BLOCK_SIZE:
        case SqlParser.LANGUAGE:
        case SqlParser.LAST:
        case SqlParser.LEAVES:
        case SqlParser.LESS:
        case SqlParser.LEVEL:
        case SqlParser.LIST:
        case SqlParser.LOCAL:
        case SqlParser.LOGFILE:
        case SqlParser.LOGS:
        case SqlParser.MASTER:
        case SqlParser.MASTER_AUTO_POSITION:
        case SqlParser.MASTER_CONNECT_RETRY:
        case SqlParser.MASTER_DELAY:
        case SqlParser.MASTER_HEARTBEAT_PERIOD:
        case SqlParser.MASTER_HOST:
        case SqlParser.MASTER_LOG_FILE:
        case SqlParser.MASTER_LOG_POS:
        case SqlParser.MASTER_PASSWORD:
        case SqlParser.MASTER_PORT:
        case SqlParser.MASTER_RETRY_COUNT:
        case SqlParser.MASTER_SSL:
        case SqlParser.MASTER_SSL_CA:
        case SqlParser.MASTER_SSL_CAPATH:
        case SqlParser.MASTER_SSL_CERT:
        case SqlParser.MASTER_SSL_CIPHER:
        case SqlParser.MASTER_SSL_CRL:
        case SqlParser.MASTER_SSL_CRLPATH:
        case SqlParser.MASTER_SSL_KEY:
        case SqlParser.MASTER_TLS_VERSION:
        case SqlParser.MASTER_USER:
        case SqlParser.MAX_CONNECTIONS_PER_HOUR:
        case SqlParser.MAX_QUERIES_PER_HOUR:
        case SqlParser.MAX_ROWS:
        case SqlParser.MAX_SIZE:
        case SqlParser.MAX_UPDATES_PER_HOUR:
        case SqlParser.MAX_USER_CONNECTIONS:
        case SqlParser.MEDIUM:
        case SqlParser.MERGE:
        case SqlParser.MESSAGE_TEXT:
        case SqlParser.MID:
        case SqlParser.MIGRATE:
        case SqlParser.MIN_ROWS:
        case SqlParser.MODE:
        case SqlParser.MODIFY:
        case SqlParser.MUTEX:
        case SqlParser.MYSQL:
        case SqlParser.MYSQL_ERRNO:
        case SqlParser.NAME:
        case SqlParser.NAMES:
        case SqlParser.NCHAR:
        case SqlParser.NEVER:
        case SqlParser.NEXT:
        case SqlParser.NO:
        case SqlParser.NODEGROUP:
        case SqlParser.NONE:
        case SqlParser.OFFLINE:
        case SqlParser.OFFSET:
        case SqlParser.OJ:
        case SqlParser.OLD_PASSWORD:
        case SqlParser.ONE:
        case SqlParser.ONLINE:
        case SqlParser.ONLY:
        case SqlParser.OPEN:
        case SqlParser.OPTIMIZER_COSTS:
        case SqlParser.OPTIONS:
        case SqlParser.OWNER:
        case SqlParser.PACK_KEYS:
        case SqlParser.PAGE:
        case SqlParser.PARSER:
        case SqlParser.PARTIAL:
        case SqlParser.PARTITIONING:
        case SqlParser.PARTITIONS:
        case SqlParser.PASSWORD:
        case SqlParser.PHASE:
        case SqlParser.PLUGIN:
        case SqlParser.PLUGIN_DIR:
        case SqlParser.PLUGINS:
        case SqlParser.PORT:
        case SqlParser.PRECEDES:
        case SqlParser.PREPARE:
        case SqlParser.PRESERVE:
        case SqlParser.PREV:
        case SqlParser.PROCESSLIST:
        case SqlParser.PROFILE:
        case SqlParser.PROFILES:
        case SqlParser.PROXY:
        case SqlParser.QUERY:
        case SqlParser.QUICK:
        case SqlParser.REBUILD:
        case SqlParser.RECOVER:
        case SqlParser.REDO_BUFFER_SIZE:
        case SqlParser.REDUNDANT:
        case SqlParser.RELAY:
        case SqlParser.RELAY_LOG_FILE:
        case SqlParser.RELAY_LOG_POS:
        case SqlParser.RELAYLOG:
        case SqlParser.REMOVE:
        case SqlParser.REORGANIZE:
        case SqlParser.REPAIR:
        case SqlParser.REPLICATE_DO_DB:
        case SqlParser.REPLICATE_DO_TABLE:
        case SqlParser.REPLICATE_IGNORE_DB:
        case SqlParser.REPLICATE_IGNORE_TABLE:
        case SqlParser.REPLICATE_REWRITE_DB:
        case SqlParser.REPLICATE_WILD_DO_TABLE:
        case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
        case SqlParser.REPLICATION:
        case SqlParser.RESET:
        case SqlParser.RESUME:
        case SqlParser.RETURNED_SQLSTATE:
        case SqlParser.RETURNS:
        case SqlParser.ROLE:
        case SqlParser.ROLLBACK:
        case SqlParser.ROLLUP:
        case SqlParser.ROTATE:
        case SqlParser.ROW:
        case SqlParser.ROWS:
        case SqlParser.ROW_FORMAT:
        case SqlParser.SAVEPOINT:
        case SqlParser.SCHEDULE:
        case SqlParser.SECURITY:
        case SqlParser.SERVER:
        case SqlParser.SESSION:
        case SqlParser.SHARE:
        case SqlParser.SHARED:
        case SqlParser.SIGNED:
        case SqlParser.SIMPLE:
        case SqlParser.SLAVE:
        case SqlParser.SLOW:
        case SqlParser.SNAPSHOT:
        case SqlParser.SOCKET:
        case SqlParser.SOME:
        case SqlParser.SONAME:
        case SqlParser.SOUNDS:
        case SqlParser.SOURCE:
        case SqlParser.SQL_AFTER_GTIDS:
        case SqlParser.SQL_AFTER_MTS_GAPS:
        case SqlParser.SQL_BEFORE_GTIDS:
        case SqlParser.SQL_BUFFER_RESULT:
        case SqlParser.SQL_CACHE:
        case SqlParser.SQL_NO_CACHE:
        case SqlParser.SQL_THREAD:
        case SqlParser.START:
        case SqlParser.STARTS:
        case SqlParser.STATS_AUTO_RECALC:
        case SqlParser.STATS_PERSISTENT:
        case SqlParser.STATS_SAMPLE_PAGES:
        case SqlParser.STATUS:
        case SqlParser.STOP:
        case SqlParser.STORAGE:
        case SqlParser.STRING:
        case SqlParser.SUBCLASS_ORIGIN:
        case SqlParser.SUBJECT:
        case SqlParser.SUBPARTITION:
        case SqlParser.SUBPARTITIONS:
        case SqlParser.SUSPEND:
        case SqlParser.SWAPS:
        case SqlParser.SWITCHES:
        case SqlParser.TABLE_NAME:
        case SqlParser.TABLESPACE:
        case SqlParser.TEMPORARY:
        case SqlParser.TEMPTABLE:
        case SqlParser.THAN:
        case SqlParser.TRADITIONAL:
        case SqlParser.TRANSACTION:
        case SqlParser.TRANSACTIONAL:
        case SqlParser.TRIGGERS:
        case SqlParser.TRUNCATE:
        case SqlParser.UNDEFINED:
        case SqlParser.UNDOFILE:
        case SqlParser.UNDO_BUFFER_SIZE:
        case SqlParser.UNINSTALL:
        case SqlParser.UNKNOWN:
        case SqlParser.UNTIL:
        case SqlParser.UPGRADE:
        case SqlParser.USER:
        case SqlParser.USE_FRM:
        case SqlParser.USER_RESOURCES:
        case SqlParser.VALIDATION:
        case SqlParser.VALUE:
        case SqlParser.VARIABLES:
        case SqlParser.VIEW:
        case SqlParser.VISIBLE:
        case SqlParser.WAIT:
        case SqlParser.WARNINGS:
        case SqlParser.WITHOUT:
        case SqlParser.WORK:
        case SqlParser.WRAPPER:
        case SqlParser.X509:
        case SqlParser.XA:
        case SqlParser.XML:
        case SqlParser.INTERNAL:
        case SqlParser.QUARTER:
        case SqlParser.MONTH:
        case SqlParser.DAY:
        case SqlParser.HOUR:
        case SqlParser.MINUTE:
        case SqlParser.WEEK:
        case SqlParser.SECOND:
        case SqlParser.MICROSECOND:
        case SqlParser.TABLES:
        case SqlParser.ROUTINE:
        case SqlParser.EXECUTE:
        case SqlParser.FILE:
        case SqlParser.PROCESS:
        case SqlParser.RELOAD:
        case SqlParser.SHUTDOWN:
        case SqlParser.SUPER:
        case SqlParser.PRIVILEGES:
        case SqlParser.AUDIT_ADMIN:
        case SqlParser.BACKUP_ADMIN:
        case SqlParser.BINLOG_ADMIN:
        case SqlParser.BINLOG_ENCRYPTION_ADMIN:
        case SqlParser.CLONE_ADMIN:
        case SqlParser.CONNECTION_ADMIN:
        case SqlParser.ENCRYPTION_KEY_ADMIN:
        case SqlParser.FIREWALL_ADMIN:
        case SqlParser.FIREWALL_USER:
        case SqlParser.GROUP_REPLICATION_ADMIN:
        case SqlParser.INNODB_REDO_LOG_ARCHIVE:
        case SqlParser.NDB_STORED_USER:
        case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
        case SqlParser.REPLICATION_APPLIER:
        case SqlParser.REPLICATION_SLAVE_ADMIN:
        case SqlParser.RESOURCE_GROUP_ADMIN:
        case SqlParser.RESOURCE_GROUP_USER:
        case SqlParser.ROLE_ADMIN:
        case SqlParser.SESSION_VARIABLES_ADMIN:
        case SqlParser.SET_USER_ID:
        case SqlParser.SHOW_ROUTINE:
        case SqlParser.SYSTEM_VARIABLES_ADMIN:
        case SqlParser.TABLE_ENCRYPTION_ADMIN:
        case SqlParser.VERSION_TOKEN_ADMIN:
        case SqlParser.XA_RECOVER_ADMIN:
        case SqlParser.ARMSCII8:
        case SqlParser.ASCII:
        case SqlParser.BIG5:
        case SqlParser.CP1250:
        case SqlParser.CP1251:
        case SqlParser.CP1256:
        case SqlParser.CP1257:
        case SqlParser.CP850:
        case SqlParser.CP852:
        case SqlParser.CP866:
        case SqlParser.CP932:
        case SqlParser.DEC8:
        case SqlParser.EUCJPMS:
        case SqlParser.EUCKR:
        case SqlParser.GB2312:
        case SqlParser.GBK:
        case SqlParser.GEOSTD8:
        case SqlParser.GREEK:
        case SqlParser.HEBREW:
        case SqlParser.HP8:
        case SqlParser.KEYBCS2:
        case SqlParser.KOI8R:
        case SqlParser.KOI8U:
        case SqlParser.LATIN1:
        case SqlParser.LATIN2:
        case SqlParser.LATIN5:
        case SqlParser.LATIN7:
        case SqlParser.MACCE:
        case SqlParser.MACROMAN:
        case SqlParser.SJIS:
        case SqlParser.SWE7:
        case SqlParser.TIS620:
        case SqlParser.UCS2:
        case SqlParser.UJIS:
        case SqlParser.UTF16:
        case SqlParser.UTF16LE:
        case SqlParser.UTF32:
        case SqlParser.UTF8:
        case SqlParser.UTF8MB3:
        case SqlParser.UTF8MB4:
        case SqlParser.ARCHIVE:
        case SqlParser.BLACKHOLE:
        case SqlParser.CSV:
        case SqlParser.FEDERATED:
        case SqlParser.INNODB:
        case SqlParser.MEMORY:
        case SqlParser.MRG_MYISAM:
        case SqlParser.MYISAM:
        case SqlParser.NDB:
        case SqlParser.NDBCLUSTER:
        case SqlParser.PERFORMANCE_SCHEMA:
        case SqlParser.TOKUDB:
        case SqlParser.REPEATABLE:
        case SqlParser.COMMITTED:
        case SqlParser.UNCOMMITTED:
        case SqlParser.SERIALIZABLE:
        case SqlParser.GEOMETRYCOLLECTION:
        case SqlParser.LINESTRING:
        case SqlParser.MULTILINESTRING:
        case SqlParser.MULTIPOINT:
        case SqlParser.MULTIPOLYGON:
        case SqlParser.POINT:
        case SqlParser.POLYGON:
        case SqlParser.ABS:
        case SqlParser.ACOS:
        case SqlParser.ADDDATE:
        case SqlParser.ADDTIME:
        case SqlParser.AES_DECRYPT:
        case SqlParser.AES_ENCRYPT:
        case SqlParser.AREA:
        case SqlParser.ASBINARY:
        case SqlParser.ASIN:
        case SqlParser.ASTEXT:
        case SqlParser.ASWKB:
        case SqlParser.ASWKT:
        case SqlParser.ASYMMETRIC_DECRYPT:
        case SqlParser.ASYMMETRIC_DERIVE:
        case SqlParser.ASYMMETRIC_ENCRYPT:
        case SqlParser.ASYMMETRIC_SIGN:
        case SqlParser.ASYMMETRIC_VERIFY:
        case SqlParser.ATAN:
        case SqlParser.ATAN2:
        case SqlParser.BENCHMARK:
        case SqlParser.BIN:
        case SqlParser.BIT_COUNT:
        case SqlParser.BIT_LENGTH:
        case SqlParser.BUFFER:
        case SqlParser.CATALOG_NAME:
        case SqlParser.CEIL:
        case SqlParser.CEILING:
        case SqlParser.CENTROID:
        case SqlParser.CHARACTER_LENGTH:
        case SqlParser.CHARSET:
        case SqlParser.CHAR_LENGTH:
        case SqlParser.COERCIBILITY:
        case SqlParser.COLLATION:
        case SqlParser.COMPRESS:
        case SqlParser.CONCAT:
        case SqlParser.CONCAT_WS:
        case SqlParser.CONNECTION_ID:
        case SqlParser.CONV:
        case SqlParser.CONVERT_TZ:
        case SqlParser.COS:
        case SqlParser.COT:
        case SqlParser.CRC32:
        case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
        case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
        case SqlParser.CREATE_DH_PARAMETERS:
        case SqlParser.CREATE_DIGEST:
        case SqlParser.CROSSES:
        case SqlParser.DATEDIFF:
        case SqlParser.DATE_FORMAT:
        case SqlParser.DAYNAME:
        case SqlParser.DAYOFMONTH:
        case SqlParser.DAYOFWEEK:
        case SqlParser.DAYOFYEAR:
        case SqlParser.DECODE:
        case SqlParser.DEGREES:
        case SqlParser.DES_DECRYPT:
        case SqlParser.DES_ENCRYPT:
        case SqlParser.DIMENSION:
        case SqlParser.DISJOINT:
        case SqlParser.ELT:
        case SqlParser.ENCODE:
        case SqlParser.ENCRYPT:
        case SqlParser.ENDPOINT:
        case SqlParser.ENVELOPE:
        case SqlParser.EQUALS:
        case SqlParser.EXP:
        case SqlParser.EXPORT_SET:
        case SqlParser.EXTERIORRING:
        case SqlParser.EXTRACTVALUE:
        case SqlParser.FIELD:
        case SqlParser.FIND_IN_SET:
        case SqlParser.FLOOR:
        case SqlParser.FORMAT:
        case SqlParser.FOUND_ROWS:
        case SqlParser.FROM_BASE64:
        case SqlParser.FROM_DAYS:
        case SqlParser.FROM_UNIXTIME:
        case SqlParser.GEOMCOLLFROMTEXT:
        case SqlParser.GEOMCOLLFROMWKB:
        case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.GEOMETRYFROMTEXT:
        case SqlParser.GEOMETRYFROMWKB:
        case SqlParser.GEOMETRYN:
        case SqlParser.GEOMETRYTYPE:
        case SqlParser.GEOMFROMTEXT:
        case SqlParser.GEOMFROMWKB:
        case SqlParser.GET_FORMAT:
        case SqlParser.GET_LOCK:
        case SqlParser.GLENGTH:
        case SqlParser.GREATEST:
        case SqlParser.GTID_SUBSET:
        case SqlParser.GTID_SUBTRACT:
        case SqlParser.HEX:
        case SqlParser.IFNULL:
        case SqlParser.INET6_ATON:
        case SqlParser.INET6_NTOA:
        case SqlParser.INET_ATON:
        case SqlParser.INET_NTOA:
        case SqlParser.INSTR:
        case SqlParser.INTERIORRINGN:
        case SqlParser.INTERSECTS:
        case SqlParser.ISCLOSED:
        case SqlParser.ISEMPTY:
        case SqlParser.ISNULL:
        case SqlParser.ISSIMPLE:
        case SqlParser.IS_FREE_LOCK:
        case SqlParser.IS_IPV4:
        case SqlParser.IS_IPV4_COMPAT:
        case SqlParser.IS_IPV4_MAPPED:
        case SqlParser.IS_IPV6:
        case SqlParser.IS_USED_LOCK:
        case SqlParser.LAST_INSERT_ID:
        case SqlParser.LCASE:
        case SqlParser.LEAST:
        case SqlParser.LENGTH:
        case SqlParser.LINEFROMTEXT:
        case SqlParser.LINEFROMWKB:
        case SqlParser.LINESTRINGFROMTEXT:
        case SqlParser.LINESTRINGFROMWKB:
        case SqlParser.LN:
        case SqlParser.LOAD_FILE:
        case SqlParser.LOCATE:
        case SqlParser.LOG:
        case SqlParser.LOG10:
        case SqlParser.LOG2:
        case SqlParser.LOWER:
        case SqlParser.LPAD:
        case SqlParser.LTRIM:
        case SqlParser.MAKEDATE:
        case SqlParser.MAKETIME:
        case SqlParser.MAKE_SET:
        case SqlParser.MASTER_POS_WAIT:
        case SqlParser.MBRCONTAINS:
        case SqlParser.MBRDISJOINT:
        case SqlParser.MBREQUAL:
        case SqlParser.MBRINTERSECTS:
        case SqlParser.MBROVERLAPS:
        case SqlParser.MBRTOUCHES:
        case SqlParser.MBRWITHIN:
        case SqlParser.MD5:
        case SqlParser.MLINEFROMTEXT:
        case SqlParser.MLINEFROMWKB:
        case SqlParser.MONTHNAME:
        case SqlParser.MPOINTFROMTEXT:
        case SqlParser.MPOINTFROMWKB:
        case SqlParser.MPOLYFROMTEXT:
        case SqlParser.MPOLYFROMWKB:
        case SqlParser.MULTILINESTRINGFROMTEXT:
        case SqlParser.MULTILINESTRINGFROMWKB:
        case SqlParser.MULTIPOINTFROMTEXT:
        case SqlParser.MULTIPOINTFROMWKB:
        case SqlParser.MULTIPOLYGONFROMTEXT:
        case SqlParser.MULTIPOLYGONFROMWKB:
        case SqlParser.NAME_CONST:
        case SqlParser.NULLIF:
        case SqlParser.NUMGEOMETRIES:
        case SqlParser.NUMINTERIORRINGS:
        case SqlParser.NUMPOINTS:
        case SqlParser.OCT:
        case SqlParser.OCTET_LENGTH:
        case SqlParser.ORD:
        case SqlParser.OVERLAPS:
        case SqlParser.PERIOD_ADD:
        case SqlParser.PERIOD_DIFF:
        case SqlParser.PI:
        case SqlParser.POINTFROMTEXT:
        case SqlParser.POINTFROMWKB:
        case SqlParser.POINTN:
        case SqlParser.POLYFROMTEXT:
        case SqlParser.POLYFROMWKB:
        case SqlParser.POLYGONFROMTEXT:
        case SqlParser.POLYGONFROMWKB:
        case SqlParser.POW:
        case SqlParser.POWER:
        case SqlParser.QUOTE:
        case SqlParser.RADIANS:
        case SqlParser.RAND:
        case SqlParser.RANDOM_BYTES:
        case SqlParser.RELEASE_LOCK:
        case SqlParser.REVERSE:
        case SqlParser.ROUND:
        case SqlParser.ROW_COUNT:
        case SqlParser.RPAD:
        case SqlParser.RTRIM:
        case SqlParser.SEC_TO_TIME:
        case SqlParser.SESSION_USER:
        case SqlParser.SHA:
        case SqlParser.SHA1:
        case SqlParser.SHA2:
        case SqlParser.SCHEMA_NAME:
        case SqlParser.SIGN:
        case SqlParser.SIN:
        case SqlParser.SLEEP:
        case SqlParser.SOUNDEX:
        case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
        case SqlParser.SQRT:
        case SqlParser.SRID:
        case SqlParser.STARTPOINT:
        case SqlParser.STRCMP:
        case SqlParser.STR_TO_DATE:
        case SqlParser.ST_AREA:
        case SqlParser.ST_ASBINARY:
        case SqlParser.ST_ASTEXT:
        case SqlParser.ST_ASWKB:
        case SqlParser.ST_ASWKT:
        case SqlParser.ST_BUFFER:
        case SqlParser.ST_CENTROID:
        case SqlParser.ST_CONTAINS:
        case SqlParser.ST_CROSSES:
        case SqlParser.ST_DIFFERENCE:
        case SqlParser.ST_DIMENSION:
        case SqlParser.ST_DISJOINT:
        case SqlParser.ST_DISTANCE:
        case SqlParser.ST_ENDPOINT:
        case SqlParser.ST_ENVELOPE:
        case SqlParser.ST_EQUALS:
        case SqlParser.ST_EXTERIORRING:
        case SqlParser.ST_GEOMCOLLFROMTEXT:
        case SqlParser.ST_GEOMCOLLFROMTXT:
        case SqlParser.ST_GEOMCOLLFROMWKB:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.ST_GEOMETRYFROMTEXT:
        case SqlParser.ST_GEOMETRYFROMWKB:
        case SqlParser.ST_GEOMETRYN:
        case SqlParser.ST_GEOMETRYTYPE:
        case SqlParser.ST_GEOMFROMTEXT:
        case SqlParser.ST_GEOMFROMWKB:
        case SqlParser.ST_INTERIORRINGN:
        case SqlParser.ST_INTERSECTION:
        case SqlParser.ST_INTERSECTS:
        case SqlParser.ST_ISCLOSED:
        case SqlParser.ST_ISEMPTY:
        case SqlParser.ST_ISSIMPLE:
        case SqlParser.ST_LINEFROMTEXT:
        case SqlParser.ST_LINEFROMWKB:
        case SqlParser.ST_LINESTRINGFROMTEXT:
        case SqlParser.ST_LINESTRINGFROMWKB:
        case SqlParser.ST_NUMGEOMETRIES:
        case SqlParser.ST_NUMINTERIORRING:
        case SqlParser.ST_NUMINTERIORRINGS:
        case SqlParser.ST_NUMPOINTS:
        case SqlParser.ST_OVERLAPS:
        case SqlParser.ST_POINTFROMTEXT:
        case SqlParser.ST_POINTFROMWKB:
        case SqlParser.ST_POINTN:
        case SqlParser.ST_POLYFROMTEXT:
        case SqlParser.ST_POLYFROMWKB:
        case SqlParser.ST_POLYGONFROMTEXT:
        case SqlParser.ST_POLYGONFROMWKB:
        case SqlParser.ST_SRID:
        case SqlParser.ST_STARTPOINT:
        case SqlParser.ST_SYMDIFFERENCE:
        case SqlParser.ST_TOUCHES:
        case SqlParser.ST_UNION:
        case SqlParser.ST_WITHIN:
        case SqlParser.ST_X:
        case SqlParser.ST_Y:
        case SqlParser.SUBDATE:
        case SqlParser.SUBSTRING_INDEX:
        case SqlParser.SUBTIME:
        case SqlParser.SYSTEM_USER:
        case SqlParser.TAN:
        case SqlParser.TIMEDIFF:
        case SqlParser.TIMESTAMPADD:
        case SqlParser.TIMESTAMPDIFF:
        case SqlParser.TIME_FORMAT:
        case SqlParser.TIME_TO_SEC:
        case SqlParser.TOUCHES:
        case SqlParser.TO_BASE64:
        case SqlParser.TO_DAYS:
        case SqlParser.TO_SECONDS:
        case SqlParser.UCASE:
        case SqlParser.UNCOMPRESS:
        case SqlParser.UNCOMPRESSED_LENGTH:
        case SqlParser.UNHEX:
        case SqlParser.UNIX_TIMESTAMP:
        case SqlParser.UPDATEXML:
        case SqlParser.UPPER:
        case SqlParser.UUID:
        case SqlParser.UUID_SHORT:
        case SqlParser.VALIDATE_PASSWORD_STRENGTH:
        case SqlParser.VERSION:
        case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
        case SqlParser.WEEKDAY:
        case SqlParser.WEEKOFYEAR:
        case SqlParser.WEIGHT_STRING:
        case SqlParser.WITHIN:
        case SqlParser.YEARWEEK:
        case SqlParser.Y_FUNCTION:
        case SqlParser.X_FUNCTION:
        case SqlParser.AT_SIGN:
        case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
        case SqlParser.STRING_LITERAL:
        case SqlParser.ID:
        case SqlParser.REVERSE_QUOTE_ID:
            this.enterOuterAlt(localctx, 3);
            this.state = 5083;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,729,this._ctx);
            if(la_===1) {
                this.state = 5080;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.AT_SIGN) {
                    this.state = 5078;
                    this.match(SqlParser.AT_SIGN);
                    this.state = 5079;
                    this.match(SqlParser.AT_SIGN);
                }

                this.state = 5082;
                _la = this._input.LA(1);
                if(!(_la===SqlParser.GLOBAL || _la===SqlParser.LOCAL || _la===SqlParser.SESSION)) {
                this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }

            }
            this.state = 5085;
            this.uid();
            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 ShowCommonEntityContext(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_showCommonEntity;
    return this;
}

ShowCommonEntityContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ShowCommonEntityContext.prototype.constructor = ShowCommonEntityContext;

ShowCommonEntityContext.prototype.CHARACTER = function() {
    return this.getToken(SqlParser.CHARACTER, 0);
};

ShowCommonEntityContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

ShowCommonEntityContext.prototype.COLLATION = function() {
    return this.getToken(SqlParser.COLLATION, 0);
};

ShowCommonEntityContext.prototype.DATABASES = function() {
    return this.getToken(SqlParser.DATABASES, 0);
};

ShowCommonEntityContext.prototype.SCHEMAS = function() {
    return this.getToken(SqlParser.SCHEMAS, 0);
};

ShowCommonEntityContext.prototype.FUNCTION = function() {
    return this.getToken(SqlParser.FUNCTION, 0);
};

ShowCommonEntityContext.prototype.STATUS = function() {
    return this.getToken(SqlParser.STATUS, 0);
};

ShowCommonEntityContext.prototype.PROCEDURE = function() {
    return this.getToken(SqlParser.PROCEDURE, 0);
};

ShowCommonEntityContext.prototype.VARIABLES = function() {
    return this.getToken(SqlParser.VARIABLES, 0);
};

ShowCommonEntityContext.prototype.GLOBAL = function() {
    return this.getToken(SqlParser.GLOBAL, 0);
};

ShowCommonEntityContext.prototype.SESSION = function() {
    return this.getToken(SqlParser.SESSION, 0);
};

ShowCommonEntityContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowCommonEntity(this);
	}
};

ShowCommonEntityContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowCommonEntity(this);
	}
};

ShowCommonEntityContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowCommonEntity(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ShowCommonEntityContext = ShowCommonEntityContext;

SqlParser.prototype.showCommonEntity = function() {

    var localctx = new ShowCommonEntityContext(this, this._ctx, this.state);
    this.enterRule(localctx, 446, SqlParser.RULE_showCommonEntity);
    var _la = 0; // Token type
    try {
        this.state = 5101;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.CHARACTER:
            this.enterOuterAlt(localctx, 1);
            this.state = 5088;
            this.match(SqlParser.CHARACTER);
            this.state = 5089;
            this.match(SqlParser.SET);
            break;
        case SqlParser.COLLATION:
            this.enterOuterAlt(localctx, 2);
            this.state = 5090;
            this.match(SqlParser.COLLATION);
            break;
        case SqlParser.DATABASES:
            this.enterOuterAlt(localctx, 3);
            this.state = 5091;
            this.match(SqlParser.DATABASES);
            break;
        case SqlParser.SCHEMAS:
            this.enterOuterAlt(localctx, 4);
            this.state = 5092;
            this.match(SqlParser.SCHEMAS);
            break;
        case SqlParser.FUNCTION:
            this.enterOuterAlt(localctx, 5);
            this.state = 5093;
            this.match(SqlParser.FUNCTION);
            this.state = 5094;
            this.match(SqlParser.STATUS);
            break;
        case SqlParser.PROCEDURE:
            this.enterOuterAlt(localctx, 6);
            this.state = 5095;
            this.match(SqlParser.PROCEDURE);
            this.state = 5096;
            this.match(SqlParser.STATUS);
            break;
        case SqlParser.GLOBAL:
        case SqlParser.SESSION:
        case SqlParser.STATUS:
        case SqlParser.VARIABLES:
            this.enterOuterAlt(localctx, 7);
            this.state = 5098;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.GLOBAL || _la===SqlParser.SESSION) {
                this.state = 5097;
                _la = this._input.LA(1);
                if(!(_la===SqlParser.GLOBAL || _la===SqlParser.SESSION)) {
                this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 5100;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.STATUS || _la===SqlParser.VARIABLES)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            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 ShowFilterContext(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_showFilter;
    return this;
}

ShowFilterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ShowFilterContext.prototype.constructor = ShowFilterContext;

ShowFilterContext.prototype.LIKE = function() {
    return this.getToken(SqlParser.LIKE, 0);
};

ShowFilterContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

ShowFilterContext.prototype.WHERE = function() {
    return this.getToken(SqlParser.WHERE, 0);
};

ShowFilterContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

ShowFilterContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowFilter(this);
	}
};

ShowFilterContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowFilter(this);
	}
};

ShowFilterContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowFilter(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ShowFilterContext = ShowFilterContext;

SqlParser.prototype.showFilter = function() {

    var localctx = new ShowFilterContext(this, this._ctx, this.state);
    this.enterRule(localctx, 448, SqlParser.RULE_showFilter);
    try {
        this.state = 5107;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.LIKE:
            this.enterOuterAlt(localctx, 1);
            this.state = 5103;
            this.match(SqlParser.LIKE);
            this.state = 5104;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.WHERE:
            this.enterOuterAlt(localctx, 2);
            this.state = 5105;
            this.match(SqlParser.WHERE);
            this.state = 5106;
            this.expression(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 ShowGlobalInfoClauseContext(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_showGlobalInfoClause;
    return this;
}

ShowGlobalInfoClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ShowGlobalInfoClauseContext.prototype.constructor = ShowGlobalInfoClauseContext;

ShowGlobalInfoClauseContext.prototype.ENGINES = function() {
    return this.getToken(SqlParser.ENGINES, 0);
};

ShowGlobalInfoClauseContext.prototype.STORAGE = function() {
    return this.getToken(SqlParser.STORAGE, 0);
};

ShowGlobalInfoClauseContext.prototype.MASTER = function() {
    return this.getToken(SqlParser.MASTER, 0);
};

ShowGlobalInfoClauseContext.prototype.STATUS = function() {
    return this.getToken(SqlParser.STATUS, 0);
};

ShowGlobalInfoClauseContext.prototype.PLUGINS = function() {
    return this.getToken(SqlParser.PLUGINS, 0);
};

ShowGlobalInfoClauseContext.prototype.PRIVILEGES = function() {
    return this.getToken(SqlParser.PRIVILEGES, 0);
};

ShowGlobalInfoClauseContext.prototype.PROCESSLIST = function() {
    return this.getToken(SqlParser.PROCESSLIST, 0);
};

ShowGlobalInfoClauseContext.prototype.FULL = function() {
    return this.getToken(SqlParser.FULL, 0);
};

ShowGlobalInfoClauseContext.prototype.PROFILES = function() {
    return this.getToken(SqlParser.PROFILES, 0);
};

ShowGlobalInfoClauseContext.prototype.SLAVE = function() {
    return this.getToken(SqlParser.SLAVE, 0);
};

ShowGlobalInfoClauseContext.prototype.HOSTS = function() {
    return this.getToken(SqlParser.HOSTS, 0);
};

ShowGlobalInfoClauseContext.prototype.AUTHORS = function() {
    return this.getToken(SqlParser.AUTHORS, 0);
};

ShowGlobalInfoClauseContext.prototype.CONTRIBUTORS = function() {
    return this.getToken(SqlParser.CONTRIBUTORS, 0);
};

ShowGlobalInfoClauseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowGlobalInfoClause(this);
	}
};

ShowGlobalInfoClauseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowGlobalInfoClause(this);
	}
};

ShowGlobalInfoClauseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowGlobalInfoClause(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ShowGlobalInfoClauseContext = ShowGlobalInfoClauseContext;

SqlParser.prototype.showGlobalInfoClause = function() {

    var localctx = new ShowGlobalInfoClauseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 450, SqlParser.RULE_showGlobalInfoClause);
    var _la = 0; // Token type
    try {
        this.state = 5126;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.ENGINES:
        case SqlParser.STORAGE:
            this.enterOuterAlt(localctx, 1);
            this.state = 5110;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.STORAGE) {
                this.state = 5109;
                this.match(SqlParser.STORAGE);
            }

            this.state = 5112;
            this.match(SqlParser.ENGINES);
            break;
        case SqlParser.MASTER:
            this.enterOuterAlt(localctx, 2);
            this.state = 5113;
            this.match(SqlParser.MASTER);
            this.state = 5114;
            this.match(SqlParser.STATUS);
            break;
        case SqlParser.PLUGINS:
            this.enterOuterAlt(localctx, 3);
            this.state = 5115;
            this.match(SqlParser.PLUGINS);
            break;
        case SqlParser.PRIVILEGES:
            this.enterOuterAlt(localctx, 4);
            this.state = 5116;
            this.match(SqlParser.PRIVILEGES);
            break;
        case SqlParser.FULL:
        case SqlParser.PROCESSLIST:
            this.enterOuterAlt(localctx, 5);
            this.state = 5118;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FULL) {
                this.state = 5117;
                this.match(SqlParser.FULL);
            }

            this.state = 5120;
            this.match(SqlParser.PROCESSLIST);
            break;
        case SqlParser.PROFILES:
            this.enterOuterAlt(localctx, 6);
            this.state = 5121;
            this.match(SqlParser.PROFILES);
            break;
        case SqlParser.SLAVE:
            this.enterOuterAlt(localctx, 7);
            this.state = 5122;
            this.match(SqlParser.SLAVE);
            this.state = 5123;
            this.match(SqlParser.HOSTS);
            break;
        case SqlParser.AUTHORS:
            this.enterOuterAlt(localctx, 8);
            this.state = 5124;
            this.match(SqlParser.AUTHORS);
            break;
        case SqlParser.CONTRIBUTORS:
            this.enterOuterAlt(localctx, 9);
            this.state = 5125;
            this.match(SqlParser.CONTRIBUTORS);
            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 ShowSchemaEntityContext(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_showSchemaEntity;
    return this;
}

ShowSchemaEntityContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ShowSchemaEntityContext.prototype.constructor = ShowSchemaEntityContext;

ShowSchemaEntityContext.prototype.EVENTS = function() {
    return this.getToken(SqlParser.EVENTS, 0);
};

ShowSchemaEntityContext.prototype.TABLE = function() {
    return this.getToken(SqlParser.TABLE, 0);
};

ShowSchemaEntityContext.prototype.STATUS = function() {
    return this.getToken(SqlParser.STATUS, 0);
};

ShowSchemaEntityContext.prototype.TABLES = function() {
    return this.getToken(SqlParser.TABLES, 0);
};

ShowSchemaEntityContext.prototype.FULL = function() {
    return this.getToken(SqlParser.FULL, 0);
};

ShowSchemaEntityContext.prototype.TRIGGERS = function() {
    return this.getToken(SqlParser.TRIGGERS, 0);
};

ShowSchemaEntityContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowSchemaEntity(this);
	}
};

ShowSchemaEntityContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowSchemaEntity(this);
	}
};

ShowSchemaEntityContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowSchemaEntity(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ShowSchemaEntityContext = ShowSchemaEntityContext;

SqlParser.prototype.showSchemaEntity = function() {

    var localctx = new ShowSchemaEntityContext(this, this._ctx, this.state);
    this.enterRule(localctx, 452, SqlParser.RULE_showSchemaEntity);
    var _la = 0; // Token type
    try {
        this.state = 5136;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.EVENTS:
            this.enterOuterAlt(localctx, 1);
            this.state = 5128;
            this.match(SqlParser.EVENTS);
            break;
        case SqlParser.TABLE:
            this.enterOuterAlt(localctx, 2);
            this.state = 5129;
            this.match(SqlParser.TABLE);
            this.state = 5130;
            this.match(SqlParser.STATUS);
            break;
        case SqlParser.FULL:
        case SqlParser.TABLES:
            this.enterOuterAlt(localctx, 3);
            this.state = 5132;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FULL) {
                this.state = 5131;
                this.match(SqlParser.FULL);
            }

            this.state = 5134;
            this.match(SqlParser.TABLES);
            break;
        case SqlParser.TRIGGERS:
            this.enterOuterAlt(localctx, 4);
            this.state = 5135;
            this.match(SqlParser.TRIGGERS);
            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 ShowProfileTypeContext(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_showProfileType;
    return this;
}

ShowProfileTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ShowProfileTypeContext.prototype.constructor = ShowProfileTypeContext;

ShowProfileTypeContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};

ShowProfileTypeContext.prototype.BLOCK = function() {
    return this.getToken(SqlParser.BLOCK, 0);
};

ShowProfileTypeContext.prototype.IO = function() {
    return this.getToken(SqlParser.IO, 0);
};

ShowProfileTypeContext.prototype.CONTEXT = function() {
    return this.getToken(SqlParser.CONTEXT, 0);
};

ShowProfileTypeContext.prototype.SWITCHES = function() {
    return this.getToken(SqlParser.SWITCHES, 0);
};

ShowProfileTypeContext.prototype.CPU = function() {
    return this.getToken(SqlParser.CPU, 0);
};

ShowProfileTypeContext.prototype.IPC = function() {
    return this.getToken(SqlParser.IPC, 0);
};

ShowProfileTypeContext.prototype.MEMORY = function() {
    return this.getToken(SqlParser.MEMORY, 0);
};

ShowProfileTypeContext.prototype.PAGE = function() {
    return this.getToken(SqlParser.PAGE, 0);
};

ShowProfileTypeContext.prototype.FAULTS = function() {
    return this.getToken(SqlParser.FAULTS, 0);
};

ShowProfileTypeContext.prototype.SOURCE = function() {
    return this.getToken(SqlParser.SOURCE, 0);
};

ShowProfileTypeContext.prototype.SWAPS = function() {
    return this.getToken(SqlParser.SWAPS, 0);
};

ShowProfileTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShowProfileType(this);
	}
};

ShowProfileTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShowProfileType(this);
	}
};

ShowProfileTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShowProfileType(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ShowProfileTypeContext = ShowProfileTypeContext;

SqlParser.prototype.showProfileType = function() {

    var localctx = new ShowProfileTypeContext(this, this._ctx, this.state);
    this.enterRule(localctx, 454, SqlParser.RULE_showProfileType);
    try {
        this.state = 5150;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.ALL:
            this.enterOuterAlt(localctx, 1);
            this.state = 5138;
            this.match(SqlParser.ALL);
            break;
        case SqlParser.BLOCK:
            this.enterOuterAlt(localctx, 2);
            this.state = 5139;
            this.match(SqlParser.BLOCK);
            this.state = 5140;
            this.match(SqlParser.IO);
            break;
        case SqlParser.CONTEXT:
            this.enterOuterAlt(localctx, 3);
            this.state = 5141;
            this.match(SqlParser.CONTEXT);
            this.state = 5142;
            this.match(SqlParser.SWITCHES);
            break;
        case SqlParser.CPU:
            this.enterOuterAlt(localctx, 4);
            this.state = 5143;
            this.match(SqlParser.CPU);
            break;
        case SqlParser.IPC:
            this.enterOuterAlt(localctx, 5);
            this.state = 5144;
            this.match(SqlParser.IPC);
            break;
        case SqlParser.MEMORY:
            this.enterOuterAlt(localctx, 6);
            this.state = 5145;
            this.match(SqlParser.MEMORY);
            break;
        case SqlParser.PAGE:
            this.enterOuterAlt(localctx, 7);
            this.state = 5146;
            this.match(SqlParser.PAGE);
            this.state = 5147;
            this.match(SqlParser.FAULTS);
            break;
        case SqlParser.SOURCE:
            this.enterOuterAlt(localctx, 8);
            this.state = 5148;
            this.match(SqlParser.SOURCE);
            break;
        case SqlParser.SWAPS:
            this.enterOuterAlt(localctx, 9);
            this.state = 5149;
            this.match(SqlParser.SWAPS);
            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 BinlogStatementContext(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_binlogStatement;
    return this;
}

BinlogStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
BinlogStatementContext.prototype.constructor = BinlogStatementContext;

BinlogStatementContext.prototype.BINLOG = function() {
    return this.getToken(SqlParser.BINLOG, 0);
};

BinlogStatementContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

BinlogStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterBinlogStatement(this);
	}
};

BinlogStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitBinlogStatement(this);
	}
};

BinlogStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitBinlogStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.BinlogStatementContext = BinlogStatementContext;

SqlParser.prototype.binlogStatement = function() {

    var localctx = new BinlogStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 456, SqlParser.RULE_binlogStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5152;
        this.match(SqlParser.BINLOG);
        this.state = 5153;
        this.match(SqlParser.STRING_LITERAL);
    } 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 CacheIndexStatementContext(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_cacheIndexStatement;
    this.schema = null; // UidContext
    return this;
}

CacheIndexStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CacheIndexStatementContext.prototype.constructor = CacheIndexStatementContext;

CacheIndexStatementContext.prototype.CACHE = function() {
    return this.getToken(SqlParser.CACHE, 0);
};

CacheIndexStatementContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

CacheIndexStatementContext.prototype.tableIndexes = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TableIndexesContext);
    } else {
        return this.getTypedRuleContext(TableIndexesContext,i);
    }
};

CacheIndexStatementContext.prototype.IN = function() {
    return this.getToken(SqlParser.IN, 0);
};

CacheIndexStatementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

CacheIndexStatementContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


CacheIndexStatementContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

CacheIndexStatementContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

CacheIndexStatementContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

CacheIndexStatementContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

CacheIndexStatementContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};

CacheIndexStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCacheIndexStatement(this);
	}
};

CacheIndexStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCacheIndexStatement(this);
	}
};

CacheIndexStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCacheIndexStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CacheIndexStatementContext = CacheIndexStatementContext;

SqlParser.prototype.cacheIndexStatement = function() {

    var localctx = new CacheIndexStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 458, SqlParser.RULE_cacheIndexStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5155;
        this.match(SqlParser.CACHE);
        this.state = 5156;
        this.match(SqlParser.INDEX);
        this.state = 5157;
        this.tableIndexes();
        this.state = 5162;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 5158;
            this.match(SqlParser.COMMA);
            this.state = 5159;
            this.tableIndexes();
            this.state = 5164;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 5172;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.PARTITION) {
            this.state = 5165;
            this.match(SqlParser.PARTITION);
            this.state = 5166;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5169;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.CURRENT:
            case SqlParser.DATABASE:
            case SqlParser.DIAGNOSTICS:
            case SqlParser.LEFT:
            case SqlParser.NUMBER:
            case SqlParser.RIGHT:
            case SqlParser.STACKED:
            case SqlParser.DATE:
            case SqlParser.TIME:
            case SqlParser.TIMESTAMP:
            case SqlParser.DATETIME:
            case SqlParser.YEAR:
            case SqlParser.TEXT:
            case SqlParser.ENUM:
            case SqlParser.SERIAL:
            case SqlParser.JSON_VALID:
            case SqlParser.JSON_SCHEMA_VALID:
            case SqlParser.COUNT:
            case SqlParser.POSITION:
            case SqlParser.ACCOUNT:
            case SqlParser.ACTION:
            case SqlParser.AFTER:
            case SqlParser.AGGREGATE:
            case SqlParser.ALGORITHM:
            case SqlParser.ANY:
            case SqlParser.AT:
            case SqlParser.AUTHORS:
            case SqlParser.AUTOCOMMIT:
            case SqlParser.AUTOEXTEND_SIZE:
            case SqlParser.AUTO_INCREMENT:
            case SqlParser.AVG_ROW_LENGTH:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.BIT:
            case SqlParser.BLOCK:
            case SqlParser.BOOL:
            case SqlParser.BOOLEAN:
            case SqlParser.BTREE:
            case SqlParser.CACHE:
            case SqlParser.CASCADED:
            case SqlParser.CHAIN:
            case SqlParser.CHANGED:
            case SqlParser.CHANNEL:
            case SqlParser.CHECKSUM:
            case SqlParser.PAGE_CHECKSUM:
            case SqlParser.CIPHER:
            case SqlParser.CLASS_ORIGIN:
            case SqlParser.CLIENT:
            case SqlParser.CLOSE:
            case SqlParser.COALESCE:
            case SqlParser.CODE:
            case SqlParser.COLUMNS:
            case SqlParser.COLUMN_FORMAT:
            case SqlParser.COLUMN_NAME:
            case SqlParser.COMMENT:
            case SqlParser.COMMIT:
            case SqlParser.COMPACT:
            case SqlParser.COMPLETION:
            case SqlParser.COMPRESSED:
            case SqlParser.COMPRESSION:
            case SqlParser.CONCURRENT:
            case SqlParser.CONNECTION:
            case SqlParser.CONSISTENT:
            case SqlParser.CONSTRAINT_CATALOG:
            case SqlParser.CONSTRAINT_SCHEMA:
            case SqlParser.CONSTRAINT_NAME:
            case SqlParser.CONTAINS:
            case SqlParser.CONTEXT:
            case SqlParser.CONTRIBUTORS:
            case SqlParser.COPY:
            case SqlParser.CPU:
            case SqlParser.CURSOR_NAME:
            case SqlParser.DATA:
            case SqlParser.DATAFILE:
            case SqlParser.DEALLOCATE:
            case SqlParser.DEFAULT_AUTH:
            case SqlParser.DEFINER:
            case SqlParser.DELAY_KEY_WRITE:
            case SqlParser.DES_KEY_FILE:
            case SqlParser.DIRECTORY:
            case SqlParser.DISABLE:
            case SqlParser.DISCARD:
            case SqlParser.DISK:
            case SqlParser.DO:
            case SqlParser.DUMPFILE:
            case SqlParser.DUPLICATE:
            case SqlParser.DYNAMIC:
            case SqlParser.ENABLE:
            case SqlParser.ENCRYPTION:
            case SqlParser.END:
            case SqlParser.ENDS:
            case SqlParser.ENGINE:
            case SqlParser.ENGINES:
            case SqlParser.ERROR:
            case SqlParser.ERRORS:
            case SqlParser.ESCAPE:
            case SqlParser.EVEN:
            case SqlParser.EVENT:
            case SqlParser.EVENTS:
            case SqlParser.EVERY:
            case SqlParser.EXCHANGE:
            case SqlParser.EXCLUSIVE:
            case SqlParser.EXPIRE:
            case SqlParser.EXPORT:
            case SqlParser.EXTENDED:
            case SqlParser.EXTENT_SIZE:
            case SqlParser.FAST:
            case SqlParser.FAULTS:
            case SqlParser.FIELDS:
            case SqlParser.FILE_BLOCK_SIZE:
            case SqlParser.FILTER:
            case SqlParser.FIRST:
            case SqlParser.FIXED:
            case SqlParser.FLUSH:
            case SqlParser.FOLLOWS:
            case SqlParser.FOUND:
            case SqlParser.FULL:
            case SqlParser.FUNCTION:
            case SqlParser.GENERAL:
            case SqlParser.GLOBAL:
            case SqlParser.GRANTS:
            case SqlParser.GROUP_REPLICATION:
            case SqlParser.HANDLER:
            case SqlParser.HASH:
            case SqlParser.HELP:
            case SqlParser.HOST:
            case SqlParser.HOSTS:
            case SqlParser.IDENTIFIED:
            case SqlParser.IGNORE_SERVER_IDS:
            case SqlParser.IMPORT:
            case SqlParser.INDEXES:
            case SqlParser.INITIAL_SIZE:
            case SqlParser.INPLACE:
            case SqlParser.INSERT_METHOD:
            case SqlParser.INSTALL:
            case SqlParser.INSTANCE:
            case SqlParser.INVISIBLE:
            case SqlParser.INVOKER:
            case SqlParser.IO:
            case SqlParser.IO_THREAD:
            case SqlParser.IPC:
            case SqlParser.ISOLATION:
            case SqlParser.ISSUER:
            case SqlParser.JSON:
            case SqlParser.KEY_BLOCK_SIZE:
            case SqlParser.LANGUAGE:
            case SqlParser.LAST:
            case SqlParser.LEAVES:
            case SqlParser.LESS:
            case SqlParser.LEVEL:
            case SqlParser.LIST:
            case SqlParser.LOCAL:
            case SqlParser.LOGFILE:
            case SqlParser.LOGS:
            case SqlParser.MASTER:
            case SqlParser.MASTER_AUTO_POSITION:
            case SqlParser.MASTER_CONNECT_RETRY:
            case SqlParser.MASTER_DELAY:
            case SqlParser.MASTER_HEARTBEAT_PERIOD:
            case SqlParser.MASTER_HOST:
            case SqlParser.MASTER_LOG_FILE:
            case SqlParser.MASTER_LOG_POS:
            case SqlParser.MASTER_PASSWORD:
            case SqlParser.MASTER_PORT:
            case SqlParser.MASTER_RETRY_COUNT:
            case SqlParser.MASTER_SSL:
            case SqlParser.MASTER_SSL_CA:
            case SqlParser.MASTER_SSL_CAPATH:
            case SqlParser.MASTER_SSL_CERT:
            case SqlParser.MASTER_SSL_CIPHER:
            case SqlParser.MASTER_SSL_CRL:
            case SqlParser.MASTER_SSL_CRLPATH:
            case SqlParser.MASTER_SSL_KEY:
            case SqlParser.MASTER_TLS_VERSION:
            case SqlParser.MASTER_USER:
            case SqlParser.MAX_CONNECTIONS_PER_HOUR:
            case SqlParser.MAX_QUERIES_PER_HOUR:
            case SqlParser.MAX_ROWS:
            case SqlParser.MAX_SIZE:
            case SqlParser.MAX_UPDATES_PER_HOUR:
            case SqlParser.MAX_USER_CONNECTIONS:
            case SqlParser.MEDIUM:
            case SqlParser.MERGE:
            case SqlParser.MESSAGE_TEXT:
            case SqlParser.MID:
            case SqlParser.MIGRATE:
            case SqlParser.MIN_ROWS:
            case SqlParser.MODE:
            case SqlParser.MODIFY:
            case SqlParser.MUTEX:
            case SqlParser.MYSQL:
            case SqlParser.MYSQL_ERRNO:
            case SqlParser.NAME:
            case SqlParser.NAMES:
            case SqlParser.NCHAR:
            case SqlParser.NEVER:
            case SqlParser.NEXT:
            case SqlParser.NO:
            case SqlParser.NODEGROUP:
            case SqlParser.NONE:
            case SqlParser.OFFLINE:
            case SqlParser.OFFSET:
            case SqlParser.OJ:
            case SqlParser.OLD_PASSWORD:
            case SqlParser.ONE:
            case SqlParser.ONLINE:
            case SqlParser.ONLY:
            case SqlParser.OPEN:
            case SqlParser.OPTIMIZER_COSTS:
            case SqlParser.OPTIONS:
            case SqlParser.OWNER:
            case SqlParser.PACK_KEYS:
            case SqlParser.PAGE:
            case SqlParser.PARSER:
            case SqlParser.PARTIAL:
            case SqlParser.PARTITIONING:
            case SqlParser.PARTITIONS:
            case SqlParser.PASSWORD:
            case SqlParser.PHASE:
            case SqlParser.PLUGIN:
            case SqlParser.PLUGIN_DIR:
            case SqlParser.PLUGINS:
            case SqlParser.PORT:
            case SqlParser.PRECEDES:
            case SqlParser.PREPARE:
            case SqlParser.PRESERVE:
            case SqlParser.PREV:
            case SqlParser.PROCESSLIST:
            case SqlParser.PROFILE:
            case SqlParser.PROFILES:
            case SqlParser.PROXY:
            case SqlParser.QUERY:
            case SqlParser.QUICK:
            case SqlParser.REBUILD:
            case SqlParser.RECOVER:
            case SqlParser.REDO_BUFFER_SIZE:
            case SqlParser.REDUNDANT:
            case SqlParser.RELAY:
            case SqlParser.RELAY_LOG_FILE:
            case SqlParser.RELAY_LOG_POS:
            case SqlParser.RELAYLOG:
            case SqlParser.REMOVE:
            case SqlParser.REORGANIZE:
            case SqlParser.REPAIR:
            case SqlParser.REPLICATE_DO_DB:
            case SqlParser.REPLICATE_DO_TABLE:
            case SqlParser.REPLICATE_IGNORE_DB:
            case SqlParser.REPLICATE_IGNORE_TABLE:
            case SqlParser.REPLICATE_REWRITE_DB:
            case SqlParser.REPLICATE_WILD_DO_TABLE:
            case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
            case SqlParser.REPLICATION:
            case SqlParser.RESET:
            case SqlParser.RESUME:
            case SqlParser.RETURNED_SQLSTATE:
            case SqlParser.RETURNS:
            case SqlParser.ROLE:
            case SqlParser.ROLLBACK:
            case SqlParser.ROLLUP:
            case SqlParser.ROTATE:
            case SqlParser.ROW:
            case SqlParser.ROWS:
            case SqlParser.ROW_FORMAT:
            case SqlParser.SAVEPOINT:
            case SqlParser.SCHEDULE:
            case SqlParser.SECURITY:
            case SqlParser.SERVER:
            case SqlParser.SESSION:
            case SqlParser.SHARE:
            case SqlParser.SHARED:
            case SqlParser.SIGNED:
            case SqlParser.SIMPLE:
            case SqlParser.SLAVE:
            case SqlParser.SLOW:
            case SqlParser.SNAPSHOT:
            case SqlParser.SOCKET:
            case SqlParser.SOME:
            case SqlParser.SONAME:
            case SqlParser.SOUNDS:
            case SqlParser.SOURCE:
            case SqlParser.SQL_AFTER_GTIDS:
            case SqlParser.SQL_AFTER_MTS_GAPS:
            case SqlParser.SQL_BEFORE_GTIDS:
            case SqlParser.SQL_BUFFER_RESULT:
            case SqlParser.SQL_CACHE:
            case SqlParser.SQL_NO_CACHE:
            case SqlParser.SQL_THREAD:
            case SqlParser.START:
            case SqlParser.STARTS:
            case SqlParser.STATS_AUTO_RECALC:
            case SqlParser.STATS_PERSISTENT:
            case SqlParser.STATS_SAMPLE_PAGES:
            case SqlParser.STATUS:
            case SqlParser.STOP:
            case SqlParser.STORAGE:
            case SqlParser.STRING:
            case SqlParser.SUBCLASS_ORIGIN:
            case SqlParser.SUBJECT:
            case SqlParser.SUBPARTITION:
            case SqlParser.SUBPARTITIONS:
            case SqlParser.SUSPEND:
            case SqlParser.SWAPS:
            case SqlParser.SWITCHES:
            case SqlParser.TABLE_NAME:
            case SqlParser.TABLESPACE:
            case SqlParser.TEMPORARY:
            case SqlParser.TEMPTABLE:
            case SqlParser.THAN:
            case SqlParser.TRADITIONAL:
            case SqlParser.TRANSACTION:
            case SqlParser.TRANSACTIONAL:
            case SqlParser.TRIGGERS:
            case SqlParser.TRUNCATE:
            case SqlParser.UNDEFINED:
            case SqlParser.UNDOFILE:
            case SqlParser.UNDO_BUFFER_SIZE:
            case SqlParser.UNINSTALL:
            case SqlParser.UNKNOWN:
            case SqlParser.UNTIL:
            case SqlParser.UPGRADE:
            case SqlParser.USER:
            case SqlParser.USE_FRM:
            case SqlParser.USER_RESOURCES:
            case SqlParser.VALIDATION:
            case SqlParser.VALUE:
            case SqlParser.VARIABLES:
            case SqlParser.VIEW:
            case SqlParser.VISIBLE:
            case SqlParser.WAIT:
            case SqlParser.WARNINGS:
            case SqlParser.WITHOUT:
            case SqlParser.WORK:
            case SqlParser.WRAPPER:
            case SqlParser.X509:
            case SqlParser.XA:
            case SqlParser.XML:
            case SqlParser.INTERNAL:
            case SqlParser.QUARTER:
            case SqlParser.MONTH:
            case SqlParser.DAY:
            case SqlParser.HOUR:
            case SqlParser.MINUTE:
            case SqlParser.WEEK:
            case SqlParser.SECOND:
            case SqlParser.MICROSECOND:
            case SqlParser.TABLES:
            case SqlParser.ROUTINE:
            case SqlParser.EXECUTE:
            case SqlParser.FILE:
            case SqlParser.PROCESS:
            case SqlParser.RELOAD:
            case SqlParser.SHUTDOWN:
            case SqlParser.SUPER:
            case SqlParser.PRIVILEGES:
            case SqlParser.AUDIT_ADMIN:
            case SqlParser.BACKUP_ADMIN:
            case SqlParser.BINLOG_ADMIN:
            case SqlParser.BINLOG_ENCRYPTION_ADMIN:
            case SqlParser.CLONE_ADMIN:
            case SqlParser.CONNECTION_ADMIN:
            case SqlParser.ENCRYPTION_KEY_ADMIN:
            case SqlParser.FIREWALL_ADMIN:
            case SqlParser.FIREWALL_USER:
            case SqlParser.GROUP_REPLICATION_ADMIN:
            case SqlParser.INNODB_REDO_LOG_ARCHIVE:
            case SqlParser.NDB_STORED_USER:
            case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
            case SqlParser.REPLICATION_APPLIER:
            case SqlParser.REPLICATION_SLAVE_ADMIN:
            case SqlParser.RESOURCE_GROUP_ADMIN:
            case SqlParser.RESOURCE_GROUP_USER:
            case SqlParser.ROLE_ADMIN:
            case SqlParser.SESSION_VARIABLES_ADMIN:
            case SqlParser.SET_USER_ID:
            case SqlParser.SHOW_ROUTINE:
            case SqlParser.SYSTEM_VARIABLES_ADMIN:
            case SqlParser.TABLE_ENCRYPTION_ADMIN:
            case SqlParser.VERSION_TOKEN_ADMIN:
            case SqlParser.XA_RECOVER_ADMIN:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.ARCHIVE:
            case SqlParser.BLACKHOLE:
            case SqlParser.CSV:
            case SqlParser.FEDERATED:
            case SqlParser.INNODB:
            case SqlParser.MEMORY:
            case SqlParser.MRG_MYISAM:
            case SqlParser.MYISAM:
            case SqlParser.NDB:
            case SqlParser.NDBCLUSTER:
            case SqlParser.PERFORMANCE_SCHEMA:
            case SqlParser.TOKUDB:
            case SqlParser.REPEATABLE:
            case SqlParser.COMMITTED:
            case SqlParser.UNCOMMITTED:
            case SqlParser.SERIALIZABLE:
            case SqlParser.GEOMETRYCOLLECTION:
            case SqlParser.LINESTRING:
            case SqlParser.MULTILINESTRING:
            case SqlParser.MULTIPOINT:
            case SqlParser.MULTIPOLYGON:
            case SqlParser.POINT:
            case SqlParser.POLYGON:
            case SqlParser.ABS:
            case SqlParser.ACOS:
            case SqlParser.ADDDATE:
            case SqlParser.ADDTIME:
            case SqlParser.AES_DECRYPT:
            case SqlParser.AES_ENCRYPT:
            case SqlParser.AREA:
            case SqlParser.ASBINARY:
            case SqlParser.ASIN:
            case SqlParser.ASTEXT:
            case SqlParser.ASWKB:
            case SqlParser.ASWKT:
            case SqlParser.ASYMMETRIC_DECRYPT:
            case SqlParser.ASYMMETRIC_DERIVE:
            case SqlParser.ASYMMETRIC_ENCRYPT:
            case SqlParser.ASYMMETRIC_SIGN:
            case SqlParser.ASYMMETRIC_VERIFY:
            case SqlParser.ATAN:
            case SqlParser.ATAN2:
            case SqlParser.BENCHMARK:
            case SqlParser.BIN:
            case SqlParser.BIT_COUNT:
            case SqlParser.BIT_LENGTH:
            case SqlParser.BUFFER:
            case SqlParser.CATALOG_NAME:
            case SqlParser.CEIL:
            case SqlParser.CEILING:
            case SqlParser.CENTROID:
            case SqlParser.CHARACTER_LENGTH:
            case SqlParser.CHARSET:
            case SqlParser.CHAR_LENGTH:
            case SqlParser.COERCIBILITY:
            case SqlParser.COLLATION:
            case SqlParser.COMPRESS:
            case SqlParser.CONCAT:
            case SqlParser.CONCAT_WS:
            case SqlParser.CONNECTION_ID:
            case SqlParser.CONV:
            case SqlParser.CONVERT_TZ:
            case SqlParser.COS:
            case SqlParser.COT:
            case SqlParser.CRC32:
            case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
            case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
            case SqlParser.CREATE_DH_PARAMETERS:
            case SqlParser.CREATE_DIGEST:
            case SqlParser.CROSSES:
            case SqlParser.DATEDIFF:
            case SqlParser.DATE_FORMAT:
            case SqlParser.DAYNAME:
            case SqlParser.DAYOFMONTH:
            case SqlParser.DAYOFWEEK:
            case SqlParser.DAYOFYEAR:
            case SqlParser.DECODE:
            case SqlParser.DEGREES:
            case SqlParser.DES_DECRYPT:
            case SqlParser.DES_ENCRYPT:
            case SqlParser.DIMENSION:
            case SqlParser.DISJOINT:
            case SqlParser.ELT:
            case SqlParser.ENCODE:
            case SqlParser.ENCRYPT:
            case SqlParser.ENDPOINT:
            case SqlParser.ENVELOPE:
            case SqlParser.EQUALS:
            case SqlParser.EXP:
            case SqlParser.EXPORT_SET:
            case SqlParser.EXTERIORRING:
            case SqlParser.EXTRACTVALUE:
            case SqlParser.FIELD:
            case SqlParser.FIND_IN_SET:
            case SqlParser.FLOOR:
            case SqlParser.FORMAT:
            case SqlParser.FOUND_ROWS:
            case SqlParser.FROM_BASE64:
            case SqlParser.FROM_DAYS:
            case SqlParser.FROM_UNIXTIME:
            case SqlParser.GEOMCOLLFROMTEXT:
            case SqlParser.GEOMCOLLFROMWKB:
            case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.GEOMETRYFROMTEXT:
            case SqlParser.GEOMETRYFROMWKB:
            case SqlParser.GEOMETRYN:
            case SqlParser.GEOMETRYTYPE:
            case SqlParser.GEOMFROMTEXT:
            case SqlParser.GEOMFROMWKB:
            case SqlParser.GET_FORMAT:
            case SqlParser.GET_LOCK:
            case SqlParser.GLENGTH:
            case SqlParser.GREATEST:
            case SqlParser.GTID_SUBSET:
            case SqlParser.GTID_SUBTRACT:
            case SqlParser.HEX:
            case SqlParser.IFNULL:
            case SqlParser.INET6_ATON:
            case SqlParser.INET6_NTOA:
            case SqlParser.INET_ATON:
            case SqlParser.INET_NTOA:
            case SqlParser.INSTR:
            case SqlParser.INTERIORRINGN:
            case SqlParser.INTERSECTS:
            case SqlParser.ISCLOSED:
            case SqlParser.ISEMPTY:
            case SqlParser.ISNULL:
            case SqlParser.ISSIMPLE:
            case SqlParser.IS_FREE_LOCK:
            case SqlParser.IS_IPV4:
            case SqlParser.IS_IPV4_COMPAT:
            case SqlParser.IS_IPV4_MAPPED:
            case SqlParser.IS_IPV6:
            case SqlParser.IS_USED_LOCK:
            case SqlParser.LAST_INSERT_ID:
            case SqlParser.LCASE:
            case SqlParser.LEAST:
            case SqlParser.LENGTH:
            case SqlParser.LINEFROMTEXT:
            case SqlParser.LINEFROMWKB:
            case SqlParser.LINESTRINGFROMTEXT:
            case SqlParser.LINESTRINGFROMWKB:
            case SqlParser.LN:
            case SqlParser.LOAD_FILE:
            case SqlParser.LOCATE:
            case SqlParser.LOG:
            case SqlParser.LOG10:
            case SqlParser.LOG2:
            case SqlParser.LOWER:
            case SqlParser.LPAD:
            case SqlParser.LTRIM:
            case SqlParser.MAKEDATE:
            case SqlParser.MAKETIME:
            case SqlParser.MAKE_SET:
            case SqlParser.MASTER_POS_WAIT:
            case SqlParser.MBRCONTAINS:
            case SqlParser.MBRDISJOINT:
            case SqlParser.MBREQUAL:
            case SqlParser.MBRINTERSECTS:
            case SqlParser.MBROVERLAPS:
            case SqlParser.MBRTOUCHES:
            case SqlParser.MBRWITHIN:
            case SqlParser.MD5:
            case SqlParser.MLINEFROMTEXT:
            case SqlParser.MLINEFROMWKB:
            case SqlParser.MONTHNAME:
            case SqlParser.MPOINTFROMTEXT:
            case SqlParser.MPOINTFROMWKB:
            case SqlParser.MPOLYFROMTEXT:
            case SqlParser.MPOLYFROMWKB:
            case SqlParser.MULTILINESTRINGFROMTEXT:
            case SqlParser.MULTILINESTRINGFROMWKB:
            case SqlParser.MULTIPOINTFROMTEXT:
            case SqlParser.MULTIPOINTFROMWKB:
            case SqlParser.MULTIPOLYGONFROMTEXT:
            case SqlParser.MULTIPOLYGONFROMWKB:
            case SqlParser.NAME_CONST:
            case SqlParser.NULLIF:
            case SqlParser.NUMGEOMETRIES:
            case SqlParser.NUMINTERIORRINGS:
            case SqlParser.NUMPOINTS:
            case SqlParser.OCT:
            case SqlParser.OCTET_LENGTH:
            case SqlParser.ORD:
            case SqlParser.OVERLAPS:
            case SqlParser.PERIOD_ADD:
            case SqlParser.PERIOD_DIFF:
            case SqlParser.PI:
            case SqlParser.POINTFROMTEXT:
            case SqlParser.POINTFROMWKB:
            case SqlParser.POINTN:
            case SqlParser.POLYFROMTEXT:
            case SqlParser.POLYFROMWKB:
            case SqlParser.POLYGONFROMTEXT:
            case SqlParser.POLYGONFROMWKB:
            case SqlParser.POW:
            case SqlParser.POWER:
            case SqlParser.QUOTE:
            case SqlParser.RADIANS:
            case SqlParser.RAND:
            case SqlParser.RANDOM_BYTES:
            case SqlParser.RELEASE_LOCK:
            case SqlParser.REVERSE:
            case SqlParser.ROUND:
            case SqlParser.ROW_COUNT:
            case SqlParser.RPAD:
            case SqlParser.RTRIM:
            case SqlParser.SEC_TO_TIME:
            case SqlParser.SESSION_USER:
            case SqlParser.SHA:
            case SqlParser.SHA1:
            case SqlParser.SHA2:
            case SqlParser.SCHEMA_NAME:
            case SqlParser.SIGN:
            case SqlParser.SIN:
            case SqlParser.SLEEP:
            case SqlParser.SOUNDEX:
            case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
            case SqlParser.SQRT:
            case SqlParser.SRID:
            case SqlParser.STARTPOINT:
            case SqlParser.STRCMP:
            case SqlParser.STR_TO_DATE:
            case SqlParser.ST_AREA:
            case SqlParser.ST_ASBINARY:
            case SqlParser.ST_ASTEXT:
            case SqlParser.ST_ASWKB:
            case SqlParser.ST_ASWKT:
            case SqlParser.ST_BUFFER:
            case SqlParser.ST_CENTROID:
            case SqlParser.ST_CONTAINS:
            case SqlParser.ST_CROSSES:
            case SqlParser.ST_DIFFERENCE:
            case SqlParser.ST_DIMENSION:
            case SqlParser.ST_DISJOINT:
            case SqlParser.ST_DISTANCE:
            case SqlParser.ST_ENDPOINT:
            case SqlParser.ST_ENVELOPE:
            case SqlParser.ST_EQUALS:
            case SqlParser.ST_EXTERIORRING:
            case SqlParser.ST_GEOMCOLLFROMTEXT:
            case SqlParser.ST_GEOMCOLLFROMTXT:
            case SqlParser.ST_GEOMCOLLFROMWKB:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.ST_GEOMETRYFROMTEXT:
            case SqlParser.ST_GEOMETRYFROMWKB:
            case SqlParser.ST_GEOMETRYN:
            case SqlParser.ST_GEOMETRYTYPE:
            case SqlParser.ST_GEOMFROMTEXT:
            case SqlParser.ST_GEOMFROMWKB:
            case SqlParser.ST_INTERIORRINGN:
            case SqlParser.ST_INTERSECTION:
            case SqlParser.ST_INTERSECTS:
            case SqlParser.ST_ISCLOSED:
            case SqlParser.ST_ISEMPTY:
            case SqlParser.ST_ISSIMPLE:
            case SqlParser.ST_LINEFROMTEXT:
            case SqlParser.ST_LINEFROMWKB:
            case SqlParser.ST_LINESTRINGFROMTEXT:
            case SqlParser.ST_LINESTRINGFROMWKB:
            case SqlParser.ST_NUMGEOMETRIES:
            case SqlParser.ST_NUMINTERIORRING:
            case SqlParser.ST_NUMINTERIORRINGS:
            case SqlParser.ST_NUMPOINTS:
            case SqlParser.ST_OVERLAPS:
            case SqlParser.ST_POINTFROMTEXT:
            case SqlParser.ST_POINTFROMWKB:
            case SqlParser.ST_POINTN:
            case SqlParser.ST_POLYFROMTEXT:
            case SqlParser.ST_POLYFROMWKB:
            case SqlParser.ST_POLYGONFROMTEXT:
            case SqlParser.ST_POLYGONFROMWKB:
            case SqlParser.ST_SRID:
            case SqlParser.ST_STARTPOINT:
            case SqlParser.ST_SYMDIFFERENCE:
            case SqlParser.ST_TOUCHES:
            case SqlParser.ST_UNION:
            case SqlParser.ST_WITHIN:
            case SqlParser.ST_X:
            case SqlParser.ST_Y:
            case SqlParser.SUBDATE:
            case SqlParser.SUBSTRING_INDEX:
            case SqlParser.SUBTIME:
            case SqlParser.SYSTEM_USER:
            case SqlParser.TAN:
            case SqlParser.TIMEDIFF:
            case SqlParser.TIMESTAMPADD:
            case SqlParser.TIMESTAMPDIFF:
            case SqlParser.TIME_FORMAT:
            case SqlParser.TIME_TO_SEC:
            case SqlParser.TOUCHES:
            case SqlParser.TO_BASE64:
            case SqlParser.TO_DAYS:
            case SqlParser.TO_SECONDS:
            case SqlParser.UCASE:
            case SqlParser.UNCOMPRESS:
            case SqlParser.UNCOMPRESSED_LENGTH:
            case SqlParser.UNHEX:
            case SqlParser.UNIX_TIMESTAMP:
            case SqlParser.UPDATEXML:
            case SqlParser.UPPER:
            case SqlParser.UUID:
            case SqlParser.UUID_SHORT:
            case SqlParser.VALIDATE_PASSWORD_STRENGTH:
            case SqlParser.VERSION:
            case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
            case SqlParser.WEEKDAY:
            case SqlParser.WEEKOFYEAR:
            case SqlParser.WEIGHT_STRING:
            case SqlParser.WITHIN:
            case SqlParser.YEARWEEK:
            case SqlParser.Y_FUNCTION:
            case SqlParser.X_FUNCTION:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
            case SqlParser.ID:
            case SqlParser.REVERSE_QUOTE_ID:
                this.state = 5167;
                this.uidList();
                break;
            case SqlParser.ALL:
                this.state = 5168;
                this.match(SqlParser.ALL);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            this.state = 5171;
            this.match(SqlParser.RR_BRACKET);
        }

        this.state = 5174;
        this.match(SqlParser.IN);
        this.state = 5175;
        localctx.schema = this.uid();
    } 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 FlushStatementContext(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_flushStatement;
    this.flushFormat = null; // Token
    return this;
}

FlushStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FlushStatementContext.prototype.constructor = FlushStatementContext;

FlushStatementContext.prototype.FLUSH = function() {
    return this.getToken(SqlParser.FLUSH, 0);
};

FlushStatementContext.prototype.flushOption = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(FlushOptionContext);
    } else {
        return this.getTypedRuleContext(FlushOptionContext,i);
    }
};

FlushStatementContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


FlushStatementContext.prototype.NO_WRITE_TO_BINLOG = function() {
    return this.getToken(SqlParser.NO_WRITE_TO_BINLOG, 0);
};

FlushStatementContext.prototype.LOCAL = function() {
    return this.getToken(SqlParser.LOCAL, 0);
};

FlushStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFlushStatement(this);
	}
};

FlushStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFlushStatement(this);
	}
};

FlushStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitFlushStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.FlushStatementContext = FlushStatementContext;

SqlParser.prototype.flushStatement = function() {

    var localctx = new FlushStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 460, SqlParser.RULE_flushStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5177;
        this.match(SqlParser.FLUSH);
        this.state = 5179;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.NO_WRITE_TO_BINLOG || _la===SqlParser.LOCAL) {
            this.state = 5178;
            localctx.flushFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.NO_WRITE_TO_BINLOG || _la===SqlParser.LOCAL)) {
                localctx.flushFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 5181;
        this.flushOption();
        this.state = 5186;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 5182;
            this.match(SqlParser.COMMA);
            this.state = 5183;
            this.flushOption();
            this.state = 5188;
            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 KillStatementContext(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_killStatement;
    this.connectionFormat = null; // Token
    return this;
}

KillStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
KillStatementContext.prototype.constructor = KillStatementContext;

KillStatementContext.prototype.KILL = function() {
    return this.getToken(SqlParser.KILL, 0);
};

KillStatementContext.prototype.decimalLiteral = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DecimalLiteralContext);
    } else {
        return this.getTypedRuleContext(DecimalLiteralContext,i);
    }
};

KillStatementContext.prototype.CONNECTION = function() {
    return this.getToken(SqlParser.CONNECTION, 0);
};

KillStatementContext.prototype.QUERY = function() {
    return this.getToken(SqlParser.QUERY, 0);
};

KillStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterKillStatement(this);
	}
};

KillStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitKillStatement(this);
	}
};

KillStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitKillStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.KillStatementContext = KillStatementContext;

SqlParser.prototype.killStatement = function() {

    var localctx = new KillStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 462, SqlParser.RULE_killStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5189;
        this.match(SqlParser.KILL);
        this.state = 5191;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.CONNECTION || _la===SqlParser.QUERY) {
            this.state = 5190;
            localctx.connectionFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.CONNECTION || _la===SqlParser.QUERY)) {
                localctx.connectionFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 5194; 
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        do {
            this.state = 5193;
            this.decimalLiteral();
            this.state = 5196; 
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        } while(((((_la - 1025)) & ~0x1f) == 0 && ((1 << (_la - 1025)) & ((1 << (SqlParser.ZERO_DECIMAL - 1025)) | (1 << (SqlParser.ONE_DECIMAL - 1025)) | (1 << (SqlParser.TWO_DECIMAL - 1025)) | (1 << (SqlParser.DECIMAL_LITERAL - 1025)))) !== 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 LoadIndexIntoCacheContext(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_loadIndexIntoCache;
    return this;
}

LoadIndexIntoCacheContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LoadIndexIntoCacheContext.prototype.constructor = LoadIndexIntoCacheContext;

LoadIndexIntoCacheContext.prototype.LOAD = function() {
    return this.getToken(SqlParser.LOAD, 0);
};

LoadIndexIntoCacheContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

LoadIndexIntoCacheContext.prototype.INTO = function() {
    return this.getToken(SqlParser.INTO, 0);
};

LoadIndexIntoCacheContext.prototype.CACHE = function() {
    return this.getToken(SqlParser.CACHE, 0);
};

LoadIndexIntoCacheContext.prototype.loadedTableIndexes = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(LoadedTableIndexesContext);
    } else {
        return this.getTypedRuleContext(LoadedTableIndexesContext,i);
    }
};

LoadIndexIntoCacheContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


LoadIndexIntoCacheContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLoadIndexIntoCache(this);
	}
};

LoadIndexIntoCacheContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLoadIndexIntoCache(this);
	}
};

LoadIndexIntoCacheContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLoadIndexIntoCache(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LoadIndexIntoCacheContext = LoadIndexIntoCacheContext;

SqlParser.prototype.loadIndexIntoCache = function() {

    var localctx = new LoadIndexIntoCacheContext(this, this._ctx, this.state);
    this.enterRule(localctx, 464, SqlParser.RULE_loadIndexIntoCache);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5198;
        this.match(SqlParser.LOAD);
        this.state = 5199;
        this.match(SqlParser.INDEX);
        this.state = 5200;
        this.match(SqlParser.INTO);
        this.state = 5201;
        this.match(SqlParser.CACHE);
        this.state = 5202;
        this.loadedTableIndexes();
        this.state = 5207;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 5203;
            this.match(SqlParser.COMMA);
            this.state = 5204;
            this.loadedTableIndexes();
            this.state = 5209;
            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 ResetStatementContext(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_resetStatement;
    return this;
}

ResetStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ResetStatementContext.prototype.constructor = ResetStatementContext;

ResetStatementContext.prototype.RESET = function() {
    return this.getToken(SqlParser.RESET, 0);
};

ResetStatementContext.prototype.QUERY = function() {
    return this.getToken(SqlParser.QUERY, 0);
};

ResetStatementContext.prototype.CACHE = function() {
    return this.getToken(SqlParser.CACHE, 0);
};

ResetStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterResetStatement(this);
	}
};

ResetStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitResetStatement(this);
	}
};

ResetStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitResetStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ResetStatementContext = ResetStatementContext;

SqlParser.prototype.resetStatement = function() {

    var localctx = new ResetStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 466, SqlParser.RULE_resetStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5210;
        this.match(SqlParser.RESET);
        this.state = 5211;
        this.match(SqlParser.QUERY);
        this.state = 5212;
        this.match(SqlParser.CACHE);
    } 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 ShutdownStatementContext(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_shutdownStatement;
    return this;
}

ShutdownStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ShutdownStatementContext.prototype.constructor = ShutdownStatementContext;

ShutdownStatementContext.prototype.SHUTDOWN = function() {
    return this.getToken(SqlParser.SHUTDOWN, 0);
};

ShutdownStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterShutdownStatement(this);
	}
};

ShutdownStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitShutdownStatement(this);
	}
};

ShutdownStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitShutdownStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ShutdownStatementContext = ShutdownStatementContext;

SqlParser.prototype.shutdownStatement = function() {

    var localctx = new ShutdownStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 468, SqlParser.RULE_shutdownStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5214;
        this.match(SqlParser.SHUTDOWN);
    } 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 TableIndexesContext(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_tableIndexes;
    this.indexFormat = null; // Token
    return this;
}

TableIndexesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TableIndexesContext.prototype.constructor = TableIndexesContext;

TableIndexesContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

TableIndexesContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

TableIndexesContext.prototype.uidList = function() {
    return this.getTypedRuleContext(UidListContext,0);
};

TableIndexesContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

TableIndexesContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

TableIndexesContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

TableIndexesContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableIndexes(this);
	}
};

TableIndexesContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableIndexes(this);
	}
};

TableIndexesContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableIndexes(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.TableIndexesContext = TableIndexesContext;

SqlParser.prototype.tableIndexes = function() {

    var localctx = new TableIndexesContext(this, this._ctx, this.state);
    this.enterRule(localctx, 470, SqlParser.RULE_tableIndexes);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5216;
        this.tableName();
        this.state = 5224;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.INDEX || _la===SqlParser.KEY || _la===SqlParser.LR_BRACKET) {
            this.state = 5218;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.INDEX || _la===SqlParser.KEY) {
                this.state = 5217;
                localctx.indexFormat = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.INDEX || _la===SqlParser.KEY)) {
                    localctx.indexFormat = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 5220;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5221;
            this.uidList();
            this.state = 5222;
            this.match(SqlParser.RR_BRACKET);
        }

    } 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 FlushOptionContext(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_flushOption;
    return this;
}

FlushOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FlushOptionContext.prototype.constructor = FlushOptionContext;


 
FlushOptionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function TableFlushOptionContext(parser, ctx) {
	FlushOptionContext.call(this, parser);
    FlushOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TableFlushOptionContext.prototype = Object.create(FlushOptionContext.prototype);
TableFlushOptionContext.prototype.constructor = TableFlushOptionContext;

SqlParser.TableFlushOptionContext = TableFlushOptionContext;

TableFlushOptionContext.prototype.TABLES = function() {
    return this.getToken(SqlParser.TABLES, 0);
};

TableFlushOptionContext.prototype.tables = function() {
    return this.getTypedRuleContext(TablesContext,0);
};

TableFlushOptionContext.prototype.flushTableOption = function() {
    return this.getTypedRuleContext(FlushTableOptionContext,0);
};
TableFlushOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableFlushOption(this);
	}
};

TableFlushOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableFlushOption(this);
	}
};

TableFlushOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableFlushOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ChannelFlushOptionContext(parser, ctx) {
	FlushOptionContext.call(this, parser);
    FlushOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ChannelFlushOptionContext.prototype = Object.create(FlushOptionContext.prototype);
ChannelFlushOptionContext.prototype.constructor = ChannelFlushOptionContext;

SqlParser.ChannelFlushOptionContext = ChannelFlushOptionContext;

ChannelFlushOptionContext.prototype.RELAY = function() {
    return this.getToken(SqlParser.RELAY, 0);
};

ChannelFlushOptionContext.prototype.LOGS = function() {
    return this.getToken(SqlParser.LOGS, 0);
};

ChannelFlushOptionContext.prototype.channelOption = function() {
    return this.getTypedRuleContext(ChannelOptionContext,0);
};
ChannelFlushOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterChannelFlushOption(this);
	}
};

ChannelFlushOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitChannelFlushOption(this);
	}
};

ChannelFlushOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitChannelFlushOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SimpleFlushOptionContext(parser, ctx) {
	FlushOptionContext.call(this, parser);
    FlushOptionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SimpleFlushOptionContext.prototype = Object.create(FlushOptionContext.prototype);
SimpleFlushOptionContext.prototype.constructor = SimpleFlushOptionContext;

SqlParser.SimpleFlushOptionContext = SimpleFlushOptionContext;

SimpleFlushOptionContext.prototype.DES_KEY_FILE = function() {
    return this.getToken(SqlParser.DES_KEY_FILE, 0);
};

SimpleFlushOptionContext.prototype.HOSTS = function() {
    return this.getToken(SqlParser.HOSTS, 0);
};

SimpleFlushOptionContext.prototype.LOGS = function() {
    return this.getToken(SqlParser.LOGS, 0);
};

SimpleFlushOptionContext.prototype.OPTIMIZER_COSTS = function() {
    return this.getToken(SqlParser.OPTIMIZER_COSTS, 0);
};

SimpleFlushOptionContext.prototype.PRIVILEGES = function() {
    return this.getToken(SqlParser.PRIVILEGES, 0);
};

SimpleFlushOptionContext.prototype.QUERY = function() {
    return this.getToken(SqlParser.QUERY, 0);
};

SimpleFlushOptionContext.prototype.CACHE = function() {
    return this.getToken(SqlParser.CACHE, 0);
};

SimpleFlushOptionContext.prototype.STATUS = function() {
    return this.getToken(SqlParser.STATUS, 0);
};

SimpleFlushOptionContext.prototype.USER_RESOURCES = function() {
    return this.getToken(SqlParser.USER_RESOURCES, 0);
};

SimpleFlushOptionContext.prototype.TABLES = function() {
    return this.getToken(SqlParser.TABLES, 0);
};

SimpleFlushOptionContext.prototype.WITH = function() {
    return this.getToken(SqlParser.WITH, 0);
};

SimpleFlushOptionContext.prototype.READ = function() {
    return this.getToken(SqlParser.READ, 0);
};

SimpleFlushOptionContext.prototype.LOCK = function() {
    return this.getToken(SqlParser.LOCK, 0);
};

SimpleFlushOptionContext.prototype.BINARY = function() {
    return this.getToken(SqlParser.BINARY, 0);
};

SimpleFlushOptionContext.prototype.ENGINE = function() {
    return this.getToken(SqlParser.ENGINE, 0);
};

SimpleFlushOptionContext.prototype.ERROR = function() {
    return this.getToken(SqlParser.ERROR, 0);
};

SimpleFlushOptionContext.prototype.GENERAL = function() {
    return this.getToken(SqlParser.GENERAL, 0);
};

SimpleFlushOptionContext.prototype.RELAY = function() {
    return this.getToken(SqlParser.RELAY, 0);
};

SimpleFlushOptionContext.prototype.SLOW = function() {
    return this.getToken(SqlParser.SLOW, 0);
};
SimpleFlushOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSimpleFlushOption(this);
	}
};

SimpleFlushOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSimpleFlushOption(this);
	}
};

SimpleFlushOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSimpleFlushOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.FlushOptionContext = FlushOptionContext;

SqlParser.prototype.flushOption = function() {

    var localctx = new FlushOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 472, SqlParser.RULE_flushOption);
    var _la = 0; // Token type
    try {
        this.state = 5256;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,755,this._ctx);
        switch(la_) {
        case 1:
            localctx = new SimpleFlushOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 5244;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.DES_KEY_FILE:
                this.state = 5226;
                this.match(SqlParser.DES_KEY_FILE);
                break;
            case SqlParser.HOSTS:
                this.state = 5227;
                this.match(SqlParser.HOSTS);
                break;
            case SqlParser.BINARY:
            case SqlParser.ENGINE:
            case SqlParser.ERROR:
            case SqlParser.GENERAL:
            case SqlParser.LOGS:
            case SqlParser.RELAY:
            case SqlParser.SLOW:
                this.state = 5229;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.BINARY || ((((_la - 342)) & ~0x1f) == 0 && ((1 << (_la - 342)) & ((1 << (SqlParser.ENGINE - 342)) | (1 << (SqlParser.ERROR - 342)) | (1 << (SqlParser.GENERAL - 342)))) !== 0) || _la===SqlParser.RELAY || _la===SqlParser.SLOW) {
                    this.state = 5228;
                    _la = this._input.LA(1);
                    if(!(_la===SqlParser.BINARY || ((((_la - 342)) & ~0x1f) == 0 && ((1 << (_la - 342)) & ((1 << (SqlParser.ENGINE - 342)) | (1 << (SqlParser.ERROR - 342)) | (1 << (SqlParser.GENERAL - 342)))) !== 0) || _la===SqlParser.RELAY || _la===SqlParser.SLOW)) {
                    this._errHandler.recoverInline(this);
                    }
                    else {
                    	this._errHandler.reportMatch(this);
                        this.consume();
                    }
                }

                this.state = 5231;
                this.match(SqlParser.LOGS);
                break;
            case SqlParser.OPTIMIZER_COSTS:
                this.state = 5232;
                this.match(SqlParser.OPTIMIZER_COSTS);
                break;
            case SqlParser.PRIVILEGES:
                this.state = 5233;
                this.match(SqlParser.PRIVILEGES);
                break;
            case SqlParser.QUERY:
                this.state = 5234;
                this.match(SqlParser.QUERY);
                this.state = 5235;
                this.match(SqlParser.CACHE);
                break;
            case SqlParser.STATUS:
                this.state = 5236;
                this.match(SqlParser.STATUS);
                break;
            case SqlParser.USER_RESOURCES:
                this.state = 5237;
                this.match(SqlParser.USER_RESOURCES);
                break;
            case SqlParser.TABLES:
                this.state = 5238;
                this.match(SqlParser.TABLES);
                this.state = 5242;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.WITH) {
                    this.state = 5239;
                    this.match(SqlParser.WITH);
                    this.state = 5240;
                    this.match(SqlParser.READ);
                    this.state = 5241;
                    this.match(SqlParser.LOCK);
                }

                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;

        case 2:
            localctx = new ChannelFlushOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 5246;
            this.match(SqlParser.RELAY);
            this.state = 5247;
            this.match(SqlParser.LOGS);
            this.state = 5249;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FOR) {
                this.state = 5248;
                this.channelOption();
            }

            break;

        case 3:
            localctx = new TableFlushOptionContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 5251;
            this.match(SqlParser.TABLES);
            this.state = 5252;
            this.tables();
            this.state = 5254;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FOR || _la===SqlParser.WITH) {
                this.state = 5253;
                this.flushTableOption();
            }

            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 FlushTableOptionContext(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_flushTableOption;
    return this;
}

FlushTableOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FlushTableOptionContext.prototype.constructor = FlushTableOptionContext;

FlushTableOptionContext.prototype.WITH = function() {
    return this.getToken(SqlParser.WITH, 0);
};

FlushTableOptionContext.prototype.READ = function() {
    return this.getToken(SqlParser.READ, 0);
};

FlushTableOptionContext.prototype.LOCK = function() {
    return this.getToken(SqlParser.LOCK, 0);
};

FlushTableOptionContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

FlushTableOptionContext.prototype.EXPORT = function() {
    return this.getToken(SqlParser.EXPORT, 0);
};

FlushTableOptionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFlushTableOption(this);
	}
};

FlushTableOptionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFlushTableOption(this);
	}
};

FlushTableOptionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitFlushTableOption(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.FlushTableOptionContext = FlushTableOptionContext;

SqlParser.prototype.flushTableOption = function() {

    var localctx = new FlushTableOptionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 474, SqlParser.RULE_flushTableOption);
    try {
        this.state = 5263;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.WITH:
            this.enterOuterAlt(localctx, 1);
            this.state = 5258;
            this.match(SqlParser.WITH);
            this.state = 5259;
            this.match(SqlParser.READ);
            this.state = 5260;
            this.match(SqlParser.LOCK);
            break;
        case SqlParser.FOR:
            this.enterOuterAlt(localctx, 2);
            this.state = 5261;
            this.match(SqlParser.FOR);
            this.state = 5262;
            this.match(SqlParser.EXPORT);
            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 LoadedTableIndexesContext(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_loadedTableIndexes;
    this.partitionList = null; // UidListContext
    this.indexFormat = null; // Token
    this.indexList = null; // UidListContext
    return this;
}

LoadedTableIndexesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LoadedTableIndexesContext.prototype.constructor = LoadedTableIndexesContext;

LoadedTableIndexesContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

LoadedTableIndexesContext.prototype.PARTITION = function() {
    return this.getToken(SqlParser.PARTITION, 0);
};

LoadedTableIndexesContext.prototype.LR_BRACKET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.LR_BRACKET);
    } else {
        return this.getToken(SqlParser.LR_BRACKET, i);
    }
};


LoadedTableIndexesContext.prototype.RR_BRACKET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.RR_BRACKET);
    } else {
        return this.getToken(SqlParser.RR_BRACKET, i);
    }
};


LoadedTableIndexesContext.prototype.IGNORE = function() {
    return this.getToken(SqlParser.IGNORE, 0);
};

LoadedTableIndexesContext.prototype.LEAVES = function() {
    return this.getToken(SqlParser.LEAVES, 0);
};

LoadedTableIndexesContext.prototype.uidList = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidListContext);
    } else {
        return this.getTypedRuleContext(UidListContext,i);
    }
};

LoadedTableIndexesContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};

LoadedTableIndexesContext.prototype.INDEX = function() {
    return this.getToken(SqlParser.INDEX, 0);
};

LoadedTableIndexesContext.prototype.KEY = function() {
    return this.getToken(SqlParser.KEY, 0);
};

LoadedTableIndexesContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLoadedTableIndexes(this);
	}
};

LoadedTableIndexesContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLoadedTableIndexes(this);
	}
};

LoadedTableIndexesContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLoadedTableIndexes(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LoadedTableIndexesContext = LoadedTableIndexesContext;

SqlParser.prototype.loadedTableIndexes = function() {

    var localctx = new LoadedTableIndexesContext(this, this._ctx, this.state);
    this.enterRule(localctx, 476, SqlParser.RULE_loadedTableIndexes);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5265;
        this.tableName();
        this.state = 5273;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.PARTITION) {
            this.state = 5266;
            this.match(SqlParser.PARTITION);
            this.state = 5267;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5270;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.CURRENT:
            case SqlParser.DATABASE:
            case SqlParser.DIAGNOSTICS:
            case SqlParser.LEFT:
            case SqlParser.NUMBER:
            case SqlParser.RIGHT:
            case SqlParser.STACKED:
            case SqlParser.DATE:
            case SqlParser.TIME:
            case SqlParser.TIMESTAMP:
            case SqlParser.DATETIME:
            case SqlParser.YEAR:
            case SqlParser.TEXT:
            case SqlParser.ENUM:
            case SqlParser.SERIAL:
            case SqlParser.JSON_VALID:
            case SqlParser.JSON_SCHEMA_VALID:
            case SqlParser.COUNT:
            case SqlParser.POSITION:
            case SqlParser.ACCOUNT:
            case SqlParser.ACTION:
            case SqlParser.AFTER:
            case SqlParser.AGGREGATE:
            case SqlParser.ALGORITHM:
            case SqlParser.ANY:
            case SqlParser.AT:
            case SqlParser.AUTHORS:
            case SqlParser.AUTOCOMMIT:
            case SqlParser.AUTOEXTEND_SIZE:
            case SqlParser.AUTO_INCREMENT:
            case SqlParser.AVG_ROW_LENGTH:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.BIT:
            case SqlParser.BLOCK:
            case SqlParser.BOOL:
            case SqlParser.BOOLEAN:
            case SqlParser.BTREE:
            case SqlParser.CACHE:
            case SqlParser.CASCADED:
            case SqlParser.CHAIN:
            case SqlParser.CHANGED:
            case SqlParser.CHANNEL:
            case SqlParser.CHECKSUM:
            case SqlParser.PAGE_CHECKSUM:
            case SqlParser.CIPHER:
            case SqlParser.CLASS_ORIGIN:
            case SqlParser.CLIENT:
            case SqlParser.CLOSE:
            case SqlParser.COALESCE:
            case SqlParser.CODE:
            case SqlParser.COLUMNS:
            case SqlParser.COLUMN_FORMAT:
            case SqlParser.COLUMN_NAME:
            case SqlParser.COMMENT:
            case SqlParser.COMMIT:
            case SqlParser.COMPACT:
            case SqlParser.COMPLETION:
            case SqlParser.COMPRESSED:
            case SqlParser.COMPRESSION:
            case SqlParser.CONCURRENT:
            case SqlParser.CONNECTION:
            case SqlParser.CONSISTENT:
            case SqlParser.CONSTRAINT_CATALOG:
            case SqlParser.CONSTRAINT_SCHEMA:
            case SqlParser.CONSTRAINT_NAME:
            case SqlParser.CONTAINS:
            case SqlParser.CONTEXT:
            case SqlParser.CONTRIBUTORS:
            case SqlParser.COPY:
            case SqlParser.CPU:
            case SqlParser.CURSOR_NAME:
            case SqlParser.DATA:
            case SqlParser.DATAFILE:
            case SqlParser.DEALLOCATE:
            case SqlParser.DEFAULT_AUTH:
            case SqlParser.DEFINER:
            case SqlParser.DELAY_KEY_WRITE:
            case SqlParser.DES_KEY_FILE:
            case SqlParser.DIRECTORY:
            case SqlParser.DISABLE:
            case SqlParser.DISCARD:
            case SqlParser.DISK:
            case SqlParser.DO:
            case SqlParser.DUMPFILE:
            case SqlParser.DUPLICATE:
            case SqlParser.DYNAMIC:
            case SqlParser.ENABLE:
            case SqlParser.ENCRYPTION:
            case SqlParser.END:
            case SqlParser.ENDS:
            case SqlParser.ENGINE:
            case SqlParser.ENGINES:
            case SqlParser.ERROR:
            case SqlParser.ERRORS:
            case SqlParser.ESCAPE:
            case SqlParser.EVEN:
            case SqlParser.EVENT:
            case SqlParser.EVENTS:
            case SqlParser.EVERY:
            case SqlParser.EXCHANGE:
            case SqlParser.EXCLUSIVE:
            case SqlParser.EXPIRE:
            case SqlParser.EXPORT:
            case SqlParser.EXTENDED:
            case SqlParser.EXTENT_SIZE:
            case SqlParser.FAST:
            case SqlParser.FAULTS:
            case SqlParser.FIELDS:
            case SqlParser.FILE_BLOCK_SIZE:
            case SqlParser.FILTER:
            case SqlParser.FIRST:
            case SqlParser.FIXED:
            case SqlParser.FLUSH:
            case SqlParser.FOLLOWS:
            case SqlParser.FOUND:
            case SqlParser.FULL:
            case SqlParser.FUNCTION:
            case SqlParser.GENERAL:
            case SqlParser.GLOBAL:
            case SqlParser.GRANTS:
            case SqlParser.GROUP_REPLICATION:
            case SqlParser.HANDLER:
            case SqlParser.HASH:
            case SqlParser.HELP:
            case SqlParser.HOST:
            case SqlParser.HOSTS:
            case SqlParser.IDENTIFIED:
            case SqlParser.IGNORE_SERVER_IDS:
            case SqlParser.IMPORT:
            case SqlParser.INDEXES:
            case SqlParser.INITIAL_SIZE:
            case SqlParser.INPLACE:
            case SqlParser.INSERT_METHOD:
            case SqlParser.INSTALL:
            case SqlParser.INSTANCE:
            case SqlParser.INVISIBLE:
            case SqlParser.INVOKER:
            case SqlParser.IO:
            case SqlParser.IO_THREAD:
            case SqlParser.IPC:
            case SqlParser.ISOLATION:
            case SqlParser.ISSUER:
            case SqlParser.JSON:
            case SqlParser.KEY_BLOCK_SIZE:
            case SqlParser.LANGUAGE:
            case SqlParser.LAST:
            case SqlParser.LEAVES:
            case SqlParser.LESS:
            case SqlParser.LEVEL:
            case SqlParser.LIST:
            case SqlParser.LOCAL:
            case SqlParser.LOGFILE:
            case SqlParser.LOGS:
            case SqlParser.MASTER:
            case SqlParser.MASTER_AUTO_POSITION:
            case SqlParser.MASTER_CONNECT_RETRY:
            case SqlParser.MASTER_DELAY:
            case SqlParser.MASTER_HEARTBEAT_PERIOD:
            case SqlParser.MASTER_HOST:
            case SqlParser.MASTER_LOG_FILE:
            case SqlParser.MASTER_LOG_POS:
            case SqlParser.MASTER_PASSWORD:
            case SqlParser.MASTER_PORT:
            case SqlParser.MASTER_RETRY_COUNT:
            case SqlParser.MASTER_SSL:
            case SqlParser.MASTER_SSL_CA:
            case SqlParser.MASTER_SSL_CAPATH:
            case SqlParser.MASTER_SSL_CERT:
            case SqlParser.MASTER_SSL_CIPHER:
            case SqlParser.MASTER_SSL_CRL:
            case SqlParser.MASTER_SSL_CRLPATH:
            case SqlParser.MASTER_SSL_KEY:
            case SqlParser.MASTER_TLS_VERSION:
            case SqlParser.MASTER_USER:
            case SqlParser.MAX_CONNECTIONS_PER_HOUR:
            case SqlParser.MAX_QUERIES_PER_HOUR:
            case SqlParser.MAX_ROWS:
            case SqlParser.MAX_SIZE:
            case SqlParser.MAX_UPDATES_PER_HOUR:
            case SqlParser.MAX_USER_CONNECTIONS:
            case SqlParser.MEDIUM:
            case SqlParser.MERGE:
            case SqlParser.MESSAGE_TEXT:
            case SqlParser.MID:
            case SqlParser.MIGRATE:
            case SqlParser.MIN_ROWS:
            case SqlParser.MODE:
            case SqlParser.MODIFY:
            case SqlParser.MUTEX:
            case SqlParser.MYSQL:
            case SqlParser.MYSQL_ERRNO:
            case SqlParser.NAME:
            case SqlParser.NAMES:
            case SqlParser.NCHAR:
            case SqlParser.NEVER:
            case SqlParser.NEXT:
            case SqlParser.NO:
            case SqlParser.NODEGROUP:
            case SqlParser.NONE:
            case SqlParser.OFFLINE:
            case SqlParser.OFFSET:
            case SqlParser.OJ:
            case SqlParser.OLD_PASSWORD:
            case SqlParser.ONE:
            case SqlParser.ONLINE:
            case SqlParser.ONLY:
            case SqlParser.OPEN:
            case SqlParser.OPTIMIZER_COSTS:
            case SqlParser.OPTIONS:
            case SqlParser.OWNER:
            case SqlParser.PACK_KEYS:
            case SqlParser.PAGE:
            case SqlParser.PARSER:
            case SqlParser.PARTIAL:
            case SqlParser.PARTITIONING:
            case SqlParser.PARTITIONS:
            case SqlParser.PASSWORD:
            case SqlParser.PHASE:
            case SqlParser.PLUGIN:
            case SqlParser.PLUGIN_DIR:
            case SqlParser.PLUGINS:
            case SqlParser.PORT:
            case SqlParser.PRECEDES:
            case SqlParser.PREPARE:
            case SqlParser.PRESERVE:
            case SqlParser.PREV:
            case SqlParser.PROCESSLIST:
            case SqlParser.PROFILE:
            case SqlParser.PROFILES:
            case SqlParser.PROXY:
            case SqlParser.QUERY:
            case SqlParser.QUICK:
            case SqlParser.REBUILD:
            case SqlParser.RECOVER:
            case SqlParser.REDO_BUFFER_SIZE:
            case SqlParser.REDUNDANT:
            case SqlParser.RELAY:
            case SqlParser.RELAY_LOG_FILE:
            case SqlParser.RELAY_LOG_POS:
            case SqlParser.RELAYLOG:
            case SqlParser.REMOVE:
            case SqlParser.REORGANIZE:
            case SqlParser.REPAIR:
            case SqlParser.REPLICATE_DO_DB:
            case SqlParser.REPLICATE_DO_TABLE:
            case SqlParser.REPLICATE_IGNORE_DB:
            case SqlParser.REPLICATE_IGNORE_TABLE:
            case SqlParser.REPLICATE_REWRITE_DB:
            case SqlParser.REPLICATE_WILD_DO_TABLE:
            case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
            case SqlParser.REPLICATION:
            case SqlParser.RESET:
            case SqlParser.RESUME:
            case SqlParser.RETURNED_SQLSTATE:
            case SqlParser.RETURNS:
            case SqlParser.ROLE:
            case SqlParser.ROLLBACK:
            case SqlParser.ROLLUP:
            case SqlParser.ROTATE:
            case SqlParser.ROW:
            case SqlParser.ROWS:
            case SqlParser.ROW_FORMAT:
            case SqlParser.SAVEPOINT:
            case SqlParser.SCHEDULE:
            case SqlParser.SECURITY:
            case SqlParser.SERVER:
            case SqlParser.SESSION:
            case SqlParser.SHARE:
            case SqlParser.SHARED:
            case SqlParser.SIGNED:
            case SqlParser.SIMPLE:
            case SqlParser.SLAVE:
            case SqlParser.SLOW:
            case SqlParser.SNAPSHOT:
            case SqlParser.SOCKET:
            case SqlParser.SOME:
            case SqlParser.SONAME:
            case SqlParser.SOUNDS:
            case SqlParser.SOURCE:
            case SqlParser.SQL_AFTER_GTIDS:
            case SqlParser.SQL_AFTER_MTS_GAPS:
            case SqlParser.SQL_BEFORE_GTIDS:
            case SqlParser.SQL_BUFFER_RESULT:
            case SqlParser.SQL_CACHE:
            case SqlParser.SQL_NO_CACHE:
            case SqlParser.SQL_THREAD:
            case SqlParser.START:
            case SqlParser.STARTS:
            case SqlParser.STATS_AUTO_RECALC:
            case SqlParser.STATS_PERSISTENT:
            case SqlParser.STATS_SAMPLE_PAGES:
            case SqlParser.STATUS:
            case SqlParser.STOP:
            case SqlParser.STORAGE:
            case SqlParser.STRING:
            case SqlParser.SUBCLASS_ORIGIN:
            case SqlParser.SUBJECT:
            case SqlParser.SUBPARTITION:
            case SqlParser.SUBPARTITIONS:
            case SqlParser.SUSPEND:
            case SqlParser.SWAPS:
            case SqlParser.SWITCHES:
            case SqlParser.TABLE_NAME:
            case SqlParser.TABLESPACE:
            case SqlParser.TEMPORARY:
            case SqlParser.TEMPTABLE:
            case SqlParser.THAN:
            case SqlParser.TRADITIONAL:
            case SqlParser.TRANSACTION:
            case SqlParser.TRANSACTIONAL:
            case SqlParser.TRIGGERS:
            case SqlParser.TRUNCATE:
            case SqlParser.UNDEFINED:
            case SqlParser.UNDOFILE:
            case SqlParser.UNDO_BUFFER_SIZE:
            case SqlParser.UNINSTALL:
            case SqlParser.UNKNOWN:
            case SqlParser.UNTIL:
            case SqlParser.UPGRADE:
            case SqlParser.USER:
            case SqlParser.USE_FRM:
            case SqlParser.USER_RESOURCES:
            case SqlParser.VALIDATION:
            case SqlParser.VALUE:
            case SqlParser.VARIABLES:
            case SqlParser.VIEW:
            case SqlParser.VISIBLE:
            case SqlParser.WAIT:
            case SqlParser.WARNINGS:
            case SqlParser.WITHOUT:
            case SqlParser.WORK:
            case SqlParser.WRAPPER:
            case SqlParser.X509:
            case SqlParser.XA:
            case SqlParser.XML:
            case SqlParser.INTERNAL:
            case SqlParser.QUARTER:
            case SqlParser.MONTH:
            case SqlParser.DAY:
            case SqlParser.HOUR:
            case SqlParser.MINUTE:
            case SqlParser.WEEK:
            case SqlParser.SECOND:
            case SqlParser.MICROSECOND:
            case SqlParser.TABLES:
            case SqlParser.ROUTINE:
            case SqlParser.EXECUTE:
            case SqlParser.FILE:
            case SqlParser.PROCESS:
            case SqlParser.RELOAD:
            case SqlParser.SHUTDOWN:
            case SqlParser.SUPER:
            case SqlParser.PRIVILEGES:
            case SqlParser.AUDIT_ADMIN:
            case SqlParser.BACKUP_ADMIN:
            case SqlParser.BINLOG_ADMIN:
            case SqlParser.BINLOG_ENCRYPTION_ADMIN:
            case SqlParser.CLONE_ADMIN:
            case SqlParser.CONNECTION_ADMIN:
            case SqlParser.ENCRYPTION_KEY_ADMIN:
            case SqlParser.FIREWALL_ADMIN:
            case SqlParser.FIREWALL_USER:
            case SqlParser.GROUP_REPLICATION_ADMIN:
            case SqlParser.INNODB_REDO_LOG_ARCHIVE:
            case SqlParser.NDB_STORED_USER:
            case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
            case SqlParser.REPLICATION_APPLIER:
            case SqlParser.REPLICATION_SLAVE_ADMIN:
            case SqlParser.RESOURCE_GROUP_ADMIN:
            case SqlParser.RESOURCE_GROUP_USER:
            case SqlParser.ROLE_ADMIN:
            case SqlParser.SESSION_VARIABLES_ADMIN:
            case SqlParser.SET_USER_ID:
            case SqlParser.SHOW_ROUTINE:
            case SqlParser.SYSTEM_VARIABLES_ADMIN:
            case SqlParser.TABLE_ENCRYPTION_ADMIN:
            case SqlParser.VERSION_TOKEN_ADMIN:
            case SqlParser.XA_RECOVER_ADMIN:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.ARCHIVE:
            case SqlParser.BLACKHOLE:
            case SqlParser.CSV:
            case SqlParser.FEDERATED:
            case SqlParser.INNODB:
            case SqlParser.MEMORY:
            case SqlParser.MRG_MYISAM:
            case SqlParser.MYISAM:
            case SqlParser.NDB:
            case SqlParser.NDBCLUSTER:
            case SqlParser.PERFORMANCE_SCHEMA:
            case SqlParser.TOKUDB:
            case SqlParser.REPEATABLE:
            case SqlParser.COMMITTED:
            case SqlParser.UNCOMMITTED:
            case SqlParser.SERIALIZABLE:
            case SqlParser.GEOMETRYCOLLECTION:
            case SqlParser.LINESTRING:
            case SqlParser.MULTILINESTRING:
            case SqlParser.MULTIPOINT:
            case SqlParser.MULTIPOLYGON:
            case SqlParser.POINT:
            case SqlParser.POLYGON:
            case SqlParser.ABS:
            case SqlParser.ACOS:
            case SqlParser.ADDDATE:
            case SqlParser.ADDTIME:
            case SqlParser.AES_DECRYPT:
            case SqlParser.AES_ENCRYPT:
            case SqlParser.AREA:
            case SqlParser.ASBINARY:
            case SqlParser.ASIN:
            case SqlParser.ASTEXT:
            case SqlParser.ASWKB:
            case SqlParser.ASWKT:
            case SqlParser.ASYMMETRIC_DECRYPT:
            case SqlParser.ASYMMETRIC_DERIVE:
            case SqlParser.ASYMMETRIC_ENCRYPT:
            case SqlParser.ASYMMETRIC_SIGN:
            case SqlParser.ASYMMETRIC_VERIFY:
            case SqlParser.ATAN:
            case SqlParser.ATAN2:
            case SqlParser.BENCHMARK:
            case SqlParser.BIN:
            case SqlParser.BIT_COUNT:
            case SqlParser.BIT_LENGTH:
            case SqlParser.BUFFER:
            case SqlParser.CATALOG_NAME:
            case SqlParser.CEIL:
            case SqlParser.CEILING:
            case SqlParser.CENTROID:
            case SqlParser.CHARACTER_LENGTH:
            case SqlParser.CHARSET:
            case SqlParser.CHAR_LENGTH:
            case SqlParser.COERCIBILITY:
            case SqlParser.COLLATION:
            case SqlParser.COMPRESS:
            case SqlParser.CONCAT:
            case SqlParser.CONCAT_WS:
            case SqlParser.CONNECTION_ID:
            case SqlParser.CONV:
            case SqlParser.CONVERT_TZ:
            case SqlParser.COS:
            case SqlParser.COT:
            case SqlParser.CRC32:
            case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
            case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
            case SqlParser.CREATE_DH_PARAMETERS:
            case SqlParser.CREATE_DIGEST:
            case SqlParser.CROSSES:
            case SqlParser.DATEDIFF:
            case SqlParser.DATE_FORMAT:
            case SqlParser.DAYNAME:
            case SqlParser.DAYOFMONTH:
            case SqlParser.DAYOFWEEK:
            case SqlParser.DAYOFYEAR:
            case SqlParser.DECODE:
            case SqlParser.DEGREES:
            case SqlParser.DES_DECRYPT:
            case SqlParser.DES_ENCRYPT:
            case SqlParser.DIMENSION:
            case SqlParser.DISJOINT:
            case SqlParser.ELT:
            case SqlParser.ENCODE:
            case SqlParser.ENCRYPT:
            case SqlParser.ENDPOINT:
            case SqlParser.ENVELOPE:
            case SqlParser.EQUALS:
            case SqlParser.EXP:
            case SqlParser.EXPORT_SET:
            case SqlParser.EXTERIORRING:
            case SqlParser.EXTRACTVALUE:
            case SqlParser.FIELD:
            case SqlParser.FIND_IN_SET:
            case SqlParser.FLOOR:
            case SqlParser.FORMAT:
            case SqlParser.FOUND_ROWS:
            case SqlParser.FROM_BASE64:
            case SqlParser.FROM_DAYS:
            case SqlParser.FROM_UNIXTIME:
            case SqlParser.GEOMCOLLFROMTEXT:
            case SqlParser.GEOMCOLLFROMWKB:
            case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.GEOMETRYFROMTEXT:
            case SqlParser.GEOMETRYFROMWKB:
            case SqlParser.GEOMETRYN:
            case SqlParser.GEOMETRYTYPE:
            case SqlParser.GEOMFROMTEXT:
            case SqlParser.GEOMFROMWKB:
            case SqlParser.GET_FORMAT:
            case SqlParser.GET_LOCK:
            case SqlParser.GLENGTH:
            case SqlParser.GREATEST:
            case SqlParser.GTID_SUBSET:
            case SqlParser.GTID_SUBTRACT:
            case SqlParser.HEX:
            case SqlParser.IFNULL:
            case SqlParser.INET6_ATON:
            case SqlParser.INET6_NTOA:
            case SqlParser.INET_ATON:
            case SqlParser.INET_NTOA:
            case SqlParser.INSTR:
            case SqlParser.INTERIORRINGN:
            case SqlParser.INTERSECTS:
            case SqlParser.ISCLOSED:
            case SqlParser.ISEMPTY:
            case SqlParser.ISNULL:
            case SqlParser.ISSIMPLE:
            case SqlParser.IS_FREE_LOCK:
            case SqlParser.IS_IPV4:
            case SqlParser.IS_IPV4_COMPAT:
            case SqlParser.IS_IPV4_MAPPED:
            case SqlParser.IS_IPV6:
            case SqlParser.IS_USED_LOCK:
            case SqlParser.LAST_INSERT_ID:
            case SqlParser.LCASE:
            case SqlParser.LEAST:
            case SqlParser.LENGTH:
            case SqlParser.LINEFROMTEXT:
            case SqlParser.LINEFROMWKB:
            case SqlParser.LINESTRINGFROMTEXT:
            case SqlParser.LINESTRINGFROMWKB:
            case SqlParser.LN:
            case SqlParser.LOAD_FILE:
            case SqlParser.LOCATE:
            case SqlParser.LOG:
            case SqlParser.LOG10:
            case SqlParser.LOG2:
            case SqlParser.LOWER:
            case SqlParser.LPAD:
            case SqlParser.LTRIM:
            case SqlParser.MAKEDATE:
            case SqlParser.MAKETIME:
            case SqlParser.MAKE_SET:
            case SqlParser.MASTER_POS_WAIT:
            case SqlParser.MBRCONTAINS:
            case SqlParser.MBRDISJOINT:
            case SqlParser.MBREQUAL:
            case SqlParser.MBRINTERSECTS:
            case SqlParser.MBROVERLAPS:
            case SqlParser.MBRTOUCHES:
            case SqlParser.MBRWITHIN:
            case SqlParser.MD5:
            case SqlParser.MLINEFROMTEXT:
            case SqlParser.MLINEFROMWKB:
            case SqlParser.MONTHNAME:
            case SqlParser.MPOINTFROMTEXT:
            case SqlParser.MPOINTFROMWKB:
            case SqlParser.MPOLYFROMTEXT:
            case SqlParser.MPOLYFROMWKB:
            case SqlParser.MULTILINESTRINGFROMTEXT:
            case SqlParser.MULTILINESTRINGFROMWKB:
            case SqlParser.MULTIPOINTFROMTEXT:
            case SqlParser.MULTIPOINTFROMWKB:
            case SqlParser.MULTIPOLYGONFROMTEXT:
            case SqlParser.MULTIPOLYGONFROMWKB:
            case SqlParser.NAME_CONST:
            case SqlParser.NULLIF:
            case SqlParser.NUMGEOMETRIES:
            case SqlParser.NUMINTERIORRINGS:
            case SqlParser.NUMPOINTS:
            case SqlParser.OCT:
            case SqlParser.OCTET_LENGTH:
            case SqlParser.ORD:
            case SqlParser.OVERLAPS:
            case SqlParser.PERIOD_ADD:
            case SqlParser.PERIOD_DIFF:
            case SqlParser.PI:
            case SqlParser.POINTFROMTEXT:
            case SqlParser.POINTFROMWKB:
            case SqlParser.POINTN:
            case SqlParser.POLYFROMTEXT:
            case SqlParser.POLYFROMWKB:
            case SqlParser.POLYGONFROMTEXT:
            case SqlParser.POLYGONFROMWKB:
            case SqlParser.POW:
            case SqlParser.POWER:
            case SqlParser.QUOTE:
            case SqlParser.RADIANS:
            case SqlParser.RAND:
            case SqlParser.RANDOM_BYTES:
            case SqlParser.RELEASE_LOCK:
            case SqlParser.REVERSE:
            case SqlParser.ROUND:
            case SqlParser.ROW_COUNT:
            case SqlParser.RPAD:
            case SqlParser.RTRIM:
            case SqlParser.SEC_TO_TIME:
            case SqlParser.SESSION_USER:
            case SqlParser.SHA:
            case SqlParser.SHA1:
            case SqlParser.SHA2:
            case SqlParser.SCHEMA_NAME:
            case SqlParser.SIGN:
            case SqlParser.SIN:
            case SqlParser.SLEEP:
            case SqlParser.SOUNDEX:
            case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
            case SqlParser.SQRT:
            case SqlParser.SRID:
            case SqlParser.STARTPOINT:
            case SqlParser.STRCMP:
            case SqlParser.STR_TO_DATE:
            case SqlParser.ST_AREA:
            case SqlParser.ST_ASBINARY:
            case SqlParser.ST_ASTEXT:
            case SqlParser.ST_ASWKB:
            case SqlParser.ST_ASWKT:
            case SqlParser.ST_BUFFER:
            case SqlParser.ST_CENTROID:
            case SqlParser.ST_CONTAINS:
            case SqlParser.ST_CROSSES:
            case SqlParser.ST_DIFFERENCE:
            case SqlParser.ST_DIMENSION:
            case SqlParser.ST_DISJOINT:
            case SqlParser.ST_DISTANCE:
            case SqlParser.ST_ENDPOINT:
            case SqlParser.ST_ENVELOPE:
            case SqlParser.ST_EQUALS:
            case SqlParser.ST_EXTERIORRING:
            case SqlParser.ST_GEOMCOLLFROMTEXT:
            case SqlParser.ST_GEOMCOLLFROMTXT:
            case SqlParser.ST_GEOMCOLLFROMWKB:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.ST_GEOMETRYFROMTEXT:
            case SqlParser.ST_GEOMETRYFROMWKB:
            case SqlParser.ST_GEOMETRYN:
            case SqlParser.ST_GEOMETRYTYPE:
            case SqlParser.ST_GEOMFROMTEXT:
            case SqlParser.ST_GEOMFROMWKB:
            case SqlParser.ST_INTERIORRINGN:
            case SqlParser.ST_INTERSECTION:
            case SqlParser.ST_INTERSECTS:
            case SqlParser.ST_ISCLOSED:
            case SqlParser.ST_ISEMPTY:
            case SqlParser.ST_ISSIMPLE:
            case SqlParser.ST_LINEFROMTEXT:
            case SqlParser.ST_LINEFROMWKB:
            case SqlParser.ST_LINESTRINGFROMTEXT:
            case SqlParser.ST_LINESTRINGFROMWKB:
            case SqlParser.ST_NUMGEOMETRIES:
            case SqlParser.ST_NUMINTERIORRING:
            case SqlParser.ST_NUMINTERIORRINGS:
            case SqlParser.ST_NUMPOINTS:
            case SqlParser.ST_OVERLAPS:
            case SqlParser.ST_POINTFROMTEXT:
            case SqlParser.ST_POINTFROMWKB:
            case SqlParser.ST_POINTN:
            case SqlParser.ST_POLYFROMTEXT:
            case SqlParser.ST_POLYFROMWKB:
            case SqlParser.ST_POLYGONFROMTEXT:
            case SqlParser.ST_POLYGONFROMWKB:
            case SqlParser.ST_SRID:
            case SqlParser.ST_STARTPOINT:
            case SqlParser.ST_SYMDIFFERENCE:
            case SqlParser.ST_TOUCHES:
            case SqlParser.ST_UNION:
            case SqlParser.ST_WITHIN:
            case SqlParser.ST_X:
            case SqlParser.ST_Y:
            case SqlParser.SUBDATE:
            case SqlParser.SUBSTRING_INDEX:
            case SqlParser.SUBTIME:
            case SqlParser.SYSTEM_USER:
            case SqlParser.TAN:
            case SqlParser.TIMEDIFF:
            case SqlParser.TIMESTAMPADD:
            case SqlParser.TIMESTAMPDIFF:
            case SqlParser.TIME_FORMAT:
            case SqlParser.TIME_TO_SEC:
            case SqlParser.TOUCHES:
            case SqlParser.TO_BASE64:
            case SqlParser.TO_DAYS:
            case SqlParser.TO_SECONDS:
            case SqlParser.UCASE:
            case SqlParser.UNCOMPRESS:
            case SqlParser.UNCOMPRESSED_LENGTH:
            case SqlParser.UNHEX:
            case SqlParser.UNIX_TIMESTAMP:
            case SqlParser.UPDATEXML:
            case SqlParser.UPPER:
            case SqlParser.UUID:
            case SqlParser.UUID_SHORT:
            case SqlParser.VALIDATE_PASSWORD_STRENGTH:
            case SqlParser.VERSION:
            case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
            case SqlParser.WEEKDAY:
            case SqlParser.WEEKOFYEAR:
            case SqlParser.WEIGHT_STRING:
            case SqlParser.WITHIN:
            case SqlParser.YEARWEEK:
            case SqlParser.Y_FUNCTION:
            case SqlParser.X_FUNCTION:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
            case SqlParser.ID:
            case SqlParser.REVERSE_QUOTE_ID:
                this.state = 5268;
                localctx.partitionList = this.uidList();
                break;
            case SqlParser.ALL:
                this.state = 5269;
                this.match(SqlParser.ALL);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            this.state = 5272;
            this.match(SqlParser.RR_BRACKET);
        }

        this.state = 5282;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,760,this._ctx);
        if(la_===1) {
            this.state = 5276;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.INDEX || _la===SqlParser.KEY) {
                this.state = 5275;
                localctx.indexFormat = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.INDEX || _la===SqlParser.KEY)) {
                    localctx.indexFormat = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 5278;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5279;
            localctx.indexList = this.uidList();
            this.state = 5280;
            this.match(SqlParser.RR_BRACKET);

        }
        this.state = 5286;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.IGNORE) {
            this.state = 5284;
            this.match(SqlParser.IGNORE);
            this.state = 5285;
            this.match(SqlParser.LEAVES);
        }

    } 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 SimpleDescribeStatementContext(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_simpleDescribeStatement;
    this.command = null; // Token
    this.column = null; // UidContext
    this.pattern = null; // Token
    return this;
}

SimpleDescribeStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SimpleDescribeStatementContext.prototype.constructor = SimpleDescribeStatementContext;

SimpleDescribeStatementContext.prototype.tableName = function() {
    return this.getTypedRuleContext(TableNameContext,0);
};

SimpleDescribeStatementContext.prototype.EXPLAIN = function() {
    return this.getToken(SqlParser.EXPLAIN, 0);
};

SimpleDescribeStatementContext.prototype.DESCRIBE = function() {
    return this.getToken(SqlParser.DESCRIBE, 0);
};

SimpleDescribeStatementContext.prototype.DESC = function() {
    return this.getToken(SqlParser.DESC, 0);
};

SimpleDescribeStatementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

SimpleDescribeStatementContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

SimpleDescribeStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSimpleDescribeStatement(this);
	}
};

SimpleDescribeStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSimpleDescribeStatement(this);
	}
};

SimpleDescribeStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSimpleDescribeStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SimpleDescribeStatementContext = SimpleDescribeStatementContext;

SqlParser.prototype.simpleDescribeStatement = function() {

    var localctx = new SimpleDescribeStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 478, SqlParser.RULE_simpleDescribeStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5288;
        localctx.command = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(((((_la - 41)) & ~0x1f) == 0 && ((1 << (_la - 41)) & ((1 << (SqlParser.DESC - 41)) | (1 << (SqlParser.DESCRIBE - 41)) | (1 << (SqlParser.EXPLAIN - 41)))) !== 0))) {
            localctx.command = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 5289;
        this.tableName();
        this.state = 5292;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,762,this._ctx);
        if(la_===1) {
            this.state = 5290;
            localctx.column = this.uid();

        } else if(la_===2) {
            this.state = 5291;
            localctx.pattern = this.match(SqlParser.STRING_LITERAL);

        }
    } 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 FullDescribeStatementContext(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_fullDescribeStatement;
    this.command = null; // Token
    this.formatType = null; // Token
    this.formatValue = null; // Token
    return this;
}

FullDescribeStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FullDescribeStatementContext.prototype.constructor = FullDescribeStatementContext;

FullDescribeStatementContext.prototype.describeObjectClause = function() {
    return this.getTypedRuleContext(DescribeObjectClauseContext,0);
};

FullDescribeStatementContext.prototype.EXPLAIN = function() {
    return this.getToken(SqlParser.EXPLAIN, 0);
};

FullDescribeStatementContext.prototype.DESCRIBE = function() {
    return this.getToken(SqlParser.DESCRIBE, 0);
};

FullDescribeStatementContext.prototype.DESC = function() {
    return this.getToken(SqlParser.DESC, 0);
};

FullDescribeStatementContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

FullDescribeStatementContext.prototype.EXTENDED = function() {
    return this.getToken(SqlParser.EXTENDED, 0);
};

FullDescribeStatementContext.prototype.PARTITIONS = function() {
    return this.getToken(SqlParser.PARTITIONS, 0);
};

FullDescribeStatementContext.prototype.FORMAT = function() {
    return this.getToken(SqlParser.FORMAT, 0);
};

FullDescribeStatementContext.prototype.TRADITIONAL = function() {
    return this.getToken(SqlParser.TRADITIONAL, 0);
};

FullDescribeStatementContext.prototype.JSON = function() {
    return this.getToken(SqlParser.JSON, 0);
};

FullDescribeStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFullDescribeStatement(this);
	}
};

FullDescribeStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFullDescribeStatement(this);
	}
};

FullDescribeStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitFullDescribeStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.FullDescribeStatementContext = FullDescribeStatementContext;

SqlParser.prototype.fullDescribeStatement = function() {

    var localctx = new FullDescribeStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 480, SqlParser.RULE_fullDescribeStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5294;
        localctx.command = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(((((_la - 41)) & ~0x1f) == 0 && ((1 << (_la - 41)) & ((1 << (SqlParser.DESC - 41)) | (1 << (SqlParser.DESCRIBE - 41)) | (1 << (SqlParser.EXPLAIN - 41)))) !== 0))) {
            localctx.command = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 5298;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.EXTENDED || _la===SqlParser.PARTITIONS || _la===SqlParser.FORMAT) {
            this.state = 5295;
            localctx.formatType = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.EXTENDED || _la===SqlParser.PARTITIONS || _la===SqlParser.FORMAT)) {
                localctx.formatType = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5296;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 5297;
            localctx.formatValue = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.JSON || _la===SqlParser.TRADITIONAL)) {
                localctx.formatValue = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 5300;
        this.describeObjectClause();
    } 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 HelpStatementContext(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_helpStatement;
    return this;
}

HelpStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
HelpStatementContext.prototype.constructor = HelpStatementContext;

HelpStatementContext.prototype.HELP = function() {
    return this.getToken(SqlParser.HELP, 0);
};

HelpStatementContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

HelpStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterHelpStatement(this);
	}
};

HelpStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitHelpStatement(this);
	}
};

HelpStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitHelpStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.HelpStatementContext = HelpStatementContext;

SqlParser.prototype.helpStatement = function() {

    var localctx = new HelpStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 482, SqlParser.RULE_helpStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5302;
        this.match(SqlParser.HELP);
        this.state = 5303;
        this.match(SqlParser.STRING_LITERAL);
    } 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 UseStatementContext(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_useStatement;
    return this;
}

UseStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UseStatementContext.prototype.constructor = UseStatementContext;

UseStatementContext.prototype.USE = function() {
    return this.getToken(SqlParser.USE, 0);
};

UseStatementContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

UseStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUseStatement(this);
	}
};

UseStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUseStatement(this);
	}
};

UseStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUseStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UseStatementContext = UseStatementContext;

SqlParser.prototype.useStatement = function() {

    var localctx = new UseStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 484, SqlParser.RULE_useStatement);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5305;
        this.match(SqlParser.USE);
        this.state = 5306;
        this.uid();
    } 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 SignalStatementContext(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_signalStatement;
    return this;
}

SignalStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SignalStatementContext.prototype.constructor = SignalStatementContext;

SignalStatementContext.prototype.SIGNAL = function() {
    return this.getToken(SqlParser.SIGNAL, 0);
};

SignalStatementContext.prototype.ID = function() {
    return this.getToken(SqlParser.ID, 0);
};

SignalStatementContext.prototype.REVERSE_QUOTE_ID = function() {
    return this.getToken(SqlParser.REVERSE_QUOTE_ID, 0);
};

SignalStatementContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

SignalStatementContext.prototype.signalConditionInformation = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(SignalConditionInformationContext);
    } else {
        return this.getTypedRuleContext(SignalConditionInformationContext,i);
    }
};

SignalStatementContext.prototype.SQLSTATE = function() {
    return this.getToken(SqlParser.SQLSTATE, 0);
};

SignalStatementContext.prototype.stringLiteral = function() {
    return this.getTypedRuleContext(StringLiteralContext,0);
};

SignalStatementContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


SignalStatementContext.prototype.VALUE = function() {
    return this.getToken(SqlParser.VALUE, 0);
};

SignalStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSignalStatement(this);
	}
};

SignalStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSignalStatement(this);
	}
};

SignalStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSignalStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SignalStatementContext = SignalStatementContext;

SqlParser.prototype.signalStatement = function() {

    var localctx = new SignalStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 486, SqlParser.RULE_signalStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5308;
        this.match(SqlParser.SIGNAL);
        this.state = 5316;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.SQLSTATE:
            this.state = 5309;
            this.match(SqlParser.SQLSTATE);
            this.state = 5311;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.VALUE) {
                this.state = 5310;
                this.match(SqlParser.VALUE);
            }

            this.state = 5313;
            this.stringLiteral();
            break;
        case SqlParser.ID:
            this.state = 5314;
            this.match(SqlParser.ID);
            break;
        case SqlParser.REVERSE_QUOTE_ID:
            this.state = 5315;
            this.match(SqlParser.REVERSE_QUOTE_ID);
            break;
        default:
            throw new antlr4.error.NoViableAltException(this);
        }
        this.state = 5327;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,767,this._ctx);
        if(la_===1) {
            this.state = 5318;
            this.match(SqlParser.SET);
            this.state = 5319;
            this.signalConditionInformation();
            this.state = 5324;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 5320;
                this.match(SqlParser.COMMA);
                this.state = 5321;
                this.signalConditionInformation();
                this.state = 5326;
                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 ResignalStatementContext(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_resignalStatement;
    return this;
}

ResignalStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ResignalStatementContext.prototype.constructor = ResignalStatementContext;

ResignalStatementContext.prototype.RESIGNAL = function() {
    return this.getToken(SqlParser.RESIGNAL, 0);
};

ResignalStatementContext.prototype.ID = function() {
    return this.getToken(SqlParser.ID, 0);
};

ResignalStatementContext.prototype.REVERSE_QUOTE_ID = function() {
    return this.getToken(SqlParser.REVERSE_QUOTE_ID, 0);
};

ResignalStatementContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

ResignalStatementContext.prototype.signalConditionInformation = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(SignalConditionInformationContext);
    } else {
        return this.getTypedRuleContext(SignalConditionInformationContext,i);
    }
};

ResignalStatementContext.prototype.SQLSTATE = function() {
    return this.getToken(SqlParser.SQLSTATE, 0);
};

ResignalStatementContext.prototype.stringLiteral = function() {
    return this.getTypedRuleContext(StringLiteralContext,0);
};

ResignalStatementContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


ResignalStatementContext.prototype.VALUE = function() {
    return this.getToken(SqlParser.VALUE, 0);
};

ResignalStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterResignalStatement(this);
	}
};

ResignalStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitResignalStatement(this);
	}
};

ResignalStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitResignalStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ResignalStatementContext = ResignalStatementContext;

SqlParser.prototype.resignalStatement = function() {

    var localctx = new ResignalStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 488, SqlParser.RULE_resignalStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5329;
        this.match(SqlParser.RESIGNAL);
        this.state = 5337;
        this._errHandler.sync(this);
        switch (this._input.LA(1)) {
        case SqlParser.SQLSTATE:
        	this.state = 5330;
        	this.match(SqlParser.SQLSTATE);
        	this.state = 5332;
        	this._errHandler.sync(this);
        	_la = this._input.LA(1);
        	if(_la===SqlParser.VALUE) {
        	    this.state = 5331;
        	    this.match(SqlParser.VALUE);
        	}

        	this.state = 5334;
        	this.stringLiteral();
        	break;
        case SqlParser.ID:
        	this.state = 5335;
        	this.match(SqlParser.ID);
        	break;
        case SqlParser.REVERSE_QUOTE_ID:
        	this.state = 5336;
        	this.match(SqlParser.REVERSE_QUOTE_ID);
        	break;
        case SqlParser.EOF:
        case SqlParser.ALTER:
        case SqlParser.ANALYZE:
        case SqlParser.CALL:
        case SqlParser.CHANGE:
        case SqlParser.CHECK:
        case SqlParser.CREATE:
        case SqlParser.DELETE:
        case SqlParser.DESC:
        case SqlParser.DESCRIBE:
        case SqlParser.DROP:
        case SqlParser.EXPLAIN:
        case SqlParser.GET:
        case SqlParser.GRANT:
        case SqlParser.INSERT:
        case SqlParser.KILL:
        case SqlParser.LOAD:
        case SqlParser.LOCK:
        case SqlParser.OPTIMIZE:
        case SqlParser.PURGE:
        case SqlParser.RELEASE:
        case SqlParser.RENAME:
        case SqlParser.REPLACE:
        case SqlParser.RESIGNAL:
        case SqlParser.REVOKE:
        case SqlParser.SELECT:
        case SqlParser.SET:
        case SqlParser.SHOW:
        case SqlParser.SIGNAL:
        case SqlParser.UNLOCK:
        case SqlParser.UPDATE:
        case SqlParser.USE:
        case SqlParser.BEGIN:
        case SqlParser.BINLOG:
        case SqlParser.CACHE:
        case SqlParser.CHECKSUM:
        case SqlParser.COMMIT:
        case SqlParser.DEALLOCATE:
        case SqlParser.DO:
        case SqlParser.FLUSH:
        case SqlParser.HANDLER:
        case SqlParser.HELP:
        case SqlParser.INSTALL:
        case SqlParser.PREPARE:
        case SqlParser.REPAIR:
        case SqlParser.RESET:
        case SqlParser.ROLLBACK:
        case SqlParser.SAVEPOINT:
        case SqlParser.START:
        case SqlParser.STOP:
        case SqlParser.TRUNCATE:
        case SqlParser.UNINSTALL:
        case SqlParser.XA:
        case SqlParser.EXECUTE:
        case SqlParser.SHUTDOWN:
        case SqlParser.MINUSMINUS:
        case SqlParser.LR_BRACKET:
        case SqlParser.SEMI:
        	break;
        default:
        	break;
        }
        this.state = 5348;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,771,this._ctx);
        if(la_===1) {
            this.state = 5339;
            this.match(SqlParser.SET);
            this.state = 5340;
            this.signalConditionInformation();
            this.state = 5345;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 5341;
                this.match(SqlParser.COMMA);
                this.state = 5342;
                this.signalConditionInformation();
                this.state = 5347;
                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 SignalConditionInformationContext(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_signalConditionInformation;
    return this;
}

SignalConditionInformationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SignalConditionInformationContext.prototype.constructor = SignalConditionInformationContext;

SignalConditionInformationContext.prototype.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

SignalConditionInformationContext.prototype.CLASS_ORIGIN = function() {
    return this.getToken(SqlParser.CLASS_ORIGIN, 0);
};

SignalConditionInformationContext.prototype.SUBCLASS_ORIGIN = function() {
    return this.getToken(SqlParser.SUBCLASS_ORIGIN, 0);
};

SignalConditionInformationContext.prototype.MESSAGE_TEXT = function() {
    return this.getToken(SqlParser.MESSAGE_TEXT, 0);
};

SignalConditionInformationContext.prototype.MYSQL_ERRNO = function() {
    return this.getToken(SqlParser.MYSQL_ERRNO, 0);
};

SignalConditionInformationContext.prototype.CONSTRAINT_CATALOG = function() {
    return this.getToken(SqlParser.CONSTRAINT_CATALOG, 0);
};

SignalConditionInformationContext.prototype.CONSTRAINT_SCHEMA = function() {
    return this.getToken(SqlParser.CONSTRAINT_SCHEMA, 0);
};

SignalConditionInformationContext.prototype.CONSTRAINT_NAME = function() {
    return this.getToken(SqlParser.CONSTRAINT_NAME, 0);
};

SignalConditionInformationContext.prototype.CATALOG_NAME = function() {
    return this.getToken(SqlParser.CATALOG_NAME, 0);
};

SignalConditionInformationContext.prototype.SCHEMA_NAME = function() {
    return this.getToken(SqlParser.SCHEMA_NAME, 0);
};

SignalConditionInformationContext.prototype.TABLE_NAME = function() {
    return this.getToken(SqlParser.TABLE_NAME, 0);
};

SignalConditionInformationContext.prototype.COLUMN_NAME = function() {
    return this.getToken(SqlParser.COLUMN_NAME, 0);
};

SignalConditionInformationContext.prototype.CURSOR_NAME = function() {
    return this.getToken(SqlParser.CURSOR_NAME, 0);
};

SignalConditionInformationContext.prototype.stringLiteral = function() {
    return this.getTypedRuleContext(StringLiteralContext,0);
};

SignalConditionInformationContext.prototype.DECIMAL_LITERAL = function() {
    return this.getToken(SqlParser.DECIMAL_LITERAL, 0);
};

SignalConditionInformationContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSignalConditionInformation(this);
	}
};

SignalConditionInformationContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSignalConditionInformation(this);
	}
};

SignalConditionInformationContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSignalConditionInformation(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SignalConditionInformationContext = SignalConditionInformationContext;

SqlParser.prototype.signalConditionInformation = function() {

    var localctx = new SignalConditionInformationContext(this, this._ctx, this.state);
    this.enterRule(localctx, 490, SqlParser.RULE_signalConditionInformation);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5350;
        _la = this._input.LA(1);
        if(!(((((_la - 297)) & ~0x1f) == 0 && ((1 << (_la - 297)) & ((1 << (SqlParser.CLASS_ORIGIN - 297)) | (1 << (SqlParser.COLUMN_NAME - 297)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 297)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 297)) | (1 << (SqlParser.CONSTRAINT_NAME - 297)) | (1 << (SqlParser.CURSOR_NAME - 297)))) !== 0) || _la===SqlParser.MESSAGE_TEXT || _la===SqlParser.MYSQL_ERRNO || _la===SqlParser.SUBCLASS_ORIGIN || _la===SqlParser.TABLE_NAME || _la===SqlParser.CATALOG_NAME || _la===SqlParser.SCHEMA_NAME)) {
        this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 5351;
        this.match(SqlParser.EQUAL_SYMBOL);
        this.state = 5354;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.START_NATIONAL_STRING_LITERAL:
        case SqlParser.STRING_LITERAL:
        case SqlParser.STRING_CHARSET_NAME:
            this.state = 5352;
            this.stringLiteral();
            break;
        case SqlParser.DECIMAL_LITERAL:
            this.state = 5353;
            this.match(SqlParser.DECIMAL_LITERAL);
            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 DiagnosticsStatementContext(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_diagnosticsStatement;
    return this;
}

DiagnosticsStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DiagnosticsStatementContext.prototype.constructor = DiagnosticsStatementContext;

DiagnosticsStatementContext.prototype.GET = function() {
    return this.getToken(SqlParser.GET, 0);
};

DiagnosticsStatementContext.prototype.DIAGNOSTICS = function() {
    return this.getToken(SqlParser.DIAGNOSTICS, 0);
};

DiagnosticsStatementContext.prototype.CURRENT = function() {
    return this.getToken(SqlParser.CURRENT, 0);
};

DiagnosticsStatementContext.prototype.STACKED = function() {
    return this.getToken(SqlParser.STACKED, 0);
};

DiagnosticsStatementContext.prototype.variableClause = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(VariableClauseContext);
    } else {
        return this.getTypedRuleContext(VariableClauseContext,i);
    }
};

DiagnosticsStatementContext.prototype.EQUAL_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.EQUAL_SYMBOL);
    } else {
        return this.getToken(SqlParser.EQUAL_SYMBOL, i);
    }
};


DiagnosticsStatementContext.prototype.CONDITION = function() {
    return this.getToken(SqlParser.CONDITION, 0);
};

DiagnosticsStatementContext.prototype.diagnosticsConditionInformationName = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DiagnosticsConditionInformationNameContext);
    } else {
        return this.getTypedRuleContext(DiagnosticsConditionInformationNameContext,i);
    }
};

DiagnosticsStatementContext.prototype.NUMBER = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.NUMBER);
    } else {
        return this.getToken(SqlParser.NUMBER, i);
    }
};


DiagnosticsStatementContext.prototype.ROW_COUNT = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.ROW_COUNT);
    } else {
        return this.getToken(SqlParser.ROW_COUNT, i);
    }
};


DiagnosticsStatementContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

DiagnosticsStatementContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


DiagnosticsStatementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDiagnosticsStatement(this);
	}
};

DiagnosticsStatementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDiagnosticsStatement(this);
	}
};

DiagnosticsStatementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDiagnosticsStatement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DiagnosticsStatementContext = DiagnosticsStatementContext;

SqlParser.prototype.diagnosticsStatement = function() {

    var localctx = new DiagnosticsStatementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 492, SqlParser.RULE_diagnosticsStatement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5356;
        this.match(SqlParser.GET);
        this.state = 5358;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.CURRENT || _la===SqlParser.STACKED) {
            this.state = 5357;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.CURRENT || _la===SqlParser.STACKED)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
        }

        this.state = 5360;
        this.match(SqlParser.DIAGNOSTICS);
        this.state = 5392;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.CURRENT:
        case SqlParser.DATABASE:
        case SqlParser.DIAGNOSTICS:
        case SqlParser.LEFT:
        case SqlParser.NUMBER:
        case SqlParser.RIGHT:
        case SqlParser.STACKED:
        case SqlParser.DATE:
        case SqlParser.TIME:
        case SqlParser.TIMESTAMP:
        case SqlParser.DATETIME:
        case SqlParser.YEAR:
        case SqlParser.TEXT:
        case SqlParser.ENUM:
        case SqlParser.SERIAL:
        case SqlParser.JSON_VALID:
        case SqlParser.JSON_SCHEMA_VALID:
        case SqlParser.COUNT:
        case SqlParser.POSITION:
        case SqlParser.ACCOUNT:
        case SqlParser.ACTION:
        case SqlParser.AFTER:
        case SqlParser.AGGREGATE:
        case SqlParser.ALGORITHM:
        case SqlParser.ANY:
        case SqlParser.AT:
        case SqlParser.AUTHORS:
        case SqlParser.AUTOCOMMIT:
        case SqlParser.AUTOEXTEND_SIZE:
        case SqlParser.AUTO_INCREMENT:
        case SqlParser.AVG_ROW_LENGTH:
        case SqlParser.BEGIN:
        case SqlParser.BINLOG:
        case SqlParser.BIT:
        case SqlParser.BLOCK:
        case SqlParser.BOOL:
        case SqlParser.BOOLEAN:
        case SqlParser.BTREE:
        case SqlParser.CACHE:
        case SqlParser.CASCADED:
        case SqlParser.CHAIN:
        case SqlParser.CHANGED:
        case SqlParser.CHANNEL:
        case SqlParser.CHECKSUM:
        case SqlParser.PAGE_CHECKSUM:
        case SqlParser.CIPHER:
        case SqlParser.CLASS_ORIGIN:
        case SqlParser.CLIENT:
        case SqlParser.CLOSE:
        case SqlParser.COALESCE:
        case SqlParser.CODE:
        case SqlParser.COLUMNS:
        case SqlParser.COLUMN_FORMAT:
        case SqlParser.COLUMN_NAME:
        case SqlParser.COMMENT:
        case SqlParser.COMMIT:
        case SqlParser.COMPACT:
        case SqlParser.COMPLETION:
        case SqlParser.COMPRESSED:
        case SqlParser.COMPRESSION:
        case SqlParser.CONCURRENT:
        case SqlParser.CONNECTION:
        case SqlParser.CONSISTENT:
        case SqlParser.CONSTRAINT_CATALOG:
        case SqlParser.CONSTRAINT_SCHEMA:
        case SqlParser.CONSTRAINT_NAME:
        case SqlParser.CONTAINS:
        case SqlParser.CONTEXT:
        case SqlParser.CONTRIBUTORS:
        case SqlParser.COPY:
        case SqlParser.CPU:
        case SqlParser.CURSOR_NAME:
        case SqlParser.DATA:
        case SqlParser.DATAFILE:
        case SqlParser.DEALLOCATE:
        case SqlParser.DEFAULT_AUTH:
        case SqlParser.DEFINER:
        case SqlParser.DELAY_KEY_WRITE:
        case SqlParser.DES_KEY_FILE:
        case SqlParser.DIRECTORY:
        case SqlParser.DISABLE:
        case SqlParser.DISCARD:
        case SqlParser.DISK:
        case SqlParser.DO:
        case SqlParser.DUMPFILE:
        case SqlParser.DUPLICATE:
        case SqlParser.DYNAMIC:
        case SqlParser.ENABLE:
        case SqlParser.ENCRYPTION:
        case SqlParser.END:
        case SqlParser.ENDS:
        case SqlParser.ENGINE:
        case SqlParser.ENGINES:
        case SqlParser.ERROR:
        case SqlParser.ERRORS:
        case SqlParser.ESCAPE:
        case SqlParser.EVEN:
        case SqlParser.EVENT:
        case SqlParser.EVENTS:
        case SqlParser.EVERY:
        case SqlParser.EXCHANGE:
        case SqlParser.EXCLUSIVE:
        case SqlParser.EXPIRE:
        case SqlParser.EXPORT:
        case SqlParser.EXTENDED:
        case SqlParser.EXTENT_SIZE:
        case SqlParser.FAST:
        case SqlParser.FAULTS:
        case SqlParser.FIELDS:
        case SqlParser.FILE_BLOCK_SIZE:
        case SqlParser.FILTER:
        case SqlParser.FIRST:
        case SqlParser.FIXED:
        case SqlParser.FLUSH:
        case SqlParser.FOLLOWS:
        case SqlParser.FOUND:
        case SqlParser.FULL:
        case SqlParser.FUNCTION:
        case SqlParser.GENERAL:
        case SqlParser.GLOBAL:
        case SqlParser.GRANTS:
        case SqlParser.GROUP_REPLICATION:
        case SqlParser.HANDLER:
        case SqlParser.HASH:
        case SqlParser.HELP:
        case SqlParser.HOST:
        case SqlParser.HOSTS:
        case SqlParser.IDENTIFIED:
        case SqlParser.IGNORE_SERVER_IDS:
        case SqlParser.IMPORT:
        case SqlParser.INDEXES:
        case SqlParser.INITIAL_SIZE:
        case SqlParser.INPLACE:
        case SqlParser.INSERT_METHOD:
        case SqlParser.INSTALL:
        case SqlParser.INSTANCE:
        case SqlParser.INVISIBLE:
        case SqlParser.INVOKER:
        case SqlParser.IO:
        case SqlParser.IO_THREAD:
        case SqlParser.IPC:
        case SqlParser.ISOLATION:
        case SqlParser.ISSUER:
        case SqlParser.JSON:
        case SqlParser.KEY_BLOCK_SIZE:
        case SqlParser.LANGUAGE:
        case SqlParser.LAST:
        case SqlParser.LEAVES:
        case SqlParser.LESS:
        case SqlParser.LEVEL:
        case SqlParser.LIST:
        case SqlParser.LOCAL:
        case SqlParser.LOGFILE:
        case SqlParser.LOGS:
        case SqlParser.MASTER:
        case SqlParser.MASTER_AUTO_POSITION:
        case SqlParser.MASTER_CONNECT_RETRY:
        case SqlParser.MASTER_DELAY:
        case SqlParser.MASTER_HEARTBEAT_PERIOD:
        case SqlParser.MASTER_HOST:
        case SqlParser.MASTER_LOG_FILE:
        case SqlParser.MASTER_LOG_POS:
        case SqlParser.MASTER_PASSWORD:
        case SqlParser.MASTER_PORT:
        case SqlParser.MASTER_RETRY_COUNT:
        case SqlParser.MASTER_SSL:
        case SqlParser.MASTER_SSL_CA:
        case SqlParser.MASTER_SSL_CAPATH:
        case SqlParser.MASTER_SSL_CERT:
        case SqlParser.MASTER_SSL_CIPHER:
        case SqlParser.MASTER_SSL_CRL:
        case SqlParser.MASTER_SSL_CRLPATH:
        case SqlParser.MASTER_SSL_KEY:
        case SqlParser.MASTER_TLS_VERSION:
        case SqlParser.MASTER_USER:
        case SqlParser.MAX_CONNECTIONS_PER_HOUR:
        case SqlParser.MAX_QUERIES_PER_HOUR:
        case SqlParser.MAX_ROWS:
        case SqlParser.MAX_SIZE:
        case SqlParser.MAX_UPDATES_PER_HOUR:
        case SqlParser.MAX_USER_CONNECTIONS:
        case SqlParser.MEDIUM:
        case SqlParser.MERGE:
        case SqlParser.MESSAGE_TEXT:
        case SqlParser.MID:
        case SqlParser.MIGRATE:
        case SqlParser.MIN_ROWS:
        case SqlParser.MODE:
        case SqlParser.MODIFY:
        case SqlParser.MUTEX:
        case SqlParser.MYSQL:
        case SqlParser.MYSQL_ERRNO:
        case SqlParser.NAME:
        case SqlParser.NAMES:
        case SqlParser.NCHAR:
        case SqlParser.NEVER:
        case SqlParser.NEXT:
        case SqlParser.NO:
        case SqlParser.NODEGROUP:
        case SqlParser.NONE:
        case SqlParser.OFFLINE:
        case SqlParser.OFFSET:
        case SqlParser.OJ:
        case SqlParser.OLD_PASSWORD:
        case SqlParser.ONE:
        case SqlParser.ONLINE:
        case SqlParser.ONLY:
        case SqlParser.OPEN:
        case SqlParser.OPTIMIZER_COSTS:
        case SqlParser.OPTIONS:
        case SqlParser.OWNER:
        case SqlParser.PACK_KEYS:
        case SqlParser.PAGE:
        case SqlParser.PARSER:
        case SqlParser.PARTIAL:
        case SqlParser.PARTITIONING:
        case SqlParser.PARTITIONS:
        case SqlParser.PASSWORD:
        case SqlParser.PHASE:
        case SqlParser.PLUGIN:
        case SqlParser.PLUGIN_DIR:
        case SqlParser.PLUGINS:
        case SqlParser.PORT:
        case SqlParser.PRECEDES:
        case SqlParser.PREPARE:
        case SqlParser.PRESERVE:
        case SqlParser.PREV:
        case SqlParser.PROCESSLIST:
        case SqlParser.PROFILE:
        case SqlParser.PROFILES:
        case SqlParser.PROXY:
        case SqlParser.QUERY:
        case SqlParser.QUICK:
        case SqlParser.REBUILD:
        case SqlParser.RECOVER:
        case SqlParser.REDO_BUFFER_SIZE:
        case SqlParser.REDUNDANT:
        case SqlParser.RELAY:
        case SqlParser.RELAY_LOG_FILE:
        case SqlParser.RELAY_LOG_POS:
        case SqlParser.RELAYLOG:
        case SqlParser.REMOVE:
        case SqlParser.REORGANIZE:
        case SqlParser.REPAIR:
        case SqlParser.REPLICATE_DO_DB:
        case SqlParser.REPLICATE_DO_TABLE:
        case SqlParser.REPLICATE_IGNORE_DB:
        case SqlParser.REPLICATE_IGNORE_TABLE:
        case SqlParser.REPLICATE_REWRITE_DB:
        case SqlParser.REPLICATE_WILD_DO_TABLE:
        case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
        case SqlParser.REPLICATION:
        case SqlParser.RESET:
        case SqlParser.RESUME:
        case SqlParser.RETURNED_SQLSTATE:
        case SqlParser.RETURNS:
        case SqlParser.ROLE:
        case SqlParser.ROLLBACK:
        case SqlParser.ROLLUP:
        case SqlParser.ROTATE:
        case SqlParser.ROW:
        case SqlParser.ROWS:
        case SqlParser.ROW_FORMAT:
        case SqlParser.SAVEPOINT:
        case SqlParser.SCHEDULE:
        case SqlParser.SECURITY:
        case SqlParser.SERVER:
        case SqlParser.SESSION:
        case SqlParser.SHARE:
        case SqlParser.SHARED:
        case SqlParser.SIGNED:
        case SqlParser.SIMPLE:
        case SqlParser.SLAVE:
        case SqlParser.SLOW:
        case SqlParser.SNAPSHOT:
        case SqlParser.SOCKET:
        case SqlParser.SOME:
        case SqlParser.SONAME:
        case SqlParser.SOUNDS:
        case SqlParser.SOURCE:
        case SqlParser.SQL_AFTER_GTIDS:
        case SqlParser.SQL_AFTER_MTS_GAPS:
        case SqlParser.SQL_BEFORE_GTIDS:
        case SqlParser.SQL_BUFFER_RESULT:
        case SqlParser.SQL_CACHE:
        case SqlParser.SQL_NO_CACHE:
        case SqlParser.SQL_THREAD:
        case SqlParser.START:
        case SqlParser.STARTS:
        case SqlParser.STATS_AUTO_RECALC:
        case SqlParser.STATS_PERSISTENT:
        case SqlParser.STATS_SAMPLE_PAGES:
        case SqlParser.STATUS:
        case SqlParser.STOP:
        case SqlParser.STORAGE:
        case SqlParser.STRING:
        case SqlParser.SUBCLASS_ORIGIN:
        case SqlParser.SUBJECT:
        case SqlParser.SUBPARTITION:
        case SqlParser.SUBPARTITIONS:
        case SqlParser.SUSPEND:
        case SqlParser.SWAPS:
        case SqlParser.SWITCHES:
        case SqlParser.TABLE_NAME:
        case SqlParser.TABLESPACE:
        case SqlParser.TEMPORARY:
        case SqlParser.TEMPTABLE:
        case SqlParser.THAN:
        case SqlParser.TRADITIONAL:
        case SqlParser.TRANSACTION:
        case SqlParser.TRANSACTIONAL:
        case SqlParser.TRIGGERS:
        case SqlParser.TRUNCATE:
        case SqlParser.UNDEFINED:
        case SqlParser.UNDOFILE:
        case SqlParser.UNDO_BUFFER_SIZE:
        case SqlParser.UNINSTALL:
        case SqlParser.UNKNOWN:
        case SqlParser.UNTIL:
        case SqlParser.UPGRADE:
        case SqlParser.USER:
        case SqlParser.USE_FRM:
        case SqlParser.USER_RESOURCES:
        case SqlParser.VALIDATION:
        case SqlParser.VALUE:
        case SqlParser.VARIABLES:
        case SqlParser.VIEW:
        case SqlParser.VISIBLE:
        case SqlParser.WAIT:
        case SqlParser.WARNINGS:
        case SqlParser.WITHOUT:
        case SqlParser.WORK:
        case SqlParser.WRAPPER:
        case SqlParser.X509:
        case SqlParser.XA:
        case SqlParser.XML:
        case SqlParser.INTERNAL:
        case SqlParser.QUARTER:
        case SqlParser.MONTH:
        case SqlParser.DAY:
        case SqlParser.HOUR:
        case SqlParser.MINUTE:
        case SqlParser.WEEK:
        case SqlParser.SECOND:
        case SqlParser.MICROSECOND:
        case SqlParser.TABLES:
        case SqlParser.ROUTINE:
        case SqlParser.EXECUTE:
        case SqlParser.FILE:
        case SqlParser.PROCESS:
        case SqlParser.RELOAD:
        case SqlParser.SHUTDOWN:
        case SqlParser.SUPER:
        case SqlParser.PRIVILEGES:
        case SqlParser.AUDIT_ADMIN:
        case SqlParser.BACKUP_ADMIN:
        case SqlParser.BINLOG_ADMIN:
        case SqlParser.BINLOG_ENCRYPTION_ADMIN:
        case SqlParser.CLONE_ADMIN:
        case SqlParser.CONNECTION_ADMIN:
        case SqlParser.ENCRYPTION_KEY_ADMIN:
        case SqlParser.FIREWALL_ADMIN:
        case SqlParser.FIREWALL_USER:
        case SqlParser.GROUP_REPLICATION_ADMIN:
        case SqlParser.INNODB_REDO_LOG_ARCHIVE:
        case SqlParser.NDB_STORED_USER:
        case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
        case SqlParser.REPLICATION_APPLIER:
        case SqlParser.REPLICATION_SLAVE_ADMIN:
        case SqlParser.RESOURCE_GROUP_ADMIN:
        case SqlParser.RESOURCE_GROUP_USER:
        case SqlParser.ROLE_ADMIN:
        case SqlParser.SESSION_VARIABLES_ADMIN:
        case SqlParser.SET_USER_ID:
        case SqlParser.SHOW_ROUTINE:
        case SqlParser.SYSTEM_VARIABLES_ADMIN:
        case SqlParser.TABLE_ENCRYPTION_ADMIN:
        case SqlParser.VERSION_TOKEN_ADMIN:
        case SqlParser.XA_RECOVER_ADMIN:
        case SqlParser.ARMSCII8:
        case SqlParser.ASCII:
        case SqlParser.BIG5:
        case SqlParser.CP1250:
        case SqlParser.CP1251:
        case SqlParser.CP1256:
        case SqlParser.CP1257:
        case SqlParser.CP850:
        case SqlParser.CP852:
        case SqlParser.CP866:
        case SqlParser.CP932:
        case SqlParser.DEC8:
        case SqlParser.EUCJPMS:
        case SqlParser.EUCKR:
        case SqlParser.GB2312:
        case SqlParser.GBK:
        case SqlParser.GEOSTD8:
        case SqlParser.GREEK:
        case SqlParser.HEBREW:
        case SqlParser.HP8:
        case SqlParser.KEYBCS2:
        case SqlParser.KOI8R:
        case SqlParser.KOI8U:
        case SqlParser.LATIN1:
        case SqlParser.LATIN2:
        case SqlParser.LATIN5:
        case SqlParser.LATIN7:
        case SqlParser.MACCE:
        case SqlParser.MACROMAN:
        case SqlParser.SJIS:
        case SqlParser.SWE7:
        case SqlParser.TIS620:
        case SqlParser.UCS2:
        case SqlParser.UJIS:
        case SqlParser.UTF16:
        case SqlParser.UTF16LE:
        case SqlParser.UTF32:
        case SqlParser.UTF8:
        case SqlParser.UTF8MB3:
        case SqlParser.UTF8MB4:
        case SqlParser.ARCHIVE:
        case SqlParser.BLACKHOLE:
        case SqlParser.CSV:
        case SqlParser.FEDERATED:
        case SqlParser.INNODB:
        case SqlParser.MEMORY:
        case SqlParser.MRG_MYISAM:
        case SqlParser.MYISAM:
        case SqlParser.NDB:
        case SqlParser.NDBCLUSTER:
        case SqlParser.PERFORMANCE_SCHEMA:
        case SqlParser.TOKUDB:
        case SqlParser.REPEATABLE:
        case SqlParser.COMMITTED:
        case SqlParser.UNCOMMITTED:
        case SqlParser.SERIALIZABLE:
        case SqlParser.GEOMETRYCOLLECTION:
        case SqlParser.LINESTRING:
        case SqlParser.MULTILINESTRING:
        case SqlParser.MULTIPOINT:
        case SqlParser.MULTIPOLYGON:
        case SqlParser.POINT:
        case SqlParser.POLYGON:
        case SqlParser.ABS:
        case SqlParser.ACOS:
        case SqlParser.ADDDATE:
        case SqlParser.ADDTIME:
        case SqlParser.AES_DECRYPT:
        case SqlParser.AES_ENCRYPT:
        case SqlParser.AREA:
        case SqlParser.ASBINARY:
        case SqlParser.ASIN:
        case SqlParser.ASTEXT:
        case SqlParser.ASWKB:
        case SqlParser.ASWKT:
        case SqlParser.ASYMMETRIC_DECRYPT:
        case SqlParser.ASYMMETRIC_DERIVE:
        case SqlParser.ASYMMETRIC_ENCRYPT:
        case SqlParser.ASYMMETRIC_SIGN:
        case SqlParser.ASYMMETRIC_VERIFY:
        case SqlParser.ATAN:
        case SqlParser.ATAN2:
        case SqlParser.BENCHMARK:
        case SqlParser.BIN:
        case SqlParser.BIT_COUNT:
        case SqlParser.BIT_LENGTH:
        case SqlParser.BUFFER:
        case SqlParser.CATALOG_NAME:
        case SqlParser.CEIL:
        case SqlParser.CEILING:
        case SqlParser.CENTROID:
        case SqlParser.CHARACTER_LENGTH:
        case SqlParser.CHARSET:
        case SqlParser.CHAR_LENGTH:
        case SqlParser.COERCIBILITY:
        case SqlParser.COLLATION:
        case SqlParser.COMPRESS:
        case SqlParser.CONCAT:
        case SqlParser.CONCAT_WS:
        case SqlParser.CONNECTION_ID:
        case SqlParser.CONV:
        case SqlParser.CONVERT_TZ:
        case SqlParser.COS:
        case SqlParser.COT:
        case SqlParser.CRC32:
        case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
        case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
        case SqlParser.CREATE_DH_PARAMETERS:
        case SqlParser.CREATE_DIGEST:
        case SqlParser.CROSSES:
        case SqlParser.DATEDIFF:
        case SqlParser.DATE_FORMAT:
        case SqlParser.DAYNAME:
        case SqlParser.DAYOFMONTH:
        case SqlParser.DAYOFWEEK:
        case SqlParser.DAYOFYEAR:
        case SqlParser.DECODE:
        case SqlParser.DEGREES:
        case SqlParser.DES_DECRYPT:
        case SqlParser.DES_ENCRYPT:
        case SqlParser.DIMENSION:
        case SqlParser.DISJOINT:
        case SqlParser.ELT:
        case SqlParser.ENCODE:
        case SqlParser.ENCRYPT:
        case SqlParser.ENDPOINT:
        case SqlParser.ENVELOPE:
        case SqlParser.EQUALS:
        case SqlParser.EXP:
        case SqlParser.EXPORT_SET:
        case SqlParser.EXTERIORRING:
        case SqlParser.EXTRACTVALUE:
        case SqlParser.FIELD:
        case SqlParser.FIND_IN_SET:
        case SqlParser.FLOOR:
        case SqlParser.FORMAT:
        case SqlParser.FOUND_ROWS:
        case SqlParser.FROM_BASE64:
        case SqlParser.FROM_DAYS:
        case SqlParser.FROM_UNIXTIME:
        case SqlParser.GEOMCOLLFROMTEXT:
        case SqlParser.GEOMCOLLFROMWKB:
        case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.GEOMETRYFROMTEXT:
        case SqlParser.GEOMETRYFROMWKB:
        case SqlParser.GEOMETRYN:
        case SqlParser.GEOMETRYTYPE:
        case SqlParser.GEOMFROMTEXT:
        case SqlParser.GEOMFROMWKB:
        case SqlParser.GET_FORMAT:
        case SqlParser.GET_LOCK:
        case SqlParser.GLENGTH:
        case SqlParser.GREATEST:
        case SqlParser.GTID_SUBSET:
        case SqlParser.GTID_SUBTRACT:
        case SqlParser.HEX:
        case SqlParser.IFNULL:
        case SqlParser.INET6_ATON:
        case SqlParser.INET6_NTOA:
        case SqlParser.INET_ATON:
        case SqlParser.INET_NTOA:
        case SqlParser.INSTR:
        case SqlParser.INTERIORRINGN:
        case SqlParser.INTERSECTS:
        case SqlParser.ISCLOSED:
        case SqlParser.ISEMPTY:
        case SqlParser.ISNULL:
        case SqlParser.ISSIMPLE:
        case SqlParser.IS_FREE_LOCK:
        case SqlParser.IS_IPV4:
        case SqlParser.IS_IPV4_COMPAT:
        case SqlParser.IS_IPV4_MAPPED:
        case SqlParser.IS_IPV6:
        case SqlParser.IS_USED_LOCK:
        case SqlParser.LAST_INSERT_ID:
        case SqlParser.LCASE:
        case SqlParser.LEAST:
        case SqlParser.LENGTH:
        case SqlParser.LINEFROMTEXT:
        case SqlParser.LINEFROMWKB:
        case SqlParser.LINESTRINGFROMTEXT:
        case SqlParser.LINESTRINGFROMWKB:
        case SqlParser.LN:
        case SqlParser.LOAD_FILE:
        case SqlParser.LOCATE:
        case SqlParser.LOG:
        case SqlParser.LOG10:
        case SqlParser.LOG2:
        case SqlParser.LOWER:
        case SqlParser.LPAD:
        case SqlParser.LTRIM:
        case SqlParser.MAKEDATE:
        case SqlParser.MAKETIME:
        case SqlParser.MAKE_SET:
        case SqlParser.MASTER_POS_WAIT:
        case SqlParser.MBRCONTAINS:
        case SqlParser.MBRDISJOINT:
        case SqlParser.MBREQUAL:
        case SqlParser.MBRINTERSECTS:
        case SqlParser.MBROVERLAPS:
        case SqlParser.MBRTOUCHES:
        case SqlParser.MBRWITHIN:
        case SqlParser.MD5:
        case SqlParser.MLINEFROMTEXT:
        case SqlParser.MLINEFROMWKB:
        case SqlParser.MONTHNAME:
        case SqlParser.MPOINTFROMTEXT:
        case SqlParser.MPOINTFROMWKB:
        case SqlParser.MPOLYFROMTEXT:
        case SqlParser.MPOLYFROMWKB:
        case SqlParser.MULTILINESTRINGFROMTEXT:
        case SqlParser.MULTILINESTRINGFROMWKB:
        case SqlParser.MULTIPOINTFROMTEXT:
        case SqlParser.MULTIPOINTFROMWKB:
        case SqlParser.MULTIPOLYGONFROMTEXT:
        case SqlParser.MULTIPOLYGONFROMWKB:
        case SqlParser.NAME_CONST:
        case SqlParser.NULLIF:
        case SqlParser.NUMGEOMETRIES:
        case SqlParser.NUMINTERIORRINGS:
        case SqlParser.NUMPOINTS:
        case SqlParser.OCT:
        case SqlParser.OCTET_LENGTH:
        case SqlParser.ORD:
        case SqlParser.OVERLAPS:
        case SqlParser.PERIOD_ADD:
        case SqlParser.PERIOD_DIFF:
        case SqlParser.PI:
        case SqlParser.POINTFROMTEXT:
        case SqlParser.POINTFROMWKB:
        case SqlParser.POINTN:
        case SqlParser.POLYFROMTEXT:
        case SqlParser.POLYFROMWKB:
        case SqlParser.POLYGONFROMTEXT:
        case SqlParser.POLYGONFROMWKB:
        case SqlParser.POW:
        case SqlParser.POWER:
        case SqlParser.QUOTE:
        case SqlParser.RADIANS:
        case SqlParser.RAND:
        case SqlParser.RANDOM_BYTES:
        case SqlParser.RELEASE_LOCK:
        case SqlParser.REVERSE:
        case SqlParser.ROUND:
        case SqlParser.ROW_COUNT:
        case SqlParser.RPAD:
        case SqlParser.RTRIM:
        case SqlParser.SEC_TO_TIME:
        case SqlParser.SESSION_USER:
        case SqlParser.SHA:
        case SqlParser.SHA1:
        case SqlParser.SHA2:
        case SqlParser.SCHEMA_NAME:
        case SqlParser.SIGN:
        case SqlParser.SIN:
        case SqlParser.SLEEP:
        case SqlParser.SOUNDEX:
        case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
        case SqlParser.SQRT:
        case SqlParser.SRID:
        case SqlParser.STARTPOINT:
        case SqlParser.STRCMP:
        case SqlParser.STR_TO_DATE:
        case SqlParser.ST_AREA:
        case SqlParser.ST_ASBINARY:
        case SqlParser.ST_ASTEXT:
        case SqlParser.ST_ASWKB:
        case SqlParser.ST_ASWKT:
        case SqlParser.ST_BUFFER:
        case SqlParser.ST_CENTROID:
        case SqlParser.ST_CONTAINS:
        case SqlParser.ST_CROSSES:
        case SqlParser.ST_DIFFERENCE:
        case SqlParser.ST_DIMENSION:
        case SqlParser.ST_DISJOINT:
        case SqlParser.ST_DISTANCE:
        case SqlParser.ST_ENDPOINT:
        case SqlParser.ST_ENVELOPE:
        case SqlParser.ST_EQUALS:
        case SqlParser.ST_EXTERIORRING:
        case SqlParser.ST_GEOMCOLLFROMTEXT:
        case SqlParser.ST_GEOMCOLLFROMTXT:
        case SqlParser.ST_GEOMCOLLFROMWKB:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.ST_GEOMETRYFROMTEXT:
        case SqlParser.ST_GEOMETRYFROMWKB:
        case SqlParser.ST_GEOMETRYN:
        case SqlParser.ST_GEOMETRYTYPE:
        case SqlParser.ST_GEOMFROMTEXT:
        case SqlParser.ST_GEOMFROMWKB:
        case SqlParser.ST_INTERIORRINGN:
        case SqlParser.ST_INTERSECTION:
        case SqlParser.ST_INTERSECTS:
        case SqlParser.ST_ISCLOSED:
        case SqlParser.ST_ISEMPTY:
        case SqlParser.ST_ISSIMPLE:
        case SqlParser.ST_LINEFROMTEXT:
        case SqlParser.ST_LINEFROMWKB:
        case SqlParser.ST_LINESTRINGFROMTEXT:
        case SqlParser.ST_LINESTRINGFROMWKB:
        case SqlParser.ST_NUMGEOMETRIES:
        case SqlParser.ST_NUMINTERIORRING:
        case SqlParser.ST_NUMINTERIORRINGS:
        case SqlParser.ST_NUMPOINTS:
        case SqlParser.ST_OVERLAPS:
        case SqlParser.ST_POINTFROMTEXT:
        case SqlParser.ST_POINTFROMWKB:
        case SqlParser.ST_POINTN:
        case SqlParser.ST_POLYFROMTEXT:
        case SqlParser.ST_POLYFROMWKB:
        case SqlParser.ST_POLYGONFROMTEXT:
        case SqlParser.ST_POLYGONFROMWKB:
        case SqlParser.ST_SRID:
        case SqlParser.ST_STARTPOINT:
        case SqlParser.ST_SYMDIFFERENCE:
        case SqlParser.ST_TOUCHES:
        case SqlParser.ST_UNION:
        case SqlParser.ST_WITHIN:
        case SqlParser.ST_X:
        case SqlParser.ST_Y:
        case SqlParser.SUBDATE:
        case SqlParser.SUBSTRING_INDEX:
        case SqlParser.SUBTIME:
        case SqlParser.SYSTEM_USER:
        case SqlParser.TAN:
        case SqlParser.TIMEDIFF:
        case SqlParser.TIMESTAMPADD:
        case SqlParser.TIMESTAMPDIFF:
        case SqlParser.TIME_FORMAT:
        case SqlParser.TIME_TO_SEC:
        case SqlParser.TOUCHES:
        case SqlParser.TO_BASE64:
        case SqlParser.TO_DAYS:
        case SqlParser.TO_SECONDS:
        case SqlParser.UCASE:
        case SqlParser.UNCOMPRESS:
        case SqlParser.UNCOMPRESSED_LENGTH:
        case SqlParser.UNHEX:
        case SqlParser.UNIX_TIMESTAMP:
        case SqlParser.UPDATEXML:
        case SqlParser.UPPER:
        case SqlParser.UUID:
        case SqlParser.UUID_SHORT:
        case SqlParser.VALIDATE_PASSWORD_STRENGTH:
        case SqlParser.VERSION:
        case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
        case SqlParser.WEEKDAY:
        case SqlParser.WEEKOFYEAR:
        case SqlParser.WEIGHT_STRING:
        case SqlParser.WITHIN:
        case SqlParser.YEARWEEK:
        case SqlParser.Y_FUNCTION:
        case SqlParser.X_FUNCTION:
        case SqlParser.AT_SIGN:
        case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
        case SqlParser.STRING_LITERAL:
        case SqlParser.ID:
        case SqlParser.REVERSE_QUOTE_ID:
        case SqlParser.LOCAL_ID:
        case SqlParser.GLOBAL_ID:
            this.state = 5361;
            this.variableClause();
            this.state = 5362;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 5363;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.NUMBER || _la===SqlParser.ROW_COUNT)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5371;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 5364;
                this.match(SqlParser.COMMA);
                this.state = 5365;
                this.variableClause();
                this.state = 5366;
                this.match(SqlParser.EQUAL_SYMBOL);
                this.state = 5367;
                _la = this._input.LA(1);
                if(!(_la===SqlParser.NUMBER || _la===SqlParser.ROW_COUNT)) {
                this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
                this.state = 5373;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;
        case SqlParser.CONDITION:
            this.state = 5374;
            this.match(SqlParser.CONDITION);
            this.state = 5377;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.ZERO_DECIMAL:
            case SqlParser.ONE_DECIMAL:
            case SqlParser.TWO_DECIMAL:
            case SqlParser.DECIMAL_LITERAL:
                this.state = 5375;
                this.decimalLiteral();
                break;
            case SqlParser.CURRENT:
            case SqlParser.DATABASE:
            case SqlParser.DIAGNOSTICS:
            case SqlParser.LEFT:
            case SqlParser.NUMBER:
            case SqlParser.RIGHT:
            case SqlParser.STACKED:
            case SqlParser.DATE:
            case SqlParser.TIME:
            case SqlParser.TIMESTAMP:
            case SqlParser.DATETIME:
            case SqlParser.YEAR:
            case SqlParser.TEXT:
            case SqlParser.ENUM:
            case SqlParser.SERIAL:
            case SqlParser.JSON_VALID:
            case SqlParser.JSON_SCHEMA_VALID:
            case SqlParser.COUNT:
            case SqlParser.POSITION:
            case SqlParser.ACCOUNT:
            case SqlParser.ACTION:
            case SqlParser.AFTER:
            case SqlParser.AGGREGATE:
            case SqlParser.ALGORITHM:
            case SqlParser.ANY:
            case SqlParser.AT:
            case SqlParser.AUTHORS:
            case SqlParser.AUTOCOMMIT:
            case SqlParser.AUTOEXTEND_SIZE:
            case SqlParser.AUTO_INCREMENT:
            case SqlParser.AVG_ROW_LENGTH:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.BIT:
            case SqlParser.BLOCK:
            case SqlParser.BOOL:
            case SqlParser.BOOLEAN:
            case SqlParser.BTREE:
            case SqlParser.CACHE:
            case SqlParser.CASCADED:
            case SqlParser.CHAIN:
            case SqlParser.CHANGED:
            case SqlParser.CHANNEL:
            case SqlParser.CHECKSUM:
            case SqlParser.PAGE_CHECKSUM:
            case SqlParser.CIPHER:
            case SqlParser.CLASS_ORIGIN:
            case SqlParser.CLIENT:
            case SqlParser.CLOSE:
            case SqlParser.COALESCE:
            case SqlParser.CODE:
            case SqlParser.COLUMNS:
            case SqlParser.COLUMN_FORMAT:
            case SqlParser.COLUMN_NAME:
            case SqlParser.COMMENT:
            case SqlParser.COMMIT:
            case SqlParser.COMPACT:
            case SqlParser.COMPLETION:
            case SqlParser.COMPRESSED:
            case SqlParser.COMPRESSION:
            case SqlParser.CONCURRENT:
            case SqlParser.CONNECTION:
            case SqlParser.CONSISTENT:
            case SqlParser.CONSTRAINT_CATALOG:
            case SqlParser.CONSTRAINT_SCHEMA:
            case SqlParser.CONSTRAINT_NAME:
            case SqlParser.CONTAINS:
            case SqlParser.CONTEXT:
            case SqlParser.CONTRIBUTORS:
            case SqlParser.COPY:
            case SqlParser.CPU:
            case SqlParser.CURSOR_NAME:
            case SqlParser.DATA:
            case SqlParser.DATAFILE:
            case SqlParser.DEALLOCATE:
            case SqlParser.DEFAULT_AUTH:
            case SqlParser.DEFINER:
            case SqlParser.DELAY_KEY_WRITE:
            case SqlParser.DES_KEY_FILE:
            case SqlParser.DIRECTORY:
            case SqlParser.DISABLE:
            case SqlParser.DISCARD:
            case SqlParser.DISK:
            case SqlParser.DO:
            case SqlParser.DUMPFILE:
            case SqlParser.DUPLICATE:
            case SqlParser.DYNAMIC:
            case SqlParser.ENABLE:
            case SqlParser.ENCRYPTION:
            case SqlParser.END:
            case SqlParser.ENDS:
            case SqlParser.ENGINE:
            case SqlParser.ENGINES:
            case SqlParser.ERROR:
            case SqlParser.ERRORS:
            case SqlParser.ESCAPE:
            case SqlParser.EVEN:
            case SqlParser.EVENT:
            case SqlParser.EVENTS:
            case SqlParser.EVERY:
            case SqlParser.EXCHANGE:
            case SqlParser.EXCLUSIVE:
            case SqlParser.EXPIRE:
            case SqlParser.EXPORT:
            case SqlParser.EXTENDED:
            case SqlParser.EXTENT_SIZE:
            case SqlParser.FAST:
            case SqlParser.FAULTS:
            case SqlParser.FIELDS:
            case SqlParser.FILE_BLOCK_SIZE:
            case SqlParser.FILTER:
            case SqlParser.FIRST:
            case SqlParser.FIXED:
            case SqlParser.FLUSH:
            case SqlParser.FOLLOWS:
            case SqlParser.FOUND:
            case SqlParser.FULL:
            case SqlParser.FUNCTION:
            case SqlParser.GENERAL:
            case SqlParser.GLOBAL:
            case SqlParser.GRANTS:
            case SqlParser.GROUP_REPLICATION:
            case SqlParser.HANDLER:
            case SqlParser.HASH:
            case SqlParser.HELP:
            case SqlParser.HOST:
            case SqlParser.HOSTS:
            case SqlParser.IDENTIFIED:
            case SqlParser.IGNORE_SERVER_IDS:
            case SqlParser.IMPORT:
            case SqlParser.INDEXES:
            case SqlParser.INITIAL_SIZE:
            case SqlParser.INPLACE:
            case SqlParser.INSERT_METHOD:
            case SqlParser.INSTALL:
            case SqlParser.INSTANCE:
            case SqlParser.INVISIBLE:
            case SqlParser.INVOKER:
            case SqlParser.IO:
            case SqlParser.IO_THREAD:
            case SqlParser.IPC:
            case SqlParser.ISOLATION:
            case SqlParser.ISSUER:
            case SqlParser.JSON:
            case SqlParser.KEY_BLOCK_SIZE:
            case SqlParser.LANGUAGE:
            case SqlParser.LAST:
            case SqlParser.LEAVES:
            case SqlParser.LESS:
            case SqlParser.LEVEL:
            case SqlParser.LIST:
            case SqlParser.LOCAL:
            case SqlParser.LOGFILE:
            case SqlParser.LOGS:
            case SqlParser.MASTER:
            case SqlParser.MASTER_AUTO_POSITION:
            case SqlParser.MASTER_CONNECT_RETRY:
            case SqlParser.MASTER_DELAY:
            case SqlParser.MASTER_HEARTBEAT_PERIOD:
            case SqlParser.MASTER_HOST:
            case SqlParser.MASTER_LOG_FILE:
            case SqlParser.MASTER_LOG_POS:
            case SqlParser.MASTER_PASSWORD:
            case SqlParser.MASTER_PORT:
            case SqlParser.MASTER_RETRY_COUNT:
            case SqlParser.MASTER_SSL:
            case SqlParser.MASTER_SSL_CA:
            case SqlParser.MASTER_SSL_CAPATH:
            case SqlParser.MASTER_SSL_CERT:
            case SqlParser.MASTER_SSL_CIPHER:
            case SqlParser.MASTER_SSL_CRL:
            case SqlParser.MASTER_SSL_CRLPATH:
            case SqlParser.MASTER_SSL_KEY:
            case SqlParser.MASTER_TLS_VERSION:
            case SqlParser.MASTER_USER:
            case SqlParser.MAX_CONNECTIONS_PER_HOUR:
            case SqlParser.MAX_QUERIES_PER_HOUR:
            case SqlParser.MAX_ROWS:
            case SqlParser.MAX_SIZE:
            case SqlParser.MAX_UPDATES_PER_HOUR:
            case SqlParser.MAX_USER_CONNECTIONS:
            case SqlParser.MEDIUM:
            case SqlParser.MERGE:
            case SqlParser.MESSAGE_TEXT:
            case SqlParser.MID:
            case SqlParser.MIGRATE:
            case SqlParser.MIN_ROWS:
            case SqlParser.MODE:
            case SqlParser.MODIFY:
            case SqlParser.MUTEX:
            case SqlParser.MYSQL:
            case SqlParser.MYSQL_ERRNO:
            case SqlParser.NAME:
            case SqlParser.NAMES:
            case SqlParser.NCHAR:
            case SqlParser.NEVER:
            case SqlParser.NEXT:
            case SqlParser.NO:
            case SqlParser.NODEGROUP:
            case SqlParser.NONE:
            case SqlParser.OFFLINE:
            case SqlParser.OFFSET:
            case SqlParser.OJ:
            case SqlParser.OLD_PASSWORD:
            case SqlParser.ONE:
            case SqlParser.ONLINE:
            case SqlParser.ONLY:
            case SqlParser.OPEN:
            case SqlParser.OPTIMIZER_COSTS:
            case SqlParser.OPTIONS:
            case SqlParser.OWNER:
            case SqlParser.PACK_KEYS:
            case SqlParser.PAGE:
            case SqlParser.PARSER:
            case SqlParser.PARTIAL:
            case SqlParser.PARTITIONING:
            case SqlParser.PARTITIONS:
            case SqlParser.PASSWORD:
            case SqlParser.PHASE:
            case SqlParser.PLUGIN:
            case SqlParser.PLUGIN_DIR:
            case SqlParser.PLUGINS:
            case SqlParser.PORT:
            case SqlParser.PRECEDES:
            case SqlParser.PREPARE:
            case SqlParser.PRESERVE:
            case SqlParser.PREV:
            case SqlParser.PROCESSLIST:
            case SqlParser.PROFILE:
            case SqlParser.PROFILES:
            case SqlParser.PROXY:
            case SqlParser.QUERY:
            case SqlParser.QUICK:
            case SqlParser.REBUILD:
            case SqlParser.RECOVER:
            case SqlParser.REDO_BUFFER_SIZE:
            case SqlParser.REDUNDANT:
            case SqlParser.RELAY:
            case SqlParser.RELAY_LOG_FILE:
            case SqlParser.RELAY_LOG_POS:
            case SqlParser.RELAYLOG:
            case SqlParser.REMOVE:
            case SqlParser.REORGANIZE:
            case SqlParser.REPAIR:
            case SqlParser.REPLICATE_DO_DB:
            case SqlParser.REPLICATE_DO_TABLE:
            case SqlParser.REPLICATE_IGNORE_DB:
            case SqlParser.REPLICATE_IGNORE_TABLE:
            case SqlParser.REPLICATE_REWRITE_DB:
            case SqlParser.REPLICATE_WILD_DO_TABLE:
            case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
            case SqlParser.REPLICATION:
            case SqlParser.RESET:
            case SqlParser.RESUME:
            case SqlParser.RETURNED_SQLSTATE:
            case SqlParser.RETURNS:
            case SqlParser.ROLE:
            case SqlParser.ROLLBACK:
            case SqlParser.ROLLUP:
            case SqlParser.ROTATE:
            case SqlParser.ROW:
            case SqlParser.ROWS:
            case SqlParser.ROW_FORMAT:
            case SqlParser.SAVEPOINT:
            case SqlParser.SCHEDULE:
            case SqlParser.SECURITY:
            case SqlParser.SERVER:
            case SqlParser.SESSION:
            case SqlParser.SHARE:
            case SqlParser.SHARED:
            case SqlParser.SIGNED:
            case SqlParser.SIMPLE:
            case SqlParser.SLAVE:
            case SqlParser.SLOW:
            case SqlParser.SNAPSHOT:
            case SqlParser.SOCKET:
            case SqlParser.SOME:
            case SqlParser.SONAME:
            case SqlParser.SOUNDS:
            case SqlParser.SOURCE:
            case SqlParser.SQL_AFTER_GTIDS:
            case SqlParser.SQL_AFTER_MTS_GAPS:
            case SqlParser.SQL_BEFORE_GTIDS:
            case SqlParser.SQL_BUFFER_RESULT:
            case SqlParser.SQL_CACHE:
            case SqlParser.SQL_NO_CACHE:
            case SqlParser.SQL_THREAD:
            case SqlParser.START:
            case SqlParser.STARTS:
            case SqlParser.STATS_AUTO_RECALC:
            case SqlParser.STATS_PERSISTENT:
            case SqlParser.STATS_SAMPLE_PAGES:
            case SqlParser.STATUS:
            case SqlParser.STOP:
            case SqlParser.STORAGE:
            case SqlParser.STRING:
            case SqlParser.SUBCLASS_ORIGIN:
            case SqlParser.SUBJECT:
            case SqlParser.SUBPARTITION:
            case SqlParser.SUBPARTITIONS:
            case SqlParser.SUSPEND:
            case SqlParser.SWAPS:
            case SqlParser.SWITCHES:
            case SqlParser.TABLE_NAME:
            case SqlParser.TABLESPACE:
            case SqlParser.TEMPORARY:
            case SqlParser.TEMPTABLE:
            case SqlParser.THAN:
            case SqlParser.TRADITIONAL:
            case SqlParser.TRANSACTION:
            case SqlParser.TRANSACTIONAL:
            case SqlParser.TRIGGERS:
            case SqlParser.TRUNCATE:
            case SqlParser.UNDEFINED:
            case SqlParser.UNDOFILE:
            case SqlParser.UNDO_BUFFER_SIZE:
            case SqlParser.UNINSTALL:
            case SqlParser.UNKNOWN:
            case SqlParser.UNTIL:
            case SqlParser.UPGRADE:
            case SqlParser.USER:
            case SqlParser.USE_FRM:
            case SqlParser.USER_RESOURCES:
            case SqlParser.VALIDATION:
            case SqlParser.VALUE:
            case SqlParser.VARIABLES:
            case SqlParser.VIEW:
            case SqlParser.VISIBLE:
            case SqlParser.WAIT:
            case SqlParser.WARNINGS:
            case SqlParser.WITHOUT:
            case SqlParser.WORK:
            case SqlParser.WRAPPER:
            case SqlParser.X509:
            case SqlParser.XA:
            case SqlParser.XML:
            case SqlParser.INTERNAL:
            case SqlParser.QUARTER:
            case SqlParser.MONTH:
            case SqlParser.DAY:
            case SqlParser.HOUR:
            case SqlParser.MINUTE:
            case SqlParser.WEEK:
            case SqlParser.SECOND:
            case SqlParser.MICROSECOND:
            case SqlParser.TABLES:
            case SqlParser.ROUTINE:
            case SqlParser.EXECUTE:
            case SqlParser.FILE:
            case SqlParser.PROCESS:
            case SqlParser.RELOAD:
            case SqlParser.SHUTDOWN:
            case SqlParser.SUPER:
            case SqlParser.PRIVILEGES:
            case SqlParser.AUDIT_ADMIN:
            case SqlParser.BACKUP_ADMIN:
            case SqlParser.BINLOG_ADMIN:
            case SqlParser.BINLOG_ENCRYPTION_ADMIN:
            case SqlParser.CLONE_ADMIN:
            case SqlParser.CONNECTION_ADMIN:
            case SqlParser.ENCRYPTION_KEY_ADMIN:
            case SqlParser.FIREWALL_ADMIN:
            case SqlParser.FIREWALL_USER:
            case SqlParser.GROUP_REPLICATION_ADMIN:
            case SqlParser.INNODB_REDO_LOG_ARCHIVE:
            case SqlParser.NDB_STORED_USER:
            case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
            case SqlParser.REPLICATION_APPLIER:
            case SqlParser.REPLICATION_SLAVE_ADMIN:
            case SqlParser.RESOURCE_GROUP_ADMIN:
            case SqlParser.RESOURCE_GROUP_USER:
            case SqlParser.ROLE_ADMIN:
            case SqlParser.SESSION_VARIABLES_ADMIN:
            case SqlParser.SET_USER_ID:
            case SqlParser.SHOW_ROUTINE:
            case SqlParser.SYSTEM_VARIABLES_ADMIN:
            case SqlParser.TABLE_ENCRYPTION_ADMIN:
            case SqlParser.VERSION_TOKEN_ADMIN:
            case SqlParser.XA_RECOVER_ADMIN:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.ARCHIVE:
            case SqlParser.BLACKHOLE:
            case SqlParser.CSV:
            case SqlParser.FEDERATED:
            case SqlParser.INNODB:
            case SqlParser.MEMORY:
            case SqlParser.MRG_MYISAM:
            case SqlParser.MYISAM:
            case SqlParser.NDB:
            case SqlParser.NDBCLUSTER:
            case SqlParser.PERFORMANCE_SCHEMA:
            case SqlParser.TOKUDB:
            case SqlParser.REPEATABLE:
            case SqlParser.COMMITTED:
            case SqlParser.UNCOMMITTED:
            case SqlParser.SERIALIZABLE:
            case SqlParser.GEOMETRYCOLLECTION:
            case SqlParser.LINESTRING:
            case SqlParser.MULTILINESTRING:
            case SqlParser.MULTIPOINT:
            case SqlParser.MULTIPOLYGON:
            case SqlParser.POINT:
            case SqlParser.POLYGON:
            case SqlParser.ABS:
            case SqlParser.ACOS:
            case SqlParser.ADDDATE:
            case SqlParser.ADDTIME:
            case SqlParser.AES_DECRYPT:
            case SqlParser.AES_ENCRYPT:
            case SqlParser.AREA:
            case SqlParser.ASBINARY:
            case SqlParser.ASIN:
            case SqlParser.ASTEXT:
            case SqlParser.ASWKB:
            case SqlParser.ASWKT:
            case SqlParser.ASYMMETRIC_DECRYPT:
            case SqlParser.ASYMMETRIC_DERIVE:
            case SqlParser.ASYMMETRIC_ENCRYPT:
            case SqlParser.ASYMMETRIC_SIGN:
            case SqlParser.ASYMMETRIC_VERIFY:
            case SqlParser.ATAN:
            case SqlParser.ATAN2:
            case SqlParser.BENCHMARK:
            case SqlParser.BIN:
            case SqlParser.BIT_COUNT:
            case SqlParser.BIT_LENGTH:
            case SqlParser.BUFFER:
            case SqlParser.CATALOG_NAME:
            case SqlParser.CEIL:
            case SqlParser.CEILING:
            case SqlParser.CENTROID:
            case SqlParser.CHARACTER_LENGTH:
            case SqlParser.CHARSET:
            case SqlParser.CHAR_LENGTH:
            case SqlParser.COERCIBILITY:
            case SqlParser.COLLATION:
            case SqlParser.COMPRESS:
            case SqlParser.CONCAT:
            case SqlParser.CONCAT_WS:
            case SqlParser.CONNECTION_ID:
            case SqlParser.CONV:
            case SqlParser.CONVERT_TZ:
            case SqlParser.COS:
            case SqlParser.COT:
            case SqlParser.CRC32:
            case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
            case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
            case SqlParser.CREATE_DH_PARAMETERS:
            case SqlParser.CREATE_DIGEST:
            case SqlParser.CROSSES:
            case SqlParser.DATEDIFF:
            case SqlParser.DATE_FORMAT:
            case SqlParser.DAYNAME:
            case SqlParser.DAYOFMONTH:
            case SqlParser.DAYOFWEEK:
            case SqlParser.DAYOFYEAR:
            case SqlParser.DECODE:
            case SqlParser.DEGREES:
            case SqlParser.DES_DECRYPT:
            case SqlParser.DES_ENCRYPT:
            case SqlParser.DIMENSION:
            case SqlParser.DISJOINT:
            case SqlParser.ELT:
            case SqlParser.ENCODE:
            case SqlParser.ENCRYPT:
            case SqlParser.ENDPOINT:
            case SqlParser.ENVELOPE:
            case SqlParser.EQUALS:
            case SqlParser.EXP:
            case SqlParser.EXPORT_SET:
            case SqlParser.EXTERIORRING:
            case SqlParser.EXTRACTVALUE:
            case SqlParser.FIELD:
            case SqlParser.FIND_IN_SET:
            case SqlParser.FLOOR:
            case SqlParser.FORMAT:
            case SqlParser.FOUND_ROWS:
            case SqlParser.FROM_BASE64:
            case SqlParser.FROM_DAYS:
            case SqlParser.FROM_UNIXTIME:
            case SqlParser.GEOMCOLLFROMTEXT:
            case SqlParser.GEOMCOLLFROMWKB:
            case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.GEOMETRYFROMTEXT:
            case SqlParser.GEOMETRYFROMWKB:
            case SqlParser.GEOMETRYN:
            case SqlParser.GEOMETRYTYPE:
            case SqlParser.GEOMFROMTEXT:
            case SqlParser.GEOMFROMWKB:
            case SqlParser.GET_FORMAT:
            case SqlParser.GET_LOCK:
            case SqlParser.GLENGTH:
            case SqlParser.GREATEST:
            case SqlParser.GTID_SUBSET:
            case SqlParser.GTID_SUBTRACT:
            case SqlParser.HEX:
            case SqlParser.IFNULL:
            case SqlParser.INET6_ATON:
            case SqlParser.INET6_NTOA:
            case SqlParser.INET_ATON:
            case SqlParser.INET_NTOA:
            case SqlParser.INSTR:
            case SqlParser.INTERIORRINGN:
            case SqlParser.INTERSECTS:
            case SqlParser.ISCLOSED:
            case SqlParser.ISEMPTY:
            case SqlParser.ISNULL:
            case SqlParser.ISSIMPLE:
            case SqlParser.IS_FREE_LOCK:
            case SqlParser.IS_IPV4:
            case SqlParser.IS_IPV4_COMPAT:
            case SqlParser.IS_IPV4_MAPPED:
            case SqlParser.IS_IPV6:
            case SqlParser.IS_USED_LOCK:
            case SqlParser.LAST_INSERT_ID:
            case SqlParser.LCASE:
            case SqlParser.LEAST:
            case SqlParser.LENGTH:
            case SqlParser.LINEFROMTEXT:
            case SqlParser.LINEFROMWKB:
            case SqlParser.LINESTRINGFROMTEXT:
            case SqlParser.LINESTRINGFROMWKB:
            case SqlParser.LN:
            case SqlParser.LOAD_FILE:
            case SqlParser.LOCATE:
            case SqlParser.LOG:
            case SqlParser.LOG10:
            case SqlParser.LOG2:
            case SqlParser.LOWER:
            case SqlParser.LPAD:
            case SqlParser.LTRIM:
            case SqlParser.MAKEDATE:
            case SqlParser.MAKETIME:
            case SqlParser.MAKE_SET:
            case SqlParser.MASTER_POS_WAIT:
            case SqlParser.MBRCONTAINS:
            case SqlParser.MBRDISJOINT:
            case SqlParser.MBREQUAL:
            case SqlParser.MBRINTERSECTS:
            case SqlParser.MBROVERLAPS:
            case SqlParser.MBRTOUCHES:
            case SqlParser.MBRWITHIN:
            case SqlParser.MD5:
            case SqlParser.MLINEFROMTEXT:
            case SqlParser.MLINEFROMWKB:
            case SqlParser.MONTHNAME:
            case SqlParser.MPOINTFROMTEXT:
            case SqlParser.MPOINTFROMWKB:
            case SqlParser.MPOLYFROMTEXT:
            case SqlParser.MPOLYFROMWKB:
            case SqlParser.MULTILINESTRINGFROMTEXT:
            case SqlParser.MULTILINESTRINGFROMWKB:
            case SqlParser.MULTIPOINTFROMTEXT:
            case SqlParser.MULTIPOINTFROMWKB:
            case SqlParser.MULTIPOLYGONFROMTEXT:
            case SqlParser.MULTIPOLYGONFROMWKB:
            case SqlParser.NAME_CONST:
            case SqlParser.NULLIF:
            case SqlParser.NUMGEOMETRIES:
            case SqlParser.NUMINTERIORRINGS:
            case SqlParser.NUMPOINTS:
            case SqlParser.OCT:
            case SqlParser.OCTET_LENGTH:
            case SqlParser.ORD:
            case SqlParser.OVERLAPS:
            case SqlParser.PERIOD_ADD:
            case SqlParser.PERIOD_DIFF:
            case SqlParser.PI:
            case SqlParser.POINTFROMTEXT:
            case SqlParser.POINTFROMWKB:
            case SqlParser.POINTN:
            case SqlParser.POLYFROMTEXT:
            case SqlParser.POLYFROMWKB:
            case SqlParser.POLYGONFROMTEXT:
            case SqlParser.POLYGONFROMWKB:
            case SqlParser.POW:
            case SqlParser.POWER:
            case SqlParser.QUOTE:
            case SqlParser.RADIANS:
            case SqlParser.RAND:
            case SqlParser.RANDOM_BYTES:
            case SqlParser.RELEASE_LOCK:
            case SqlParser.REVERSE:
            case SqlParser.ROUND:
            case SqlParser.ROW_COUNT:
            case SqlParser.RPAD:
            case SqlParser.RTRIM:
            case SqlParser.SEC_TO_TIME:
            case SqlParser.SESSION_USER:
            case SqlParser.SHA:
            case SqlParser.SHA1:
            case SqlParser.SHA2:
            case SqlParser.SCHEMA_NAME:
            case SqlParser.SIGN:
            case SqlParser.SIN:
            case SqlParser.SLEEP:
            case SqlParser.SOUNDEX:
            case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
            case SqlParser.SQRT:
            case SqlParser.SRID:
            case SqlParser.STARTPOINT:
            case SqlParser.STRCMP:
            case SqlParser.STR_TO_DATE:
            case SqlParser.ST_AREA:
            case SqlParser.ST_ASBINARY:
            case SqlParser.ST_ASTEXT:
            case SqlParser.ST_ASWKB:
            case SqlParser.ST_ASWKT:
            case SqlParser.ST_BUFFER:
            case SqlParser.ST_CENTROID:
            case SqlParser.ST_CONTAINS:
            case SqlParser.ST_CROSSES:
            case SqlParser.ST_DIFFERENCE:
            case SqlParser.ST_DIMENSION:
            case SqlParser.ST_DISJOINT:
            case SqlParser.ST_DISTANCE:
            case SqlParser.ST_ENDPOINT:
            case SqlParser.ST_ENVELOPE:
            case SqlParser.ST_EQUALS:
            case SqlParser.ST_EXTERIORRING:
            case SqlParser.ST_GEOMCOLLFROMTEXT:
            case SqlParser.ST_GEOMCOLLFROMTXT:
            case SqlParser.ST_GEOMCOLLFROMWKB:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.ST_GEOMETRYFROMTEXT:
            case SqlParser.ST_GEOMETRYFROMWKB:
            case SqlParser.ST_GEOMETRYN:
            case SqlParser.ST_GEOMETRYTYPE:
            case SqlParser.ST_GEOMFROMTEXT:
            case SqlParser.ST_GEOMFROMWKB:
            case SqlParser.ST_INTERIORRINGN:
            case SqlParser.ST_INTERSECTION:
            case SqlParser.ST_INTERSECTS:
            case SqlParser.ST_ISCLOSED:
            case SqlParser.ST_ISEMPTY:
            case SqlParser.ST_ISSIMPLE:
            case SqlParser.ST_LINEFROMTEXT:
            case SqlParser.ST_LINEFROMWKB:
            case SqlParser.ST_LINESTRINGFROMTEXT:
            case SqlParser.ST_LINESTRINGFROMWKB:
            case SqlParser.ST_NUMGEOMETRIES:
            case SqlParser.ST_NUMINTERIORRING:
            case SqlParser.ST_NUMINTERIORRINGS:
            case SqlParser.ST_NUMPOINTS:
            case SqlParser.ST_OVERLAPS:
            case SqlParser.ST_POINTFROMTEXT:
            case SqlParser.ST_POINTFROMWKB:
            case SqlParser.ST_POINTN:
            case SqlParser.ST_POLYFROMTEXT:
            case SqlParser.ST_POLYFROMWKB:
            case SqlParser.ST_POLYGONFROMTEXT:
            case SqlParser.ST_POLYGONFROMWKB:
            case SqlParser.ST_SRID:
            case SqlParser.ST_STARTPOINT:
            case SqlParser.ST_SYMDIFFERENCE:
            case SqlParser.ST_TOUCHES:
            case SqlParser.ST_UNION:
            case SqlParser.ST_WITHIN:
            case SqlParser.ST_X:
            case SqlParser.ST_Y:
            case SqlParser.SUBDATE:
            case SqlParser.SUBSTRING_INDEX:
            case SqlParser.SUBTIME:
            case SqlParser.SYSTEM_USER:
            case SqlParser.TAN:
            case SqlParser.TIMEDIFF:
            case SqlParser.TIMESTAMPADD:
            case SqlParser.TIMESTAMPDIFF:
            case SqlParser.TIME_FORMAT:
            case SqlParser.TIME_TO_SEC:
            case SqlParser.TOUCHES:
            case SqlParser.TO_BASE64:
            case SqlParser.TO_DAYS:
            case SqlParser.TO_SECONDS:
            case SqlParser.UCASE:
            case SqlParser.UNCOMPRESS:
            case SqlParser.UNCOMPRESSED_LENGTH:
            case SqlParser.UNHEX:
            case SqlParser.UNIX_TIMESTAMP:
            case SqlParser.UPDATEXML:
            case SqlParser.UPPER:
            case SqlParser.UUID:
            case SqlParser.UUID_SHORT:
            case SqlParser.VALIDATE_PASSWORD_STRENGTH:
            case SqlParser.VERSION:
            case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
            case SqlParser.WEEKDAY:
            case SqlParser.WEEKOFYEAR:
            case SqlParser.WEIGHT_STRING:
            case SqlParser.WITHIN:
            case SqlParser.YEARWEEK:
            case SqlParser.Y_FUNCTION:
            case SqlParser.X_FUNCTION:
            case SqlParser.AT_SIGN:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.STRING_LITERAL:
            case SqlParser.ID:
            case SqlParser.REVERSE_QUOTE_ID:
            case SqlParser.LOCAL_ID:
            case SqlParser.GLOBAL_ID:
                this.state = 5376;
                this.variableClause();
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            this.state = 5379;
            this.variableClause();
            this.state = 5380;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 5381;
            this.diagnosticsConditionInformationName();
            this.state = 5389;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 5382;
                this.match(SqlParser.COMMA);
                this.state = 5383;
                this.variableClause();
                this.state = 5384;
                this.match(SqlParser.EQUAL_SYMBOL);
                this.state = 5385;
                this.diagnosticsConditionInformationName();
                this.state = 5391;
                this._errHandler.sync(this);
                _la = this._input.LA(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 DiagnosticsConditionInformationNameContext(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_diagnosticsConditionInformationName;
    return this;
}

DiagnosticsConditionInformationNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DiagnosticsConditionInformationNameContext.prototype.constructor = DiagnosticsConditionInformationNameContext;

DiagnosticsConditionInformationNameContext.prototype.CLASS_ORIGIN = function() {
    return this.getToken(SqlParser.CLASS_ORIGIN, 0);
};

DiagnosticsConditionInformationNameContext.prototype.SUBCLASS_ORIGIN = function() {
    return this.getToken(SqlParser.SUBCLASS_ORIGIN, 0);
};

DiagnosticsConditionInformationNameContext.prototype.RETURNED_SQLSTATE = function() {
    return this.getToken(SqlParser.RETURNED_SQLSTATE, 0);
};

DiagnosticsConditionInformationNameContext.prototype.MESSAGE_TEXT = function() {
    return this.getToken(SqlParser.MESSAGE_TEXT, 0);
};

DiagnosticsConditionInformationNameContext.prototype.MYSQL_ERRNO = function() {
    return this.getToken(SqlParser.MYSQL_ERRNO, 0);
};

DiagnosticsConditionInformationNameContext.prototype.CONSTRAINT_CATALOG = function() {
    return this.getToken(SqlParser.CONSTRAINT_CATALOG, 0);
};

DiagnosticsConditionInformationNameContext.prototype.CONSTRAINT_SCHEMA = function() {
    return this.getToken(SqlParser.CONSTRAINT_SCHEMA, 0);
};

DiagnosticsConditionInformationNameContext.prototype.CONSTRAINT_NAME = function() {
    return this.getToken(SqlParser.CONSTRAINT_NAME, 0);
};

DiagnosticsConditionInformationNameContext.prototype.CATALOG_NAME = function() {
    return this.getToken(SqlParser.CATALOG_NAME, 0);
};

DiagnosticsConditionInformationNameContext.prototype.SCHEMA_NAME = function() {
    return this.getToken(SqlParser.SCHEMA_NAME, 0);
};

DiagnosticsConditionInformationNameContext.prototype.TABLE_NAME = function() {
    return this.getToken(SqlParser.TABLE_NAME, 0);
};

DiagnosticsConditionInformationNameContext.prototype.COLUMN_NAME = function() {
    return this.getToken(SqlParser.COLUMN_NAME, 0);
};

DiagnosticsConditionInformationNameContext.prototype.CURSOR_NAME = function() {
    return this.getToken(SqlParser.CURSOR_NAME, 0);
};

DiagnosticsConditionInformationNameContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDiagnosticsConditionInformationName(this);
	}
};

DiagnosticsConditionInformationNameContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDiagnosticsConditionInformationName(this);
	}
};

DiagnosticsConditionInformationNameContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDiagnosticsConditionInformationName(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DiagnosticsConditionInformationNameContext = DiagnosticsConditionInformationNameContext;

SqlParser.prototype.diagnosticsConditionInformationName = function() {

    var localctx = new DiagnosticsConditionInformationNameContext(this, this._ctx, this.state);
    this.enterRule(localctx, 494, SqlParser.RULE_diagnosticsConditionInformationName);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5394;
        _la = this._input.LA(1);
        if(!(((((_la - 297)) & ~0x1f) == 0 && ((1 << (_la - 297)) & ((1 << (SqlParser.CLASS_ORIGIN - 297)) | (1 << (SqlParser.COLUMN_NAME - 297)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 297)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 297)) | (1 << (SqlParser.CONSTRAINT_NAME - 297)) | (1 << (SqlParser.CURSOR_NAME - 297)))) !== 0) || _la===SqlParser.MESSAGE_TEXT || _la===SqlParser.MYSQL_ERRNO || _la===SqlParser.RETURNED_SQLSTATE || _la===SqlParser.SUBCLASS_ORIGIN || _la===SqlParser.TABLE_NAME || _la===SqlParser.CATALOG_NAME || _la===SqlParser.SCHEMA_NAME)) {
        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 DescribeObjectClauseContext(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_describeObjectClause;
    return this;
}

DescribeObjectClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DescribeObjectClauseContext.prototype.constructor = DescribeObjectClauseContext;


 
DescribeObjectClauseContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function DescribeStatementsContext(parser, ctx) {
	DescribeObjectClauseContext.call(this, parser);
    DescribeObjectClauseContext.prototype.copyFrom.call(this, ctx);
    return this;
}

DescribeStatementsContext.prototype = Object.create(DescribeObjectClauseContext.prototype);
DescribeStatementsContext.prototype.constructor = DescribeStatementsContext;

SqlParser.DescribeStatementsContext = DescribeStatementsContext;

DescribeStatementsContext.prototype.selectStatement = function() {
    return this.getTypedRuleContext(SelectStatementContext,0);
};

DescribeStatementsContext.prototype.deleteStatement = function() {
    return this.getTypedRuleContext(DeleteStatementContext,0);
};

DescribeStatementsContext.prototype.insertStatement = function() {
    return this.getTypedRuleContext(InsertStatementContext,0);
};

DescribeStatementsContext.prototype.replaceStatement = function() {
    return this.getTypedRuleContext(ReplaceStatementContext,0);
};

DescribeStatementsContext.prototype.updateStatement = function() {
    return this.getTypedRuleContext(UpdateStatementContext,0);
};
DescribeStatementsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDescribeStatements(this);
	}
};

DescribeStatementsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDescribeStatements(this);
	}
};

DescribeStatementsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDescribeStatements(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function DescribeConnectionContext(parser, ctx) {
	DescribeObjectClauseContext.call(this, parser);
    DescribeObjectClauseContext.prototype.copyFrom.call(this, ctx);
    return this;
}

DescribeConnectionContext.prototype = Object.create(DescribeObjectClauseContext.prototype);
DescribeConnectionContext.prototype.constructor = DescribeConnectionContext;

SqlParser.DescribeConnectionContext = DescribeConnectionContext;

DescribeConnectionContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};

DescribeConnectionContext.prototype.CONNECTION = function() {
    return this.getToken(SqlParser.CONNECTION, 0);
};

DescribeConnectionContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};
DescribeConnectionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDescribeConnection(this);
	}
};

DescribeConnectionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDescribeConnection(this);
	}
};

DescribeConnectionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDescribeConnection(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.DescribeObjectClauseContext = DescribeObjectClauseContext;

SqlParser.prototype.describeObjectClause = function() {

    var localctx = new DescribeObjectClauseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 496, SqlParser.RULE_describeObjectClause);
    try {
        this.state = 5406;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.DELETE:
        case SqlParser.INSERT:
        case SqlParser.REPLACE:
        case SqlParser.SELECT:
        case SqlParser.UPDATE:
        case SqlParser.LR_BRACKET:
            localctx = new DescribeStatementsContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 5401;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.SELECT:
            case SqlParser.LR_BRACKET:
                this.state = 5396;
                this.selectStatement();
                break;
            case SqlParser.DELETE:
                this.state = 5397;
                this.deleteStatement();
                break;
            case SqlParser.INSERT:
                this.state = 5398;
                this.insertStatement();
                break;
            case SqlParser.REPLACE:
                this.state = 5399;
                this.replaceStatement();
                break;
            case SqlParser.UPDATE:
                this.state = 5400;
                this.updateStatement();
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            break;
        case SqlParser.FOR:
            localctx = new DescribeConnectionContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 5403;
            this.match(SqlParser.FOR);
            this.state = 5404;
            this.match(SqlParser.CONNECTION);
            this.state = 5405;
            this.uid();
            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 FullIdContext(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_fullId;
    return this;
}

FullIdContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FullIdContext.prototype.constructor = FullIdContext;

FullIdContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

FullIdContext.prototype.DOT_ID = function() {
    return this.getToken(SqlParser.DOT_ID, 0);
};

FullIdContext.prototype.DOT = function() {
    return this.getToken(SqlParser.DOT, 0);
};

FullIdContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFullId(this);
	}
};

FullIdContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFullId(this);
	}
};

FullIdContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitFullId(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.FullIdContext = FullIdContext;

SqlParser.prototype.fullId = function() {

    var localctx = new FullIdContext(this, this._ctx, this.state);
    this.enterRule(localctx, 498, SqlParser.RULE_fullId);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5408;
        this.uid();
        this.state = 5412;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,780,this._ctx);
        if(la_===1) {
            this.state = 5409;
            this.match(SqlParser.DOT_ID);

        } else if(la_===2) {
            this.state = 5410;
            this.match(SqlParser.DOT);
            this.state = 5411;
            this.uid();

        }
    } 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 TableNameContext(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_tableName;
    return this;
}

TableNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TableNameContext.prototype.constructor = TableNameContext;

TableNameContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

TableNameContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTableName(this);
	}
};

TableNameContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTableName(this);
	}
};

TableNameContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTableName(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.TableNameContext = TableNameContext;

SqlParser.prototype.tableName = function() {

    var localctx = new TableNameContext(this, this._ctx, this.state);
    this.enterRule(localctx, 500, SqlParser.RULE_tableName);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5414;
        this.fullId();
    } 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 FullColumnNameContext(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_fullColumnName;
    return this;
}

FullColumnNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FullColumnNameContext.prototype.constructor = FullColumnNameContext;

FullColumnNameContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

FullColumnNameContext.prototype.dottedId = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DottedIdContext);
    } else {
        return this.getTypedRuleContext(DottedIdContext,i);
    }
};

FullColumnNameContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFullColumnName(this);
	}
};

FullColumnNameContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFullColumnName(this);
	}
};

FullColumnNameContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitFullColumnName(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.FullColumnNameContext = FullColumnNameContext;

SqlParser.prototype.fullColumnName = function() {

    var localctx = new FullColumnNameContext(this, this._ctx, this.state);
    this.enterRule(localctx, 502, SqlParser.RULE_fullColumnName);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5416;
        this.uid();
        this.state = 5421;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,782,this._ctx);
        if(la_===1) {
            this.state = 5417;
            this.dottedId();
            this.state = 5419;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,781,this._ctx);
            if(la_===1) {
                this.state = 5418;
                this.dottedId();

            }

        }
    } 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 IndexColumnNameContext(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_indexColumnName;
    this.sortType = null; // Token
    return this;
}

IndexColumnNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IndexColumnNameContext.prototype.constructor = IndexColumnNameContext;

IndexColumnNameContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

IndexColumnNameContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

IndexColumnNameContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

IndexColumnNameContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

IndexColumnNameContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

IndexColumnNameContext.prototype.ASC = function() {
    return this.getToken(SqlParser.ASC, 0);
};

IndexColumnNameContext.prototype.DESC = function() {
    return this.getToken(SqlParser.DESC, 0);
};

IndexColumnNameContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIndexColumnName(this);
	}
};

IndexColumnNameContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIndexColumnName(this);
	}
};

IndexColumnNameContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIndexColumnName(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.IndexColumnNameContext = IndexColumnNameContext;

SqlParser.prototype.indexColumnName = function() {

    var localctx = new IndexColumnNameContext(this, this._ctx, this.state);
    this.enterRule(localctx, 504, SqlParser.RULE_indexColumnName);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5425;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,783,this._ctx);
        switch(la_) {
        case 1:
            this.state = 5423;
            this.uid();
            break;

        case 2:
            this.state = 5424;
            this.match(SqlParser.STRING_LITERAL);
            break;

        }
        this.state = 5431;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.LR_BRACKET) {
            this.state = 5427;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5428;
            this.decimalLiteral();
            this.state = 5429;
            this.match(SqlParser.RR_BRACKET);
        }

        this.state = 5434;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ASC || _la===SqlParser.DESC) {
            this.state = 5433;
            localctx.sortType = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.ASC || _la===SqlParser.DESC)) {
                localctx.sortType = 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 UserNameContext(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_userName;
    return this;
}

UserNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UserNameContext.prototype.constructor = UserNameContext;

UserNameContext.prototype.STRING_USER_NAME = function() {
    return this.getToken(SqlParser.STRING_USER_NAME, 0);
};

UserNameContext.prototype.ID = function() {
    return this.getToken(SqlParser.ID, 0);
};

UserNameContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

UserNameContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUserName(this);
	}
};

UserNameContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUserName(this);
	}
};

UserNameContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUserName(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UserNameContext = UserNameContext;

SqlParser.prototype.userName = function() {

    var localctx = new UserNameContext(this, this._ctx, this.state);
    this.enterRule(localctx, 506, SqlParser.RULE_userName);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5436;
        _la = this._input.LA(1);
        if(!(((((_la - 1035)) & ~0x1f) == 0 && ((1 << (_la - 1035)) & ((1 << (SqlParser.STRING_LITERAL - 1035)) | (1 << (SqlParser.ID - 1035)) | (1 << (SqlParser.STRING_USER_NAME - 1035)))) !== 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 MysqlVariableContext(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_mysqlVariable;
    return this;
}

MysqlVariableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
MysqlVariableContext.prototype.constructor = MysqlVariableContext;

MysqlVariableContext.prototype.LOCAL_ID = function() {
    return this.getToken(SqlParser.LOCAL_ID, 0);
};

MysqlVariableContext.prototype.GLOBAL_ID = function() {
    return this.getToken(SqlParser.GLOBAL_ID, 0);
};

MysqlVariableContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterMysqlVariable(this);
	}
};

MysqlVariableContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitMysqlVariable(this);
	}
};

MysqlVariableContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitMysqlVariable(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.MysqlVariableContext = MysqlVariableContext;

SqlParser.prototype.mysqlVariable = function() {

    var localctx = new MysqlVariableContext(this, this._ctx, this.state);
    this.enterRule(localctx, 508, SqlParser.RULE_mysqlVariable);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5438;
        _la = this._input.LA(1);
        if(!(_la===SqlParser.LOCAL_ID || _la===SqlParser.GLOBAL_ID)) {
        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 CharsetNameContext(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_charsetName;
    return this;
}

CharsetNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CharsetNameContext.prototype.constructor = CharsetNameContext;

CharsetNameContext.prototype.BINARY = function() {
    return this.getToken(SqlParser.BINARY, 0);
};

CharsetNameContext.prototype.charsetNameBase = function() {
    return this.getTypedRuleContext(CharsetNameBaseContext,0);
};

CharsetNameContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

CharsetNameContext.prototype.CHARSET_REVERSE_QOUTE_STRING = function() {
    return this.getToken(SqlParser.CHARSET_REVERSE_QOUTE_STRING, 0);
};

CharsetNameContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCharsetName(this);
	}
};

CharsetNameContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCharsetName(this);
	}
};

CharsetNameContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCharsetName(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CharsetNameContext = CharsetNameContext;

SqlParser.prototype.charsetName = function() {

    var localctx = new CharsetNameContext(this, this._ctx, this.state);
    this.enterRule(localctx, 510, SqlParser.RULE_charsetName);
    try {
        this.state = 5444;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.BINARY:
            this.enterOuterAlt(localctx, 1);
            this.state = 5440;
            this.match(SqlParser.BINARY);
            break;
        case SqlParser.ARMSCII8:
        case SqlParser.ASCII:
        case SqlParser.BIG5:
        case SqlParser.CP1250:
        case SqlParser.CP1251:
        case SqlParser.CP1256:
        case SqlParser.CP1257:
        case SqlParser.CP850:
        case SqlParser.CP852:
        case SqlParser.CP866:
        case SqlParser.CP932:
        case SqlParser.DEC8:
        case SqlParser.EUCJPMS:
        case SqlParser.EUCKR:
        case SqlParser.GB2312:
        case SqlParser.GBK:
        case SqlParser.GEOSTD8:
        case SqlParser.GREEK:
        case SqlParser.HEBREW:
        case SqlParser.HP8:
        case SqlParser.KEYBCS2:
        case SqlParser.KOI8R:
        case SqlParser.KOI8U:
        case SqlParser.LATIN1:
        case SqlParser.LATIN2:
        case SqlParser.LATIN5:
        case SqlParser.LATIN7:
        case SqlParser.MACCE:
        case SqlParser.MACROMAN:
        case SqlParser.SJIS:
        case SqlParser.SWE7:
        case SqlParser.TIS620:
        case SqlParser.UCS2:
        case SqlParser.UJIS:
        case SqlParser.UTF16:
        case SqlParser.UTF16LE:
        case SqlParser.UTF32:
        case SqlParser.UTF8:
        case SqlParser.UTF8MB3:
        case SqlParser.UTF8MB4:
            this.enterOuterAlt(localctx, 2);
            this.state = 5441;
            this.charsetNameBase();
            break;
        case SqlParser.STRING_LITERAL:
            this.enterOuterAlt(localctx, 3);
            this.state = 5442;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            this.enterOuterAlt(localctx, 4);
            this.state = 5443;
            this.match(SqlParser.CHARSET_REVERSE_QOUTE_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 CollationNameContext(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_collationName;
    return this;
}

CollationNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CollationNameContext.prototype.constructor = CollationNameContext;

CollationNameContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

CollationNameContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

CollationNameContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCollationName(this);
	}
};

CollationNameContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCollationName(this);
	}
};

CollationNameContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCollationName(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CollationNameContext = CollationNameContext;

SqlParser.prototype.collationName = function() {

    var localctx = new CollationNameContext(this, this._ctx, this.state);
    this.enterRule(localctx, 512, SqlParser.RULE_collationName);
    try {
        this.state = 5448;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,787,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 5446;
            this.uid();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 5447;
            this.match(SqlParser.STRING_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 EngineNameContext(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_engineName;
    return this;
}

EngineNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
EngineNameContext.prototype.constructor = EngineNameContext;

EngineNameContext.prototype.ARCHIVE = function() {
    return this.getToken(SqlParser.ARCHIVE, 0);
};

EngineNameContext.prototype.BLACKHOLE = function() {
    return this.getToken(SqlParser.BLACKHOLE, 0);
};

EngineNameContext.prototype.CSV = function() {
    return this.getToken(SqlParser.CSV, 0);
};

EngineNameContext.prototype.FEDERATED = function() {
    return this.getToken(SqlParser.FEDERATED, 0);
};

EngineNameContext.prototype.INNODB = function() {
    return this.getToken(SqlParser.INNODB, 0);
};

EngineNameContext.prototype.MEMORY = function() {
    return this.getToken(SqlParser.MEMORY, 0);
};

EngineNameContext.prototype.MRG_MYISAM = function() {
    return this.getToken(SqlParser.MRG_MYISAM, 0);
};

EngineNameContext.prototype.MYISAM = function() {
    return this.getToken(SqlParser.MYISAM, 0);
};

EngineNameContext.prototype.NDB = function() {
    return this.getToken(SqlParser.NDB, 0);
};

EngineNameContext.prototype.NDBCLUSTER = function() {
    return this.getToken(SqlParser.NDBCLUSTER, 0);
};

EngineNameContext.prototype.PERFORMANCE_SCHEMA = function() {
    return this.getToken(SqlParser.PERFORMANCE_SCHEMA, 0);
};

EngineNameContext.prototype.TOKUDB = function() {
    return this.getToken(SqlParser.TOKUDB, 0);
};

EngineNameContext.prototype.ID = function() {
    return this.getToken(SqlParser.ID, 0);
};

EngineNameContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

EngineNameContext.prototype.REVERSE_QUOTE_ID = function() {
    return this.getToken(SqlParser.REVERSE_QUOTE_ID, 0);
};

EngineNameContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterEngineName(this);
	}
};

EngineNameContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitEngineName(this);
	}
};

EngineNameContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitEngineName(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.EngineNameContext = EngineNameContext;

SqlParser.prototype.engineName = function() {

    var localctx = new EngineNameContext(this, this._ctx, this.state);
    this.enterRule(localctx, 514, SqlParser.RULE_engineName);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5450;
        _la = this._input.LA(1);
        if(!(((((_la - 677)) & ~0x1f) == 0 && ((1 << (_la - 677)) & ((1 << (SqlParser.ARCHIVE - 677)) | (1 << (SqlParser.BLACKHOLE - 677)) | (1 << (SqlParser.CSV - 677)) | (1 << (SqlParser.FEDERATED - 677)) | (1 << (SqlParser.INNODB - 677)) | (1 << (SqlParser.MEMORY - 677)) | (1 << (SqlParser.MRG_MYISAM - 677)) | (1 << (SqlParser.MYISAM - 677)) | (1 << (SqlParser.NDB - 677)) | (1 << (SqlParser.NDBCLUSTER - 677)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 677)) | (1 << (SqlParser.TOKUDB - 677)))) !== 0) || ((((_la - 1035)) & ~0x1f) == 0 && ((1 << (_la - 1035)) & ((1 << (SqlParser.STRING_LITERAL - 1035)) | (1 << (SqlParser.ID - 1035)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1035)))) !== 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 UuidSetContext(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_uuidSet;
    return this;
}

UuidSetContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UuidSetContext.prototype.constructor = UuidSetContext;

UuidSetContext.prototype.decimalLiteral = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DecimalLiteralContext);
    } else {
        return this.getTypedRuleContext(DecimalLiteralContext,i);
    }
};

UuidSetContext.prototype.MINUS = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.MINUS);
    } else {
        return this.getToken(SqlParser.MINUS, i);
    }
};


UuidSetContext.prototype.COLON_SYMB = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COLON_SYMB);
    } else {
        return this.getToken(SqlParser.COLON_SYMB, i);
    }
};


UuidSetContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUuidSet(this);
	}
};

UuidSetContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUuidSet(this);
	}
};

UuidSetContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUuidSet(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UuidSetContext = UuidSetContext;

SqlParser.prototype.uuidSet = function() {

    var localctx = new UuidSetContext(this, this._ctx, this.state);
    this.enterRule(localctx, 516, SqlParser.RULE_uuidSet);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5452;
        this.decimalLiteral();
        this.state = 5453;
        this.match(SqlParser.MINUS);
        this.state = 5454;
        this.decimalLiteral();
        this.state = 5455;
        this.match(SqlParser.MINUS);
        this.state = 5456;
        this.decimalLiteral();
        this.state = 5457;
        this.match(SqlParser.MINUS);
        this.state = 5458;
        this.decimalLiteral();
        this.state = 5459;
        this.match(SqlParser.MINUS);
        this.state = 5460;
        this.decimalLiteral();
        this.state = 5466; 
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        do {
            this.state = 5461;
            this.match(SqlParser.COLON_SYMB);
            this.state = 5462;
            this.decimalLiteral();
            this.state = 5463;
            this.match(SqlParser.MINUS);
            this.state = 5464;
            this.decimalLiteral();
            this.state = 5468; 
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        } while(_la===SqlParser.COLON_SYMB);
    } 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 XidContext(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_xid;
    this.globalTableUid = null; // XuidStringIdContext
    this.qualifier = null; // XuidStringIdContext
    this.idFormat = null; // DecimalLiteralContext
    return this;
}

XidContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
XidContext.prototype.constructor = XidContext;

XidContext.prototype.xuidStringId = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(XuidStringIdContext);
    } else {
        return this.getTypedRuleContext(XuidStringIdContext,i);
    }
};

XidContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


XidContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

XidContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterXid(this);
	}
};

XidContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitXid(this);
	}
};

XidContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitXid(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.XidContext = XidContext;

SqlParser.prototype.xid = function() {

    var localctx = new XidContext(this, this._ctx, this.state);
    this.enterRule(localctx, 518, SqlParser.RULE_xid);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5470;
        localctx.globalTableUid = this.xuidStringId();
        this.state = 5477;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.COMMA) {
            this.state = 5471;
            this.match(SqlParser.COMMA);
            this.state = 5472;
            localctx.qualifier = this.xuidStringId();
            this.state = 5475;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.COMMA) {
                this.state = 5473;
                this.match(SqlParser.COMMA);
                this.state = 5474;
                localctx.idFormat = this.decimalLiteral();
            }

        }

    } 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 XuidStringIdContext(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_xuidStringId;
    return this;
}

XuidStringIdContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
XuidStringIdContext.prototype.constructor = XuidStringIdContext;

XuidStringIdContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

XuidStringIdContext.prototype.BIT_STRING = function() {
    return this.getToken(SqlParser.BIT_STRING, 0);
};

XuidStringIdContext.prototype.HEXADECIMAL_LITERAL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.HEXADECIMAL_LITERAL);
    } else {
        return this.getToken(SqlParser.HEXADECIMAL_LITERAL, i);
    }
};


XuidStringIdContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterXuidStringId(this);
	}
};

XuidStringIdContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitXuidStringId(this);
	}
};

XuidStringIdContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitXuidStringId(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.XuidStringIdContext = XuidStringIdContext;

SqlParser.prototype.xuidStringId = function() {

    var localctx = new XuidStringIdContext(this, this._ctx, this.state);
    this.enterRule(localctx, 520, SqlParser.RULE_xuidStringId);
    var _la = 0; // Token type
    try {
        this.state = 5486;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.STRING_LITERAL:
            this.enterOuterAlt(localctx, 1);
            this.state = 5479;
            this.match(SqlParser.STRING_LITERAL);
            break;
        case SqlParser.BIT_STRING:
            this.enterOuterAlt(localctx, 2);
            this.state = 5480;
            this.match(SqlParser.BIT_STRING);
            break;
        case SqlParser.HEXADECIMAL_LITERAL:
            this.enterOuterAlt(localctx, 3);
            this.state = 5482; 
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            do {
                this.state = 5481;
                this.match(SqlParser.HEXADECIMAL_LITERAL);
                this.state = 5484; 
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            } while(_la===SqlParser.HEXADECIMAL_LITERAL);
            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 AuthPluginContext(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_authPlugin;
    return this;
}

AuthPluginContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AuthPluginContext.prototype.constructor = AuthPluginContext;

AuthPluginContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

AuthPluginContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

AuthPluginContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAuthPlugin(this);
	}
};

AuthPluginContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAuthPlugin(this);
	}
};

AuthPluginContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAuthPlugin(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.AuthPluginContext = AuthPluginContext;

SqlParser.prototype.authPlugin = function() {

    var localctx = new AuthPluginContext(this, this._ctx, this.state);
    this.enterRule(localctx, 522, SqlParser.RULE_authPlugin);
    try {
        this.state = 5490;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,793,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 5488;
            this.uid();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 5489;
            this.match(SqlParser.STRING_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 UidContext(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_uid;
    return this;
}

UidContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UidContext.prototype.constructor = UidContext;

UidContext.prototype.simpleId = function() {
    return this.getTypedRuleContext(SimpleIdContext,0);
};

UidContext.prototype.REVERSE_QUOTE_ID = function() {
    return this.getToken(SqlParser.REVERSE_QUOTE_ID, 0);
};

UidContext.prototype.CHARSET_REVERSE_QOUTE_STRING = function() {
    return this.getToken(SqlParser.CHARSET_REVERSE_QOUTE_STRING, 0);
};

UidContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUid(this);
	}
};

UidContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUid(this);
	}
};

UidContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUid(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UidContext = UidContext;

SqlParser.prototype.uid = function() {

    var localctx = new UidContext(this, this._ctx, this.state);
    this.enterRule(localctx, 524, SqlParser.RULE_uid);
    try {
        this.state = 5495;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,794,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 5492;
            this.simpleId();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 5493;
            this.match(SqlParser.REVERSE_QUOTE_ID);
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 5494;
            this.match(SqlParser.CHARSET_REVERSE_QOUTE_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 SimpleIdContext(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_simpleId;
    return this;
}

SimpleIdContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SimpleIdContext.prototype.constructor = SimpleIdContext;

SimpleIdContext.prototype.ID = function() {
    return this.getToken(SqlParser.ID, 0);
};

SimpleIdContext.prototype.charsetNameBase = function() {
    return this.getTypedRuleContext(CharsetNameBaseContext,0);
};

SimpleIdContext.prototype.transactionLevelBase = function() {
    return this.getTypedRuleContext(TransactionLevelBaseContext,0);
};

SimpleIdContext.prototype.engineName = function() {
    return this.getTypedRuleContext(EngineNameContext,0);
};

SimpleIdContext.prototype.privilegesBase = function() {
    return this.getTypedRuleContext(PrivilegesBaseContext,0);
};

SimpleIdContext.prototype.intervalTypeBase = function() {
    return this.getTypedRuleContext(IntervalTypeBaseContext,0);
};

SimpleIdContext.prototype.dataTypeBase = function() {
    return this.getTypedRuleContext(DataTypeBaseContext,0);
};

SimpleIdContext.prototype.keywordsCanBeId = function() {
    return this.getTypedRuleContext(KeywordsCanBeIdContext,0);
};

SimpleIdContext.prototype.functionNameBase = function() {
    return this.getTypedRuleContext(FunctionNameBaseContext,0);
};

SimpleIdContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSimpleId(this);
	}
};

SimpleIdContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSimpleId(this);
	}
};

SimpleIdContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSimpleId(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SimpleIdContext = SimpleIdContext;

SqlParser.prototype.simpleId = function() {

    var localctx = new SimpleIdContext(this, this._ctx, this.state);
    this.enterRule(localctx, 526, SqlParser.RULE_simpleId);
    try {
        this.state = 5506;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,795,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 5497;
            this.match(SqlParser.ID);
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 5498;
            this.charsetNameBase();
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 5499;
            this.transactionLevelBase();
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 5500;
            this.engineName();
            break;

        case 5:
            this.enterOuterAlt(localctx, 5);
            this.state = 5501;
            this.privilegesBase();
            break;

        case 6:
            this.enterOuterAlt(localctx, 6);
            this.state = 5502;
            this.intervalTypeBase();
            break;

        case 7:
            this.enterOuterAlt(localctx, 7);
            this.state = 5503;
            this.dataTypeBase();
            break;

        case 8:
            this.enterOuterAlt(localctx, 8);
            this.state = 5504;
            this.keywordsCanBeId();
            break;

        case 9:
            this.enterOuterAlt(localctx, 9);
            this.state = 5505;
            this.functionNameBase();
            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 DottedIdContext(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_dottedId;
    return this;
}

DottedIdContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DottedIdContext.prototype.constructor = DottedIdContext;

DottedIdContext.prototype.DOT_ID = function() {
    return this.getToken(SqlParser.DOT_ID, 0);
};

DottedIdContext.prototype.DOT = function() {
    return this.getToken(SqlParser.DOT, 0);
};

DottedIdContext.prototype.uid = function() {
    return this.getTypedRuleContext(UidContext,0);
};

DottedIdContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDottedId(this);
	}
};

DottedIdContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDottedId(this);
	}
};

DottedIdContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDottedId(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DottedIdContext = DottedIdContext;

SqlParser.prototype.dottedId = function() {

    var localctx = new DottedIdContext(this, this._ctx, this.state);
    this.enterRule(localctx, 528, SqlParser.RULE_dottedId);
    try {
        this.state = 5511;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.DOT_ID:
            this.enterOuterAlt(localctx, 1);
            this.state = 5508;
            this.match(SqlParser.DOT_ID);
            break;
        case SqlParser.DOT:
            this.enterOuterAlt(localctx, 2);
            this.state = 5509;
            this.match(SqlParser.DOT);
            this.state = 5510;
            this.uid();
            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 DecimalLiteralContext(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_decimalLiteral;
    return this;
}

DecimalLiteralContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DecimalLiteralContext.prototype.constructor = DecimalLiteralContext;

DecimalLiteralContext.prototype.DECIMAL_LITERAL = function() {
    return this.getToken(SqlParser.DECIMAL_LITERAL, 0);
};

DecimalLiteralContext.prototype.ZERO_DECIMAL = function() {
    return this.getToken(SqlParser.ZERO_DECIMAL, 0);
};

DecimalLiteralContext.prototype.ONE_DECIMAL = function() {
    return this.getToken(SqlParser.ONE_DECIMAL, 0);
};

DecimalLiteralContext.prototype.TWO_DECIMAL = function() {
    return this.getToken(SqlParser.TWO_DECIMAL, 0);
};

DecimalLiteralContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDecimalLiteral(this);
	}
};

DecimalLiteralContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDecimalLiteral(this);
	}
};

DecimalLiteralContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDecimalLiteral(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DecimalLiteralContext = DecimalLiteralContext;

SqlParser.prototype.decimalLiteral = function() {

    var localctx = new DecimalLiteralContext(this, this._ctx, this.state);
    this.enterRule(localctx, 530, SqlParser.RULE_decimalLiteral);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5513;
        _la = this._input.LA(1);
        if(!(((((_la - 1025)) & ~0x1f) == 0 && ((1 << (_la - 1025)) & ((1 << (SqlParser.ZERO_DECIMAL - 1025)) | (1 << (SqlParser.ONE_DECIMAL - 1025)) | (1 << (SqlParser.TWO_DECIMAL - 1025)) | (1 << (SqlParser.DECIMAL_LITERAL - 1025)))) !== 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 FileSizeLiteralContext(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_fileSizeLiteral;
    return this;
}

FileSizeLiteralContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FileSizeLiteralContext.prototype.constructor = FileSizeLiteralContext;

FileSizeLiteralContext.prototype.FILESIZE_LITERAL = function() {
    return this.getToken(SqlParser.FILESIZE_LITERAL, 0);
};

FileSizeLiteralContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

FileSizeLiteralContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFileSizeLiteral(this);
	}
};

FileSizeLiteralContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFileSizeLiteral(this);
	}
};

FileSizeLiteralContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitFileSizeLiteral(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.FileSizeLiteralContext = FileSizeLiteralContext;

SqlParser.prototype.fileSizeLiteral = function() {

    var localctx = new FileSizeLiteralContext(this, this._ctx, this.state);
    this.enterRule(localctx, 532, SqlParser.RULE_fileSizeLiteral);
    try {
        this.state = 5517;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.FILESIZE_LITERAL:
            this.enterOuterAlt(localctx, 1);
            this.state = 5515;
            this.match(SqlParser.FILESIZE_LITERAL);
            break;
        case SqlParser.ZERO_DECIMAL:
        case SqlParser.ONE_DECIMAL:
        case SqlParser.TWO_DECIMAL:
        case SqlParser.DECIMAL_LITERAL:
            this.enterOuterAlt(localctx, 2);
            this.state = 5516;
            this.decimalLiteral();
            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 StringLiteralContext(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_stringLiteral;
    return this;
}

StringLiteralContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
StringLiteralContext.prototype.constructor = StringLiteralContext;

StringLiteralContext.prototype.STRING_LITERAL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.STRING_LITERAL);
    } else {
        return this.getToken(SqlParser.STRING_LITERAL, i);
    }
};


StringLiteralContext.prototype.START_NATIONAL_STRING_LITERAL = function() {
    return this.getToken(SqlParser.START_NATIONAL_STRING_LITERAL, 0);
};

StringLiteralContext.prototype.STRING_CHARSET_NAME = function() {
    return this.getToken(SqlParser.STRING_CHARSET_NAME, 0);
};

StringLiteralContext.prototype.COLLATE = function() {
    return this.getToken(SqlParser.COLLATE, 0);
};

StringLiteralContext.prototype.collationName = function() {
    return this.getTypedRuleContext(CollationNameContext,0);
};

StringLiteralContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterStringLiteral(this);
	}
};

StringLiteralContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitStringLiteral(this);
	}
};

StringLiteralContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitStringLiteral(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.StringLiteralContext = StringLiteralContext;

SqlParser.prototype.stringLiteral = function() {

    var localctx = new StringLiteralContext(this, this._ctx, this.state);
    this.enterRule(localctx, 534, SqlParser.RULE_stringLiteral);
    var _la = 0; // Token type
    try {
        this.state = 5542;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,804,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 5524;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.STRING_LITERAL:
            case SqlParser.STRING_CHARSET_NAME:
                this.state = 5520;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.STRING_CHARSET_NAME) {
                    this.state = 5519;
                    this.match(SqlParser.STRING_CHARSET_NAME);
                }

                this.state = 5522;
                this.match(SqlParser.STRING_LITERAL);
                break;
            case SqlParser.START_NATIONAL_STRING_LITERAL:
                this.state = 5523;
                this.match(SqlParser.START_NATIONAL_STRING_LITERAL);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            this.state = 5527; 
            this._errHandler.sync(this);
            var _alt = 1;
            do {
            	switch (_alt) {
            	case 1:
            		this.state = 5526;
            		this.match(SqlParser.STRING_LITERAL);
            		break;
            	default:
            		throw new antlr4.error.NoViableAltException(this);
            	}
            	this.state = 5529; 
            	this._errHandler.sync(this);
            	_alt = this._interp.adaptivePredict(this._input,800, this._ctx);
            } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER );
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 5536;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.STRING_LITERAL:
            case SqlParser.STRING_CHARSET_NAME:
                this.state = 5532;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.STRING_CHARSET_NAME) {
                    this.state = 5531;
                    this.match(SqlParser.STRING_CHARSET_NAME);
                }

                this.state = 5534;
                this.match(SqlParser.STRING_LITERAL);
                break;
            case SqlParser.START_NATIONAL_STRING_LITERAL:
                this.state = 5535;
                this.match(SqlParser.START_NATIONAL_STRING_LITERAL);
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            this.state = 5540;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,803,this._ctx);
            if(la_===1) {
                this.state = 5538;
                this.match(SqlParser.COLLATE);
                this.state = 5539;
                this.collationName();

            }
            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 BooleanLiteralContext(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_booleanLiteral;
    return this;
}

BooleanLiteralContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
BooleanLiteralContext.prototype.constructor = BooleanLiteralContext;

BooleanLiteralContext.prototype.TRUE = function() {
    return this.getToken(SqlParser.TRUE, 0);
};

BooleanLiteralContext.prototype.FALSE = function() {
    return this.getToken(SqlParser.FALSE, 0);
};

BooleanLiteralContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterBooleanLiteral(this);
	}
};

BooleanLiteralContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitBooleanLiteral(this);
	}
};

BooleanLiteralContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitBooleanLiteral(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.BooleanLiteralContext = BooleanLiteralContext;

SqlParser.prototype.booleanLiteral = function() {

    var localctx = new BooleanLiteralContext(this, this._ctx, this.state);
    this.enterRule(localctx, 536, SqlParser.RULE_booleanLiteral);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5544;
        _la = this._input.LA(1);
        if(!(_la===SqlParser.FALSE || _la===SqlParser.TRUE)) {
        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 HexadecimalLiteralContext(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_hexadecimalLiteral;
    return this;
}

HexadecimalLiteralContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
HexadecimalLiteralContext.prototype.constructor = HexadecimalLiteralContext;

HexadecimalLiteralContext.prototype.HEXADECIMAL_LITERAL = function() {
    return this.getToken(SqlParser.HEXADECIMAL_LITERAL, 0);
};

HexadecimalLiteralContext.prototype.STRING_CHARSET_NAME = function() {
    return this.getToken(SqlParser.STRING_CHARSET_NAME, 0);
};

HexadecimalLiteralContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterHexadecimalLiteral(this);
	}
};

HexadecimalLiteralContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitHexadecimalLiteral(this);
	}
};

HexadecimalLiteralContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitHexadecimalLiteral(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.HexadecimalLiteralContext = HexadecimalLiteralContext;

SqlParser.prototype.hexadecimalLiteral = function() {

    var localctx = new HexadecimalLiteralContext(this, this._ctx, this.state);
    this.enterRule(localctx, 538, SqlParser.RULE_hexadecimalLiteral);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5547;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.STRING_CHARSET_NAME) {
            this.state = 5546;
            this.match(SqlParser.STRING_CHARSET_NAME);
        }

        this.state = 5549;
        this.match(SqlParser.HEXADECIMAL_LITERAL);
    } 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 NullNotnullContext(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_nullNotnull;
    return this;
}

NullNotnullContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
NullNotnullContext.prototype.constructor = NullNotnullContext;

NullNotnullContext.prototype.NULL_LITERAL = function() {
    return this.getToken(SqlParser.NULL_LITERAL, 0);
};

NullNotnullContext.prototype.NULL_SPEC_LITERAL = function() {
    return this.getToken(SqlParser.NULL_SPEC_LITERAL, 0);
};

NullNotnullContext.prototype.NOT = function() {
    return this.getToken(SqlParser.NOT, 0);
};

NullNotnullContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterNullNotnull(this);
	}
};

NullNotnullContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitNullNotnull(this);
	}
};

NullNotnullContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitNullNotnull(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.NullNotnullContext = NullNotnullContext;

SqlParser.prototype.nullNotnull = function() {

    var localctx = new NullNotnullContext(this, this._ctx, this.state);
    this.enterRule(localctx, 540, SqlParser.RULE_nullNotnull);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5552;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.NOT) {
            this.state = 5551;
            this.match(SqlParser.NOT);
        }

        this.state = 5554;
        _la = this._input.LA(1);
        if(!(_la===SqlParser.NULL_LITERAL || _la===SqlParser.NULL_SPEC_LITERAL)) {
        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 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;
    this.nullLiteral = null; // Token
    return this;
}

ConstantContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ConstantContext.prototype.constructor = ConstantContext;

ConstantContext.prototype.stringLiteral = function() {
    return this.getTypedRuleContext(StringLiteralContext,0);
};

ConstantContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

ConstantContext.prototype.MINUS = function() {
    return this.getToken(SqlParser.MINUS, 0);
};

ConstantContext.prototype.hexadecimalLiteral = function() {
    return this.getTypedRuleContext(HexadecimalLiteralContext,0);
};

ConstantContext.prototype.booleanLiteral = function() {
    return this.getTypedRuleContext(BooleanLiteralContext,0);
};

ConstantContext.prototype.REAL_LITERAL = function() {
    return this.getToken(SqlParser.REAL_LITERAL, 0);
};

ConstantContext.prototype.BIT_STRING = function() {
    return this.getToken(SqlParser.BIT_STRING, 0);
};

ConstantContext.prototype.NULL_LITERAL = function() {
    return this.getToken(SqlParser.NULL_LITERAL, 0);
};

ConstantContext.prototype.NULL_SPEC_LITERAL = function() {
    return this.getToken(SqlParser.NULL_SPEC_LITERAL, 0);
};

ConstantContext.prototype.NOT = function() {
    return this.getToken(SqlParser.NOT, 0);
};

ConstantContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterConstant(this);
	}
};

ConstantContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitConstant(this);
	}
};

ConstantContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitConstant(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, 542, SqlParser.RULE_constant);
    var _la = 0; // Token type
    try {
        this.state = 5568;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,808,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 5556;
            this.stringLiteral();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 5557;
            this.decimalLiteral();
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 5558;
            this.match(SqlParser.MINUS);
            this.state = 5559;
            this.decimalLiteral();
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 5560;
            this.hexadecimalLiteral();
            break;

        case 5:
            this.enterOuterAlt(localctx, 5);
            this.state = 5561;
            this.booleanLiteral();
            break;

        case 6:
            this.enterOuterAlt(localctx, 6);
            this.state = 5562;
            this.match(SqlParser.REAL_LITERAL);
            break;

        case 7:
            this.enterOuterAlt(localctx, 7);
            this.state = 5563;
            this.match(SqlParser.BIT_STRING);
            break;

        case 8:
            this.enterOuterAlt(localctx, 8);
            this.state = 5565;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.NOT) {
                this.state = 5564;
                this.match(SqlParser.NOT);
            }

            this.state = 5567;
            localctx.nullLiteral = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.NULL_LITERAL || _la===SqlParser.NULL_SPEC_LITERAL)) {
                localctx.nullLiteral = 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 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 SpatialDataTypeContext(parser, ctx) {
	DataTypeContext.call(this, parser);
    this.typeName = null; // Token;
    DataTypeContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SpatialDataTypeContext.prototype = Object.create(DataTypeContext.prototype);
SpatialDataTypeContext.prototype.constructor = SpatialDataTypeContext;

SqlParser.SpatialDataTypeContext = SpatialDataTypeContext;

SpatialDataTypeContext.prototype.GEOMETRYCOLLECTION = function() {
    return this.getToken(SqlParser.GEOMETRYCOLLECTION, 0);
};

SpatialDataTypeContext.prototype.GEOMCOLLECTION = function() {
    return this.getToken(SqlParser.GEOMCOLLECTION, 0);
};

SpatialDataTypeContext.prototype.LINESTRING = function() {
    return this.getToken(SqlParser.LINESTRING, 0);
};

SpatialDataTypeContext.prototype.MULTILINESTRING = function() {
    return this.getToken(SqlParser.MULTILINESTRING, 0);
};

SpatialDataTypeContext.prototype.MULTIPOINT = function() {
    return this.getToken(SqlParser.MULTIPOINT, 0);
};

SpatialDataTypeContext.prototype.MULTIPOLYGON = function() {
    return this.getToken(SqlParser.MULTIPOLYGON, 0);
};

SpatialDataTypeContext.prototype.POINT = function() {
    return this.getToken(SqlParser.POINT, 0);
};

SpatialDataTypeContext.prototype.POLYGON = function() {
    return this.getToken(SqlParser.POLYGON, 0);
};

SpatialDataTypeContext.prototype.JSON = function() {
    return this.getToken(SqlParser.JSON, 0);
};

SpatialDataTypeContext.prototype.GEOMETRY = function() {
    return this.getToken(SqlParser.GEOMETRY, 0);
};
SpatialDataTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSpatialDataType(this);
	}
};

SpatialDataTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSpatialDataType(this);
	}
};

SpatialDataTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSpatialDataType(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function LongVarbinaryDataTypeContext(parser, ctx) {
	DataTypeContext.call(this, parser);
    DataTypeContext.prototype.copyFrom.call(this, ctx);
    return this;
}

LongVarbinaryDataTypeContext.prototype = Object.create(DataTypeContext.prototype);
LongVarbinaryDataTypeContext.prototype.constructor = LongVarbinaryDataTypeContext;

SqlParser.LongVarbinaryDataTypeContext = LongVarbinaryDataTypeContext;

LongVarbinaryDataTypeContext.prototype.LONG = function() {
    return this.getToken(SqlParser.LONG, 0);
};

LongVarbinaryDataTypeContext.prototype.VARBINARY = function() {
    return this.getToken(SqlParser.VARBINARY, 0);
};
LongVarbinaryDataTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLongVarbinaryDataType(this);
	}
};

LongVarbinaryDataTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLongVarbinaryDataType(this);
	}
};

LongVarbinaryDataTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLongVarbinaryDataType(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function CollectionDataTypeContext(parser, ctx) {
	DataTypeContext.call(this, parser);
    this.typeName = null; // Token;
    DataTypeContext.prototype.copyFrom.call(this, ctx);
    return this;
}

CollectionDataTypeContext.prototype = Object.create(DataTypeContext.prototype);
CollectionDataTypeContext.prototype.constructor = CollectionDataTypeContext;

SqlParser.CollectionDataTypeContext = CollectionDataTypeContext;

CollectionDataTypeContext.prototype.collectionOptions = function() {
    return this.getTypedRuleContext(CollectionOptionsContext,0);
};

CollectionDataTypeContext.prototype.ENUM = function() {
    return this.getToken(SqlParser.ENUM, 0);
};

CollectionDataTypeContext.prototype.SET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.SET);
    } else {
        return this.getToken(SqlParser.SET, i);
    }
};


CollectionDataTypeContext.prototype.BINARY = function() {
    return this.getToken(SqlParser.BINARY, 0);
};

CollectionDataTypeContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};

CollectionDataTypeContext.prototype.CHARACTER = function() {
    return this.getToken(SqlParser.CHARACTER, 0);
};

CollectionDataTypeContext.prototype.CHARSET = function() {
    return this.getToken(SqlParser.CHARSET, 0);
};
CollectionDataTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCollectionDataType(this);
	}
};

CollectionDataTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCollectionDataType(this);
	}
};

CollectionDataTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCollectionDataType(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function NationalVaryingStringDataTypeContext(parser, ctx) {
	DataTypeContext.call(this, parser);
    this.typeName = null; // Token;
    DataTypeContext.prototype.copyFrom.call(this, ctx);
    return this;
}

NationalVaryingStringDataTypeContext.prototype = Object.create(DataTypeContext.prototype);
NationalVaryingStringDataTypeContext.prototype.constructor = NationalVaryingStringDataTypeContext;

SqlParser.NationalVaryingStringDataTypeContext = NationalVaryingStringDataTypeContext;

NationalVaryingStringDataTypeContext.prototype.NATIONAL = function() {
    return this.getToken(SqlParser.NATIONAL, 0);
};

NationalVaryingStringDataTypeContext.prototype.VARYING = function() {
    return this.getToken(SqlParser.VARYING, 0);
};

NationalVaryingStringDataTypeContext.prototype.CHAR = function() {
    return this.getToken(SqlParser.CHAR, 0);
};

NationalVaryingStringDataTypeContext.prototype.CHARACTER = function() {
    return this.getToken(SqlParser.CHARACTER, 0);
};

NationalVaryingStringDataTypeContext.prototype.lengthOneDimension = function() {
    return this.getTypedRuleContext(LengthOneDimensionContext,0);
};

NationalVaryingStringDataTypeContext.prototype.BINARY = function() {
    return this.getToken(SqlParser.BINARY, 0);
};
NationalVaryingStringDataTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterNationalVaryingStringDataType(this);
	}
};

NationalVaryingStringDataTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitNationalVaryingStringDataType(this);
	}
};

NationalVaryingStringDataTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitNationalVaryingStringDataType(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function DimensionDataTypeContext(parser, ctx) {
	DataTypeContext.call(this, parser);
    this.typeName = null; // Token;
    DataTypeContext.prototype.copyFrom.call(this, ctx);
    return this;
}

DimensionDataTypeContext.prototype = Object.create(DataTypeContext.prototype);
DimensionDataTypeContext.prototype.constructor = DimensionDataTypeContext;

SqlParser.DimensionDataTypeContext = DimensionDataTypeContext;

DimensionDataTypeContext.prototype.TINYINT = function() {
    return this.getToken(SqlParser.TINYINT, 0);
};

DimensionDataTypeContext.prototype.SMALLINT = function() {
    return this.getToken(SqlParser.SMALLINT, 0);
};

DimensionDataTypeContext.prototype.MEDIUMINT = function() {
    return this.getToken(SqlParser.MEDIUMINT, 0);
};

DimensionDataTypeContext.prototype.INT = function() {
    return this.getToken(SqlParser.INT, 0);
};

DimensionDataTypeContext.prototype.INTEGER = function() {
    return this.getToken(SqlParser.INTEGER, 0);
};

DimensionDataTypeContext.prototype.BIGINT = function() {
    return this.getToken(SqlParser.BIGINT, 0);
};

DimensionDataTypeContext.prototype.MIDDLEINT = function() {
    return this.getToken(SqlParser.MIDDLEINT, 0);
};

DimensionDataTypeContext.prototype.INT1 = function() {
    return this.getToken(SqlParser.INT1, 0);
};

DimensionDataTypeContext.prototype.INT2 = function() {
    return this.getToken(SqlParser.INT2, 0);
};

DimensionDataTypeContext.prototype.INT3 = function() {
    return this.getToken(SqlParser.INT3, 0);
};

DimensionDataTypeContext.prototype.INT4 = function() {
    return this.getToken(SqlParser.INT4, 0);
};

DimensionDataTypeContext.prototype.INT8 = function() {
    return this.getToken(SqlParser.INT8, 0);
};

DimensionDataTypeContext.prototype.lengthOneDimension = function() {
    return this.getTypedRuleContext(LengthOneDimensionContext,0);
};

DimensionDataTypeContext.prototype.ZEROFILL = function() {
    return this.getToken(SqlParser.ZEROFILL, 0);
};

DimensionDataTypeContext.prototype.SIGNED = function() {
    return this.getToken(SqlParser.SIGNED, 0);
};

DimensionDataTypeContext.prototype.UNSIGNED = function() {
    return this.getToken(SqlParser.UNSIGNED, 0);
};

DimensionDataTypeContext.prototype.REAL = function() {
    return this.getToken(SqlParser.REAL, 0);
};

DimensionDataTypeContext.prototype.lengthTwoDimension = function() {
    return this.getTypedRuleContext(LengthTwoDimensionContext,0);
};

DimensionDataTypeContext.prototype.DOUBLE = function() {
    return this.getToken(SqlParser.DOUBLE, 0);
};

DimensionDataTypeContext.prototype.PRECISION = function() {
    return this.getToken(SqlParser.PRECISION, 0);
};

DimensionDataTypeContext.prototype.DECIMAL = function() {
    return this.getToken(SqlParser.DECIMAL, 0);
};

DimensionDataTypeContext.prototype.DEC = function() {
    return this.getToken(SqlParser.DEC, 0);
};

DimensionDataTypeContext.prototype.FIXED = function() {
    return this.getToken(SqlParser.FIXED, 0);
};

DimensionDataTypeContext.prototype.NUMERIC = function() {
    return this.getToken(SqlParser.NUMERIC, 0);
};

DimensionDataTypeContext.prototype.FLOAT = function() {
    return this.getToken(SqlParser.FLOAT, 0);
};

DimensionDataTypeContext.prototype.FLOAT4 = function() {
    return this.getToken(SqlParser.FLOAT4, 0);
};

DimensionDataTypeContext.prototype.FLOAT8 = function() {
    return this.getToken(SqlParser.FLOAT8, 0);
};

DimensionDataTypeContext.prototype.lengthTwoOptionalDimension = function() {
    return this.getTypedRuleContext(LengthTwoOptionalDimensionContext,0);
};

DimensionDataTypeContext.prototype.BIT = function() {
    return this.getToken(SqlParser.BIT, 0);
};

DimensionDataTypeContext.prototype.TIME = function() {
    return this.getToken(SqlParser.TIME, 0);
};

DimensionDataTypeContext.prototype.TIMESTAMP = function() {
    return this.getToken(SqlParser.TIMESTAMP, 0);
};

DimensionDataTypeContext.prototype.DATETIME = function() {
    return this.getToken(SqlParser.DATETIME, 0);
};

DimensionDataTypeContext.prototype.BINARY = function() {
    return this.getToken(SqlParser.BINARY, 0);
};

DimensionDataTypeContext.prototype.VARBINARY = function() {
    return this.getToken(SqlParser.VARBINARY, 0);
};

DimensionDataTypeContext.prototype.YEAR = function() {
    return this.getToken(SqlParser.YEAR, 0);
};
DimensionDataTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDimensionDataType(this);
	}
};

DimensionDataTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDimensionDataType(this);
	}
};

DimensionDataTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDimensionDataType(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function StringDataTypeContext(parser, ctx) {
	DataTypeContext.call(this, parser);
    this.typeName = null; // Token;
    DataTypeContext.prototype.copyFrom.call(this, ctx);
    return this;
}

StringDataTypeContext.prototype = Object.create(DataTypeContext.prototype);
StringDataTypeContext.prototype.constructor = StringDataTypeContext;

SqlParser.StringDataTypeContext = StringDataTypeContext;

StringDataTypeContext.prototype.CHAR = function() {
    return this.getToken(SqlParser.CHAR, 0);
};

StringDataTypeContext.prototype.CHARACTER = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.CHARACTER);
    } else {
        return this.getToken(SqlParser.CHARACTER, i);
    }
};


StringDataTypeContext.prototype.VARCHAR = function() {
    return this.getToken(SqlParser.VARCHAR, 0);
};

StringDataTypeContext.prototype.TINYTEXT = function() {
    return this.getToken(SqlParser.TINYTEXT, 0);
};

StringDataTypeContext.prototype.TEXT = function() {
    return this.getToken(SqlParser.TEXT, 0);
};

StringDataTypeContext.prototype.MEDIUMTEXT = function() {
    return this.getToken(SqlParser.MEDIUMTEXT, 0);
};

StringDataTypeContext.prototype.LONGTEXT = function() {
    return this.getToken(SqlParser.LONGTEXT, 0);
};

StringDataTypeContext.prototype.NCHAR = function() {
    return this.getToken(SqlParser.NCHAR, 0);
};

StringDataTypeContext.prototype.NVARCHAR = function() {
    return this.getToken(SqlParser.NVARCHAR, 0);
};

StringDataTypeContext.prototype.LONG = function() {
    return this.getToken(SqlParser.LONG, 0);
};

StringDataTypeContext.prototype.lengthOneDimension = function() {
    return this.getTypedRuleContext(LengthOneDimensionContext,0);
};

StringDataTypeContext.prototype.BINARY = function() {
    return this.getToken(SqlParser.BINARY, 0);
};

StringDataTypeContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};

StringDataTypeContext.prototype.COLLATE = function() {
    return this.getToken(SqlParser.COLLATE, 0);
};

StringDataTypeContext.prototype.collationName = function() {
    return this.getTypedRuleContext(CollationNameContext,0);
};

StringDataTypeContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

StringDataTypeContext.prototype.CHARSET = function() {
    return this.getToken(SqlParser.CHARSET, 0);
};
StringDataTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterStringDataType(this);
	}
};

StringDataTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitStringDataType(this);
	}
};

StringDataTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitStringDataType(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function LongVarcharDataTypeContext(parser, ctx) {
	DataTypeContext.call(this, parser);
    this.typeName = null; // Token;
    DataTypeContext.prototype.copyFrom.call(this, ctx);
    return this;
}

LongVarcharDataTypeContext.prototype = Object.create(DataTypeContext.prototype);
LongVarcharDataTypeContext.prototype.constructor = LongVarcharDataTypeContext;

SqlParser.LongVarcharDataTypeContext = LongVarcharDataTypeContext;

LongVarcharDataTypeContext.prototype.LONG = function() {
    return this.getToken(SqlParser.LONG, 0);
};

LongVarcharDataTypeContext.prototype.VARCHAR = function() {
    return this.getToken(SqlParser.VARCHAR, 0);
};

LongVarcharDataTypeContext.prototype.BINARY = function() {
    return this.getToken(SqlParser.BINARY, 0);
};

LongVarcharDataTypeContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};

LongVarcharDataTypeContext.prototype.COLLATE = function() {
    return this.getToken(SqlParser.COLLATE, 0);
};

LongVarcharDataTypeContext.prototype.collationName = function() {
    return this.getTypedRuleContext(CollationNameContext,0);
};

LongVarcharDataTypeContext.prototype.CHARACTER = function() {
    return this.getToken(SqlParser.CHARACTER, 0);
};

LongVarcharDataTypeContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

LongVarcharDataTypeContext.prototype.CHARSET = function() {
    return this.getToken(SqlParser.CHARSET, 0);
};
LongVarcharDataTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLongVarcharDataType(this);
	}
};

LongVarcharDataTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLongVarcharDataType(this);
	}
};

LongVarcharDataTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLongVarcharDataType(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function NationalStringDataTypeContext(parser, ctx) {
	DataTypeContext.call(this, parser);
    this.typeName = null; // Token;
    DataTypeContext.prototype.copyFrom.call(this, ctx);
    return this;
}

NationalStringDataTypeContext.prototype = Object.create(DataTypeContext.prototype);
NationalStringDataTypeContext.prototype.constructor = NationalStringDataTypeContext;

SqlParser.NationalStringDataTypeContext = NationalStringDataTypeContext;

NationalStringDataTypeContext.prototype.NATIONAL = function() {
    return this.getToken(SqlParser.NATIONAL, 0);
};

NationalStringDataTypeContext.prototype.VARCHAR = function() {
    return this.getToken(SqlParser.VARCHAR, 0);
};

NationalStringDataTypeContext.prototype.CHARACTER = function() {
    return this.getToken(SqlParser.CHARACTER, 0);
};

NationalStringDataTypeContext.prototype.lengthOneDimension = function() {
    return this.getTypedRuleContext(LengthOneDimensionContext,0);
};

NationalStringDataTypeContext.prototype.BINARY = function() {
    return this.getToken(SqlParser.BINARY, 0);
};

NationalStringDataTypeContext.prototype.NCHAR = function() {
    return this.getToken(SqlParser.NCHAR, 0);
};
NationalStringDataTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterNationalStringDataType(this);
	}
};

NationalStringDataTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitNationalStringDataType(this);
	}
};

NationalStringDataTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitNationalStringDataType(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SimpleDataTypeContext(parser, ctx) {
	DataTypeContext.call(this, parser);
    this.typeName = null; // Token;
    DataTypeContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SimpleDataTypeContext.prototype = Object.create(DataTypeContext.prototype);
SimpleDataTypeContext.prototype.constructor = SimpleDataTypeContext;

SqlParser.SimpleDataTypeContext = SimpleDataTypeContext;

SimpleDataTypeContext.prototype.DATE = function() {
    return this.getToken(SqlParser.DATE, 0);
};

SimpleDataTypeContext.prototype.TINYBLOB = function() {
    return this.getToken(SqlParser.TINYBLOB, 0);
};

SimpleDataTypeContext.prototype.BLOB = function() {
    return this.getToken(SqlParser.BLOB, 0);
};

SimpleDataTypeContext.prototype.MEDIUMBLOB = function() {
    return this.getToken(SqlParser.MEDIUMBLOB, 0);
};

SimpleDataTypeContext.prototype.LONGBLOB = function() {
    return this.getToken(SqlParser.LONGBLOB, 0);
};

SimpleDataTypeContext.prototype.BOOL = function() {
    return this.getToken(SqlParser.BOOL, 0);
};

SimpleDataTypeContext.prototype.BOOLEAN = function() {
    return this.getToken(SqlParser.BOOLEAN, 0);
};

SimpleDataTypeContext.prototype.SERIAL = function() {
    return this.getToken(SqlParser.SERIAL, 0);
};
SimpleDataTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSimpleDataType(this);
	}
};

SimpleDataTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSimpleDataType(this);
	}
};

SimpleDataTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSimpleDataType(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, 544, SqlParser.RULE_dataType);
    var _la = 0; // Token type
    try {
        this.state = 5697;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,842,this._ctx);
        switch(la_) {
        case 1:
            localctx = new StringDataTypeContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 5570;
            localctx.typeName = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.CHARACTER || ((((_la - 204)) & ~0x1f) == 0 && ((1 << (_la - 204)) & ((1 << (SqlParser.CHAR - 204)) | (1 << (SqlParser.VARCHAR - 204)) | (1 << (SqlParser.NVARCHAR - 204)) | (1 << (SqlParser.LONG - 204)) | (1 << (SqlParser.TINYTEXT - 204)) | (1 << (SqlParser.TEXT - 204)) | (1 << (SqlParser.MEDIUMTEXT - 204)) | (1 << (SqlParser.LONGTEXT - 204)))) !== 0) || _la===SqlParser.NCHAR)) {
                localctx.typeName = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5572;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,809,this._ctx);
            if(la_===1) {
                this.state = 5571;
                this.lengthOneDimension();

            }
            this.state = 5575;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.BINARY) {
                this.state = 5574;
                this.match(SqlParser.BINARY);
            }

            this.state = 5583;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,812,this._ctx);
            if(la_===1) {
                this.state = 5580;
                this._errHandler.sync(this);
                switch(this._input.LA(1)) {
                case SqlParser.CHARACTER:
                    this.state = 5577;
                    this.match(SqlParser.CHARACTER);
                    this.state = 5578;
                    this.match(SqlParser.SET);
                    break;
                case SqlParser.CHARSET:
                    this.state = 5579;
                    this.match(SqlParser.CHARSET);
                    break;
                default:
                    throw new antlr4.error.NoViableAltException(this);
                }
                this.state = 5582;
                this.charsetName();

            }
            this.state = 5587;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,813,this._ctx);
            if(la_===1) {
                this.state = 5585;
                this.match(SqlParser.COLLATE);
                this.state = 5586;
                this.collationName();

            }
            break;

        case 2:
            localctx = new NationalStringDataTypeContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 5589;
            this.match(SqlParser.NATIONAL);
            this.state = 5590;
            localctx.typeName = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.CHARACTER || _la===SqlParser.VARCHAR)) {
                localctx.typeName = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5592;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,814,this._ctx);
            if(la_===1) {
                this.state = 5591;
                this.lengthOneDimension();

            }
            this.state = 5595;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.BINARY) {
                this.state = 5594;
                this.match(SqlParser.BINARY);
            }

            break;

        case 3:
            localctx = new NationalStringDataTypeContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 5597;
            this.match(SqlParser.NCHAR);
            this.state = 5598;
            localctx.typeName = this.match(SqlParser.VARCHAR);
            this.state = 5600;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,816,this._ctx);
            if(la_===1) {
                this.state = 5599;
                this.lengthOneDimension();

            }
            this.state = 5603;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.BINARY) {
                this.state = 5602;
                this.match(SqlParser.BINARY);
            }

            break;

        case 4:
            localctx = new NationalVaryingStringDataTypeContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 5605;
            this.match(SqlParser.NATIONAL);
            this.state = 5606;
            localctx.typeName = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.CHARACTER || _la===SqlParser.CHAR)) {
                localctx.typeName = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5607;
            this.match(SqlParser.VARYING);
            this.state = 5609;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,818,this._ctx);
            if(la_===1) {
                this.state = 5608;
                this.lengthOneDimension();

            }
            this.state = 5612;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.BINARY) {
                this.state = 5611;
                this.match(SqlParser.BINARY);
            }

            break;

        case 5:
            localctx = new DimensionDataTypeContext(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 5614;
            localctx.typeName = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(((((_la - 178)) & ~0x1f) == 0 && ((1 << (_la - 178)) & ((1 << (SqlParser.TINYINT - 178)) | (1 << (SqlParser.SMALLINT - 178)) | (1 << (SqlParser.MEDIUMINT - 178)) | (1 << (SqlParser.MIDDLEINT - 178)) | (1 << (SqlParser.INT - 178)) | (1 << (SqlParser.INT1 - 178)) | (1 << (SqlParser.INT2 - 178)) | (1 << (SqlParser.INT3 - 178)) | (1 << (SqlParser.INT4 - 178)) | (1 << (SqlParser.INT8 - 178)) | (1 << (SqlParser.INTEGER - 178)) | (1 << (SqlParser.BIGINT - 178)))) !== 0))) {
                localctx.typeName = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5616;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,820,this._ctx);
            if(la_===1) {
                this.state = 5615;
                this.lengthOneDimension();

            }
            this.state = 5619;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,821,this._ctx);
            if(la_===1) {
                this.state = 5618;
                _la = this._input.LA(1);
                if(!(_la===SqlParser.UNSIGNED || _la===SqlParser.SIGNED)) {
                this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }

            }
            this.state = 5622;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ZEROFILL) {
                this.state = 5621;
                this.match(SqlParser.ZEROFILL);
            }

            break;

        case 6:
            localctx = new DimensionDataTypeContext(this, localctx);
            this.enterOuterAlt(localctx, 6);
            this.state = 5624;
            localctx.typeName = this.match(SqlParser.REAL);
            this.state = 5626;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,823,this._ctx);
            if(la_===1) {
                this.state = 5625;
                this.lengthTwoDimension();

            }
            this.state = 5629;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,824,this._ctx);
            if(la_===1) {
                this.state = 5628;
                _la = this._input.LA(1);
                if(!(_la===SqlParser.UNSIGNED || _la===SqlParser.SIGNED)) {
                this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }

            }
            this.state = 5632;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ZEROFILL) {
                this.state = 5631;
                this.match(SqlParser.ZEROFILL);
            }

            break;

        case 7:
            localctx = new DimensionDataTypeContext(this, localctx);
            this.enterOuterAlt(localctx, 7);
            this.state = 5634;
            localctx.typeName = this.match(SqlParser.DOUBLE);
            this.state = 5636;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.PRECISION) {
                this.state = 5635;
                this.match(SqlParser.PRECISION);
            }

            this.state = 5639;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,827,this._ctx);
            if(la_===1) {
                this.state = 5638;
                this.lengthTwoDimension();

            }
            this.state = 5642;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,828,this._ctx);
            if(la_===1) {
                this.state = 5641;
                _la = this._input.LA(1);
                if(!(_la===SqlParser.UNSIGNED || _la===SqlParser.SIGNED)) {
                this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }

            }
            this.state = 5645;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ZEROFILL) {
                this.state = 5644;
                this.match(SqlParser.ZEROFILL);
            }

            break;

        case 8:
            localctx = new DimensionDataTypeContext(this, localctx);
            this.enterOuterAlt(localctx, 8);
            this.state = 5647;
            localctx.typeName = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(((((_la - 193)) & ~0x1f) == 0 && ((1 << (_la - 193)) & ((1 << (SqlParser.FLOAT - 193)) | (1 << (SqlParser.FLOAT4 - 193)) | (1 << (SqlParser.FLOAT8 - 193)) | (1 << (SqlParser.DECIMAL - 193)) | (1 << (SqlParser.DEC - 193)) | (1 << (SqlParser.NUMERIC - 193)))) !== 0) || _la===SqlParser.FIXED)) {
                localctx.typeName = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5649;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,830,this._ctx);
            if(la_===1) {
                this.state = 5648;
                this.lengthTwoOptionalDimension();

            }
            this.state = 5652;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,831,this._ctx);
            if(la_===1) {
                this.state = 5651;
                _la = this._input.LA(1);
                if(!(_la===SqlParser.UNSIGNED || _la===SqlParser.SIGNED)) {
                this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }

            }
            this.state = 5655;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ZEROFILL) {
                this.state = 5654;
                this.match(SqlParser.ZEROFILL);
            }

            break;

        case 9:
            localctx = new SimpleDataTypeContext(this, localctx);
            this.enterOuterAlt(localctx, 9);
            this.state = 5657;
            localctx.typeName = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TINYBLOB - 199)) | (1 << (SqlParser.BLOB - 199)) | (1 << (SqlParser.MEDIUMBLOB - 199)) | (1 << (SqlParser.LONGBLOB - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || _la===SqlParser.BOOL || _la===SqlParser.BOOLEAN)) {
                localctx.typeName = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 10:
            localctx = new DimensionDataTypeContext(this, localctx);
            this.enterOuterAlt(localctx, 10);
            this.state = 5658;
            localctx.typeName = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(((((_la - 200)) & ~0x1f) == 0 && ((1 << (_la - 200)) & ((1 << (SqlParser.TIME - 200)) | (1 << (SqlParser.TIMESTAMP - 200)) | (1 << (SqlParser.DATETIME - 200)) | (1 << (SqlParser.YEAR - 200)) | (1 << (SqlParser.BINARY - 200)) | (1 << (SqlParser.VARBINARY - 200)))) !== 0) || _la===SqlParser.BIT)) {
                localctx.typeName = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5660;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,833,this._ctx);
            if(la_===1) {
                this.state = 5659;
                this.lengthOneDimension();

            }
            break;

        case 11:
            localctx = new CollectionDataTypeContext(this, localctx);
            this.enterOuterAlt(localctx, 11);
            this.state = 5662;
            localctx.typeName = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.SET || _la===SqlParser.ENUM)) {
                localctx.typeName = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5663;
            this.collectionOptions();
            this.state = 5665;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.BINARY) {
                this.state = 5664;
                this.match(SqlParser.BINARY);
            }

            this.state = 5673;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,836,this._ctx);
            if(la_===1) {
                this.state = 5670;
                this._errHandler.sync(this);
                switch(this._input.LA(1)) {
                case SqlParser.CHARACTER:
                    this.state = 5667;
                    this.match(SqlParser.CHARACTER);
                    this.state = 5668;
                    this.match(SqlParser.SET);
                    break;
                case SqlParser.CHARSET:
                    this.state = 5669;
                    this.match(SqlParser.CHARSET);
                    break;
                default:
                    throw new antlr4.error.NoViableAltException(this);
                }
                this.state = 5672;
                this.charsetName();

            }
            break;

        case 12:
            localctx = new SpatialDataTypeContext(this, localctx);
            this.enterOuterAlt(localctx, 12);
            this.state = 5675;
            localctx.typeName = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.JSON || ((((_la - 693)) & ~0x1f) == 0 && ((1 << (_la - 693)) & ((1 << (SqlParser.GEOMETRYCOLLECTION - 693)) | (1 << (SqlParser.GEOMCOLLECTION - 693)) | (1 << (SqlParser.GEOMETRY - 693)) | (1 << (SqlParser.LINESTRING - 693)) | (1 << (SqlParser.MULTILINESTRING - 693)) | (1 << (SqlParser.MULTIPOINT - 693)) | (1 << (SqlParser.MULTIPOLYGON - 693)) | (1 << (SqlParser.POINT - 693)) | (1 << (SqlParser.POLYGON - 693)))) !== 0))) {
                localctx.typeName = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 13:
            localctx = new LongVarcharDataTypeContext(this, localctx);
            this.enterOuterAlt(localctx, 13);
            this.state = 5676;
            localctx.typeName = this.match(SqlParser.LONG);
            this.state = 5678;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.VARCHAR) {
                this.state = 5677;
                this.match(SqlParser.VARCHAR);
            }

            this.state = 5681;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.BINARY) {
                this.state = 5680;
                this.match(SqlParser.BINARY);
            }

            this.state = 5689;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,840,this._ctx);
            if(la_===1) {
                this.state = 5686;
                this._errHandler.sync(this);
                switch(this._input.LA(1)) {
                case SqlParser.CHARACTER:
                    this.state = 5683;
                    this.match(SqlParser.CHARACTER);
                    this.state = 5684;
                    this.match(SqlParser.SET);
                    break;
                case SqlParser.CHARSET:
                    this.state = 5685;
                    this.match(SqlParser.CHARSET);
                    break;
                default:
                    throw new antlr4.error.NoViableAltException(this);
                }
                this.state = 5688;
                this.charsetName();

            }
            this.state = 5693;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,841,this._ctx);
            if(la_===1) {
                this.state = 5691;
                this.match(SqlParser.COLLATE);
                this.state = 5692;
                this.collationName();

            }
            break;

        case 14:
            localctx = new LongVarbinaryDataTypeContext(this, localctx);
            this.enterOuterAlt(localctx, 14);
            this.state = 5695;
            this.match(SqlParser.LONG);
            this.state = 5696;
            this.match(SqlParser.VARBINARY);
            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 CollectionOptionsContext(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_collectionOptions;
    return this;
}

CollectionOptionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CollectionOptionsContext.prototype.constructor = CollectionOptionsContext;

CollectionOptionsContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

CollectionOptionsContext.prototype.STRING_LITERAL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.STRING_LITERAL);
    } else {
        return this.getToken(SqlParser.STRING_LITERAL, i);
    }
};


CollectionOptionsContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

CollectionOptionsContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


CollectionOptionsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCollectionOptions(this);
	}
};

CollectionOptionsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCollectionOptions(this);
	}
};

CollectionOptionsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCollectionOptions(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CollectionOptionsContext = CollectionOptionsContext;

SqlParser.prototype.collectionOptions = function() {

    var localctx = new CollectionOptionsContext(this, this._ctx, this.state);
    this.enterRule(localctx, 546, SqlParser.RULE_collectionOptions);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5699;
        this.match(SqlParser.LR_BRACKET);
        this.state = 5700;
        this.match(SqlParser.STRING_LITERAL);
        this.state = 5705;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 5701;
            this.match(SqlParser.COMMA);
            this.state = 5702;
            this.match(SqlParser.STRING_LITERAL);
            this.state = 5707;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 5708;
        this.match(SqlParser.RR_BRACKET);
    } 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 ConvertedDataTypeContext(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_convertedDataType;
    this.typeName = null; // Token
    return this;
}

ConvertedDataTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ConvertedDataTypeContext.prototype.constructor = ConvertedDataTypeContext;

ConvertedDataTypeContext.prototype.BINARY = function() {
    return this.getToken(SqlParser.BINARY, 0);
};

ConvertedDataTypeContext.prototype.NCHAR = function() {
    return this.getToken(SqlParser.NCHAR, 0);
};

ConvertedDataTypeContext.prototype.lengthOneDimension = function() {
    return this.getTypedRuleContext(LengthOneDimensionContext,0);
};

ConvertedDataTypeContext.prototype.CHAR = function() {
    return this.getToken(SqlParser.CHAR, 0);
};

ConvertedDataTypeContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};

ConvertedDataTypeContext.prototype.CHARACTER = function() {
    return this.getToken(SqlParser.CHARACTER, 0);
};

ConvertedDataTypeContext.prototype.SET = function() {
    return this.getToken(SqlParser.SET, 0);
};

ConvertedDataTypeContext.prototype.CHARSET = function() {
    return this.getToken(SqlParser.CHARSET, 0);
};

ConvertedDataTypeContext.prototype.DATE = function() {
    return this.getToken(SqlParser.DATE, 0);
};

ConvertedDataTypeContext.prototype.DATETIME = function() {
    return this.getToken(SqlParser.DATETIME, 0);
};

ConvertedDataTypeContext.prototype.TIME = function() {
    return this.getToken(SqlParser.TIME, 0);
};

ConvertedDataTypeContext.prototype.JSON = function() {
    return this.getToken(SqlParser.JSON, 0);
};

ConvertedDataTypeContext.prototype.DECIMAL = function() {
    return this.getToken(SqlParser.DECIMAL, 0);
};

ConvertedDataTypeContext.prototype.lengthTwoDimension = function() {
    return this.getTypedRuleContext(LengthTwoDimensionContext,0);
};

ConvertedDataTypeContext.prototype.SIGNED = function() {
    return this.getToken(SqlParser.SIGNED, 0);
};

ConvertedDataTypeContext.prototype.UNSIGNED = function() {
    return this.getToken(SqlParser.UNSIGNED, 0);
};

ConvertedDataTypeContext.prototype.INTEGER = function() {
    return this.getToken(SqlParser.INTEGER, 0);
};

ConvertedDataTypeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterConvertedDataType(this);
	}
};

ConvertedDataTypeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitConvertedDataType(this);
	}
};

ConvertedDataTypeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitConvertedDataType(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ConvertedDataTypeContext = ConvertedDataTypeContext;

SqlParser.prototype.convertedDataType = function() {

    var localctx = new ConvertedDataTypeContext(this, this._ctx, this.state);
    this.enterRule(localctx, 548, SqlParser.RULE_convertedDataType);
    var _la = 0; // Token type
    try {
        this.state = 5735;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.BINARY:
        case SqlParser.NCHAR:
            this.enterOuterAlt(localctx, 1);
            this.state = 5710;
            localctx.typeName = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.BINARY || _la===SqlParser.NCHAR)) {
                localctx.typeName = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5712;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LR_BRACKET) {
                this.state = 5711;
                this.lengthOneDimension();
            }

            break;
        case SqlParser.CHAR:
            this.enterOuterAlt(localctx, 2);
            this.state = 5714;
            localctx.typeName = this.match(SqlParser.CHAR);
            this.state = 5716;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LR_BRACKET) {
                this.state = 5715;
                this.lengthOneDimension();
            }

            this.state = 5724;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.CHARACTER || _la===SqlParser.CHARSET) {
                this.state = 5721;
                this._errHandler.sync(this);
                switch(this._input.LA(1)) {
                case SqlParser.CHARACTER:
                    this.state = 5718;
                    this.match(SqlParser.CHARACTER);
                    this.state = 5719;
                    this.match(SqlParser.SET);
                    break;
                case SqlParser.CHARSET:
                    this.state = 5720;
                    this.match(SqlParser.CHARSET);
                    break;
                default:
                    throw new antlr4.error.NoViableAltException(this);
                }
                this.state = 5723;
                this.charsetName();
            }

            break;
        case SqlParser.DATE:
        case SqlParser.TIME:
        case SqlParser.DATETIME:
        case SqlParser.JSON:
            this.enterOuterAlt(localctx, 3);
            this.state = 5726;
            localctx.typeName = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.DATETIME - 199)))) !== 0) || _la===SqlParser.JSON)) {
                localctx.typeName = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;
        case SqlParser.DECIMAL:
            this.enterOuterAlt(localctx, 4);
            this.state = 5727;
            localctx.typeName = this.match(SqlParser.DECIMAL);
            this.state = 5729;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LR_BRACKET) {
                this.state = 5728;
                this.lengthTwoDimension();
            }

            break;
        case SqlParser.UNSIGNED:
        case SqlParser.SIGNED:
            this.enterOuterAlt(localctx, 5);
            this.state = 5731;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.UNSIGNED || _la===SqlParser.SIGNED)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5733;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.INTEGER) {
                this.state = 5732;
                this.match(SqlParser.INTEGER);
            }

            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 LengthOneDimensionContext(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_lengthOneDimension;
    return this;
}

LengthOneDimensionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LengthOneDimensionContext.prototype.constructor = LengthOneDimensionContext;

LengthOneDimensionContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

LengthOneDimensionContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

LengthOneDimensionContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

LengthOneDimensionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLengthOneDimension(this);
	}
};

LengthOneDimensionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLengthOneDimension(this);
	}
};

LengthOneDimensionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLengthOneDimension(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LengthOneDimensionContext = LengthOneDimensionContext;

SqlParser.prototype.lengthOneDimension = function() {

    var localctx = new LengthOneDimensionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 550, SqlParser.RULE_lengthOneDimension);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5737;
        this.match(SqlParser.LR_BRACKET);
        this.state = 5738;
        this.decimalLiteral();
        this.state = 5739;
        this.match(SqlParser.RR_BRACKET);
    } 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 LengthTwoDimensionContext(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_lengthTwoDimension;
    return this;
}

LengthTwoDimensionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LengthTwoDimensionContext.prototype.constructor = LengthTwoDimensionContext;

LengthTwoDimensionContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

LengthTwoDimensionContext.prototype.decimalLiteral = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DecimalLiteralContext);
    } else {
        return this.getTypedRuleContext(DecimalLiteralContext,i);
    }
};

LengthTwoDimensionContext.prototype.COMMA = function() {
    return this.getToken(SqlParser.COMMA, 0);
};

LengthTwoDimensionContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

LengthTwoDimensionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLengthTwoDimension(this);
	}
};

LengthTwoDimensionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLengthTwoDimension(this);
	}
};

LengthTwoDimensionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLengthTwoDimension(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LengthTwoDimensionContext = LengthTwoDimensionContext;

SqlParser.prototype.lengthTwoDimension = function() {

    var localctx = new LengthTwoDimensionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 552, SqlParser.RULE_lengthTwoDimension);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5741;
        this.match(SqlParser.LR_BRACKET);
        this.state = 5742;
        this.decimalLiteral();
        this.state = 5743;
        this.match(SqlParser.COMMA);
        this.state = 5744;
        this.decimalLiteral();
        this.state = 5745;
        this.match(SqlParser.RR_BRACKET);
    } 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 LengthTwoOptionalDimensionContext(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_lengthTwoOptionalDimension;
    return this;
}

LengthTwoOptionalDimensionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LengthTwoOptionalDimensionContext.prototype.constructor = LengthTwoOptionalDimensionContext;

LengthTwoOptionalDimensionContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

LengthTwoOptionalDimensionContext.prototype.decimalLiteral = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DecimalLiteralContext);
    } else {
        return this.getTypedRuleContext(DecimalLiteralContext,i);
    }
};

LengthTwoOptionalDimensionContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

LengthTwoOptionalDimensionContext.prototype.COMMA = function() {
    return this.getToken(SqlParser.COMMA, 0);
};

LengthTwoOptionalDimensionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLengthTwoOptionalDimension(this);
	}
};

LengthTwoOptionalDimensionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLengthTwoOptionalDimension(this);
	}
};

LengthTwoOptionalDimensionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLengthTwoOptionalDimension(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LengthTwoOptionalDimensionContext = LengthTwoOptionalDimensionContext;

SqlParser.prototype.lengthTwoOptionalDimension = function() {

    var localctx = new LengthTwoOptionalDimensionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 554, SqlParser.RULE_lengthTwoOptionalDimension);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5747;
        this.match(SqlParser.LR_BRACKET);
        this.state = 5748;
        this.decimalLiteral();
        this.state = 5751;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.COMMA) {
            this.state = 5749;
            this.match(SqlParser.COMMA);
            this.state = 5750;
            this.decimalLiteral();
        }

        this.state = 5753;
        this.match(SqlParser.RR_BRACKET);
    } 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 UidListContext(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_uidList;
    return this;
}

UidListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UidListContext.prototype.constructor = UidListContext;

UidListContext.prototype.uid = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(UidContext);
    } else {
        return this.getTypedRuleContext(UidContext,i);
    }
};

UidListContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


UidListContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUidList(this);
	}
};

UidListContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUidList(this);
	}
};

UidListContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUidList(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UidListContext = UidListContext;

SqlParser.prototype.uidList = function() {

    var localctx = new UidListContext(this, this._ctx, this.state);
    this.enterRule(localctx, 556, SqlParser.RULE_uidList);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5755;
        this.uid();
        this.state = 5760;
        this._errHandler.sync(this);
        var _alt = this._interp.adaptivePredict(this._input,852,this._ctx)
        while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
            if(_alt===1) {
                this.state = 5756;
                this.match(SqlParser.COMMA);
                this.state = 5757;
                this.uid(); 
            }
            this.state = 5762;
            this._errHandler.sync(this);
            _alt = this._interp.adaptivePredict(this._input,852,this._ctx);
        }

    } 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 TablesContext(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_tables;
    return this;
}

TablesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TablesContext.prototype.constructor = TablesContext;

TablesContext.prototype.tableName = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(TableNameContext);
    } else {
        return this.getTypedRuleContext(TableNameContext,i);
    }
};

TablesContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


TablesContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTables(this);
	}
};

TablesContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTables(this);
	}
};

TablesContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTables(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.TablesContext = TablesContext;

SqlParser.prototype.tables = function() {

    var localctx = new TablesContext(this, this._ctx, this.state);
    this.enterRule(localctx, 558, SqlParser.RULE_tables);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5763;
        this.tableName();
        this.state = 5768;
        this._errHandler.sync(this);
        var _alt = this._interp.adaptivePredict(this._input,853,this._ctx)
        while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
            if(_alt===1) {
                this.state = 5764;
                this.match(SqlParser.COMMA);
                this.state = 5765;
                this.tableName(); 
            }
            this.state = 5770;
            this._errHandler.sync(this);
            _alt = this._interp.adaptivePredict(this._input,853,this._ctx);
        }

    } 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 IndexColumnNamesContext(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_indexColumnNames;
    return this;
}

IndexColumnNamesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IndexColumnNamesContext.prototype.constructor = IndexColumnNamesContext;

IndexColumnNamesContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

IndexColumnNamesContext.prototype.indexColumnName = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(IndexColumnNameContext);
    } else {
        return this.getTypedRuleContext(IndexColumnNameContext,i);
    }
};

IndexColumnNamesContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

IndexColumnNamesContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


IndexColumnNamesContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIndexColumnNames(this);
	}
};

IndexColumnNamesContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIndexColumnNames(this);
	}
};

IndexColumnNamesContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIndexColumnNames(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.IndexColumnNamesContext = IndexColumnNamesContext;

SqlParser.prototype.indexColumnNames = function() {

    var localctx = new IndexColumnNamesContext(this, this._ctx, this.state);
    this.enterRule(localctx, 560, SqlParser.RULE_indexColumnNames);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5771;
        this.match(SqlParser.LR_BRACKET);
        this.state = 5772;
        this.indexColumnName();
        this.state = 5777;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 5773;
            this.match(SqlParser.COMMA);
            this.state = 5774;
            this.indexColumnName();
            this.state = 5779;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
        }
        this.state = 5780;
        this.match(SqlParser.RR_BRACKET);
    } 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 ExpressionsContext(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_expressions;
    return this;
}

ExpressionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ExpressionsContext.prototype.constructor = ExpressionsContext;

ExpressionsContext.prototype.expression = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionContext);
    } else {
        return this.getTypedRuleContext(ExpressionContext,i);
    }
};

ExpressionsContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


ExpressionsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterExpressions(this);
	}
};

ExpressionsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitExpressions(this);
	}
};

ExpressionsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitExpressions(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ExpressionsContext = ExpressionsContext;

SqlParser.prototype.expressions = function() {

    var localctx = new ExpressionsContext(this, this._ctx, this.state);
    this.enterRule(localctx, 562, SqlParser.RULE_expressions);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5782;
        this.expression(0);
        this.state = 5787;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 5783;
            this.match(SqlParser.COMMA);
            this.state = 5784;
            this.expression(0);
            this.state = 5789;
            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 ExpressionsWithDefaultsContext(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_expressionsWithDefaults;
    return this;
}

ExpressionsWithDefaultsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ExpressionsWithDefaultsContext.prototype.constructor = ExpressionsWithDefaultsContext;

ExpressionsWithDefaultsContext.prototype.expressionOrDefault = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionOrDefaultContext);
    } else {
        return this.getTypedRuleContext(ExpressionOrDefaultContext,i);
    }
};

ExpressionsWithDefaultsContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


ExpressionsWithDefaultsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterExpressionsWithDefaults(this);
	}
};

ExpressionsWithDefaultsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitExpressionsWithDefaults(this);
	}
};

ExpressionsWithDefaultsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitExpressionsWithDefaults(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ExpressionsWithDefaultsContext = ExpressionsWithDefaultsContext;

SqlParser.prototype.expressionsWithDefaults = function() {

    var localctx = new ExpressionsWithDefaultsContext(this, this._ctx, this.state);
    this.enterRule(localctx, 564, SqlParser.RULE_expressionsWithDefaults);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5790;
        this.expressionOrDefault();
        this.state = 5795;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 5791;
            this.match(SqlParser.COMMA);
            this.state = 5792;
            this.expressionOrDefault();
            this.state = 5797;
            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 ConstantsContext(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_constants;
    return this;
}

ConstantsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ConstantsContext.prototype.constructor = ConstantsContext;

ConstantsContext.prototype.constant = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ConstantContext);
    } else {
        return this.getTypedRuleContext(ConstantContext,i);
    }
};

ConstantsContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


ConstantsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterConstants(this);
	}
};

ConstantsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitConstants(this);
	}
};

ConstantsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitConstants(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ConstantsContext = ConstantsContext;

SqlParser.prototype.constants = function() {

    var localctx = new ConstantsContext(this, this._ctx, this.state);
    this.enterRule(localctx, 566, SqlParser.RULE_constants);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5798;
        this.constant();
        this.state = 5803;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 5799;
            this.match(SqlParser.COMMA);
            this.state = 5800;
            this.constant();
            this.state = 5805;
            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 SimpleStringsContext(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_simpleStrings;
    return this;
}

SimpleStringsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SimpleStringsContext.prototype.constructor = SimpleStringsContext;

SimpleStringsContext.prototype.STRING_LITERAL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.STRING_LITERAL);
    } else {
        return this.getToken(SqlParser.STRING_LITERAL, i);
    }
};


SimpleStringsContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


SimpleStringsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSimpleStrings(this);
	}
};

SimpleStringsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSimpleStrings(this);
	}
};

SimpleStringsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSimpleStrings(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.SimpleStringsContext = SimpleStringsContext;

SqlParser.prototype.simpleStrings = function() {

    var localctx = new SimpleStringsContext(this, this._ctx, this.state);
    this.enterRule(localctx, 568, SqlParser.RULE_simpleStrings);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5806;
        this.match(SqlParser.STRING_LITERAL);
        this.state = 5811;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 5807;
            this.match(SqlParser.COMMA);
            this.state = 5808;
            this.match(SqlParser.STRING_LITERAL);
            this.state = 5813;
            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 UserVariablesContext(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_userVariables;
    return this;
}

UserVariablesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UserVariablesContext.prototype.constructor = UserVariablesContext;

UserVariablesContext.prototype.LOCAL_ID = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.LOCAL_ID);
    } else {
        return this.getToken(SqlParser.LOCAL_ID, i);
    }
};


UserVariablesContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


UserVariablesContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUserVariables(this);
	}
};

UserVariablesContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUserVariables(this);
	}
};

UserVariablesContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUserVariables(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UserVariablesContext = UserVariablesContext;

SqlParser.prototype.userVariables = function() {

    var localctx = new UserVariablesContext(this, this._ctx, this.state);
    this.enterRule(localctx, 570, SqlParser.RULE_userVariables);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5814;
        this.match(SqlParser.LOCAL_ID);
        this.state = 5819;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 5815;
            this.match(SqlParser.COMMA);
            this.state = 5816;
            this.match(SqlParser.LOCAL_ID);
            this.state = 5821;
            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 DefaultValueContext(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_defaultValue;
    return this;
}

DefaultValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DefaultValueContext.prototype.constructor = DefaultValueContext;

DefaultValueContext.prototype.NULL_LITERAL = function() {
    return this.getToken(SqlParser.NULL_LITERAL, 0);
};

DefaultValueContext.prototype.constant = function() {
    return this.getTypedRuleContext(ConstantContext,0);
};

DefaultValueContext.prototype.unaryOperator = function() {
    return this.getTypedRuleContext(UnaryOperatorContext,0);
};

DefaultValueContext.prototype.currentTimestamp = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(CurrentTimestampContext);
    } else {
        return this.getTypedRuleContext(CurrentTimestampContext,i);
    }
};

DefaultValueContext.prototype.ON = function() {
    return this.getToken(SqlParser.ON, 0);
};

DefaultValueContext.prototype.UPDATE = function() {
    return this.getToken(SqlParser.UPDATE, 0);
};

DefaultValueContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDefaultValue(this);
	}
};

DefaultValueContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDefaultValue(this);
	}
};

DefaultValueContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDefaultValue(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DefaultValueContext = DefaultValueContext;

SqlParser.prototype.defaultValue = function() {

    var localctx = new DefaultValueContext(this, this._ctx, this.state);
    this.enterRule(localctx, 572, SqlParser.RULE_defaultValue);
    try {
        this.state = 5833;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,862,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 5822;
            this.match(SqlParser.NULL_LITERAL);
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 5824;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,860,this._ctx);
            if(la_===1) {
                this.state = 5823;
                this.unaryOperator();

            }
            this.state = 5826;
            this.constant();
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 5827;
            this.currentTimestamp();
            this.state = 5831;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,861,this._ctx);
            if(la_===1) {
                this.state = 5828;
                this.match(SqlParser.ON);
                this.state = 5829;
                this.match(SqlParser.UPDATE);
                this.state = 5830;
                this.currentTimestamp();

            }
            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 CurrentTimestampContext(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_currentTimestamp;
    return this;
}

CurrentTimestampContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CurrentTimestampContext.prototype.constructor = CurrentTimestampContext;

CurrentTimestampContext.prototype.NOW = function() {
    return this.getToken(SqlParser.NOW, 0);
};

CurrentTimestampContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

CurrentTimestampContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

CurrentTimestampContext.prototype.CURRENT_TIMESTAMP = function() {
    return this.getToken(SqlParser.CURRENT_TIMESTAMP, 0);
};

CurrentTimestampContext.prototype.LOCALTIME = function() {
    return this.getToken(SqlParser.LOCALTIME, 0);
};

CurrentTimestampContext.prototype.LOCALTIMESTAMP = function() {
    return this.getToken(SqlParser.LOCALTIMESTAMP, 0);
};

CurrentTimestampContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

CurrentTimestampContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCurrentTimestamp(this);
	}
};

CurrentTimestampContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCurrentTimestamp(this);
	}
};

CurrentTimestampContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCurrentTimestamp(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CurrentTimestampContext = CurrentTimestampContext;

SqlParser.prototype.currentTimestamp = function() {

    var localctx = new CurrentTimestampContext(this, this._ctx, this.state);
    this.enterRule(localctx, 574, SqlParser.RULE_currentTimestamp);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5849;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.CURRENT_TIMESTAMP:
        case SqlParser.LOCALTIME:
        case SqlParser.LOCALTIMESTAMP:
            this.state = 5835;
            _la = this._input.LA(1);
            if(!(((((_la - 253)) & ~0x1f) == 0 && ((1 << (_la - 253)) & ((1 << (SqlParser.CURRENT_TIMESTAMP - 253)) | (1 << (SqlParser.LOCALTIME - 253)) | (1 << (SqlParser.LOCALTIMESTAMP - 253)))) !== 0))) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5841;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,864,this._ctx);
            if(la_===1) {
                this.state = 5836;
                this.match(SqlParser.LR_BRACKET);
                this.state = 5838;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(((((_la - 1025)) & ~0x1f) == 0 && ((1 << (_la - 1025)) & ((1 << (SqlParser.ZERO_DECIMAL - 1025)) | (1 << (SqlParser.ONE_DECIMAL - 1025)) | (1 << (SqlParser.TWO_DECIMAL - 1025)) | (1 << (SqlParser.DECIMAL_LITERAL - 1025)))) !== 0)) {
                    this.state = 5837;
                    this.decimalLiteral();
                }

                this.state = 5840;
                this.match(SqlParser.RR_BRACKET);

            }
            break;
        case SqlParser.NOW:
            this.state = 5843;
            this.match(SqlParser.NOW);
            this.state = 5844;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5846;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(((((_la - 1025)) & ~0x1f) == 0 && ((1 << (_la - 1025)) & ((1 << (SqlParser.ZERO_DECIMAL - 1025)) | (1 << (SqlParser.ONE_DECIMAL - 1025)) | (1 << (SqlParser.TWO_DECIMAL - 1025)) | (1 << (SqlParser.DECIMAL_LITERAL - 1025)))) !== 0)) {
                this.state = 5845;
                this.decimalLiteral();
            }

            this.state = 5848;
            this.match(SqlParser.RR_BRACKET);
            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 ExpressionOrDefaultContext(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_expressionOrDefault;
    return this;
}

ExpressionOrDefaultContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ExpressionOrDefaultContext.prototype.constructor = ExpressionOrDefaultContext;

ExpressionOrDefaultContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

ExpressionOrDefaultContext.prototype.DEFAULT = function() {
    return this.getToken(SqlParser.DEFAULT, 0);
};

ExpressionOrDefaultContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterExpressionOrDefault(this);
	}
};

ExpressionOrDefaultContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitExpressionOrDefault(this);
	}
};

ExpressionOrDefaultContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitExpressionOrDefault(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ExpressionOrDefaultContext = ExpressionOrDefaultContext;

SqlParser.prototype.expressionOrDefault = function() {

    var localctx = new ExpressionOrDefaultContext(this, this._ctx, this.state);
    this.enterRule(localctx, 576, SqlParser.RULE_expressionOrDefault);
    try {
        this.state = 5853;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.CASE:
        case SqlParser.CAST:
        case SqlParser.CONVERT:
        case SqlParser.CURRENT:
        case SqlParser.CURRENT_USER:
        case SqlParser.DATABASE:
        case SqlParser.DIAGNOSTICS:
        case SqlParser.EXISTS:
        case SqlParser.FALSE:
        case SqlParser.IF:
        case SqlParser.INSERT:
        case SqlParser.INTERVAL:
        case SqlParser.LEFT:
        case SqlParser.NOT:
        case SqlParser.NULL_LITERAL:
        case SqlParser.NUMBER:
        case SqlParser.REPLACE:
        case SqlParser.RIGHT:
        case SqlParser.STACKED:
        case SqlParser.TRUE:
        case SqlParser.VALUES:
        case SqlParser.DATE:
        case SqlParser.TIME:
        case SqlParser.TIMESTAMP:
        case SqlParser.DATETIME:
        case SqlParser.YEAR:
        case SqlParser.CHAR:
        case SqlParser.BINARY:
        case SqlParser.TEXT:
        case SqlParser.ENUM:
        case SqlParser.SERIAL:
        case SqlParser.JSON_VALID:
        case SqlParser.JSON_SCHEMA_VALID:
        case SqlParser.AVG:
        case SqlParser.BIT_AND:
        case SqlParser.BIT_OR:
        case SqlParser.BIT_XOR:
        case SqlParser.COUNT:
        case SqlParser.GROUP_CONCAT:
        case SqlParser.MAX:
        case SqlParser.MIN:
        case SqlParser.STD:
        case SqlParser.STDDEV:
        case SqlParser.STDDEV_POP:
        case SqlParser.STDDEV_SAMP:
        case SqlParser.SUM:
        case SqlParser.VAR_POP:
        case SqlParser.VAR_SAMP:
        case SqlParser.VARIANCE:
        case SqlParser.CURRENT_DATE:
        case SqlParser.CURRENT_TIME:
        case SqlParser.CURRENT_TIMESTAMP:
        case SqlParser.LOCALTIME:
        case SqlParser.CURDATE:
        case SqlParser.CURTIME:
        case SqlParser.DATE_ADD:
        case SqlParser.DATE_SUB:
        case SqlParser.EXTRACT:
        case SqlParser.LOCALTIMESTAMP:
        case SqlParser.NOW:
        case SqlParser.POSITION:
        case SqlParser.SUBSTR:
        case SqlParser.SUBSTRING:
        case SqlParser.SYSDATE:
        case SqlParser.TRIM:
        case SqlParser.UTC_DATE:
        case SqlParser.UTC_TIME:
        case SqlParser.UTC_TIMESTAMP:
        case SqlParser.ACCOUNT:
        case SqlParser.ACTION:
        case SqlParser.AFTER:
        case SqlParser.AGGREGATE:
        case SqlParser.ALGORITHM:
        case SqlParser.ANY:
        case SqlParser.AT:
        case SqlParser.AUTHORS:
        case SqlParser.AUTOCOMMIT:
        case SqlParser.AUTOEXTEND_SIZE:
        case SqlParser.AUTO_INCREMENT:
        case SqlParser.AVG_ROW_LENGTH:
        case SqlParser.BEGIN:
        case SqlParser.BINLOG:
        case SqlParser.BIT:
        case SqlParser.BLOCK:
        case SqlParser.BOOL:
        case SqlParser.BOOLEAN:
        case SqlParser.BTREE:
        case SqlParser.CACHE:
        case SqlParser.CASCADED:
        case SqlParser.CHAIN:
        case SqlParser.CHANGED:
        case SqlParser.CHANNEL:
        case SqlParser.CHECKSUM:
        case SqlParser.PAGE_CHECKSUM:
        case SqlParser.CIPHER:
        case SqlParser.CLASS_ORIGIN:
        case SqlParser.CLIENT:
        case SqlParser.CLOSE:
        case SqlParser.COALESCE:
        case SqlParser.CODE:
        case SqlParser.COLUMNS:
        case SqlParser.COLUMN_FORMAT:
        case SqlParser.COLUMN_NAME:
        case SqlParser.COMMENT:
        case SqlParser.COMMIT:
        case SqlParser.COMPACT:
        case SqlParser.COMPLETION:
        case SqlParser.COMPRESSED:
        case SqlParser.COMPRESSION:
        case SqlParser.CONCURRENT:
        case SqlParser.CONNECTION:
        case SqlParser.CONSISTENT:
        case SqlParser.CONSTRAINT_CATALOG:
        case SqlParser.CONSTRAINT_SCHEMA:
        case SqlParser.CONSTRAINT_NAME:
        case SqlParser.CONTAINS:
        case SqlParser.CONTEXT:
        case SqlParser.CONTRIBUTORS:
        case SqlParser.COPY:
        case SqlParser.CPU:
        case SqlParser.CURSOR_NAME:
        case SqlParser.DATA:
        case SqlParser.DATAFILE:
        case SqlParser.DEALLOCATE:
        case SqlParser.DEFAULT_AUTH:
        case SqlParser.DEFINER:
        case SqlParser.DELAY_KEY_WRITE:
        case SqlParser.DES_KEY_FILE:
        case SqlParser.DIRECTORY:
        case SqlParser.DISABLE:
        case SqlParser.DISCARD:
        case SqlParser.DISK:
        case SqlParser.DO:
        case SqlParser.DUMPFILE:
        case SqlParser.DUPLICATE:
        case SqlParser.DYNAMIC:
        case SqlParser.ENABLE:
        case SqlParser.ENCRYPTION:
        case SqlParser.END:
        case SqlParser.ENDS:
        case SqlParser.ENGINE:
        case SqlParser.ENGINES:
        case SqlParser.ERROR:
        case SqlParser.ERRORS:
        case SqlParser.ESCAPE:
        case SqlParser.EVEN:
        case SqlParser.EVENT:
        case SqlParser.EVENTS:
        case SqlParser.EVERY:
        case SqlParser.EXCHANGE:
        case SqlParser.EXCLUSIVE:
        case SqlParser.EXPIRE:
        case SqlParser.EXPORT:
        case SqlParser.EXTENDED:
        case SqlParser.EXTENT_SIZE:
        case SqlParser.FAST:
        case SqlParser.FAULTS:
        case SqlParser.FIELDS:
        case SqlParser.FILE_BLOCK_SIZE:
        case SqlParser.FILTER:
        case SqlParser.FIRST:
        case SqlParser.FIXED:
        case SqlParser.FLUSH:
        case SqlParser.FOLLOWS:
        case SqlParser.FOUND:
        case SqlParser.FULL:
        case SqlParser.FUNCTION:
        case SqlParser.GENERAL:
        case SqlParser.GLOBAL:
        case SqlParser.GRANTS:
        case SqlParser.GROUP_REPLICATION:
        case SqlParser.HANDLER:
        case SqlParser.HASH:
        case SqlParser.HELP:
        case SqlParser.HOST:
        case SqlParser.HOSTS:
        case SqlParser.IDENTIFIED:
        case SqlParser.IGNORE_SERVER_IDS:
        case SqlParser.IMPORT:
        case SqlParser.INDEXES:
        case SqlParser.INITIAL_SIZE:
        case SqlParser.INPLACE:
        case SqlParser.INSERT_METHOD:
        case SqlParser.INSTALL:
        case SqlParser.INSTANCE:
        case SqlParser.INVISIBLE:
        case SqlParser.INVOKER:
        case SqlParser.IO:
        case SqlParser.IO_THREAD:
        case SqlParser.IPC:
        case SqlParser.ISOLATION:
        case SqlParser.ISSUER:
        case SqlParser.JSON:
        case SqlParser.KEY_BLOCK_SIZE:
        case SqlParser.LANGUAGE:
        case SqlParser.LAST:
        case SqlParser.LEAVES:
        case SqlParser.LESS:
        case SqlParser.LEVEL:
        case SqlParser.LIST:
        case SqlParser.LOCAL:
        case SqlParser.LOGFILE:
        case SqlParser.LOGS:
        case SqlParser.MASTER:
        case SqlParser.MASTER_AUTO_POSITION:
        case SqlParser.MASTER_CONNECT_RETRY:
        case SqlParser.MASTER_DELAY:
        case SqlParser.MASTER_HEARTBEAT_PERIOD:
        case SqlParser.MASTER_HOST:
        case SqlParser.MASTER_LOG_FILE:
        case SqlParser.MASTER_LOG_POS:
        case SqlParser.MASTER_PASSWORD:
        case SqlParser.MASTER_PORT:
        case SqlParser.MASTER_RETRY_COUNT:
        case SqlParser.MASTER_SSL:
        case SqlParser.MASTER_SSL_CA:
        case SqlParser.MASTER_SSL_CAPATH:
        case SqlParser.MASTER_SSL_CERT:
        case SqlParser.MASTER_SSL_CIPHER:
        case SqlParser.MASTER_SSL_CRL:
        case SqlParser.MASTER_SSL_CRLPATH:
        case SqlParser.MASTER_SSL_KEY:
        case SqlParser.MASTER_TLS_VERSION:
        case SqlParser.MASTER_USER:
        case SqlParser.MAX_CONNECTIONS_PER_HOUR:
        case SqlParser.MAX_QUERIES_PER_HOUR:
        case SqlParser.MAX_ROWS:
        case SqlParser.MAX_SIZE:
        case SqlParser.MAX_UPDATES_PER_HOUR:
        case SqlParser.MAX_USER_CONNECTIONS:
        case SqlParser.MEDIUM:
        case SqlParser.MERGE:
        case SqlParser.MESSAGE_TEXT:
        case SqlParser.MID:
        case SqlParser.MIGRATE:
        case SqlParser.MIN_ROWS:
        case SqlParser.MODE:
        case SqlParser.MODIFY:
        case SqlParser.MUTEX:
        case SqlParser.MYSQL:
        case SqlParser.MYSQL_ERRNO:
        case SqlParser.NAME:
        case SqlParser.NAMES:
        case SqlParser.NCHAR:
        case SqlParser.NEVER:
        case SqlParser.NEXT:
        case SqlParser.NO:
        case SqlParser.NODEGROUP:
        case SqlParser.NONE:
        case SqlParser.OFFLINE:
        case SqlParser.OFFSET:
        case SqlParser.OJ:
        case SqlParser.OLD_PASSWORD:
        case SqlParser.ONE:
        case SqlParser.ONLINE:
        case SqlParser.ONLY:
        case SqlParser.OPEN:
        case SqlParser.OPTIMIZER_COSTS:
        case SqlParser.OPTIONS:
        case SqlParser.OWNER:
        case SqlParser.PACK_KEYS:
        case SqlParser.PAGE:
        case SqlParser.PARSER:
        case SqlParser.PARTIAL:
        case SqlParser.PARTITIONING:
        case SqlParser.PARTITIONS:
        case SqlParser.PASSWORD:
        case SqlParser.PHASE:
        case SqlParser.PLUGIN:
        case SqlParser.PLUGIN_DIR:
        case SqlParser.PLUGINS:
        case SqlParser.PORT:
        case SqlParser.PRECEDES:
        case SqlParser.PREPARE:
        case SqlParser.PRESERVE:
        case SqlParser.PREV:
        case SqlParser.PROCESSLIST:
        case SqlParser.PROFILE:
        case SqlParser.PROFILES:
        case SqlParser.PROXY:
        case SqlParser.QUERY:
        case SqlParser.QUICK:
        case SqlParser.REBUILD:
        case SqlParser.RECOVER:
        case SqlParser.REDO_BUFFER_SIZE:
        case SqlParser.REDUNDANT:
        case SqlParser.RELAY:
        case SqlParser.RELAY_LOG_FILE:
        case SqlParser.RELAY_LOG_POS:
        case SqlParser.RELAYLOG:
        case SqlParser.REMOVE:
        case SqlParser.REORGANIZE:
        case SqlParser.REPAIR:
        case SqlParser.REPLICATE_DO_DB:
        case SqlParser.REPLICATE_DO_TABLE:
        case SqlParser.REPLICATE_IGNORE_DB:
        case SqlParser.REPLICATE_IGNORE_TABLE:
        case SqlParser.REPLICATE_REWRITE_DB:
        case SqlParser.REPLICATE_WILD_DO_TABLE:
        case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
        case SqlParser.REPLICATION:
        case SqlParser.RESET:
        case SqlParser.RESUME:
        case SqlParser.RETURNED_SQLSTATE:
        case SqlParser.RETURNS:
        case SqlParser.ROLE:
        case SqlParser.ROLLBACK:
        case SqlParser.ROLLUP:
        case SqlParser.ROTATE:
        case SqlParser.ROW:
        case SqlParser.ROWS:
        case SqlParser.ROW_FORMAT:
        case SqlParser.SAVEPOINT:
        case SqlParser.SCHEDULE:
        case SqlParser.SECURITY:
        case SqlParser.SERVER:
        case SqlParser.SESSION:
        case SqlParser.SHARE:
        case SqlParser.SHARED:
        case SqlParser.SIGNED:
        case SqlParser.SIMPLE:
        case SqlParser.SLAVE:
        case SqlParser.SLOW:
        case SqlParser.SNAPSHOT:
        case SqlParser.SOCKET:
        case SqlParser.SOME:
        case SqlParser.SONAME:
        case SqlParser.SOUNDS:
        case SqlParser.SOURCE:
        case SqlParser.SQL_AFTER_GTIDS:
        case SqlParser.SQL_AFTER_MTS_GAPS:
        case SqlParser.SQL_BEFORE_GTIDS:
        case SqlParser.SQL_BUFFER_RESULT:
        case SqlParser.SQL_CACHE:
        case SqlParser.SQL_NO_CACHE:
        case SqlParser.SQL_THREAD:
        case SqlParser.START:
        case SqlParser.STARTS:
        case SqlParser.STATS_AUTO_RECALC:
        case SqlParser.STATS_PERSISTENT:
        case SqlParser.STATS_SAMPLE_PAGES:
        case SqlParser.STATUS:
        case SqlParser.STOP:
        case SqlParser.STORAGE:
        case SqlParser.STRING:
        case SqlParser.SUBCLASS_ORIGIN:
        case SqlParser.SUBJECT:
        case SqlParser.SUBPARTITION:
        case SqlParser.SUBPARTITIONS:
        case SqlParser.SUSPEND:
        case SqlParser.SWAPS:
        case SqlParser.SWITCHES:
        case SqlParser.TABLE_NAME:
        case SqlParser.TABLESPACE:
        case SqlParser.TEMPORARY:
        case SqlParser.TEMPTABLE:
        case SqlParser.THAN:
        case SqlParser.TRADITIONAL:
        case SqlParser.TRANSACTION:
        case SqlParser.TRANSACTIONAL:
        case SqlParser.TRIGGERS:
        case SqlParser.TRUNCATE:
        case SqlParser.UNDEFINED:
        case SqlParser.UNDOFILE:
        case SqlParser.UNDO_BUFFER_SIZE:
        case SqlParser.UNINSTALL:
        case SqlParser.UNKNOWN:
        case SqlParser.UNTIL:
        case SqlParser.UPGRADE:
        case SqlParser.USER:
        case SqlParser.USE_FRM:
        case SqlParser.USER_RESOURCES:
        case SqlParser.VALIDATION:
        case SqlParser.VALUE:
        case SqlParser.VARIABLES:
        case SqlParser.VIEW:
        case SqlParser.VISIBLE:
        case SqlParser.WAIT:
        case SqlParser.WARNINGS:
        case SqlParser.WITHOUT:
        case SqlParser.WORK:
        case SqlParser.WRAPPER:
        case SqlParser.X509:
        case SqlParser.XA:
        case SqlParser.XML:
        case SqlParser.INTERNAL:
        case SqlParser.QUARTER:
        case SqlParser.MONTH:
        case SqlParser.DAY:
        case SqlParser.HOUR:
        case SqlParser.MINUTE:
        case SqlParser.WEEK:
        case SqlParser.SECOND:
        case SqlParser.MICROSECOND:
        case SqlParser.TABLES:
        case SqlParser.ROUTINE:
        case SqlParser.EXECUTE:
        case SqlParser.FILE:
        case SqlParser.PROCESS:
        case SqlParser.RELOAD:
        case SqlParser.SHUTDOWN:
        case SqlParser.SUPER:
        case SqlParser.PRIVILEGES:
        case SqlParser.AUDIT_ADMIN:
        case SqlParser.BACKUP_ADMIN:
        case SqlParser.BINLOG_ADMIN:
        case SqlParser.BINLOG_ENCRYPTION_ADMIN:
        case SqlParser.CLONE_ADMIN:
        case SqlParser.CONNECTION_ADMIN:
        case SqlParser.ENCRYPTION_KEY_ADMIN:
        case SqlParser.FIREWALL_ADMIN:
        case SqlParser.FIREWALL_USER:
        case SqlParser.GROUP_REPLICATION_ADMIN:
        case SqlParser.INNODB_REDO_LOG_ARCHIVE:
        case SqlParser.NDB_STORED_USER:
        case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
        case SqlParser.REPLICATION_APPLIER:
        case SqlParser.REPLICATION_SLAVE_ADMIN:
        case SqlParser.RESOURCE_GROUP_ADMIN:
        case SqlParser.RESOURCE_GROUP_USER:
        case SqlParser.ROLE_ADMIN:
        case SqlParser.SESSION_VARIABLES_ADMIN:
        case SqlParser.SET_USER_ID:
        case SqlParser.SHOW_ROUTINE:
        case SqlParser.SYSTEM_VARIABLES_ADMIN:
        case SqlParser.TABLE_ENCRYPTION_ADMIN:
        case SqlParser.VERSION_TOKEN_ADMIN:
        case SqlParser.XA_RECOVER_ADMIN:
        case SqlParser.ARMSCII8:
        case SqlParser.ASCII:
        case SqlParser.BIG5:
        case SqlParser.CP1250:
        case SqlParser.CP1251:
        case SqlParser.CP1256:
        case SqlParser.CP1257:
        case SqlParser.CP850:
        case SqlParser.CP852:
        case SqlParser.CP866:
        case SqlParser.CP932:
        case SqlParser.DEC8:
        case SqlParser.EUCJPMS:
        case SqlParser.EUCKR:
        case SqlParser.GB2312:
        case SqlParser.GBK:
        case SqlParser.GEOSTD8:
        case SqlParser.GREEK:
        case SqlParser.HEBREW:
        case SqlParser.HP8:
        case SqlParser.KEYBCS2:
        case SqlParser.KOI8R:
        case SqlParser.KOI8U:
        case SqlParser.LATIN1:
        case SqlParser.LATIN2:
        case SqlParser.LATIN5:
        case SqlParser.LATIN7:
        case SqlParser.MACCE:
        case SqlParser.MACROMAN:
        case SqlParser.SJIS:
        case SqlParser.SWE7:
        case SqlParser.TIS620:
        case SqlParser.UCS2:
        case SqlParser.UJIS:
        case SqlParser.UTF16:
        case SqlParser.UTF16LE:
        case SqlParser.UTF32:
        case SqlParser.UTF8:
        case SqlParser.UTF8MB3:
        case SqlParser.UTF8MB4:
        case SqlParser.ARCHIVE:
        case SqlParser.BLACKHOLE:
        case SqlParser.CSV:
        case SqlParser.FEDERATED:
        case SqlParser.INNODB:
        case SqlParser.MEMORY:
        case SqlParser.MRG_MYISAM:
        case SqlParser.MYISAM:
        case SqlParser.NDB:
        case SqlParser.NDBCLUSTER:
        case SqlParser.PERFORMANCE_SCHEMA:
        case SqlParser.TOKUDB:
        case SqlParser.REPEATABLE:
        case SqlParser.COMMITTED:
        case SqlParser.UNCOMMITTED:
        case SqlParser.SERIALIZABLE:
        case SqlParser.GEOMETRYCOLLECTION:
        case SqlParser.LINESTRING:
        case SqlParser.MULTILINESTRING:
        case SqlParser.MULTIPOINT:
        case SqlParser.MULTIPOLYGON:
        case SqlParser.POINT:
        case SqlParser.POLYGON:
        case SqlParser.ABS:
        case SqlParser.ACOS:
        case SqlParser.ADDDATE:
        case SqlParser.ADDTIME:
        case SqlParser.AES_DECRYPT:
        case SqlParser.AES_ENCRYPT:
        case SqlParser.AREA:
        case SqlParser.ASBINARY:
        case SqlParser.ASIN:
        case SqlParser.ASTEXT:
        case SqlParser.ASWKB:
        case SqlParser.ASWKT:
        case SqlParser.ASYMMETRIC_DECRYPT:
        case SqlParser.ASYMMETRIC_DERIVE:
        case SqlParser.ASYMMETRIC_ENCRYPT:
        case SqlParser.ASYMMETRIC_SIGN:
        case SqlParser.ASYMMETRIC_VERIFY:
        case SqlParser.ATAN:
        case SqlParser.ATAN2:
        case SqlParser.BENCHMARK:
        case SqlParser.BIN:
        case SqlParser.BIT_COUNT:
        case SqlParser.BIT_LENGTH:
        case SqlParser.BUFFER:
        case SqlParser.CATALOG_NAME:
        case SqlParser.CEIL:
        case SqlParser.CEILING:
        case SqlParser.CENTROID:
        case SqlParser.CHARACTER_LENGTH:
        case SqlParser.CHARSET:
        case SqlParser.CHAR_LENGTH:
        case SqlParser.COERCIBILITY:
        case SqlParser.COLLATION:
        case SqlParser.COMPRESS:
        case SqlParser.CONCAT:
        case SqlParser.CONCAT_WS:
        case SqlParser.CONNECTION_ID:
        case SqlParser.CONV:
        case SqlParser.CONVERT_TZ:
        case SqlParser.COS:
        case SqlParser.COT:
        case SqlParser.CRC32:
        case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
        case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
        case SqlParser.CREATE_DH_PARAMETERS:
        case SqlParser.CREATE_DIGEST:
        case SqlParser.CROSSES:
        case SqlParser.DATEDIFF:
        case SqlParser.DATE_FORMAT:
        case SqlParser.DAYNAME:
        case SqlParser.DAYOFMONTH:
        case SqlParser.DAYOFWEEK:
        case SqlParser.DAYOFYEAR:
        case SqlParser.DECODE:
        case SqlParser.DEGREES:
        case SqlParser.DES_DECRYPT:
        case SqlParser.DES_ENCRYPT:
        case SqlParser.DIMENSION:
        case SqlParser.DISJOINT:
        case SqlParser.ELT:
        case SqlParser.ENCODE:
        case SqlParser.ENCRYPT:
        case SqlParser.ENDPOINT:
        case SqlParser.ENVELOPE:
        case SqlParser.EQUALS:
        case SqlParser.EXP:
        case SqlParser.EXPORT_SET:
        case SqlParser.EXTERIORRING:
        case SqlParser.EXTRACTVALUE:
        case SqlParser.FIELD:
        case SqlParser.FIND_IN_SET:
        case SqlParser.FLOOR:
        case SqlParser.FORMAT:
        case SqlParser.FOUND_ROWS:
        case SqlParser.FROM_BASE64:
        case SqlParser.FROM_DAYS:
        case SqlParser.FROM_UNIXTIME:
        case SqlParser.GEOMCOLLFROMTEXT:
        case SqlParser.GEOMCOLLFROMWKB:
        case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.GEOMETRYFROMTEXT:
        case SqlParser.GEOMETRYFROMWKB:
        case SqlParser.GEOMETRYN:
        case SqlParser.GEOMETRYTYPE:
        case SqlParser.GEOMFROMTEXT:
        case SqlParser.GEOMFROMWKB:
        case SqlParser.GET_FORMAT:
        case SqlParser.GET_LOCK:
        case SqlParser.GLENGTH:
        case SqlParser.GREATEST:
        case SqlParser.GTID_SUBSET:
        case SqlParser.GTID_SUBTRACT:
        case SqlParser.HEX:
        case SqlParser.IFNULL:
        case SqlParser.INET6_ATON:
        case SqlParser.INET6_NTOA:
        case SqlParser.INET_ATON:
        case SqlParser.INET_NTOA:
        case SqlParser.INSTR:
        case SqlParser.INTERIORRINGN:
        case SqlParser.INTERSECTS:
        case SqlParser.ISCLOSED:
        case SqlParser.ISEMPTY:
        case SqlParser.ISNULL:
        case SqlParser.ISSIMPLE:
        case SqlParser.IS_FREE_LOCK:
        case SqlParser.IS_IPV4:
        case SqlParser.IS_IPV4_COMPAT:
        case SqlParser.IS_IPV4_MAPPED:
        case SqlParser.IS_IPV6:
        case SqlParser.IS_USED_LOCK:
        case SqlParser.LAST_INSERT_ID:
        case SqlParser.LCASE:
        case SqlParser.LEAST:
        case SqlParser.LENGTH:
        case SqlParser.LINEFROMTEXT:
        case SqlParser.LINEFROMWKB:
        case SqlParser.LINESTRINGFROMTEXT:
        case SqlParser.LINESTRINGFROMWKB:
        case SqlParser.LN:
        case SqlParser.LOAD_FILE:
        case SqlParser.LOCATE:
        case SqlParser.LOG:
        case SqlParser.LOG10:
        case SqlParser.LOG2:
        case SqlParser.LOWER:
        case SqlParser.LPAD:
        case SqlParser.LTRIM:
        case SqlParser.MAKEDATE:
        case SqlParser.MAKETIME:
        case SqlParser.MAKE_SET:
        case SqlParser.MASTER_POS_WAIT:
        case SqlParser.MBRCONTAINS:
        case SqlParser.MBRDISJOINT:
        case SqlParser.MBREQUAL:
        case SqlParser.MBRINTERSECTS:
        case SqlParser.MBROVERLAPS:
        case SqlParser.MBRTOUCHES:
        case SqlParser.MBRWITHIN:
        case SqlParser.MD5:
        case SqlParser.MLINEFROMTEXT:
        case SqlParser.MLINEFROMWKB:
        case SqlParser.MONTHNAME:
        case SqlParser.MPOINTFROMTEXT:
        case SqlParser.MPOINTFROMWKB:
        case SqlParser.MPOLYFROMTEXT:
        case SqlParser.MPOLYFROMWKB:
        case SqlParser.MULTILINESTRINGFROMTEXT:
        case SqlParser.MULTILINESTRINGFROMWKB:
        case SqlParser.MULTIPOINTFROMTEXT:
        case SqlParser.MULTIPOINTFROMWKB:
        case SqlParser.MULTIPOLYGONFROMTEXT:
        case SqlParser.MULTIPOLYGONFROMWKB:
        case SqlParser.NAME_CONST:
        case SqlParser.NULLIF:
        case SqlParser.NUMGEOMETRIES:
        case SqlParser.NUMINTERIORRINGS:
        case SqlParser.NUMPOINTS:
        case SqlParser.OCT:
        case SqlParser.OCTET_LENGTH:
        case SqlParser.ORD:
        case SqlParser.OVERLAPS:
        case SqlParser.PERIOD_ADD:
        case SqlParser.PERIOD_DIFF:
        case SqlParser.PI:
        case SqlParser.POINTFROMTEXT:
        case SqlParser.POINTFROMWKB:
        case SqlParser.POINTN:
        case SqlParser.POLYFROMTEXT:
        case SqlParser.POLYFROMWKB:
        case SqlParser.POLYGONFROMTEXT:
        case SqlParser.POLYGONFROMWKB:
        case SqlParser.POW:
        case SqlParser.POWER:
        case SqlParser.QUOTE:
        case SqlParser.RADIANS:
        case SqlParser.RAND:
        case SqlParser.RANDOM_BYTES:
        case SqlParser.RELEASE_LOCK:
        case SqlParser.REVERSE:
        case SqlParser.ROUND:
        case SqlParser.ROW_COUNT:
        case SqlParser.RPAD:
        case SqlParser.RTRIM:
        case SqlParser.SEC_TO_TIME:
        case SqlParser.SESSION_USER:
        case SqlParser.SHA:
        case SqlParser.SHA1:
        case SqlParser.SHA2:
        case SqlParser.SCHEMA_NAME:
        case SqlParser.SIGN:
        case SqlParser.SIN:
        case SqlParser.SLEEP:
        case SqlParser.SOUNDEX:
        case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
        case SqlParser.SQRT:
        case SqlParser.SRID:
        case SqlParser.STARTPOINT:
        case SqlParser.STRCMP:
        case SqlParser.STR_TO_DATE:
        case SqlParser.ST_AREA:
        case SqlParser.ST_ASBINARY:
        case SqlParser.ST_ASTEXT:
        case SqlParser.ST_ASWKB:
        case SqlParser.ST_ASWKT:
        case SqlParser.ST_BUFFER:
        case SqlParser.ST_CENTROID:
        case SqlParser.ST_CONTAINS:
        case SqlParser.ST_CROSSES:
        case SqlParser.ST_DIFFERENCE:
        case SqlParser.ST_DIMENSION:
        case SqlParser.ST_DISJOINT:
        case SqlParser.ST_DISTANCE:
        case SqlParser.ST_ENDPOINT:
        case SqlParser.ST_ENVELOPE:
        case SqlParser.ST_EQUALS:
        case SqlParser.ST_EXTERIORRING:
        case SqlParser.ST_GEOMCOLLFROMTEXT:
        case SqlParser.ST_GEOMCOLLFROMTXT:
        case SqlParser.ST_GEOMCOLLFROMWKB:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.ST_GEOMETRYFROMTEXT:
        case SqlParser.ST_GEOMETRYFROMWKB:
        case SqlParser.ST_GEOMETRYN:
        case SqlParser.ST_GEOMETRYTYPE:
        case SqlParser.ST_GEOMFROMTEXT:
        case SqlParser.ST_GEOMFROMWKB:
        case SqlParser.ST_INTERIORRINGN:
        case SqlParser.ST_INTERSECTION:
        case SqlParser.ST_INTERSECTS:
        case SqlParser.ST_ISCLOSED:
        case SqlParser.ST_ISEMPTY:
        case SqlParser.ST_ISSIMPLE:
        case SqlParser.ST_LINEFROMTEXT:
        case SqlParser.ST_LINEFROMWKB:
        case SqlParser.ST_LINESTRINGFROMTEXT:
        case SqlParser.ST_LINESTRINGFROMWKB:
        case SqlParser.ST_NUMGEOMETRIES:
        case SqlParser.ST_NUMINTERIORRING:
        case SqlParser.ST_NUMINTERIORRINGS:
        case SqlParser.ST_NUMPOINTS:
        case SqlParser.ST_OVERLAPS:
        case SqlParser.ST_POINTFROMTEXT:
        case SqlParser.ST_POINTFROMWKB:
        case SqlParser.ST_POINTN:
        case SqlParser.ST_POLYFROMTEXT:
        case SqlParser.ST_POLYFROMWKB:
        case SqlParser.ST_POLYGONFROMTEXT:
        case SqlParser.ST_POLYGONFROMWKB:
        case SqlParser.ST_SRID:
        case SqlParser.ST_STARTPOINT:
        case SqlParser.ST_SYMDIFFERENCE:
        case SqlParser.ST_TOUCHES:
        case SqlParser.ST_UNION:
        case SqlParser.ST_WITHIN:
        case SqlParser.ST_X:
        case SqlParser.ST_Y:
        case SqlParser.SUBDATE:
        case SqlParser.SUBSTRING_INDEX:
        case SqlParser.SUBTIME:
        case SqlParser.SYSTEM_USER:
        case SqlParser.TAN:
        case SqlParser.TIMEDIFF:
        case SqlParser.TIMESTAMPADD:
        case SqlParser.TIMESTAMPDIFF:
        case SqlParser.TIME_FORMAT:
        case SqlParser.TIME_TO_SEC:
        case SqlParser.TOUCHES:
        case SqlParser.TO_BASE64:
        case SqlParser.TO_DAYS:
        case SqlParser.TO_SECONDS:
        case SqlParser.UCASE:
        case SqlParser.UNCOMPRESS:
        case SqlParser.UNCOMPRESSED_LENGTH:
        case SqlParser.UNHEX:
        case SqlParser.UNIX_TIMESTAMP:
        case SqlParser.UPDATEXML:
        case SqlParser.UPPER:
        case SqlParser.UUID:
        case SqlParser.UUID_SHORT:
        case SqlParser.VALIDATE_PASSWORD_STRENGTH:
        case SqlParser.VERSION:
        case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
        case SqlParser.WEEKDAY:
        case SqlParser.WEEKOFYEAR:
        case SqlParser.WEIGHT_STRING:
        case SqlParser.WITHIN:
        case SqlParser.YEARWEEK:
        case SqlParser.Y_FUNCTION:
        case SqlParser.X_FUNCTION:
        case SqlParser.PLUS:
        case SqlParser.MINUS:
        case SqlParser.EXCLAMATION_SYMBOL:
        case SqlParser.BIT_NOT_OP:
        case SqlParser.LR_BRACKET:
        case SqlParser.ZERO_DECIMAL:
        case SqlParser.ONE_DECIMAL:
        case SqlParser.TWO_DECIMAL:
        case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
        case SqlParser.START_NATIONAL_STRING_LITERAL:
        case SqlParser.STRING_LITERAL:
        case SqlParser.DECIMAL_LITERAL:
        case SqlParser.HEXADECIMAL_LITERAL:
        case SqlParser.REAL_LITERAL:
        case SqlParser.NULL_SPEC_LITERAL:
        case SqlParser.BIT_STRING:
        case SqlParser.STRING_CHARSET_NAME:
        case SqlParser.ID:
        case SqlParser.REVERSE_QUOTE_ID:
        case SqlParser.LOCAL_ID:
        case SqlParser.GLOBAL_ID:
            this.enterOuterAlt(localctx, 1);
            this.state = 5851;
            this.expression(0);
            break;
        case SqlParser.DEFAULT:
            this.enterOuterAlt(localctx, 2);
            this.state = 5852;
            this.match(SqlParser.DEFAULT);
            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 IfExistsContext(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_ifExists;
    return this;
}

IfExistsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IfExistsContext.prototype.constructor = IfExistsContext;

IfExistsContext.prototype.IF = function() {
    return this.getToken(SqlParser.IF, 0);
};

IfExistsContext.prototype.EXISTS = function() {
    return this.getToken(SqlParser.EXISTS, 0);
};

IfExistsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIfExists(this);
	}
};

IfExistsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIfExists(this);
	}
};

IfExistsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIfExists(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.IfExistsContext = IfExistsContext;

SqlParser.prototype.ifExists = function() {

    var localctx = new IfExistsContext(this, this._ctx, this.state);
    this.enterRule(localctx, 578, SqlParser.RULE_ifExists);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5855;
        this.match(SqlParser.IF);
        this.state = 5856;
        this.match(SqlParser.EXISTS);
    } 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 IfNotExistsContext(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_ifNotExists;
    return this;
}

IfNotExistsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IfNotExistsContext.prototype.constructor = IfNotExistsContext;

IfNotExistsContext.prototype.IF = function() {
    return this.getToken(SqlParser.IF, 0);
};

IfNotExistsContext.prototype.NOT = function() {
    return this.getToken(SqlParser.NOT, 0);
};

IfNotExistsContext.prototype.EXISTS = function() {
    return this.getToken(SqlParser.EXISTS, 0);
};

IfNotExistsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIfNotExists(this);
	}
};

IfNotExistsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIfNotExists(this);
	}
};

IfNotExistsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIfNotExists(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.IfNotExistsContext = IfNotExistsContext;

SqlParser.prototype.ifNotExists = function() {

    var localctx = new IfNotExistsContext(this, this._ctx, this.state);
    this.enterRule(localctx, 580, SqlParser.RULE_ifNotExists);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 5858;
        this.match(SqlParser.IF);
        this.state = 5859;
        this.match(SqlParser.NOT);
        this.state = 5860;
        this.match(SqlParser.EXISTS);
    } 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 FunctionCallContext(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_functionCall;
    return this;
}

FunctionCallContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FunctionCallContext.prototype.constructor = FunctionCallContext;


 
FunctionCallContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function SpecificFunctionCallContext(parser, ctx) {
	FunctionCallContext.call(this, parser);
    FunctionCallContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SpecificFunctionCallContext.prototype = Object.create(FunctionCallContext.prototype);
SpecificFunctionCallContext.prototype.constructor = SpecificFunctionCallContext;

SqlParser.SpecificFunctionCallContext = SpecificFunctionCallContext;

SpecificFunctionCallContext.prototype.specificFunction = function() {
    return this.getTypedRuleContext(SpecificFunctionContext,0);
};
SpecificFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSpecificFunctionCall(this);
	}
};

SpecificFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSpecificFunctionCall(this);
	}
};

SpecificFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSpecificFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PasswordFunctionCallContext(parser, ctx) {
	FunctionCallContext.call(this, parser);
    FunctionCallContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PasswordFunctionCallContext.prototype = Object.create(FunctionCallContext.prototype);
PasswordFunctionCallContext.prototype.constructor = PasswordFunctionCallContext;

SqlParser.PasswordFunctionCallContext = PasswordFunctionCallContext;

PasswordFunctionCallContext.prototype.passwordFunctionClause = function() {
    return this.getTypedRuleContext(PasswordFunctionClauseContext,0);
};
PasswordFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPasswordFunctionCall(this);
	}
};

PasswordFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPasswordFunctionCall(this);
	}
};

PasswordFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPasswordFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function UdfFunctionCallContext(parser, ctx) {
	FunctionCallContext.call(this, parser);
    FunctionCallContext.prototype.copyFrom.call(this, ctx);
    return this;
}

UdfFunctionCallContext.prototype = Object.create(FunctionCallContext.prototype);
UdfFunctionCallContext.prototype.constructor = UdfFunctionCallContext;

SqlParser.UdfFunctionCallContext = UdfFunctionCallContext;

UdfFunctionCallContext.prototype.fullId = function() {
    return this.getTypedRuleContext(FullIdContext,0);
};

UdfFunctionCallContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

UdfFunctionCallContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

UdfFunctionCallContext.prototype.functionArgs = function() {
    return this.getTypedRuleContext(FunctionArgsContext,0);
};
UdfFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUdfFunctionCall(this);
	}
};

UdfFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUdfFunctionCall(this);
	}
};

UdfFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUdfFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function AggregateFunctionCallContext(parser, ctx) {
	FunctionCallContext.call(this, parser);
    FunctionCallContext.prototype.copyFrom.call(this, ctx);
    return this;
}

AggregateFunctionCallContext.prototype = Object.create(FunctionCallContext.prototype);
AggregateFunctionCallContext.prototype.constructor = AggregateFunctionCallContext;

SqlParser.AggregateFunctionCallContext = AggregateFunctionCallContext;

AggregateFunctionCallContext.prototype.aggregateWindowedFunction = function() {
    return this.getTypedRuleContext(AggregateWindowedFunctionContext,0);
};
AggregateFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAggregateFunctionCall(this);
	}
};

AggregateFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAggregateFunctionCall(this);
	}
};

AggregateFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAggregateFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ScalarFunctionCallContext(parser, ctx) {
	FunctionCallContext.call(this, parser);
    FunctionCallContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ScalarFunctionCallContext.prototype = Object.create(FunctionCallContext.prototype);
ScalarFunctionCallContext.prototype.constructor = ScalarFunctionCallContext;

SqlParser.ScalarFunctionCallContext = ScalarFunctionCallContext;

ScalarFunctionCallContext.prototype.scalarFunctionName = function() {
    return this.getTypedRuleContext(ScalarFunctionNameContext,0);
};

ScalarFunctionCallContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

ScalarFunctionCallContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

ScalarFunctionCallContext.prototype.functionArgs = function() {
    return this.getTypedRuleContext(FunctionArgsContext,0);
};
ScalarFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterScalarFunctionCall(this);
	}
};

ScalarFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitScalarFunctionCall(this);
	}
};

ScalarFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitScalarFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.FunctionCallContext = FunctionCallContext;

SqlParser.prototype.functionCall = function() {

    var localctx = new FunctionCallContext(this, this._ctx, this.state);
    this.enterRule(localctx, 582, SqlParser.RULE_functionCall);
    var _la = 0; // Token type
    try {
        this.state = 5879;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,870,this._ctx);
        switch(la_) {
        case 1:
            localctx = new SpecificFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 5862;
            this.specificFunction();
            break;

        case 2:
            localctx = new AggregateFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 5863;
            this.aggregateWindowedFunction();
            break;

        case 3:
            localctx = new ScalarFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 5864;
            this.scalarFunctionName();
            this.state = 5865;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5867;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SqlParser.CASE) | (1 << SqlParser.CAST) | (1 << SqlParser.CONVERT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.CURRENT_USER - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)) | (1 << (SqlParser.EXISTS - 32)) | (1 << (SqlParser.FALSE - 32)))) !== 0) || ((((_la - 69)) & ~0x1f) == 0 && ((1 << (_la - 69)) & ((1 << (SqlParser.IF - 69)) | (1 << (SqlParser.INSERT - 69)) | (1 << (SqlParser.INTERVAL - 69)) | (1 << (SqlParser.LEFT - 69)))) !== 0) || ((((_la - 102)) & ~0x1f) == 0 && ((1 << (_la - 102)) & ((1 << (SqlParser.NOT - 102)) | (1 << (SqlParser.NULL_LITERAL - 102)) | (1 << (SqlParser.NUMBER - 102)) | (1 << (SqlParser.REPLACE - 102)) | (1 << (SqlParser.RIGHT - 102)))) !== 0) || ((((_la - 151)) & ~0x1f) == 0 && ((1 << (_la - 151)) & ((1 << (SqlParser.STACKED - 151)) | (1 << (SqlParser.TRUE - 151)) | (1 << (SqlParser.VALUES - 151)))) !== 0) || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.CHAR - 199)) | (1 << (SqlParser.BINARY - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.AVG - 233)) | (1 << (SqlParser.BIT_AND - 233)) | (1 << (SqlParser.BIT_OR - 233)) | (1 << (SqlParser.BIT_XOR - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.GROUP_CONCAT - 233)) | (1 << (SqlParser.MAX - 233)) | (1 << (SqlParser.MIN - 233)) | (1 << (SqlParser.STD - 233)) | (1 << (SqlParser.STDDEV - 233)) | (1 << (SqlParser.STDDEV_POP - 233)) | (1 << (SqlParser.STDDEV_SAMP - 233)) | (1 << (SqlParser.SUM - 233)) | (1 << (SqlParser.VAR_POP - 233)) | (1 << (SqlParser.VAR_SAMP - 233)) | (1 << (SqlParser.VARIANCE - 233)) | (1 << (SqlParser.CURRENT_DATE - 233)) | (1 << (SqlParser.CURRENT_TIME - 233)) | (1 << (SqlParser.CURRENT_TIMESTAMP - 233)) | (1 << (SqlParser.LOCALTIME - 233)) | (1 << (SqlParser.CURDATE - 233)) | (1 << (SqlParser.CURTIME - 233)) | (1 << (SqlParser.DATE_ADD - 233)) | (1 << (SqlParser.DATE_SUB - 233)) | (1 << (SqlParser.EXTRACT - 233)) | (1 << (SqlParser.LOCALTIMESTAMP - 233)) | (1 << (SqlParser.NOW - 233)) | (1 << (SqlParser.POSITION - 233)) | (1 << (SqlParser.SUBSTR - 233)) | (1 << (SqlParser.SUBSTRING - 233)))) !== 0) || ((((_la - 265)) & ~0x1f) == 0 && ((1 << (_la - 265)) & ((1 << (SqlParser.SYSDATE - 265)) | (1 << (SqlParser.TRIM - 265)) | (1 << (SqlParser.UTC_DATE - 265)) | (1 << (SqlParser.UTC_TIME - 265)) | (1 << (SqlParser.UTC_TIMESTAMP - 265)) | (1 << (SqlParser.ACCOUNT - 265)) | (1 << (SqlParser.ACTION - 265)) | (1 << (SqlParser.AFTER - 265)) | (1 << (SqlParser.AGGREGATE - 265)) | (1 << (SqlParser.ALGORITHM - 265)) | (1 << (SqlParser.ANY - 265)) | (1 << (SqlParser.AT - 265)) | (1 << (SqlParser.AUTHORS - 265)) | (1 << (SqlParser.AUTOCOMMIT - 265)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 265)) | (1 << (SqlParser.AUTO_INCREMENT - 265)) | (1 << (SqlParser.AVG_ROW_LENGTH - 265)) | (1 << (SqlParser.BEGIN - 265)) | (1 << (SqlParser.BINLOG - 265)) | (1 << (SqlParser.BIT - 265)) | (1 << (SqlParser.BLOCK - 265)) | (1 << (SqlParser.BOOL - 265)) | (1 << (SqlParser.BOOLEAN - 265)) | (1 << (SqlParser.BTREE - 265)) | (1 << (SqlParser.CACHE - 265)) | (1 << (SqlParser.CASCADED - 265)) | (1 << (SqlParser.CHAIN - 265)) | (1 << (SqlParser.CHANGED - 265)) | (1 << (SqlParser.CHANNEL - 265)) | (1 << (SqlParser.CHECKSUM - 265)) | (1 << (SqlParser.PAGE_CHECKSUM - 265)) | (1 << (SqlParser.CIPHER - 265)))) !== 0) || ((((_la - 297)) & ~0x1f) == 0 && ((1 << (_la - 297)) & ((1 << (SqlParser.CLASS_ORIGIN - 297)) | (1 << (SqlParser.CLIENT - 297)) | (1 << (SqlParser.CLOSE - 297)) | (1 << (SqlParser.COALESCE - 297)) | (1 << (SqlParser.CODE - 297)) | (1 << (SqlParser.COLUMNS - 297)) | (1 << (SqlParser.COLUMN_FORMAT - 297)) | (1 << (SqlParser.COLUMN_NAME - 297)) | (1 << (SqlParser.COMMENT - 297)) | (1 << (SqlParser.COMMIT - 297)) | (1 << (SqlParser.COMPACT - 297)) | (1 << (SqlParser.COMPLETION - 297)) | (1 << (SqlParser.COMPRESSED - 297)) | (1 << (SqlParser.COMPRESSION - 297)) | (1 << (SqlParser.CONCURRENT - 297)) | (1 << (SqlParser.CONNECTION - 297)) | (1 << (SqlParser.CONSISTENT - 297)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 297)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 297)) | (1 << (SqlParser.CONSTRAINT_NAME - 297)) | (1 << (SqlParser.CONTAINS - 297)) | (1 << (SqlParser.CONTEXT - 297)) | (1 << (SqlParser.CONTRIBUTORS - 297)) | (1 << (SqlParser.COPY - 297)) | (1 << (SqlParser.CPU - 297)) | (1 << (SqlParser.CURSOR_NAME - 297)) | (1 << (SqlParser.DATA - 297)) | (1 << (SqlParser.DATAFILE - 297)) | (1 << (SqlParser.DEALLOCATE - 297)) | (1 << (SqlParser.DEFAULT_AUTH - 297)) | (1 << (SqlParser.DEFINER - 297)) | (1 << (SqlParser.DELAY_KEY_WRITE - 297)))) !== 0) || ((((_la - 329)) & ~0x1f) == 0 && ((1 << (_la - 329)) & ((1 << (SqlParser.DES_KEY_FILE - 329)) | (1 << (SqlParser.DIRECTORY - 329)) | (1 << (SqlParser.DISABLE - 329)) | (1 << (SqlParser.DISCARD - 329)) | (1 << (SqlParser.DISK - 329)) | (1 << (SqlParser.DO - 329)) | (1 << (SqlParser.DUMPFILE - 329)) | (1 << (SqlParser.DUPLICATE - 329)) | (1 << (SqlParser.DYNAMIC - 329)) | (1 << (SqlParser.ENABLE - 329)) | (1 << (SqlParser.ENCRYPTION - 329)) | (1 << (SqlParser.END - 329)) | (1 << (SqlParser.ENDS - 329)) | (1 << (SqlParser.ENGINE - 329)) | (1 << (SqlParser.ENGINES - 329)) | (1 << (SqlParser.ERROR - 329)) | (1 << (SqlParser.ERRORS - 329)) | (1 << (SqlParser.ESCAPE - 329)) | (1 << (SqlParser.EVEN - 329)) | (1 << (SqlParser.EVENT - 329)) | (1 << (SqlParser.EVENTS - 329)) | (1 << (SqlParser.EVERY - 329)) | (1 << (SqlParser.EXCHANGE - 329)) | (1 << (SqlParser.EXCLUSIVE - 329)) | (1 << (SqlParser.EXPIRE - 329)) | (1 << (SqlParser.EXPORT - 329)) | (1 << (SqlParser.EXTENDED - 329)) | (1 << (SqlParser.EXTENT_SIZE - 329)) | (1 << (SqlParser.FAST - 329)) | (1 << (SqlParser.FAULTS - 329)) | (1 << (SqlParser.FIELDS - 329)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 329)))) !== 0) || ((((_la - 361)) & ~0x1f) == 0 && ((1 << (_la - 361)) & ((1 << (SqlParser.FILTER - 361)) | (1 << (SqlParser.FIRST - 361)) | (1 << (SqlParser.FIXED - 361)) | (1 << (SqlParser.FLUSH - 361)) | (1 << (SqlParser.FOLLOWS - 361)) | (1 << (SqlParser.FOUND - 361)) | (1 << (SqlParser.FULL - 361)) | (1 << (SqlParser.FUNCTION - 361)) | (1 << (SqlParser.GENERAL - 361)) | (1 << (SqlParser.GLOBAL - 361)) | (1 << (SqlParser.GRANTS - 361)) | (1 << (SqlParser.GROUP_REPLICATION - 361)) | (1 << (SqlParser.HANDLER - 361)) | (1 << (SqlParser.HASH - 361)) | (1 << (SqlParser.HELP - 361)) | (1 << (SqlParser.HOST - 361)) | (1 << (SqlParser.HOSTS - 361)) | (1 << (SqlParser.IDENTIFIED - 361)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 361)) | (1 << (SqlParser.IMPORT - 361)) | (1 << (SqlParser.INDEXES - 361)) | (1 << (SqlParser.INITIAL_SIZE - 361)) | (1 << (SqlParser.INPLACE - 361)) | (1 << (SqlParser.INSERT_METHOD - 361)) | (1 << (SqlParser.INSTALL - 361)) | (1 << (SqlParser.INSTANCE - 361)) | (1 << (SqlParser.INVISIBLE - 361)) | (1 << (SqlParser.INVOKER - 361)) | (1 << (SqlParser.IO - 361)) | (1 << (SqlParser.IO_THREAD - 361)) | (1 << (SqlParser.IPC - 361)) | (1 << (SqlParser.ISOLATION - 361)))) !== 0) || ((((_la - 393)) & ~0x1f) == 0 && ((1 << (_la - 393)) & ((1 << (SqlParser.ISSUER - 393)) | (1 << (SqlParser.JSON - 393)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 393)) | (1 << (SqlParser.LANGUAGE - 393)) | (1 << (SqlParser.LAST - 393)) | (1 << (SqlParser.LEAVES - 393)) | (1 << (SqlParser.LESS - 393)) | (1 << (SqlParser.LEVEL - 393)) | (1 << (SqlParser.LIST - 393)) | (1 << (SqlParser.LOCAL - 393)) | (1 << (SqlParser.LOGFILE - 393)) | (1 << (SqlParser.LOGS - 393)) | (1 << (SqlParser.MASTER - 393)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 393)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 393)) | (1 << (SqlParser.MASTER_DELAY - 393)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 393)) | (1 << (SqlParser.MASTER_HOST - 393)) | (1 << (SqlParser.MASTER_LOG_FILE - 393)) | (1 << (SqlParser.MASTER_LOG_POS - 393)) | (1 << (SqlParser.MASTER_PASSWORD - 393)) | (1 << (SqlParser.MASTER_PORT - 393)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 393)) | (1 << (SqlParser.MASTER_SSL - 393)) | (1 << (SqlParser.MASTER_SSL_CA - 393)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 393)) | (1 << (SqlParser.MASTER_SSL_CERT - 393)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 393)) | (1 << (SqlParser.MASTER_SSL_CRL - 393)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 393)) | (1 << (SqlParser.MASTER_SSL_KEY - 393)) | (1 << (SqlParser.MASTER_TLS_VERSION - 393)))) !== 0) || ((((_la - 425)) & ~0x1f) == 0 && ((1 << (_la - 425)) & ((1 << (SqlParser.MASTER_USER - 425)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 425)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_ROWS - 425)) | (1 << (SqlParser.MAX_SIZE - 425)) | (1 << (SqlParser.MAX_UPDATES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 425)) | (1 << (SqlParser.MEDIUM - 425)) | (1 << (SqlParser.MERGE - 425)) | (1 << (SqlParser.MESSAGE_TEXT - 425)) | (1 << (SqlParser.MID - 425)) | (1 << (SqlParser.MIGRATE - 425)) | (1 << (SqlParser.MIN_ROWS - 425)) | (1 << (SqlParser.MODE - 425)) | (1 << (SqlParser.MODIFY - 425)) | (1 << (SqlParser.MUTEX - 425)) | (1 << (SqlParser.MYSQL - 425)) | (1 << (SqlParser.MYSQL_ERRNO - 425)) | (1 << (SqlParser.NAME - 425)) | (1 << (SqlParser.NAMES - 425)) | (1 << (SqlParser.NCHAR - 425)) | (1 << (SqlParser.NEVER - 425)) | (1 << (SqlParser.NEXT - 425)) | (1 << (SqlParser.NO - 425)) | (1 << (SqlParser.NODEGROUP - 425)) | (1 << (SqlParser.NONE - 425)) | (1 << (SqlParser.OFFLINE - 425)) | (1 << (SqlParser.OFFSET - 425)) | (1 << (SqlParser.OJ - 425)) | (1 << (SqlParser.OLD_PASSWORD - 425)) | (1 << (SqlParser.ONE - 425)) | (1 << (SqlParser.ONLINE - 425)))) !== 0) || ((((_la - 457)) & ~0x1f) == 0 && ((1 << (_la - 457)) & ((1 << (SqlParser.ONLY - 457)) | (1 << (SqlParser.OPEN - 457)) | (1 << (SqlParser.OPTIMIZER_COSTS - 457)) | (1 << (SqlParser.OPTIONS - 457)) | (1 << (SqlParser.OWNER - 457)) | (1 << (SqlParser.PACK_KEYS - 457)) | (1 << (SqlParser.PAGE - 457)) | (1 << (SqlParser.PARSER - 457)) | (1 << (SqlParser.PARTIAL - 457)) | (1 << (SqlParser.PARTITIONING - 457)) | (1 << (SqlParser.PARTITIONS - 457)) | (1 << (SqlParser.PASSWORD - 457)) | (1 << (SqlParser.PHASE - 457)) | (1 << (SqlParser.PLUGIN - 457)) | (1 << (SqlParser.PLUGIN_DIR - 457)) | (1 << (SqlParser.PLUGINS - 457)) | (1 << (SqlParser.PORT - 457)) | (1 << (SqlParser.PRECEDES - 457)) | (1 << (SqlParser.PREPARE - 457)) | (1 << (SqlParser.PRESERVE - 457)) | (1 << (SqlParser.PREV - 457)) | (1 << (SqlParser.PROCESSLIST - 457)) | (1 << (SqlParser.PROFILE - 457)) | (1 << (SqlParser.PROFILES - 457)) | (1 << (SqlParser.PROXY - 457)) | (1 << (SqlParser.QUERY - 457)) | (1 << (SqlParser.QUICK - 457)) | (1 << (SqlParser.REBUILD - 457)) | (1 << (SqlParser.RECOVER - 457)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 457)) | (1 << (SqlParser.REDUNDANT - 457)) | (1 << (SqlParser.RELAY - 457)))) !== 0) || ((((_la - 489)) & ~0x1f) == 0 && ((1 << (_la - 489)) & ((1 << (SqlParser.RELAY_LOG_FILE - 489)) | (1 << (SqlParser.RELAY_LOG_POS - 489)) | (1 << (SqlParser.RELAYLOG - 489)) | (1 << (SqlParser.REMOVE - 489)) | (1 << (SqlParser.REORGANIZE - 489)) | (1 << (SqlParser.REPAIR - 489)) | (1 << (SqlParser.REPLICATE_DO_DB - 489)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 489)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATION - 489)) | (1 << (SqlParser.RESET - 489)) | (1 << (SqlParser.RESUME - 489)) | (1 << (SqlParser.RETURNED_SQLSTATE - 489)) | (1 << (SqlParser.RETURNS - 489)) | (1 << (SqlParser.ROLE - 489)) | (1 << (SqlParser.ROLLBACK - 489)) | (1 << (SqlParser.ROLLUP - 489)) | (1 << (SqlParser.ROTATE - 489)) | (1 << (SqlParser.ROW - 489)) | (1 << (SqlParser.ROWS - 489)) | (1 << (SqlParser.ROW_FORMAT - 489)) | (1 << (SqlParser.SAVEPOINT - 489)) | (1 << (SqlParser.SCHEDULE - 489)) | (1 << (SqlParser.SECURITY - 489)) | (1 << (SqlParser.SERVER - 489)) | (1 << (SqlParser.SESSION - 489)) | (1 << (SqlParser.SHARE - 489)) | (1 << (SqlParser.SHARED - 489)))) !== 0) || ((((_la - 521)) & ~0x1f) == 0 && ((1 << (_la - 521)) & ((1 << (SqlParser.SIGNED - 521)) | (1 << (SqlParser.SIMPLE - 521)) | (1 << (SqlParser.SLAVE - 521)) | (1 << (SqlParser.SLOW - 521)) | (1 << (SqlParser.SNAPSHOT - 521)) | (1 << (SqlParser.SOCKET - 521)) | (1 << (SqlParser.SOME - 521)) | (1 << (SqlParser.SONAME - 521)) | (1 << (SqlParser.SOUNDS - 521)) | (1 << (SqlParser.SOURCE - 521)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 521)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 521)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 521)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 521)) | (1 << (SqlParser.SQL_CACHE - 521)) | (1 << (SqlParser.SQL_NO_CACHE - 521)) | (1 << (SqlParser.SQL_THREAD - 521)) | (1 << (SqlParser.START - 521)) | (1 << (SqlParser.STARTS - 521)) | (1 << (SqlParser.STATS_AUTO_RECALC - 521)) | (1 << (SqlParser.STATS_PERSISTENT - 521)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 521)) | (1 << (SqlParser.STATUS - 521)) | (1 << (SqlParser.STOP - 521)) | (1 << (SqlParser.STORAGE - 521)) | (1 << (SqlParser.STRING - 521)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 521)) | (1 << (SqlParser.SUBJECT - 521)) | (1 << (SqlParser.SUBPARTITION - 521)) | (1 << (SqlParser.SUBPARTITIONS - 521)) | (1 << (SqlParser.SUSPEND - 521)))) !== 0) || ((((_la - 553)) & ~0x1f) == 0 && ((1 << (_la - 553)) & ((1 << (SqlParser.SWAPS - 553)) | (1 << (SqlParser.SWITCHES - 553)) | (1 << (SqlParser.TABLE_NAME - 553)) | (1 << (SqlParser.TABLESPACE - 553)) | (1 << (SqlParser.TEMPORARY - 553)) | (1 << (SqlParser.TEMPTABLE - 553)) | (1 << (SqlParser.THAN - 553)) | (1 << (SqlParser.TRADITIONAL - 553)) | (1 << (SqlParser.TRANSACTION - 553)) | (1 << (SqlParser.TRANSACTIONAL - 553)) | (1 << (SqlParser.TRIGGERS - 553)) | (1 << (SqlParser.TRUNCATE - 553)) | (1 << (SqlParser.UNDEFINED - 553)) | (1 << (SqlParser.UNDOFILE - 553)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 553)) | (1 << (SqlParser.UNINSTALL - 553)) | (1 << (SqlParser.UNKNOWN - 553)) | (1 << (SqlParser.UNTIL - 553)) | (1 << (SqlParser.UPGRADE - 553)) | (1 << (SqlParser.USER - 553)) | (1 << (SqlParser.USE_FRM - 553)) | (1 << (SqlParser.USER_RESOURCES - 553)) | (1 << (SqlParser.VALIDATION - 553)) | (1 << (SqlParser.VALUE - 553)) | (1 << (SqlParser.VARIABLES - 553)) | (1 << (SqlParser.VIEW - 553)) | (1 << (SqlParser.VISIBLE - 553)) | (1 << (SqlParser.WAIT - 553)) | (1 << (SqlParser.WARNINGS - 553)) | (1 << (SqlParser.WITHOUT - 553)) | (1 << (SqlParser.WORK - 553)))) !== 0) || ((((_la - 585)) & ~0x1f) == 0 && ((1 << (_la - 585)) & ((1 << (SqlParser.WRAPPER - 585)) | (1 << (SqlParser.X509 - 585)) | (1 << (SqlParser.XA - 585)) | (1 << (SqlParser.XML - 585)) | (1 << (SqlParser.INTERNAL - 585)) | (1 << (SqlParser.QUARTER - 585)) | (1 << (SqlParser.MONTH - 585)) | (1 << (SqlParser.DAY - 585)) | (1 << (SqlParser.HOUR - 585)) | (1 << (SqlParser.MINUTE - 585)) | (1 << (SqlParser.WEEK - 585)) | (1 << (SqlParser.SECOND - 585)) | (1 << (SqlParser.MICROSECOND - 585)) | (1 << (SqlParser.TABLES - 585)) | (1 << (SqlParser.ROUTINE - 585)) | (1 << (SqlParser.EXECUTE - 585)) | (1 << (SqlParser.FILE - 585)) | (1 << (SqlParser.PROCESS - 585)) | (1 << (SqlParser.RELOAD - 585)) | (1 << (SqlParser.SHUTDOWN - 585)) | (1 << (SqlParser.SUPER - 585)) | (1 << (SqlParser.PRIVILEGES - 585)) | (1 << (SqlParser.AUDIT_ADMIN - 585)) | (1 << (SqlParser.BACKUP_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 585)) | (1 << (SqlParser.CLONE_ADMIN - 585)))) !== 0) || ((((_la - 617)) & ~0x1f) == 0 && ((1 << (_la - 617)) & ((1 << (SqlParser.CONNECTION_ADMIN - 617)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_USER - 617)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 617)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 617)) | (1 << (SqlParser.NDB_STORED_USER - 617)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.REPLICATION_APPLIER - 617)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 617)) | (1 << (SqlParser.ROLE_ADMIN - 617)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.SET_USER_ID - 617)) | (1 << (SqlParser.SHOW_ROUTINE - 617)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 617)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 617)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 617)) | (1 << (SqlParser.ARMSCII8 - 617)) | (1 << (SqlParser.ASCII - 617)) | (1 << (SqlParser.BIG5 - 617)) | (1 << (SqlParser.CP1250 - 617)) | (1 << (SqlParser.CP1251 - 617)) | (1 << (SqlParser.CP1256 - 617)) | (1 << (SqlParser.CP1257 - 617)) | (1 << (SqlParser.CP850 - 617)) | (1 << (SqlParser.CP852 - 617)) | (1 << (SqlParser.CP866 - 617)) | (1 << (SqlParser.CP932 - 617)) | (1 << (SqlParser.DEC8 - 617)))) !== 0) || ((((_la - 649)) & ~0x1f) == 0 && ((1 << (_la - 649)) & ((1 << (SqlParser.EUCJPMS - 649)) | (1 << (SqlParser.EUCKR - 649)) | (1 << (SqlParser.GB2312 - 649)) | (1 << (SqlParser.GBK - 649)) | (1 << (SqlParser.GEOSTD8 - 649)) | (1 << (SqlParser.GREEK - 649)) | (1 << (SqlParser.HEBREW - 649)) | (1 << (SqlParser.HP8 - 649)) | (1 << (SqlParser.KEYBCS2 - 649)) | (1 << (SqlParser.KOI8R - 649)) | (1 << (SqlParser.KOI8U - 649)) | (1 << (SqlParser.LATIN1 - 649)) | (1 << (SqlParser.LATIN2 - 649)) | (1 << (SqlParser.LATIN5 - 649)) | (1 << (SqlParser.LATIN7 - 649)) | (1 << (SqlParser.MACCE - 649)) | (1 << (SqlParser.MACROMAN - 649)) | (1 << (SqlParser.SJIS - 649)) | (1 << (SqlParser.SWE7 - 649)) | (1 << (SqlParser.TIS620 - 649)) | (1 << (SqlParser.UCS2 - 649)) | (1 << (SqlParser.UJIS - 649)) | (1 << (SqlParser.UTF16 - 649)) | (1 << (SqlParser.UTF16LE - 649)) | (1 << (SqlParser.UTF32 - 649)) | (1 << (SqlParser.UTF8 - 649)) | (1 << (SqlParser.UTF8MB3 - 649)) | (1 << (SqlParser.UTF8MB4 - 649)) | (1 << (SqlParser.ARCHIVE - 649)) | (1 << (SqlParser.BLACKHOLE - 649)) | (1 << (SqlParser.CSV - 649)) | (1 << (SqlParser.FEDERATED - 649)))) !== 0) || ((((_la - 681)) & ~0x1f) == 0 && ((1 << (_la - 681)) & ((1 << (SqlParser.INNODB - 681)) | (1 << (SqlParser.MEMORY - 681)) | (1 << (SqlParser.MRG_MYISAM - 681)) | (1 << (SqlParser.MYISAM - 681)) | (1 << (SqlParser.NDB - 681)) | (1 << (SqlParser.NDBCLUSTER - 681)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 681)) | (1 << (SqlParser.TOKUDB - 681)) | (1 << (SqlParser.REPEATABLE - 681)) | (1 << (SqlParser.COMMITTED - 681)) | (1 << (SqlParser.UNCOMMITTED - 681)) | (1 << (SqlParser.SERIALIZABLE - 681)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 681)) | (1 << (SqlParser.LINESTRING - 681)) | (1 << (SqlParser.MULTILINESTRING - 681)) | (1 << (SqlParser.MULTIPOINT - 681)) | (1 << (SqlParser.MULTIPOLYGON - 681)) | (1 << (SqlParser.POINT - 681)) | (1 << (SqlParser.POLYGON - 681)) | (1 << (SqlParser.ABS - 681)) | (1 << (SqlParser.ACOS - 681)) | (1 << (SqlParser.ADDDATE - 681)) | (1 << (SqlParser.ADDTIME - 681)) | (1 << (SqlParser.AES_DECRYPT - 681)) | (1 << (SqlParser.AES_ENCRYPT - 681)) | (1 << (SqlParser.AREA - 681)) | (1 << (SqlParser.ASBINARY - 681)) | (1 << (SqlParser.ASIN - 681)) | (1 << (SqlParser.ASTEXT - 681)) | (1 << (SqlParser.ASWKB - 681)))) !== 0) || ((((_la - 713)) & ~0x1f) == 0 && ((1 << (_la - 713)) & ((1 << (SqlParser.ASWKT - 713)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 713)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 713)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 713)) | (1 << (SqlParser.ATAN - 713)) | (1 << (SqlParser.ATAN2 - 713)) | (1 << (SqlParser.BENCHMARK - 713)) | (1 << (SqlParser.BIN - 713)) | (1 << (SqlParser.BIT_COUNT - 713)) | (1 << (SqlParser.BIT_LENGTH - 713)) | (1 << (SqlParser.BUFFER - 713)) | (1 << (SqlParser.CATALOG_NAME - 713)) | (1 << (SqlParser.CEIL - 713)) | (1 << (SqlParser.CEILING - 713)) | (1 << (SqlParser.CENTROID - 713)) | (1 << (SqlParser.CHARACTER_LENGTH - 713)) | (1 << (SqlParser.CHARSET - 713)) | (1 << (SqlParser.CHAR_LENGTH - 713)) | (1 << (SqlParser.COERCIBILITY - 713)) | (1 << (SqlParser.COLLATION - 713)) | (1 << (SqlParser.COMPRESS - 713)) | (1 << (SqlParser.CONCAT - 713)) | (1 << (SqlParser.CONCAT_WS - 713)) | (1 << (SqlParser.CONNECTION_ID - 713)) | (1 << (SqlParser.CONV - 713)) | (1 << (SqlParser.CONVERT_TZ - 713)) | (1 << (SqlParser.COS - 713)) | (1 << (SqlParser.COT - 713)) | (1 << (SqlParser.CRC32 - 713)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 713)))) !== 0) || ((((_la - 745)) & ~0x1f) == 0 && ((1 << (_la - 745)) & ((1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 745)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 745)) | (1 << (SqlParser.CREATE_DIGEST - 745)) | (1 << (SqlParser.CROSSES - 745)) | (1 << (SqlParser.DATEDIFF - 745)) | (1 << (SqlParser.DATE_FORMAT - 745)) | (1 << (SqlParser.DAYNAME - 745)) | (1 << (SqlParser.DAYOFMONTH - 745)) | (1 << (SqlParser.DAYOFWEEK - 745)) | (1 << (SqlParser.DAYOFYEAR - 745)) | (1 << (SqlParser.DECODE - 745)) | (1 << (SqlParser.DEGREES - 745)) | (1 << (SqlParser.DES_DECRYPT - 745)) | (1 << (SqlParser.DES_ENCRYPT - 745)) | (1 << (SqlParser.DIMENSION - 745)) | (1 << (SqlParser.DISJOINT - 745)) | (1 << (SqlParser.ELT - 745)) | (1 << (SqlParser.ENCODE - 745)) | (1 << (SqlParser.ENCRYPT - 745)) | (1 << (SqlParser.ENDPOINT - 745)) | (1 << (SqlParser.ENVELOPE - 745)) | (1 << (SqlParser.EQUALS - 745)) | (1 << (SqlParser.EXP - 745)) | (1 << (SqlParser.EXPORT_SET - 745)) | (1 << (SqlParser.EXTERIORRING - 745)) | (1 << (SqlParser.EXTRACTVALUE - 745)) | (1 << (SqlParser.FIELD - 745)) | (1 << (SqlParser.FIND_IN_SET - 745)) | (1 << (SqlParser.FLOOR - 745)) | (1 << (SqlParser.FORMAT - 745)) | (1 << (SqlParser.FOUND_ROWS - 745)) | (1 << (SqlParser.FROM_BASE64 - 745)))) !== 0) || ((((_la - 777)) & ~0x1f) == 0 && ((1 << (_la - 777)) & ((1 << (SqlParser.FROM_DAYS - 777)) | (1 << (SqlParser.FROM_UNIXTIME - 777)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 777)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYN - 777)) | (1 << (SqlParser.GEOMETRYTYPE - 777)) | (1 << (SqlParser.GEOMFROMTEXT - 777)) | (1 << (SqlParser.GEOMFROMWKB - 777)) | (1 << (SqlParser.GET_FORMAT - 777)) | (1 << (SqlParser.GET_LOCK - 777)) | (1 << (SqlParser.GLENGTH - 777)) | (1 << (SqlParser.GREATEST - 777)) | (1 << (SqlParser.GTID_SUBSET - 777)) | (1 << (SqlParser.GTID_SUBTRACT - 777)) | (1 << (SqlParser.HEX - 777)) | (1 << (SqlParser.IFNULL - 777)) | (1 << (SqlParser.INET6_ATON - 777)) | (1 << (SqlParser.INET6_NTOA - 777)) | (1 << (SqlParser.INET_ATON - 777)) | (1 << (SqlParser.INET_NTOA - 777)) | (1 << (SqlParser.INSTR - 777)) | (1 << (SqlParser.INTERIORRINGN - 777)) | (1 << (SqlParser.INTERSECTS - 777)) | (1 << (SqlParser.ISCLOSED - 777)) | (1 << (SqlParser.ISEMPTY - 777)) | (1 << (SqlParser.ISNULL - 777)) | (1 << (SqlParser.ISSIMPLE - 777)) | (1 << (SqlParser.IS_FREE_LOCK - 777)))) !== 0) || ((((_la - 809)) & ~0x1f) == 0 && ((1 << (_la - 809)) & ((1 << (SqlParser.IS_IPV4 - 809)) | (1 << (SqlParser.IS_IPV4_COMPAT - 809)) | (1 << (SqlParser.IS_IPV4_MAPPED - 809)) | (1 << (SqlParser.IS_IPV6 - 809)) | (1 << (SqlParser.IS_USED_LOCK - 809)) | (1 << (SqlParser.LAST_INSERT_ID - 809)) | (1 << (SqlParser.LCASE - 809)) | (1 << (SqlParser.LEAST - 809)) | (1 << (SqlParser.LENGTH - 809)) | (1 << (SqlParser.LINEFROMTEXT - 809)) | (1 << (SqlParser.LINEFROMWKB - 809)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 809)) | (1 << (SqlParser.LINESTRINGFROMWKB - 809)) | (1 << (SqlParser.LN - 809)) | (1 << (SqlParser.LOAD_FILE - 809)) | (1 << (SqlParser.LOCATE - 809)) | (1 << (SqlParser.LOG - 809)) | (1 << (SqlParser.LOG10 - 809)) | (1 << (SqlParser.LOG2 - 809)) | (1 << (SqlParser.LOWER - 809)) | (1 << (SqlParser.LPAD - 809)) | (1 << (SqlParser.LTRIM - 809)) | (1 << (SqlParser.MAKEDATE - 809)) | (1 << (SqlParser.MAKETIME - 809)) | (1 << (SqlParser.MAKE_SET - 809)) | (1 << (SqlParser.MASTER_POS_WAIT - 809)) | (1 << (SqlParser.MBRCONTAINS - 809)) | (1 << (SqlParser.MBRDISJOINT - 809)) | (1 << (SqlParser.MBREQUAL - 809)) | (1 << (SqlParser.MBRINTERSECTS - 809)) | (1 << (SqlParser.MBROVERLAPS - 809)) | (1 << (SqlParser.MBRTOUCHES - 809)))) !== 0) || ((((_la - 841)) & ~0x1f) == 0 && ((1 << (_la - 841)) & ((1 << (SqlParser.MBRWITHIN - 841)) | (1 << (SqlParser.MD5 - 841)) | (1 << (SqlParser.MLINEFROMTEXT - 841)) | (1 << (SqlParser.MLINEFROMWKB - 841)) | (1 << (SqlParser.MONTHNAME - 841)) | (1 << (SqlParser.MPOINTFROMTEXT - 841)) | (1 << (SqlParser.MPOINTFROMWKB - 841)) | (1 << (SqlParser.MPOLYFROMTEXT - 841)) | (1 << (SqlParser.MPOLYFROMWKB - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 841)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 841)) | (1 << (SqlParser.NAME_CONST - 841)) | (1 << (SqlParser.NULLIF - 841)) | (1 << (SqlParser.NUMGEOMETRIES - 841)) | (1 << (SqlParser.NUMINTERIORRINGS - 841)) | (1 << (SqlParser.NUMPOINTS - 841)) | (1 << (SqlParser.OCT - 841)) | (1 << (SqlParser.OCTET_LENGTH - 841)) | (1 << (SqlParser.ORD - 841)) | (1 << (SqlParser.OVERLAPS - 841)) | (1 << (SqlParser.PERIOD_ADD - 841)) | (1 << (SqlParser.PERIOD_DIFF - 841)) | (1 << (SqlParser.PI - 841)) | (1 << (SqlParser.POINTFROMTEXT - 841)) | (1 << (SqlParser.POINTFROMWKB - 841)) | (1 << (SqlParser.POINTN - 841)) | (1 << (SqlParser.POLYFROMTEXT - 841)) | (1 << (SqlParser.POLYFROMWKB - 841)))) !== 0) || ((((_la - 873)) & ~0x1f) == 0 && ((1 << (_la - 873)) & ((1 << (SqlParser.POLYGONFROMTEXT - 873)) | (1 << (SqlParser.POLYGONFROMWKB - 873)) | (1 << (SqlParser.POW - 873)) | (1 << (SqlParser.POWER - 873)) | (1 << (SqlParser.QUOTE - 873)) | (1 << (SqlParser.RADIANS - 873)) | (1 << (SqlParser.RAND - 873)) | (1 << (SqlParser.RANDOM_BYTES - 873)) | (1 << (SqlParser.RELEASE_LOCK - 873)) | (1 << (SqlParser.REVERSE - 873)) | (1 << (SqlParser.ROUND - 873)) | (1 << (SqlParser.ROW_COUNT - 873)) | (1 << (SqlParser.RPAD - 873)) | (1 << (SqlParser.RTRIM - 873)) | (1 << (SqlParser.SEC_TO_TIME - 873)) | (1 << (SqlParser.SESSION_USER - 873)) | (1 << (SqlParser.SHA - 873)) | (1 << (SqlParser.SHA1 - 873)) | (1 << (SqlParser.SHA2 - 873)) | (1 << (SqlParser.SCHEMA_NAME - 873)) | (1 << (SqlParser.SIGN - 873)) | (1 << (SqlParser.SIN - 873)) | (1 << (SqlParser.SLEEP - 873)) | (1 << (SqlParser.SOUNDEX - 873)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 873)) | (1 << (SqlParser.SQRT - 873)) | (1 << (SqlParser.SRID - 873)) | (1 << (SqlParser.STARTPOINT - 873)) | (1 << (SqlParser.STRCMP - 873)) | (1 << (SqlParser.STR_TO_DATE - 873)) | (1 << (SqlParser.ST_AREA - 873)) | (1 << (SqlParser.ST_ASBINARY - 873)))) !== 0) || ((((_la - 905)) & ~0x1f) == 0 && ((1 << (_la - 905)) & ((1 << (SqlParser.ST_ASTEXT - 905)) | (1 << (SqlParser.ST_ASWKB - 905)) | (1 << (SqlParser.ST_ASWKT - 905)) | (1 << (SqlParser.ST_BUFFER - 905)) | (1 << (SqlParser.ST_CENTROID - 905)) | (1 << (SqlParser.ST_CONTAINS - 905)) | (1 << (SqlParser.ST_CROSSES - 905)) | (1 << (SqlParser.ST_DIFFERENCE - 905)) | (1 << (SqlParser.ST_DIMENSION - 905)) | (1 << (SqlParser.ST_DISJOINT - 905)) | (1 << (SqlParser.ST_DISTANCE - 905)) | (1 << (SqlParser.ST_ENDPOINT - 905)) | (1 << (SqlParser.ST_ENVELOPE - 905)) | (1 << (SqlParser.ST_EQUALS - 905)) | (1 << (SqlParser.ST_EXTERIORRING - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYN - 905)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 905)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMFROMWKB - 905)) | (1 << (SqlParser.ST_INTERIORRINGN - 905)) | (1 << (SqlParser.ST_INTERSECTION - 905)) | (1 << (SqlParser.ST_INTERSECTS - 905)) | (1 << (SqlParser.ST_ISCLOSED - 905)) | (1 << (SqlParser.ST_ISEMPTY - 905)) | (1 << (SqlParser.ST_ISSIMPLE - 905)))) !== 0) || ((((_la - 937)) & ~0x1f) == 0 && ((1 << (_la - 937)) & ((1 << (SqlParser.ST_LINEFROMTEXT - 937)) | (1 << (SqlParser.ST_LINEFROMWKB - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 937)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 937)) | (1 << (SqlParser.ST_NUMINTERIORRING - 937)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 937)) | (1 << (SqlParser.ST_NUMPOINTS - 937)) | (1 << (SqlParser.ST_OVERLAPS - 937)) | (1 << (SqlParser.ST_POINTFROMTEXT - 937)) | (1 << (SqlParser.ST_POINTFROMWKB - 937)) | (1 << (SqlParser.ST_POINTN - 937)) | (1 << (SqlParser.ST_POLYFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYFROMWKB - 937)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 937)) | (1 << (SqlParser.ST_SRID - 937)) | (1 << (SqlParser.ST_STARTPOINT - 937)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 937)) | (1 << (SqlParser.ST_TOUCHES - 937)) | (1 << (SqlParser.ST_UNION - 937)) | (1 << (SqlParser.ST_WITHIN - 937)) | (1 << (SqlParser.ST_X - 937)) | (1 << (SqlParser.ST_Y - 937)) | (1 << (SqlParser.SUBDATE - 937)) | (1 << (SqlParser.SUBSTRING_INDEX - 937)) | (1 << (SqlParser.SUBTIME - 937)) | (1 << (SqlParser.SYSTEM_USER - 937)) | (1 << (SqlParser.TAN - 937)) | (1 << (SqlParser.TIMEDIFF - 937)) | (1 << (SqlParser.TIMESTAMPADD - 937)) | (1 << (SqlParser.TIMESTAMPDIFF - 937)))) !== 0) || ((((_la - 969)) & ~0x1f) == 0 && ((1 << (_la - 969)) & ((1 << (SqlParser.TIME_FORMAT - 969)) | (1 << (SqlParser.TIME_TO_SEC - 969)) | (1 << (SqlParser.TOUCHES - 969)) | (1 << (SqlParser.TO_BASE64 - 969)) | (1 << (SqlParser.TO_DAYS - 969)) | (1 << (SqlParser.TO_SECONDS - 969)) | (1 << (SqlParser.UCASE - 969)) | (1 << (SqlParser.UNCOMPRESS - 969)) | (1 << (SqlParser.UNCOMPRESSED_LENGTH - 969)) | (1 << (SqlParser.UNHEX - 969)) | (1 << (SqlParser.UNIX_TIMESTAMP - 969)) | (1 << (SqlParser.UPDATEXML - 969)) | (1 << (SqlParser.UPPER - 969)) | (1 << (SqlParser.UUID - 969)) | (1 << (SqlParser.UUID_SHORT - 969)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 969)) | (1 << (SqlParser.VERSION - 969)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 969)) | (1 << (SqlParser.WEEKDAY - 969)) | (1 << (SqlParser.WEEKOFYEAR - 969)) | (1 << (SqlParser.WEIGHT_STRING - 969)) | (1 << (SqlParser.WITHIN - 969)) | (1 << (SqlParser.YEARWEEK - 969)) | (1 << (SqlParser.Y_FUNCTION - 969)) | (1 << (SqlParser.X_FUNCTION - 969)))) !== 0) || ((((_la - 1006)) & ~0x1f) == 0 && ((1 << (_la - 1006)) & ((1 << (SqlParser.PLUS - 1006)) | (1 << (SqlParser.MINUS - 1006)) | (1 << (SqlParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (SqlParser.BIT_NOT_OP - 1006)) | (1 << (SqlParser.LR_BRACKET - 1006)) | (1 << (SqlParser.ZERO_DECIMAL - 1006)) | (1 << (SqlParser.ONE_DECIMAL - 1006)) | (1 << (SqlParser.TWO_DECIMAL - 1006)) | (1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1006)) | (1 << (SqlParser.START_NATIONAL_STRING_LITERAL - 1006)) | (1 << (SqlParser.STRING_LITERAL - 1006)) | (1 << (SqlParser.DECIMAL_LITERAL - 1006)) | (1 << (SqlParser.HEXADECIMAL_LITERAL - 1006)))) !== 0) || ((((_la - 1038)) & ~0x1f) == 0 && ((1 << (_la - 1038)) & ((1 << (SqlParser.REAL_LITERAL - 1038)) | (1 << (SqlParser.NULL_SPEC_LITERAL - 1038)) | (1 << (SqlParser.BIT_STRING - 1038)) | (1 << (SqlParser.STRING_CHARSET_NAME - 1038)) | (1 << (SqlParser.ID - 1038)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1038)) | (1 << (SqlParser.LOCAL_ID - 1038)) | (1 << (SqlParser.GLOBAL_ID - 1038)))) !== 0)) {
                this.state = 5866;
                this.functionArgs();
            }

            this.state = 5869;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 4:
            localctx = new UdfFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 5871;
            this.fullId();
            this.state = 5872;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5874;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SqlParser.CASE) | (1 << SqlParser.CAST) | (1 << SqlParser.CONVERT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.CURRENT_USER - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)) | (1 << (SqlParser.EXISTS - 32)) | (1 << (SqlParser.FALSE - 32)))) !== 0) || ((((_la - 69)) & ~0x1f) == 0 && ((1 << (_la - 69)) & ((1 << (SqlParser.IF - 69)) | (1 << (SqlParser.INSERT - 69)) | (1 << (SqlParser.INTERVAL - 69)) | (1 << (SqlParser.LEFT - 69)))) !== 0) || ((((_la - 102)) & ~0x1f) == 0 && ((1 << (_la - 102)) & ((1 << (SqlParser.NOT - 102)) | (1 << (SqlParser.NULL_LITERAL - 102)) | (1 << (SqlParser.NUMBER - 102)) | (1 << (SqlParser.REPLACE - 102)) | (1 << (SqlParser.RIGHT - 102)))) !== 0) || ((((_la - 151)) & ~0x1f) == 0 && ((1 << (_la - 151)) & ((1 << (SqlParser.STACKED - 151)) | (1 << (SqlParser.TRUE - 151)) | (1 << (SqlParser.VALUES - 151)))) !== 0) || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.CHAR - 199)) | (1 << (SqlParser.BINARY - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.AVG - 233)) | (1 << (SqlParser.BIT_AND - 233)) | (1 << (SqlParser.BIT_OR - 233)) | (1 << (SqlParser.BIT_XOR - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.GROUP_CONCAT - 233)) | (1 << (SqlParser.MAX - 233)) | (1 << (SqlParser.MIN - 233)) | (1 << (SqlParser.STD - 233)) | (1 << (SqlParser.STDDEV - 233)) | (1 << (SqlParser.STDDEV_POP - 233)) | (1 << (SqlParser.STDDEV_SAMP - 233)) | (1 << (SqlParser.SUM - 233)) | (1 << (SqlParser.VAR_POP - 233)) | (1 << (SqlParser.VAR_SAMP - 233)) | (1 << (SqlParser.VARIANCE - 233)) | (1 << (SqlParser.CURRENT_DATE - 233)) | (1 << (SqlParser.CURRENT_TIME - 233)) | (1 << (SqlParser.CURRENT_TIMESTAMP - 233)) | (1 << (SqlParser.LOCALTIME - 233)) | (1 << (SqlParser.CURDATE - 233)) | (1 << (SqlParser.CURTIME - 233)) | (1 << (SqlParser.DATE_ADD - 233)) | (1 << (SqlParser.DATE_SUB - 233)) | (1 << (SqlParser.EXTRACT - 233)) | (1 << (SqlParser.LOCALTIMESTAMP - 233)) | (1 << (SqlParser.NOW - 233)) | (1 << (SqlParser.POSITION - 233)) | (1 << (SqlParser.SUBSTR - 233)) | (1 << (SqlParser.SUBSTRING - 233)))) !== 0) || ((((_la - 265)) & ~0x1f) == 0 && ((1 << (_la - 265)) & ((1 << (SqlParser.SYSDATE - 265)) | (1 << (SqlParser.TRIM - 265)) | (1 << (SqlParser.UTC_DATE - 265)) | (1 << (SqlParser.UTC_TIME - 265)) | (1 << (SqlParser.UTC_TIMESTAMP - 265)) | (1 << (SqlParser.ACCOUNT - 265)) | (1 << (SqlParser.ACTION - 265)) | (1 << (SqlParser.AFTER - 265)) | (1 << (SqlParser.AGGREGATE - 265)) | (1 << (SqlParser.ALGORITHM - 265)) | (1 << (SqlParser.ANY - 265)) | (1 << (SqlParser.AT - 265)) | (1 << (SqlParser.AUTHORS - 265)) | (1 << (SqlParser.AUTOCOMMIT - 265)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 265)) | (1 << (SqlParser.AUTO_INCREMENT - 265)) | (1 << (SqlParser.AVG_ROW_LENGTH - 265)) | (1 << (SqlParser.BEGIN - 265)) | (1 << (SqlParser.BINLOG - 265)) | (1 << (SqlParser.BIT - 265)) | (1 << (SqlParser.BLOCK - 265)) | (1 << (SqlParser.BOOL - 265)) | (1 << (SqlParser.BOOLEAN - 265)) | (1 << (SqlParser.BTREE - 265)) | (1 << (SqlParser.CACHE - 265)) | (1 << (SqlParser.CASCADED - 265)) | (1 << (SqlParser.CHAIN - 265)) | (1 << (SqlParser.CHANGED - 265)) | (1 << (SqlParser.CHANNEL - 265)) | (1 << (SqlParser.CHECKSUM - 265)) | (1 << (SqlParser.PAGE_CHECKSUM - 265)) | (1 << (SqlParser.CIPHER - 265)))) !== 0) || ((((_la - 297)) & ~0x1f) == 0 && ((1 << (_la - 297)) & ((1 << (SqlParser.CLASS_ORIGIN - 297)) | (1 << (SqlParser.CLIENT - 297)) | (1 << (SqlParser.CLOSE - 297)) | (1 << (SqlParser.COALESCE - 297)) | (1 << (SqlParser.CODE - 297)) | (1 << (SqlParser.COLUMNS - 297)) | (1 << (SqlParser.COLUMN_FORMAT - 297)) | (1 << (SqlParser.COLUMN_NAME - 297)) | (1 << (SqlParser.COMMENT - 297)) | (1 << (SqlParser.COMMIT - 297)) | (1 << (SqlParser.COMPACT - 297)) | (1 << (SqlParser.COMPLETION - 297)) | (1 << (SqlParser.COMPRESSED - 297)) | (1 << (SqlParser.COMPRESSION - 297)) | (1 << (SqlParser.CONCURRENT - 297)) | (1 << (SqlParser.CONNECTION - 297)) | (1 << (SqlParser.CONSISTENT - 297)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 297)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 297)) | (1 << (SqlParser.CONSTRAINT_NAME - 297)) | (1 << (SqlParser.CONTAINS - 297)) | (1 << (SqlParser.CONTEXT - 297)) | (1 << (SqlParser.CONTRIBUTORS - 297)) | (1 << (SqlParser.COPY - 297)) | (1 << (SqlParser.CPU - 297)) | (1 << (SqlParser.CURSOR_NAME - 297)) | (1 << (SqlParser.DATA - 297)) | (1 << (SqlParser.DATAFILE - 297)) | (1 << (SqlParser.DEALLOCATE - 297)) | (1 << (SqlParser.DEFAULT_AUTH - 297)) | (1 << (SqlParser.DEFINER - 297)) | (1 << (SqlParser.DELAY_KEY_WRITE - 297)))) !== 0) || ((((_la - 329)) & ~0x1f) == 0 && ((1 << (_la - 329)) & ((1 << (SqlParser.DES_KEY_FILE - 329)) | (1 << (SqlParser.DIRECTORY - 329)) | (1 << (SqlParser.DISABLE - 329)) | (1 << (SqlParser.DISCARD - 329)) | (1 << (SqlParser.DISK - 329)) | (1 << (SqlParser.DO - 329)) | (1 << (SqlParser.DUMPFILE - 329)) | (1 << (SqlParser.DUPLICATE - 329)) | (1 << (SqlParser.DYNAMIC - 329)) | (1 << (SqlParser.ENABLE - 329)) | (1 << (SqlParser.ENCRYPTION - 329)) | (1 << (SqlParser.END - 329)) | (1 << (SqlParser.ENDS - 329)) | (1 << (SqlParser.ENGINE - 329)) | (1 << (SqlParser.ENGINES - 329)) | (1 << (SqlParser.ERROR - 329)) | (1 << (SqlParser.ERRORS - 329)) | (1 << (SqlParser.ESCAPE - 329)) | (1 << (SqlParser.EVEN - 329)) | (1 << (SqlParser.EVENT - 329)) | (1 << (SqlParser.EVENTS - 329)) | (1 << (SqlParser.EVERY - 329)) | (1 << (SqlParser.EXCHANGE - 329)) | (1 << (SqlParser.EXCLUSIVE - 329)) | (1 << (SqlParser.EXPIRE - 329)) | (1 << (SqlParser.EXPORT - 329)) | (1 << (SqlParser.EXTENDED - 329)) | (1 << (SqlParser.EXTENT_SIZE - 329)) | (1 << (SqlParser.FAST - 329)) | (1 << (SqlParser.FAULTS - 329)) | (1 << (SqlParser.FIELDS - 329)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 329)))) !== 0) || ((((_la - 361)) & ~0x1f) == 0 && ((1 << (_la - 361)) & ((1 << (SqlParser.FILTER - 361)) | (1 << (SqlParser.FIRST - 361)) | (1 << (SqlParser.FIXED - 361)) | (1 << (SqlParser.FLUSH - 361)) | (1 << (SqlParser.FOLLOWS - 361)) | (1 << (SqlParser.FOUND - 361)) | (1 << (SqlParser.FULL - 361)) | (1 << (SqlParser.FUNCTION - 361)) | (1 << (SqlParser.GENERAL - 361)) | (1 << (SqlParser.GLOBAL - 361)) | (1 << (SqlParser.GRANTS - 361)) | (1 << (SqlParser.GROUP_REPLICATION - 361)) | (1 << (SqlParser.HANDLER - 361)) | (1 << (SqlParser.HASH - 361)) | (1 << (SqlParser.HELP - 361)) | (1 << (SqlParser.HOST - 361)) | (1 << (SqlParser.HOSTS - 361)) | (1 << (SqlParser.IDENTIFIED - 361)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 361)) | (1 << (SqlParser.IMPORT - 361)) | (1 << (SqlParser.INDEXES - 361)) | (1 << (SqlParser.INITIAL_SIZE - 361)) | (1 << (SqlParser.INPLACE - 361)) | (1 << (SqlParser.INSERT_METHOD - 361)) | (1 << (SqlParser.INSTALL - 361)) | (1 << (SqlParser.INSTANCE - 361)) | (1 << (SqlParser.INVISIBLE - 361)) | (1 << (SqlParser.INVOKER - 361)) | (1 << (SqlParser.IO - 361)) | (1 << (SqlParser.IO_THREAD - 361)) | (1 << (SqlParser.IPC - 361)) | (1 << (SqlParser.ISOLATION - 361)))) !== 0) || ((((_la - 393)) & ~0x1f) == 0 && ((1 << (_la - 393)) & ((1 << (SqlParser.ISSUER - 393)) | (1 << (SqlParser.JSON - 393)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 393)) | (1 << (SqlParser.LANGUAGE - 393)) | (1 << (SqlParser.LAST - 393)) | (1 << (SqlParser.LEAVES - 393)) | (1 << (SqlParser.LESS - 393)) | (1 << (SqlParser.LEVEL - 393)) | (1 << (SqlParser.LIST - 393)) | (1 << (SqlParser.LOCAL - 393)) | (1 << (SqlParser.LOGFILE - 393)) | (1 << (SqlParser.LOGS - 393)) | (1 << (SqlParser.MASTER - 393)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 393)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 393)) | (1 << (SqlParser.MASTER_DELAY - 393)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 393)) | (1 << (SqlParser.MASTER_HOST - 393)) | (1 << (SqlParser.MASTER_LOG_FILE - 393)) | (1 << (SqlParser.MASTER_LOG_POS - 393)) | (1 << (SqlParser.MASTER_PASSWORD - 393)) | (1 << (SqlParser.MASTER_PORT - 393)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 393)) | (1 << (SqlParser.MASTER_SSL - 393)) | (1 << (SqlParser.MASTER_SSL_CA - 393)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 393)) | (1 << (SqlParser.MASTER_SSL_CERT - 393)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 393)) | (1 << (SqlParser.MASTER_SSL_CRL - 393)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 393)) | (1 << (SqlParser.MASTER_SSL_KEY - 393)) | (1 << (SqlParser.MASTER_TLS_VERSION - 393)))) !== 0) || ((((_la - 425)) & ~0x1f) == 0 && ((1 << (_la - 425)) & ((1 << (SqlParser.MASTER_USER - 425)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 425)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_ROWS - 425)) | (1 << (SqlParser.MAX_SIZE - 425)) | (1 << (SqlParser.MAX_UPDATES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 425)) | (1 << (SqlParser.MEDIUM - 425)) | (1 << (SqlParser.MERGE - 425)) | (1 << (SqlParser.MESSAGE_TEXT - 425)) | (1 << (SqlParser.MID - 425)) | (1 << (SqlParser.MIGRATE - 425)) | (1 << (SqlParser.MIN_ROWS - 425)) | (1 << (SqlParser.MODE - 425)) | (1 << (SqlParser.MODIFY - 425)) | (1 << (SqlParser.MUTEX - 425)) | (1 << (SqlParser.MYSQL - 425)) | (1 << (SqlParser.MYSQL_ERRNO - 425)) | (1 << (SqlParser.NAME - 425)) | (1 << (SqlParser.NAMES - 425)) | (1 << (SqlParser.NCHAR - 425)) | (1 << (SqlParser.NEVER - 425)) | (1 << (SqlParser.NEXT - 425)) | (1 << (SqlParser.NO - 425)) | (1 << (SqlParser.NODEGROUP - 425)) | (1 << (SqlParser.NONE - 425)) | (1 << (SqlParser.OFFLINE - 425)) | (1 << (SqlParser.OFFSET - 425)) | (1 << (SqlParser.OJ - 425)) | (1 << (SqlParser.OLD_PASSWORD - 425)) | (1 << (SqlParser.ONE - 425)) | (1 << (SqlParser.ONLINE - 425)))) !== 0) || ((((_la - 457)) & ~0x1f) == 0 && ((1 << (_la - 457)) & ((1 << (SqlParser.ONLY - 457)) | (1 << (SqlParser.OPEN - 457)) | (1 << (SqlParser.OPTIMIZER_COSTS - 457)) | (1 << (SqlParser.OPTIONS - 457)) | (1 << (SqlParser.OWNER - 457)) | (1 << (SqlParser.PACK_KEYS - 457)) | (1 << (SqlParser.PAGE - 457)) | (1 << (SqlParser.PARSER - 457)) | (1 << (SqlParser.PARTIAL - 457)) | (1 << (SqlParser.PARTITIONING - 457)) | (1 << (SqlParser.PARTITIONS - 457)) | (1 << (SqlParser.PASSWORD - 457)) | (1 << (SqlParser.PHASE - 457)) | (1 << (SqlParser.PLUGIN - 457)) | (1 << (SqlParser.PLUGIN_DIR - 457)) | (1 << (SqlParser.PLUGINS - 457)) | (1 << (SqlParser.PORT - 457)) | (1 << (SqlParser.PRECEDES - 457)) | (1 << (SqlParser.PREPARE - 457)) | (1 << (SqlParser.PRESERVE - 457)) | (1 << (SqlParser.PREV - 457)) | (1 << (SqlParser.PROCESSLIST - 457)) | (1 << (SqlParser.PROFILE - 457)) | (1 << (SqlParser.PROFILES - 457)) | (1 << (SqlParser.PROXY - 457)) | (1 << (SqlParser.QUERY - 457)) | (1 << (SqlParser.QUICK - 457)) | (1 << (SqlParser.REBUILD - 457)) | (1 << (SqlParser.RECOVER - 457)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 457)) | (1 << (SqlParser.REDUNDANT - 457)) | (1 << (SqlParser.RELAY - 457)))) !== 0) || ((((_la - 489)) & ~0x1f) == 0 && ((1 << (_la - 489)) & ((1 << (SqlParser.RELAY_LOG_FILE - 489)) | (1 << (SqlParser.RELAY_LOG_POS - 489)) | (1 << (SqlParser.RELAYLOG - 489)) | (1 << (SqlParser.REMOVE - 489)) | (1 << (SqlParser.REORGANIZE - 489)) | (1 << (SqlParser.REPAIR - 489)) | (1 << (SqlParser.REPLICATE_DO_DB - 489)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 489)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATION - 489)) | (1 << (SqlParser.RESET - 489)) | (1 << (SqlParser.RESUME - 489)) | (1 << (SqlParser.RETURNED_SQLSTATE - 489)) | (1 << (SqlParser.RETURNS - 489)) | (1 << (SqlParser.ROLE - 489)) | (1 << (SqlParser.ROLLBACK - 489)) | (1 << (SqlParser.ROLLUP - 489)) | (1 << (SqlParser.ROTATE - 489)) | (1 << (SqlParser.ROW - 489)) | (1 << (SqlParser.ROWS - 489)) | (1 << (SqlParser.ROW_FORMAT - 489)) | (1 << (SqlParser.SAVEPOINT - 489)) | (1 << (SqlParser.SCHEDULE - 489)) | (1 << (SqlParser.SECURITY - 489)) | (1 << (SqlParser.SERVER - 489)) | (1 << (SqlParser.SESSION - 489)) | (1 << (SqlParser.SHARE - 489)) | (1 << (SqlParser.SHARED - 489)))) !== 0) || ((((_la - 521)) & ~0x1f) == 0 && ((1 << (_la - 521)) & ((1 << (SqlParser.SIGNED - 521)) | (1 << (SqlParser.SIMPLE - 521)) | (1 << (SqlParser.SLAVE - 521)) | (1 << (SqlParser.SLOW - 521)) | (1 << (SqlParser.SNAPSHOT - 521)) | (1 << (SqlParser.SOCKET - 521)) | (1 << (SqlParser.SOME - 521)) | (1 << (SqlParser.SONAME - 521)) | (1 << (SqlParser.SOUNDS - 521)) | (1 << (SqlParser.SOURCE - 521)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 521)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 521)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 521)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 521)) | (1 << (SqlParser.SQL_CACHE - 521)) | (1 << (SqlParser.SQL_NO_CACHE - 521)) | (1 << (SqlParser.SQL_THREAD - 521)) | (1 << (SqlParser.START - 521)) | (1 << (SqlParser.STARTS - 521)) | (1 << (SqlParser.STATS_AUTO_RECALC - 521)) | (1 << (SqlParser.STATS_PERSISTENT - 521)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 521)) | (1 << (SqlParser.STATUS - 521)) | (1 << (SqlParser.STOP - 521)) | (1 << (SqlParser.STORAGE - 521)) | (1 << (SqlParser.STRING - 521)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 521)) | (1 << (SqlParser.SUBJECT - 521)) | (1 << (SqlParser.SUBPARTITION - 521)) | (1 << (SqlParser.SUBPARTITIONS - 521)) | (1 << (SqlParser.SUSPEND - 521)))) !== 0) || ((((_la - 553)) & ~0x1f) == 0 && ((1 << (_la - 553)) & ((1 << (SqlParser.SWAPS - 553)) | (1 << (SqlParser.SWITCHES - 553)) | (1 << (SqlParser.TABLE_NAME - 553)) | (1 << (SqlParser.TABLESPACE - 553)) | (1 << (SqlParser.TEMPORARY - 553)) | (1 << (SqlParser.TEMPTABLE - 553)) | (1 << (SqlParser.THAN - 553)) | (1 << (SqlParser.TRADITIONAL - 553)) | (1 << (SqlParser.TRANSACTION - 553)) | (1 << (SqlParser.TRANSACTIONAL - 553)) | (1 << (SqlParser.TRIGGERS - 553)) | (1 << (SqlParser.TRUNCATE - 553)) | (1 << (SqlParser.UNDEFINED - 553)) | (1 << (SqlParser.UNDOFILE - 553)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 553)) | (1 << (SqlParser.UNINSTALL - 553)) | (1 << (SqlParser.UNKNOWN - 553)) | (1 << (SqlParser.UNTIL - 553)) | (1 << (SqlParser.UPGRADE - 553)) | (1 << (SqlParser.USER - 553)) | (1 << (SqlParser.USE_FRM - 553)) | (1 << (SqlParser.USER_RESOURCES - 553)) | (1 << (SqlParser.VALIDATION - 553)) | (1 << (SqlParser.VALUE - 553)) | (1 << (SqlParser.VARIABLES - 553)) | (1 << (SqlParser.VIEW - 553)) | (1 << (SqlParser.VISIBLE - 553)) | (1 << (SqlParser.WAIT - 553)) | (1 << (SqlParser.WARNINGS - 553)) | (1 << (SqlParser.WITHOUT - 553)) | (1 << (SqlParser.WORK - 553)))) !== 0) || ((((_la - 585)) & ~0x1f) == 0 && ((1 << (_la - 585)) & ((1 << (SqlParser.WRAPPER - 585)) | (1 << (SqlParser.X509 - 585)) | (1 << (SqlParser.XA - 585)) | (1 << (SqlParser.XML - 585)) | (1 << (SqlParser.INTERNAL - 585)) | (1 << (SqlParser.QUARTER - 585)) | (1 << (SqlParser.MONTH - 585)) | (1 << (SqlParser.DAY - 585)) | (1 << (SqlParser.HOUR - 585)) | (1 << (SqlParser.MINUTE - 585)) | (1 << (SqlParser.WEEK - 585)) | (1 << (SqlParser.SECOND - 585)) | (1 << (SqlParser.MICROSECOND - 585)) | (1 << (SqlParser.TABLES - 585)) | (1 << (SqlParser.ROUTINE - 585)) | (1 << (SqlParser.EXECUTE - 585)) | (1 << (SqlParser.FILE - 585)) | (1 << (SqlParser.PROCESS - 585)) | (1 << (SqlParser.RELOAD - 585)) | (1 << (SqlParser.SHUTDOWN - 585)) | (1 << (SqlParser.SUPER - 585)) | (1 << (SqlParser.PRIVILEGES - 585)) | (1 << (SqlParser.AUDIT_ADMIN - 585)) | (1 << (SqlParser.BACKUP_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 585)) | (1 << (SqlParser.CLONE_ADMIN - 585)))) !== 0) || ((((_la - 617)) & ~0x1f) == 0 && ((1 << (_la - 617)) & ((1 << (SqlParser.CONNECTION_ADMIN - 617)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_USER - 617)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 617)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 617)) | (1 << (SqlParser.NDB_STORED_USER - 617)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.REPLICATION_APPLIER - 617)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 617)) | (1 << (SqlParser.ROLE_ADMIN - 617)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.SET_USER_ID - 617)) | (1 << (SqlParser.SHOW_ROUTINE - 617)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 617)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 617)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 617)) | (1 << (SqlParser.ARMSCII8 - 617)) | (1 << (SqlParser.ASCII - 617)) | (1 << (SqlParser.BIG5 - 617)) | (1 << (SqlParser.CP1250 - 617)) | (1 << (SqlParser.CP1251 - 617)) | (1 << (SqlParser.CP1256 - 617)) | (1 << (SqlParser.CP1257 - 617)) | (1 << (SqlParser.CP850 - 617)) | (1 << (SqlParser.CP852 - 617)) | (1 << (SqlParser.CP866 - 617)) | (1 << (SqlParser.CP932 - 617)) | (1 << (SqlParser.DEC8 - 617)))) !== 0) || ((((_la - 649)) & ~0x1f) == 0 && ((1 << (_la - 649)) & ((1 << (SqlParser.EUCJPMS - 649)) | (1 << (SqlParser.EUCKR - 649)) | (1 << (SqlParser.GB2312 - 649)) | (1 << (SqlParser.GBK - 649)) | (1 << (SqlParser.GEOSTD8 - 649)) | (1 << (SqlParser.GREEK - 649)) | (1 << (SqlParser.HEBREW - 649)) | (1 << (SqlParser.HP8 - 649)) | (1 << (SqlParser.KEYBCS2 - 649)) | (1 << (SqlParser.KOI8R - 649)) | (1 << (SqlParser.KOI8U - 649)) | (1 << (SqlParser.LATIN1 - 649)) | (1 << (SqlParser.LATIN2 - 649)) | (1 << (SqlParser.LATIN5 - 649)) | (1 << (SqlParser.LATIN7 - 649)) | (1 << (SqlParser.MACCE - 649)) | (1 << (SqlParser.MACROMAN - 649)) | (1 << (SqlParser.SJIS - 649)) | (1 << (SqlParser.SWE7 - 649)) | (1 << (SqlParser.TIS620 - 649)) | (1 << (SqlParser.UCS2 - 649)) | (1 << (SqlParser.UJIS - 649)) | (1 << (SqlParser.UTF16 - 649)) | (1 << (SqlParser.UTF16LE - 649)) | (1 << (SqlParser.UTF32 - 649)) | (1 << (SqlParser.UTF8 - 649)) | (1 << (SqlParser.UTF8MB3 - 649)) | (1 << (SqlParser.UTF8MB4 - 649)) | (1 << (SqlParser.ARCHIVE - 649)) | (1 << (SqlParser.BLACKHOLE - 649)) | (1 << (SqlParser.CSV - 649)) | (1 << (SqlParser.FEDERATED - 649)))) !== 0) || ((((_la - 681)) & ~0x1f) == 0 && ((1 << (_la - 681)) & ((1 << (SqlParser.INNODB - 681)) | (1 << (SqlParser.MEMORY - 681)) | (1 << (SqlParser.MRG_MYISAM - 681)) | (1 << (SqlParser.MYISAM - 681)) | (1 << (SqlParser.NDB - 681)) | (1 << (SqlParser.NDBCLUSTER - 681)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 681)) | (1 << (SqlParser.TOKUDB - 681)) | (1 << (SqlParser.REPEATABLE - 681)) | (1 << (SqlParser.COMMITTED - 681)) | (1 << (SqlParser.UNCOMMITTED - 681)) | (1 << (SqlParser.SERIALIZABLE - 681)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 681)) | (1 << (SqlParser.LINESTRING - 681)) | (1 << (SqlParser.MULTILINESTRING - 681)) | (1 << (SqlParser.MULTIPOINT - 681)) | (1 << (SqlParser.MULTIPOLYGON - 681)) | (1 << (SqlParser.POINT - 681)) | (1 << (SqlParser.POLYGON - 681)) | (1 << (SqlParser.ABS - 681)) | (1 << (SqlParser.ACOS - 681)) | (1 << (SqlParser.ADDDATE - 681)) | (1 << (SqlParser.ADDTIME - 681)) | (1 << (SqlParser.AES_DECRYPT - 681)) | (1 << (SqlParser.AES_ENCRYPT - 681)) | (1 << (SqlParser.AREA - 681)) | (1 << (SqlParser.ASBINARY - 681)) | (1 << (SqlParser.ASIN - 681)) | (1 << (SqlParser.ASTEXT - 681)) | (1 << (SqlParser.ASWKB - 681)))) !== 0) || ((((_la - 713)) & ~0x1f) == 0 && ((1 << (_la - 713)) & ((1 << (SqlParser.ASWKT - 713)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 713)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 713)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 713)) | (1 << (SqlParser.ATAN - 713)) | (1 << (SqlParser.ATAN2 - 713)) | (1 << (SqlParser.BENCHMARK - 713)) | (1 << (SqlParser.BIN - 713)) | (1 << (SqlParser.BIT_COUNT - 713)) | (1 << (SqlParser.BIT_LENGTH - 713)) | (1 << (SqlParser.BUFFER - 713)) | (1 << (SqlParser.CATALOG_NAME - 713)) | (1 << (SqlParser.CEIL - 713)) | (1 << (SqlParser.CEILING - 713)) | (1 << (SqlParser.CENTROID - 713)) | (1 << (SqlParser.CHARACTER_LENGTH - 713)) | (1 << (SqlParser.CHARSET - 713)) | (1 << (SqlParser.CHAR_LENGTH - 713)) | (1 << (SqlParser.COERCIBILITY - 713)) | (1 << (SqlParser.COLLATION - 713)) | (1 << (SqlParser.COMPRESS - 713)) | (1 << (SqlParser.CONCAT - 713)) | (1 << (SqlParser.CONCAT_WS - 713)) | (1 << (SqlParser.CONNECTION_ID - 713)) | (1 << (SqlParser.CONV - 713)) | (1 << (SqlParser.CONVERT_TZ - 713)) | (1 << (SqlParser.COS - 713)) | (1 << (SqlParser.COT - 713)) | (1 << (SqlParser.CRC32 - 713)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 713)))) !== 0) || ((((_la - 745)) & ~0x1f) == 0 && ((1 << (_la - 745)) & ((1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 745)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 745)) | (1 << (SqlParser.CREATE_DIGEST - 745)) | (1 << (SqlParser.CROSSES - 745)) | (1 << (SqlParser.DATEDIFF - 745)) | (1 << (SqlParser.DATE_FORMAT - 745)) | (1 << (SqlParser.DAYNAME - 745)) | (1 << (SqlParser.DAYOFMONTH - 745)) | (1 << (SqlParser.DAYOFWEEK - 745)) | (1 << (SqlParser.DAYOFYEAR - 745)) | (1 << (SqlParser.DECODE - 745)) | (1 << (SqlParser.DEGREES - 745)) | (1 << (SqlParser.DES_DECRYPT - 745)) | (1 << (SqlParser.DES_ENCRYPT - 745)) | (1 << (SqlParser.DIMENSION - 745)) | (1 << (SqlParser.DISJOINT - 745)) | (1 << (SqlParser.ELT - 745)) | (1 << (SqlParser.ENCODE - 745)) | (1 << (SqlParser.ENCRYPT - 745)) | (1 << (SqlParser.ENDPOINT - 745)) | (1 << (SqlParser.ENVELOPE - 745)) | (1 << (SqlParser.EQUALS - 745)) | (1 << (SqlParser.EXP - 745)) | (1 << (SqlParser.EXPORT_SET - 745)) | (1 << (SqlParser.EXTERIORRING - 745)) | (1 << (SqlParser.EXTRACTVALUE - 745)) | (1 << (SqlParser.FIELD - 745)) | (1 << (SqlParser.FIND_IN_SET - 745)) | (1 << (SqlParser.FLOOR - 745)) | (1 << (SqlParser.FORMAT - 745)) | (1 << (SqlParser.FOUND_ROWS - 745)) | (1 << (SqlParser.FROM_BASE64 - 745)))) !== 0) || ((((_la - 777)) & ~0x1f) == 0 && ((1 << (_la - 777)) & ((1 << (SqlParser.FROM_DAYS - 777)) | (1 << (SqlParser.FROM_UNIXTIME - 777)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 777)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYN - 777)) | (1 << (SqlParser.GEOMETRYTYPE - 777)) | (1 << (SqlParser.GEOMFROMTEXT - 777)) | (1 << (SqlParser.GEOMFROMWKB - 777)) | (1 << (SqlParser.GET_FORMAT - 777)) | (1 << (SqlParser.GET_LOCK - 777)) | (1 << (SqlParser.GLENGTH - 777)) | (1 << (SqlParser.GREATEST - 777)) | (1 << (SqlParser.GTID_SUBSET - 777)) | (1 << (SqlParser.GTID_SUBTRACT - 777)) | (1 << (SqlParser.HEX - 777)) | (1 << (SqlParser.IFNULL - 777)) | (1 << (SqlParser.INET6_ATON - 777)) | (1 << (SqlParser.INET6_NTOA - 777)) | (1 << (SqlParser.INET_ATON - 777)) | (1 << (SqlParser.INET_NTOA - 777)) | (1 << (SqlParser.INSTR - 777)) | (1 << (SqlParser.INTERIORRINGN - 777)) | (1 << (SqlParser.INTERSECTS - 777)) | (1 << (SqlParser.ISCLOSED - 777)) | (1 << (SqlParser.ISEMPTY - 777)) | (1 << (SqlParser.ISNULL - 777)) | (1 << (SqlParser.ISSIMPLE - 777)) | (1 << (SqlParser.IS_FREE_LOCK - 777)))) !== 0) || ((((_la - 809)) & ~0x1f) == 0 && ((1 << (_la - 809)) & ((1 << (SqlParser.IS_IPV4 - 809)) | (1 << (SqlParser.IS_IPV4_COMPAT - 809)) | (1 << (SqlParser.IS_IPV4_MAPPED - 809)) | (1 << (SqlParser.IS_IPV6 - 809)) | (1 << (SqlParser.IS_USED_LOCK - 809)) | (1 << (SqlParser.LAST_INSERT_ID - 809)) | (1 << (SqlParser.LCASE - 809)) | (1 << (SqlParser.LEAST - 809)) | (1 << (SqlParser.LENGTH - 809)) | (1 << (SqlParser.LINEFROMTEXT - 809)) | (1 << (SqlParser.LINEFROMWKB - 809)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 809)) | (1 << (SqlParser.LINESTRINGFROMWKB - 809)) | (1 << (SqlParser.LN - 809)) | (1 << (SqlParser.LOAD_FILE - 809)) | (1 << (SqlParser.LOCATE - 809)) | (1 << (SqlParser.LOG - 809)) | (1 << (SqlParser.LOG10 - 809)) | (1 << (SqlParser.LOG2 - 809)) | (1 << (SqlParser.LOWER - 809)) | (1 << (SqlParser.LPAD - 809)) | (1 << (SqlParser.LTRIM - 809)) | (1 << (SqlParser.MAKEDATE - 809)) | (1 << (SqlParser.MAKETIME - 809)) | (1 << (SqlParser.MAKE_SET - 809)) | (1 << (SqlParser.MASTER_POS_WAIT - 809)) | (1 << (SqlParser.MBRCONTAINS - 809)) | (1 << (SqlParser.MBRDISJOINT - 809)) | (1 << (SqlParser.MBREQUAL - 809)) | (1 << (SqlParser.MBRINTERSECTS - 809)) | (1 << (SqlParser.MBROVERLAPS - 809)) | (1 << (SqlParser.MBRTOUCHES - 809)))) !== 0) || ((((_la - 841)) & ~0x1f) == 0 && ((1 << (_la - 841)) & ((1 << (SqlParser.MBRWITHIN - 841)) | (1 << (SqlParser.MD5 - 841)) | (1 << (SqlParser.MLINEFROMTEXT - 841)) | (1 << (SqlParser.MLINEFROMWKB - 841)) | (1 << (SqlParser.MONTHNAME - 841)) | (1 << (SqlParser.MPOINTFROMTEXT - 841)) | (1 << (SqlParser.MPOINTFROMWKB - 841)) | (1 << (SqlParser.MPOLYFROMTEXT - 841)) | (1 << (SqlParser.MPOLYFROMWKB - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 841)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 841)) | (1 << (SqlParser.NAME_CONST - 841)) | (1 << (SqlParser.NULLIF - 841)) | (1 << (SqlParser.NUMGEOMETRIES - 841)) | (1 << (SqlParser.NUMINTERIORRINGS - 841)) | (1 << (SqlParser.NUMPOINTS - 841)) | (1 << (SqlParser.OCT - 841)) | (1 << (SqlParser.OCTET_LENGTH - 841)) | (1 << (SqlParser.ORD - 841)) | (1 << (SqlParser.OVERLAPS - 841)) | (1 << (SqlParser.PERIOD_ADD - 841)) | (1 << (SqlParser.PERIOD_DIFF - 841)) | (1 << (SqlParser.PI - 841)) | (1 << (SqlParser.POINTFROMTEXT - 841)) | (1 << (SqlParser.POINTFROMWKB - 841)) | (1 << (SqlParser.POINTN - 841)) | (1 << (SqlParser.POLYFROMTEXT - 841)) | (1 << (SqlParser.POLYFROMWKB - 841)))) !== 0) || ((((_la - 873)) & ~0x1f) == 0 && ((1 << (_la - 873)) & ((1 << (SqlParser.POLYGONFROMTEXT - 873)) | (1 << (SqlParser.POLYGONFROMWKB - 873)) | (1 << (SqlParser.POW - 873)) | (1 << (SqlParser.POWER - 873)) | (1 << (SqlParser.QUOTE - 873)) | (1 << (SqlParser.RADIANS - 873)) | (1 << (SqlParser.RAND - 873)) | (1 << (SqlParser.RANDOM_BYTES - 873)) | (1 << (SqlParser.RELEASE_LOCK - 873)) | (1 << (SqlParser.REVERSE - 873)) | (1 << (SqlParser.ROUND - 873)) | (1 << (SqlParser.ROW_COUNT - 873)) | (1 << (SqlParser.RPAD - 873)) | (1 << (SqlParser.RTRIM - 873)) | (1 << (SqlParser.SEC_TO_TIME - 873)) | (1 << (SqlParser.SESSION_USER - 873)) | (1 << (SqlParser.SHA - 873)) | (1 << (SqlParser.SHA1 - 873)) | (1 << (SqlParser.SHA2 - 873)) | (1 << (SqlParser.SCHEMA_NAME - 873)) | (1 << (SqlParser.SIGN - 873)) | (1 << (SqlParser.SIN - 873)) | (1 << (SqlParser.SLEEP - 873)) | (1 << (SqlParser.SOUNDEX - 873)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 873)) | (1 << (SqlParser.SQRT - 873)) | (1 << (SqlParser.SRID - 873)) | (1 << (SqlParser.STARTPOINT - 873)) | (1 << (SqlParser.STRCMP - 873)) | (1 << (SqlParser.STR_TO_DATE - 873)) | (1 << (SqlParser.ST_AREA - 873)) | (1 << (SqlParser.ST_ASBINARY - 873)))) !== 0) || ((((_la - 905)) & ~0x1f) == 0 && ((1 << (_la - 905)) & ((1 << (SqlParser.ST_ASTEXT - 905)) | (1 << (SqlParser.ST_ASWKB - 905)) | (1 << (SqlParser.ST_ASWKT - 905)) | (1 << (SqlParser.ST_BUFFER - 905)) | (1 << (SqlParser.ST_CENTROID - 905)) | (1 << (SqlParser.ST_CONTAINS - 905)) | (1 << (SqlParser.ST_CROSSES - 905)) | (1 << (SqlParser.ST_DIFFERENCE - 905)) | (1 << (SqlParser.ST_DIMENSION - 905)) | (1 << (SqlParser.ST_DISJOINT - 905)) | (1 << (SqlParser.ST_DISTANCE - 905)) | (1 << (SqlParser.ST_ENDPOINT - 905)) | (1 << (SqlParser.ST_ENVELOPE - 905)) | (1 << (SqlParser.ST_EQUALS - 905)) | (1 << (SqlParser.ST_EXTERIORRING - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYN - 905)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 905)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMFROMWKB - 905)) | (1 << (SqlParser.ST_INTERIORRINGN - 905)) | (1 << (SqlParser.ST_INTERSECTION - 905)) | (1 << (SqlParser.ST_INTERSECTS - 905)) | (1 << (SqlParser.ST_ISCLOSED - 905)) | (1 << (SqlParser.ST_ISEMPTY - 905)) | (1 << (SqlParser.ST_ISSIMPLE - 905)))) !== 0) || ((((_la - 937)) & ~0x1f) == 0 && ((1 << (_la - 937)) & ((1 << (SqlParser.ST_LINEFROMTEXT - 937)) | (1 << (SqlParser.ST_LINEFROMWKB - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 937)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 937)) | (1 << (SqlParser.ST_NUMINTERIORRING - 937)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 937)) | (1 << (SqlParser.ST_NUMPOINTS - 937)) | (1 << (SqlParser.ST_OVERLAPS - 937)) | (1 << (SqlParser.ST_POINTFROMTEXT - 937)) | (1 << (SqlParser.ST_POINTFROMWKB - 937)) | (1 << (SqlParser.ST_POINTN - 937)) | (1 << (SqlParser.ST_POLYFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYFROMWKB - 937)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 937)) | (1 << (SqlParser.ST_SRID - 937)) | (1 << (SqlParser.ST_STARTPOINT - 937)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 937)) | (1 << (SqlParser.ST_TOUCHES - 937)) | (1 << (SqlParser.ST_UNION - 937)) | (1 << (SqlParser.ST_WITHIN - 937)) | (1 << (SqlParser.ST_X - 937)) | (1 << (SqlParser.ST_Y - 937)) | (1 << (SqlParser.SUBDATE - 937)) | (1 << (SqlParser.SUBSTRING_INDEX - 937)) | (1 << (SqlParser.SUBTIME - 937)) | (1 << (SqlParser.SYSTEM_USER - 937)) | (1 << (SqlParser.TAN - 937)) | (1 << (SqlParser.TIMEDIFF - 937)) | (1 << (SqlParser.TIMESTAMPADD - 937)) | (1 << (SqlParser.TIMESTAMPDIFF - 937)))) !== 0) || ((((_la - 969)) & ~0x1f) == 0 && ((1 << (_la - 969)) & ((1 << (SqlParser.TIME_FORMAT - 969)) | (1 << (SqlParser.TIME_TO_SEC - 969)) | (1 << (SqlParser.TOUCHES - 969)) | (1 << (SqlParser.TO_BASE64 - 969)) | (1 << (SqlParser.TO_DAYS - 969)) | (1 << (SqlParser.TO_SECONDS - 969)) | (1 << (SqlParser.UCASE - 969)) | (1 << (SqlParser.UNCOMPRESS - 969)) | (1 << (SqlParser.UNCOMPRESSED_LENGTH - 969)) | (1 << (SqlParser.UNHEX - 969)) | (1 << (SqlParser.UNIX_TIMESTAMP - 969)) | (1 << (SqlParser.UPDATEXML - 969)) | (1 << (SqlParser.UPPER - 969)) | (1 << (SqlParser.UUID - 969)) | (1 << (SqlParser.UUID_SHORT - 969)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 969)) | (1 << (SqlParser.VERSION - 969)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 969)) | (1 << (SqlParser.WEEKDAY - 969)) | (1 << (SqlParser.WEEKOFYEAR - 969)) | (1 << (SqlParser.WEIGHT_STRING - 969)) | (1 << (SqlParser.WITHIN - 969)) | (1 << (SqlParser.YEARWEEK - 969)) | (1 << (SqlParser.Y_FUNCTION - 969)) | (1 << (SqlParser.X_FUNCTION - 969)))) !== 0) || ((((_la - 1006)) & ~0x1f) == 0 && ((1 << (_la - 1006)) & ((1 << (SqlParser.PLUS - 1006)) | (1 << (SqlParser.MINUS - 1006)) | (1 << (SqlParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (SqlParser.BIT_NOT_OP - 1006)) | (1 << (SqlParser.LR_BRACKET - 1006)) | (1 << (SqlParser.ZERO_DECIMAL - 1006)) | (1 << (SqlParser.ONE_DECIMAL - 1006)) | (1 << (SqlParser.TWO_DECIMAL - 1006)) | (1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1006)) | (1 << (SqlParser.START_NATIONAL_STRING_LITERAL - 1006)) | (1 << (SqlParser.STRING_LITERAL - 1006)) | (1 << (SqlParser.DECIMAL_LITERAL - 1006)) | (1 << (SqlParser.HEXADECIMAL_LITERAL - 1006)))) !== 0) || ((((_la - 1038)) & ~0x1f) == 0 && ((1 << (_la - 1038)) & ((1 << (SqlParser.REAL_LITERAL - 1038)) | (1 << (SqlParser.NULL_SPEC_LITERAL - 1038)) | (1 << (SqlParser.BIT_STRING - 1038)) | (1 << (SqlParser.STRING_CHARSET_NAME - 1038)) | (1 << (SqlParser.ID - 1038)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1038)) | (1 << (SqlParser.LOCAL_ID - 1038)) | (1 << (SqlParser.GLOBAL_ID - 1038)))) !== 0)) {
                this.state = 5873;
                this.functionArgs();
            }

            this.state = 5876;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 5:
            localctx = new PasswordFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 5878;
            this.passwordFunctionClause();
            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 SpecificFunctionContext(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_specificFunction;
    return this;
}

SpecificFunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
SpecificFunctionContext.prototype.constructor = SpecificFunctionContext;


 
SpecificFunctionContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function PositionFunctionCallContext(parser, ctx) {
	SpecificFunctionContext.call(this, parser);
    this.positionString = null; // StringLiteralContext;
    this.positionExpression = null; // ExpressionContext;
    this.inString = null; // StringLiteralContext;
    this.inExpression = null; // ExpressionContext;
    SpecificFunctionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PositionFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype);
PositionFunctionCallContext.prototype.constructor = PositionFunctionCallContext;

SqlParser.PositionFunctionCallContext = PositionFunctionCallContext;

PositionFunctionCallContext.prototype.POSITION = function() {
    return this.getToken(SqlParser.POSITION, 0);
};

PositionFunctionCallContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

PositionFunctionCallContext.prototype.IN = function() {
    return this.getToken(SqlParser.IN, 0);
};

PositionFunctionCallContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

PositionFunctionCallContext.prototype.stringLiteral = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(StringLiteralContext);
    } else {
        return this.getTypedRuleContext(StringLiteralContext,i);
    }
};

PositionFunctionCallContext.prototype.expression = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionContext);
    } else {
        return this.getTypedRuleContext(ExpressionContext,i);
    }
};
PositionFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPositionFunctionCall(this);
	}
};

PositionFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPositionFunctionCall(this);
	}
};

PositionFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPositionFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function TrimFunctionCallContext(parser, ctx) {
	SpecificFunctionContext.call(this, parser);
    this.positioinForm = null; // Token;
    this.sourceString = null; // StringLiteralContext;
    this.sourceExpression = null; // ExpressionContext;
    this.fromString = null; // StringLiteralContext;
    this.fromExpression = null; // ExpressionContext;
    SpecificFunctionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

TrimFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype);
TrimFunctionCallContext.prototype.constructor = TrimFunctionCallContext;

SqlParser.TrimFunctionCallContext = TrimFunctionCallContext;

TrimFunctionCallContext.prototype.TRIM = function() {
    return this.getToken(SqlParser.TRIM, 0);
};

TrimFunctionCallContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

TrimFunctionCallContext.prototype.FROM = function() {
    return this.getToken(SqlParser.FROM, 0);
};

TrimFunctionCallContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

TrimFunctionCallContext.prototype.BOTH = function() {
    return this.getToken(SqlParser.BOTH, 0);
};

TrimFunctionCallContext.prototype.LEADING = function() {
    return this.getToken(SqlParser.LEADING, 0);
};

TrimFunctionCallContext.prototype.TRAILING = function() {
    return this.getToken(SqlParser.TRAILING, 0);
};

TrimFunctionCallContext.prototype.stringLiteral = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(StringLiteralContext);
    } else {
        return this.getTypedRuleContext(StringLiteralContext,i);
    }
};

TrimFunctionCallContext.prototype.expression = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionContext);
    } else {
        return this.getTypedRuleContext(ExpressionContext,i);
    }
};
TrimFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTrimFunctionCall(this);
	}
};

TrimFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTrimFunctionCall(this);
	}
};

TrimFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTrimFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SimpleFunctionCallContext(parser, ctx) {
	SpecificFunctionContext.call(this, parser);
    SpecificFunctionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SimpleFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype);
SimpleFunctionCallContext.prototype.constructor = SimpleFunctionCallContext;

SqlParser.SimpleFunctionCallContext = SimpleFunctionCallContext;

SimpleFunctionCallContext.prototype.CURRENT_DATE = function() {
    return this.getToken(SqlParser.CURRENT_DATE, 0);
};

SimpleFunctionCallContext.prototype.CURRENT_TIME = function() {
    return this.getToken(SqlParser.CURRENT_TIME, 0);
};

SimpleFunctionCallContext.prototype.CURRENT_TIMESTAMP = function() {
    return this.getToken(SqlParser.CURRENT_TIMESTAMP, 0);
};

SimpleFunctionCallContext.prototype.CURRENT_USER = function() {
    return this.getToken(SqlParser.CURRENT_USER, 0);
};

SimpleFunctionCallContext.prototype.LOCALTIME = function() {
    return this.getToken(SqlParser.LOCALTIME, 0);
};
SimpleFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSimpleFunctionCall(this);
	}
};

SimpleFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSimpleFunctionCall(this);
	}
};

SimpleFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSimpleFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function CharFunctionCallContext(parser, ctx) {
	SpecificFunctionContext.call(this, parser);
    SpecificFunctionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

CharFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype);
CharFunctionCallContext.prototype.constructor = CharFunctionCallContext;

SqlParser.CharFunctionCallContext = CharFunctionCallContext;

CharFunctionCallContext.prototype.CHAR = function() {
    return this.getToken(SqlParser.CHAR, 0);
};

CharFunctionCallContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

CharFunctionCallContext.prototype.functionArgs = function() {
    return this.getTypedRuleContext(FunctionArgsContext,0);
};

CharFunctionCallContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

CharFunctionCallContext.prototype.USING = function() {
    return this.getToken(SqlParser.USING, 0);
};

CharFunctionCallContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};
CharFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCharFunctionCall(this);
	}
};

CharFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCharFunctionCall(this);
	}
};

CharFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCharFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function WeightFunctionCallContext(parser, ctx) {
	SpecificFunctionContext.call(this, parser);
    this.stringFormat = null; // Token;
    SpecificFunctionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

WeightFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype);
WeightFunctionCallContext.prototype.constructor = WeightFunctionCallContext;

SqlParser.WeightFunctionCallContext = WeightFunctionCallContext;

WeightFunctionCallContext.prototype.WEIGHT_STRING = function() {
    return this.getToken(SqlParser.WEIGHT_STRING, 0);
};

WeightFunctionCallContext.prototype.LR_BRACKET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.LR_BRACKET);
    } else {
        return this.getToken(SqlParser.LR_BRACKET, i);
    }
};


WeightFunctionCallContext.prototype.RR_BRACKET = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.RR_BRACKET);
    } else {
        return this.getToken(SqlParser.RR_BRACKET, i);
    }
};


WeightFunctionCallContext.prototype.stringLiteral = function() {
    return this.getTypedRuleContext(StringLiteralContext,0);
};

WeightFunctionCallContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

WeightFunctionCallContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};

WeightFunctionCallContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

WeightFunctionCallContext.prototype.levelsInWeightString = function() {
    return this.getTypedRuleContext(LevelsInWeightStringContext,0);
};

WeightFunctionCallContext.prototype.CHAR = function() {
    return this.getToken(SqlParser.CHAR, 0);
};

WeightFunctionCallContext.prototype.BINARY = function() {
    return this.getToken(SqlParser.BINARY, 0);
};
WeightFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterWeightFunctionCall(this);
	}
};

WeightFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitWeightFunctionCall(this);
	}
};

WeightFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitWeightFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function GetFormatFunctionCallContext(parser, ctx) {
	SpecificFunctionContext.call(this, parser);
    this.datetimeFormat = null; // Token;
    SpecificFunctionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

GetFormatFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype);
GetFormatFunctionCallContext.prototype.constructor = GetFormatFunctionCallContext;

SqlParser.GetFormatFunctionCallContext = GetFormatFunctionCallContext;

GetFormatFunctionCallContext.prototype.GET_FORMAT = function() {
    return this.getToken(SqlParser.GET_FORMAT, 0);
};

GetFormatFunctionCallContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

GetFormatFunctionCallContext.prototype.COMMA = function() {
    return this.getToken(SqlParser.COMMA, 0);
};

GetFormatFunctionCallContext.prototype.stringLiteral = function() {
    return this.getTypedRuleContext(StringLiteralContext,0);
};

GetFormatFunctionCallContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

GetFormatFunctionCallContext.prototype.DATE = function() {
    return this.getToken(SqlParser.DATE, 0);
};

GetFormatFunctionCallContext.prototype.TIME = function() {
    return this.getToken(SqlParser.TIME, 0);
};

GetFormatFunctionCallContext.prototype.DATETIME = function() {
    return this.getToken(SqlParser.DATETIME, 0);
};
GetFormatFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterGetFormatFunctionCall(this);
	}
};

GetFormatFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitGetFormatFunctionCall(this);
	}
};

GetFormatFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitGetFormatFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function CaseFunctionCallContext(parser, ctx) {
	SpecificFunctionContext.call(this, parser);
    this.elseArg = null; // FunctionArgContext;
    SpecificFunctionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

CaseFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype);
CaseFunctionCallContext.prototype.constructor = CaseFunctionCallContext;

SqlParser.CaseFunctionCallContext = CaseFunctionCallContext;

CaseFunctionCallContext.prototype.CASE = function() {
    return this.getToken(SqlParser.CASE, 0);
};

CaseFunctionCallContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

CaseFunctionCallContext.prototype.END = function() {
    return this.getToken(SqlParser.END, 0);
};

CaseFunctionCallContext.prototype.caseFuncAlternative = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(CaseFuncAlternativeContext);
    } else {
        return this.getTypedRuleContext(CaseFuncAlternativeContext,i);
    }
};

CaseFunctionCallContext.prototype.ELSE = function() {
    return this.getToken(SqlParser.ELSE, 0);
};

CaseFunctionCallContext.prototype.functionArg = function() {
    return this.getTypedRuleContext(FunctionArgContext,0);
};
CaseFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCaseFunctionCall(this);
	}
};

CaseFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCaseFunctionCall(this);
	}
};

CaseFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCaseFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ExtractFunctionCallContext(parser, ctx) {
	SpecificFunctionContext.call(this, parser);
    this.sourceString = null; // StringLiteralContext;
    this.sourceExpression = null; // ExpressionContext;
    SpecificFunctionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ExtractFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype);
ExtractFunctionCallContext.prototype.constructor = ExtractFunctionCallContext;

SqlParser.ExtractFunctionCallContext = ExtractFunctionCallContext;

ExtractFunctionCallContext.prototype.EXTRACT = function() {
    return this.getToken(SqlParser.EXTRACT, 0);
};

ExtractFunctionCallContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

ExtractFunctionCallContext.prototype.intervalType = function() {
    return this.getTypedRuleContext(IntervalTypeContext,0);
};

ExtractFunctionCallContext.prototype.FROM = function() {
    return this.getToken(SqlParser.FROM, 0);
};

ExtractFunctionCallContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

ExtractFunctionCallContext.prototype.stringLiteral = function() {
    return this.getTypedRuleContext(StringLiteralContext,0);
};

ExtractFunctionCallContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};
ExtractFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterExtractFunctionCall(this);
	}
};

ExtractFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitExtractFunctionCall(this);
	}
};

ExtractFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitExtractFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function DataTypeFunctionCallContext(parser, ctx) {
	SpecificFunctionContext.call(this, parser);
    this.separator = null; // Token;
    SpecificFunctionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

DataTypeFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype);
DataTypeFunctionCallContext.prototype.constructor = DataTypeFunctionCallContext;

SqlParser.DataTypeFunctionCallContext = DataTypeFunctionCallContext;

DataTypeFunctionCallContext.prototype.CONVERT = function() {
    return this.getToken(SqlParser.CONVERT, 0);
};

DataTypeFunctionCallContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

DataTypeFunctionCallContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

DataTypeFunctionCallContext.prototype.convertedDataType = function() {
    return this.getTypedRuleContext(ConvertedDataTypeContext,0);
};

DataTypeFunctionCallContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

DataTypeFunctionCallContext.prototype.COMMA = function() {
    return this.getToken(SqlParser.COMMA, 0);
};

DataTypeFunctionCallContext.prototype.USING = function() {
    return this.getToken(SqlParser.USING, 0);
};

DataTypeFunctionCallContext.prototype.charsetName = function() {
    return this.getTypedRuleContext(CharsetNameContext,0);
};

DataTypeFunctionCallContext.prototype.CAST = function() {
    return this.getToken(SqlParser.CAST, 0);
};

DataTypeFunctionCallContext.prototype.AS = function() {
    return this.getToken(SqlParser.AS, 0);
};
DataTypeFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDataTypeFunctionCall(this);
	}
};

DataTypeFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDataTypeFunctionCall(this);
	}
};

DataTypeFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDataTypeFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ValuesFunctionCallContext(parser, ctx) {
	SpecificFunctionContext.call(this, parser);
    SpecificFunctionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ValuesFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype);
ValuesFunctionCallContext.prototype.constructor = ValuesFunctionCallContext;

SqlParser.ValuesFunctionCallContext = ValuesFunctionCallContext;

ValuesFunctionCallContext.prototype.VALUES = function() {
    return this.getToken(SqlParser.VALUES, 0);
};

ValuesFunctionCallContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

ValuesFunctionCallContext.prototype.fullColumnName = function() {
    return this.getTypedRuleContext(FullColumnNameContext,0);
};

ValuesFunctionCallContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};
ValuesFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterValuesFunctionCall(this);
	}
};

ValuesFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitValuesFunctionCall(this);
	}
};

ValuesFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitValuesFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SubstrFunctionCallContext(parser, ctx) {
	SpecificFunctionContext.call(this, parser);
    this.sourceString = null; // StringLiteralContext;
    this.sourceExpression = null; // ExpressionContext;
    this.fromDecimal = null; // DecimalLiteralContext;
    this.fromExpression = null; // ExpressionContext;
    this.forDecimal = null; // DecimalLiteralContext;
    this.forExpression = null; // ExpressionContext;
    SpecificFunctionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SubstrFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype);
SubstrFunctionCallContext.prototype.constructor = SubstrFunctionCallContext;

SqlParser.SubstrFunctionCallContext = SubstrFunctionCallContext;

SubstrFunctionCallContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

SubstrFunctionCallContext.prototype.FROM = function() {
    return this.getToken(SqlParser.FROM, 0);
};

SubstrFunctionCallContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

SubstrFunctionCallContext.prototype.SUBSTR = function() {
    return this.getToken(SqlParser.SUBSTR, 0);
};

SubstrFunctionCallContext.prototype.SUBSTRING = function() {
    return this.getToken(SqlParser.SUBSTRING, 0);
};

SubstrFunctionCallContext.prototype.stringLiteral = function() {
    return this.getTypedRuleContext(StringLiteralContext,0);
};

SubstrFunctionCallContext.prototype.expression = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionContext);
    } else {
        return this.getTypedRuleContext(ExpressionContext,i);
    }
};

SubstrFunctionCallContext.prototype.decimalLiteral = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DecimalLiteralContext);
    } else {
        return this.getTypedRuleContext(DecimalLiteralContext,i);
    }
};

SubstrFunctionCallContext.prototype.FOR = function() {
    return this.getToken(SqlParser.FOR, 0);
};
SubstrFunctionCallContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSubstrFunctionCall(this);
	}
};

SubstrFunctionCallContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSubstrFunctionCall(this);
	}
};

SubstrFunctionCallContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSubstrFunctionCall(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.SpecificFunctionContext = SpecificFunctionContext;

SqlParser.prototype.specificFunction = function() {

    var localctx = new SpecificFunctionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 584, SqlParser.RULE_specificFunction);
    var _la = 0; // Token type
    try {
        this.state = 6038;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,890,this._ctx);
        switch(la_) {
        case 1:
            localctx = new SimpleFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 5881;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.CURRENT_USER || ((((_la - 251)) & ~0x1f) == 0 && ((1 << (_la - 251)) & ((1 << (SqlParser.CURRENT_DATE - 251)) | (1 << (SqlParser.CURRENT_TIME - 251)) | (1 << (SqlParser.CURRENT_TIMESTAMP - 251)) | (1 << (SqlParser.LOCALTIME - 251)))) !== 0))) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 2:
            localctx = new DataTypeFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 5882;
            this.match(SqlParser.CONVERT);
            this.state = 5883;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5884;
            this.expression(0);
            this.state = 5885;
            localctx.separator = this.match(SqlParser.COMMA);
            this.state = 5886;
            this.convertedDataType();
            this.state = 5887;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 3:
            localctx = new DataTypeFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 3);
            this.state = 5889;
            this.match(SqlParser.CONVERT);
            this.state = 5890;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5891;
            this.expression(0);
            this.state = 5892;
            this.match(SqlParser.USING);
            this.state = 5893;
            this.charsetName();
            this.state = 5894;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 4:
            localctx = new DataTypeFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 4);
            this.state = 5896;
            this.match(SqlParser.CAST);
            this.state = 5897;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5898;
            this.expression(0);
            this.state = 5899;
            this.match(SqlParser.AS);
            this.state = 5900;
            this.convertedDataType();
            this.state = 5901;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 5:
            localctx = new ValuesFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 5);
            this.state = 5903;
            this.match(SqlParser.VALUES);
            this.state = 5904;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5905;
            this.fullColumnName();
            this.state = 5906;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 6:
            localctx = new CaseFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 6);
            this.state = 5908;
            this.match(SqlParser.CASE);
            this.state = 5909;
            this.expression(0);
            this.state = 5911; 
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            do {
                this.state = 5910;
                this.caseFuncAlternative();
                this.state = 5913; 
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            } while(_la===SqlParser.WHEN);
            this.state = 5917;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ELSE) {
                this.state = 5915;
                this.match(SqlParser.ELSE);
                this.state = 5916;
                localctx.elseArg = this.functionArg();
            }

            this.state = 5919;
            this.match(SqlParser.END);
            break;

        case 7:
            localctx = new CaseFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 7);
            this.state = 5921;
            this.match(SqlParser.CASE);
            this.state = 5923; 
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            do {
                this.state = 5922;
                this.caseFuncAlternative();
                this.state = 5925; 
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            } while(_la===SqlParser.WHEN);
            this.state = 5929;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ELSE) {
                this.state = 5927;
                this.match(SqlParser.ELSE);
                this.state = 5928;
                localctx.elseArg = this.functionArg();
            }

            this.state = 5931;
            this.match(SqlParser.END);
            break;

        case 8:
            localctx = new CharFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 8);
            this.state = 5933;
            this.match(SqlParser.CHAR);
            this.state = 5934;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5935;
            this.functionArgs();
            this.state = 5938;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.USING) {
                this.state = 5936;
                this.match(SqlParser.USING);
                this.state = 5937;
                this.charsetName();
            }

            this.state = 5940;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 9:
            localctx = new PositionFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 9);
            this.state = 5942;
            this.match(SqlParser.POSITION);
            this.state = 5943;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5946;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,876,this._ctx);
            switch(la_) {
            case 1:
                this.state = 5944;
                localctx.positionString = this.stringLiteral();
                break;

            case 2:
                this.state = 5945;
                localctx.positionExpression = this.expression(0);
                break;

            }
            this.state = 5948;
            this.match(SqlParser.IN);
            this.state = 5951;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,877,this._ctx);
            switch(la_) {
            case 1:
                this.state = 5949;
                localctx.inString = this.stringLiteral();
                break;

            case 2:
                this.state = 5950;
                localctx.inExpression = this.expression(0);
                break;

            }
            this.state = 5953;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 10:
            localctx = new SubstrFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 10);
            this.state = 5955;
            _la = this._input.LA(1);
            if(!(_la===SqlParser.SUBSTR || _la===SqlParser.SUBSTRING)) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5956;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5959;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,878,this._ctx);
            switch(la_) {
            case 1:
                this.state = 5957;
                localctx.sourceString = this.stringLiteral();
                break;

            case 2:
                this.state = 5958;
                localctx.sourceExpression = this.expression(0);
                break;

            }
            this.state = 5961;
            this.match(SqlParser.FROM);
            this.state = 5964;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,879,this._ctx);
            switch(la_) {
            case 1:
                this.state = 5962;
                localctx.fromDecimal = this.decimalLiteral();
                break;

            case 2:
                this.state = 5963;
                localctx.fromExpression = this.expression(0);
                break;

            }
            this.state = 5971;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.FOR) {
                this.state = 5966;
                this.match(SqlParser.FOR);
                this.state = 5969;
                this._errHandler.sync(this);
                var la_ = this._interp.adaptivePredict(this._input,880,this._ctx);
                switch(la_) {
                case 1:
                    this.state = 5967;
                    localctx.forDecimal = this.decimalLiteral();
                    break;

                case 2:
                    this.state = 5968;
                    localctx.forExpression = this.expression(0);
                    break;

                }
            }

            this.state = 5973;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 11:
            localctx = new TrimFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 11);
            this.state = 5975;
            this.match(SqlParser.TRIM);
            this.state = 5976;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5977;
            localctx.positioinForm = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.BOTH || _la===SqlParser.LEADING || _la===SqlParser.TRAILING)) {
                localctx.positioinForm = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 5980;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,882,this._ctx);
            if(la_===1) {
                this.state = 5978;
                localctx.sourceString = this.stringLiteral();

            } else if(la_===2) {
                this.state = 5979;
                localctx.sourceExpression = this.expression(0);

            }
            this.state = 5982;
            this.match(SqlParser.FROM);
            this.state = 5985;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,883,this._ctx);
            switch(la_) {
            case 1:
                this.state = 5983;
                localctx.fromString = this.stringLiteral();
                break;

            case 2:
                this.state = 5984;
                localctx.fromExpression = this.expression(0);
                break;

            }
            this.state = 5987;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 12:
            localctx = new TrimFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 12);
            this.state = 5989;
            this.match(SqlParser.TRIM);
            this.state = 5990;
            this.match(SqlParser.LR_BRACKET);
            this.state = 5993;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,884,this._ctx);
            switch(la_) {
            case 1:
                this.state = 5991;
                localctx.sourceString = this.stringLiteral();
                break;

            case 2:
                this.state = 5992;
                localctx.sourceExpression = this.expression(0);
                break;

            }
            this.state = 5995;
            this.match(SqlParser.FROM);
            this.state = 5998;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,885,this._ctx);
            switch(la_) {
            case 1:
                this.state = 5996;
                localctx.fromString = this.stringLiteral();
                break;

            case 2:
                this.state = 5997;
                localctx.fromExpression = this.expression(0);
                break;

            }
            this.state = 6000;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 13:
            localctx = new WeightFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 13);
            this.state = 6002;
            this.match(SqlParser.WEIGHT_STRING);
            this.state = 6003;
            this.match(SqlParser.LR_BRACKET);
            this.state = 6006;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,886,this._ctx);
            switch(la_) {
            case 1:
                this.state = 6004;
                this.stringLiteral();
                break;

            case 2:
                this.state = 6005;
                this.expression(0);
                break;

            }
            this.state = 6014;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.AS) {
                this.state = 6008;
                this.match(SqlParser.AS);
                this.state = 6009;
                localctx.stringFormat = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.CHAR || _la===SqlParser.BINARY)) {
                    localctx.stringFormat = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
                this.state = 6010;
                this.match(SqlParser.LR_BRACKET);
                this.state = 6011;
                this.decimalLiteral();
                this.state = 6012;
                this.match(SqlParser.RR_BRACKET);
            }

            this.state = 6017;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.LEVEL) {
                this.state = 6016;
                this.levelsInWeightString();
            }

            this.state = 6019;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 14:
            localctx = new ExtractFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 14);
            this.state = 6021;
            this.match(SqlParser.EXTRACT);
            this.state = 6022;
            this.match(SqlParser.LR_BRACKET);
            this.state = 6023;
            this.intervalType();
            this.state = 6024;
            this.match(SqlParser.FROM);
            this.state = 6027;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,889,this._ctx);
            switch(la_) {
            case 1:
                this.state = 6025;
                localctx.sourceString = this.stringLiteral();
                break;

            case 2:
                this.state = 6026;
                localctx.sourceExpression = this.expression(0);
                break;

            }
            this.state = 6029;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 15:
            localctx = new GetFormatFunctionCallContext(this, localctx);
            this.enterOuterAlt(localctx, 15);
            this.state = 6031;
            this.match(SqlParser.GET_FORMAT);
            this.state = 6032;
            this.match(SqlParser.LR_BRACKET);
            this.state = 6033;
            localctx.datetimeFormat = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.DATETIME - 199)))) !== 0))) {
                localctx.datetimeFormat = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 6034;
            this.match(SqlParser.COMMA);
            this.state = 6035;
            this.stringLiteral();
            this.state = 6036;
            this.match(SqlParser.RR_BRACKET);
            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 CaseFuncAlternativeContext(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_caseFuncAlternative;
    this.condition = null; // FunctionArgContext
    this.consequent = null; // FunctionArgContext
    return this;
}

CaseFuncAlternativeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CaseFuncAlternativeContext.prototype.constructor = CaseFuncAlternativeContext;

CaseFuncAlternativeContext.prototype.WHEN = function() {
    return this.getToken(SqlParser.WHEN, 0);
};

CaseFuncAlternativeContext.prototype.THEN = function() {
    return this.getToken(SqlParser.THEN, 0);
};

CaseFuncAlternativeContext.prototype.functionArg = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(FunctionArgContext);
    } else {
        return this.getTypedRuleContext(FunctionArgContext,i);
    }
};

CaseFuncAlternativeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCaseFuncAlternative(this);
	}
};

CaseFuncAlternativeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCaseFuncAlternative(this);
	}
};

CaseFuncAlternativeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCaseFuncAlternative(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CaseFuncAlternativeContext = CaseFuncAlternativeContext;

SqlParser.prototype.caseFuncAlternative = function() {

    var localctx = new CaseFuncAlternativeContext(this, this._ctx, this.state);
    this.enterRule(localctx, 586, SqlParser.RULE_caseFuncAlternative);
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6040;
        this.match(SqlParser.WHEN);
        this.state = 6041;
        localctx.condition = this.functionArg();
        this.state = 6042;
        this.match(SqlParser.THEN);
        this.state = 6043;
        localctx.consequent = this.functionArg();
    } 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 LevelsInWeightStringContext(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_levelsInWeightString;
    return this;
}

LevelsInWeightStringContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LevelsInWeightStringContext.prototype.constructor = LevelsInWeightStringContext;


 
LevelsInWeightStringContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};


function LevelWeightRangeContext(parser, ctx) {
	LevelsInWeightStringContext.call(this, parser);
    this.firstLevel = null; // DecimalLiteralContext;
    this.lastLevel = null; // DecimalLiteralContext;
    LevelsInWeightStringContext.prototype.copyFrom.call(this, ctx);
    return this;
}

LevelWeightRangeContext.prototype = Object.create(LevelsInWeightStringContext.prototype);
LevelWeightRangeContext.prototype.constructor = LevelWeightRangeContext;

SqlParser.LevelWeightRangeContext = LevelWeightRangeContext;

LevelWeightRangeContext.prototype.LEVEL = function() {
    return this.getToken(SqlParser.LEVEL, 0);
};

LevelWeightRangeContext.prototype.MINUS = function() {
    return this.getToken(SqlParser.MINUS, 0);
};

LevelWeightRangeContext.prototype.decimalLiteral = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(DecimalLiteralContext);
    } else {
        return this.getTypedRuleContext(DecimalLiteralContext,i);
    }
};
LevelWeightRangeContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLevelWeightRange(this);
	}
};

LevelWeightRangeContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLevelWeightRange(this);
	}
};

LevelWeightRangeContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLevelWeightRange(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function LevelWeightListContext(parser, ctx) {
	LevelsInWeightStringContext.call(this, parser);
    LevelsInWeightStringContext.prototype.copyFrom.call(this, ctx);
    return this;
}

LevelWeightListContext.prototype = Object.create(LevelsInWeightStringContext.prototype);
LevelWeightListContext.prototype.constructor = LevelWeightListContext;

SqlParser.LevelWeightListContext = LevelWeightListContext;

LevelWeightListContext.prototype.LEVEL = function() {
    return this.getToken(SqlParser.LEVEL, 0);
};

LevelWeightListContext.prototype.levelInWeightListElement = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(LevelInWeightListElementContext);
    } else {
        return this.getTypedRuleContext(LevelInWeightListElementContext,i);
    }
};

LevelWeightListContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

LevelWeightListContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLevelWeightList(this);
	}
};

LevelWeightListContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLevelWeightList(this);
	}
};

LevelWeightListContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLevelWeightList(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.LevelsInWeightStringContext = LevelsInWeightStringContext;

SqlParser.prototype.levelsInWeightString = function() {

    var localctx = new LevelsInWeightStringContext(this, this._ctx, this.state);
    this.enterRule(localctx, 588, SqlParser.RULE_levelsInWeightString);
    var _la = 0; // Token type
    try {
        this.state = 6059;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,892,this._ctx);
        switch(la_) {
        case 1:
            localctx = new LevelWeightListContext(this, localctx);
            this.enterOuterAlt(localctx, 1);
            this.state = 6045;
            this.match(SqlParser.LEVEL);
            this.state = 6046;
            this.levelInWeightListElement();
            this.state = 6051;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 6047;
                this.match(SqlParser.COMMA);
                this.state = 6048;
                this.levelInWeightListElement();
                this.state = 6053;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            break;

        case 2:
            localctx = new LevelWeightRangeContext(this, localctx);
            this.enterOuterAlt(localctx, 2);
            this.state = 6054;
            this.match(SqlParser.LEVEL);
            this.state = 6055;
            localctx.firstLevel = this.decimalLiteral();
            this.state = 6056;
            this.match(SqlParser.MINUS);
            this.state = 6057;
            localctx.lastLevel = this.decimalLiteral();
            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 LevelInWeightListElementContext(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_levelInWeightListElement;
    this.orderType = null; // Token
    return this;
}

LevelInWeightListElementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LevelInWeightListElementContext.prototype.constructor = LevelInWeightListElementContext;

LevelInWeightListElementContext.prototype.decimalLiteral = function() {
    return this.getTypedRuleContext(DecimalLiteralContext,0);
};

LevelInWeightListElementContext.prototype.ASC = function() {
    return this.getToken(SqlParser.ASC, 0);
};

LevelInWeightListElementContext.prototype.DESC = function() {
    return this.getToken(SqlParser.DESC, 0);
};

LevelInWeightListElementContext.prototype.REVERSE = function() {
    return this.getToken(SqlParser.REVERSE, 0);
};

LevelInWeightListElementContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLevelInWeightListElement(this);
	}
};

LevelInWeightListElementContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLevelInWeightListElement(this);
	}
};

LevelInWeightListElementContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLevelInWeightListElement(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LevelInWeightListElementContext = LevelInWeightListElementContext;

SqlParser.prototype.levelInWeightListElement = function() {

    var localctx = new LevelInWeightListElementContext(this, this._ctx, this.state);
    this.enterRule(localctx, 590, SqlParser.RULE_levelInWeightListElement);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6061;
        this.decimalLiteral();
        this.state = 6063;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        if(_la===SqlParser.ASC || _la===SqlParser.DESC || _la===SqlParser.REVERSE) {
            this.state = 6062;
            localctx.orderType = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.ASC || _la===SqlParser.DESC || _la===SqlParser.REVERSE)) {
                localctx.orderType = 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 AggregateWindowedFunctionContext(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_aggregateWindowedFunction;
    this.aggregator = null; // Token
    this.starArg = null; // Token
    this.separator = null; // Token
    return this;
}

AggregateWindowedFunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
AggregateWindowedFunctionContext.prototype.constructor = AggregateWindowedFunctionContext;

AggregateWindowedFunctionContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

AggregateWindowedFunctionContext.prototype.functionArg = function() {
    return this.getTypedRuleContext(FunctionArgContext,0);
};

AggregateWindowedFunctionContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

AggregateWindowedFunctionContext.prototype.AVG = function() {
    return this.getToken(SqlParser.AVG, 0);
};

AggregateWindowedFunctionContext.prototype.MAX = function() {
    return this.getToken(SqlParser.MAX, 0);
};

AggregateWindowedFunctionContext.prototype.MIN = function() {
    return this.getToken(SqlParser.MIN, 0);
};

AggregateWindowedFunctionContext.prototype.SUM = function() {
    return this.getToken(SqlParser.SUM, 0);
};

AggregateWindowedFunctionContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};

AggregateWindowedFunctionContext.prototype.DISTINCT = function() {
    return this.getToken(SqlParser.DISTINCT, 0);
};

AggregateWindowedFunctionContext.prototype.COUNT = function() {
    return this.getToken(SqlParser.COUNT, 0);
};

AggregateWindowedFunctionContext.prototype.STAR = function() {
    return this.getToken(SqlParser.STAR, 0);
};

AggregateWindowedFunctionContext.prototype.functionArgs = function() {
    return this.getTypedRuleContext(FunctionArgsContext,0);
};

AggregateWindowedFunctionContext.prototype.BIT_AND = function() {
    return this.getToken(SqlParser.BIT_AND, 0);
};

AggregateWindowedFunctionContext.prototype.BIT_OR = function() {
    return this.getToken(SqlParser.BIT_OR, 0);
};

AggregateWindowedFunctionContext.prototype.BIT_XOR = function() {
    return this.getToken(SqlParser.BIT_XOR, 0);
};

AggregateWindowedFunctionContext.prototype.STD = function() {
    return this.getToken(SqlParser.STD, 0);
};

AggregateWindowedFunctionContext.prototype.STDDEV = function() {
    return this.getToken(SqlParser.STDDEV, 0);
};

AggregateWindowedFunctionContext.prototype.STDDEV_POP = function() {
    return this.getToken(SqlParser.STDDEV_POP, 0);
};

AggregateWindowedFunctionContext.prototype.STDDEV_SAMP = function() {
    return this.getToken(SqlParser.STDDEV_SAMP, 0);
};

AggregateWindowedFunctionContext.prototype.VAR_POP = function() {
    return this.getToken(SqlParser.VAR_POP, 0);
};

AggregateWindowedFunctionContext.prototype.VAR_SAMP = function() {
    return this.getToken(SqlParser.VAR_SAMP, 0);
};

AggregateWindowedFunctionContext.prototype.VARIANCE = function() {
    return this.getToken(SqlParser.VARIANCE, 0);
};

AggregateWindowedFunctionContext.prototype.GROUP_CONCAT = function() {
    return this.getToken(SqlParser.GROUP_CONCAT, 0);
};

AggregateWindowedFunctionContext.prototype.ORDER = function() {
    return this.getToken(SqlParser.ORDER, 0);
};

AggregateWindowedFunctionContext.prototype.BY = function() {
    return this.getToken(SqlParser.BY, 0);
};

AggregateWindowedFunctionContext.prototype.orderByExpression = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(OrderByExpressionContext);
    } else {
        return this.getTypedRuleContext(OrderByExpressionContext,i);
    }
};

AggregateWindowedFunctionContext.prototype.SEPARATOR = function() {
    return this.getToken(SqlParser.SEPARATOR, 0);
};

AggregateWindowedFunctionContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};

AggregateWindowedFunctionContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


AggregateWindowedFunctionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterAggregateWindowedFunction(this);
	}
};

AggregateWindowedFunctionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitAggregateWindowedFunction(this);
	}
};

AggregateWindowedFunctionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitAggregateWindowedFunction(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.AggregateWindowedFunctionContext = AggregateWindowedFunctionContext;

SqlParser.prototype.aggregateWindowedFunction = function() {

    var localctx = new AggregateWindowedFunctionContext(this, this._ctx, this.state);
    this.enterRule(localctx, 592, SqlParser.RULE_aggregateWindowedFunction);
    var _la = 0; // Token type
    try {
        this.state = 6121;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,902,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 6065;
            _la = this._input.LA(1);
            if(!(((((_la - 235)) & ~0x1f) == 0 && ((1 << (_la - 235)) & ((1 << (SqlParser.AVG - 235)) | (1 << (SqlParser.MAX - 235)) | (1 << (SqlParser.MIN - 235)) | (1 << (SqlParser.SUM - 235)))) !== 0))) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 6066;
            this.match(SqlParser.LR_BRACKET);
            this.state = 6068;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ALL || _la===SqlParser.DISTINCT) {
                this.state = 6067;
                localctx.aggregator = this._input.LT(1);
                _la = this._input.LA(1);
                if(!(_la===SqlParser.ALL || _la===SqlParser.DISTINCT)) {
                    localctx.aggregator = this._errHandler.recoverInline(this);
                }
                else {
                	this._errHandler.reportMatch(this);
                    this.consume();
                }
            }

            this.state = 6070;
            this.functionArg();
            this.state = 6071;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 6073;
            this.match(SqlParser.COUNT);
            this.state = 6074;
            this.match(SqlParser.LR_BRACKET);
            this.state = 6080;
            this._errHandler.sync(this);
            switch(this._input.LA(1)) {
            case SqlParser.STAR:
                this.state = 6075;
                localctx.starArg = this.match(SqlParser.STAR);
                break;
            case SqlParser.ALL:
            case SqlParser.CASE:
            case SqlParser.CAST:
            case SqlParser.CONVERT:
            case SqlParser.CURRENT:
            case SqlParser.CURRENT_USER:
            case SqlParser.DATABASE:
            case SqlParser.DIAGNOSTICS:
            case SqlParser.EXISTS:
            case SqlParser.FALSE:
            case SqlParser.IF:
            case SqlParser.INSERT:
            case SqlParser.INTERVAL:
            case SqlParser.LEFT:
            case SqlParser.NOT:
            case SqlParser.NULL_LITERAL:
            case SqlParser.NUMBER:
            case SqlParser.REPLACE:
            case SqlParser.RIGHT:
            case SqlParser.STACKED:
            case SqlParser.TRUE:
            case SqlParser.VALUES:
            case SqlParser.DATE:
            case SqlParser.TIME:
            case SqlParser.TIMESTAMP:
            case SqlParser.DATETIME:
            case SqlParser.YEAR:
            case SqlParser.CHAR:
            case SqlParser.BINARY:
            case SqlParser.TEXT:
            case SqlParser.ENUM:
            case SqlParser.SERIAL:
            case SqlParser.JSON_VALID:
            case SqlParser.JSON_SCHEMA_VALID:
            case SqlParser.AVG:
            case SqlParser.BIT_AND:
            case SqlParser.BIT_OR:
            case SqlParser.BIT_XOR:
            case SqlParser.COUNT:
            case SqlParser.GROUP_CONCAT:
            case SqlParser.MAX:
            case SqlParser.MIN:
            case SqlParser.STD:
            case SqlParser.STDDEV:
            case SqlParser.STDDEV_POP:
            case SqlParser.STDDEV_SAMP:
            case SqlParser.SUM:
            case SqlParser.VAR_POP:
            case SqlParser.VAR_SAMP:
            case SqlParser.VARIANCE:
            case SqlParser.CURRENT_DATE:
            case SqlParser.CURRENT_TIME:
            case SqlParser.CURRENT_TIMESTAMP:
            case SqlParser.LOCALTIME:
            case SqlParser.CURDATE:
            case SqlParser.CURTIME:
            case SqlParser.DATE_ADD:
            case SqlParser.DATE_SUB:
            case SqlParser.EXTRACT:
            case SqlParser.LOCALTIMESTAMP:
            case SqlParser.NOW:
            case SqlParser.POSITION:
            case SqlParser.SUBSTR:
            case SqlParser.SUBSTRING:
            case SqlParser.SYSDATE:
            case SqlParser.TRIM:
            case SqlParser.UTC_DATE:
            case SqlParser.UTC_TIME:
            case SqlParser.UTC_TIMESTAMP:
            case SqlParser.ACCOUNT:
            case SqlParser.ACTION:
            case SqlParser.AFTER:
            case SqlParser.AGGREGATE:
            case SqlParser.ALGORITHM:
            case SqlParser.ANY:
            case SqlParser.AT:
            case SqlParser.AUTHORS:
            case SqlParser.AUTOCOMMIT:
            case SqlParser.AUTOEXTEND_SIZE:
            case SqlParser.AUTO_INCREMENT:
            case SqlParser.AVG_ROW_LENGTH:
            case SqlParser.BEGIN:
            case SqlParser.BINLOG:
            case SqlParser.BIT:
            case SqlParser.BLOCK:
            case SqlParser.BOOL:
            case SqlParser.BOOLEAN:
            case SqlParser.BTREE:
            case SqlParser.CACHE:
            case SqlParser.CASCADED:
            case SqlParser.CHAIN:
            case SqlParser.CHANGED:
            case SqlParser.CHANNEL:
            case SqlParser.CHECKSUM:
            case SqlParser.PAGE_CHECKSUM:
            case SqlParser.CIPHER:
            case SqlParser.CLASS_ORIGIN:
            case SqlParser.CLIENT:
            case SqlParser.CLOSE:
            case SqlParser.COALESCE:
            case SqlParser.CODE:
            case SqlParser.COLUMNS:
            case SqlParser.COLUMN_FORMAT:
            case SqlParser.COLUMN_NAME:
            case SqlParser.COMMENT:
            case SqlParser.COMMIT:
            case SqlParser.COMPACT:
            case SqlParser.COMPLETION:
            case SqlParser.COMPRESSED:
            case SqlParser.COMPRESSION:
            case SqlParser.CONCURRENT:
            case SqlParser.CONNECTION:
            case SqlParser.CONSISTENT:
            case SqlParser.CONSTRAINT_CATALOG:
            case SqlParser.CONSTRAINT_SCHEMA:
            case SqlParser.CONSTRAINT_NAME:
            case SqlParser.CONTAINS:
            case SqlParser.CONTEXT:
            case SqlParser.CONTRIBUTORS:
            case SqlParser.COPY:
            case SqlParser.CPU:
            case SqlParser.CURSOR_NAME:
            case SqlParser.DATA:
            case SqlParser.DATAFILE:
            case SqlParser.DEALLOCATE:
            case SqlParser.DEFAULT_AUTH:
            case SqlParser.DEFINER:
            case SqlParser.DELAY_KEY_WRITE:
            case SqlParser.DES_KEY_FILE:
            case SqlParser.DIRECTORY:
            case SqlParser.DISABLE:
            case SqlParser.DISCARD:
            case SqlParser.DISK:
            case SqlParser.DO:
            case SqlParser.DUMPFILE:
            case SqlParser.DUPLICATE:
            case SqlParser.DYNAMIC:
            case SqlParser.ENABLE:
            case SqlParser.ENCRYPTION:
            case SqlParser.END:
            case SqlParser.ENDS:
            case SqlParser.ENGINE:
            case SqlParser.ENGINES:
            case SqlParser.ERROR:
            case SqlParser.ERRORS:
            case SqlParser.ESCAPE:
            case SqlParser.EVEN:
            case SqlParser.EVENT:
            case SqlParser.EVENTS:
            case SqlParser.EVERY:
            case SqlParser.EXCHANGE:
            case SqlParser.EXCLUSIVE:
            case SqlParser.EXPIRE:
            case SqlParser.EXPORT:
            case SqlParser.EXTENDED:
            case SqlParser.EXTENT_SIZE:
            case SqlParser.FAST:
            case SqlParser.FAULTS:
            case SqlParser.FIELDS:
            case SqlParser.FILE_BLOCK_SIZE:
            case SqlParser.FILTER:
            case SqlParser.FIRST:
            case SqlParser.FIXED:
            case SqlParser.FLUSH:
            case SqlParser.FOLLOWS:
            case SqlParser.FOUND:
            case SqlParser.FULL:
            case SqlParser.FUNCTION:
            case SqlParser.GENERAL:
            case SqlParser.GLOBAL:
            case SqlParser.GRANTS:
            case SqlParser.GROUP_REPLICATION:
            case SqlParser.HANDLER:
            case SqlParser.HASH:
            case SqlParser.HELP:
            case SqlParser.HOST:
            case SqlParser.HOSTS:
            case SqlParser.IDENTIFIED:
            case SqlParser.IGNORE_SERVER_IDS:
            case SqlParser.IMPORT:
            case SqlParser.INDEXES:
            case SqlParser.INITIAL_SIZE:
            case SqlParser.INPLACE:
            case SqlParser.INSERT_METHOD:
            case SqlParser.INSTALL:
            case SqlParser.INSTANCE:
            case SqlParser.INVISIBLE:
            case SqlParser.INVOKER:
            case SqlParser.IO:
            case SqlParser.IO_THREAD:
            case SqlParser.IPC:
            case SqlParser.ISOLATION:
            case SqlParser.ISSUER:
            case SqlParser.JSON:
            case SqlParser.KEY_BLOCK_SIZE:
            case SqlParser.LANGUAGE:
            case SqlParser.LAST:
            case SqlParser.LEAVES:
            case SqlParser.LESS:
            case SqlParser.LEVEL:
            case SqlParser.LIST:
            case SqlParser.LOCAL:
            case SqlParser.LOGFILE:
            case SqlParser.LOGS:
            case SqlParser.MASTER:
            case SqlParser.MASTER_AUTO_POSITION:
            case SqlParser.MASTER_CONNECT_RETRY:
            case SqlParser.MASTER_DELAY:
            case SqlParser.MASTER_HEARTBEAT_PERIOD:
            case SqlParser.MASTER_HOST:
            case SqlParser.MASTER_LOG_FILE:
            case SqlParser.MASTER_LOG_POS:
            case SqlParser.MASTER_PASSWORD:
            case SqlParser.MASTER_PORT:
            case SqlParser.MASTER_RETRY_COUNT:
            case SqlParser.MASTER_SSL:
            case SqlParser.MASTER_SSL_CA:
            case SqlParser.MASTER_SSL_CAPATH:
            case SqlParser.MASTER_SSL_CERT:
            case SqlParser.MASTER_SSL_CIPHER:
            case SqlParser.MASTER_SSL_CRL:
            case SqlParser.MASTER_SSL_CRLPATH:
            case SqlParser.MASTER_SSL_KEY:
            case SqlParser.MASTER_TLS_VERSION:
            case SqlParser.MASTER_USER:
            case SqlParser.MAX_CONNECTIONS_PER_HOUR:
            case SqlParser.MAX_QUERIES_PER_HOUR:
            case SqlParser.MAX_ROWS:
            case SqlParser.MAX_SIZE:
            case SqlParser.MAX_UPDATES_PER_HOUR:
            case SqlParser.MAX_USER_CONNECTIONS:
            case SqlParser.MEDIUM:
            case SqlParser.MERGE:
            case SqlParser.MESSAGE_TEXT:
            case SqlParser.MID:
            case SqlParser.MIGRATE:
            case SqlParser.MIN_ROWS:
            case SqlParser.MODE:
            case SqlParser.MODIFY:
            case SqlParser.MUTEX:
            case SqlParser.MYSQL:
            case SqlParser.MYSQL_ERRNO:
            case SqlParser.NAME:
            case SqlParser.NAMES:
            case SqlParser.NCHAR:
            case SqlParser.NEVER:
            case SqlParser.NEXT:
            case SqlParser.NO:
            case SqlParser.NODEGROUP:
            case SqlParser.NONE:
            case SqlParser.OFFLINE:
            case SqlParser.OFFSET:
            case SqlParser.OJ:
            case SqlParser.OLD_PASSWORD:
            case SqlParser.ONE:
            case SqlParser.ONLINE:
            case SqlParser.ONLY:
            case SqlParser.OPEN:
            case SqlParser.OPTIMIZER_COSTS:
            case SqlParser.OPTIONS:
            case SqlParser.OWNER:
            case SqlParser.PACK_KEYS:
            case SqlParser.PAGE:
            case SqlParser.PARSER:
            case SqlParser.PARTIAL:
            case SqlParser.PARTITIONING:
            case SqlParser.PARTITIONS:
            case SqlParser.PASSWORD:
            case SqlParser.PHASE:
            case SqlParser.PLUGIN:
            case SqlParser.PLUGIN_DIR:
            case SqlParser.PLUGINS:
            case SqlParser.PORT:
            case SqlParser.PRECEDES:
            case SqlParser.PREPARE:
            case SqlParser.PRESERVE:
            case SqlParser.PREV:
            case SqlParser.PROCESSLIST:
            case SqlParser.PROFILE:
            case SqlParser.PROFILES:
            case SqlParser.PROXY:
            case SqlParser.QUERY:
            case SqlParser.QUICK:
            case SqlParser.REBUILD:
            case SqlParser.RECOVER:
            case SqlParser.REDO_BUFFER_SIZE:
            case SqlParser.REDUNDANT:
            case SqlParser.RELAY:
            case SqlParser.RELAY_LOG_FILE:
            case SqlParser.RELAY_LOG_POS:
            case SqlParser.RELAYLOG:
            case SqlParser.REMOVE:
            case SqlParser.REORGANIZE:
            case SqlParser.REPAIR:
            case SqlParser.REPLICATE_DO_DB:
            case SqlParser.REPLICATE_DO_TABLE:
            case SqlParser.REPLICATE_IGNORE_DB:
            case SqlParser.REPLICATE_IGNORE_TABLE:
            case SqlParser.REPLICATE_REWRITE_DB:
            case SqlParser.REPLICATE_WILD_DO_TABLE:
            case SqlParser.REPLICATE_WILD_IGNORE_TABLE:
            case SqlParser.REPLICATION:
            case SqlParser.RESET:
            case SqlParser.RESUME:
            case SqlParser.RETURNED_SQLSTATE:
            case SqlParser.RETURNS:
            case SqlParser.ROLE:
            case SqlParser.ROLLBACK:
            case SqlParser.ROLLUP:
            case SqlParser.ROTATE:
            case SqlParser.ROW:
            case SqlParser.ROWS:
            case SqlParser.ROW_FORMAT:
            case SqlParser.SAVEPOINT:
            case SqlParser.SCHEDULE:
            case SqlParser.SECURITY:
            case SqlParser.SERVER:
            case SqlParser.SESSION:
            case SqlParser.SHARE:
            case SqlParser.SHARED:
            case SqlParser.SIGNED:
            case SqlParser.SIMPLE:
            case SqlParser.SLAVE:
            case SqlParser.SLOW:
            case SqlParser.SNAPSHOT:
            case SqlParser.SOCKET:
            case SqlParser.SOME:
            case SqlParser.SONAME:
            case SqlParser.SOUNDS:
            case SqlParser.SOURCE:
            case SqlParser.SQL_AFTER_GTIDS:
            case SqlParser.SQL_AFTER_MTS_GAPS:
            case SqlParser.SQL_BEFORE_GTIDS:
            case SqlParser.SQL_BUFFER_RESULT:
            case SqlParser.SQL_CACHE:
            case SqlParser.SQL_NO_CACHE:
            case SqlParser.SQL_THREAD:
            case SqlParser.START:
            case SqlParser.STARTS:
            case SqlParser.STATS_AUTO_RECALC:
            case SqlParser.STATS_PERSISTENT:
            case SqlParser.STATS_SAMPLE_PAGES:
            case SqlParser.STATUS:
            case SqlParser.STOP:
            case SqlParser.STORAGE:
            case SqlParser.STRING:
            case SqlParser.SUBCLASS_ORIGIN:
            case SqlParser.SUBJECT:
            case SqlParser.SUBPARTITION:
            case SqlParser.SUBPARTITIONS:
            case SqlParser.SUSPEND:
            case SqlParser.SWAPS:
            case SqlParser.SWITCHES:
            case SqlParser.TABLE_NAME:
            case SqlParser.TABLESPACE:
            case SqlParser.TEMPORARY:
            case SqlParser.TEMPTABLE:
            case SqlParser.THAN:
            case SqlParser.TRADITIONAL:
            case SqlParser.TRANSACTION:
            case SqlParser.TRANSACTIONAL:
            case SqlParser.TRIGGERS:
            case SqlParser.TRUNCATE:
            case SqlParser.UNDEFINED:
            case SqlParser.UNDOFILE:
            case SqlParser.UNDO_BUFFER_SIZE:
            case SqlParser.UNINSTALL:
            case SqlParser.UNKNOWN:
            case SqlParser.UNTIL:
            case SqlParser.UPGRADE:
            case SqlParser.USER:
            case SqlParser.USE_FRM:
            case SqlParser.USER_RESOURCES:
            case SqlParser.VALIDATION:
            case SqlParser.VALUE:
            case SqlParser.VARIABLES:
            case SqlParser.VIEW:
            case SqlParser.VISIBLE:
            case SqlParser.WAIT:
            case SqlParser.WARNINGS:
            case SqlParser.WITHOUT:
            case SqlParser.WORK:
            case SqlParser.WRAPPER:
            case SqlParser.X509:
            case SqlParser.XA:
            case SqlParser.XML:
            case SqlParser.INTERNAL:
            case SqlParser.QUARTER:
            case SqlParser.MONTH:
            case SqlParser.DAY:
            case SqlParser.HOUR:
            case SqlParser.MINUTE:
            case SqlParser.WEEK:
            case SqlParser.SECOND:
            case SqlParser.MICROSECOND:
            case SqlParser.TABLES:
            case SqlParser.ROUTINE:
            case SqlParser.EXECUTE:
            case SqlParser.FILE:
            case SqlParser.PROCESS:
            case SqlParser.RELOAD:
            case SqlParser.SHUTDOWN:
            case SqlParser.SUPER:
            case SqlParser.PRIVILEGES:
            case SqlParser.AUDIT_ADMIN:
            case SqlParser.BACKUP_ADMIN:
            case SqlParser.BINLOG_ADMIN:
            case SqlParser.BINLOG_ENCRYPTION_ADMIN:
            case SqlParser.CLONE_ADMIN:
            case SqlParser.CONNECTION_ADMIN:
            case SqlParser.ENCRYPTION_KEY_ADMIN:
            case SqlParser.FIREWALL_ADMIN:
            case SqlParser.FIREWALL_USER:
            case SqlParser.GROUP_REPLICATION_ADMIN:
            case SqlParser.INNODB_REDO_LOG_ARCHIVE:
            case SqlParser.NDB_STORED_USER:
            case SqlParser.PERSIST_RO_VARIABLES_ADMIN:
            case SqlParser.REPLICATION_APPLIER:
            case SqlParser.REPLICATION_SLAVE_ADMIN:
            case SqlParser.RESOURCE_GROUP_ADMIN:
            case SqlParser.RESOURCE_GROUP_USER:
            case SqlParser.ROLE_ADMIN:
            case SqlParser.SESSION_VARIABLES_ADMIN:
            case SqlParser.SET_USER_ID:
            case SqlParser.SHOW_ROUTINE:
            case SqlParser.SYSTEM_VARIABLES_ADMIN:
            case SqlParser.TABLE_ENCRYPTION_ADMIN:
            case SqlParser.VERSION_TOKEN_ADMIN:
            case SqlParser.XA_RECOVER_ADMIN:
            case SqlParser.ARMSCII8:
            case SqlParser.ASCII:
            case SqlParser.BIG5:
            case SqlParser.CP1250:
            case SqlParser.CP1251:
            case SqlParser.CP1256:
            case SqlParser.CP1257:
            case SqlParser.CP850:
            case SqlParser.CP852:
            case SqlParser.CP866:
            case SqlParser.CP932:
            case SqlParser.DEC8:
            case SqlParser.EUCJPMS:
            case SqlParser.EUCKR:
            case SqlParser.GB2312:
            case SqlParser.GBK:
            case SqlParser.GEOSTD8:
            case SqlParser.GREEK:
            case SqlParser.HEBREW:
            case SqlParser.HP8:
            case SqlParser.KEYBCS2:
            case SqlParser.KOI8R:
            case SqlParser.KOI8U:
            case SqlParser.LATIN1:
            case SqlParser.LATIN2:
            case SqlParser.LATIN5:
            case SqlParser.LATIN7:
            case SqlParser.MACCE:
            case SqlParser.MACROMAN:
            case SqlParser.SJIS:
            case SqlParser.SWE7:
            case SqlParser.TIS620:
            case SqlParser.UCS2:
            case SqlParser.UJIS:
            case SqlParser.UTF16:
            case SqlParser.UTF16LE:
            case SqlParser.UTF32:
            case SqlParser.UTF8:
            case SqlParser.UTF8MB3:
            case SqlParser.UTF8MB4:
            case SqlParser.ARCHIVE:
            case SqlParser.BLACKHOLE:
            case SqlParser.CSV:
            case SqlParser.FEDERATED:
            case SqlParser.INNODB:
            case SqlParser.MEMORY:
            case SqlParser.MRG_MYISAM:
            case SqlParser.MYISAM:
            case SqlParser.NDB:
            case SqlParser.NDBCLUSTER:
            case SqlParser.PERFORMANCE_SCHEMA:
            case SqlParser.TOKUDB:
            case SqlParser.REPEATABLE:
            case SqlParser.COMMITTED:
            case SqlParser.UNCOMMITTED:
            case SqlParser.SERIALIZABLE:
            case SqlParser.GEOMETRYCOLLECTION:
            case SqlParser.LINESTRING:
            case SqlParser.MULTILINESTRING:
            case SqlParser.MULTIPOINT:
            case SqlParser.MULTIPOLYGON:
            case SqlParser.POINT:
            case SqlParser.POLYGON:
            case SqlParser.ABS:
            case SqlParser.ACOS:
            case SqlParser.ADDDATE:
            case SqlParser.ADDTIME:
            case SqlParser.AES_DECRYPT:
            case SqlParser.AES_ENCRYPT:
            case SqlParser.AREA:
            case SqlParser.ASBINARY:
            case SqlParser.ASIN:
            case SqlParser.ASTEXT:
            case SqlParser.ASWKB:
            case SqlParser.ASWKT:
            case SqlParser.ASYMMETRIC_DECRYPT:
            case SqlParser.ASYMMETRIC_DERIVE:
            case SqlParser.ASYMMETRIC_ENCRYPT:
            case SqlParser.ASYMMETRIC_SIGN:
            case SqlParser.ASYMMETRIC_VERIFY:
            case SqlParser.ATAN:
            case SqlParser.ATAN2:
            case SqlParser.BENCHMARK:
            case SqlParser.BIN:
            case SqlParser.BIT_COUNT:
            case SqlParser.BIT_LENGTH:
            case SqlParser.BUFFER:
            case SqlParser.CATALOG_NAME:
            case SqlParser.CEIL:
            case SqlParser.CEILING:
            case SqlParser.CENTROID:
            case SqlParser.CHARACTER_LENGTH:
            case SqlParser.CHARSET:
            case SqlParser.CHAR_LENGTH:
            case SqlParser.COERCIBILITY:
            case SqlParser.COLLATION:
            case SqlParser.COMPRESS:
            case SqlParser.CONCAT:
            case SqlParser.CONCAT_WS:
            case SqlParser.CONNECTION_ID:
            case SqlParser.CONV:
            case SqlParser.CONVERT_TZ:
            case SqlParser.COS:
            case SqlParser.COT:
            case SqlParser.CRC32:
            case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
            case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
            case SqlParser.CREATE_DH_PARAMETERS:
            case SqlParser.CREATE_DIGEST:
            case SqlParser.CROSSES:
            case SqlParser.DATEDIFF:
            case SqlParser.DATE_FORMAT:
            case SqlParser.DAYNAME:
            case SqlParser.DAYOFMONTH:
            case SqlParser.DAYOFWEEK:
            case SqlParser.DAYOFYEAR:
            case SqlParser.DECODE:
            case SqlParser.DEGREES:
            case SqlParser.DES_DECRYPT:
            case SqlParser.DES_ENCRYPT:
            case SqlParser.DIMENSION:
            case SqlParser.DISJOINT:
            case SqlParser.ELT:
            case SqlParser.ENCODE:
            case SqlParser.ENCRYPT:
            case SqlParser.ENDPOINT:
            case SqlParser.ENVELOPE:
            case SqlParser.EQUALS:
            case SqlParser.EXP:
            case SqlParser.EXPORT_SET:
            case SqlParser.EXTERIORRING:
            case SqlParser.EXTRACTVALUE:
            case SqlParser.FIELD:
            case SqlParser.FIND_IN_SET:
            case SqlParser.FLOOR:
            case SqlParser.FORMAT:
            case SqlParser.FOUND_ROWS:
            case SqlParser.FROM_BASE64:
            case SqlParser.FROM_DAYS:
            case SqlParser.FROM_UNIXTIME:
            case SqlParser.GEOMCOLLFROMTEXT:
            case SqlParser.GEOMCOLLFROMWKB:
            case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.GEOMETRYFROMTEXT:
            case SqlParser.GEOMETRYFROMWKB:
            case SqlParser.GEOMETRYN:
            case SqlParser.GEOMETRYTYPE:
            case SqlParser.GEOMFROMTEXT:
            case SqlParser.GEOMFROMWKB:
            case SqlParser.GET_FORMAT:
            case SqlParser.GET_LOCK:
            case SqlParser.GLENGTH:
            case SqlParser.GREATEST:
            case SqlParser.GTID_SUBSET:
            case SqlParser.GTID_SUBTRACT:
            case SqlParser.HEX:
            case SqlParser.IFNULL:
            case SqlParser.INET6_ATON:
            case SqlParser.INET6_NTOA:
            case SqlParser.INET_ATON:
            case SqlParser.INET_NTOA:
            case SqlParser.INSTR:
            case SqlParser.INTERIORRINGN:
            case SqlParser.INTERSECTS:
            case SqlParser.ISCLOSED:
            case SqlParser.ISEMPTY:
            case SqlParser.ISNULL:
            case SqlParser.ISSIMPLE:
            case SqlParser.IS_FREE_LOCK:
            case SqlParser.IS_IPV4:
            case SqlParser.IS_IPV4_COMPAT:
            case SqlParser.IS_IPV4_MAPPED:
            case SqlParser.IS_IPV6:
            case SqlParser.IS_USED_LOCK:
            case SqlParser.LAST_INSERT_ID:
            case SqlParser.LCASE:
            case SqlParser.LEAST:
            case SqlParser.LENGTH:
            case SqlParser.LINEFROMTEXT:
            case SqlParser.LINEFROMWKB:
            case SqlParser.LINESTRINGFROMTEXT:
            case SqlParser.LINESTRINGFROMWKB:
            case SqlParser.LN:
            case SqlParser.LOAD_FILE:
            case SqlParser.LOCATE:
            case SqlParser.LOG:
            case SqlParser.LOG10:
            case SqlParser.LOG2:
            case SqlParser.LOWER:
            case SqlParser.LPAD:
            case SqlParser.LTRIM:
            case SqlParser.MAKEDATE:
            case SqlParser.MAKETIME:
            case SqlParser.MAKE_SET:
            case SqlParser.MASTER_POS_WAIT:
            case SqlParser.MBRCONTAINS:
            case SqlParser.MBRDISJOINT:
            case SqlParser.MBREQUAL:
            case SqlParser.MBRINTERSECTS:
            case SqlParser.MBROVERLAPS:
            case SqlParser.MBRTOUCHES:
            case SqlParser.MBRWITHIN:
            case SqlParser.MD5:
            case SqlParser.MLINEFROMTEXT:
            case SqlParser.MLINEFROMWKB:
            case SqlParser.MONTHNAME:
            case SqlParser.MPOINTFROMTEXT:
            case SqlParser.MPOINTFROMWKB:
            case SqlParser.MPOLYFROMTEXT:
            case SqlParser.MPOLYFROMWKB:
            case SqlParser.MULTILINESTRINGFROMTEXT:
            case SqlParser.MULTILINESTRINGFROMWKB:
            case SqlParser.MULTIPOINTFROMTEXT:
            case SqlParser.MULTIPOINTFROMWKB:
            case SqlParser.MULTIPOLYGONFROMTEXT:
            case SqlParser.MULTIPOLYGONFROMWKB:
            case SqlParser.NAME_CONST:
            case SqlParser.NULLIF:
            case SqlParser.NUMGEOMETRIES:
            case SqlParser.NUMINTERIORRINGS:
            case SqlParser.NUMPOINTS:
            case SqlParser.OCT:
            case SqlParser.OCTET_LENGTH:
            case SqlParser.ORD:
            case SqlParser.OVERLAPS:
            case SqlParser.PERIOD_ADD:
            case SqlParser.PERIOD_DIFF:
            case SqlParser.PI:
            case SqlParser.POINTFROMTEXT:
            case SqlParser.POINTFROMWKB:
            case SqlParser.POINTN:
            case SqlParser.POLYFROMTEXT:
            case SqlParser.POLYFROMWKB:
            case SqlParser.POLYGONFROMTEXT:
            case SqlParser.POLYGONFROMWKB:
            case SqlParser.POW:
            case SqlParser.POWER:
            case SqlParser.QUOTE:
            case SqlParser.RADIANS:
            case SqlParser.RAND:
            case SqlParser.RANDOM_BYTES:
            case SqlParser.RELEASE_LOCK:
            case SqlParser.REVERSE:
            case SqlParser.ROUND:
            case SqlParser.ROW_COUNT:
            case SqlParser.RPAD:
            case SqlParser.RTRIM:
            case SqlParser.SEC_TO_TIME:
            case SqlParser.SESSION_USER:
            case SqlParser.SHA:
            case SqlParser.SHA1:
            case SqlParser.SHA2:
            case SqlParser.SCHEMA_NAME:
            case SqlParser.SIGN:
            case SqlParser.SIN:
            case SqlParser.SLEEP:
            case SqlParser.SOUNDEX:
            case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
            case SqlParser.SQRT:
            case SqlParser.SRID:
            case SqlParser.STARTPOINT:
            case SqlParser.STRCMP:
            case SqlParser.STR_TO_DATE:
            case SqlParser.ST_AREA:
            case SqlParser.ST_ASBINARY:
            case SqlParser.ST_ASTEXT:
            case SqlParser.ST_ASWKB:
            case SqlParser.ST_ASWKT:
            case SqlParser.ST_BUFFER:
            case SqlParser.ST_CENTROID:
            case SqlParser.ST_CONTAINS:
            case SqlParser.ST_CROSSES:
            case SqlParser.ST_DIFFERENCE:
            case SqlParser.ST_DIMENSION:
            case SqlParser.ST_DISJOINT:
            case SqlParser.ST_DISTANCE:
            case SqlParser.ST_ENDPOINT:
            case SqlParser.ST_ENVELOPE:
            case SqlParser.ST_EQUALS:
            case SqlParser.ST_EXTERIORRING:
            case SqlParser.ST_GEOMCOLLFROMTEXT:
            case SqlParser.ST_GEOMCOLLFROMTXT:
            case SqlParser.ST_GEOMCOLLFROMWKB:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
            case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
            case SqlParser.ST_GEOMETRYFROMTEXT:
            case SqlParser.ST_GEOMETRYFROMWKB:
            case SqlParser.ST_GEOMETRYN:
            case SqlParser.ST_GEOMETRYTYPE:
            case SqlParser.ST_GEOMFROMTEXT:
            case SqlParser.ST_GEOMFROMWKB:
            case SqlParser.ST_INTERIORRINGN:
            case SqlParser.ST_INTERSECTION:
            case SqlParser.ST_INTERSECTS:
            case SqlParser.ST_ISCLOSED:
            case SqlParser.ST_ISEMPTY:
            case SqlParser.ST_ISSIMPLE:
            case SqlParser.ST_LINEFROMTEXT:
            case SqlParser.ST_LINEFROMWKB:
            case SqlParser.ST_LINESTRINGFROMTEXT:
            case SqlParser.ST_LINESTRINGFROMWKB:
            case SqlParser.ST_NUMGEOMETRIES:
            case SqlParser.ST_NUMINTERIORRING:
            case SqlParser.ST_NUMINTERIORRINGS:
            case SqlParser.ST_NUMPOINTS:
            case SqlParser.ST_OVERLAPS:
            case SqlParser.ST_POINTFROMTEXT:
            case SqlParser.ST_POINTFROMWKB:
            case SqlParser.ST_POINTN:
            case SqlParser.ST_POLYFROMTEXT:
            case SqlParser.ST_POLYFROMWKB:
            case SqlParser.ST_POLYGONFROMTEXT:
            case SqlParser.ST_POLYGONFROMWKB:
            case SqlParser.ST_SRID:
            case SqlParser.ST_STARTPOINT:
            case SqlParser.ST_SYMDIFFERENCE:
            case SqlParser.ST_TOUCHES:
            case SqlParser.ST_UNION:
            case SqlParser.ST_WITHIN:
            case SqlParser.ST_X:
            case SqlParser.ST_Y:
            case SqlParser.SUBDATE:
            case SqlParser.SUBSTRING_INDEX:
            case SqlParser.SUBTIME:
            case SqlParser.SYSTEM_USER:
            case SqlParser.TAN:
            case SqlParser.TIMEDIFF:
            case SqlParser.TIMESTAMPADD:
            case SqlParser.TIMESTAMPDIFF:
            case SqlParser.TIME_FORMAT:
            case SqlParser.TIME_TO_SEC:
            case SqlParser.TOUCHES:
            case SqlParser.TO_BASE64:
            case SqlParser.TO_DAYS:
            case SqlParser.TO_SECONDS:
            case SqlParser.UCASE:
            case SqlParser.UNCOMPRESS:
            case SqlParser.UNCOMPRESSED_LENGTH:
            case SqlParser.UNHEX:
            case SqlParser.UNIX_TIMESTAMP:
            case SqlParser.UPDATEXML:
            case SqlParser.UPPER:
            case SqlParser.UUID:
            case SqlParser.UUID_SHORT:
            case SqlParser.VALIDATE_PASSWORD_STRENGTH:
            case SqlParser.VERSION:
            case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
            case SqlParser.WEEKDAY:
            case SqlParser.WEEKOFYEAR:
            case SqlParser.WEIGHT_STRING:
            case SqlParser.WITHIN:
            case SqlParser.YEARWEEK:
            case SqlParser.Y_FUNCTION:
            case SqlParser.X_FUNCTION:
            case SqlParser.PLUS:
            case SqlParser.MINUS:
            case SqlParser.EXCLAMATION_SYMBOL:
            case SqlParser.BIT_NOT_OP:
            case SqlParser.LR_BRACKET:
            case SqlParser.ZERO_DECIMAL:
            case SqlParser.ONE_DECIMAL:
            case SqlParser.TWO_DECIMAL:
            case SqlParser.CHARSET_REVERSE_QOUTE_STRING:
            case SqlParser.START_NATIONAL_STRING_LITERAL:
            case SqlParser.STRING_LITERAL:
            case SqlParser.DECIMAL_LITERAL:
            case SqlParser.HEXADECIMAL_LITERAL:
            case SqlParser.REAL_LITERAL:
            case SqlParser.NULL_SPEC_LITERAL:
            case SqlParser.BIT_STRING:
            case SqlParser.STRING_CHARSET_NAME:
            case SqlParser.ID:
            case SqlParser.REVERSE_QUOTE_ID:
            case SqlParser.LOCAL_ID:
            case SqlParser.GLOBAL_ID:
                this.state = 6077;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                if(_la===SqlParser.ALL) {
                    this.state = 6076;
                    localctx.aggregator = this.match(SqlParser.ALL);
                }

                this.state = 6079;
                this.functionArg();
                break;
            default:
                throw new antlr4.error.NoViableAltException(this);
            }
            this.state = 6082;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 6083;
            this.match(SqlParser.COUNT);
            this.state = 6084;
            this.match(SqlParser.LR_BRACKET);
            this.state = 6085;
            localctx.aggregator = this.match(SqlParser.DISTINCT);
            this.state = 6086;
            this.functionArgs();
            this.state = 6087;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 6089;
            _la = this._input.LA(1);
            if(!(((((_la - 236)) & ~0x1f) == 0 && ((1 << (_la - 236)) & ((1 << (SqlParser.BIT_AND - 236)) | (1 << (SqlParser.BIT_OR - 236)) | (1 << (SqlParser.BIT_XOR - 236)) | (1 << (SqlParser.STD - 236)) | (1 << (SqlParser.STDDEV - 236)) | (1 << (SqlParser.STDDEV_POP - 236)) | (1 << (SqlParser.STDDEV_SAMP - 236)) | (1 << (SqlParser.VAR_POP - 236)) | (1 << (SqlParser.VAR_SAMP - 236)) | (1 << (SqlParser.VARIANCE - 236)))) !== 0))) {
            this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 6090;
            this.match(SqlParser.LR_BRACKET);
            this.state = 6092;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ALL) {
                this.state = 6091;
                localctx.aggregator = this.match(SqlParser.ALL);
            }

            this.state = 6094;
            this.functionArg();
            this.state = 6095;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 5:
            this.enterOuterAlt(localctx, 5);
            this.state = 6097;
            this.match(SqlParser.GROUP_CONCAT);
            this.state = 6098;
            this.match(SqlParser.LR_BRACKET);
            this.state = 6100;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.DISTINCT) {
                this.state = 6099;
                localctx.aggregator = this.match(SqlParser.DISTINCT);
            }

            this.state = 6102;
            this.functionArgs();
            this.state = 6113;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.ORDER) {
                this.state = 6103;
                this.match(SqlParser.ORDER);
                this.state = 6104;
                this.match(SqlParser.BY);
                this.state = 6105;
                this.orderByExpression();
                this.state = 6110;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
                while(_la===SqlParser.COMMA) {
                    this.state = 6106;
                    this.match(SqlParser.COMMA);
                    this.state = 6107;
                    this.orderByExpression();
                    this.state = 6112;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                }
            }

            this.state = 6117;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.SEPARATOR) {
                this.state = 6115;
                this.match(SqlParser.SEPARATOR);
                this.state = 6116;
                localctx.separator = this.match(SqlParser.STRING_LITERAL);
            }

            this.state = 6119;
            this.match(SqlParser.RR_BRACKET);
            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 ScalarFunctionNameContext(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_scalarFunctionName;
    return this;
}

ScalarFunctionNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ScalarFunctionNameContext.prototype.constructor = ScalarFunctionNameContext;

ScalarFunctionNameContext.prototype.functionNameBase = function() {
    return this.getTypedRuleContext(FunctionNameBaseContext,0);
};

ScalarFunctionNameContext.prototype.ASCII = function() {
    return this.getToken(SqlParser.ASCII, 0);
};

ScalarFunctionNameContext.prototype.CURDATE = function() {
    return this.getToken(SqlParser.CURDATE, 0);
};

ScalarFunctionNameContext.prototype.CURRENT_DATE = function() {
    return this.getToken(SqlParser.CURRENT_DATE, 0);
};

ScalarFunctionNameContext.prototype.CURRENT_TIME = function() {
    return this.getToken(SqlParser.CURRENT_TIME, 0);
};

ScalarFunctionNameContext.prototype.CURRENT_TIMESTAMP = function() {
    return this.getToken(SqlParser.CURRENT_TIMESTAMP, 0);
};

ScalarFunctionNameContext.prototype.CURTIME = function() {
    return this.getToken(SqlParser.CURTIME, 0);
};

ScalarFunctionNameContext.prototype.DATE_ADD = function() {
    return this.getToken(SqlParser.DATE_ADD, 0);
};

ScalarFunctionNameContext.prototype.DATE_SUB = function() {
    return this.getToken(SqlParser.DATE_SUB, 0);
};

ScalarFunctionNameContext.prototype.IF = function() {
    return this.getToken(SqlParser.IF, 0);
};

ScalarFunctionNameContext.prototype.INSERT = function() {
    return this.getToken(SqlParser.INSERT, 0);
};

ScalarFunctionNameContext.prototype.LOCALTIME = function() {
    return this.getToken(SqlParser.LOCALTIME, 0);
};

ScalarFunctionNameContext.prototype.LOCALTIMESTAMP = function() {
    return this.getToken(SqlParser.LOCALTIMESTAMP, 0);
};

ScalarFunctionNameContext.prototype.MID = function() {
    return this.getToken(SqlParser.MID, 0);
};

ScalarFunctionNameContext.prototype.NOW = function() {
    return this.getToken(SqlParser.NOW, 0);
};

ScalarFunctionNameContext.prototype.REPLACE = function() {
    return this.getToken(SqlParser.REPLACE, 0);
};

ScalarFunctionNameContext.prototype.SUBSTR = function() {
    return this.getToken(SqlParser.SUBSTR, 0);
};

ScalarFunctionNameContext.prototype.SUBSTRING = function() {
    return this.getToken(SqlParser.SUBSTRING, 0);
};

ScalarFunctionNameContext.prototype.SYSDATE = function() {
    return this.getToken(SqlParser.SYSDATE, 0);
};

ScalarFunctionNameContext.prototype.TRIM = function() {
    return this.getToken(SqlParser.TRIM, 0);
};

ScalarFunctionNameContext.prototype.UTC_DATE = function() {
    return this.getToken(SqlParser.UTC_DATE, 0);
};

ScalarFunctionNameContext.prototype.UTC_TIME = function() {
    return this.getToken(SqlParser.UTC_TIME, 0);
};

ScalarFunctionNameContext.prototype.UTC_TIMESTAMP = function() {
    return this.getToken(SqlParser.UTC_TIMESTAMP, 0);
};

ScalarFunctionNameContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterScalarFunctionName(this);
	}
};

ScalarFunctionNameContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitScalarFunctionName(this);
	}
};

ScalarFunctionNameContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitScalarFunctionName(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.ScalarFunctionNameContext = ScalarFunctionNameContext;

SqlParser.prototype.scalarFunctionName = function() {

    var localctx = new ScalarFunctionNameContext(this, this._ctx, this.state);
    this.enterRule(localctx, 594, SqlParser.RULE_scalarFunctionName);
    try {
        this.state = 6146;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.DATABASE:
        case SqlParser.LEFT:
        case SqlParser.RIGHT:
        case SqlParser.DATE:
        case SqlParser.TIME:
        case SqlParser.TIMESTAMP:
        case SqlParser.YEAR:
        case SqlParser.JSON_VALID:
        case SqlParser.JSON_SCHEMA_VALID:
        case SqlParser.COUNT:
        case SqlParser.POSITION:
        case SqlParser.INVISIBLE:
        case SqlParser.VISIBLE:
        case SqlParser.QUARTER:
        case SqlParser.MONTH:
        case SqlParser.DAY:
        case SqlParser.HOUR:
        case SqlParser.MINUTE:
        case SqlParser.WEEK:
        case SqlParser.SECOND:
        case SqlParser.MICROSECOND:
        case SqlParser.SESSION_VARIABLES_ADMIN:
        case SqlParser.GEOMETRYCOLLECTION:
        case SqlParser.LINESTRING:
        case SqlParser.MULTILINESTRING:
        case SqlParser.MULTIPOINT:
        case SqlParser.MULTIPOLYGON:
        case SqlParser.POINT:
        case SqlParser.POLYGON:
        case SqlParser.ABS:
        case SqlParser.ACOS:
        case SqlParser.ADDDATE:
        case SqlParser.ADDTIME:
        case SqlParser.AES_DECRYPT:
        case SqlParser.AES_ENCRYPT:
        case SqlParser.AREA:
        case SqlParser.ASBINARY:
        case SqlParser.ASIN:
        case SqlParser.ASTEXT:
        case SqlParser.ASWKB:
        case SqlParser.ASWKT:
        case SqlParser.ASYMMETRIC_DECRYPT:
        case SqlParser.ASYMMETRIC_DERIVE:
        case SqlParser.ASYMMETRIC_ENCRYPT:
        case SqlParser.ASYMMETRIC_SIGN:
        case SqlParser.ASYMMETRIC_VERIFY:
        case SqlParser.ATAN:
        case SqlParser.ATAN2:
        case SqlParser.BENCHMARK:
        case SqlParser.BIN:
        case SqlParser.BIT_COUNT:
        case SqlParser.BIT_LENGTH:
        case SqlParser.BUFFER:
        case SqlParser.CEIL:
        case SqlParser.CEILING:
        case SqlParser.CENTROID:
        case SqlParser.CHARACTER_LENGTH:
        case SqlParser.CHARSET:
        case SqlParser.CHAR_LENGTH:
        case SqlParser.COERCIBILITY:
        case SqlParser.COLLATION:
        case SqlParser.COMPRESS:
        case SqlParser.CONCAT:
        case SqlParser.CONCAT_WS:
        case SqlParser.CONNECTION_ID:
        case SqlParser.CONV:
        case SqlParser.CONVERT_TZ:
        case SqlParser.COS:
        case SqlParser.COT:
        case SqlParser.CRC32:
        case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY:
        case SqlParser.CREATE_ASYMMETRIC_PUB_KEY:
        case SqlParser.CREATE_DH_PARAMETERS:
        case SqlParser.CREATE_DIGEST:
        case SqlParser.CROSSES:
        case SqlParser.DATEDIFF:
        case SqlParser.DATE_FORMAT:
        case SqlParser.DAYNAME:
        case SqlParser.DAYOFMONTH:
        case SqlParser.DAYOFWEEK:
        case SqlParser.DAYOFYEAR:
        case SqlParser.DECODE:
        case SqlParser.DEGREES:
        case SqlParser.DES_DECRYPT:
        case SqlParser.DES_ENCRYPT:
        case SqlParser.DIMENSION:
        case SqlParser.DISJOINT:
        case SqlParser.ELT:
        case SqlParser.ENCODE:
        case SqlParser.ENCRYPT:
        case SqlParser.ENDPOINT:
        case SqlParser.ENVELOPE:
        case SqlParser.EQUALS:
        case SqlParser.EXP:
        case SqlParser.EXPORT_SET:
        case SqlParser.EXTERIORRING:
        case SqlParser.EXTRACTVALUE:
        case SqlParser.FIELD:
        case SqlParser.FIND_IN_SET:
        case SqlParser.FLOOR:
        case SqlParser.FORMAT:
        case SqlParser.FOUND_ROWS:
        case SqlParser.FROM_BASE64:
        case SqlParser.FROM_DAYS:
        case SqlParser.FROM_UNIXTIME:
        case SqlParser.GEOMCOLLFROMTEXT:
        case SqlParser.GEOMCOLLFROMWKB:
        case SqlParser.GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.GEOMETRYFROMTEXT:
        case SqlParser.GEOMETRYFROMWKB:
        case SqlParser.GEOMETRYN:
        case SqlParser.GEOMETRYTYPE:
        case SqlParser.GEOMFROMTEXT:
        case SqlParser.GEOMFROMWKB:
        case SqlParser.GET_FORMAT:
        case SqlParser.GET_LOCK:
        case SqlParser.GLENGTH:
        case SqlParser.GREATEST:
        case SqlParser.GTID_SUBSET:
        case SqlParser.GTID_SUBTRACT:
        case SqlParser.HEX:
        case SqlParser.IFNULL:
        case SqlParser.INET6_ATON:
        case SqlParser.INET6_NTOA:
        case SqlParser.INET_ATON:
        case SqlParser.INET_NTOA:
        case SqlParser.INSTR:
        case SqlParser.INTERIORRINGN:
        case SqlParser.INTERSECTS:
        case SqlParser.ISCLOSED:
        case SqlParser.ISEMPTY:
        case SqlParser.ISNULL:
        case SqlParser.ISSIMPLE:
        case SqlParser.IS_FREE_LOCK:
        case SqlParser.IS_IPV4:
        case SqlParser.IS_IPV4_COMPAT:
        case SqlParser.IS_IPV4_MAPPED:
        case SqlParser.IS_IPV6:
        case SqlParser.IS_USED_LOCK:
        case SqlParser.LAST_INSERT_ID:
        case SqlParser.LCASE:
        case SqlParser.LEAST:
        case SqlParser.LENGTH:
        case SqlParser.LINEFROMTEXT:
        case SqlParser.LINEFROMWKB:
        case SqlParser.LINESTRINGFROMTEXT:
        case SqlParser.LINESTRINGFROMWKB:
        case SqlParser.LN:
        case SqlParser.LOAD_FILE:
        case SqlParser.LOCATE:
        case SqlParser.LOG:
        case SqlParser.LOG10:
        case SqlParser.LOG2:
        case SqlParser.LOWER:
        case SqlParser.LPAD:
        case SqlParser.LTRIM:
        case SqlParser.MAKEDATE:
        case SqlParser.MAKETIME:
        case SqlParser.MAKE_SET:
        case SqlParser.MASTER_POS_WAIT:
        case SqlParser.MBRCONTAINS:
        case SqlParser.MBRDISJOINT:
        case SqlParser.MBREQUAL:
        case SqlParser.MBRINTERSECTS:
        case SqlParser.MBROVERLAPS:
        case SqlParser.MBRTOUCHES:
        case SqlParser.MBRWITHIN:
        case SqlParser.MD5:
        case SqlParser.MLINEFROMTEXT:
        case SqlParser.MLINEFROMWKB:
        case SqlParser.MONTHNAME:
        case SqlParser.MPOINTFROMTEXT:
        case SqlParser.MPOINTFROMWKB:
        case SqlParser.MPOLYFROMTEXT:
        case SqlParser.MPOLYFROMWKB:
        case SqlParser.MULTILINESTRINGFROMTEXT:
        case SqlParser.MULTILINESTRINGFROMWKB:
        case SqlParser.MULTIPOINTFROMTEXT:
        case SqlParser.MULTIPOINTFROMWKB:
        case SqlParser.MULTIPOLYGONFROMTEXT:
        case SqlParser.MULTIPOLYGONFROMWKB:
        case SqlParser.NAME_CONST:
        case SqlParser.NULLIF:
        case SqlParser.NUMGEOMETRIES:
        case SqlParser.NUMINTERIORRINGS:
        case SqlParser.NUMPOINTS:
        case SqlParser.OCT:
        case SqlParser.OCTET_LENGTH:
        case SqlParser.ORD:
        case SqlParser.OVERLAPS:
        case SqlParser.PERIOD_ADD:
        case SqlParser.PERIOD_DIFF:
        case SqlParser.PI:
        case SqlParser.POINTFROMTEXT:
        case SqlParser.POINTFROMWKB:
        case SqlParser.POINTN:
        case SqlParser.POLYFROMTEXT:
        case SqlParser.POLYFROMWKB:
        case SqlParser.POLYGONFROMTEXT:
        case SqlParser.POLYGONFROMWKB:
        case SqlParser.POW:
        case SqlParser.POWER:
        case SqlParser.QUOTE:
        case SqlParser.RADIANS:
        case SqlParser.RAND:
        case SqlParser.RANDOM_BYTES:
        case SqlParser.RELEASE_LOCK:
        case SqlParser.REVERSE:
        case SqlParser.ROUND:
        case SqlParser.ROW_COUNT:
        case SqlParser.RPAD:
        case SqlParser.RTRIM:
        case SqlParser.SEC_TO_TIME:
        case SqlParser.SESSION_USER:
        case SqlParser.SHA:
        case SqlParser.SHA1:
        case SqlParser.SHA2:
        case SqlParser.SIGN:
        case SqlParser.SIN:
        case SqlParser.SLEEP:
        case SqlParser.SOUNDEX:
        case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS:
        case SqlParser.SQRT:
        case SqlParser.SRID:
        case SqlParser.STARTPOINT:
        case SqlParser.STRCMP:
        case SqlParser.STR_TO_DATE:
        case SqlParser.ST_AREA:
        case SqlParser.ST_ASBINARY:
        case SqlParser.ST_ASTEXT:
        case SqlParser.ST_ASWKB:
        case SqlParser.ST_ASWKT:
        case SqlParser.ST_BUFFER:
        case SqlParser.ST_CENTROID:
        case SqlParser.ST_CONTAINS:
        case SqlParser.ST_CROSSES:
        case SqlParser.ST_DIFFERENCE:
        case SqlParser.ST_DIMENSION:
        case SqlParser.ST_DISJOINT:
        case SqlParser.ST_DISTANCE:
        case SqlParser.ST_ENDPOINT:
        case SqlParser.ST_ENVELOPE:
        case SqlParser.ST_EQUALS:
        case SqlParser.ST_EXTERIORRING:
        case SqlParser.ST_GEOMCOLLFROMTEXT:
        case SqlParser.ST_GEOMCOLLFROMTXT:
        case SqlParser.ST_GEOMCOLLFROMWKB:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT:
        case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB:
        case SqlParser.ST_GEOMETRYFROMTEXT:
        case SqlParser.ST_GEOMETRYFROMWKB:
        case SqlParser.ST_GEOMETRYN:
        case SqlParser.ST_GEOMETRYTYPE:
        case SqlParser.ST_GEOMFROMTEXT:
        case SqlParser.ST_GEOMFROMWKB:
        case SqlParser.ST_INTERIORRINGN:
        case SqlParser.ST_INTERSECTION:
        case SqlParser.ST_INTERSECTS:
        case SqlParser.ST_ISCLOSED:
        case SqlParser.ST_ISEMPTY:
        case SqlParser.ST_ISSIMPLE:
        case SqlParser.ST_LINEFROMTEXT:
        case SqlParser.ST_LINEFROMWKB:
        case SqlParser.ST_LINESTRINGFROMTEXT:
        case SqlParser.ST_LINESTRINGFROMWKB:
        case SqlParser.ST_NUMGEOMETRIES:
        case SqlParser.ST_NUMINTERIORRING:
        case SqlParser.ST_NUMINTERIORRINGS:
        case SqlParser.ST_NUMPOINTS:
        case SqlParser.ST_OVERLAPS:
        case SqlParser.ST_POINTFROMTEXT:
        case SqlParser.ST_POINTFROMWKB:
        case SqlParser.ST_POINTN:
        case SqlParser.ST_POLYFROMTEXT:
        case SqlParser.ST_POLYFROMWKB:
        case SqlParser.ST_POLYGONFROMTEXT:
        case SqlParser.ST_POLYGONFROMWKB:
        case SqlParser.ST_SRID:
        case SqlParser.ST_STARTPOINT:
        case SqlParser.ST_SYMDIFFERENCE:
        case SqlParser.ST_TOUCHES:
        case SqlParser.ST_UNION:
        case SqlParser.ST_WITHIN:
        case SqlParser.ST_X:
        case SqlParser.ST_Y:
        case SqlParser.SUBDATE:
        case SqlParser.SUBSTRING_INDEX:
        case SqlParser.SUBTIME:
        case SqlParser.SYSTEM_USER:
        case SqlParser.TAN:
        case SqlParser.TIMEDIFF:
        case SqlParser.TIMESTAMPADD:
        case SqlParser.TIMESTAMPDIFF:
        case SqlParser.TIME_FORMAT:
        case SqlParser.TIME_TO_SEC:
        case SqlParser.TOUCHES:
        case SqlParser.TO_BASE64:
        case SqlParser.TO_DAYS:
        case SqlParser.TO_SECONDS:
        case SqlParser.UCASE:
        case SqlParser.UNCOMPRESS:
        case SqlParser.UNCOMPRESSED_LENGTH:
        case SqlParser.UNHEX:
        case SqlParser.UNIX_TIMESTAMP:
        case SqlParser.UPDATEXML:
        case SqlParser.UPPER:
        case SqlParser.UUID:
        case SqlParser.UUID_SHORT:
        case SqlParser.VALIDATE_PASSWORD_STRENGTH:
        case SqlParser.VERSION:
        case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:
        case SqlParser.WEEKDAY:
        case SqlParser.WEEKOFYEAR:
        case SqlParser.WEIGHT_STRING:
        case SqlParser.WITHIN:
        case SqlParser.YEARWEEK:
        case SqlParser.Y_FUNCTION:
        case SqlParser.X_FUNCTION:
            this.enterOuterAlt(localctx, 1);
            this.state = 6123;
            this.functionNameBase();
            break;
        case SqlParser.ASCII:
            this.enterOuterAlt(localctx, 2);
            this.state = 6124;
            this.match(SqlParser.ASCII);
            break;
        case SqlParser.CURDATE:
            this.enterOuterAlt(localctx, 3);
            this.state = 6125;
            this.match(SqlParser.CURDATE);
            break;
        case SqlParser.CURRENT_DATE:
            this.enterOuterAlt(localctx, 4);
            this.state = 6126;
            this.match(SqlParser.CURRENT_DATE);
            break;
        case SqlParser.CURRENT_TIME:
            this.enterOuterAlt(localctx, 5);
            this.state = 6127;
            this.match(SqlParser.CURRENT_TIME);
            break;
        case SqlParser.CURRENT_TIMESTAMP:
            this.enterOuterAlt(localctx, 6);
            this.state = 6128;
            this.match(SqlParser.CURRENT_TIMESTAMP);
            break;
        case SqlParser.CURTIME:
            this.enterOuterAlt(localctx, 7);
            this.state = 6129;
            this.match(SqlParser.CURTIME);
            break;
        case SqlParser.DATE_ADD:
            this.enterOuterAlt(localctx, 8);
            this.state = 6130;
            this.match(SqlParser.DATE_ADD);
            break;
        case SqlParser.DATE_SUB:
            this.enterOuterAlt(localctx, 9);
            this.state = 6131;
            this.match(SqlParser.DATE_SUB);
            break;
        case SqlParser.IF:
            this.enterOuterAlt(localctx, 10);
            this.state = 6132;
            this.match(SqlParser.IF);
            break;
        case SqlParser.INSERT:
            this.enterOuterAlt(localctx, 11);
            this.state = 6133;
            this.match(SqlParser.INSERT);
            break;
        case SqlParser.LOCALTIME:
            this.enterOuterAlt(localctx, 12);
            this.state = 6134;
            this.match(SqlParser.LOCALTIME);
            break;
        case SqlParser.LOCALTIMESTAMP:
            this.enterOuterAlt(localctx, 13);
            this.state = 6135;
            this.match(SqlParser.LOCALTIMESTAMP);
            break;
        case SqlParser.MID:
            this.enterOuterAlt(localctx, 14);
            this.state = 6136;
            this.match(SqlParser.MID);
            break;
        case SqlParser.NOW:
            this.enterOuterAlt(localctx, 15);
            this.state = 6137;
            this.match(SqlParser.NOW);
            break;
        case SqlParser.REPLACE:
            this.enterOuterAlt(localctx, 16);
            this.state = 6138;
            this.match(SqlParser.REPLACE);
            break;
        case SqlParser.SUBSTR:
            this.enterOuterAlt(localctx, 17);
            this.state = 6139;
            this.match(SqlParser.SUBSTR);
            break;
        case SqlParser.SUBSTRING:
            this.enterOuterAlt(localctx, 18);
            this.state = 6140;
            this.match(SqlParser.SUBSTRING);
            break;
        case SqlParser.SYSDATE:
            this.enterOuterAlt(localctx, 19);
            this.state = 6141;
            this.match(SqlParser.SYSDATE);
            break;
        case SqlParser.TRIM:
            this.enterOuterAlt(localctx, 20);
            this.state = 6142;
            this.match(SqlParser.TRIM);
            break;
        case SqlParser.UTC_DATE:
            this.enterOuterAlt(localctx, 21);
            this.state = 6143;
            this.match(SqlParser.UTC_DATE);
            break;
        case SqlParser.UTC_TIME:
            this.enterOuterAlt(localctx, 22);
            this.state = 6144;
            this.match(SqlParser.UTC_TIME);
            break;
        case SqlParser.UTC_TIMESTAMP:
            this.enterOuterAlt(localctx, 23);
            this.state = 6145;
            this.match(SqlParser.UTC_TIMESTAMP);
            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 PasswordFunctionClauseContext(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_passwordFunctionClause;
    this.functionName = null; // Token
    return this;
}

PasswordFunctionClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PasswordFunctionClauseContext.prototype.constructor = PasswordFunctionClauseContext;

PasswordFunctionClauseContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

PasswordFunctionClauseContext.prototype.functionArg = function() {
    return this.getTypedRuleContext(FunctionArgContext,0);
};

PasswordFunctionClauseContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

PasswordFunctionClauseContext.prototype.PASSWORD = function() {
    return this.getToken(SqlParser.PASSWORD, 0);
};

PasswordFunctionClauseContext.prototype.OLD_PASSWORD = function() {
    return this.getToken(SqlParser.OLD_PASSWORD, 0);
};

PasswordFunctionClauseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPasswordFunctionClause(this);
	}
};

PasswordFunctionClauseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPasswordFunctionClause(this);
	}
};

PasswordFunctionClauseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPasswordFunctionClause(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.PasswordFunctionClauseContext = PasswordFunctionClauseContext;

SqlParser.prototype.passwordFunctionClause = function() {

    var localctx = new PasswordFunctionClauseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 596, SqlParser.RULE_passwordFunctionClause);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6148;
        localctx.functionName = this._input.LT(1);
        _la = this._input.LA(1);
        if(!(_la===SqlParser.OLD_PASSWORD || _la===SqlParser.PASSWORD)) {
            localctx.functionName = this._errHandler.recoverInline(this);
        }
        else {
        	this._errHandler.reportMatch(this);
            this.consume();
        }
        this.state = 6149;
        this.match(SqlParser.LR_BRACKET);
        this.state = 6150;
        this.functionArg();
        this.state = 6151;
        this.match(SqlParser.RR_BRACKET);
    } 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 FunctionArgsContext(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_functionArgs;
    return this;
}

FunctionArgsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FunctionArgsContext.prototype.constructor = FunctionArgsContext;

FunctionArgsContext.prototype.constant = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ConstantContext);
    } else {
        return this.getTypedRuleContext(ConstantContext,i);
    }
};

FunctionArgsContext.prototype.fullColumnName = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(FullColumnNameContext);
    } else {
        return this.getTypedRuleContext(FullColumnNameContext,i);
    }
};

FunctionArgsContext.prototype.functionCall = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(FunctionCallContext);
    } else {
        return this.getTypedRuleContext(FunctionCallContext,i);
    }
};

FunctionArgsContext.prototype.expression = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionContext);
    } else {
        return this.getTypedRuleContext(ExpressionContext,i);
    }
};

FunctionArgsContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};


FunctionArgsContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFunctionArgs(this);
	}
};

FunctionArgsContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFunctionArgs(this);
	}
};

FunctionArgsContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitFunctionArgs(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.FunctionArgsContext = FunctionArgsContext;

SqlParser.prototype.functionArgs = function() {

    var localctx = new FunctionArgsContext(this, this._ctx, this.state);
    this.enterRule(localctx, 598, SqlParser.RULE_functionArgs);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6157;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,904,this._ctx);
        switch(la_) {
        case 1:
            this.state = 6153;
            this.constant();
            break;

        case 2:
            this.state = 6154;
            this.fullColumnName();
            break;

        case 3:
            this.state = 6155;
            this.functionCall();
            break;

        case 4:
            this.state = 6156;
            this.expression(0);
            break;

        }
        this.state = 6168;
        this._errHandler.sync(this);
        _la = this._input.LA(1);
        while(_la===SqlParser.COMMA) {
            this.state = 6159;
            this.match(SqlParser.COMMA);
            this.state = 6164;
            this._errHandler.sync(this);
            var la_ = this._interp.adaptivePredict(this._input,905,this._ctx);
            switch(la_) {
            case 1:
                this.state = 6160;
                this.constant();
                break;

            case 2:
                this.state = 6161;
                this.fullColumnName();
                break;

            case 3:
                this.state = 6162;
                this.functionCall();
                break;

            case 4:
                this.state = 6163;
                this.expression(0);
                break;

            }
            this.state = 6170;
            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 FunctionArgContext(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_functionArg;
    return this;
}

FunctionArgContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FunctionArgContext.prototype.constructor = FunctionArgContext;

FunctionArgContext.prototype.constant = function() {
    return this.getTypedRuleContext(ConstantContext,0);
};

FunctionArgContext.prototype.fullColumnName = function() {
    return this.getTypedRuleContext(FullColumnNameContext,0);
};

FunctionArgContext.prototype.functionCall = function() {
    return this.getTypedRuleContext(FunctionCallContext,0);
};

FunctionArgContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

FunctionArgContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFunctionArg(this);
	}
};

FunctionArgContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFunctionArg(this);
	}
};

FunctionArgContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitFunctionArg(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.FunctionArgContext = FunctionArgContext;

SqlParser.prototype.functionArg = function() {

    var localctx = new FunctionArgContext(this, this._ctx, this.state);
    this.enterRule(localctx, 600, SqlParser.RULE_functionArg);
    try {
        this.state = 6175;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,907,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 6171;
            this.constant();
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 6172;
            this.fullColumnName();
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 6173;
            this.functionCall();
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 6174;
            this.expression(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 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.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};

function IsExpressionContext(parser, ctx) {
	ExpressionContext.call(this, parser);
    this.testValue = null; // Token;
    ExpressionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

IsExpressionContext.prototype = Object.create(ExpressionContext.prototype);
IsExpressionContext.prototype.constructor = IsExpressionContext;

SqlParser.IsExpressionContext = IsExpressionContext;

IsExpressionContext.prototype.predicate = function() {
    return this.getTypedRuleContext(PredicateContext,0);
};

IsExpressionContext.prototype.IS = function() {
    return this.getToken(SqlParser.IS, 0);
};

IsExpressionContext.prototype.TRUE = function() {
    return this.getToken(SqlParser.TRUE, 0);
};

IsExpressionContext.prototype.FALSE = function() {
    return this.getToken(SqlParser.FALSE, 0);
};

IsExpressionContext.prototype.UNKNOWN = function() {
    return this.getToken(SqlParser.UNKNOWN, 0);
};

IsExpressionContext.prototype.NOT = function() {
    return this.getToken(SqlParser.NOT, 0);
};
IsExpressionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIsExpression(this);
	}
};

IsExpressionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIsExpression(this);
	}
};

IsExpressionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIsExpression(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function NotExpressionContext(parser, ctx) {
	ExpressionContext.call(this, parser);
    this.notOperator = null; // Token;
    ExpressionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

NotExpressionContext.prototype = Object.create(ExpressionContext.prototype);
NotExpressionContext.prototype.constructor = NotExpressionContext;

SqlParser.NotExpressionContext = NotExpressionContext;

NotExpressionContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

NotExpressionContext.prototype.NOT = function() {
    return this.getToken(SqlParser.NOT, 0);
};

NotExpressionContext.prototype.EXCLAMATION_SYMBOL = function() {
    return this.getToken(SqlParser.EXCLAMATION_SYMBOL, 0);
};
NotExpressionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterNotExpression(this);
	}
};

NotExpressionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitNotExpression(this);
	}
};

NotExpressionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitNotExpression(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function LogicalExpressionContext(parser, ctx) {
	ExpressionContext.call(this, parser);
    ExpressionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

LogicalExpressionContext.prototype = Object.create(ExpressionContext.prototype);
LogicalExpressionContext.prototype.constructor = LogicalExpressionContext;

SqlParser.LogicalExpressionContext = LogicalExpressionContext;

LogicalExpressionContext.prototype.expression = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionContext);
    } else {
        return this.getTypedRuleContext(ExpressionContext,i);
    }
};

LogicalExpressionContext.prototype.logicalOperator = function() {
    return this.getTypedRuleContext(LogicalOperatorContext,0);
};
LogicalExpressionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLogicalExpression(this);
	}
};

LogicalExpressionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLogicalExpression(this);
	}
};

LogicalExpressionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLogicalExpression(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function PredicateExpressionContext(parser, ctx) {
	ExpressionContext.call(this, parser);
    ExpressionContext.prototype.copyFrom.call(this, ctx);
    return this;
}

PredicateExpressionContext.prototype = Object.create(ExpressionContext.prototype);
PredicateExpressionContext.prototype.constructor = PredicateExpressionContext;

SqlParser.PredicateExpressionContext = PredicateExpressionContext;

PredicateExpressionContext.prototype.predicate = function() {
    return this.getTypedRuleContext(PredicateContext,0);
};
PredicateExpressionContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPredicateExpression(this);
	}
};

PredicateExpressionContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPredicateExpression(this);
	}
};

PredicateExpressionContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPredicateExpression(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.prototype.expression = function(_p) {
	if(_p===undefined) {
	    _p = 0;
	}
    var _parentctx = this._ctx;
    var _parentState = this.state;
    var localctx = new ExpressionContext(this, this._ctx, _parentState);
    var _prevctx = localctx;
    var _startState = 602;
    this.enterRecursionRule(localctx, 602, SqlParser.RULE_expression, _p);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6188;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,909,this._ctx);
        switch(la_) {
        case 1:
            localctx = new NotExpressionContext(this, localctx);
            this._ctx = localctx;
            _prevctx = localctx;

            this.state = 6178;
            localctx.notOperator = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.NOT || _la===SqlParser.EXCLAMATION_SYMBOL)) {
                localctx.notOperator = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            this.state = 6179;
            this.expression(4);
            break;

        case 2:
            localctx = new IsExpressionContext(this, localctx);
            this._ctx = localctx;
            _prevctx = localctx;
            this.state = 6180;
            this.predicate(0);
            this.state = 6181;
            this.match(SqlParser.IS);
            this.state = 6183;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            if(_la===SqlParser.NOT) {
                this.state = 6182;
                this.match(SqlParser.NOT);
            }

            this.state = 6185;
            localctx.testValue = this._input.LT(1);
            _la = this._input.LA(1);
            if(!(_la===SqlParser.FALSE || _la===SqlParser.TRUE || _la===SqlParser.UNKNOWN)) {
                localctx.testValue = this._errHandler.recoverInline(this);
            }
            else {
            	this._errHandler.reportMatch(this);
                this.consume();
            }
            break;

        case 3:
            localctx = new PredicateExpressionContext(this, localctx);
            this._ctx = localctx;
            _prevctx = localctx;
            this.state = 6187;
            this.predicate(0);
            break;

        }
        this._ctx.stop = this._input.LT(-1);
        this.state = 6196;
        this._errHandler.sync(this);
        var _alt = this._interp.adaptivePredict(this._input,910,this._ctx)
        while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
            if(_alt===1) {
                if(this._parseListeners!==null) {
                    this.triggerExitRuleEvent();
                }
                _prevctx = localctx;
                localctx = new LogicalExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState));
                this.pushNewRecursionContext(localctx, _startState, SqlParser.RULE_expression);
                this.state = 6190;
                if (!( this.precpred(this._ctx, 3))) {
                    throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)");
                }
                this.state = 6191;
                this.logicalOperator();
                this.state = 6192;
                this.expression(4); 
            }
            this.state = 6198;
            this._errHandler.sync(this);
            _alt = this._interp.adaptivePredict(this._input,910,this._ctx);
        }

    } 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;
    return this;
}

PredicateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PredicateContext.prototype.constructor = PredicateContext;


 
PredicateContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};

function SoundsLikePredicateContext(parser, ctx) {
	PredicateContext.call(this, parser);
    PredicateContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SoundsLikePredicateContext.prototype = Object.create(PredicateContext.prototype);
SoundsLikePredicateContext.prototype.constructor = SoundsLikePredicateContext;

SqlParser.SoundsLikePredicateContext = SoundsLikePredicateContext;

SoundsLikePredicateContext.prototype.predicate = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PredicateContext);
    } else {
        return this.getTypedRuleContext(PredicateContext,i);
    }
};

SoundsLikePredicateContext.prototype.SOUNDS = function() {
    return this.getToken(SqlParser.SOUNDS, 0);
};

SoundsLikePredicateContext.prototype.LIKE = function() {
    return this.getToken(SqlParser.LIKE, 0);
};
SoundsLikePredicateContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSoundsLikePredicate(this);
	}
};

SoundsLikePredicateContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSoundsLikePredicate(this);
	}
};

SoundsLikePredicateContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSoundsLikePredicate(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ExpressionAtomPredicateContext(parser, ctx) {
	PredicateContext.call(this, parser);
    PredicateContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ExpressionAtomPredicateContext.prototype = Object.create(PredicateContext.prototype);
ExpressionAtomPredicateContext.prototype.constructor = ExpressionAtomPredicateContext;

SqlParser.ExpressionAtomPredicateContext = ExpressionAtomPredicateContext;

ExpressionAtomPredicateContext.prototype.expressionAtom = function() {
    return this.getTypedRuleContext(ExpressionAtomContext,0);
};

ExpressionAtomPredicateContext.prototype.LOCAL_ID = function() {
    return this.getToken(SqlParser.LOCAL_ID, 0);
};

ExpressionAtomPredicateContext.prototype.VAR_ASSIGN = function() {
    return this.getToken(SqlParser.VAR_ASSIGN, 0);
};
ExpressionAtomPredicateContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterExpressionAtomPredicate(this);
	}
};

ExpressionAtomPredicateContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitExpressionAtomPredicate(this);
	}
};

ExpressionAtomPredicateContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitExpressionAtomPredicate(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function InPredicateContext(parser, ctx) {
	PredicateContext.call(this, parser);
    PredicateContext.prototype.copyFrom.call(this, ctx);
    return this;
}

InPredicateContext.prototype = Object.create(PredicateContext.prototype);
InPredicateContext.prototype.constructor = InPredicateContext;

SqlParser.InPredicateContext = InPredicateContext;

InPredicateContext.prototype.predicate = function() {
    return this.getTypedRuleContext(PredicateContext,0);
};

InPredicateContext.prototype.IN = function() {
    return this.getToken(SqlParser.IN, 0);
};

InPredicateContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

InPredicateContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

InPredicateContext.prototype.selectStatement = function() {
    return this.getTypedRuleContext(SelectStatementContext,0);
};

InPredicateContext.prototype.expressions = function() {
    return this.getTypedRuleContext(ExpressionsContext,0);
};

InPredicateContext.prototype.NOT = function() {
    return this.getToken(SqlParser.NOT, 0);
};
InPredicateContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterInPredicate(this);
	}
};

InPredicateContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitInPredicate(this);
	}
};

InPredicateContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitInPredicate(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SubqueryComparasionPredicateContext(parser, ctx) {
	PredicateContext.call(this, parser);
    this.quantifier = null; // Token;
    PredicateContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SubqueryComparasionPredicateContext.prototype = Object.create(PredicateContext.prototype);
SubqueryComparasionPredicateContext.prototype.constructor = SubqueryComparasionPredicateContext;

SqlParser.SubqueryComparasionPredicateContext = SubqueryComparasionPredicateContext;

SubqueryComparasionPredicateContext.prototype.predicate = function() {
    return this.getTypedRuleContext(PredicateContext,0);
};

SubqueryComparasionPredicateContext.prototype.comparisonOperator = function() {
    return this.getTypedRuleContext(ComparisonOperatorContext,0);
};

SubqueryComparasionPredicateContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

SubqueryComparasionPredicateContext.prototype.selectStatement = function() {
    return this.getTypedRuleContext(SelectStatementContext,0);
};

SubqueryComparasionPredicateContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

SubqueryComparasionPredicateContext.prototype.ALL = function() {
    return this.getToken(SqlParser.ALL, 0);
};

SubqueryComparasionPredicateContext.prototype.ANY = function() {
    return this.getToken(SqlParser.ANY, 0);
};

SubqueryComparasionPredicateContext.prototype.SOME = function() {
    return this.getToken(SqlParser.SOME, 0);
};
SubqueryComparasionPredicateContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSubqueryComparasionPredicate(this);
	}
};

SubqueryComparasionPredicateContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSubqueryComparasionPredicate(this);
	}
};

SubqueryComparasionPredicateContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSubqueryComparasionPredicate(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function BetweenPredicateContext(parser, ctx) {
	PredicateContext.call(this, parser);
    PredicateContext.prototype.copyFrom.call(this, ctx);
    return this;
}

BetweenPredicateContext.prototype = Object.create(PredicateContext.prototype);
BetweenPredicateContext.prototype.constructor = BetweenPredicateContext;

SqlParser.BetweenPredicateContext = BetweenPredicateContext;

BetweenPredicateContext.prototype.predicate = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PredicateContext);
    } else {
        return this.getTypedRuleContext(PredicateContext,i);
    }
};

BetweenPredicateContext.prototype.BETWEEN = function() {
    return this.getToken(SqlParser.BETWEEN, 0);
};

BetweenPredicateContext.prototype.AND = function() {
    return this.getToken(SqlParser.AND, 0);
};

BetweenPredicateContext.prototype.NOT = function() {
    return this.getToken(SqlParser.NOT, 0);
};
BetweenPredicateContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterBetweenPredicate(this);
	}
};

BetweenPredicateContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitBetweenPredicate(this);
	}
};

BetweenPredicateContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitBetweenPredicate(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function BinaryComparasionPredicateContext(parser, ctx) {
	PredicateContext.call(this, parser);
    this.left = null; // PredicateContext;
    this.right = null; // PredicateContext;
    PredicateContext.prototype.copyFrom.call(this, ctx);
    return this;
}

BinaryComparasionPredicateContext.prototype = Object.create(PredicateContext.prototype);
BinaryComparasionPredicateContext.prototype.constructor = BinaryComparasionPredicateContext;

SqlParser.BinaryComparasionPredicateContext = BinaryComparasionPredicateContext;

BinaryComparasionPredicateContext.prototype.comparisonOperator = function() {
    return this.getTypedRuleContext(ComparisonOperatorContext,0);
};

BinaryComparasionPredicateContext.prototype.predicate = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PredicateContext);
    } else {
        return this.getTypedRuleContext(PredicateContext,i);
    }
};
BinaryComparasionPredicateContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterBinaryComparasionPredicate(this);
	}
};

BinaryComparasionPredicateContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitBinaryComparasionPredicate(this);
	}
};

BinaryComparasionPredicateContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitBinaryComparasionPredicate(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function IsNullPredicateContext(parser, ctx) {
	PredicateContext.call(this, parser);
    PredicateContext.prototype.copyFrom.call(this, ctx);
    return this;
}

IsNullPredicateContext.prototype = Object.create(PredicateContext.prototype);
IsNullPredicateContext.prototype.constructor = IsNullPredicateContext;

SqlParser.IsNullPredicateContext = IsNullPredicateContext;

IsNullPredicateContext.prototype.predicate = function() {
    return this.getTypedRuleContext(PredicateContext,0);
};

IsNullPredicateContext.prototype.IS = function() {
    return this.getToken(SqlParser.IS, 0);
};

IsNullPredicateContext.prototype.nullNotnull = function() {
    return this.getTypedRuleContext(NullNotnullContext,0);
};
IsNullPredicateContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIsNullPredicate(this);
	}
};

IsNullPredicateContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIsNullPredicate(this);
	}
};

IsNullPredicateContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIsNullPredicate(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function LikePredicateContext(parser, ctx) {
	PredicateContext.call(this, parser);
    PredicateContext.prototype.copyFrom.call(this, ctx);
    return this;
}

LikePredicateContext.prototype = Object.create(PredicateContext.prototype);
LikePredicateContext.prototype.constructor = LikePredicateContext;

SqlParser.LikePredicateContext = LikePredicateContext;

LikePredicateContext.prototype.predicate = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PredicateContext);
    } else {
        return this.getTypedRuleContext(PredicateContext,i);
    }
};

LikePredicateContext.prototype.LIKE = function() {
    return this.getToken(SqlParser.LIKE, 0);
};

LikePredicateContext.prototype.NOT = function() {
    return this.getToken(SqlParser.NOT, 0);
};

LikePredicateContext.prototype.ESCAPE = function() {
    return this.getToken(SqlParser.ESCAPE, 0);
};

LikePredicateContext.prototype.STRING_LITERAL = function() {
    return this.getToken(SqlParser.STRING_LITERAL, 0);
};
LikePredicateContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLikePredicate(this);
	}
};

LikePredicateContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLikePredicate(this);
	}
};

LikePredicateContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLikePredicate(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function RegexpPredicateContext(parser, ctx) {
	PredicateContext.call(this, parser);
    this.regex = null; // Token;
    PredicateContext.prototype.copyFrom.call(this, ctx);
    return this;
}

RegexpPredicateContext.prototype = Object.create(PredicateContext.prototype);
RegexpPredicateContext.prototype.constructor = RegexpPredicateContext;

SqlParser.RegexpPredicateContext = RegexpPredicateContext;

RegexpPredicateContext.prototype.predicate = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(PredicateContext);
    } else {
        return this.getTypedRuleContext(PredicateContext,i);
    }
};

RegexpPredicateContext.prototype.REGEXP = function() {
    return this.getToken(SqlParser.REGEXP, 0);
};

RegexpPredicateContext.prototype.RLIKE = function() {
    return this.getToken(SqlParser.RLIKE, 0);
};

RegexpPredicateContext.prototype.NOT = function() {
    return this.getToken(SqlParser.NOT, 0);
};
RegexpPredicateContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterRegexpPredicate(this);
	}
};

RegexpPredicateContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitRegexpPredicate(this);
	}
};

RegexpPredicateContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitRegexpPredicate(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.prototype.predicate = function(_p) {
	if(_p===undefined) {
	    _p = 0;
	}
    var _parentctx = this._ctx;
    var _parentState = this.state;
    var localctx = new PredicateContext(this, this._ctx, _parentState);
    var _prevctx = localctx;
    var _startState = 604;
    this.enterRecursionRule(localctx, 604, SqlParser.RULE_predicate, _p);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        localctx = new ExpressionAtomPredicateContext(this, localctx);
        this._ctx = localctx;
        _prevctx = localctx;

        this.state = 6202;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,911,this._ctx);
        if(la_===1) {
            this.state = 6200;
            this.match(SqlParser.LOCAL_ID);
            this.state = 6201;
            this.match(SqlParser.VAR_ASSIGN);

        }
        this.state = 6204;
        this.expressionAtom(0);
        this._ctx.stop = this._input.LT(-1);
        this.state = 6263;
        this._errHandler.sync(this);
        var _alt = this._interp.adaptivePredict(this._input,919,this._ctx)
        while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
            if(_alt===1) {
                if(this._parseListeners!==null) {
                    this.triggerExitRuleEvent();
                }
                _prevctx = localctx;
                this.state = 6261;
                this._errHandler.sync(this);
                var la_ = this._interp.adaptivePredict(this._input,918,this._ctx);
                switch(la_) {
                case 1:
                    localctx = new BinaryComparasionPredicateContext(this, new PredicateContext(this, _parentctx, _parentState));
                    localctx.left = _prevctx;
                    this.pushNewRecursionContext(localctx, _startState, SqlParser.RULE_predicate);
                    this.state = 6206;
                    if (!( this.precpred(this._ctx, 7))) {
                        throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 7)");
                    }
                    this.state = 6207;
                    this.comparisonOperator();
                    this.state = 6208;
                    localctx.right = this.predicate(8);
                    break;

                case 2:
                    localctx = new BetweenPredicateContext(this, new PredicateContext(this, _parentctx, _parentState));
                    this.pushNewRecursionContext(localctx, _startState, SqlParser.RULE_predicate);
                    this.state = 6210;
                    if (!( this.precpred(this._ctx, 5))) {
                        throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)");
                    }
                    this.state = 6212;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    if(_la===SqlParser.NOT) {
                        this.state = 6211;
                        this.match(SqlParser.NOT);
                    }

                    this.state = 6214;
                    this.match(SqlParser.BETWEEN);
                    this.state = 6215;
                    this.predicate(0);
                    this.state = 6216;
                    this.match(SqlParser.AND);
                    this.state = 6217;
                    this.predicate(6);
                    break;

                case 3:
                    localctx = new SoundsLikePredicateContext(this, new PredicateContext(this, _parentctx, _parentState));
                    this.pushNewRecursionContext(localctx, _startState, SqlParser.RULE_predicate);
                    this.state = 6219;
                    if (!( this.precpred(this._ctx, 4))) {
                        throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 4)");
                    }
                    this.state = 6220;
                    this.match(SqlParser.SOUNDS);
                    this.state = 6221;
                    this.match(SqlParser.LIKE);
                    this.state = 6222;
                    this.predicate(5);
                    break;

                case 4:
                    localctx = new RegexpPredicateContext(this, new PredicateContext(this, _parentctx, _parentState));
                    this.pushNewRecursionContext(localctx, _startState, SqlParser.RULE_predicate);
                    this.state = 6223;
                    if (!( this.precpred(this._ctx, 2))) {
                        throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)");
                    }
                    this.state = 6225;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    if(_la===SqlParser.NOT) {
                        this.state = 6224;
                        this.match(SqlParser.NOT);
                    }

                    this.state = 6227;
                    localctx.regex = this._input.LT(1);
                    _la = this._input.LA(1);
                    if(!(_la===SqlParser.REGEXP || _la===SqlParser.RLIKE)) {
                        localctx.regex = this._errHandler.recoverInline(this);
                    }
                    else {
                    	this._errHandler.reportMatch(this);
                        this.consume();
                    }
                    this.state = 6228;
                    this.predicate(3);
                    break;

                case 5:
                    localctx = new InPredicateContext(this, new PredicateContext(this, _parentctx, _parentState));
                    this.pushNewRecursionContext(localctx, _startState, SqlParser.RULE_predicate);
                    this.state = 6229;
                    if (!( this.precpred(this._ctx, 9))) {
                        throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 9)");
                    }
                    this.state = 6231;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    if(_la===SqlParser.NOT) {
                        this.state = 6230;
                        this.match(SqlParser.NOT);
                    }

                    this.state = 6233;
                    this.match(SqlParser.IN);
                    this.state = 6234;
                    this.match(SqlParser.LR_BRACKET);
                    this.state = 6237;
                    this._errHandler.sync(this);
                    var la_ = this._interp.adaptivePredict(this._input,915,this._ctx);
                    switch(la_) {
                    case 1:
                        this.state = 6235;
                        this.selectStatement();
                        break;

                    case 2:
                        this.state = 6236;
                        this.expressions();
                        break;

                    }
                    this.state = 6239;
                    this.match(SqlParser.RR_BRACKET);
                    break;

                case 6:
                    localctx = new IsNullPredicateContext(this, new PredicateContext(this, _parentctx, _parentState));
                    this.pushNewRecursionContext(localctx, _startState, SqlParser.RULE_predicate);
                    this.state = 6241;
                    if (!( this.precpred(this._ctx, 8))) {
                        throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 8)");
                    }
                    this.state = 6242;
                    this.match(SqlParser.IS);
                    this.state = 6243;
                    this.nullNotnull();
                    break;

                case 7:
                    localctx = new SubqueryComparasionPredicateContext(this, new PredicateContext(this, _parentctx, _parentState));
                    this.pushNewRecursionContext(localctx, _startState, SqlParser.RULE_predicate);
                    this.state = 6244;
                    if (!( this.precpred(this._ctx, 6))) {
                        throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 6)");
                    }
                    this.state = 6245;
                    this.comparisonOperator();
                    this.state = 6246;
                    localctx.quantifier = this._input.LT(1);
                    _la = this._input.LA(1);
                    if(!(_la===SqlParser.ALL || _la===SqlParser.ANY || _la===SqlParser.SOME)) {
                        localctx.quantifier = this._errHandler.recoverInline(this);
                    }
                    else {
                    	this._errHandler.reportMatch(this);
                        this.consume();
                    }
                    this.state = 6247;
                    this.match(SqlParser.LR_BRACKET);
                    this.state = 6248;
                    this.selectStatement();
                    this.state = 6249;
                    this.match(SqlParser.RR_BRACKET);
                    break;

                case 8:
                    localctx = new LikePredicateContext(this, new PredicateContext(this, _parentctx, _parentState));
                    this.pushNewRecursionContext(localctx, _startState, SqlParser.RULE_predicate);
                    this.state = 6251;
                    if (!( this.precpred(this._ctx, 3))) {
                        throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)");
                    }
                    this.state = 6253;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    if(_la===SqlParser.NOT) {
                        this.state = 6252;
                        this.match(SqlParser.NOT);
                    }

                    this.state = 6255;
                    this.match(SqlParser.LIKE);
                    this.state = 6256;
                    this.predicate(0);
                    this.state = 6259;
                    this._errHandler.sync(this);
                    var la_ = this._interp.adaptivePredict(this._input,917,this._ctx);
                    if(la_===1) {
                        this.state = 6257;
                        this.match(SqlParser.ESCAPE);
                        this.state = 6258;
                        this.match(SqlParser.STRING_LITERAL);

                    }
                    break;

                } 
            }
            this.state = 6265;
            this._errHandler.sync(this);
            _alt = this._interp.adaptivePredict(this._input,919,this._ctx);
        }

    } 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 ExpressionAtomContext(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_expressionAtom;
    return this;
}

ExpressionAtomContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
ExpressionAtomContext.prototype.constructor = ExpressionAtomContext;


 
ExpressionAtomContext.prototype.copyFrom = function(ctx) {
    antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
};

function UnaryExpressionAtomContext(parser, ctx) {
	ExpressionAtomContext.call(this, parser);
    ExpressionAtomContext.prototype.copyFrom.call(this, ctx);
    return this;
}

UnaryExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype);
UnaryExpressionAtomContext.prototype.constructor = UnaryExpressionAtomContext;

SqlParser.UnaryExpressionAtomContext = UnaryExpressionAtomContext;

UnaryExpressionAtomContext.prototype.unaryOperator = function() {
    return this.getTypedRuleContext(UnaryOperatorContext,0);
};

UnaryExpressionAtomContext.prototype.expressionAtom = function() {
    return this.getTypedRuleContext(ExpressionAtomContext,0);
};
UnaryExpressionAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUnaryExpressionAtom(this);
	}
};

UnaryExpressionAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUnaryExpressionAtom(this);
	}
};

UnaryExpressionAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUnaryExpressionAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function CollateExpressionAtomContext(parser, ctx) {
	ExpressionAtomContext.call(this, parser);
    ExpressionAtomContext.prototype.copyFrom.call(this, ctx);
    return this;
}

CollateExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype);
CollateExpressionAtomContext.prototype.constructor = CollateExpressionAtomContext;

SqlParser.CollateExpressionAtomContext = CollateExpressionAtomContext;

CollateExpressionAtomContext.prototype.expressionAtom = function() {
    return this.getTypedRuleContext(ExpressionAtomContext,0);
};

CollateExpressionAtomContext.prototype.COLLATE = function() {
    return this.getToken(SqlParser.COLLATE, 0);
};

CollateExpressionAtomContext.prototype.collationName = function() {
    return this.getTypedRuleContext(CollationNameContext,0);
};
CollateExpressionAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCollateExpressionAtom(this);
	}
};

CollateExpressionAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCollateExpressionAtom(this);
	}
};

CollateExpressionAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCollateExpressionAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function SubqueryExpessionAtomContext(parser, ctx) {
	ExpressionAtomContext.call(this, parser);
    ExpressionAtomContext.prototype.copyFrom.call(this, ctx);
    return this;
}

SubqueryExpessionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype);
SubqueryExpessionAtomContext.prototype.constructor = SubqueryExpessionAtomContext;

SqlParser.SubqueryExpessionAtomContext = SubqueryExpessionAtomContext;

SubqueryExpessionAtomContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

SubqueryExpessionAtomContext.prototype.selectStatement = function() {
    return this.getTypedRuleContext(SelectStatementContext,0);
};

SubqueryExpessionAtomContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};
SubqueryExpessionAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterSubqueryExpessionAtom(this);
	}
};

SubqueryExpessionAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitSubqueryExpessionAtom(this);
	}
};

SubqueryExpessionAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitSubqueryExpessionAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function MysqlVariableExpressionAtomContext(parser, ctx) {
	ExpressionAtomContext.call(this, parser);
    ExpressionAtomContext.prototype.copyFrom.call(this, ctx);
    return this;
}

MysqlVariableExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype);
MysqlVariableExpressionAtomContext.prototype.constructor = MysqlVariableExpressionAtomContext;

SqlParser.MysqlVariableExpressionAtomContext = MysqlVariableExpressionAtomContext;

MysqlVariableExpressionAtomContext.prototype.mysqlVariable = function() {
    return this.getTypedRuleContext(MysqlVariableContext,0);
};
MysqlVariableExpressionAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterMysqlVariableExpressionAtom(this);
	}
};

MysqlVariableExpressionAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitMysqlVariableExpressionAtom(this);
	}
};

MysqlVariableExpressionAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitMysqlVariableExpressionAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function NestedExpressionAtomContext(parser, ctx) {
	ExpressionAtomContext.call(this, parser);
    ExpressionAtomContext.prototype.copyFrom.call(this, ctx);
    return this;
}

NestedExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype);
NestedExpressionAtomContext.prototype.constructor = NestedExpressionAtomContext;

SqlParser.NestedExpressionAtomContext = NestedExpressionAtomContext;

NestedExpressionAtomContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

NestedExpressionAtomContext.prototype.expression = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionContext);
    } else {
        return this.getTypedRuleContext(ExpressionContext,i);
    }
};

NestedExpressionAtomContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

NestedExpressionAtomContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

NestedExpressionAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterNestedExpressionAtom(this);
	}
};

NestedExpressionAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitNestedExpressionAtom(this);
	}
};

NestedExpressionAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitNestedExpressionAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function NestedRowExpressionAtomContext(parser, ctx) {
	ExpressionAtomContext.call(this, parser);
    ExpressionAtomContext.prototype.copyFrom.call(this, ctx);
    return this;
}

NestedRowExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype);
NestedRowExpressionAtomContext.prototype.constructor = NestedRowExpressionAtomContext;

SqlParser.NestedRowExpressionAtomContext = NestedRowExpressionAtomContext;

NestedRowExpressionAtomContext.prototype.ROW = function() {
    return this.getToken(SqlParser.ROW, 0);
};

NestedRowExpressionAtomContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

NestedRowExpressionAtomContext.prototype.expression = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionContext);
    } else {
        return this.getTypedRuleContext(ExpressionContext,i);
    }
};

NestedRowExpressionAtomContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};

NestedRowExpressionAtomContext.prototype.COMMA = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.COMMA);
    } else {
        return this.getToken(SqlParser.COMMA, i);
    }
};

NestedRowExpressionAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterNestedRowExpressionAtom(this);
	}
};

NestedRowExpressionAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitNestedRowExpressionAtom(this);
	}
};

NestedRowExpressionAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitNestedRowExpressionAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function MathExpressionAtomContext(parser, ctx) {
	ExpressionAtomContext.call(this, parser);
    this.left = null; // ExpressionAtomContext;
    this.right = null; // ExpressionAtomContext;
    ExpressionAtomContext.prototype.copyFrom.call(this, ctx);
    return this;
}

MathExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype);
MathExpressionAtomContext.prototype.constructor = MathExpressionAtomContext;

SqlParser.MathExpressionAtomContext = MathExpressionAtomContext;

MathExpressionAtomContext.prototype.mathOperator = function() {
    return this.getTypedRuleContext(MathOperatorContext,0);
};

MathExpressionAtomContext.prototype.expressionAtom = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionAtomContext);
    } else {
        return this.getTypedRuleContext(ExpressionAtomContext,i);
    }
};
MathExpressionAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterMathExpressionAtom(this);
	}
};

MathExpressionAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitMathExpressionAtom(this);
	}
};

MathExpressionAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitMathExpressionAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function IntervalExpressionAtomContext(parser, ctx) {
	ExpressionAtomContext.call(this, parser);
    ExpressionAtomContext.prototype.copyFrom.call(this, ctx);
    return this;
}

IntervalExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype);
IntervalExpressionAtomContext.prototype.constructor = IntervalExpressionAtomContext;

SqlParser.IntervalExpressionAtomContext = IntervalExpressionAtomContext;

IntervalExpressionAtomContext.prototype.INTERVAL = function() {
    return this.getToken(SqlParser.INTERVAL, 0);
};

IntervalExpressionAtomContext.prototype.expression = function() {
    return this.getTypedRuleContext(ExpressionContext,0);
};

IntervalExpressionAtomContext.prototype.intervalType = function() {
    return this.getTypedRuleContext(IntervalTypeContext,0);
};
IntervalExpressionAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIntervalExpressionAtom(this);
	}
};

IntervalExpressionAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIntervalExpressionAtom(this);
	}
};

IntervalExpressionAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIntervalExpressionAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ExistsExpessionAtomContext(parser, ctx) {
	ExpressionAtomContext.call(this, parser);
    ExpressionAtomContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ExistsExpessionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype);
ExistsExpessionAtomContext.prototype.constructor = ExistsExpessionAtomContext;

SqlParser.ExistsExpessionAtomContext = ExistsExpessionAtomContext;

ExistsExpessionAtomContext.prototype.EXISTS = function() {
    return this.getToken(SqlParser.EXISTS, 0);
};

ExistsExpessionAtomContext.prototype.LR_BRACKET = function() {
    return this.getToken(SqlParser.LR_BRACKET, 0);
};

ExistsExpessionAtomContext.prototype.selectStatement = function() {
    return this.getTypedRuleContext(SelectStatementContext,0);
};

ExistsExpessionAtomContext.prototype.RR_BRACKET = function() {
    return this.getToken(SqlParser.RR_BRACKET, 0);
};
ExistsExpessionAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterExistsExpessionAtom(this);
	}
};

ExistsExpessionAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitExistsExpessionAtom(this);
	}
};

ExistsExpessionAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitExistsExpessionAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function ConstantExpressionAtomContext(parser, ctx) {
	ExpressionAtomContext.call(this, parser);
    ExpressionAtomContext.prototype.copyFrom.call(this, ctx);
    return this;
}

ConstantExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype);
ConstantExpressionAtomContext.prototype.constructor = ConstantExpressionAtomContext;

SqlParser.ConstantExpressionAtomContext = ConstantExpressionAtomContext;

ConstantExpressionAtomContext.prototype.constant = function() {
    return this.getTypedRuleContext(ConstantContext,0);
};
ConstantExpressionAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterConstantExpressionAtom(this);
	}
};

ConstantExpressionAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitConstantExpressionAtom(this);
	}
};

ConstantExpressionAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitConstantExpressionAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function FunctionCallExpressionAtomContext(parser, ctx) {
	ExpressionAtomContext.call(this, parser);
    ExpressionAtomContext.prototype.copyFrom.call(this, ctx);
    return this;
}

FunctionCallExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype);
FunctionCallExpressionAtomContext.prototype.constructor = FunctionCallExpressionAtomContext;

SqlParser.FunctionCallExpressionAtomContext = FunctionCallExpressionAtomContext;

FunctionCallExpressionAtomContext.prototype.functionCall = function() {
    return this.getTypedRuleContext(FunctionCallContext,0);
};
FunctionCallExpressionAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFunctionCallExpressionAtom(this);
	}
};

FunctionCallExpressionAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFunctionCallExpressionAtom(this);
	}
};

FunctionCallExpressionAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitFunctionCallExpressionAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function BinaryExpressionAtomContext(parser, ctx) {
	ExpressionAtomContext.call(this, parser);
    ExpressionAtomContext.prototype.copyFrom.call(this, ctx);
    return this;
}

BinaryExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype);
BinaryExpressionAtomContext.prototype.constructor = BinaryExpressionAtomContext;

SqlParser.BinaryExpressionAtomContext = BinaryExpressionAtomContext;

BinaryExpressionAtomContext.prototype.BINARY = function() {
    return this.getToken(SqlParser.BINARY, 0);
};

BinaryExpressionAtomContext.prototype.expressionAtom = function() {
    return this.getTypedRuleContext(ExpressionAtomContext,0);
};
BinaryExpressionAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterBinaryExpressionAtom(this);
	}
};

BinaryExpressionAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitBinaryExpressionAtom(this);
	}
};

BinaryExpressionAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitBinaryExpressionAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function FullColumnNameExpressionAtomContext(parser, ctx) {
	ExpressionAtomContext.call(this, parser);
    ExpressionAtomContext.prototype.copyFrom.call(this, ctx);
    return this;
}

FullColumnNameExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype);
FullColumnNameExpressionAtomContext.prototype.constructor = FullColumnNameExpressionAtomContext;

SqlParser.FullColumnNameExpressionAtomContext = FullColumnNameExpressionAtomContext;

FullColumnNameExpressionAtomContext.prototype.fullColumnName = function() {
    return this.getTypedRuleContext(FullColumnNameContext,0);
};
FullColumnNameExpressionAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFullColumnNameExpressionAtom(this);
	}
};

FullColumnNameExpressionAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFullColumnNameExpressionAtom(this);
	}
};

FullColumnNameExpressionAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitFullColumnNameExpressionAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};


function BitExpressionAtomContext(parser, ctx) {
	ExpressionAtomContext.call(this, parser);
    this.left = null; // ExpressionAtomContext;
    this.right = null; // ExpressionAtomContext;
    ExpressionAtomContext.prototype.copyFrom.call(this, ctx);
    return this;
}

BitExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype);
BitExpressionAtomContext.prototype.constructor = BitExpressionAtomContext;

SqlParser.BitExpressionAtomContext = BitExpressionAtomContext;

BitExpressionAtomContext.prototype.bitOperator = function() {
    return this.getTypedRuleContext(BitOperatorContext,0);
};

BitExpressionAtomContext.prototype.expressionAtom = function(i) {
    if(i===undefined) {
        i = null;
    }
    if(i===null) {
        return this.getTypedRuleContexts(ExpressionAtomContext);
    } else {
        return this.getTypedRuleContext(ExpressionAtomContext,i);
    }
};
BitExpressionAtomContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterBitExpressionAtom(this);
	}
};

BitExpressionAtomContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitBitExpressionAtom(this);
	}
};

BitExpressionAtomContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitBitExpressionAtom(this);
    } else {
        return visitor.visitChildren(this);
    }
};



SqlParser.prototype.expressionAtom = function(_p) {
	if(_p===undefined) {
	    _p = 0;
	}
    var _parentctx = this._ctx;
    var _parentState = this.state;
    var localctx = new ExpressionAtomContext(this, this._ctx, _parentState);
    var _prevctx = localctx;
    var _startState = 606;
    this.enterRecursionRule(localctx, 606, SqlParser.RULE_expressionAtom, _p);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6311;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,922,this._ctx);
        switch(la_) {
        case 1:
            localctx = new ConstantExpressionAtomContext(this, localctx);
            this._ctx = localctx;
            _prevctx = localctx;

            this.state = 6267;
            this.constant();
            break;

        case 2:
            localctx = new FullColumnNameExpressionAtomContext(this, localctx);
            this._ctx = localctx;
            _prevctx = localctx;
            this.state = 6268;
            this.fullColumnName();
            break;

        case 3:
            localctx = new FunctionCallExpressionAtomContext(this, localctx);
            this._ctx = localctx;
            _prevctx = localctx;
            this.state = 6269;
            this.functionCall();
            break;

        case 4:
            localctx = new MysqlVariableExpressionAtomContext(this, localctx);
            this._ctx = localctx;
            _prevctx = localctx;
            this.state = 6270;
            this.mysqlVariable();
            break;

        case 5:
            localctx = new UnaryExpressionAtomContext(this, localctx);
            this._ctx = localctx;
            _prevctx = localctx;
            this.state = 6271;
            this.unaryOperator();
            this.state = 6272;
            this.expressionAtom(9);
            break;

        case 6:
            localctx = new BinaryExpressionAtomContext(this, localctx);
            this._ctx = localctx;
            _prevctx = localctx;
            this.state = 6274;
            this.match(SqlParser.BINARY);
            this.state = 6275;
            this.expressionAtom(8);
            break;

        case 7:
            localctx = new NestedExpressionAtomContext(this, localctx);
            this._ctx = localctx;
            _prevctx = localctx;
            this.state = 6276;
            this.match(SqlParser.LR_BRACKET);
            this.state = 6277;
            this.expression(0);
            this.state = 6282;
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            while(_la===SqlParser.COMMA) {
                this.state = 6278;
                this.match(SqlParser.COMMA);
                this.state = 6279;
                this.expression(0);
                this.state = 6284;
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            }
            this.state = 6285;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 8:
            localctx = new NestedRowExpressionAtomContext(this, localctx);
            this._ctx = localctx;
            _prevctx = localctx;
            this.state = 6287;
            this.match(SqlParser.ROW);
            this.state = 6288;
            this.match(SqlParser.LR_BRACKET);
            this.state = 6289;
            this.expression(0);
            this.state = 6292; 
            this._errHandler.sync(this);
            _la = this._input.LA(1);
            do {
                this.state = 6290;
                this.match(SqlParser.COMMA);
                this.state = 6291;
                this.expression(0);
                this.state = 6294; 
                this._errHandler.sync(this);
                _la = this._input.LA(1);
            } while(_la===SqlParser.COMMA);
            this.state = 6296;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 9:
            localctx = new ExistsExpessionAtomContext(this, localctx);
            this._ctx = localctx;
            _prevctx = localctx;
            this.state = 6298;
            this.match(SqlParser.EXISTS);
            this.state = 6299;
            this.match(SqlParser.LR_BRACKET);
            this.state = 6300;
            this.selectStatement();
            this.state = 6301;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 10:
            localctx = new SubqueryExpessionAtomContext(this, localctx);
            this._ctx = localctx;
            _prevctx = localctx;
            this.state = 6303;
            this.match(SqlParser.LR_BRACKET);
            this.state = 6304;
            this.selectStatement();
            this.state = 6305;
            this.match(SqlParser.RR_BRACKET);
            break;

        case 11:
            localctx = new IntervalExpressionAtomContext(this, localctx);
            this._ctx = localctx;
            _prevctx = localctx;
            this.state = 6307;
            this.match(SqlParser.INTERVAL);
            this.state = 6308;
            this.expression(0);
            this.state = 6309;
            this.intervalType();
            break;

        }
        this._ctx.stop = this._input.LT(-1);
        this.state = 6326;
        this._errHandler.sync(this);
        var _alt = this._interp.adaptivePredict(this._input,924,this._ctx)
        while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) {
            if(_alt===1) {
                if(this._parseListeners!==null) {
                    this.triggerExitRuleEvent();
                }
                _prevctx = localctx;
                this.state = 6324;
                this._errHandler.sync(this);
                var la_ = this._interp.adaptivePredict(this._input,923,this._ctx);
                switch(la_) {
                case 1:
                    localctx = new BitExpressionAtomContext(this, new ExpressionAtomContext(this, _parentctx, _parentState));
                    localctx.left = _prevctx;
                    this.pushNewRecursionContext(localctx, _startState, SqlParser.RULE_expressionAtom);
                    this.state = 6313;
                    if (!( this.precpred(this._ctx, 2))) {
                        throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)");
                    }
                    this.state = 6314;
                    this.bitOperator();
                    this.state = 6315;
                    localctx.right = this.expressionAtom(3);
                    break;

                case 2:
                    localctx = new MathExpressionAtomContext(this, new ExpressionAtomContext(this, _parentctx, _parentState));
                    localctx.left = _prevctx;
                    this.pushNewRecursionContext(localctx, _startState, SqlParser.RULE_expressionAtom);
                    this.state = 6317;
                    if (!( this.precpred(this._ctx, 1))) {
                        throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)");
                    }
                    this.state = 6318;
                    this.mathOperator();
                    this.state = 6319;
                    localctx.right = this.expressionAtom(2);
                    break;

                case 3:
                    localctx = new CollateExpressionAtomContext(this, new ExpressionAtomContext(this, _parentctx, _parentState));
                    this.pushNewRecursionContext(localctx, _startState, SqlParser.RULE_expressionAtom);
                    this.state = 6321;
                    if (!( this.precpred(this._ctx, 11))) {
                        throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 11)");
                    }
                    this.state = 6322;
                    this.match(SqlParser.COLLATE);
                    this.state = 6323;
                    this.collationName();
                    break;

                } 
            }
            this.state = 6328;
            this._errHandler.sync(this);
            _alt = this._interp.adaptivePredict(this._input,924,this._ctx);
        }

    } 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 UnaryOperatorContext(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_unaryOperator;
    return this;
}

UnaryOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
UnaryOperatorContext.prototype.constructor = UnaryOperatorContext;

UnaryOperatorContext.prototype.EXCLAMATION_SYMBOL = function() {
    return this.getToken(SqlParser.EXCLAMATION_SYMBOL, 0);
};

UnaryOperatorContext.prototype.BIT_NOT_OP = function() {
    return this.getToken(SqlParser.BIT_NOT_OP, 0);
};

UnaryOperatorContext.prototype.PLUS = function() {
    return this.getToken(SqlParser.PLUS, 0);
};

UnaryOperatorContext.prototype.MINUS = function() {
    return this.getToken(SqlParser.MINUS, 0);
};

UnaryOperatorContext.prototype.NOT = function() {
    return this.getToken(SqlParser.NOT, 0);
};

UnaryOperatorContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterUnaryOperator(this);
	}
};

UnaryOperatorContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitUnaryOperator(this);
	}
};

UnaryOperatorContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitUnaryOperator(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.UnaryOperatorContext = UnaryOperatorContext;

SqlParser.prototype.unaryOperator = function() {

    var localctx = new UnaryOperatorContext(this, this._ctx, this.state);
    this.enterRule(localctx, 608, SqlParser.RULE_unaryOperator);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6329;
        _la = this._input.LA(1);
        if(!(_la===SqlParser.NOT || ((((_la - 1006)) & ~0x1f) == 0 && ((1 << (_la - 1006)) & ((1 << (SqlParser.PLUS - 1006)) | (1 << (SqlParser.MINUS - 1006)) | (1 << (SqlParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (SqlParser.BIT_NOT_OP - 1006)))) !== 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 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.EQUAL_SYMBOL = function() {
    return this.getToken(SqlParser.EQUAL_SYMBOL, 0);
};

ComparisonOperatorContext.prototype.GREATER_SYMBOL = function() {
    return this.getToken(SqlParser.GREATER_SYMBOL, 0);
};

ComparisonOperatorContext.prototype.LESS_SYMBOL = function() {
    return this.getToken(SqlParser.LESS_SYMBOL, 0);
};

ComparisonOperatorContext.prototype.EXCLAMATION_SYMBOL = function() {
    return this.getToken(SqlParser.EXCLAMATION_SYMBOL, 0);
};

ComparisonOperatorContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterComparisonOperator(this);
	}
};

ComparisonOperatorContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitComparisonOperator(this);
	}
};

ComparisonOperatorContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        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, 610, SqlParser.RULE_comparisonOperator);
    try {
        this.state = 6345;
        this._errHandler.sync(this);
        var la_ = this._interp.adaptivePredict(this._input,925,this._ctx);
        switch(la_) {
        case 1:
            this.enterOuterAlt(localctx, 1);
            this.state = 6331;
            this.match(SqlParser.EQUAL_SYMBOL);
            break;

        case 2:
            this.enterOuterAlt(localctx, 2);
            this.state = 6332;
            this.match(SqlParser.GREATER_SYMBOL);
            break;

        case 3:
            this.enterOuterAlt(localctx, 3);
            this.state = 6333;
            this.match(SqlParser.LESS_SYMBOL);
            break;

        case 4:
            this.enterOuterAlt(localctx, 4);
            this.state = 6334;
            this.match(SqlParser.LESS_SYMBOL);
            this.state = 6335;
            this.match(SqlParser.EQUAL_SYMBOL);
            break;

        case 5:
            this.enterOuterAlt(localctx, 5);
            this.state = 6336;
            this.match(SqlParser.GREATER_SYMBOL);
            this.state = 6337;
            this.match(SqlParser.EQUAL_SYMBOL);
            break;

        case 6:
            this.enterOuterAlt(localctx, 6);
            this.state = 6338;
            this.match(SqlParser.LESS_SYMBOL);
            this.state = 6339;
            this.match(SqlParser.GREATER_SYMBOL);
            break;

        case 7:
            this.enterOuterAlt(localctx, 7);
            this.state = 6340;
            this.match(SqlParser.EXCLAMATION_SYMBOL);
            this.state = 6341;
            this.match(SqlParser.EQUAL_SYMBOL);
            break;

        case 8:
            this.enterOuterAlt(localctx, 8);
            this.state = 6342;
            this.match(SqlParser.LESS_SYMBOL);
            this.state = 6343;
            this.match(SqlParser.EQUAL_SYMBOL);
            this.state = 6344;
            this.match(SqlParser.GREATER_SYMBOL);
            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 LogicalOperatorContext(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_logicalOperator;
    return this;
}

LogicalOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
LogicalOperatorContext.prototype.constructor = LogicalOperatorContext;

LogicalOperatorContext.prototype.AND = function() {
    return this.getToken(SqlParser.AND, 0);
};

LogicalOperatorContext.prototype.BIT_AND_OP = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.BIT_AND_OP);
    } else {
        return this.getToken(SqlParser.BIT_AND_OP, i);
    }
};


LogicalOperatorContext.prototype.XOR = function() {
    return this.getToken(SqlParser.XOR, 0);
};

LogicalOperatorContext.prototype.OR = function() {
    return this.getToken(SqlParser.OR, 0);
};

LogicalOperatorContext.prototype.BIT_OR_OP = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.BIT_OR_OP);
    } else {
        return this.getToken(SqlParser.BIT_OR_OP, i);
    }
};


LogicalOperatorContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterLogicalOperator(this);
	}
};

LogicalOperatorContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitLogicalOperator(this);
	}
};

LogicalOperatorContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitLogicalOperator(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.LogicalOperatorContext = LogicalOperatorContext;

SqlParser.prototype.logicalOperator = function() {

    var localctx = new LogicalOperatorContext(this, this._ctx, this.state);
    this.enterRule(localctx, 612, SqlParser.RULE_logicalOperator);
    try {
        this.state = 6354;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.AND:
            this.enterOuterAlt(localctx, 1);
            this.state = 6347;
            this.match(SqlParser.AND);
            break;
        case SqlParser.BIT_AND_OP:
            this.enterOuterAlt(localctx, 2);
            this.state = 6348;
            this.match(SqlParser.BIT_AND_OP);
            this.state = 6349;
            this.match(SqlParser.BIT_AND_OP);
            break;
        case SqlParser.XOR:
            this.enterOuterAlt(localctx, 3);
            this.state = 6350;
            this.match(SqlParser.XOR);
            break;
        case SqlParser.OR:
            this.enterOuterAlt(localctx, 4);
            this.state = 6351;
            this.match(SqlParser.OR);
            break;
        case SqlParser.BIT_OR_OP:
            this.enterOuterAlt(localctx, 5);
            this.state = 6352;
            this.match(SqlParser.BIT_OR_OP);
            this.state = 6353;
            this.match(SqlParser.BIT_OR_OP);
            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 BitOperatorContext(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_bitOperator;
    return this;
}

BitOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
BitOperatorContext.prototype.constructor = BitOperatorContext;

BitOperatorContext.prototype.LESS_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.LESS_SYMBOL);
    } else {
        return this.getToken(SqlParser.LESS_SYMBOL, i);
    }
};


BitOperatorContext.prototype.GREATER_SYMBOL = function(i) {
	if(i===undefined) {
		i = null;
	}
    if(i===null) {
        return this.getTokens(SqlParser.GREATER_SYMBOL);
    } else {
        return this.getToken(SqlParser.GREATER_SYMBOL, i);
    }
};


BitOperatorContext.prototype.BIT_AND_OP = function() {
    return this.getToken(SqlParser.BIT_AND_OP, 0);
};

BitOperatorContext.prototype.BIT_XOR_OP = function() {
    return this.getToken(SqlParser.BIT_XOR_OP, 0);
};

BitOperatorContext.prototype.BIT_OR_OP = function() {
    return this.getToken(SqlParser.BIT_OR_OP, 0);
};

BitOperatorContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterBitOperator(this);
	}
};

BitOperatorContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitBitOperator(this);
	}
};

BitOperatorContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitBitOperator(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.BitOperatorContext = BitOperatorContext;

SqlParser.prototype.bitOperator = function() {

    var localctx = new BitOperatorContext(this, this._ctx, this.state);
    this.enterRule(localctx, 614, SqlParser.RULE_bitOperator);
    try {
        this.state = 6363;
        this._errHandler.sync(this);
        switch(this._input.LA(1)) {
        case SqlParser.LESS_SYMBOL:
            this.enterOuterAlt(localctx, 1);
            this.state = 6356;
            this.match(SqlParser.LESS_SYMBOL);
            this.state = 6357;
            this.match(SqlParser.LESS_SYMBOL);
            break;
        case SqlParser.GREATER_SYMBOL:
            this.enterOuterAlt(localctx, 2);
            this.state = 6358;
            this.match(SqlParser.GREATER_SYMBOL);
            this.state = 6359;
            this.match(SqlParser.GREATER_SYMBOL);
            break;
        case SqlParser.BIT_AND_OP:
            this.enterOuterAlt(localctx, 3);
            this.state = 6360;
            this.match(SqlParser.BIT_AND_OP);
            break;
        case SqlParser.BIT_XOR_OP:
            this.enterOuterAlt(localctx, 4);
            this.state = 6361;
            this.match(SqlParser.BIT_XOR_OP);
            break;
        case SqlParser.BIT_OR_OP:
            this.enterOuterAlt(localctx, 5);
            this.state = 6362;
            this.match(SqlParser.BIT_OR_OP);
            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 MathOperatorContext(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_mathOperator;
    return this;
}

MathOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
MathOperatorContext.prototype.constructor = MathOperatorContext;

MathOperatorContext.prototype.STAR = function() {
    return this.getToken(SqlParser.STAR, 0);
};

MathOperatorContext.prototype.DIVIDE = function() {
    return this.getToken(SqlParser.DIVIDE, 0);
};

MathOperatorContext.prototype.MODULE = function() {
    return this.getToken(SqlParser.MODULE, 0);
};

MathOperatorContext.prototype.DIV = function() {
    return this.getToken(SqlParser.DIV, 0);
};

MathOperatorContext.prototype.MOD = function() {
    return this.getToken(SqlParser.MOD, 0);
};

MathOperatorContext.prototype.PLUS = function() {
    return this.getToken(SqlParser.PLUS, 0);
};

MathOperatorContext.prototype.MINUS = function() {
    return this.getToken(SqlParser.MINUS, 0);
};

MathOperatorContext.prototype.MINUSMINUS = function() {
    return this.getToken(SqlParser.MINUSMINUS, 0);
};

MathOperatorContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterMathOperator(this);
	}
};

MathOperatorContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitMathOperator(this);
	}
};

MathOperatorContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitMathOperator(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.MathOperatorContext = MathOperatorContext;

SqlParser.prototype.mathOperator = function() {

    var localctx = new MathOperatorContext(this, this._ctx, this.state);
    this.enterRule(localctx, 616, SqlParser.RULE_mathOperator);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6365;
        _la = this._input.LA(1);
        if(!(((((_la - 1003)) & ~0x1f) == 0 && ((1 << (_la - 1003)) & ((1 << (SqlParser.STAR - 1003)) | (1 << (SqlParser.DIVIDE - 1003)) | (1 << (SqlParser.MODULE - 1003)) | (1 << (SqlParser.PLUS - 1003)) | (1 << (SqlParser.MINUSMINUS - 1003)) | (1 << (SqlParser.MINUS - 1003)) | (1 << (SqlParser.DIV - 1003)) | (1 << (SqlParser.MOD - 1003)))) !== 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 CharsetNameBaseContext(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_charsetNameBase;
    return this;
}

CharsetNameBaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
CharsetNameBaseContext.prototype.constructor = CharsetNameBaseContext;

CharsetNameBaseContext.prototype.ARMSCII8 = function() {
    return this.getToken(SqlParser.ARMSCII8, 0);
};

CharsetNameBaseContext.prototype.ASCII = function() {
    return this.getToken(SqlParser.ASCII, 0);
};

CharsetNameBaseContext.prototype.BIG5 = function() {
    return this.getToken(SqlParser.BIG5, 0);
};

CharsetNameBaseContext.prototype.CP1250 = function() {
    return this.getToken(SqlParser.CP1250, 0);
};

CharsetNameBaseContext.prototype.CP1251 = function() {
    return this.getToken(SqlParser.CP1251, 0);
};

CharsetNameBaseContext.prototype.CP1256 = function() {
    return this.getToken(SqlParser.CP1256, 0);
};

CharsetNameBaseContext.prototype.CP1257 = function() {
    return this.getToken(SqlParser.CP1257, 0);
};

CharsetNameBaseContext.prototype.CP850 = function() {
    return this.getToken(SqlParser.CP850, 0);
};

CharsetNameBaseContext.prototype.CP852 = function() {
    return this.getToken(SqlParser.CP852, 0);
};

CharsetNameBaseContext.prototype.CP866 = function() {
    return this.getToken(SqlParser.CP866, 0);
};

CharsetNameBaseContext.prototype.CP932 = function() {
    return this.getToken(SqlParser.CP932, 0);
};

CharsetNameBaseContext.prototype.DEC8 = function() {
    return this.getToken(SqlParser.DEC8, 0);
};

CharsetNameBaseContext.prototype.EUCJPMS = function() {
    return this.getToken(SqlParser.EUCJPMS, 0);
};

CharsetNameBaseContext.prototype.EUCKR = function() {
    return this.getToken(SqlParser.EUCKR, 0);
};

CharsetNameBaseContext.prototype.GB2312 = function() {
    return this.getToken(SqlParser.GB2312, 0);
};

CharsetNameBaseContext.prototype.GBK = function() {
    return this.getToken(SqlParser.GBK, 0);
};

CharsetNameBaseContext.prototype.GEOSTD8 = function() {
    return this.getToken(SqlParser.GEOSTD8, 0);
};

CharsetNameBaseContext.prototype.GREEK = function() {
    return this.getToken(SqlParser.GREEK, 0);
};

CharsetNameBaseContext.prototype.HEBREW = function() {
    return this.getToken(SqlParser.HEBREW, 0);
};

CharsetNameBaseContext.prototype.HP8 = function() {
    return this.getToken(SqlParser.HP8, 0);
};

CharsetNameBaseContext.prototype.KEYBCS2 = function() {
    return this.getToken(SqlParser.KEYBCS2, 0);
};

CharsetNameBaseContext.prototype.KOI8R = function() {
    return this.getToken(SqlParser.KOI8R, 0);
};

CharsetNameBaseContext.prototype.KOI8U = function() {
    return this.getToken(SqlParser.KOI8U, 0);
};

CharsetNameBaseContext.prototype.LATIN1 = function() {
    return this.getToken(SqlParser.LATIN1, 0);
};

CharsetNameBaseContext.prototype.LATIN2 = function() {
    return this.getToken(SqlParser.LATIN2, 0);
};

CharsetNameBaseContext.prototype.LATIN5 = function() {
    return this.getToken(SqlParser.LATIN5, 0);
};

CharsetNameBaseContext.prototype.LATIN7 = function() {
    return this.getToken(SqlParser.LATIN7, 0);
};

CharsetNameBaseContext.prototype.MACCE = function() {
    return this.getToken(SqlParser.MACCE, 0);
};

CharsetNameBaseContext.prototype.MACROMAN = function() {
    return this.getToken(SqlParser.MACROMAN, 0);
};

CharsetNameBaseContext.prototype.SJIS = function() {
    return this.getToken(SqlParser.SJIS, 0);
};

CharsetNameBaseContext.prototype.SWE7 = function() {
    return this.getToken(SqlParser.SWE7, 0);
};

CharsetNameBaseContext.prototype.TIS620 = function() {
    return this.getToken(SqlParser.TIS620, 0);
};

CharsetNameBaseContext.prototype.UCS2 = function() {
    return this.getToken(SqlParser.UCS2, 0);
};

CharsetNameBaseContext.prototype.UJIS = function() {
    return this.getToken(SqlParser.UJIS, 0);
};

CharsetNameBaseContext.prototype.UTF16 = function() {
    return this.getToken(SqlParser.UTF16, 0);
};

CharsetNameBaseContext.prototype.UTF16LE = function() {
    return this.getToken(SqlParser.UTF16LE, 0);
};

CharsetNameBaseContext.prototype.UTF32 = function() {
    return this.getToken(SqlParser.UTF32, 0);
};

CharsetNameBaseContext.prototype.UTF8 = function() {
    return this.getToken(SqlParser.UTF8, 0);
};

CharsetNameBaseContext.prototype.UTF8MB3 = function() {
    return this.getToken(SqlParser.UTF8MB3, 0);
};

CharsetNameBaseContext.prototype.UTF8MB4 = function() {
    return this.getToken(SqlParser.UTF8MB4, 0);
};

CharsetNameBaseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterCharsetNameBase(this);
	}
};

CharsetNameBaseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitCharsetNameBase(this);
	}
};

CharsetNameBaseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitCharsetNameBase(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.CharsetNameBaseContext = CharsetNameBaseContext;

SqlParser.prototype.charsetNameBase = function() {

    var localctx = new CharsetNameBaseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 618, SqlParser.RULE_charsetNameBase);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6367;
        _la = this._input.LA(1);
        if(!(((((_la - 637)) & ~0x1f) == 0 && ((1 << (_la - 637)) & ((1 << (SqlParser.ARMSCII8 - 637)) | (1 << (SqlParser.ASCII - 637)) | (1 << (SqlParser.BIG5 - 637)) | (1 << (SqlParser.CP1250 - 637)) | (1 << (SqlParser.CP1251 - 637)) | (1 << (SqlParser.CP1256 - 637)) | (1 << (SqlParser.CP1257 - 637)) | (1 << (SqlParser.CP850 - 637)) | (1 << (SqlParser.CP852 - 637)) | (1 << (SqlParser.CP866 - 637)) | (1 << (SqlParser.CP932 - 637)) | (1 << (SqlParser.DEC8 - 637)) | (1 << (SqlParser.EUCJPMS - 637)) | (1 << (SqlParser.EUCKR - 637)) | (1 << (SqlParser.GB2312 - 637)) | (1 << (SqlParser.GBK - 637)) | (1 << (SqlParser.GEOSTD8 - 637)) | (1 << (SqlParser.GREEK - 637)) | (1 << (SqlParser.HEBREW - 637)) | (1 << (SqlParser.HP8 - 637)) | (1 << (SqlParser.KEYBCS2 - 637)) | (1 << (SqlParser.KOI8R - 637)) | (1 << (SqlParser.KOI8U - 637)) | (1 << (SqlParser.LATIN1 - 637)) | (1 << (SqlParser.LATIN2 - 637)) | (1 << (SqlParser.LATIN5 - 637)) | (1 << (SqlParser.LATIN7 - 637)) | (1 << (SqlParser.MACCE - 637)) | (1 << (SqlParser.MACROMAN - 637)) | (1 << (SqlParser.SJIS - 637)) | (1 << (SqlParser.SWE7 - 637)) | (1 << (SqlParser.TIS620 - 637)))) !== 0) || ((((_la - 669)) & ~0x1f) == 0 && ((1 << (_la - 669)) & ((1 << (SqlParser.UCS2 - 669)) | (1 << (SqlParser.UJIS - 669)) | (1 << (SqlParser.UTF16 - 669)) | (1 << (SqlParser.UTF16LE - 669)) | (1 << (SqlParser.UTF32 - 669)) | (1 << (SqlParser.UTF8 - 669)) | (1 << (SqlParser.UTF8MB3 - 669)) | (1 << (SqlParser.UTF8MB4 - 669)))) !== 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 TransactionLevelBaseContext(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_transactionLevelBase;
    return this;
}

TransactionLevelBaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
TransactionLevelBaseContext.prototype.constructor = TransactionLevelBaseContext;

TransactionLevelBaseContext.prototype.REPEATABLE = function() {
    return this.getToken(SqlParser.REPEATABLE, 0);
};

TransactionLevelBaseContext.prototype.COMMITTED = function() {
    return this.getToken(SqlParser.COMMITTED, 0);
};

TransactionLevelBaseContext.prototype.UNCOMMITTED = function() {
    return this.getToken(SqlParser.UNCOMMITTED, 0);
};

TransactionLevelBaseContext.prototype.SERIALIZABLE = function() {
    return this.getToken(SqlParser.SERIALIZABLE, 0);
};

TransactionLevelBaseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterTransactionLevelBase(this);
	}
};

TransactionLevelBaseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitTransactionLevelBase(this);
	}
};

TransactionLevelBaseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitTransactionLevelBase(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.TransactionLevelBaseContext = TransactionLevelBaseContext;

SqlParser.prototype.transactionLevelBase = function() {

    var localctx = new TransactionLevelBaseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 620, SqlParser.RULE_transactionLevelBase);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6369;
        _la = this._input.LA(1);
        if(!(((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)))) !== 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 PrivilegesBaseContext(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_privilegesBase;
    return this;
}

PrivilegesBaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
PrivilegesBaseContext.prototype.constructor = PrivilegesBaseContext;

PrivilegesBaseContext.prototype.TABLES = function() {
    return this.getToken(SqlParser.TABLES, 0);
};

PrivilegesBaseContext.prototype.ROUTINE = function() {
    return this.getToken(SqlParser.ROUTINE, 0);
};

PrivilegesBaseContext.prototype.EXECUTE = function() {
    return this.getToken(SqlParser.EXECUTE, 0);
};

PrivilegesBaseContext.prototype.FILE = function() {
    return this.getToken(SqlParser.FILE, 0);
};

PrivilegesBaseContext.prototype.PROCESS = function() {
    return this.getToken(SqlParser.PROCESS, 0);
};

PrivilegesBaseContext.prototype.RELOAD = function() {
    return this.getToken(SqlParser.RELOAD, 0);
};

PrivilegesBaseContext.prototype.SHUTDOWN = function() {
    return this.getToken(SqlParser.SHUTDOWN, 0);
};

PrivilegesBaseContext.prototype.SUPER = function() {
    return this.getToken(SqlParser.SUPER, 0);
};

PrivilegesBaseContext.prototype.PRIVILEGES = function() {
    return this.getToken(SqlParser.PRIVILEGES, 0);
};

PrivilegesBaseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterPrivilegesBase(this);
	}
};

PrivilegesBaseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitPrivilegesBase(this);
	}
};

PrivilegesBaseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitPrivilegesBase(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.PrivilegesBaseContext = PrivilegesBaseContext;

SqlParser.prototype.privilegesBase = function() {

    var localctx = new PrivilegesBaseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 622, SqlParser.RULE_privilegesBase);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6371;
        _la = this._input.LA(1);
        if(!(((((_la - 602)) & ~0x1f) == 0 && ((1 << (_la - 602)) & ((1 << (SqlParser.TABLES - 602)) | (1 << (SqlParser.ROUTINE - 602)) | (1 << (SqlParser.EXECUTE - 602)) | (1 << (SqlParser.FILE - 602)) | (1 << (SqlParser.PROCESS - 602)) | (1 << (SqlParser.RELOAD - 602)) | (1 << (SqlParser.SHUTDOWN - 602)) | (1 << (SqlParser.SUPER - 602)) | (1 << (SqlParser.PRIVILEGES - 602)))) !== 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 IntervalTypeBaseContext(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_intervalTypeBase;
    return this;
}

IntervalTypeBaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
IntervalTypeBaseContext.prototype.constructor = IntervalTypeBaseContext;

IntervalTypeBaseContext.prototype.QUARTER = function() {
    return this.getToken(SqlParser.QUARTER, 0);
};

IntervalTypeBaseContext.prototype.MONTH = function() {
    return this.getToken(SqlParser.MONTH, 0);
};

IntervalTypeBaseContext.prototype.DAY = function() {
    return this.getToken(SqlParser.DAY, 0);
};

IntervalTypeBaseContext.prototype.HOUR = function() {
    return this.getToken(SqlParser.HOUR, 0);
};

IntervalTypeBaseContext.prototype.MINUTE = function() {
    return this.getToken(SqlParser.MINUTE, 0);
};

IntervalTypeBaseContext.prototype.WEEK = function() {
    return this.getToken(SqlParser.WEEK, 0);
};

IntervalTypeBaseContext.prototype.SECOND = function() {
    return this.getToken(SqlParser.SECOND, 0);
};

IntervalTypeBaseContext.prototype.MICROSECOND = function() {
    return this.getToken(SqlParser.MICROSECOND, 0);
};

IntervalTypeBaseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterIntervalTypeBase(this);
	}
};

IntervalTypeBaseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitIntervalTypeBase(this);
	}
};

IntervalTypeBaseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitIntervalTypeBase(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.IntervalTypeBaseContext = IntervalTypeBaseContext;

SqlParser.prototype.intervalTypeBase = function() {

    var localctx = new IntervalTypeBaseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 624, SqlParser.RULE_intervalTypeBase);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6373;
        _la = this._input.LA(1);
        if(!(((((_la - 594)) & ~0x1f) == 0 && ((1 << (_la - 594)) & ((1 << (SqlParser.QUARTER - 594)) | (1 << (SqlParser.MONTH - 594)) | (1 << (SqlParser.DAY - 594)) | (1 << (SqlParser.HOUR - 594)) | (1 << (SqlParser.MINUTE - 594)) | (1 << (SqlParser.WEEK - 594)) | (1 << (SqlParser.SECOND - 594)) | (1 << (SqlParser.MICROSECOND - 594)))) !== 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 DataTypeBaseContext(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_dataTypeBase;
    return this;
}

DataTypeBaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
DataTypeBaseContext.prototype.constructor = DataTypeBaseContext;

DataTypeBaseContext.prototype.DATE = function() {
    return this.getToken(SqlParser.DATE, 0);
};

DataTypeBaseContext.prototype.TIME = function() {
    return this.getToken(SqlParser.TIME, 0);
};

DataTypeBaseContext.prototype.TIMESTAMP = function() {
    return this.getToken(SqlParser.TIMESTAMP, 0);
};

DataTypeBaseContext.prototype.DATETIME = function() {
    return this.getToken(SqlParser.DATETIME, 0);
};

DataTypeBaseContext.prototype.YEAR = function() {
    return this.getToken(SqlParser.YEAR, 0);
};

DataTypeBaseContext.prototype.ENUM = function() {
    return this.getToken(SqlParser.ENUM, 0);
};

DataTypeBaseContext.prototype.TEXT = function() {
    return this.getToken(SqlParser.TEXT, 0);
};

DataTypeBaseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterDataTypeBase(this);
	}
};

DataTypeBaseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitDataTypeBase(this);
	}
};

DataTypeBaseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitDataTypeBase(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.DataTypeBaseContext = DataTypeBaseContext;

SqlParser.prototype.dataTypeBase = function() {

    var localctx = new DataTypeBaseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 626, SqlParser.RULE_dataTypeBase);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6375;
        _la = this._input.LA(1);
        if(!(((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)))) !== 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 KeywordsCanBeIdContext(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_keywordsCanBeId;
    return this;
}

KeywordsCanBeIdContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
KeywordsCanBeIdContext.prototype.constructor = KeywordsCanBeIdContext;

KeywordsCanBeIdContext.prototype.ACCOUNT = function() {
    return this.getToken(SqlParser.ACCOUNT, 0);
};

KeywordsCanBeIdContext.prototype.ACTION = function() {
    return this.getToken(SqlParser.ACTION, 0);
};

KeywordsCanBeIdContext.prototype.AFTER = function() {
    return this.getToken(SqlParser.AFTER, 0);
};

KeywordsCanBeIdContext.prototype.AGGREGATE = function() {
    return this.getToken(SqlParser.AGGREGATE, 0);
};

KeywordsCanBeIdContext.prototype.ALGORITHM = function() {
    return this.getToken(SqlParser.ALGORITHM, 0);
};

KeywordsCanBeIdContext.prototype.ANY = function() {
    return this.getToken(SqlParser.ANY, 0);
};

KeywordsCanBeIdContext.prototype.AT = function() {
    return this.getToken(SqlParser.AT, 0);
};

KeywordsCanBeIdContext.prototype.AUDIT_ADMIN = function() {
    return this.getToken(SqlParser.AUDIT_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.AUTHORS = function() {
    return this.getToken(SqlParser.AUTHORS, 0);
};

KeywordsCanBeIdContext.prototype.AUTOCOMMIT = function() {
    return this.getToken(SqlParser.AUTOCOMMIT, 0);
};

KeywordsCanBeIdContext.prototype.AUTOEXTEND_SIZE = function() {
    return this.getToken(SqlParser.AUTOEXTEND_SIZE, 0);
};

KeywordsCanBeIdContext.prototype.AUTO_INCREMENT = function() {
    return this.getToken(SqlParser.AUTO_INCREMENT, 0);
};

KeywordsCanBeIdContext.prototype.AVG_ROW_LENGTH = function() {
    return this.getToken(SqlParser.AVG_ROW_LENGTH, 0);
};

KeywordsCanBeIdContext.prototype.BACKUP_ADMIN = function() {
    return this.getToken(SqlParser.BACKUP_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.BEGIN = function() {
    return this.getToken(SqlParser.BEGIN, 0);
};

KeywordsCanBeIdContext.prototype.BINLOG = function() {
    return this.getToken(SqlParser.BINLOG, 0);
};

KeywordsCanBeIdContext.prototype.BINLOG_ADMIN = function() {
    return this.getToken(SqlParser.BINLOG_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.BINLOG_ENCRYPTION_ADMIN = function() {
    return this.getToken(SqlParser.BINLOG_ENCRYPTION_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.BIT = function() {
    return this.getToken(SqlParser.BIT, 0);
};

KeywordsCanBeIdContext.prototype.BLOCK = function() {
    return this.getToken(SqlParser.BLOCK, 0);
};

KeywordsCanBeIdContext.prototype.BOOL = function() {
    return this.getToken(SqlParser.BOOL, 0);
};

KeywordsCanBeIdContext.prototype.BOOLEAN = function() {
    return this.getToken(SqlParser.BOOLEAN, 0);
};

KeywordsCanBeIdContext.prototype.BTREE = function() {
    return this.getToken(SqlParser.BTREE, 0);
};

KeywordsCanBeIdContext.prototype.CACHE = function() {
    return this.getToken(SqlParser.CACHE, 0);
};

KeywordsCanBeIdContext.prototype.CASCADED = function() {
    return this.getToken(SqlParser.CASCADED, 0);
};

KeywordsCanBeIdContext.prototype.CHAIN = function() {
    return this.getToken(SqlParser.CHAIN, 0);
};

KeywordsCanBeIdContext.prototype.CHANGED = function() {
    return this.getToken(SqlParser.CHANGED, 0);
};

KeywordsCanBeIdContext.prototype.CHANNEL = function() {
    return this.getToken(SqlParser.CHANNEL, 0);
};

KeywordsCanBeIdContext.prototype.CHECKSUM = function() {
    return this.getToken(SqlParser.CHECKSUM, 0);
};

KeywordsCanBeIdContext.prototype.PAGE_CHECKSUM = function() {
    return this.getToken(SqlParser.PAGE_CHECKSUM, 0);
};

KeywordsCanBeIdContext.prototype.CATALOG_NAME = function() {
    return this.getToken(SqlParser.CATALOG_NAME, 0);
};

KeywordsCanBeIdContext.prototype.CIPHER = function() {
    return this.getToken(SqlParser.CIPHER, 0);
};

KeywordsCanBeIdContext.prototype.CLASS_ORIGIN = function() {
    return this.getToken(SqlParser.CLASS_ORIGIN, 0);
};

KeywordsCanBeIdContext.prototype.CLIENT = function() {
    return this.getToken(SqlParser.CLIENT, 0);
};

KeywordsCanBeIdContext.prototype.CLONE_ADMIN = function() {
    return this.getToken(SqlParser.CLONE_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.CLOSE = function() {
    return this.getToken(SqlParser.CLOSE, 0);
};

KeywordsCanBeIdContext.prototype.COALESCE = function() {
    return this.getToken(SqlParser.COALESCE, 0);
};

KeywordsCanBeIdContext.prototype.CODE = function() {
    return this.getToken(SqlParser.CODE, 0);
};

KeywordsCanBeIdContext.prototype.COLUMNS = function() {
    return this.getToken(SqlParser.COLUMNS, 0);
};

KeywordsCanBeIdContext.prototype.COLUMN_FORMAT = function() {
    return this.getToken(SqlParser.COLUMN_FORMAT, 0);
};

KeywordsCanBeIdContext.prototype.COLUMN_NAME = function() {
    return this.getToken(SqlParser.COLUMN_NAME, 0);
};

KeywordsCanBeIdContext.prototype.COMMENT = function() {
    return this.getToken(SqlParser.COMMENT, 0);
};

KeywordsCanBeIdContext.prototype.COMMIT = function() {
    return this.getToken(SqlParser.COMMIT, 0);
};

KeywordsCanBeIdContext.prototype.COMPACT = function() {
    return this.getToken(SqlParser.COMPACT, 0);
};

KeywordsCanBeIdContext.prototype.COMPLETION = function() {
    return this.getToken(SqlParser.COMPLETION, 0);
};

KeywordsCanBeIdContext.prototype.COMPRESSED = function() {
    return this.getToken(SqlParser.COMPRESSED, 0);
};

KeywordsCanBeIdContext.prototype.COMPRESSION = function() {
    return this.getToken(SqlParser.COMPRESSION, 0);
};

KeywordsCanBeIdContext.prototype.CONCURRENT = function() {
    return this.getToken(SqlParser.CONCURRENT, 0);
};

KeywordsCanBeIdContext.prototype.CONNECTION = function() {
    return this.getToken(SqlParser.CONNECTION, 0);
};

KeywordsCanBeIdContext.prototype.CONNECTION_ADMIN = function() {
    return this.getToken(SqlParser.CONNECTION_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.CONSISTENT = function() {
    return this.getToken(SqlParser.CONSISTENT, 0);
};

KeywordsCanBeIdContext.prototype.CONSTRAINT_CATALOG = function() {
    return this.getToken(SqlParser.CONSTRAINT_CATALOG, 0);
};

KeywordsCanBeIdContext.prototype.CONSTRAINT_NAME = function() {
    return this.getToken(SqlParser.CONSTRAINT_NAME, 0);
};

KeywordsCanBeIdContext.prototype.CONSTRAINT_SCHEMA = function() {
    return this.getToken(SqlParser.CONSTRAINT_SCHEMA, 0);
};

KeywordsCanBeIdContext.prototype.CONTAINS = function() {
    return this.getToken(SqlParser.CONTAINS, 0);
};

KeywordsCanBeIdContext.prototype.CONTEXT = function() {
    return this.getToken(SqlParser.CONTEXT, 0);
};

KeywordsCanBeIdContext.prototype.CONTRIBUTORS = function() {
    return this.getToken(SqlParser.CONTRIBUTORS, 0);
};

KeywordsCanBeIdContext.prototype.COPY = function() {
    return this.getToken(SqlParser.COPY, 0);
};

KeywordsCanBeIdContext.prototype.CPU = function() {
    return this.getToken(SqlParser.CPU, 0);
};

KeywordsCanBeIdContext.prototype.CURRENT = function() {
    return this.getToken(SqlParser.CURRENT, 0);
};

KeywordsCanBeIdContext.prototype.CURSOR_NAME = function() {
    return this.getToken(SqlParser.CURSOR_NAME, 0);
};

KeywordsCanBeIdContext.prototype.DATA = function() {
    return this.getToken(SqlParser.DATA, 0);
};

KeywordsCanBeIdContext.prototype.DATAFILE = function() {
    return this.getToken(SqlParser.DATAFILE, 0);
};

KeywordsCanBeIdContext.prototype.DEALLOCATE = function() {
    return this.getToken(SqlParser.DEALLOCATE, 0);
};

KeywordsCanBeIdContext.prototype.DEFAULT_AUTH = function() {
    return this.getToken(SqlParser.DEFAULT_AUTH, 0);
};

KeywordsCanBeIdContext.prototype.DEFINER = function() {
    return this.getToken(SqlParser.DEFINER, 0);
};

KeywordsCanBeIdContext.prototype.DELAY_KEY_WRITE = function() {
    return this.getToken(SqlParser.DELAY_KEY_WRITE, 0);
};

KeywordsCanBeIdContext.prototype.DES_KEY_FILE = function() {
    return this.getToken(SqlParser.DES_KEY_FILE, 0);
};

KeywordsCanBeIdContext.prototype.DIAGNOSTICS = function() {
    return this.getToken(SqlParser.DIAGNOSTICS, 0);
};

KeywordsCanBeIdContext.prototype.DIRECTORY = function() {
    return this.getToken(SqlParser.DIRECTORY, 0);
};

KeywordsCanBeIdContext.prototype.DISABLE = function() {
    return this.getToken(SqlParser.DISABLE, 0);
};

KeywordsCanBeIdContext.prototype.DISCARD = function() {
    return this.getToken(SqlParser.DISCARD, 0);
};

KeywordsCanBeIdContext.prototype.DISK = function() {
    return this.getToken(SqlParser.DISK, 0);
};

KeywordsCanBeIdContext.prototype.DO = function() {
    return this.getToken(SqlParser.DO, 0);
};

KeywordsCanBeIdContext.prototype.DUMPFILE = function() {
    return this.getToken(SqlParser.DUMPFILE, 0);
};

KeywordsCanBeIdContext.prototype.DUPLICATE = function() {
    return this.getToken(SqlParser.DUPLICATE, 0);
};

KeywordsCanBeIdContext.prototype.DYNAMIC = function() {
    return this.getToken(SqlParser.DYNAMIC, 0);
};

KeywordsCanBeIdContext.prototype.ENABLE = function() {
    return this.getToken(SqlParser.ENABLE, 0);
};

KeywordsCanBeIdContext.prototype.ENCRYPTION = function() {
    return this.getToken(SqlParser.ENCRYPTION, 0);
};

KeywordsCanBeIdContext.prototype.ENCRYPTION_KEY_ADMIN = function() {
    return this.getToken(SqlParser.ENCRYPTION_KEY_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.END = function() {
    return this.getToken(SqlParser.END, 0);
};

KeywordsCanBeIdContext.prototype.ENDS = function() {
    return this.getToken(SqlParser.ENDS, 0);
};

KeywordsCanBeIdContext.prototype.ENGINE = function() {
    return this.getToken(SqlParser.ENGINE, 0);
};

KeywordsCanBeIdContext.prototype.ENGINES = function() {
    return this.getToken(SqlParser.ENGINES, 0);
};

KeywordsCanBeIdContext.prototype.ERROR = function() {
    return this.getToken(SqlParser.ERROR, 0);
};

KeywordsCanBeIdContext.prototype.ERRORS = function() {
    return this.getToken(SqlParser.ERRORS, 0);
};

KeywordsCanBeIdContext.prototype.ESCAPE = function() {
    return this.getToken(SqlParser.ESCAPE, 0);
};

KeywordsCanBeIdContext.prototype.EVEN = function() {
    return this.getToken(SqlParser.EVEN, 0);
};

KeywordsCanBeIdContext.prototype.EVENT = function() {
    return this.getToken(SqlParser.EVENT, 0);
};

KeywordsCanBeIdContext.prototype.EVENTS = function() {
    return this.getToken(SqlParser.EVENTS, 0);
};

KeywordsCanBeIdContext.prototype.EVERY = function() {
    return this.getToken(SqlParser.EVERY, 0);
};

KeywordsCanBeIdContext.prototype.EXCHANGE = function() {
    return this.getToken(SqlParser.EXCHANGE, 0);
};

KeywordsCanBeIdContext.prototype.EXCLUSIVE = function() {
    return this.getToken(SqlParser.EXCLUSIVE, 0);
};

KeywordsCanBeIdContext.prototype.EXPIRE = function() {
    return this.getToken(SqlParser.EXPIRE, 0);
};

KeywordsCanBeIdContext.prototype.EXPORT = function() {
    return this.getToken(SqlParser.EXPORT, 0);
};

KeywordsCanBeIdContext.prototype.EXTENDED = function() {
    return this.getToken(SqlParser.EXTENDED, 0);
};

KeywordsCanBeIdContext.prototype.EXTENT_SIZE = function() {
    return this.getToken(SqlParser.EXTENT_SIZE, 0);
};

KeywordsCanBeIdContext.prototype.FAST = function() {
    return this.getToken(SqlParser.FAST, 0);
};

KeywordsCanBeIdContext.prototype.FAULTS = function() {
    return this.getToken(SqlParser.FAULTS, 0);
};

KeywordsCanBeIdContext.prototype.FIELDS = function() {
    return this.getToken(SqlParser.FIELDS, 0);
};

KeywordsCanBeIdContext.prototype.FILE_BLOCK_SIZE = function() {
    return this.getToken(SqlParser.FILE_BLOCK_SIZE, 0);
};

KeywordsCanBeIdContext.prototype.FILTER = function() {
    return this.getToken(SqlParser.FILTER, 0);
};

KeywordsCanBeIdContext.prototype.FIREWALL_ADMIN = function() {
    return this.getToken(SqlParser.FIREWALL_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.FIREWALL_USER = function() {
    return this.getToken(SqlParser.FIREWALL_USER, 0);
};

KeywordsCanBeIdContext.prototype.FIRST = function() {
    return this.getToken(SqlParser.FIRST, 0);
};

KeywordsCanBeIdContext.prototype.FIXED = function() {
    return this.getToken(SqlParser.FIXED, 0);
};

KeywordsCanBeIdContext.prototype.FLUSH = function() {
    return this.getToken(SqlParser.FLUSH, 0);
};

KeywordsCanBeIdContext.prototype.FOLLOWS = function() {
    return this.getToken(SqlParser.FOLLOWS, 0);
};

KeywordsCanBeIdContext.prototype.FOUND = function() {
    return this.getToken(SqlParser.FOUND, 0);
};

KeywordsCanBeIdContext.prototype.FULL = function() {
    return this.getToken(SqlParser.FULL, 0);
};

KeywordsCanBeIdContext.prototype.FUNCTION = function() {
    return this.getToken(SqlParser.FUNCTION, 0);
};

KeywordsCanBeIdContext.prototype.GENERAL = function() {
    return this.getToken(SqlParser.GENERAL, 0);
};

KeywordsCanBeIdContext.prototype.GLOBAL = function() {
    return this.getToken(SqlParser.GLOBAL, 0);
};

KeywordsCanBeIdContext.prototype.GRANTS = function() {
    return this.getToken(SqlParser.GRANTS, 0);
};

KeywordsCanBeIdContext.prototype.GROUP_REPLICATION = function() {
    return this.getToken(SqlParser.GROUP_REPLICATION, 0);
};

KeywordsCanBeIdContext.prototype.GROUP_REPLICATION_ADMIN = function() {
    return this.getToken(SqlParser.GROUP_REPLICATION_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.HANDLER = function() {
    return this.getToken(SqlParser.HANDLER, 0);
};

KeywordsCanBeIdContext.prototype.HASH = function() {
    return this.getToken(SqlParser.HASH, 0);
};

KeywordsCanBeIdContext.prototype.HELP = function() {
    return this.getToken(SqlParser.HELP, 0);
};

KeywordsCanBeIdContext.prototype.HOST = function() {
    return this.getToken(SqlParser.HOST, 0);
};

KeywordsCanBeIdContext.prototype.HOSTS = function() {
    return this.getToken(SqlParser.HOSTS, 0);
};

KeywordsCanBeIdContext.prototype.IDENTIFIED = function() {
    return this.getToken(SqlParser.IDENTIFIED, 0);
};

KeywordsCanBeIdContext.prototype.IGNORE_SERVER_IDS = function() {
    return this.getToken(SqlParser.IGNORE_SERVER_IDS, 0);
};

KeywordsCanBeIdContext.prototype.IMPORT = function() {
    return this.getToken(SqlParser.IMPORT, 0);
};

KeywordsCanBeIdContext.prototype.INDEXES = function() {
    return this.getToken(SqlParser.INDEXES, 0);
};

KeywordsCanBeIdContext.prototype.INITIAL_SIZE = function() {
    return this.getToken(SqlParser.INITIAL_SIZE, 0);
};

KeywordsCanBeIdContext.prototype.INNODB_REDO_LOG_ARCHIVE = function() {
    return this.getToken(SqlParser.INNODB_REDO_LOG_ARCHIVE, 0);
};

KeywordsCanBeIdContext.prototype.INPLACE = function() {
    return this.getToken(SqlParser.INPLACE, 0);
};

KeywordsCanBeIdContext.prototype.INSERT_METHOD = function() {
    return this.getToken(SqlParser.INSERT_METHOD, 0);
};

KeywordsCanBeIdContext.prototype.INSTALL = function() {
    return this.getToken(SqlParser.INSTALL, 0);
};

KeywordsCanBeIdContext.prototype.INSTANCE = function() {
    return this.getToken(SqlParser.INSTANCE, 0);
};

KeywordsCanBeIdContext.prototype.INTERNAL = function() {
    return this.getToken(SqlParser.INTERNAL, 0);
};

KeywordsCanBeIdContext.prototype.INVOKER = function() {
    return this.getToken(SqlParser.INVOKER, 0);
};

KeywordsCanBeIdContext.prototype.IO = function() {
    return this.getToken(SqlParser.IO, 0);
};

KeywordsCanBeIdContext.prototype.IO_THREAD = function() {
    return this.getToken(SqlParser.IO_THREAD, 0);
};

KeywordsCanBeIdContext.prototype.IPC = function() {
    return this.getToken(SqlParser.IPC, 0);
};

KeywordsCanBeIdContext.prototype.ISOLATION = function() {
    return this.getToken(SqlParser.ISOLATION, 0);
};

KeywordsCanBeIdContext.prototype.ISSUER = function() {
    return this.getToken(SqlParser.ISSUER, 0);
};

KeywordsCanBeIdContext.prototype.JSON = function() {
    return this.getToken(SqlParser.JSON, 0);
};

KeywordsCanBeIdContext.prototype.KEY_BLOCK_SIZE = function() {
    return this.getToken(SqlParser.KEY_BLOCK_SIZE, 0);
};

KeywordsCanBeIdContext.prototype.LANGUAGE = function() {
    return this.getToken(SqlParser.LANGUAGE, 0);
};

KeywordsCanBeIdContext.prototype.LAST = function() {
    return this.getToken(SqlParser.LAST, 0);
};

KeywordsCanBeIdContext.prototype.LEAVES = function() {
    return this.getToken(SqlParser.LEAVES, 0);
};

KeywordsCanBeIdContext.prototype.LESS = function() {
    return this.getToken(SqlParser.LESS, 0);
};

KeywordsCanBeIdContext.prototype.LEVEL = function() {
    return this.getToken(SqlParser.LEVEL, 0);
};

KeywordsCanBeIdContext.prototype.LIST = function() {
    return this.getToken(SqlParser.LIST, 0);
};

KeywordsCanBeIdContext.prototype.LOCAL = function() {
    return this.getToken(SqlParser.LOCAL, 0);
};

KeywordsCanBeIdContext.prototype.LOGFILE = function() {
    return this.getToken(SqlParser.LOGFILE, 0);
};

KeywordsCanBeIdContext.prototype.LOGS = function() {
    return this.getToken(SqlParser.LOGS, 0);
};

KeywordsCanBeIdContext.prototype.MASTER = function() {
    return this.getToken(SqlParser.MASTER, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_AUTO_POSITION = function() {
    return this.getToken(SqlParser.MASTER_AUTO_POSITION, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_CONNECT_RETRY = function() {
    return this.getToken(SqlParser.MASTER_CONNECT_RETRY, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_DELAY = function() {
    return this.getToken(SqlParser.MASTER_DELAY, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_HEARTBEAT_PERIOD = function() {
    return this.getToken(SqlParser.MASTER_HEARTBEAT_PERIOD, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_HOST = function() {
    return this.getToken(SqlParser.MASTER_HOST, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_LOG_FILE = function() {
    return this.getToken(SqlParser.MASTER_LOG_FILE, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_LOG_POS = function() {
    return this.getToken(SqlParser.MASTER_LOG_POS, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_PASSWORD = function() {
    return this.getToken(SqlParser.MASTER_PASSWORD, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_PORT = function() {
    return this.getToken(SqlParser.MASTER_PORT, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_RETRY_COUNT = function() {
    return this.getToken(SqlParser.MASTER_RETRY_COUNT, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_SSL = function() {
    return this.getToken(SqlParser.MASTER_SSL, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_SSL_CA = function() {
    return this.getToken(SqlParser.MASTER_SSL_CA, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_SSL_CAPATH = function() {
    return this.getToken(SqlParser.MASTER_SSL_CAPATH, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_SSL_CERT = function() {
    return this.getToken(SqlParser.MASTER_SSL_CERT, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_SSL_CIPHER = function() {
    return this.getToken(SqlParser.MASTER_SSL_CIPHER, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_SSL_CRL = function() {
    return this.getToken(SqlParser.MASTER_SSL_CRL, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_SSL_CRLPATH = function() {
    return this.getToken(SqlParser.MASTER_SSL_CRLPATH, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_SSL_KEY = function() {
    return this.getToken(SqlParser.MASTER_SSL_KEY, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_TLS_VERSION = function() {
    return this.getToken(SqlParser.MASTER_TLS_VERSION, 0);
};

KeywordsCanBeIdContext.prototype.MASTER_USER = function() {
    return this.getToken(SqlParser.MASTER_USER, 0);
};

KeywordsCanBeIdContext.prototype.MAX_CONNECTIONS_PER_HOUR = function() {
    return this.getToken(SqlParser.MAX_CONNECTIONS_PER_HOUR, 0);
};

KeywordsCanBeIdContext.prototype.MAX_QUERIES_PER_HOUR = function() {
    return this.getToken(SqlParser.MAX_QUERIES_PER_HOUR, 0);
};

KeywordsCanBeIdContext.prototype.MAX_ROWS = function() {
    return this.getToken(SqlParser.MAX_ROWS, 0);
};

KeywordsCanBeIdContext.prototype.MAX_SIZE = function() {
    return this.getToken(SqlParser.MAX_SIZE, 0);
};

KeywordsCanBeIdContext.prototype.MAX_UPDATES_PER_HOUR = function() {
    return this.getToken(SqlParser.MAX_UPDATES_PER_HOUR, 0);
};

KeywordsCanBeIdContext.prototype.MAX_USER_CONNECTIONS = function() {
    return this.getToken(SqlParser.MAX_USER_CONNECTIONS, 0);
};

KeywordsCanBeIdContext.prototype.MEDIUM = function() {
    return this.getToken(SqlParser.MEDIUM, 0);
};

KeywordsCanBeIdContext.prototype.MEMORY = function() {
    return this.getToken(SqlParser.MEMORY, 0);
};

KeywordsCanBeIdContext.prototype.MERGE = function() {
    return this.getToken(SqlParser.MERGE, 0);
};

KeywordsCanBeIdContext.prototype.MESSAGE_TEXT = function() {
    return this.getToken(SqlParser.MESSAGE_TEXT, 0);
};

KeywordsCanBeIdContext.prototype.MID = function() {
    return this.getToken(SqlParser.MID, 0);
};

KeywordsCanBeIdContext.prototype.MIGRATE = function() {
    return this.getToken(SqlParser.MIGRATE, 0);
};

KeywordsCanBeIdContext.prototype.MIN_ROWS = function() {
    return this.getToken(SqlParser.MIN_ROWS, 0);
};

KeywordsCanBeIdContext.prototype.MODE = function() {
    return this.getToken(SqlParser.MODE, 0);
};

KeywordsCanBeIdContext.prototype.MODIFY = function() {
    return this.getToken(SqlParser.MODIFY, 0);
};

KeywordsCanBeIdContext.prototype.MUTEX = function() {
    return this.getToken(SqlParser.MUTEX, 0);
};

KeywordsCanBeIdContext.prototype.MYSQL = function() {
    return this.getToken(SqlParser.MYSQL, 0);
};

KeywordsCanBeIdContext.prototype.MYSQL_ERRNO = function() {
    return this.getToken(SqlParser.MYSQL_ERRNO, 0);
};

KeywordsCanBeIdContext.prototype.NAME = function() {
    return this.getToken(SqlParser.NAME, 0);
};

KeywordsCanBeIdContext.prototype.NAMES = function() {
    return this.getToken(SqlParser.NAMES, 0);
};

KeywordsCanBeIdContext.prototype.NCHAR = function() {
    return this.getToken(SqlParser.NCHAR, 0);
};

KeywordsCanBeIdContext.prototype.NDB_STORED_USER = function() {
    return this.getToken(SqlParser.NDB_STORED_USER, 0);
};

KeywordsCanBeIdContext.prototype.NEVER = function() {
    return this.getToken(SqlParser.NEVER, 0);
};

KeywordsCanBeIdContext.prototype.NEXT = function() {
    return this.getToken(SqlParser.NEXT, 0);
};

KeywordsCanBeIdContext.prototype.NO = function() {
    return this.getToken(SqlParser.NO, 0);
};

KeywordsCanBeIdContext.prototype.NODEGROUP = function() {
    return this.getToken(SqlParser.NODEGROUP, 0);
};

KeywordsCanBeIdContext.prototype.NONE = function() {
    return this.getToken(SqlParser.NONE, 0);
};

KeywordsCanBeIdContext.prototype.NUMBER = function() {
    return this.getToken(SqlParser.NUMBER, 0);
};

KeywordsCanBeIdContext.prototype.OFFLINE = function() {
    return this.getToken(SqlParser.OFFLINE, 0);
};

KeywordsCanBeIdContext.prototype.OFFSET = function() {
    return this.getToken(SqlParser.OFFSET, 0);
};

KeywordsCanBeIdContext.prototype.OJ = function() {
    return this.getToken(SqlParser.OJ, 0);
};

KeywordsCanBeIdContext.prototype.OLD_PASSWORD = function() {
    return this.getToken(SqlParser.OLD_PASSWORD, 0);
};

KeywordsCanBeIdContext.prototype.ONE = function() {
    return this.getToken(SqlParser.ONE, 0);
};

KeywordsCanBeIdContext.prototype.ONLINE = function() {
    return this.getToken(SqlParser.ONLINE, 0);
};

KeywordsCanBeIdContext.prototype.ONLY = function() {
    return this.getToken(SqlParser.ONLY, 0);
};

KeywordsCanBeIdContext.prototype.OPEN = function() {
    return this.getToken(SqlParser.OPEN, 0);
};

KeywordsCanBeIdContext.prototype.OPTIMIZER_COSTS = function() {
    return this.getToken(SqlParser.OPTIMIZER_COSTS, 0);
};

KeywordsCanBeIdContext.prototype.OPTIONS = function() {
    return this.getToken(SqlParser.OPTIONS, 0);
};

KeywordsCanBeIdContext.prototype.OWNER = function() {
    return this.getToken(SqlParser.OWNER, 0);
};

KeywordsCanBeIdContext.prototype.PACK_KEYS = function() {
    return this.getToken(SqlParser.PACK_KEYS, 0);
};

KeywordsCanBeIdContext.prototype.PAGE = function() {
    return this.getToken(SqlParser.PAGE, 0);
};

KeywordsCanBeIdContext.prototype.PARSER = function() {
    return this.getToken(SqlParser.PARSER, 0);
};

KeywordsCanBeIdContext.prototype.PARTIAL = function() {
    return this.getToken(SqlParser.PARTIAL, 0);
};

KeywordsCanBeIdContext.prototype.PARTITIONING = function() {
    return this.getToken(SqlParser.PARTITIONING, 0);
};

KeywordsCanBeIdContext.prototype.PARTITIONS = function() {
    return this.getToken(SqlParser.PARTITIONS, 0);
};

KeywordsCanBeIdContext.prototype.PASSWORD = function() {
    return this.getToken(SqlParser.PASSWORD, 0);
};

KeywordsCanBeIdContext.prototype.PERSIST_RO_VARIABLES_ADMIN = function() {
    return this.getToken(SqlParser.PERSIST_RO_VARIABLES_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.PHASE = function() {
    return this.getToken(SqlParser.PHASE, 0);
};

KeywordsCanBeIdContext.prototype.PLUGINS = function() {
    return this.getToken(SqlParser.PLUGINS, 0);
};

KeywordsCanBeIdContext.prototype.PLUGIN_DIR = function() {
    return this.getToken(SqlParser.PLUGIN_DIR, 0);
};

KeywordsCanBeIdContext.prototype.PLUGIN = function() {
    return this.getToken(SqlParser.PLUGIN, 0);
};

KeywordsCanBeIdContext.prototype.PORT = function() {
    return this.getToken(SqlParser.PORT, 0);
};

KeywordsCanBeIdContext.prototype.PRECEDES = function() {
    return this.getToken(SqlParser.PRECEDES, 0);
};

KeywordsCanBeIdContext.prototype.PREPARE = function() {
    return this.getToken(SqlParser.PREPARE, 0);
};

KeywordsCanBeIdContext.prototype.PRESERVE = function() {
    return this.getToken(SqlParser.PRESERVE, 0);
};

KeywordsCanBeIdContext.prototype.PREV = function() {
    return this.getToken(SqlParser.PREV, 0);
};

KeywordsCanBeIdContext.prototype.PROCESSLIST = function() {
    return this.getToken(SqlParser.PROCESSLIST, 0);
};

KeywordsCanBeIdContext.prototype.PROFILE = function() {
    return this.getToken(SqlParser.PROFILE, 0);
};

KeywordsCanBeIdContext.prototype.PROFILES = function() {
    return this.getToken(SqlParser.PROFILES, 0);
};

KeywordsCanBeIdContext.prototype.PROXY = function() {
    return this.getToken(SqlParser.PROXY, 0);
};

KeywordsCanBeIdContext.prototype.QUERY = function() {
    return this.getToken(SqlParser.QUERY, 0);
};

KeywordsCanBeIdContext.prototype.QUICK = function() {
    return this.getToken(SqlParser.QUICK, 0);
};

KeywordsCanBeIdContext.prototype.REBUILD = function() {
    return this.getToken(SqlParser.REBUILD, 0);
};

KeywordsCanBeIdContext.prototype.RECOVER = function() {
    return this.getToken(SqlParser.RECOVER, 0);
};

KeywordsCanBeIdContext.prototype.REDO_BUFFER_SIZE = function() {
    return this.getToken(SqlParser.REDO_BUFFER_SIZE, 0);
};

KeywordsCanBeIdContext.prototype.REDUNDANT = function() {
    return this.getToken(SqlParser.REDUNDANT, 0);
};

KeywordsCanBeIdContext.prototype.RELAY = function() {
    return this.getToken(SqlParser.RELAY, 0);
};

KeywordsCanBeIdContext.prototype.RELAYLOG = function() {
    return this.getToken(SqlParser.RELAYLOG, 0);
};

KeywordsCanBeIdContext.prototype.RELAY_LOG_FILE = function() {
    return this.getToken(SqlParser.RELAY_LOG_FILE, 0);
};

KeywordsCanBeIdContext.prototype.RELAY_LOG_POS = function() {
    return this.getToken(SqlParser.RELAY_LOG_POS, 0);
};

KeywordsCanBeIdContext.prototype.REMOVE = function() {
    return this.getToken(SqlParser.REMOVE, 0);
};

KeywordsCanBeIdContext.prototype.REORGANIZE = function() {
    return this.getToken(SqlParser.REORGANIZE, 0);
};

KeywordsCanBeIdContext.prototype.REPAIR = function() {
    return this.getToken(SqlParser.REPAIR, 0);
};

KeywordsCanBeIdContext.prototype.REPLICATE_DO_DB = function() {
    return this.getToken(SqlParser.REPLICATE_DO_DB, 0);
};

KeywordsCanBeIdContext.prototype.REPLICATE_DO_TABLE = function() {
    return this.getToken(SqlParser.REPLICATE_DO_TABLE, 0);
};

KeywordsCanBeIdContext.prototype.REPLICATE_IGNORE_DB = function() {
    return this.getToken(SqlParser.REPLICATE_IGNORE_DB, 0);
};

KeywordsCanBeIdContext.prototype.REPLICATE_IGNORE_TABLE = function() {
    return this.getToken(SqlParser.REPLICATE_IGNORE_TABLE, 0);
};

KeywordsCanBeIdContext.prototype.REPLICATE_REWRITE_DB = function() {
    return this.getToken(SqlParser.REPLICATE_REWRITE_DB, 0);
};

KeywordsCanBeIdContext.prototype.REPLICATE_WILD_DO_TABLE = function() {
    return this.getToken(SqlParser.REPLICATE_WILD_DO_TABLE, 0);
};

KeywordsCanBeIdContext.prototype.REPLICATE_WILD_IGNORE_TABLE = function() {
    return this.getToken(SqlParser.REPLICATE_WILD_IGNORE_TABLE, 0);
};

KeywordsCanBeIdContext.prototype.REPLICATION = function() {
    return this.getToken(SqlParser.REPLICATION, 0);
};

KeywordsCanBeIdContext.prototype.REPLICATION_APPLIER = function() {
    return this.getToken(SqlParser.REPLICATION_APPLIER, 0);
};

KeywordsCanBeIdContext.prototype.REPLICATION_SLAVE_ADMIN = function() {
    return this.getToken(SqlParser.REPLICATION_SLAVE_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.RESET = function() {
    return this.getToken(SqlParser.RESET, 0);
};

KeywordsCanBeIdContext.prototype.RESOURCE_GROUP_ADMIN = function() {
    return this.getToken(SqlParser.RESOURCE_GROUP_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.RESOURCE_GROUP_USER = function() {
    return this.getToken(SqlParser.RESOURCE_GROUP_USER, 0);
};

KeywordsCanBeIdContext.prototype.RESUME = function() {
    return this.getToken(SqlParser.RESUME, 0);
};

KeywordsCanBeIdContext.prototype.RETURNED_SQLSTATE = function() {
    return this.getToken(SqlParser.RETURNED_SQLSTATE, 0);
};

KeywordsCanBeIdContext.prototype.RETURNS = function() {
    return this.getToken(SqlParser.RETURNS, 0);
};

KeywordsCanBeIdContext.prototype.ROLE = function() {
    return this.getToken(SqlParser.ROLE, 0);
};

KeywordsCanBeIdContext.prototype.ROLE_ADMIN = function() {
    return this.getToken(SqlParser.ROLE_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.ROLLBACK = function() {
    return this.getToken(SqlParser.ROLLBACK, 0);
};

KeywordsCanBeIdContext.prototype.ROLLUP = function() {
    return this.getToken(SqlParser.ROLLUP, 0);
};

KeywordsCanBeIdContext.prototype.ROTATE = function() {
    return this.getToken(SqlParser.ROTATE, 0);
};

KeywordsCanBeIdContext.prototype.ROW = function() {
    return this.getToken(SqlParser.ROW, 0);
};

KeywordsCanBeIdContext.prototype.ROWS = function() {
    return this.getToken(SqlParser.ROWS, 0);
};

KeywordsCanBeIdContext.prototype.ROW_FORMAT = function() {
    return this.getToken(SqlParser.ROW_FORMAT, 0);
};

KeywordsCanBeIdContext.prototype.SAVEPOINT = function() {
    return this.getToken(SqlParser.SAVEPOINT, 0);
};

KeywordsCanBeIdContext.prototype.SCHEDULE = function() {
    return this.getToken(SqlParser.SCHEDULE, 0);
};

KeywordsCanBeIdContext.prototype.SCHEMA_NAME = function() {
    return this.getToken(SqlParser.SCHEMA_NAME, 0);
};

KeywordsCanBeIdContext.prototype.SECURITY = function() {
    return this.getToken(SqlParser.SECURITY, 0);
};

KeywordsCanBeIdContext.prototype.SERIAL = function() {
    return this.getToken(SqlParser.SERIAL, 0);
};

KeywordsCanBeIdContext.prototype.SERVER = function() {
    return this.getToken(SqlParser.SERVER, 0);
};

KeywordsCanBeIdContext.prototype.SESSION = function() {
    return this.getToken(SqlParser.SESSION, 0);
};

KeywordsCanBeIdContext.prototype.SESSION_VARIABLES_ADMIN = function() {
    return this.getToken(SqlParser.SESSION_VARIABLES_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.SET_USER_ID = function() {
    return this.getToken(SqlParser.SET_USER_ID, 0);
};

KeywordsCanBeIdContext.prototype.SHARE = function() {
    return this.getToken(SqlParser.SHARE, 0);
};

KeywordsCanBeIdContext.prototype.SHARED = function() {
    return this.getToken(SqlParser.SHARED, 0);
};

KeywordsCanBeIdContext.prototype.SHOW_ROUTINE = function() {
    return this.getToken(SqlParser.SHOW_ROUTINE, 0);
};

KeywordsCanBeIdContext.prototype.SIGNED = function() {
    return this.getToken(SqlParser.SIGNED, 0);
};

KeywordsCanBeIdContext.prototype.SIMPLE = function() {
    return this.getToken(SqlParser.SIMPLE, 0);
};

KeywordsCanBeIdContext.prototype.SLAVE = function() {
    return this.getToken(SqlParser.SLAVE, 0);
};

KeywordsCanBeIdContext.prototype.SLOW = function() {
    return this.getToken(SqlParser.SLOW, 0);
};

KeywordsCanBeIdContext.prototype.SNAPSHOT = function() {
    return this.getToken(SqlParser.SNAPSHOT, 0);
};

KeywordsCanBeIdContext.prototype.SOCKET = function() {
    return this.getToken(SqlParser.SOCKET, 0);
};

KeywordsCanBeIdContext.prototype.SOME = function() {
    return this.getToken(SqlParser.SOME, 0);
};

KeywordsCanBeIdContext.prototype.SONAME = function() {
    return this.getToken(SqlParser.SONAME, 0);
};

KeywordsCanBeIdContext.prototype.SOUNDS = function() {
    return this.getToken(SqlParser.SOUNDS, 0);
};

KeywordsCanBeIdContext.prototype.SOURCE = function() {
    return this.getToken(SqlParser.SOURCE, 0);
};

KeywordsCanBeIdContext.prototype.SQL_AFTER_GTIDS = function() {
    return this.getToken(SqlParser.SQL_AFTER_GTIDS, 0);
};

KeywordsCanBeIdContext.prototype.SQL_AFTER_MTS_GAPS = function() {
    return this.getToken(SqlParser.SQL_AFTER_MTS_GAPS, 0);
};

KeywordsCanBeIdContext.prototype.SQL_BEFORE_GTIDS = function() {
    return this.getToken(SqlParser.SQL_BEFORE_GTIDS, 0);
};

KeywordsCanBeIdContext.prototype.SQL_BUFFER_RESULT = function() {
    return this.getToken(SqlParser.SQL_BUFFER_RESULT, 0);
};

KeywordsCanBeIdContext.prototype.SQL_CACHE = function() {
    return this.getToken(SqlParser.SQL_CACHE, 0);
};

KeywordsCanBeIdContext.prototype.SQL_NO_CACHE = function() {
    return this.getToken(SqlParser.SQL_NO_CACHE, 0);
};

KeywordsCanBeIdContext.prototype.SQL_THREAD = function() {
    return this.getToken(SqlParser.SQL_THREAD, 0);
};

KeywordsCanBeIdContext.prototype.STACKED = function() {
    return this.getToken(SqlParser.STACKED, 0);
};

KeywordsCanBeIdContext.prototype.START = function() {
    return this.getToken(SqlParser.START, 0);
};

KeywordsCanBeIdContext.prototype.STARTS = function() {
    return this.getToken(SqlParser.STARTS, 0);
};

KeywordsCanBeIdContext.prototype.STATS_AUTO_RECALC = function() {
    return this.getToken(SqlParser.STATS_AUTO_RECALC, 0);
};

KeywordsCanBeIdContext.prototype.STATS_PERSISTENT = function() {
    return this.getToken(SqlParser.STATS_PERSISTENT, 0);
};

KeywordsCanBeIdContext.prototype.STATS_SAMPLE_PAGES = function() {
    return this.getToken(SqlParser.STATS_SAMPLE_PAGES, 0);
};

KeywordsCanBeIdContext.prototype.STATUS = function() {
    return this.getToken(SqlParser.STATUS, 0);
};

KeywordsCanBeIdContext.prototype.STOP = function() {
    return this.getToken(SqlParser.STOP, 0);
};

KeywordsCanBeIdContext.prototype.STORAGE = function() {
    return this.getToken(SqlParser.STORAGE, 0);
};

KeywordsCanBeIdContext.prototype.STRING = function() {
    return this.getToken(SqlParser.STRING, 0);
};

KeywordsCanBeIdContext.prototype.SUBCLASS_ORIGIN = function() {
    return this.getToken(SqlParser.SUBCLASS_ORIGIN, 0);
};

KeywordsCanBeIdContext.prototype.SUBJECT = function() {
    return this.getToken(SqlParser.SUBJECT, 0);
};

KeywordsCanBeIdContext.prototype.SUBPARTITION = function() {
    return this.getToken(SqlParser.SUBPARTITION, 0);
};

KeywordsCanBeIdContext.prototype.SUBPARTITIONS = function() {
    return this.getToken(SqlParser.SUBPARTITIONS, 0);
};

KeywordsCanBeIdContext.prototype.SUSPEND = function() {
    return this.getToken(SqlParser.SUSPEND, 0);
};

KeywordsCanBeIdContext.prototype.SWAPS = function() {
    return this.getToken(SqlParser.SWAPS, 0);
};

KeywordsCanBeIdContext.prototype.SWITCHES = function() {
    return this.getToken(SqlParser.SWITCHES, 0);
};

KeywordsCanBeIdContext.prototype.SYSTEM_VARIABLES_ADMIN = function() {
    return this.getToken(SqlParser.SYSTEM_VARIABLES_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.TABLE_NAME = function() {
    return this.getToken(SqlParser.TABLE_NAME, 0);
};

KeywordsCanBeIdContext.prototype.TABLESPACE = function() {
    return this.getToken(SqlParser.TABLESPACE, 0);
};

KeywordsCanBeIdContext.prototype.TABLE_ENCRYPTION_ADMIN = function() {
    return this.getToken(SqlParser.TABLE_ENCRYPTION_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.TEMPORARY = function() {
    return this.getToken(SqlParser.TEMPORARY, 0);
};

KeywordsCanBeIdContext.prototype.TEMPTABLE = function() {
    return this.getToken(SqlParser.TEMPTABLE, 0);
};

KeywordsCanBeIdContext.prototype.THAN = function() {
    return this.getToken(SqlParser.THAN, 0);
};

KeywordsCanBeIdContext.prototype.TRADITIONAL = function() {
    return this.getToken(SqlParser.TRADITIONAL, 0);
};

KeywordsCanBeIdContext.prototype.TRANSACTION = function() {
    return this.getToken(SqlParser.TRANSACTION, 0);
};

KeywordsCanBeIdContext.prototype.TRANSACTIONAL = function() {
    return this.getToken(SqlParser.TRANSACTIONAL, 0);
};

KeywordsCanBeIdContext.prototype.TRIGGERS = function() {
    return this.getToken(SqlParser.TRIGGERS, 0);
};

KeywordsCanBeIdContext.prototype.TRUNCATE = function() {
    return this.getToken(SqlParser.TRUNCATE, 0);
};

KeywordsCanBeIdContext.prototype.UNDEFINED = function() {
    return this.getToken(SqlParser.UNDEFINED, 0);
};

KeywordsCanBeIdContext.prototype.UNDOFILE = function() {
    return this.getToken(SqlParser.UNDOFILE, 0);
};

KeywordsCanBeIdContext.prototype.UNDO_BUFFER_SIZE = function() {
    return this.getToken(SqlParser.UNDO_BUFFER_SIZE, 0);
};

KeywordsCanBeIdContext.prototype.UNINSTALL = function() {
    return this.getToken(SqlParser.UNINSTALL, 0);
};

KeywordsCanBeIdContext.prototype.UNKNOWN = function() {
    return this.getToken(SqlParser.UNKNOWN, 0);
};

KeywordsCanBeIdContext.prototype.UNTIL = function() {
    return this.getToken(SqlParser.UNTIL, 0);
};

KeywordsCanBeIdContext.prototype.UPGRADE = function() {
    return this.getToken(SqlParser.UPGRADE, 0);
};

KeywordsCanBeIdContext.prototype.USER = function() {
    return this.getToken(SqlParser.USER, 0);
};

KeywordsCanBeIdContext.prototype.USE_FRM = function() {
    return this.getToken(SqlParser.USE_FRM, 0);
};

KeywordsCanBeIdContext.prototype.USER_RESOURCES = function() {
    return this.getToken(SqlParser.USER_RESOURCES, 0);
};

KeywordsCanBeIdContext.prototype.VALIDATION = function() {
    return this.getToken(SqlParser.VALIDATION, 0);
};

KeywordsCanBeIdContext.prototype.VALUE = function() {
    return this.getToken(SqlParser.VALUE, 0);
};

KeywordsCanBeIdContext.prototype.VARIABLES = function() {
    return this.getToken(SqlParser.VARIABLES, 0);
};

KeywordsCanBeIdContext.prototype.VERSION_TOKEN_ADMIN = function() {
    return this.getToken(SqlParser.VERSION_TOKEN_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.VIEW = function() {
    return this.getToken(SqlParser.VIEW, 0);
};

KeywordsCanBeIdContext.prototype.WAIT = function() {
    return this.getToken(SqlParser.WAIT, 0);
};

KeywordsCanBeIdContext.prototype.WARNINGS = function() {
    return this.getToken(SqlParser.WARNINGS, 0);
};

KeywordsCanBeIdContext.prototype.WITHOUT = function() {
    return this.getToken(SqlParser.WITHOUT, 0);
};

KeywordsCanBeIdContext.prototype.WORK = function() {
    return this.getToken(SqlParser.WORK, 0);
};

KeywordsCanBeIdContext.prototype.WRAPPER = function() {
    return this.getToken(SqlParser.WRAPPER, 0);
};

KeywordsCanBeIdContext.prototype.X509 = function() {
    return this.getToken(SqlParser.X509, 0);
};

KeywordsCanBeIdContext.prototype.XA = function() {
    return this.getToken(SqlParser.XA, 0);
};

KeywordsCanBeIdContext.prototype.XA_RECOVER_ADMIN = function() {
    return this.getToken(SqlParser.XA_RECOVER_ADMIN, 0);
};

KeywordsCanBeIdContext.prototype.XML = function() {
    return this.getToken(SqlParser.XML, 0);
};

KeywordsCanBeIdContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterKeywordsCanBeId(this);
	}
};

KeywordsCanBeIdContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitKeywordsCanBeId(this);
	}
};

KeywordsCanBeIdContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitKeywordsCanBeId(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.KeywordsCanBeIdContext = KeywordsCanBeIdContext;

SqlParser.prototype.keywordsCanBeId = function() {

    var localctx = new KeywordsCanBeIdContext(this, this._ctx, this.state);
    this.enterRule(localctx, 628, SqlParser.RULE_keywordsCanBeId);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6377;
        _la = this._input.LA(1);
        if(!(_la===SqlParser.CURRENT || _la===SqlParser.DIAGNOSTICS || _la===SqlParser.NUMBER || _la===SqlParser.STACKED || _la===SqlParser.SERIAL || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)))) !== 0) || _la===SqlParser.MEMORY || _la===SqlParser.CATALOG_NAME || _la===SqlParser.SCHEMA_NAME)) {
        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 FunctionNameBaseContext(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_functionNameBase;
    return this;
}

FunctionNameBaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
FunctionNameBaseContext.prototype.constructor = FunctionNameBaseContext;

FunctionNameBaseContext.prototype.ABS = function() {
    return this.getToken(SqlParser.ABS, 0);
};

FunctionNameBaseContext.prototype.ACOS = function() {
    return this.getToken(SqlParser.ACOS, 0);
};

FunctionNameBaseContext.prototype.ADDDATE = function() {
    return this.getToken(SqlParser.ADDDATE, 0);
};

FunctionNameBaseContext.prototype.ADDTIME = function() {
    return this.getToken(SqlParser.ADDTIME, 0);
};

FunctionNameBaseContext.prototype.AES_DECRYPT = function() {
    return this.getToken(SqlParser.AES_DECRYPT, 0);
};

FunctionNameBaseContext.prototype.AES_ENCRYPT = function() {
    return this.getToken(SqlParser.AES_ENCRYPT, 0);
};

FunctionNameBaseContext.prototype.AREA = function() {
    return this.getToken(SqlParser.AREA, 0);
};

FunctionNameBaseContext.prototype.ASBINARY = function() {
    return this.getToken(SqlParser.ASBINARY, 0);
};

FunctionNameBaseContext.prototype.ASIN = function() {
    return this.getToken(SqlParser.ASIN, 0);
};

FunctionNameBaseContext.prototype.ASTEXT = function() {
    return this.getToken(SqlParser.ASTEXT, 0);
};

FunctionNameBaseContext.prototype.ASWKB = function() {
    return this.getToken(SqlParser.ASWKB, 0);
};

FunctionNameBaseContext.prototype.ASWKT = function() {
    return this.getToken(SqlParser.ASWKT, 0);
};

FunctionNameBaseContext.prototype.ASYMMETRIC_DECRYPT = function() {
    return this.getToken(SqlParser.ASYMMETRIC_DECRYPT, 0);
};

FunctionNameBaseContext.prototype.ASYMMETRIC_DERIVE = function() {
    return this.getToken(SqlParser.ASYMMETRIC_DERIVE, 0);
};

FunctionNameBaseContext.prototype.ASYMMETRIC_ENCRYPT = function() {
    return this.getToken(SqlParser.ASYMMETRIC_ENCRYPT, 0);
};

FunctionNameBaseContext.prototype.ASYMMETRIC_SIGN = function() {
    return this.getToken(SqlParser.ASYMMETRIC_SIGN, 0);
};

FunctionNameBaseContext.prototype.ASYMMETRIC_VERIFY = function() {
    return this.getToken(SqlParser.ASYMMETRIC_VERIFY, 0);
};

FunctionNameBaseContext.prototype.ATAN = function() {
    return this.getToken(SqlParser.ATAN, 0);
};

FunctionNameBaseContext.prototype.ATAN2 = function() {
    return this.getToken(SqlParser.ATAN2, 0);
};

FunctionNameBaseContext.prototype.BENCHMARK = function() {
    return this.getToken(SqlParser.BENCHMARK, 0);
};

FunctionNameBaseContext.prototype.BIN = function() {
    return this.getToken(SqlParser.BIN, 0);
};

FunctionNameBaseContext.prototype.BIT_COUNT = function() {
    return this.getToken(SqlParser.BIT_COUNT, 0);
};

FunctionNameBaseContext.prototype.BIT_LENGTH = function() {
    return this.getToken(SqlParser.BIT_LENGTH, 0);
};

FunctionNameBaseContext.prototype.BUFFER = function() {
    return this.getToken(SqlParser.BUFFER, 0);
};

FunctionNameBaseContext.prototype.CEIL = function() {
    return this.getToken(SqlParser.CEIL, 0);
};

FunctionNameBaseContext.prototype.CEILING = function() {
    return this.getToken(SqlParser.CEILING, 0);
};

FunctionNameBaseContext.prototype.CENTROID = function() {
    return this.getToken(SqlParser.CENTROID, 0);
};

FunctionNameBaseContext.prototype.CHARACTER_LENGTH = function() {
    return this.getToken(SqlParser.CHARACTER_LENGTH, 0);
};

FunctionNameBaseContext.prototype.CHARSET = function() {
    return this.getToken(SqlParser.CHARSET, 0);
};

FunctionNameBaseContext.prototype.CHAR_LENGTH = function() {
    return this.getToken(SqlParser.CHAR_LENGTH, 0);
};

FunctionNameBaseContext.prototype.COERCIBILITY = function() {
    return this.getToken(SqlParser.COERCIBILITY, 0);
};

FunctionNameBaseContext.prototype.COLLATION = function() {
    return this.getToken(SqlParser.COLLATION, 0);
};

FunctionNameBaseContext.prototype.COMPRESS = function() {
    return this.getToken(SqlParser.COMPRESS, 0);
};

FunctionNameBaseContext.prototype.CONCAT = function() {
    return this.getToken(SqlParser.CONCAT, 0);
};

FunctionNameBaseContext.prototype.CONCAT_WS = function() {
    return this.getToken(SqlParser.CONCAT_WS, 0);
};

FunctionNameBaseContext.prototype.CONNECTION_ID = function() {
    return this.getToken(SqlParser.CONNECTION_ID, 0);
};

FunctionNameBaseContext.prototype.CONV = function() {
    return this.getToken(SqlParser.CONV, 0);
};

FunctionNameBaseContext.prototype.CONVERT_TZ = function() {
    return this.getToken(SqlParser.CONVERT_TZ, 0);
};

FunctionNameBaseContext.prototype.COS = function() {
    return this.getToken(SqlParser.COS, 0);
};

FunctionNameBaseContext.prototype.COT = function() {
    return this.getToken(SqlParser.COT, 0);
};

FunctionNameBaseContext.prototype.COUNT = function() {
    return this.getToken(SqlParser.COUNT, 0);
};

FunctionNameBaseContext.prototype.CRC32 = function() {
    return this.getToken(SqlParser.CRC32, 0);
};

FunctionNameBaseContext.prototype.CREATE_ASYMMETRIC_PRIV_KEY = function() {
    return this.getToken(SqlParser.CREATE_ASYMMETRIC_PRIV_KEY, 0);
};

FunctionNameBaseContext.prototype.CREATE_ASYMMETRIC_PUB_KEY = function() {
    return this.getToken(SqlParser.CREATE_ASYMMETRIC_PUB_KEY, 0);
};

FunctionNameBaseContext.prototype.CREATE_DH_PARAMETERS = function() {
    return this.getToken(SqlParser.CREATE_DH_PARAMETERS, 0);
};

FunctionNameBaseContext.prototype.CREATE_DIGEST = function() {
    return this.getToken(SqlParser.CREATE_DIGEST, 0);
};

FunctionNameBaseContext.prototype.CROSSES = function() {
    return this.getToken(SqlParser.CROSSES, 0);
};

FunctionNameBaseContext.prototype.DATABASE = function() {
    return this.getToken(SqlParser.DATABASE, 0);
};

FunctionNameBaseContext.prototype.DATE = function() {
    return this.getToken(SqlParser.DATE, 0);
};

FunctionNameBaseContext.prototype.DATEDIFF = function() {
    return this.getToken(SqlParser.DATEDIFF, 0);
};

FunctionNameBaseContext.prototype.DATE_FORMAT = function() {
    return this.getToken(SqlParser.DATE_FORMAT, 0);
};

FunctionNameBaseContext.prototype.DAY = function() {
    return this.getToken(SqlParser.DAY, 0);
};

FunctionNameBaseContext.prototype.DAYNAME = function() {
    return this.getToken(SqlParser.DAYNAME, 0);
};

FunctionNameBaseContext.prototype.DAYOFMONTH = function() {
    return this.getToken(SqlParser.DAYOFMONTH, 0);
};

FunctionNameBaseContext.prototype.DAYOFWEEK = function() {
    return this.getToken(SqlParser.DAYOFWEEK, 0);
};

FunctionNameBaseContext.prototype.DAYOFYEAR = function() {
    return this.getToken(SqlParser.DAYOFYEAR, 0);
};

FunctionNameBaseContext.prototype.DECODE = function() {
    return this.getToken(SqlParser.DECODE, 0);
};

FunctionNameBaseContext.prototype.DEGREES = function() {
    return this.getToken(SqlParser.DEGREES, 0);
};

FunctionNameBaseContext.prototype.DES_DECRYPT = function() {
    return this.getToken(SqlParser.DES_DECRYPT, 0);
};

FunctionNameBaseContext.prototype.DES_ENCRYPT = function() {
    return this.getToken(SqlParser.DES_ENCRYPT, 0);
};

FunctionNameBaseContext.prototype.DIMENSION = function() {
    return this.getToken(SqlParser.DIMENSION, 0);
};

FunctionNameBaseContext.prototype.DISJOINT = function() {
    return this.getToken(SqlParser.DISJOINT, 0);
};

FunctionNameBaseContext.prototype.ELT = function() {
    return this.getToken(SqlParser.ELT, 0);
};

FunctionNameBaseContext.prototype.ENCODE = function() {
    return this.getToken(SqlParser.ENCODE, 0);
};

FunctionNameBaseContext.prototype.ENCRYPT = function() {
    return this.getToken(SqlParser.ENCRYPT, 0);
};

FunctionNameBaseContext.prototype.ENDPOINT = function() {
    return this.getToken(SqlParser.ENDPOINT, 0);
};

FunctionNameBaseContext.prototype.ENVELOPE = function() {
    return this.getToken(SqlParser.ENVELOPE, 0);
};

FunctionNameBaseContext.prototype.EQUALS = function() {
    return this.getToken(SqlParser.EQUALS, 0);
};

FunctionNameBaseContext.prototype.EXP = function() {
    return this.getToken(SqlParser.EXP, 0);
};

FunctionNameBaseContext.prototype.EXPORT_SET = function() {
    return this.getToken(SqlParser.EXPORT_SET, 0);
};

FunctionNameBaseContext.prototype.EXTERIORRING = function() {
    return this.getToken(SqlParser.EXTERIORRING, 0);
};

FunctionNameBaseContext.prototype.EXTRACTVALUE = function() {
    return this.getToken(SqlParser.EXTRACTVALUE, 0);
};

FunctionNameBaseContext.prototype.FIELD = function() {
    return this.getToken(SqlParser.FIELD, 0);
};

FunctionNameBaseContext.prototype.FIND_IN_SET = function() {
    return this.getToken(SqlParser.FIND_IN_SET, 0);
};

FunctionNameBaseContext.prototype.FLOOR = function() {
    return this.getToken(SqlParser.FLOOR, 0);
};

FunctionNameBaseContext.prototype.FORMAT = function() {
    return this.getToken(SqlParser.FORMAT, 0);
};

FunctionNameBaseContext.prototype.FOUND_ROWS = function() {
    return this.getToken(SqlParser.FOUND_ROWS, 0);
};

FunctionNameBaseContext.prototype.FROM_BASE64 = function() {
    return this.getToken(SqlParser.FROM_BASE64, 0);
};

FunctionNameBaseContext.prototype.FROM_DAYS = function() {
    return this.getToken(SqlParser.FROM_DAYS, 0);
};

FunctionNameBaseContext.prototype.FROM_UNIXTIME = function() {
    return this.getToken(SqlParser.FROM_UNIXTIME, 0);
};

FunctionNameBaseContext.prototype.GEOMCOLLFROMTEXT = function() {
    return this.getToken(SqlParser.GEOMCOLLFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.GEOMCOLLFROMWKB = function() {
    return this.getToken(SqlParser.GEOMCOLLFROMWKB, 0);
};

FunctionNameBaseContext.prototype.GEOMETRYCOLLECTION = function() {
    return this.getToken(SqlParser.GEOMETRYCOLLECTION, 0);
};

FunctionNameBaseContext.prototype.GEOMETRYCOLLECTIONFROMTEXT = function() {
    return this.getToken(SqlParser.GEOMETRYCOLLECTIONFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.GEOMETRYCOLLECTIONFROMWKB = function() {
    return this.getToken(SqlParser.GEOMETRYCOLLECTIONFROMWKB, 0);
};

FunctionNameBaseContext.prototype.GEOMETRYFROMTEXT = function() {
    return this.getToken(SqlParser.GEOMETRYFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.GEOMETRYFROMWKB = function() {
    return this.getToken(SqlParser.GEOMETRYFROMWKB, 0);
};

FunctionNameBaseContext.prototype.GEOMETRYN = function() {
    return this.getToken(SqlParser.GEOMETRYN, 0);
};

FunctionNameBaseContext.prototype.GEOMETRYTYPE = function() {
    return this.getToken(SqlParser.GEOMETRYTYPE, 0);
};

FunctionNameBaseContext.prototype.GEOMFROMTEXT = function() {
    return this.getToken(SqlParser.GEOMFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.GEOMFROMWKB = function() {
    return this.getToken(SqlParser.GEOMFROMWKB, 0);
};

FunctionNameBaseContext.prototype.GET_FORMAT = function() {
    return this.getToken(SqlParser.GET_FORMAT, 0);
};

FunctionNameBaseContext.prototype.GET_LOCK = function() {
    return this.getToken(SqlParser.GET_LOCK, 0);
};

FunctionNameBaseContext.prototype.GLENGTH = function() {
    return this.getToken(SqlParser.GLENGTH, 0);
};

FunctionNameBaseContext.prototype.GREATEST = function() {
    return this.getToken(SqlParser.GREATEST, 0);
};

FunctionNameBaseContext.prototype.GTID_SUBSET = function() {
    return this.getToken(SqlParser.GTID_SUBSET, 0);
};

FunctionNameBaseContext.prototype.GTID_SUBTRACT = function() {
    return this.getToken(SqlParser.GTID_SUBTRACT, 0);
};

FunctionNameBaseContext.prototype.HEX = function() {
    return this.getToken(SqlParser.HEX, 0);
};

FunctionNameBaseContext.prototype.HOUR = function() {
    return this.getToken(SqlParser.HOUR, 0);
};

FunctionNameBaseContext.prototype.IFNULL = function() {
    return this.getToken(SqlParser.IFNULL, 0);
};

FunctionNameBaseContext.prototype.INET6_ATON = function() {
    return this.getToken(SqlParser.INET6_ATON, 0);
};

FunctionNameBaseContext.prototype.INET6_NTOA = function() {
    return this.getToken(SqlParser.INET6_NTOA, 0);
};

FunctionNameBaseContext.prototype.INET_ATON = function() {
    return this.getToken(SqlParser.INET_ATON, 0);
};

FunctionNameBaseContext.prototype.INET_NTOA = function() {
    return this.getToken(SqlParser.INET_NTOA, 0);
};

FunctionNameBaseContext.prototype.INSTR = function() {
    return this.getToken(SqlParser.INSTR, 0);
};

FunctionNameBaseContext.prototype.INTERIORRINGN = function() {
    return this.getToken(SqlParser.INTERIORRINGN, 0);
};

FunctionNameBaseContext.prototype.INTERSECTS = function() {
    return this.getToken(SqlParser.INTERSECTS, 0);
};

FunctionNameBaseContext.prototype.INVISIBLE = function() {
    return this.getToken(SqlParser.INVISIBLE, 0);
};

FunctionNameBaseContext.prototype.ISCLOSED = function() {
    return this.getToken(SqlParser.ISCLOSED, 0);
};

FunctionNameBaseContext.prototype.ISEMPTY = function() {
    return this.getToken(SqlParser.ISEMPTY, 0);
};

FunctionNameBaseContext.prototype.ISNULL = function() {
    return this.getToken(SqlParser.ISNULL, 0);
};

FunctionNameBaseContext.prototype.ISSIMPLE = function() {
    return this.getToken(SqlParser.ISSIMPLE, 0);
};

FunctionNameBaseContext.prototype.IS_FREE_LOCK = function() {
    return this.getToken(SqlParser.IS_FREE_LOCK, 0);
};

FunctionNameBaseContext.prototype.IS_IPV4 = function() {
    return this.getToken(SqlParser.IS_IPV4, 0);
};

FunctionNameBaseContext.prototype.IS_IPV4_COMPAT = function() {
    return this.getToken(SqlParser.IS_IPV4_COMPAT, 0);
};

FunctionNameBaseContext.prototype.IS_IPV4_MAPPED = function() {
    return this.getToken(SqlParser.IS_IPV4_MAPPED, 0);
};

FunctionNameBaseContext.prototype.IS_IPV6 = function() {
    return this.getToken(SqlParser.IS_IPV6, 0);
};

FunctionNameBaseContext.prototype.IS_USED_LOCK = function() {
    return this.getToken(SqlParser.IS_USED_LOCK, 0);
};

FunctionNameBaseContext.prototype.LAST_INSERT_ID = function() {
    return this.getToken(SqlParser.LAST_INSERT_ID, 0);
};

FunctionNameBaseContext.prototype.LCASE = function() {
    return this.getToken(SqlParser.LCASE, 0);
};

FunctionNameBaseContext.prototype.LEAST = function() {
    return this.getToken(SqlParser.LEAST, 0);
};

FunctionNameBaseContext.prototype.LEFT = function() {
    return this.getToken(SqlParser.LEFT, 0);
};

FunctionNameBaseContext.prototype.LENGTH = function() {
    return this.getToken(SqlParser.LENGTH, 0);
};

FunctionNameBaseContext.prototype.LINEFROMTEXT = function() {
    return this.getToken(SqlParser.LINEFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.LINEFROMWKB = function() {
    return this.getToken(SqlParser.LINEFROMWKB, 0);
};

FunctionNameBaseContext.prototype.LINESTRING = function() {
    return this.getToken(SqlParser.LINESTRING, 0);
};

FunctionNameBaseContext.prototype.LINESTRINGFROMTEXT = function() {
    return this.getToken(SqlParser.LINESTRINGFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.LINESTRINGFROMWKB = function() {
    return this.getToken(SqlParser.LINESTRINGFROMWKB, 0);
};

FunctionNameBaseContext.prototype.LN = function() {
    return this.getToken(SqlParser.LN, 0);
};

FunctionNameBaseContext.prototype.LOAD_FILE = function() {
    return this.getToken(SqlParser.LOAD_FILE, 0);
};

FunctionNameBaseContext.prototype.LOCATE = function() {
    return this.getToken(SqlParser.LOCATE, 0);
};

FunctionNameBaseContext.prototype.LOG = function() {
    return this.getToken(SqlParser.LOG, 0);
};

FunctionNameBaseContext.prototype.LOG10 = function() {
    return this.getToken(SqlParser.LOG10, 0);
};

FunctionNameBaseContext.prototype.LOG2 = function() {
    return this.getToken(SqlParser.LOG2, 0);
};

FunctionNameBaseContext.prototype.LOWER = function() {
    return this.getToken(SqlParser.LOWER, 0);
};

FunctionNameBaseContext.prototype.LPAD = function() {
    return this.getToken(SqlParser.LPAD, 0);
};

FunctionNameBaseContext.prototype.LTRIM = function() {
    return this.getToken(SqlParser.LTRIM, 0);
};

FunctionNameBaseContext.prototype.MAKEDATE = function() {
    return this.getToken(SqlParser.MAKEDATE, 0);
};

FunctionNameBaseContext.prototype.MAKETIME = function() {
    return this.getToken(SqlParser.MAKETIME, 0);
};

FunctionNameBaseContext.prototype.MAKE_SET = function() {
    return this.getToken(SqlParser.MAKE_SET, 0);
};

FunctionNameBaseContext.prototype.MASTER_POS_WAIT = function() {
    return this.getToken(SqlParser.MASTER_POS_WAIT, 0);
};

FunctionNameBaseContext.prototype.MBRCONTAINS = function() {
    return this.getToken(SqlParser.MBRCONTAINS, 0);
};

FunctionNameBaseContext.prototype.MBRDISJOINT = function() {
    return this.getToken(SqlParser.MBRDISJOINT, 0);
};

FunctionNameBaseContext.prototype.MBREQUAL = function() {
    return this.getToken(SqlParser.MBREQUAL, 0);
};

FunctionNameBaseContext.prototype.MBRINTERSECTS = function() {
    return this.getToken(SqlParser.MBRINTERSECTS, 0);
};

FunctionNameBaseContext.prototype.MBROVERLAPS = function() {
    return this.getToken(SqlParser.MBROVERLAPS, 0);
};

FunctionNameBaseContext.prototype.MBRTOUCHES = function() {
    return this.getToken(SqlParser.MBRTOUCHES, 0);
};

FunctionNameBaseContext.prototype.MBRWITHIN = function() {
    return this.getToken(SqlParser.MBRWITHIN, 0);
};

FunctionNameBaseContext.prototype.MD5 = function() {
    return this.getToken(SqlParser.MD5, 0);
};

FunctionNameBaseContext.prototype.MICROSECOND = function() {
    return this.getToken(SqlParser.MICROSECOND, 0);
};

FunctionNameBaseContext.prototype.MINUTE = function() {
    return this.getToken(SqlParser.MINUTE, 0);
};

FunctionNameBaseContext.prototype.MLINEFROMTEXT = function() {
    return this.getToken(SqlParser.MLINEFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.MLINEFROMWKB = function() {
    return this.getToken(SqlParser.MLINEFROMWKB, 0);
};

FunctionNameBaseContext.prototype.MONTH = function() {
    return this.getToken(SqlParser.MONTH, 0);
};

FunctionNameBaseContext.prototype.MONTHNAME = function() {
    return this.getToken(SqlParser.MONTHNAME, 0);
};

FunctionNameBaseContext.prototype.MPOINTFROMTEXT = function() {
    return this.getToken(SqlParser.MPOINTFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.MPOINTFROMWKB = function() {
    return this.getToken(SqlParser.MPOINTFROMWKB, 0);
};

FunctionNameBaseContext.prototype.MPOLYFROMTEXT = function() {
    return this.getToken(SqlParser.MPOLYFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.MPOLYFROMWKB = function() {
    return this.getToken(SqlParser.MPOLYFROMWKB, 0);
};

FunctionNameBaseContext.prototype.MULTILINESTRING = function() {
    return this.getToken(SqlParser.MULTILINESTRING, 0);
};

FunctionNameBaseContext.prototype.MULTILINESTRINGFROMTEXT = function() {
    return this.getToken(SqlParser.MULTILINESTRINGFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.MULTILINESTRINGFROMWKB = function() {
    return this.getToken(SqlParser.MULTILINESTRINGFROMWKB, 0);
};

FunctionNameBaseContext.prototype.MULTIPOINT = function() {
    return this.getToken(SqlParser.MULTIPOINT, 0);
};

FunctionNameBaseContext.prototype.MULTIPOINTFROMTEXT = function() {
    return this.getToken(SqlParser.MULTIPOINTFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.MULTIPOINTFROMWKB = function() {
    return this.getToken(SqlParser.MULTIPOINTFROMWKB, 0);
};

FunctionNameBaseContext.prototype.MULTIPOLYGON = function() {
    return this.getToken(SqlParser.MULTIPOLYGON, 0);
};

FunctionNameBaseContext.prototype.MULTIPOLYGONFROMTEXT = function() {
    return this.getToken(SqlParser.MULTIPOLYGONFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.MULTIPOLYGONFROMWKB = function() {
    return this.getToken(SqlParser.MULTIPOLYGONFROMWKB, 0);
};

FunctionNameBaseContext.prototype.NAME_CONST = function() {
    return this.getToken(SqlParser.NAME_CONST, 0);
};

FunctionNameBaseContext.prototype.NULLIF = function() {
    return this.getToken(SqlParser.NULLIF, 0);
};

FunctionNameBaseContext.prototype.NUMGEOMETRIES = function() {
    return this.getToken(SqlParser.NUMGEOMETRIES, 0);
};

FunctionNameBaseContext.prototype.NUMINTERIORRINGS = function() {
    return this.getToken(SqlParser.NUMINTERIORRINGS, 0);
};

FunctionNameBaseContext.prototype.NUMPOINTS = function() {
    return this.getToken(SqlParser.NUMPOINTS, 0);
};

FunctionNameBaseContext.prototype.OCT = function() {
    return this.getToken(SqlParser.OCT, 0);
};

FunctionNameBaseContext.prototype.OCTET_LENGTH = function() {
    return this.getToken(SqlParser.OCTET_LENGTH, 0);
};

FunctionNameBaseContext.prototype.ORD = function() {
    return this.getToken(SqlParser.ORD, 0);
};

FunctionNameBaseContext.prototype.OVERLAPS = function() {
    return this.getToken(SqlParser.OVERLAPS, 0);
};

FunctionNameBaseContext.prototype.PERIOD_ADD = function() {
    return this.getToken(SqlParser.PERIOD_ADD, 0);
};

FunctionNameBaseContext.prototype.PERIOD_DIFF = function() {
    return this.getToken(SqlParser.PERIOD_DIFF, 0);
};

FunctionNameBaseContext.prototype.PI = function() {
    return this.getToken(SqlParser.PI, 0);
};

FunctionNameBaseContext.prototype.POINT = function() {
    return this.getToken(SqlParser.POINT, 0);
};

FunctionNameBaseContext.prototype.POINTFROMTEXT = function() {
    return this.getToken(SqlParser.POINTFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.POINTFROMWKB = function() {
    return this.getToken(SqlParser.POINTFROMWKB, 0);
};

FunctionNameBaseContext.prototype.POINTN = function() {
    return this.getToken(SqlParser.POINTN, 0);
};

FunctionNameBaseContext.prototype.POLYFROMTEXT = function() {
    return this.getToken(SqlParser.POLYFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.POLYFROMWKB = function() {
    return this.getToken(SqlParser.POLYFROMWKB, 0);
};

FunctionNameBaseContext.prototype.POLYGON = function() {
    return this.getToken(SqlParser.POLYGON, 0);
};

FunctionNameBaseContext.prototype.POLYGONFROMTEXT = function() {
    return this.getToken(SqlParser.POLYGONFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.POLYGONFROMWKB = function() {
    return this.getToken(SqlParser.POLYGONFROMWKB, 0);
};

FunctionNameBaseContext.prototype.POSITION = function() {
    return this.getToken(SqlParser.POSITION, 0);
};

FunctionNameBaseContext.prototype.POW = function() {
    return this.getToken(SqlParser.POW, 0);
};

FunctionNameBaseContext.prototype.POWER = function() {
    return this.getToken(SqlParser.POWER, 0);
};

FunctionNameBaseContext.prototype.QUARTER = function() {
    return this.getToken(SqlParser.QUARTER, 0);
};

FunctionNameBaseContext.prototype.QUOTE = function() {
    return this.getToken(SqlParser.QUOTE, 0);
};

FunctionNameBaseContext.prototype.RADIANS = function() {
    return this.getToken(SqlParser.RADIANS, 0);
};

FunctionNameBaseContext.prototype.RAND = function() {
    return this.getToken(SqlParser.RAND, 0);
};

FunctionNameBaseContext.prototype.RANDOM_BYTES = function() {
    return this.getToken(SqlParser.RANDOM_BYTES, 0);
};

FunctionNameBaseContext.prototype.RELEASE_LOCK = function() {
    return this.getToken(SqlParser.RELEASE_LOCK, 0);
};

FunctionNameBaseContext.prototype.REVERSE = function() {
    return this.getToken(SqlParser.REVERSE, 0);
};

FunctionNameBaseContext.prototype.RIGHT = function() {
    return this.getToken(SqlParser.RIGHT, 0);
};

FunctionNameBaseContext.prototype.ROUND = function() {
    return this.getToken(SqlParser.ROUND, 0);
};

FunctionNameBaseContext.prototype.ROW_COUNT = function() {
    return this.getToken(SqlParser.ROW_COUNT, 0);
};

FunctionNameBaseContext.prototype.RPAD = function() {
    return this.getToken(SqlParser.RPAD, 0);
};

FunctionNameBaseContext.prototype.RTRIM = function() {
    return this.getToken(SqlParser.RTRIM, 0);
};

FunctionNameBaseContext.prototype.SECOND = function() {
    return this.getToken(SqlParser.SECOND, 0);
};

FunctionNameBaseContext.prototype.SEC_TO_TIME = function() {
    return this.getToken(SqlParser.SEC_TO_TIME, 0);
};

FunctionNameBaseContext.prototype.SESSION_USER = function() {
    return this.getToken(SqlParser.SESSION_USER, 0);
};

FunctionNameBaseContext.prototype.SESSION_VARIABLES_ADMIN = function() {
    return this.getToken(SqlParser.SESSION_VARIABLES_ADMIN, 0);
};

FunctionNameBaseContext.prototype.SHA = function() {
    return this.getToken(SqlParser.SHA, 0);
};

FunctionNameBaseContext.prototype.SHA1 = function() {
    return this.getToken(SqlParser.SHA1, 0);
};

FunctionNameBaseContext.prototype.SHA2 = function() {
    return this.getToken(SqlParser.SHA2, 0);
};

FunctionNameBaseContext.prototype.SIGN = function() {
    return this.getToken(SqlParser.SIGN, 0);
};

FunctionNameBaseContext.prototype.SIN = function() {
    return this.getToken(SqlParser.SIN, 0);
};

FunctionNameBaseContext.prototype.SLEEP = function() {
    return this.getToken(SqlParser.SLEEP, 0);
};

FunctionNameBaseContext.prototype.SOUNDEX = function() {
    return this.getToken(SqlParser.SOUNDEX, 0);
};

FunctionNameBaseContext.prototype.SQL_THREAD_WAIT_AFTER_GTIDS = function() {
    return this.getToken(SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS, 0);
};

FunctionNameBaseContext.prototype.SQRT = function() {
    return this.getToken(SqlParser.SQRT, 0);
};

FunctionNameBaseContext.prototype.SRID = function() {
    return this.getToken(SqlParser.SRID, 0);
};

FunctionNameBaseContext.prototype.STARTPOINT = function() {
    return this.getToken(SqlParser.STARTPOINT, 0);
};

FunctionNameBaseContext.prototype.STRCMP = function() {
    return this.getToken(SqlParser.STRCMP, 0);
};

FunctionNameBaseContext.prototype.STR_TO_DATE = function() {
    return this.getToken(SqlParser.STR_TO_DATE, 0);
};

FunctionNameBaseContext.prototype.ST_AREA = function() {
    return this.getToken(SqlParser.ST_AREA, 0);
};

FunctionNameBaseContext.prototype.ST_ASBINARY = function() {
    return this.getToken(SqlParser.ST_ASBINARY, 0);
};

FunctionNameBaseContext.prototype.ST_ASTEXT = function() {
    return this.getToken(SqlParser.ST_ASTEXT, 0);
};

FunctionNameBaseContext.prototype.ST_ASWKB = function() {
    return this.getToken(SqlParser.ST_ASWKB, 0);
};

FunctionNameBaseContext.prototype.ST_ASWKT = function() {
    return this.getToken(SqlParser.ST_ASWKT, 0);
};

FunctionNameBaseContext.prototype.ST_BUFFER = function() {
    return this.getToken(SqlParser.ST_BUFFER, 0);
};

FunctionNameBaseContext.prototype.ST_CENTROID = function() {
    return this.getToken(SqlParser.ST_CENTROID, 0);
};

FunctionNameBaseContext.prototype.ST_CONTAINS = function() {
    return this.getToken(SqlParser.ST_CONTAINS, 0);
};

FunctionNameBaseContext.prototype.ST_CROSSES = function() {
    return this.getToken(SqlParser.ST_CROSSES, 0);
};

FunctionNameBaseContext.prototype.ST_DIFFERENCE = function() {
    return this.getToken(SqlParser.ST_DIFFERENCE, 0);
};

FunctionNameBaseContext.prototype.ST_DIMENSION = function() {
    return this.getToken(SqlParser.ST_DIMENSION, 0);
};

FunctionNameBaseContext.prototype.ST_DISJOINT = function() {
    return this.getToken(SqlParser.ST_DISJOINT, 0);
};

FunctionNameBaseContext.prototype.ST_DISTANCE = function() {
    return this.getToken(SqlParser.ST_DISTANCE, 0);
};

FunctionNameBaseContext.prototype.ST_ENDPOINT = function() {
    return this.getToken(SqlParser.ST_ENDPOINT, 0);
};

FunctionNameBaseContext.prototype.ST_ENVELOPE = function() {
    return this.getToken(SqlParser.ST_ENVELOPE, 0);
};

FunctionNameBaseContext.prototype.ST_EQUALS = function() {
    return this.getToken(SqlParser.ST_EQUALS, 0);
};

FunctionNameBaseContext.prototype.ST_EXTERIORRING = function() {
    return this.getToken(SqlParser.ST_EXTERIORRING, 0);
};

FunctionNameBaseContext.prototype.ST_GEOMCOLLFROMTEXT = function() {
    return this.getToken(SqlParser.ST_GEOMCOLLFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.ST_GEOMCOLLFROMTXT = function() {
    return this.getToken(SqlParser.ST_GEOMCOLLFROMTXT, 0);
};

FunctionNameBaseContext.prototype.ST_GEOMCOLLFROMWKB = function() {
    return this.getToken(SqlParser.ST_GEOMCOLLFROMWKB, 0);
};

FunctionNameBaseContext.prototype.ST_GEOMETRYCOLLECTIONFROMTEXT = function() {
    return this.getToken(SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.ST_GEOMETRYCOLLECTIONFROMWKB = function() {
    return this.getToken(SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB, 0);
};

FunctionNameBaseContext.prototype.ST_GEOMETRYFROMTEXT = function() {
    return this.getToken(SqlParser.ST_GEOMETRYFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.ST_GEOMETRYFROMWKB = function() {
    return this.getToken(SqlParser.ST_GEOMETRYFROMWKB, 0);
};

FunctionNameBaseContext.prototype.ST_GEOMETRYN = function() {
    return this.getToken(SqlParser.ST_GEOMETRYN, 0);
};

FunctionNameBaseContext.prototype.ST_GEOMETRYTYPE = function() {
    return this.getToken(SqlParser.ST_GEOMETRYTYPE, 0);
};

FunctionNameBaseContext.prototype.ST_GEOMFROMTEXT = function() {
    return this.getToken(SqlParser.ST_GEOMFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.ST_GEOMFROMWKB = function() {
    return this.getToken(SqlParser.ST_GEOMFROMWKB, 0);
};

FunctionNameBaseContext.prototype.ST_INTERIORRINGN = function() {
    return this.getToken(SqlParser.ST_INTERIORRINGN, 0);
};

FunctionNameBaseContext.prototype.ST_INTERSECTION = function() {
    return this.getToken(SqlParser.ST_INTERSECTION, 0);
};

FunctionNameBaseContext.prototype.ST_INTERSECTS = function() {
    return this.getToken(SqlParser.ST_INTERSECTS, 0);
};

FunctionNameBaseContext.prototype.ST_ISCLOSED = function() {
    return this.getToken(SqlParser.ST_ISCLOSED, 0);
};

FunctionNameBaseContext.prototype.ST_ISEMPTY = function() {
    return this.getToken(SqlParser.ST_ISEMPTY, 0);
};

FunctionNameBaseContext.prototype.ST_ISSIMPLE = function() {
    return this.getToken(SqlParser.ST_ISSIMPLE, 0);
};

FunctionNameBaseContext.prototype.ST_LINEFROMTEXT = function() {
    return this.getToken(SqlParser.ST_LINEFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.ST_LINEFROMWKB = function() {
    return this.getToken(SqlParser.ST_LINEFROMWKB, 0);
};

FunctionNameBaseContext.prototype.ST_LINESTRINGFROMTEXT = function() {
    return this.getToken(SqlParser.ST_LINESTRINGFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.ST_LINESTRINGFROMWKB = function() {
    return this.getToken(SqlParser.ST_LINESTRINGFROMWKB, 0);
};

FunctionNameBaseContext.prototype.ST_NUMGEOMETRIES = function() {
    return this.getToken(SqlParser.ST_NUMGEOMETRIES, 0);
};

FunctionNameBaseContext.prototype.ST_NUMINTERIORRING = function() {
    return this.getToken(SqlParser.ST_NUMINTERIORRING, 0);
};

FunctionNameBaseContext.prototype.ST_NUMINTERIORRINGS = function() {
    return this.getToken(SqlParser.ST_NUMINTERIORRINGS, 0);
};

FunctionNameBaseContext.prototype.ST_NUMPOINTS = function() {
    return this.getToken(SqlParser.ST_NUMPOINTS, 0);
};

FunctionNameBaseContext.prototype.ST_OVERLAPS = function() {
    return this.getToken(SqlParser.ST_OVERLAPS, 0);
};

FunctionNameBaseContext.prototype.ST_POINTFROMTEXT = function() {
    return this.getToken(SqlParser.ST_POINTFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.ST_POINTFROMWKB = function() {
    return this.getToken(SqlParser.ST_POINTFROMWKB, 0);
};

FunctionNameBaseContext.prototype.ST_POINTN = function() {
    return this.getToken(SqlParser.ST_POINTN, 0);
};

FunctionNameBaseContext.prototype.ST_POLYFROMTEXT = function() {
    return this.getToken(SqlParser.ST_POLYFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.ST_POLYFROMWKB = function() {
    return this.getToken(SqlParser.ST_POLYFROMWKB, 0);
};

FunctionNameBaseContext.prototype.ST_POLYGONFROMTEXT = function() {
    return this.getToken(SqlParser.ST_POLYGONFROMTEXT, 0);
};

FunctionNameBaseContext.prototype.ST_POLYGONFROMWKB = function() {
    return this.getToken(SqlParser.ST_POLYGONFROMWKB, 0);
};

FunctionNameBaseContext.prototype.ST_SRID = function() {
    return this.getToken(SqlParser.ST_SRID, 0);
};

FunctionNameBaseContext.prototype.ST_STARTPOINT = function() {
    return this.getToken(SqlParser.ST_STARTPOINT, 0);
};

FunctionNameBaseContext.prototype.ST_SYMDIFFERENCE = function() {
    return this.getToken(SqlParser.ST_SYMDIFFERENCE, 0);
};

FunctionNameBaseContext.prototype.ST_TOUCHES = function() {
    return this.getToken(SqlParser.ST_TOUCHES, 0);
};

FunctionNameBaseContext.prototype.ST_UNION = function() {
    return this.getToken(SqlParser.ST_UNION, 0);
};

FunctionNameBaseContext.prototype.ST_WITHIN = function() {
    return this.getToken(SqlParser.ST_WITHIN, 0);
};

FunctionNameBaseContext.prototype.ST_X = function() {
    return this.getToken(SqlParser.ST_X, 0);
};

FunctionNameBaseContext.prototype.ST_Y = function() {
    return this.getToken(SqlParser.ST_Y, 0);
};

FunctionNameBaseContext.prototype.SUBDATE = function() {
    return this.getToken(SqlParser.SUBDATE, 0);
};

FunctionNameBaseContext.prototype.SUBSTRING_INDEX = function() {
    return this.getToken(SqlParser.SUBSTRING_INDEX, 0);
};

FunctionNameBaseContext.prototype.SUBTIME = function() {
    return this.getToken(SqlParser.SUBTIME, 0);
};

FunctionNameBaseContext.prototype.SYSTEM_USER = function() {
    return this.getToken(SqlParser.SYSTEM_USER, 0);
};

FunctionNameBaseContext.prototype.TAN = function() {
    return this.getToken(SqlParser.TAN, 0);
};

FunctionNameBaseContext.prototype.TIME = function() {
    return this.getToken(SqlParser.TIME, 0);
};

FunctionNameBaseContext.prototype.TIMEDIFF = function() {
    return this.getToken(SqlParser.TIMEDIFF, 0);
};

FunctionNameBaseContext.prototype.TIMESTAMP = function() {
    return this.getToken(SqlParser.TIMESTAMP, 0);
};

FunctionNameBaseContext.prototype.TIMESTAMPADD = function() {
    return this.getToken(SqlParser.TIMESTAMPADD, 0);
};

FunctionNameBaseContext.prototype.TIMESTAMPDIFF = function() {
    return this.getToken(SqlParser.TIMESTAMPDIFF, 0);
};

FunctionNameBaseContext.prototype.TIME_FORMAT = function() {
    return this.getToken(SqlParser.TIME_FORMAT, 0);
};

FunctionNameBaseContext.prototype.TIME_TO_SEC = function() {
    return this.getToken(SqlParser.TIME_TO_SEC, 0);
};

FunctionNameBaseContext.prototype.TOUCHES = function() {
    return this.getToken(SqlParser.TOUCHES, 0);
};

FunctionNameBaseContext.prototype.TO_BASE64 = function() {
    return this.getToken(SqlParser.TO_BASE64, 0);
};

FunctionNameBaseContext.prototype.TO_DAYS = function() {
    return this.getToken(SqlParser.TO_DAYS, 0);
};

FunctionNameBaseContext.prototype.TO_SECONDS = function() {
    return this.getToken(SqlParser.TO_SECONDS, 0);
};

FunctionNameBaseContext.prototype.UCASE = function() {
    return this.getToken(SqlParser.UCASE, 0);
};

FunctionNameBaseContext.prototype.UNCOMPRESS = function() {
    return this.getToken(SqlParser.UNCOMPRESS, 0);
};

FunctionNameBaseContext.prototype.UNCOMPRESSED_LENGTH = function() {
    return this.getToken(SqlParser.UNCOMPRESSED_LENGTH, 0);
};

FunctionNameBaseContext.prototype.UNHEX = function() {
    return this.getToken(SqlParser.UNHEX, 0);
};

FunctionNameBaseContext.prototype.UNIX_TIMESTAMP = function() {
    return this.getToken(SqlParser.UNIX_TIMESTAMP, 0);
};

FunctionNameBaseContext.prototype.UPDATEXML = function() {
    return this.getToken(SqlParser.UPDATEXML, 0);
};

FunctionNameBaseContext.prototype.UPPER = function() {
    return this.getToken(SqlParser.UPPER, 0);
};

FunctionNameBaseContext.prototype.UUID = function() {
    return this.getToken(SqlParser.UUID, 0);
};

FunctionNameBaseContext.prototype.UUID_SHORT = function() {
    return this.getToken(SqlParser.UUID_SHORT, 0);
};

FunctionNameBaseContext.prototype.VALIDATE_PASSWORD_STRENGTH = function() {
    return this.getToken(SqlParser.VALIDATE_PASSWORD_STRENGTH, 0);
};

FunctionNameBaseContext.prototype.VERSION = function() {
    return this.getToken(SqlParser.VERSION, 0);
};

FunctionNameBaseContext.prototype.VISIBLE = function() {
    return this.getToken(SqlParser.VISIBLE, 0);
};

FunctionNameBaseContext.prototype.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS = function() {
    return this.getToken(SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS, 0);
};

FunctionNameBaseContext.prototype.WEEK = function() {
    return this.getToken(SqlParser.WEEK, 0);
};

FunctionNameBaseContext.prototype.WEEKDAY = function() {
    return this.getToken(SqlParser.WEEKDAY, 0);
};

FunctionNameBaseContext.prototype.WEEKOFYEAR = function() {
    return this.getToken(SqlParser.WEEKOFYEAR, 0);
};

FunctionNameBaseContext.prototype.WEIGHT_STRING = function() {
    return this.getToken(SqlParser.WEIGHT_STRING, 0);
};

FunctionNameBaseContext.prototype.WITHIN = function() {
    return this.getToken(SqlParser.WITHIN, 0);
};

FunctionNameBaseContext.prototype.YEAR = function() {
    return this.getToken(SqlParser.YEAR, 0);
};

FunctionNameBaseContext.prototype.YEARWEEK = function() {
    return this.getToken(SqlParser.YEARWEEK, 0);
};

FunctionNameBaseContext.prototype.Y_FUNCTION = function() {
    return this.getToken(SqlParser.Y_FUNCTION, 0);
};

FunctionNameBaseContext.prototype.X_FUNCTION = function() {
    return this.getToken(SqlParser.X_FUNCTION, 0);
};

FunctionNameBaseContext.prototype.JSON_VALID = function() {
    return this.getToken(SqlParser.JSON_VALID, 0);
};

FunctionNameBaseContext.prototype.JSON_SCHEMA_VALID = function() {
    return this.getToken(SqlParser.JSON_SCHEMA_VALID, 0);
};

FunctionNameBaseContext.prototype.enterRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.enterFunctionNameBase(this);
	}
};

FunctionNameBaseContext.prototype.exitRule = function(listener) {
    if(listener instanceof SqlParserListener ) {
        listener.exitFunctionNameBase(this);
	}
};

FunctionNameBaseContext.prototype.accept = function(visitor) {
    if ( visitor instanceof SqlParserVisitor ) {
        return visitor.visitFunctionNameBase(this);
    } else {
        return visitor.visitChildren(this);
    }
};




SqlParser.FunctionNameBaseContext = FunctionNameBaseContext;

SqlParser.prototype.functionNameBase = function() {

    var localctx = new FunctionNameBaseContext(this, this._ctx, this.state);
    this.enterRule(localctx, 630, SqlParser.RULE_functionNameBase);
    var _la = 0; // Token type
    try {
        this.enterOuterAlt(localctx, 1);
        this.state = 6379;
        _la = this._input.LA(1);
        if(!(_la===SqlParser.DATABASE || _la===SqlParser.LEFT || _la===SqlParser.RIGHT || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.YEAR - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || _la===SqlParser.INVISIBLE || ((((_la - 580)) & ~0x1f) == 0 && ((1 << (_la - 580)) & ((1 << (SqlParser.VISIBLE - 580)) | (1 << (SqlParser.QUARTER - 580)) | (1 << (SqlParser.MONTH - 580)) | (1 << (SqlParser.DAY - 580)) | (1 << (SqlParser.HOUR - 580)) | (1 << (SqlParser.MINUTE - 580)) | (1 << (SqlParser.WEEK - 580)) | (1 << (SqlParser.SECOND - 580)) | (1 << (SqlParser.MICROSECOND - 580)))) !== 0) || _la===SqlParser.SESSION_VARIABLES_ADMIN || ((((_la - 693)) & ~0x1f) == 0 && ((1 << (_la - 693)) & ((1 << (SqlParser.GEOMETRYCOLLECTION - 693)) | (1 << (SqlParser.LINESTRING - 693)) | (1 << (SqlParser.MULTILINESTRING - 693)) | (1 << (SqlParser.MULTIPOINT - 693)) | (1 << (SqlParser.MULTIPOLYGON - 693)) | (1 << (SqlParser.POINT - 693)) | (1 << (SqlParser.POLYGON - 693)) | (1 << (SqlParser.ABS - 693)) | (1 << (SqlParser.ACOS - 693)) | (1 << (SqlParser.ADDDATE - 693)) | (1 << (SqlParser.ADDTIME - 693)) | (1 << (SqlParser.AES_DECRYPT - 693)) | (1 << (SqlParser.AES_ENCRYPT - 693)) | (1 << (SqlParser.AREA - 693)) | (1 << (SqlParser.ASBINARY - 693)) | (1 << (SqlParser.ASIN - 693)) | (1 << (SqlParser.ASTEXT - 693)) | (1 << (SqlParser.ASWKB - 693)) | (1 << (SqlParser.ASWKT - 693)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 693)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 693)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 693)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 693)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 693)) | (1 << (SqlParser.ATAN - 693)) | (1 << (SqlParser.ATAN2 - 693)) | (1 << (SqlParser.BENCHMARK - 693)) | (1 << (SqlParser.BIN - 693)) | (1 << (SqlParser.BIT_COUNT - 693)) | (1 << (SqlParser.BIT_LENGTH - 693)))) !== 0) || ((((_la - 725)) & ~0x1f) == 0 && ((1 << (_la - 725)) & ((1 << (SqlParser.BUFFER - 725)) | (1 << (SqlParser.CEIL - 725)) | (1 << (SqlParser.CEILING - 725)) | (1 << (SqlParser.CENTROID - 725)) | (1 << (SqlParser.CHARACTER_LENGTH - 725)) | (1 << (SqlParser.CHARSET - 725)) | (1 << (SqlParser.CHAR_LENGTH - 725)) | (1 << (SqlParser.COERCIBILITY - 725)) | (1 << (SqlParser.COLLATION - 725)) | (1 << (SqlParser.COMPRESS - 725)) | (1 << (SqlParser.CONCAT - 725)) | (1 << (SqlParser.CONCAT_WS - 725)) | (1 << (SqlParser.CONNECTION_ID - 725)) | (1 << (SqlParser.CONV - 725)) | (1 << (SqlParser.CONVERT_TZ - 725)) | (1 << (SqlParser.COS - 725)) | (1 << (SqlParser.COT - 725)) | (1 << (SqlParser.CRC32 - 725)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 725)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 725)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 725)) | (1 << (SqlParser.CREATE_DIGEST - 725)) | (1 << (SqlParser.CROSSES - 725)) | (1 << (SqlParser.DATEDIFF - 725)) | (1 << (SqlParser.DATE_FORMAT - 725)) | (1 << (SqlParser.DAYNAME - 725)) | (1 << (SqlParser.DAYOFMONTH - 725)) | (1 << (SqlParser.DAYOFWEEK - 725)) | (1 << (SqlParser.DAYOFYEAR - 725)) | (1 << (SqlParser.DECODE - 725)) | (1 << (SqlParser.DEGREES - 725)))) !== 0) || ((((_la - 757)) & ~0x1f) == 0 && ((1 << (_la - 757)) & ((1 << (SqlParser.DES_DECRYPT - 757)) | (1 << (SqlParser.DES_ENCRYPT - 757)) | (1 << (SqlParser.DIMENSION - 757)) | (1 << (SqlParser.DISJOINT - 757)) | (1 << (SqlParser.ELT - 757)) | (1 << (SqlParser.ENCODE - 757)) | (1 << (SqlParser.ENCRYPT - 757)) | (1 << (SqlParser.ENDPOINT - 757)) | (1 << (SqlParser.ENVELOPE - 757)) | (1 << (SqlParser.EQUALS - 757)) | (1 << (SqlParser.EXP - 757)) | (1 << (SqlParser.EXPORT_SET - 757)) | (1 << (SqlParser.EXTERIORRING - 757)) | (1 << (SqlParser.EXTRACTVALUE - 757)) | (1 << (SqlParser.FIELD - 757)) | (1 << (SqlParser.FIND_IN_SET - 757)) | (1 << (SqlParser.FLOOR - 757)) | (1 << (SqlParser.FORMAT - 757)) | (1 << (SqlParser.FOUND_ROWS - 757)) | (1 << (SqlParser.FROM_BASE64 - 757)) | (1 << (SqlParser.FROM_DAYS - 757)) | (1 << (SqlParser.FROM_UNIXTIME - 757)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 757)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 757)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 757)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 757)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 757)) | (1 << (SqlParser.GEOMETRYFROMWKB - 757)) | (1 << (SqlParser.GEOMETRYN - 757)) | (1 << (SqlParser.GEOMETRYTYPE - 757)) | (1 << (SqlParser.GEOMFROMTEXT - 757)) | (1 << (SqlParser.GEOMFROMWKB - 757)))) !== 0) || ((((_la - 789)) & ~0x1f) == 0 && ((1 << (_la - 789)) & ((1 << (SqlParser.GET_FORMAT - 789)) | (1 << (SqlParser.GET_LOCK - 789)) | (1 << (SqlParser.GLENGTH - 789)) | (1 << (SqlParser.GREATEST - 789)) | (1 << (SqlParser.GTID_SUBSET - 789)) | (1 << (SqlParser.GTID_SUBTRACT - 789)) | (1 << (SqlParser.HEX - 789)) | (1 << (SqlParser.IFNULL - 789)) | (1 << (SqlParser.INET6_ATON - 789)) | (1 << (SqlParser.INET6_NTOA - 789)) | (1 << (SqlParser.INET_ATON - 789)) | (1 << (SqlParser.INET_NTOA - 789)) | (1 << (SqlParser.INSTR - 789)) | (1 << (SqlParser.INTERIORRINGN - 789)) | (1 << (SqlParser.INTERSECTS - 789)) | (1 << (SqlParser.ISCLOSED - 789)) | (1 << (SqlParser.ISEMPTY - 789)) | (1 << (SqlParser.ISNULL - 789)) | (1 << (SqlParser.ISSIMPLE - 789)) | (1 << (SqlParser.IS_FREE_LOCK - 789)) | (1 << (SqlParser.IS_IPV4 - 789)) | (1 << (SqlParser.IS_IPV4_COMPAT - 789)) | (1 << (SqlParser.IS_IPV4_MAPPED - 789)) | (1 << (SqlParser.IS_IPV6 - 789)) | (1 << (SqlParser.IS_USED_LOCK - 789)) | (1 << (SqlParser.LAST_INSERT_ID - 789)) | (1 << (SqlParser.LCASE - 789)) | (1 << (SqlParser.LEAST - 789)) | (1 << (SqlParser.LENGTH - 789)) | (1 << (SqlParser.LINEFROMTEXT - 789)) | (1 << (SqlParser.LINEFROMWKB - 789)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 789)))) !== 0) || ((((_la - 821)) & ~0x1f) == 0 && ((1 << (_la - 821)) & ((1 << (SqlParser.LINESTRINGFROMWKB - 821)) | (1 << (SqlParser.LN - 821)) | (1 << (SqlParser.LOAD_FILE - 821)) | (1 << (SqlParser.LOCATE - 821)) | (1 << (SqlParser.LOG - 821)) | (1 << (SqlParser.LOG10 - 821)) | (1 << (SqlParser.LOG2 - 821)) | (1 << (SqlParser.LOWER - 821)) | (1 << (SqlParser.LPAD - 821)) | (1 << (SqlParser.LTRIM - 821)) | (1 << (SqlParser.MAKEDATE - 821)) | (1 << (SqlParser.MAKETIME - 821)) | (1 << (SqlParser.MAKE_SET - 821)) | (1 << (SqlParser.MASTER_POS_WAIT - 821)) | (1 << (SqlParser.MBRCONTAINS - 821)) | (1 << (SqlParser.MBRDISJOINT - 821)) | (1 << (SqlParser.MBREQUAL - 821)) | (1 << (SqlParser.MBRINTERSECTS - 821)) | (1 << (SqlParser.MBROVERLAPS - 821)) | (1 << (SqlParser.MBRTOUCHES - 821)) | (1 << (SqlParser.MBRWITHIN - 821)) | (1 << (SqlParser.MD5 - 821)) | (1 << (SqlParser.MLINEFROMTEXT - 821)) | (1 << (SqlParser.MLINEFROMWKB - 821)) | (1 << (SqlParser.MONTHNAME - 821)) | (1 << (SqlParser.MPOINTFROMTEXT - 821)) | (1 << (SqlParser.MPOINTFROMWKB - 821)) | (1 << (SqlParser.MPOLYFROMTEXT - 821)) | (1 << (SqlParser.MPOLYFROMWKB - 821)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 821)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 821)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 821)))) !== 0) || ((((_la - 853)) & ~0x1f) == 0 && ((1 << (_la - 853)) & ((1 << (SqlParser.MULTIPOINTFROMWKB - 853)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 853)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 853)) | (1 << (SqlParser.NAME_CONST - 853)) | (1 << (SqlParser.NULLIF - 853)) | (1 << (SqlParser.NUMGEOMETRIES - 853)) | (1 << (SqlParser.NUMINTERIORRINGS - 853)) | (1 << (SqlParser.NUMPOINTS - 853)) | (1 << (SqlParser.OCT - 853)) | (1 << (SqlParser.OCTET_LENGTH - 853)) | (1 << (SqlParser.ORD - 853)) | (1 << (SqlParser.OVERLAPS - 853)) | (1 << (SqlParser.PERIOD_ADD - 853)) | (1 << (SqlParser.PERIOD_DIFF - 853)) | (1 << (SqlParser.PI - 853)) | (1 << (SqlParser.POINTFROMTEXT - 853)) | (1 << (SqlParser.POINTFROMWKB - 853)) | (1 << (SqlParser.POINTN - 853)) | (1 << (SqlParser.POLYFROMTEXT - 853)) | (1 << (SqlParser.POLYFROMWKB - 853)) | (1 << (SqlParser.POLYGONFROMTEXT - 853)) | (1 << (SqlParser.POLYGONFROMWKB - 853)) | (1 << (SqlParser.POW - 853)) | (1 << (SqlParser.POWER - 853)) | (1 << (SqlParser.QUOTE - 853)) | (1 << (SqlParser.RADIANS - 853)) | (1 << (SqlParser.RAND - 853)) | (1 << (SqlParser.RANDOM_BYTES - 853)) | (1 << (SqlParser.RELEASE_LOCK - 853)) | (1 << (SqlParser.REVERSE - 853)) | (1 << (SqlParser.ROUND - 853)) | (1 << (SqlParser.ROW_COUNT - 853)))) !== 0) || ((((_la - 885)) & ~0x1f) == 0 && ((1 << (_la - 885)) & ((1 << (SqlParser.RPAD - 885)) | (1 << (SqlParser.RTRIM - 885)) | (1 << (SqlParser.SEC_TO_TIME - 885)) | (1 << (SqlParser.SESSION_USER - 885)) | (1 << (SqlParser.SHA - 885)) | (1 << (SqlParser.SHA1 - 885)) | (1 << (SqlParser.SHA2 - 885)) | (1 << (SqlParser.SIGN - 885)) | (1 << (SqlParser.SIN - 885)) | (1 << (SqlParser.SLEEP - 885)) | (1 << (SqlParser.SOUNDEX - 885)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 885)) | (1 << (SqlParser.SQRT - 885)) | (1 << (SqlParser.SRID - 885)) | (1 << (SqlParser.STARTPOINT - 885)) | (1 << (SqlParser.STRCMP - 885)) | (1 << (SqlParser.STR_TO_DATE - 885)) | (1 << (SqlParser.ST_AREA - 885)) | (1 << (SqlParser.ST_ASBINARY - 885)) | (1 << (SqlParser.ST_ASTEXT - 885)) | (1 << (SqlParser.ST_ASWKB - 885)) | (1 << (SqlParser.ST_ASWKT - 885)) | (1 << (SqlParser.ST_BUFFER - 885)) | (1 << (SqlParser.ST_CENTROID - 885)) | (1 << (SqlParser.ST_CONTAINS - 885)) | (1 << (SqlParser.ST_CROSSES - 885)) | (1 << (SqlParser.ST_DIFFERENCE - 885)) | (1 << (SqlParser.ST_DIMENSION - 885)) | (1 << (SqlParser.ST_DISJOINT - 885)) | (1 << (SqlParser.ST_DISTANCE - 885)) | (1 << (SqlParser.ST_ENDPOINT - 885)))) !== 0) || ((((_la - 917)) & ~0x1f) == 0 && ((1 << (_la - 917)) & ((1 << (SqlParser.ST_ENVELOPE - 917)) | (1 << (SqlParser.ST_EQUALS - 917)) | (1 << (SqlParser.ST_EXTERIORRING - 917)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 917)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 917)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 917)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 917)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 917)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 917)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 917)) | (1 << (SqlParser.ST_GEOMETRYN - 917)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 917)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 917)) | (1 << (SqlParser.ST_GEOMFROMWKB - 917)) | (1 << (SqlParser.ST_INTERIORRINGN - 917)) | (1 << (SqlParser.ST_INTERSECTION - 917)) | (1 << (SqlParser.ST_INTERSECTS - 917)) | (1 << (SqlParser.ST_ISCLOSED - 917)) | (1 << (SqlParser.ST_ISEMPTY - 917)) | (1 << (SqlParser.ST_ISSIMPLE - 917)) | (1 << (SqlParser.ST_LINEFROMTEXT - 917)) | (1 << (SqlParser.ST_LINEFROMWKB - 917)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 917)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 917)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 917)) | (1 << (SqlParser.ST_NUMINTERIORRING - 917)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 917)) | (1 << (SqlParser.ST_NUMPOINTS - 917)) | (1 << (SqlParser.ST_OVERLAPS - 917)) | (1 << (SqlParser.ST_POINTFROMTEXT - 917)) | (1 << (SqlParser.ST_POINTFROMWKB - 917)) | (1 << (SqlParser.ST_POINTN - 917)))) !== 0) || ((((_la - 949)) & ~0x1f) == 0 && ((1 << (_la - 949)) & ((1 << (SqlParser.ST_POLYFROMTEXT - 949)) | (1 << (SqlParser.ST_POLYFROMWKB - 949)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 949)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 949)) | (1 << (SqlParser.ST_SRID - 949)) | (1 << (SqlParser.ST_STARTPOINT - 949)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 949)) | (1 << (SqlParser.ST_TOUCHES - 949)) | (1 << (SqlParser.ST_UNION - 949)) | (1 << (SqlParser.ST_WITHIN - 949)) | (1 << (SqlParser.ST_X - 949)) | (1 << (SqlParser.ST_Y - 949)) | (1 << (SqlParser.SUBDATE - 949)) | (1 << (SqlParser.SUBSTRING_INDEX - 949)) | (1 << (SqlParser.SUBTIME - 949)) | (1 << (SqlParser.SYSTEM_USER - 949)) | (1 << (SqlParser.TAN - 949)) | (1 << (SqlParser.TIMEDIFF - 949)) | (1 << (SqlParser.TIMESTAMPADD - 949)) | (1 << (SqlParser.TIMESTAMPDIFF - 949)) | (1 << (SqlParser.TIME_FORMAT - 949)) | (1 << (SqlParser.TIME_TO_SEC - 949)) | (1 << (SqlParser.TOUCHES - 949)) | (1 << (SqlParser.TO_BASE64 - 949)) | (1 << (SqlParser.TO_DAYS - 949)) | (1 << (SqlParser.TO_SECONDS - 949)) | (1 << (SqlParser.UCASE - 949)) | (1 << (SqlParser.UNCOMPRESS - 949)) | (1 << (SqlParser.UNCOMPRESSED_LENGTH - 949)) | (1 << (SqlParser.UNHEX - 949)) | (1 << (SqlParser.UNIX_TIMESTAMP - 949)) | (1 << (SqlParser.UPDATEXML - 949)))) !== 0) || ((((_la - 981)) & ~0x1f) == 0 && ((1 << (_la - 981)) & ((1 << (SqlParser.UPPER - 981)) | (1 << (SqlParser.UUID - 981)) | (1 << (SqlParser.UUID_SHORT - 981)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 981)) | (1 << (SqlParser.VERSION - 981)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 981)) | (1 << (SqlParser.WEEKDAY - 981)) | (1 << (SqlParser.WEEKOFYEAR - 981)) | (1 << (SqlParser.WEIGHT_STRING - 981)) | (1 << (SqlParser.WITHIN - 981)) | (1 << (SqlParser.YEARWEEK - 981)) | (1 << (SqlParser.Y_FUNCTION - 981)) | (1 << (SqlParser.X_FUNCTION - 981)))) !== 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;
};


SqlParser.prototype.sempred = function(localctx, ruleIndex, predIndex) {
	switch(ruleIndex) {
	case 301:
			return this.expression_sempred(localctx, predIndex);
	case 302:
			return this.predicate_sempred(localctx, predIndex);
	case 303:
			return this.expressionAtom_sempred(localctx, predIndex);
    default:
        throw "No predicate with index:" + ruleIndex;
   }
};

SqlParser.prototype.expression_sempred = function(localctx, predIndex) {
	switch(predIndex) {
		case 0:
			return this.precpred(this._ctx, 3);
		default:
			throw "No predicate with index:" + predIndex;
	}
};

SqlParser.prototype.predicate_sempred = function(localctx, predIndex) {
	switch(predIndex) {
		case 1:
			return this.precpred(this._ctx, 7);
		case 2:
			return this.precpred(this._ctx, 5);
		case 3:
			return this.precpred(this._ctx, 4);
		case 4:
			return this.precpred(this._ctx, 2);
		case 5:
			return this.precpred(this._ctx, 9);
		case 6:
			return this.precpred(this._ctx, 8);
		case 7:
			return this.precpred(this._ctx, 6);
		case 8:
			return this.precpred(this._ctx, 3);
		default:
			throw "No predicate with index:" + predIndex;
	}
};

SqlParser.prototype.expressionAtom_sempred = function(localctx, predIndex) {
	switch(predIndex) {
		case 9:
			return this.precpred(this._ctx, 2);
		case 10:
			return this.precpred(this._ctx, 1);
		case 11:
			return this.precpred(this._ctx, 11);
		default:
			throw "No predicate with index:" + predIndex;
	}
};


exports.SqlParser = SqlParser;
