24328 lines
		
	
	
		
			1.0 MiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			24328 lines
		
	
	
		
			1.0 MiB
		
	
	
	
	
	
	
	
| // Generated from ./grammar/sql.g4 by ANTLR 4.7.1
 | |
| // jshint ignore: start
 | |
| var antlr4 = require('antlr4/index');
 | |
| var sqlListener = require('./sqlListener').sqlListener;
 | |
| var sqlVisitor = require('./sqlVisitor').sqlVisitor;
 | |
| var grammarFileName = "sql.g4";
 | |
| var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964",
 | |
|     "\u0003\u0113\u0a96\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\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002",
 | |
|     "\u0005\u0002\u00eb\n\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003",
 | |
|     "\u0004\u0003\u0004\u0003\u0004\u0003\u0005\u0003\u0005\u0003\u0005\u0003",
 | |
|     "\u0006\u0003\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0104",
 | |
|     "\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u0109\n\b\u0003\b\u0005\b\u010c",
 | |
|     "\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u0111\n\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005",
 | |
|     "\b\u011e\n\b\u0003\b\u0003\b\u0005\b\u0122\n\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0005\b\u0129\n\b\u0003\b\u0003\b\u0003\b\u0003\b",
 | |
|     "\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0007",
 | |
|     "\b\u0137\n\b\f\b\u000e\b\u013a\u000b\b\u0003\b\u0005\b\u013d\n\b\u0003",
 | |
|     "\b\u0005\b\u0140\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b",
 | |
|     "\u0147\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0007\b\u0158",
 | |
|     "\n\b\f\b\u000e\b\u015b\u000b\b\u0003\b\u0005\b\u015e\n\b\u0003\b\u0005",
 | |
|     "\b\u0161\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0168\n",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u016f\n\b\u0003\b",
 | |
|     "\u0003\b\u0005\b\u0173\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0005\b\u017b\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b",
 | |
|     "\u0003\b\u0003\b\u0005\b\u0185\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005",
 | |
|     "\b\u018b\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0191\n\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005",
 | |
|     "\b\u019c\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b",
 | |
|     "\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u01bc\n\b\u0003\b",
 | |
|     "\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u01c4\n\b\u0003\b\u0003",
 | |
|     "\b\u0005\b\u01c8\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u01cd\n\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0005\b\u01d3\n\b\u0003\b\u0003\b\u0003\b",
 | |
|     "\u0003\b\u0003\b\u0003\b\u0005\b\u01db\n\b\u0003\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0005\b\u01e1\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b",
 | |
|     "\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u01ee\n\b\u0003\b\u0006",
 | |
|     "\b\u01f1\n\b\r\b\u000e\b\u01f2\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0005\b\u01fc\n\b\u0003\b\u0006\b\u01ff\n\b\r\b\u000e",
 | |
|     "\b\u0200\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0211\n\b",
 | |
|     "\u0003\b\u0003\b\u0003\b\u0007\b\u0216\n\b\f\b\u000e\b\u0219\u000b\b",
 | |
|     "\u0003\b\u0005\b\u021c\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0005\b\u0224\n\b\u0003\b\u0003\b\u0003\b\u0007\b\u0229\n\b\f\b\u000e",
 | |
|     "\b\u022c\u000b\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0232\n\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0005\b\u0241\n\b\u0003\b\u0003\b\u0005\b",
 | |
|     "\u0245\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u024b\n\b\u0003\b",
 | |
|     "\u0003\b\u0003\b\u0003\b\u0005\b\u0251\n\b\u0003\b\u0005\b\u0254\n\b",
 | |
|     "\u0003\b\u0005\b\u0257\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u025d",
 | |
|     "\n\b\u0003\b\u0003\b\u0005\b\u0261\n\b\u0003\b\u0003\b\u0005\b\u0265",
 | |
|     "\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u026a\n\b\u0003\b\u0003\b\u0005",
 | |
|     "\b\u026e\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b",
 | |
|     "\u0276\n\b\u0003\b\u0005\b\u0279\n\b\u0003\b\u0003\b\u0003\b\u0003\b",
 | |
|     "\u0003\b\u0003\b\u0003\b\u0005\b\u0282\n\b\u0003\b\u0003\b\u0003\b\u0005",
 | |
|     "\b\u0287\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u028d\n\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0294\n\b\u0003\b\u0005\b",
 | |
|     "\u0297\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u029d\n\b\u0003\b",
 | |
|     "\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0007\b\u02a6\n\b\f",
 | |
|     "\b\u000e\b\u02a9\u000b\b\u0005\b\u02ab\n\b\u0003\b\u0003\b\u0005\b\u02af",
 | |
|     "\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u02b4\n\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0005\b\u02b9\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b",
 | |
|     "\u02c0\n\b\u0003\b\u0005\b\u02c3\n\b\u0003\b\u0005\b\u02c6\n\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u02cd\n\b\u0003\b\u0003\b",
 | |
|     "\u0003\b\u0005\b\u02d2\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u02d7\n\b",
 | |
|     "\u0003\b\u0005\b\u02da\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0003\b\u0005\b\u02e3\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b",
 | |
|     "\u0003\b\u0005\b\u02eb\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u02f1",
 | |
|     "\n\b\u0003\b\u0003\b\u0005\b\u02f5\n\b\u0003\b\u0003\b\u0005\b\u02f9",
 | |
|     "\n\b\u0003\b\u0003\b\u0005\b\u02fd\n\b\u0005\b\u02ff\n\b\u0003\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0308\n\b\u0003\b",
 | |
|     "\u0003\b\u0003\b\u0003\b\u0005\b\u030e\n\b\u0003\b\u0003\b\u0003\b\u0005",
 | |
|     "\b\u0313\n\b\u0003\b\u0005\b\u0316\n\b\u0003\b\u0003\b\u0005\b\u031a",
 | |
|     "\n\b\u0003\b\u0005\b\u031d\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0003\b\u0007\b\u0325\n\b\f\b\u000e\b\u0328\u000b\b\u0005\b\u032a",
 | |
|     "\n\b\u0003\b\u0003\b\u0005\b\u032e\n\b\u0003\b\u0003\b\u0003\b\u0003",
 | |
|     "\b\u0005\b\u0334\n\b\u0003\b\u0005\b\u0337\n\b\u0003\b\u0005\b\u033a",
 | |
|     "\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0340\n\b\u0003\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0348\n\b\u0003\b\u0003\b",
 | |
|     "\u0003\b\u0005\b\u034d\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0353",
 | |
|     "\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0359\n\b\u0003\b\u0003",
 | |
|     "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0007\b\u0362\n\b\f\b\u000e",
 | |
|     "\b\u0365\u000b\b\u0003\b\u0003\b\u0003\b\u0007\b\u036a\n\b\f\b\u000e",
 | |
|     "\b\u036d\u000b\b\u0003\b\u0003\b\u0007\b\u0371\n\b\f\b\u000e\b\u0374",
 | |
|     "\u000b\b\u0003\b\u0003\b\u0003\b\u0007\b\u0379\n\b\f\b\u000e\b\u037c",
 | |
|     "\u000b\b\u0005\b\u037e\n\b\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0005\t\u0386\n\t\u0003\t\u0003\t\u0005\t\u038a\n\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0003\t\u0005\t\u0391\n\t\u0003\t\u0003\t\u0003\t",
 | |
|     "\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0003\t\u0005\t\u0405\n\t\u0003\t\u0003\t\u0003\t",
 | |
|     "\u0003\t\u0003\t\u0003\t\u0005\t\u040d\n\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0005\t\u0415\n\t\u0003\t\u0003\t\u0003\t\u0003\t",
 | |
|     "\u0003\t\u0003\t\u0003\t\u0005\t\u041e\n\t\u0003\t\u0003\t\u0003\t\u0003",
 | |
|     "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0005\t\u042a\n\t",
 | |
|     "\u0003\n\u0003\n\u0005\n\u042e\n\n\u0003\n\u0005\n\u0431\n\n\u0003\n",
 | |
|     "\u0003\n\u0003\n\u0003\n\u0005\n\u0437\n\n\u0003\n\u0003\n\u0003\u000b",
 | |
|     "\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0005\u000b",
 | |
|     "\u0441\n\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003",
 | |
|     "\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0005\f\u044d\n\f\u0003\f",
 | |
|     "\u0003\f\u0003\f\u0005\f\u0452\n\f\u0003\r\u0003\r\u0003\r\u0003\u000e",
 | |
|     "\u0005\u000e\u0458\n\u000e\u0003\u000e\u0003\u000e\u0003\u000f\u0003",
 | |
|     "\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003",
 | |
|     "\u000f\u0005\u000f\u0464\n\u000f\u0005\u000f\u0466\n\u000f\u0003\u000f",
 | |
|     "\u0003\u000f\u0003\u000f\u0005\u000f\u046b\n\u000f\u0003\u000f\u0003",
 | |
|     "\u000f\u0005\u000f\u046f\n\u000f\u0003\u000f\u0003\u000f\u0003\u000f",
 | |
|     "\u0005\u000f\u0474\n\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0005",
 | |
|     "\u000f\u0479\n\u000f\u0003\u000f\u0005\u000f\u047c\n\u000f\u0003\u000f",
 | |
|     "\u0003\u000f\u0003\u000f\u0005\u000f\u0481\n\u000f\u0003\u000f\u0003",
 | |
|     "\u000f\u0005\u000f\u0485\n\u000f\u0003\u000f\u0003\u000f\u0003\u000f",
 | |
|     "\u0005\u000f\u048a\n\u000f\u0005\u000f\u048c\n\u000f\u0003\u0010\u0003",
 | |
|     "\u0010\u0005\u0010\u0490\n\u0010\u0003\u0011\u0003\u0011\u0003\u0011",
 | |
|     "\u0003\u0011\u0003\u0011\u0007\u0011\u0497\n\u0011\f\u0011\u000e\u0011",
 | |
|     "\u049a\u000b\u0011\u0003\u0011\u0003\u0011\u0003\u0012\u0003\u0012\u0003",
 | |
|     "\u0012\u0005\u0012\u04a1\n\u0012\u0003\u0013\u0003\u0013\u0003\u0013",
 | |
|     "\u0003\u0013\u0003\u0013\u0005\u0013\u04a8\n\u0013\u0003\u0014\u0003",
 | |
|     "\u0014\u0003\u0014\u0007\u0014\u04ad\n\u0014\f\u0014\u000e\u0014\u04b0",
 | |
|     "\u000b\u0014\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0007\u0015",
 | |
|     "\u04b6\n\u0015\f\u0015\u000e\u0015\u04b9\u000b\u0015\u0003\u0016\u0003",
 | |
|     "\u0016\u0005\u0016\u04bd\n\u0016\u0003\u0016\u0003\u0016\u0003\u0016",
 | |
|     "\u0003\u0016\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0018\u0003\u0018",
 | |
|     "\u0003\u0018\u0003\u0018\u0007\u0018\u04ca\n\u0018\f\u0018\u000e\u0018",
 | |
|     "\u04cd\u000b\u0018\u0003\u0018\u0003\u0018\u0003\u0019\u0003\u0019\u0005",
 | |
|     "\u0019\u04d3\n\u0019\u0003\u0019\u0005\u0019\u04d6\n\u0019\u0003\u001a",
 | |
|     "\u0003\u001a\u0003\u001a\u0007\u001a\u04db\n\u001a\f\u001a\u000e\u001a",
 | |
|     "\u04de\u000b\u001a\u0003\u001a\u0005\u001a\u04e1\n\u001a\u0003\u001b",
 | |
|     "\u0003\u001b\u0003\u001b\u0003\u001b\u0005\u001b\u04e7\n\u001b\u0003",
 | |
|     "\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0007\u001c\u04ed\n\u001c",
 | |
|     "\f\u001c\u000e\u001c\u04f0\u000b\u001c\u0003\u001c\u0003\u001c\u0003",
 | |
|     "\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0007\u001d\u04f8\n\u001d",
 | |
|     "\f\u001d\u000e\u001d\u04fb\u000b\u001d\u0003\u001d\u0003\u001d\u0003",
 | |
|     "\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0005",
 | |
|     "\u001e\u0505\n\u001e\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f",
 | |
|     "\u0003\u001f\u0005\u001f\u050c\n\u001f\u0003 \u0003 \u0003 \u0003 \u0005",
 | |
|     " \u0512\n \u0003!\u0003!\u0003!\u0003\"\u0005\"\u0518\n\"\u0003\"\u0003",
 | |
|     "\"\u0003\"\u0003\"\u0003\"\u0006\"\u051f\n\"\r\"\u000e\"\u0520\u0005",
 | |
|     "\"\u0523\n\"\u0003#\u0003#\u0003#\u0003#\u0003#\u0007#\u052a\n#\f#\u000e",
 | |
|     "#\u052d\u000b#\u0005#\u052f\n#\u0003#\u0003#\u0003#\u0003#\u0003#\u0007",
 | |
|     "#\u0536\n#\f#\u000e#\u0539\u000b#\u0005#\u053b\n#\u0003#\u0003#\u0003",
 | |
|     "#\u0003#\u0003#\u0007#\u0542\n#\f#\u000e#\u0545\u000b#\u0005#\u0547",
 | |
|     "\n#\u0003#\u0003#\u0003#\u0003#\u0003#\u0007#\u054e\n#\f#\u000e#\u0551",
 | |
|     "\u000b#\u0005#\u0553\n#\u0003#\u0005#\u0556\n#\u0003#\u0003#\u0003#",
 | |
|     "\u0005#\u055b\n#\u0005#\u055d\n#\u0003$\u0005$\u0560\n$\u0003$\u0003",
 | |
|     "$\u0003$\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0005%\u056c",
 | |
|     "\n%\u0003%\u0003%\u0003%\u0003%\u0003%\u0005%\u0573\n%\u0003%\u0003",
 | |
|     "%\u0003%\u0003%\u0003%\u0005%\u057a\n%\u0003%\u0007%\u057d\n%\f%\u000e",
 | |
|     "%\u0580\u000b%\u0003&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003",
 | |
|     "&\u0005&\u058a\n&\u0003\'\u0003\'\u0005\'\u058e\n\'\u0003\'\u0003\'",
 | |
|     "\u0005\'\u0592\n\'\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(",
 | |
|     "\u0003(\u0003(\u0003(\u0005(\u059e\n(\u0003(\u0005(\u05a1\n(\u0003(",
 | |
|     "\u0003(\u0005(\u05a5\n(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003",
 | |
|     "(\u0003(\u0005(\u05af\n(\u0003(\u0003(\u0005(\u05b3\n(\u0005(\u05b5",
 | |
|     "\n(\u0003(\u0005(\u05b8\n(\u0003(\u0003(\u0005(\u05bc\n(\u0003(\u0005",
 | |
|     "(\u05bf\n(\u0003(\u0003(\u0005(\u05c3\n(\u0003(\u0003(\u0007(\u05c7",
 | |
|     "\n(\f(\u000e(\u05ca\u000b(\u0003(\u0005(\u05cd\n(\u0003(\u0003(\u0005",
 | |
|     "(\u05d1\n(\u0003(\u0003(\u0003(\u0005(\u05d6\n(\u0003(\u0005(\u05d9",
 | |
|     "\n(\u0005(\u05db\n(\u0003(\u0007(\u05de\n(\f(\u000e(\u05e1\u000b(\u0003",
 | |
|     "(\u0003(\u0005(\u05e5\n(\u0003(\u0005(\u05e8\n(\u0003(\u0003(\u0005",
 | |
|     "(\u05ec\n(\u0003(\u0005(\u05ef\n(\u0005(\u05f1\n(\u0003)\u0003)\u0003",
 | |
|     ")\u0005)\u05f6\n)\u0003)\u0007)\u05f9\n)\f)\u000e)\u05fc\u000b)\u0003",
 | |
|     ")\u0003)\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0007*\u0606\n*\f",
 | |
|     "*\u000e*\u0609\u000b*\u0003*\u0003*\u0005*\u060d\n*\u0003+\u0003+\u0003",
 | |
|     "+\u0003+\u0007+\u0613\n+\f+\u000e+\u0616\u000b+\u0003+\u0007+\u0619",
 | |
|     "\n+\f+\u000e+\u061c\u000b+\u0003+\u0005+\u061f\n+\u0003,\u0003,\u0003",
 | |
|     ",\u0003,\u0003,\u0007,\u0626\n,\f,\u000e,\u0629\u000b,\u0003,\u0003",
 | |
|     ",\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0007,\u0635",
 | |
|     "\n,\f,\u000e,\u0638\u000b,\u0003,\u0003,\u0005,\u063c\n,\u0003,\u0003",
 | |
|     ",\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0007,\u0646\n,\f,\u000e",
 | |
|     ",\u0649\u000b,\u0003,\u0003,\u0005,\u064d\n,\u0003-\u0003-\u0003-\u0003",
 | |
|     "-\u0007-\u0653\n-\f-\u000e-\u0656\u000b-\u0005-\u0658\n-\u0003-\u0003",
 | |
|     "-\u0005-\u065c\n-\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003",
 | |
|     ".\u0003.\u0003.\u0007.\u0668\n.\f.\u000e.\u066b\u000b.\u0003.\u0003",
 | |
|     ".\u0003.\u0003/\u0003/\u0003/\u0003/\u0003/\u0007/\u0675\n/\f/\u000e",
 | |
|     "/\u0678\u000b/\u0003/\u0003/\u0005/\u067c\n/\u00030\u00030\u00050\u0680",
 | |
|     "\n0\u00030\u00050\u0683\n0\u00031\u00031\u00031\u00051\u0688\n1\u0003",
 | |
|     "1\u00031\u00031\u00031\u00031\u00071\u068f\n1\f1\u000e1\u0692\u000b",
 | |
|     "1\u00051\u0694\n1\u00031\u00031\u00031\u00051\u0699\n1\u00031\u0003",
 | |
|     "1\u00031\u00071\u069e\n1\f1\u000e1\u06a1\u000b1\u00051\u06a3\n1\u0003",
 | |
|     "2\u00032\u00033\u00033\u00073\u06a9\n3\f3\u000e3\u06ac\u000b3\u0003",
 | |
|     "4\u00034\u00034\u00034\u00054\u06b2\n4\u00034\u00034\u00034\u00034\u0003",
 | |
|     "4\u00054\u06b9\n4\u00035\u00055\u06bc\n5\u00035\u00035\u00035\u0005",
 | |
|     "5\u06c1\n5\u00035\u00035\u00035\u00035\u00055\u06c7\n5\u00035\u0003",
 | |
|     "5\u00055\u06cb\n5\u00035\u00055\u06ce\n5\u00035\u00055\u06d1\n5\u0003",
 | |
|     "6\u00036\u00036\u00036\u00056\u06d7\n6\u00037\u00037\u00037\u00057\u06dc",
 | |
|     "\n7\u00037\u00037\u00038\u00058\u06e1\n8\u00038\u00038\u00038\u0003",
 | |
|     "8\u00038\u00038\u00038\u00038\u00038\u00038\u00038\u00038\u00038\u0003",
 | |
|     "8\u00038\u00038\u00058\u06f3\n8\u00058\u06f5\n8\u00038\u00058\u06f8",
 | |
|     "\n8\u00039\u00039\u00039\u00039\u0003:\u0003:\u0003:\u0007:\u0701\n",
 | |
|     ":\f:\u000e:\u0704\u000b:\u0003;\u0003;\u0003;\u0003;\u0007;\u070a\n",
 | |
|     ";\f;\u000e;\u070d\u000b;\u0003;\u0003;\u0003<\u0003<\u0005<\u0713\n",
 | |
|     "<\u0003=\u0003=\u0003=\u0003=\u0007=\u0719\n=\f=\u000e=\u071c\u000b",
 | |
|     "=\u0003=\u0003=\u0003>\u0003>\u0003>\u0005>\u0723\n>\u0003?\u0003?\u0003",
 | |
|     "?\u0005?\u0728\n?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0005?\u0730",
 | |
|     "\n?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0005?\u0738\n?\u0003",
 | |
|     "?\u0003?\u0003?\u0003?\u0005?\u073e\n?\u0003@\u0003@\u0003@\u0003@\u0003",
 | |
|     "@\u0003@\u0003@\u0007@\u0747\n@\f@\u000e@\u074a\u000b@\u0005@\u074c",
 | |
|     "\n@\u0003@\u0003@\u0003@\u0003@\u0003@\u0007@\u0753\n@\f@\u000e@\u0756",
 | |
|     "\u000b@\u0005@\u0758\n@\u0003@\u0003@\u0003@\u0003@\u0007@\u075e\n@",
 | |
|     "\f@\u000e@\u0761\u000b@\u0005@\u0763\n@\u0003@\u0003@\u0003@\u0003@",
 | |
|     "\u0005@\u0769\n@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003",
 | |
|     "@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003",
 | |
|     "@\u0003@\u0003@\u0003@\u0005@\u0780\n@\u0005@\u0782\n@\u0003@\u0003",
 | |
|     "@\u0003@\u0003@\u0003@\u0003@\u0005@\u078a\n@\u0003@\u0003@\u0003@\u0003",
 | |
|     "@\u0003@\u0003@\u0003@\u0003@\u0003@\u0007@\u0795\n@\f@\u000e@\u0798",
 | |
|     "\u000b@\u0003@\u0003@\u0003A\u0003A\u0003A\u0003A\u0003B\u0003B\u0003",
 | |
|     "C\u0003C\u0003D\u0003D\u0003D\u0007D\u07a7\nD\fD\u000eD\u07aa\u000b",
 | |
|     "D\u0003E\u0003E\u0007E\u07ae\nE\fE\u000eE\u07b1\u000bE\u0003F\u0003",
 | |
|     "F\u0005F\u07b5\nF\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003",
 | |
|     "G\u0005G\u07bf\nG\u0003G\u0003G\u0005G\u07c3\nG\u0003G\u0003G\u0005",
 | |
|     "G\u07c7\nG\u0003G\u0003G\u0003G\u0003G\u0005G\u07cd\nG\u0003H\u0003",
 | |
|     "H\u0003I\u0003I\u0003J\u0003J\u0003K\u0003K\u0003K\u0003K\u0007K\u07d9",
 | |
|     "\nK\fK\u000eK\u07dc\u000bK\u0003K\u0003K\u0003L\u0003L\u0003L\u0003",
 | |
|     "L\u0003L\u0007L\u07e5\nL\fL\u000eL\u07e8\u000bL\u0005L\u07ea\nL\u0003",
 | |
|     "L\u0003L\u0003L\u0003M\u0005M\u07f0\nM\u0003M\u0003M\u0005M\u07f4\n",
 | |
|     "M\u0005M\u07f6\nM\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0005",
 | |
|     "N\u07ff\nN\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003",
 | |
|     "N\u0003N\u0005N\u080b\nN\u0005N\u080d\nN\u0003N\u0003N\u0003N\u0003",
 | |
|     "N\u0003N\u0005N\u0814\nN\u0003N\u0003N\u0003N\u0003N\u0003N\u0005N\u081b",
 | |
|     "\nN\u0003N\u0003N\u0003N\u0003N\u0005N\u0821\nN\u0003N\u0003N\u0003",
 | |
|     "N\u0003N\u0005N\u0827\nN\u0005N\u0829\nN\u0003O\u0003O\u0003O\u0005",
 | |
|     "O\u082e\nO\u0003O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003",
 | |
|     "O\u0007O\u0839\nO\fO\u000eO\u083c\u000bO\u0003O\u0003O\u0003O\u0003",
 | |
|     "O\u0003O\u0003O\u0003O\u0003O\u0005O\u0846\nO\u0003P\u0003P\u0003P\u0005",
 | |
|     "P\u084b\nP\u0003P\u0003P\u0003Q\u0003Q\u0005Q\u0851\nQ\u0003Q\u0003",
 | |
|     "Q\u0005Q\u0855\nQ\u0005Q\u0857\nQ\u0003R\u0003R\u0003R\u0007R\u085c",
 | |
|     "\nR\fR\u000eR\u085f\u000bR\u0003S\u0003S\u0003T\u0003T\u0003T\u0003",
 | |
|     "T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0005T\u086d\nT\u0005T\u086f",
 | |
|     "\nT\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0007T\u0877\nT\fT\u000e",
 | |
|     "T\u087a\u000bT\u0003U\u0005U\u087d\nU\u0003U\u0003U\u0003U\u0003U\u0003",
 | |
|     "U\u0003U\u0005U\u0885\nU\u0003U\u0003U\u0003U\u0003U\u0003U\u0007U\u088c",
 | |
|     "\nU\fU\u000eU\u088f\u000bU\u0003U\u0003U\u0003U\u0005U\u0894\nU\u0003",
 | |
|     "U\u0003U\u0003U\u0003U\u0003U\u0003U\u0005U\u089c\nU\u0003U\u0003U\u0003",
 | |
|     "U\u0003U\u0005U\u08a2\nU\u0003U\u0003U\u0003U\u0005U\u08a7\nU\u0003",
 | |
|     "U\u0003U\u0003U\u0005U\u08ac\nU\u0003V\u0003V\u0003V\u0003V\u0005V\u08b2",
 | |
|     "\nV\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003",
 | |
|     "V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0007",
 | |
|     "V\u08c7\nV\fV\u000eV\u08ca\u000bV\u0003W\u0003W\u0003W\u0006W\u08cf",
 | |
|     "\nW\rW\u000eW\u08d0\u0003W\u0003W\u0005W\u08d5\nW\u0003W\u0003W\u0003",
 | |
|     "W\u0003W\u0003W\u0006W\u08dc\nW\rW\u000eW\u08dd\u0003W\u0003W\u0005",
 | |
|     "W\u08e2\nW\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003",
 | |
|     "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0007W\u08f2\nW\fW\u000eW\u08f5",
 | |
|     "\u000bW\u0005W\u08f7\nW\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0005",
 | |
|     "W\u08ff\nW\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0005W\u0908",
 | |
|     "\nW\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003",
 | |
|     "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0006",
 | |
|     "W\u091d\nW\rW\u000eW\u091e\u0003W\u0003W\u0003W\u0003W\u0003W\u0003",
 | |
|     "W\u0003W\u0003W\u0003W\u0005W\u092a\nW\u0003W\u0003W\u0003W\u0007W\u092f",
 | |
|     "\nW\fW\u000eW\u0932\u000bW\u0005W\u0934\nW\u0003W\u0003W\u0003W\u0005",
 | |
|     "W\u0939\nW\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003",
 | |
|     "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0006W\u094a\nW\rW\u000e",
 | |
|     "W\u094b\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003",
 | |
|     "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0005W\u095d\nW\u0003W\u0003",
 | |
|     "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0007W\u0967\nW\fW\u000e",
 | |
|     "W\u096a\u000bW\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003",
 | |
|     "X\u0006X\u0974\nX\rX\u000eX\u0975\u0005X\u0978\nX\u0003Y\u0003Y\u0003",
 | |
|     "Z\u0003Z\u0003[\u0003[\u0003\\\u0003\\\u0003]\u0003]\u0007]\u0984\n",
 | |
|     "]\f]\u000e]\u0987\u000b]\u0003^\u0003^\u0003^\u0003^\u0005^\u098d\n",
 | |
|     "^\u0003_\u0005_\u0990\n_\u0003_\u0003_\u0005_\u0994\n_\u0003`\u0003",
 | |
|     "`\u0003`\u0005`\u0999\n`\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003",
 | |
|     "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0005a\u09aa",
 | |
|     "\na\u0003a\u0003a\u0005a\u09ae\na\u0003a\u0003a\u0003a\u0003a\u0003",
 | |
|     "a\u0007a\u09b5\na\fa\u000ea\u09b8\u000ba\u0003a\u0005a\u09bb\na\u0005",
 | |
|     "a\u09bd\na\u0003b\u0003b\u0003b\u0007b\u09c2\nb\fb\u000eb\u09c5\u000b",
 | |
|     "b\u0003c\u0003c\u0003c\u0003c\u0005c\u09cb\nc\u0003d\u0003d\u0003d\u0007",
 | |
|     "d\u09d0\nd\fd\u000ed\u09d3\u000bd\u0003e\u0003e\u0003e\u0007e\u09d8",
 | |
|     "\ne\fe\u000ee\u09db\u000be\u0003e\u0003e\u0003e\u0005e\u09e0\ne\u0003",
 | |
|     "e\u0003e\u0005e\u09e4\ne\u0003e\u0003e\u0003e\u0003e\u0003e\u0003e\u0005",
 | |
|     "e\u09ec\ne\u0003f\u0003f\u0003f\u0007f\u09f1\nf\ff\u000ef\u09f4\u000b",
 | |
|     "f\u0003g\u0003g\u0003g\u0003g\u0003g\u0005g\u09fb\ng\u0003h\u0003h\u0003",
 | |
|     "h\u0003h\u0003h\u0003i\u0003i\u0003i\u0003i\u0007i\u0a06\ni\fi\u000e",
 | |
|     "i\u0a09\u000bi\u0003j\u0003j\u0003j\u0003j\u0003k\u0003k\u0003k\u0003",
 | |
|     "k\u0003k\u0003k\u0003k\u0007k\u0a16\nk\fk\u000ek\u0a19\u000bk\u0003",
 | |
|     "k\u0003k\u0003k\u0003k\u0003k\u0007k\u0a20\nk\fk\u000ek\u0a23\u000b",
 | |
|     "k\u0005k\u0a25\nk\u0003k\u0003k\u0003k\u0003k\u0003k\u0007k\u0a2c\n",
 | |
|     "k\fk\u000ek\u0a2f\u000bk\u0005k\u0a31\nk\u0005k\u0a33\nk\u0003k\u0005",
 | |
|     "k\u0a36\nk\u0003k\u0005k\u0a39\nk\u0003l\u0003l\u0003l\u0003l\u0003",
 | |
|     "l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003",
 | |
|     "l\u0003l\u0005l\u0a4b\nl\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003",
 | |
|     "m\u0005m\u0a54\nm\u0003n\u0003n\u0003n\u0007n\u0a59\nn\fn\u000en\u0a5c",
 | |
|     "\u000bn\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0003",
 | |
|     "o\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0005o\u0a6d\no\u0003p\u0003",
 | |
|     "p\u0003p\u0005p\u0a72\np\u0003q\u0003q\u0003r\u0005r\u0a77\nr\u0003",
 | |
|     "r\u0003r\u0005r\u0a7b\nr\u0003r\u0003r\u0005r\u0a7f\nr\u0003r\u0003",
 | |
|     "r\u0005r\u0a83\nr\u0003r\u0003r\u0005r\u0a87\nr\u0003r\u0003r\u0005",
 | |
|     "r\u0a8b\nr\u0003r\u0003r\u0005r\u0a8f\nr\u0003r\u0005r\u0a92\nr\u0003",
 | |
|     "s\u0003s\u0003s\u0007\u0326\u0363\u036b\u0372\u037a\u0006H\u00a6\u00aa",
 | |
|     "\u00act\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\u0002\u001d\u0003\u0002\u00d0\u00d1\u0004\u0002",
 | |
|     "XXZZ\u0005\u0002bd\u00b6\u00b6\u00bc\u00bc\u0004\u0002\u0014\u0014\'",
 | |
|     "\'\u0004\u000244__\u0004\u0002\u00b6\u00b6\u00bc\u00bc\u0004\u0002\u0015",
 | |
|     "\u0015\u00dd\u00dd\u0003\u0002nq\u0003\u0002np\u0003\u000234\u0004\u0002",
 | |
|     "QQSS\u0004\u0002\u0017\u0017\u0019\u0019\u0003\u0002\u0109\u010a\u0003",
 | |
|     "\u0002,-\u0004\u0002\u0092\u0093\u0098\u0098\u0003\u0002\u0094\u0097",
 | |
|     "\u0004\u0002\u0092\u0093\u009b\u009b\u0003\u0002\u0084\u0086\u0003\u0002",
 | |
|     "\u008a\u0091\u0003\u0002\u0092\u009c\u0003\u0002%(\u0003\u000201\u0003",
 | |
|     "\u0002\u0092\u0093\u0004\u0002JJ\u00a3\u00a3\u0004\u0002!!\u00a1\u00a1",
 | |
|     "\u0003\u0002NO\u000b\u0002\u0013;>>FUWmr\u0089\u0097\u0097\u009d\u00a6",
 | |
|     "\u00a8\u00f4\u00f6\u00f7\u0002\u0c4d\u0002\u00ea\u0003\u0002\u0002\u0002",
 | |
|     "\u0004\u00ec\u0003\u0002\u0002\u0002\u0006\u00ef\u0003\u0002\u0002\u0002",
 | |
|     "\b\u00f2\u0003\u0002\u0002\u0002\n\u00f5\u0003\u0002\u0002\u0002\f\u00f8",
 | |
|     "\u0003\u0002\u0002\u0002\u000e\u037d\u0003\u0002\u0002\u0002\u0010\u0429",
 | |
|     "\u0003\u0002\u0002\u0002\u0012\u042b\u0003\u0002\u0002\u0002\u0014\u043a",
 | |
|     "\u0003\u0002\u0002\u0002\u0016\u0446\u0003\u0002\u0002\u0002\u0018\u0453",
 | |
|     "\u0003\u0002\u0002\u0002\u001a\u0457\u0003\u0002\u0002\u0002\u001c\u048b",
 | |
|     "\u0003\u0002\u0002\u0002\u001e\u048d\u0003\u0002\u0002\u0002 \u0491",
 | |
|     "\u0003\u0002\u0002\u0002\"\u049d\u0003\u0002\u0002\u0002$\u04a7\u0003",
 | |
|     "\u0002\u0002\u0002&\u04a9\u0003\u0002\u0002\u0002(\u04b1\u0003\u0002",
 | |
|     "\u0002\u0002*\u04ba\u0003\u0002\u0002\u0002,\u04c2\u0003\u0002\u0002",
 | |
|     "\u0002.\u04c5\u0003\u0002\u0002\u00020\u04d0\u0003\u0002\u0002\u0002",
 | |
|     "2\u04e0\u0003\u0002\u0002\u00024\u04e6\u0003\u0002\u0002\u00026\u04e8",
 | |
|     "\u0003\u0002\u0002\u00028\u04f3\u0003\u0002\u0002\u0002:\u0504\u0003",
 | |
|     "\u0002\u0002\u0002<\u050b\u0003\u0002\u0002\u0002>\u050d\u0003\u0002",
 | |
|     "\u0002\u0002@\u0513\u0003\u0002\u0002\u0002B\u0522\u0003\u0002\u0002",
 | |
|     "\u0002D\u052e\u0003\u0002\u0002\u0002F\u055f\u0003\u0002\u0002\u0002",
 | |
|     "H\u0564\u0003\u0002\u0002\u0002J\u0589\u0003\u0002\u0002\u0002L\u058b",
 | |
|     "\u0003\u0002\u0002\u0002N\u05f0\u0003\u0002\u0002\u0002P\u05f2\u0003",
 | |
|     "\u0002\u0002\u0002R\u060c\u0003\u0002\u0002\u0002T\u060e\u0003\u0002",
 | |
|     "\u0002\u0002V\u064c\u0003\u0002\u0002\u0002X\u065b\u0003\u0002\u0002",
 | |
|     "\u0002Z\u065d\u0003\u0002\u0002\u0002\\\u067b\u0003\u0002\u0002\u0002",
 | |
|     "^\u067d\u0003\u0002\u0002\u0002`\u0684\u0003\u0002\u0002\u0002b\u06a4",
 | |
|     "\u0003\u0002\u0002\u0002d\u06a6\u0003\u0002\u0002\u0002f\u06b8\u0003",
 | |
|     "\u0002\u0002\u0002h\u06d0\u0003\u0002\u0002\u0002j\u06d6\u0003\u0002",
 | |
|     "\u0002\u0002l\u06d8\u0003\u0002\u0002\u0002n\u06f7\u0003\u0002\u0002",
 | |
|     "\u0002p\u06f9\u0003\u0002\u0002\u0002r\u06fd\u0003\u0002\u0002\u0002",
 | |
|     "t\u0705\u0003\u0002\u0002\u0002v\u0710\u0003\u0002\u0002\u0002x\u0714",
 | |
|     "\u0003\u0002\u0002\u0002z\u071f\u0003\u0002\u0002\u0002|\u073d\u0003",
 | |
|     "\u0002\u0002\u0002~\u073f\u0003\u0002\u0002\u0002\u0080\u079b\u0003",
 | |
|     "\u0002\u0002\u0002\u0082\u079f\u0003\u0002\u0002\u0002\u0084\u07a1\u0003",
 | |
|     "\u0002\u0002\u0002\u0086\u07a3\u0003\u0002\u0002\u0002\u0088\u07ab\u0003",
 | |
|     "\u0002\u0002\u0002\u008a\u07b2\u0003\u0002\u0002\u0002\u008c\u07cc\u0003",
 | |
|     "\u0002\u0002\u0002\u008e\u07ce\u0003\u0002\u0002\u0002\u0090\u07d0\u0003",
 | |
|     "\u0002\u0002\u0002\u0092\u07d2\u0003\u0002\u0002\u0002\u0094\u07d4\u0003",
 | |
|     "\u0002\u0002\u0002\u0096\u07df\u0003\u0002\u0002\u0002\u0098\u07f5\u0003",
 | |
|     "\u0002\u0002\u0002\u009a\u0828\u0003\u0002\u0002\u0002\u009c\u0845\u0003",
 | |
|     "\u0002\u0002\u0002\u009e\u084a\u0003\u0002\u0002\u0002\u00a0\u084e\u0003",
 | |
|     "\u0002\u0002\u0002\u00a2\u0858\u0003\u0002\u0002\u0002\u00a4\u0860\u0003",
 | |
|     "\u0002\u0002\u0002\u00a6\u086e\u0003\u0002\u0002\u0002\u00a8\u08ab\u0003",
 | |
|     "\u0002\u0002\u0002\u00aa\u08b1\u0003\u0002\u0002\u0002\u00ac\u095c\u0003",
 | |
|     "\u0002\u0002\u0002\u00ae\u0977\u0003\u0002\u0002\u0002\u00b0\u0979\u0003",
 | |
|     "\u0002\u0002\u0002\u00b2\u097b\u0003\u0002\u0002\u0002\u00b4\u097d\u0003",
 | |
|     "\u0002\u0002\u0002\u00b6\u097f\u0003\u0002\u0002\u0002\u00b8\u0981\u0003",
 | |
|     "\u0002\u0002\u0002\u00ba\u0988\u0003\u0002\u0002\u0002\u00bc\u0993\u0003",
 | |
|     "\u0002\u0002\u0002\u00be\u0998\u0003\u0002\u0002\u0002\u00c0\u09bc\u0003",
 | |
|     "\u0002\u0002\u0002\u00c2\u09be\u0003\u0002\u0002\u0002\u00c4\u09c6\u0003",
 | |
|     "\u0002\u0002\u0002\u00c6\u09cc\u0003\u0002\u0002\u0002\u00c8\u09eb\u0003",
 | |
|     "\u0002\u0002\u0002\u00ca\u09ed\u0003\u0002\u0002\u0002\u00cc\u09f5\u0003",
 | |
|     "\u0002\u0002\u0002\u00ce\u09fc\u0003\u0002\u0002\u0002\u00d0\u0a01\u0003",
 | |
|     "\u0002\u0002\u0002\u00d2\u0a0a\u0003\u0002\u0002\u0002\u00d4\u0a38\u0003",
 | |
|     "\u0002\u0002\u0002\u00d6\u0a4a\u0003\u0002\u0002\u0002\u00d8\u0a53\u0003",
 | |
|     "\u0002\u0002\u0002\u00da\u0a55\u0003\u0002\u0002\u0002\u00dc\u0a6c\u0003",
 | |
|     "\u0002\u0002\u0002\u00de\u0a71\u0003\u0002\u0002\u0002\u00e0\u0a73\u0003",
 | |
|     "\u0002\u0002\u0002\u00e2\u0a91\u0003\u0002\u0002\u0002\u00e4\u0a93\u0003",
 | |
|     "\u0002\u0002\u0002\u00e6\u00e7\u0005\u000e\b\u0002\u00e7\u00e8\u0007",
 | |
|     "\u0002\u0002\u0003\u00e8\u00eb\u0003\u0002\u0002\u0002\u00e9\u00eb\u0007",
 | |
|     "\u0002\u0002\u0003\u00ea\u00e6\u0003\u0002\u0002\u0002\u00ea\u00e9\u0003",
 | |
|     "\u0002\u0002\u0002\u00eb\u0003\u0003\u0002\u0002\u0002\u00ec\u00ed\u0005",
 | |
|     "\u00a0Q\u0002\u00ed\u00ee\u0007\u0002\u0002\u0003\u00ee\u0005\u0003",
 | |
|     "\u0002\u0002\u0002\u00ef\u00f0\u0005\u009cO\u0002\u00f0\u00f1\u0007",
 | |
|     "\u0002\u0002\u0003\u00f1\u0007\u0003\u0002\u0002\u0002\u00f2\u00f3\u0005",
 | |
|     "\u009eP\u0002\u00f3\u00f4\u0007\u0002\u0002\u0003\u00f4\t\u0003\u0002",
 | |
|     "\u0002\u0002\u00f5\u00f6\u0005\u00c0a\u0002\u00f6\u00f7\u0007\u0002",
 | |
|     "\u0002\u0003\u00f7\u000b\u0003\u0002\u0002\u0002\u00f8\u00f9\u0005\u00c2",
 | |
|     "b\u0002\u00f9\u00fa\u0007\u0002\u0002\u0003\u00fa\r\u0003\u0002\u0002",
 | |
|     "\u0002\u00fb\u037e\u0005\u001a\u000e\u0002\u00fc\u00fd\u0007j\u0002",
 | |
|     "\u0002\u00fd\u037e\u0005\u00dco\u0002\u00fe\u00ff\u0007W\u0002\u0002",
 | |
|     "\u00ff\u0103\u0007\u00d7\u0002\u0002\u0100\u0101\u0007\u0087\u0002\u0002",
 | |
|     "\u0101\u0102\u0007(\u0002\u0002\u0102\u0104\u0007*\u0002\u0002\u0103",
 | |
|     "\u0100\u0003\u0002\u0002\u0002\u0103\u0104\u0003\u0002\u0002\u0002\u0104",
 | |
|     "\u0105\u0003\u0002\u0002\u0002\u0105\u0108\u0005\u00dco\u0002\u0106",
 | |
|     "\u0107\u0007z\u0002\u0002\u0107\u0109\u0007\u0105\u0002\u0002\u0108",
 | |
|     "\u0106\u0003\u0002\u0002\u0002\u0108\u0109\u0003\u0002\u0002\u0002\u0109",
 | |
|     "\u010b\u0003\u0002\u0002\u0002\u010a\u010c\u0005\u0018\r\u0002\u010b",
 | |
|     "\u010a\u0003\u0002\u0002\u0002\u010b\u010c\u0003\u0002\u0002\u0002\u010c",
 | |
|     "\u0110\u0003\u0002\u0002\u0002\u010d\u010e\u0007U\u0002\u0002\u010e",
 | |
|     "\u010f\u0007\u00c2\u0002\u0002\u010f\u0111\u0005.\u0018\u0002\u0110",
 | |
|     "\u010d\u0003\u0002\u0002\u0002\u0110\u0111\u0003\u0002\u0002\u0002\u0111",
 | |
|     "\u037e\u0003\u0002\u0002\u0002\u0112\u0113\u0007u\u0002\u0002\u0113",
 | |
|     "\u0114\u0007\u00d7\u0002\u0002\u0114\u0115\u0005\u00dco\u0002\u0115",
 | |
|     "\u0116\u0007{\u0002\u0002\u0116\u0117\u0007\u00c2\u0002\u0002\u0117",
 | |
|     "\u0118\u0005.\u0018\u0002\u0118\u037e\u0003\u0002\u0002\u0002\u0119",
 | |
|     "\u011a\u0007m\u0002\u0002\u011a\u011d\u0007\u00d7\u0002\u0002\u011b",
 | |
|     "\u011c\u0007\u0087\u0002\u0002\u011c\u011e\u0007*\u0002\u0002\u011d",
 | |
|     "\u011b\u0003\u0002\u0002\u0002\u011d\u011e\u0003\u0002\u0002\u0002\u011e",
 | |
|     "\u011f\u0003\u0002\u0002\u0002\u011f\u0121\u0005\u00dco\u0002\u0120",
 | |
|     "\u0122\t\u0002\u0002\u0002\u0121\u0120\u0003\u0002\u0002\u0002\u0121",
 | |
|     "\u0122\u0003\u0002\u0002\u0002\u0122\u037e\u0003\u0002\u0002\u0002\u0123",
 | |
|     "\u0128\u0005\u0012\n\u0002\u0124\u0125\u0007\u0003\u0002\u0002\u0125",
 | |
|     "\u0126\u0005\u00c2b\u0002\u0126\u0127\u0007\u0004\u0002\u0002\u0127",
 | |
|     "\u0129\u0003\u0002\u0002\u0002\u0128\u0124\u0003\u0002\u0002\u0002\u0128",
 | |
|     "\u0129\u0003\u0002\u0002\u0002\u0129\u012a\u0003\u0002\u0002\u0002\u012a",
 | |
|     "\u0138\u0005,\u0017\u0002\u012b\u012c\u0007\u00bf\u0002\u0002\u012c",
 | |
|     "\u0137\u0005.\u0018\u0002\u012d\u012e\u0007\u00df\u0002\u0002\u012e",
 | |
|     "\u012f\u0007\u001c\u0002\u0002\u012f\u0137\u0005p9\u0002\u0130\u0137",
 | |
|     "\u0005\u0014\u000b\u0002\u0131\u0137\u0005\u0018\r\u0002\u0132\u0133",
 | |
|     "\u0007z\u0002\u0002\u0133\u0137\u0007\u0105\u0002\u0002\u0134\u0135",
 | |
|     "\u0007\u00c1\u0002\u0002\u0135\u0137\u0005.\u0018\u0002\u0136\u012b",
 | |
|     "\u0003\u0002\u0002\u0002\u0136\u012d\u0003\u0002\u0002\u0002\u0136\u0130",
 | |
|     "\u0003\u0002\u0002\u0002\u0136\u0131\u0003\u0002\u0002\u0002\u0136\u0132",
 | |
|     "\u0003\u0002\u0002\u0002\u0136\u0134\u0003\u0002\u0002\u0002\u0137\u013a",
 | |
|     "\u0003\u0002\u0002\u0002\u0138\u0136\u0003\u0002\u0002\u0002\u0138\u0139",
 | |
|     "\u0003\u0002\u0002\u0002\u0139\u013f\u0003\u0002\u0002\u0002\u013a\u0138",
 | |
|     "\u0003\u0002\u0002\u0002\u013b\u013d\u0007\u0016\u0002\u0002\u013c\u013b",
 | |
|     "\u0003\u0002\u0002\u0002\u013c\u013d\u0003\u0002\u0002\u0002\u013d\u013e",
 | |
|     "\u0003\u0002\u0002\u0002\u013e\u0140\u0005\u001a\u000e\u0002\u013f\u013c",
 | |
|     "\u0003\u0002\u0002\u0002\u013f\u0140\u0003\u0002\u0002\u0002\u0140\u037e",
 | |
|     "\u0003\u0002\u0002\u0002\u0141\u0146\u0005\u0012\n\u0002\u0142\u0143",
 | |
|     "\u0007\u0003\u0002\u0002\u0143\u0144\u0005\u00c2b\u0002\u0144\u0145",
 | |
|     "\u0007\u0004\u0002\u0002\u0145\u0147\u0003\u0002\u0002\u0002\u0146\u0142",
 | |
|     "\u0003\u0002\u0002\u0002\u0146\u0147\u0003\u0002\u0002\u0002\u0147\u0159",
 | |
|     "\u0003\u0002\u0002\u0002\u0148\u0149\u0007z\u0002\u0002\u0149\u0158",
 | |
|     "\u0007\u0105\u0002\u0002\u014a\u014b\u0007\u00df\u0002\u0002\u014b\u014c",
 | |
|     "\u0007\u001c\u0002\u0002\u014c\u014d\u0007\u0003\u0002\u0002\u014d\u014e",
 | |
|     "\u0005\u00c2b\u0002\u014e\u014f\u0007\u0004\u0002\u0002\u014f\u0158",
 | |
|     "\u0003\u0002\u0002\u0002\u0150\u0158\u0005\u0014\u000b\u0002\u0151\u0158",
 | |
|     "\u0005\u0016\f\u0002\u0152\u0158\u0005\u009aN\u0002\u0153\u0158\u0005",
 | |
|     ":\u001e\u0002\u0154\u0158\u0005\u0018\r\u0002\u0155\u0156\u0007\u00c1",
 | |
|     "\u0002\u0002\u0156\u0158\u0005.\u0018\u0002\u0157\u0148\u0003\u0002",
 | |
|     "\u0002\u0002\u0157\u014a\u0003\u0002\u0002\u0002\u0157\u0150\u0003\u0002",
 | |
|     "\u0002\u0002\u0157\u0151\u0003\u0002\u0002\u0002\u0157\u0152\u0003\u0002",
 | |
|     "\u0002\u0002\u0157\u0153\u0003\u0002\u0002\u0002\u0157\u0154\u0003\u0002",
 | |
|     "\u0002\u0002\u0157\u0155\u0003\u0002\u0002\u0002\u0158\u015b\u0003\u0002",
 | |
|     "\u0002\u0002\u0159\u0157\u0003\u0002\u0002\u0002\u0159\u015a\u0003\u0002",
 | |
|     "\u0002\u0002\u015a\u0160\u0003\u0002\u0002\u0002\u015b\u0159\u0003\u0002",
 | |
|     "\u0002\u0002\u015c\u015e\u0007\u0016\u0002\u0002\u015d\u015c\u0003\u0002",
 | |
|     "\u0002\u0002\u015d\u015e\u0003\u0002\u0002\u0002\u015e\u015f\u0003\u0002",
 | |
|     "\u0002\u0002\u015f\u0161\u0005\u001a\u000e\u0002\u0160\u015d\u0003\u0002",
 | |
|     "\u0002\u0002\u0160\u0161\u0003\u0002\u0002\u0002\u0161\u037e\u0003\u0002",
 | |
|     "\u0002\u0002\u0162\u0163\u0007W\u0002\u0002\u0163\u0167\u0007X\u0002",
 | |
|     "\u0002\u0164\u0165\u0005\u00dco\u0002\u0165\u0166\u0007\u0005\u0002",
 | |
|     "\u0002\u0166\u0168\u0003\u0002\u0002\u0002\u0167\u0164\u0003\u0002\u0002",
 | |
|     "\u0002\u0167\u0168\u0003\u0002\u0002\u0002\u0168\u0169\u0003\u0002\u0002",
 | |
|     "\u0002\u0169\u016e\u0005\u009cO\u0002\u016a\u016b\u0007\u0003\u0002",
 | |
|     "\u0002\u016b\u016c\u0005\u00c6d\u0002\u016c\u016d\u0007\u0004\u0002",
 | |
|     "\u0002\u016d\u016f\u0003\u0002\u0002\u0002\u016e\u016a\u0003\u0002\u0002",
 | |
|     "\u0002\u016e\u016f\u0003\u0002\u0002\u0002\u016f\u0172\u0003\u0002\u0002",
 | |
|     "\u0002\u0170\u0171\u0007z\u0002\u0002\u0171\u0173\u0007\u0105\u0002",
 | |
|     "\u0002\u0172\u0170\u0003\u0002\u0002\u0002\u0172\u0173\u0003\u0002\u0002",
 | |
|     "\u0002\u0173\u017a\u0003\u0002\u0002\u0002\u0174\u0175\u0007\u00df\u0002",
 | |
|     "\u0002\u0175\u0176\u0007\u001c\u0002\u0002\u0176\u0177\u0007\u0003\u0002",
 | |
|     "\u0002\u0177\u0178\u0005p9\u0002\u0178\u0179\u0007\u0004\u0002\u0002",
 | |
|     "\u0179\u017b\u0003\u0002\u0002\u0002\u017a\u0174\u0003\u0002\u0002\u0002",
 | |
|     "\u017a\u017b\u0003\u0002\u0002\u0002\u017b\u017c\u0003\u0002\u0002\u0002",
 | |
|     "\u017c\u017d\u0007U\u0002\u0002\u017d\u017e\u0005.\u0018\u0002\u017e",
 | |
|     "\u037e\u0003\u0002\u0002\u0002\u017f\u0180\u0007W\u0002\u0002\u0180",
 | |
|     "\u0184\u0007X\u0002\u0002\u0181\u0182\u0007\u0087\u0002\u0002\u0182",
 | |
|     "\u0183\u0007(\u0002\u0002\u0183\u0185\u0007*\u0002\u0002\u0184\u0181",
 | |
|     "\u0003\u0002\u0002\u0002\u0184\u0185\u0003\u0002\u0002\u0002\u0185\u0186",
 | |
|     "\u0003\u0002\u0002\u0002\u0186\u0187\u0005\u009cO\u0002\u0187\u0188",
 | |
|     "\u0007,\u0002\u0002\u0188\u018a\u0005\u009cO\u0002\u0189\u018b\u0005",
 | |
|     "\u0018\r\u0002\u018a\u0189\u0003\u0002\u0002\u0002\u018a\u018b\u0003",
 | |
|     "\u0002\u0002\u0002\u018b\u037e\u0003\u0002\u0002\u0002\u018c\u018d\u0007",
 | |
|     "\u00db\u0002\u0002\u018d\u018e\u0007X\u0002\u0002\u018e\u0190\u0005",
 | |
|     "\u009cO\u0002\u018f\u0191\u0005 \u0011\u0002\u0190\u018f\u0003\u0002",
 | |
|     "\u0002\u0002\u0190\u0191\u0003\u0002\u0002\u0002\u0191\u0192\u0003\u0002",
 | |
|     "\u0002\u0002\u0192\u0193\u0007\u00dc\u0002\u0002\u0193\u019b\u0007\u00de",
 | |
|     "\u0002\u0002\u0194\u019c\u0005\u00dco\u0002\u0195\u0196\u00075\u0002",
 | |
|     "\u0002\u0196\u0197\u0007h\u0002\u0002\u0197\u019c\u0005r:\u0002\u0198",
 | |
|     "\u0199\u00075\u0002\u0002\u0199\u019a\u0007\u0017\u0002\u0002\u019a",
 | |
|     "\u019c\u0007h\u0002\u0002\u019b\u0194\u0003\u0002\u0002\u0002\u019b",
 | |
|     "\u0195\u0003\u0002\u0002\u0002\u019b\u0198\u0003\u0002\u0002\u0002\u019b",
 | |
|     "\u019c\u0003\u0002\u0002\u0002\u019c\u037e\u0003\u0002\u0002\u0002\u019d",
 | |
|     "\u019e\u0007u\u0002\u0002\u019e\u019f\u0007X\u0002\u0002\u019f\u01a0",
 | |
|     "\u0005\u009cO\u0002\u01a0\u01a1\u0007\u0015\u0002\u0002\u01a1\u01a2",
 | |
|     "\u0007h\u0002\u0002\u01a2\u01a3\u0007\u0003\u0002\u0002\u01a3\u01a4",
 | |
|     "\u0005\u00c2b\u0002\u01a4\u01a5\u0007\u0004\u0002\u0002\u01a5\u037e",
 | |
|     "\u0003\u0002\u0002\u0002\u01a6\u01a7\u0007u\u0002\u0002\u01a7\u01a8",
 | |
|     "\t\u0003\u0002\u0002\u01a8\u01a9\u0005\u009cO\u0002\u01a9\u01aa\u0007",
 | |
|     "v\u0002\u0002\u01aa\u01ab\u0007r\u0002\u0002\u01ab\u01ac\u0005\u009c",
 | |
|     "O\u0002\u01ac\u037e\u0003\u0002\u0002\u0002\u01ad\u01ae\u0007u\u0002",
 | |
|     "\u0002\u01ae\u01af\t\u0003\u0002\u0002\u01af\u01b0\u0005\u009cO\u0002",
 | |
|     "\u01b0\u01b1\u0007{\u0002\u0002\u01b1\u01b2\u0007\u00c1\u0002\u0002",
 | |
|     "\u01b2\u01b3\u0005.\u0018\u0002\u01b3\u037e\u0003\u0002\u0002\u0002",
 | |
|     "\u01b4\u01b5\u0007u\u0002\u0002\u01b5\u01b6\t\u0003\u0002\u0002\u01b6",
 | |
|     "\u01b7\u0005\u009cO\u0002\u01b7\u01b8\u0007\u00c0\u0002\u0002\u01b8",
 | |
|     "\u01bb\u0007\u00c1\u0002\u0002\u01b9\u01ba\u0007\u0087\u0002\u0002\u01ba",
 | |
|     "\u01bc\u0007*\u0002\u0002\u01bb\u01b9\u0003\u0002\u0002\u0002\u01bb",
 | |
|     "\u01bc\u0003\u0002\u0002\u0002\u01bc\u01bd\u0003\u0002\u0002\u0002\u01bd",
 | |
|     "\u01be\u0005.\u0018\u0002\u01be\u037e\u0003\u0002\u0002\u0002\u01bf",
 | |
|     "\u01c0\u0007u\u0002\u0002\u01c0\u01c1\u0007X\u0002\u0002\u01c1\u01c3",
 | |
|     "\u0005\u009cO\u0002\u01c2\u01c4\u0005 \u0011\u0002\u01c3\u01c2\u0003",
 | |
|     "\u0002\u0002\u0002\u01c3\u01c4\u0003\u0002\u0002\u0002\u01c4\u01c5\u0003",
 | |
|     "\u0002\u0002\u0002\u01c5\u01c7\u0007\u00cf\u0002\u0002\u01c6\u01c8\u0007",
 | |
|     "i\u0002\u0002\u01c7\u01c6\u0003\u0002\u0002\u0002\u01c7\u01c8\u0003",
 | |
|     "\u0002\u0002\u0002\u01c8\u01c9\u0003\u0002\u0002\u0002\u01c9\u01ca\u0005",
 | |
|     "\u00dco\u0002\u01ca\u01cc\u0005\u00c4c\u0002\u01cb\u01cd\u0005\u00be",
 | |
|     "`\u0002\u01cc\u01cb\u0003\u0002\u0002\u0002\u01cc\u01cd\u0003\u0002",
 | |
|     "\u0002\u0002\u01cd\u037e\u0003\u0002\u0002\u0002\u01ce\u01cf\u0007u",
 | |
|     "\u0002\u0002\u01cf\u01d0\u0007X\u0002\u0002\u01d0\u01d2\u0005\u009c",
 | |
|     "O\u0002\u01d1\u01d3\u0005 \u0011\u0002\u01d2\u01d1\u0003\u0002\u0002",
 | |
|     "\u0002\u01d2\u01d3\u0003\u0002\u0002\u0002\u01d3\u01d4\u0003\u0002\u0002",
 | |
|     "\u0002\u01d4\u01d5\u0007{\u0002\u0002\u01d5\u01d6\u0007\u00a8\u0002",
 | |
|     "\u0002\u01d6\u01da\u0007\u0105\u0002\u0002\u01d7\u01d8\u0007U\u0002",
 | |
|     "\u0002\u01d8\u01d9\u0007\u00a9\u0002\u0002\u01d9\u01db\u0005.\u0018",
 | |
|     "\u0002\u01da\u01d7\u0003\u0002\u0002\u0002\u01da\u01db\u0003\u0002\u0002",
 | |
|     "\u0002\u01db\u037e\u0003\u0002\u0002\u0002\u01dc\u01dd\u0007u\u0002",
 | |
|     "\u0002\u01dd\u01de\u0007X\u0002\u0002\u01de\u01e0\u0005\u009cO\u0002",
 | |
|     "\u01df\u01e1\u0005 \u0011\u0002\u01e0\u01df\u0003\u0002\u0002\u0002",
 | |
|     "\u01e0\u01e1\u0003\u0002\u0002\u0002\u01e1\u01e2\u0003\u0002\u0002\u0002",
 | |
|     "\u01e2\u01e3\u0007{\u0002\u0002\u01e3\u01e4\u0007\u00a9\u0002\u0002",
 | |
|     "\u01e4\u01e5\u0005.\u0018\u0002\u01e5\u037e\u0003\u0002\u0002\u0002",
 | |
|     "\u01e6\u01e7\u0007u\u0002\u0002\u01e7\u01e8\u0007X\u0002\u0002\u01e8",
 | |
|     "\u01e9\u0005\u009cO\u0002\u01e9\u01ed\u0007\u0015\u0002\u0002\u01ea",
 | |
|     "\u01eb\u0007\u0087\u0002\u0002\u01eb\u01ec\u0007(\u0002\u0002\u01ec",
 | |
|     "\u01ee\u0007*\u0002\u0002\u01ed\u01ea\u0003\u0002\u0002\u0002\u01ed",
 | |
|     "\u01ee\u0003\u0002\u0002\u0002\u01ee\u01f0\u0003\u0002\u0002\u0002\u01ef",
 | |
|     "\u01f1\u0005\u001e\u0010\u0002\u01f0\u01ef\u0003\u0002\u0002\u0002\u01f1",
 | |
|     "\u01f2\u0003\u0002\u0002\u0002\u01f2\u01f0\u0003\u0002\u0002\u0002\u01f2",
 | |
|     "\u01f3\u0003\u0002\u0002\u0002\u01f3\u037e\u0003\u0002\u0002\u0002\u01f4",
 | |
|     "\u01f5\u0007u\u0002\u0002\u01f5\u01f6\u0007Z\u0002\u0002\u01f6\u01f7",
 | |
|     "\u0005\u009cO\u0002\u01f7\u01fb\u0007\u0015\u0002\u0002\u01f8\u01f9",
 | |
|     "\u0007\u0087\u0002\u0002\u01f9\u01fa\u0007(\u0002\u0002\u01fa\u01fc",
 | |
|     "\u0007*\u0002\u0002\u01fb\u01f8\u0003\u0002\u0002\u0002\u01fb\u01fc",
 | |
|     "\u0003\u0002\u0002\u0002\u01fc\u01fe\u0003\u0002\u0002\u0002\u01fd\u01ff",
 | |
|     "\u0005 \u0011\u0002\u01fe\u01fd\u0003\u0002\u0002\u0002\u01ff\u0200",
 | |
|     "\u0003\u0002\u0002\u0002\u0200\u01fe\u0003\u0002\u0002\u0002\u0200\u0201",
 | |
|     "\u0003\u0002\u0002\u0002\u0201\u037e\u0003\u0002\u0002\u0002\u0202\u0203",
 | |
|     "\u0007u\u0002\u0002\u0203\u0204\u0007X\u0002\u0002\u0204\u0205\u0005",
 | |
|     "\u009cO\u0002\u0205\u0206\u0005 \u0011\u0002\u0206\u0207\u0007v\u0002",
 | |
|     "\u0002\u0207\u0208\u0007r\u0002\u0002\u0208\u0209\u0005 \u0011\u0002",
 | |
|     "\u0209\u037e\u0003\u0002\u0002\u0002\u020a\u020b\u0007u\u0002\u0002",
 | |
|     "\u020b\u020c\u0007X\u0002\u0002\u020c\u020d\u0005\u009cO\u0002\u020d",
 | |
|     "\u0210\u0007m\u0002\u0002\u020e\u020f\u0007\u0087\u0002\u0002\u020f",
 | |
|     "\u0211\u0007*\u0002\u0002\u0210\u020e\u0003\u0002\u0002\u0002\u0210",
 | |
|     "\u0211\u0003\u0002\u0002\u0002\u0211\u0212\u0003\u0002\u0002\u0002\u0212",
 | |
|     "\u0217\u0005 \u0011\u0002\u0213\u0214\u0007\u0006\u0002\u0002\u0214",
 | |
|     "\u0216\u0005 \u0011\u0002\u0215\u0213\u0003\u0002\u0002\u0002\u0216",
 | |
|     "\u0219\u0003\u0002\u0002\u0002\u0217\u0215\u0003\u0002\u0002\u0002\u0217",
 | |
|     "\u0218\u0003\u0002\u0002\u0002\u0218\u021b\u0003\u0002\u0002\u0002\u0219",
 | |
|     "\u0217\u0003\u0002\u0002\u0002\u021a\u021c\u0007\u00d4\u0002\u0002\u021b",
 | |
|     "\u021a\u0003\u0002\u0002\u0002\u021b\u021c\u0003\u0002\u0002\u0002\u021c",
 | |
|     "\u037e\u0003\u0002\u0002\u0002\u021d\u021e\u0007u\u0002\u0002\u021e",
 | |
|     "\u021f\u0007Z\u0002\u0002\u021f\u0220\u0005\u009cO\u0002\u0220\u0223",
 | |
|     "\u0007m\u0002\u0002\u0221\u0222\u0007\u0087\u0002\u0002\u0222\u0224",
 | |
|     "\u0007*\u0002\u0002\u0223\u0221\u0003\u0002\u0002\u0002\u0223\u0224",
 | |
|     "\u0003\u0002\u0002\u0002\u0224\u0225\u0003\u0002\u0002\u0002\u0225\u022a",
 | |
|     "\u0005 \u0011\u0002\u0226\u0227\u0007\u0006\u0002\u0002\u0227\u0229",
 | |
|     "\u0005 \u0011\u0002\u0228\u0226\u0003\u0002\u0002\u0002\u0229\u022c",
 | |
|     "\u0003\u0002\u0002\u0002\u022a\u0228\u0003\u0002\u0002\u0002\u022a\u022b",
 | |
|     "\u0003\u0002\u0002\u0002\u022b\u037e\u0003\u0002\u0002\u0002\u022c\u022a",
 | |
|     "\u0003\u0002\u0002\u0002\u022d\u022e\u0007u\u0002\u0002\u022e\u022f",
 | |
|     "\u0007X\u0002\u0002\u022f\u0231\u0005\u009cO\u0002\u0230\u0232\u0005",
 | |
|     " \u0011\u0002\u0231\u0230\u0003\u0002\u0002\u0002\u0231\u0232\u0003",
 | |
|     "\u0002\u0002\u0002\u0232\u0233\u0003\u0002\u0002\u0002\u0233\u0234\u0007",
 | |
|     "{\u0002\u0002\u0234\u0235\u0005\u0018\r\u0002\u0235\u037e\u0003\u0002",
 | |
|     "\u0002\u0002\u0236\u0237\u0007u\u0002\u0002\u0237\u0238\u0007X\u0002",
 | |
|     "\u0002\u0238\u0239\u0005\u009cO\u0002\u0239\u023a\u0007\u00e8\u0002",
 | |
|     "\u0002\u023a\u023b\u0007k\u0002\u0002\u023b\u037e\u0003\u0002\u0002",
 | |
|     "\u0002\u023c\u023d\u0007m\u0002\u0002\u023d\u0240\u0007X\u0002\u0002",
 | |
|     "\u023e\u023f\u0007\u0087\u0002\u0002\u023f\u0241\u0007*\u0002\u0002",
 | |
|     "\u0240\u023e\u0003\u0002\u0002\u0002\u0240\u0241\u0003\u0002\u0002\u0002",
 | |
|     "\u0241\u0242\u0003\u0002\u0002\u0002\u0242\u0244\u0005\u009cO\u0002",
 | |
|     "\u0243\u0245\u0007\u00d4\u0002\u0002\u0244\u0243\u0003\u0002\u0002\u0002",
 | |
|     "\u0244\u0245\u0003\u0002\u0002\u0002\u0245\u037e\u0003\u0002\u0002\u0002",
 | |
|     "\u0246\u0247\u0007m\u0002\u0002\u0247\u024a\u0007Z\u0002\u0002\u0248",
 | |
|     "\u0249\u0007\u0087\u0002\u0002\u0249\u024b\u0007*\u0002\u0002\u024a",
 | |
|     "\u0248\u0003\u0002\u0002\u0002\u024a\u024b\u0003\u0002\u0002\u0002\u024b",
 | |
|     "\u024c\u0003\u0002\u0002\u0002\u024c\u037e\u0005\u009cO\u0002\u024d",
 | |
|     "\u0250\u0007W\u0002\u0002\u024e\u024f\u0007%\u0002\u0002\u024f\u0251",
 | |
|     "\u0007[\u0002\u0002\u0250\u024e\u0003\u0002\u0002\u0002\u0250\u0251",
 | |
|     "\u0003\u0002\u0002\u0002\u0251\u0256\u0003\u0002\u0002\u0002\u0252\u0254",
 | |
|     "\u0007\u00bd\u0002\u0002\u0253\u0252\u0003\u0002\u0002\u0002\u0253\u0254",
 | |
|     "\u0003\u0002\u0002\u0002\u0254\u0255\u0003\u0002\u0002\u0002\u0255\u0257",
 | |
|     "\u0007\u00be\u0002\u0002\u0256\u0253\u0003\u0002\u0002\u0002\u0256\u0257",
 | |
|     "\u0003\u0002\u0002\u0002\u0257\u0258\u0003\u0002\u0002\u0002\u0258\u025c",
 | |
|     "\u0007Z\u0002\u0002\u0259\u025a\u0007\u0087\u0002\u0002\u025a\u025b",
 | |
|     "\u0007(\u0002\u0002\u025b\u025d\u0007*\u0002\u0002\u025c\u0259\u0003",
 | |
|     "\u0002\u0002\u0002\u025c\u025d\u0003\u0002\u0002\u0002\u025d\u025e\u0003",
 | |
|     "\u0002\u0002\u0002\u025e\u0260\u0005\u009cO\u0002\u025f\u0261\u0005",
 | |
|     "x=\u0002\u0260\u025f\u0003\u0002\u0002\u0002\u0260\u0261\u0003\u0002",
 | |
|     "\u0002\u0002\u0261\u0264\u0003\u0002\u0002\u0002\u0262\u0263\u0007z",
 | |
|     "\u0002\u0002\u0263\u0265\u0007\u0105\u0002\u0002\u0264\u0262\u0003\u0002",
 | |
|     "\u0002\u0002\u0264\u0265\u0003\u0002\u0002\u0002\u0265\u0269\u0003\u0002",
 | |
|     "\u0002\u0002\u0266\u0267\u0007\u00df\u0002\u0002\u0267\u0268\u0007E",
 | |
|     "\u0002\u0002\u0268\u026a\u0005p9\u0002\u0269\u0266\u0003\u0002\u0002",
 | |
|     "\u0002\u0269\u026a\u0003\u0002\u0002\u0002\u026a\u026d\u0003\u0002\u0002",
 | |
|     "\u0002\u026b\u026c\u0007\u00c1\u0002\u0002\u026c\u026e\u0005.\u0018",
 | |
|     "\u0002\u026d\u026b\u0003\u0002\u0002\u0002\u026d\u026e\u0003\u0002\u0002",
 | |
|     "\u0002\u026e\u026f\u0003\u0002\u0002\u0002\u026f\u0270\u0007\u0016\u0002",
 | |
|     "\u0002\u0270\u0271\u0005\u001a\u000e\u0002\u0271\u037e\u0003\u0002\u0002",
 | |
|     "\u0002\u0272\u0275\u0007W\u0002\u0002\u0273\u0274\u0007%\u0002\u0002",
 | |
|     "\u0274\u0276\u0007[\u0002\u0002\u0275\u0273\u0003\u0002\u0002\u0002",
 | |
|     "\u0275\u0276\u0003\u0002\u0002\u0002\u0276\u0278\u0003\u0002\u0002\u0002",
 | |
|     "\u0277\u0279\u0007\u00bd\u0002\u0002\u0278\u0277\u0003\u0002\u0002\u0002",
 | |
|     "\u0278\u0279\u0003\u0002\u0002\u0002\u0279\u027a\u0003\u0002\u0002\u0002",
 | |
|     "\u027a\u027b\u0007\u00be\u0002\u0002\u027b\u027c\u0007Z\u0002\u0002",
 | |
|     "\u027c\u0281\u0005\u009cO\u0002\u027d\u027e\u0007\u0003\u0002\u0002",
 | |
|     "\u027e\u027f\u0005\u00c2b\u0002\u027f\u0280\u0007\u0004\u0002\u0002",
 | |
|     "\u0280\u0282\u0003\u0002\u0002\u0002\u0281\u027d\u0003\u0002\u0002\u0002",
 | |
|     "\u0281\u0282\u0003\u0002\u0002\u0002\u0282\u0283\u0003\u0002\u0002\u0002",
 | |
|     "\u0283\u0286\u0005,\u0017\u0002\u0284\u0285\u0007\u00bf\u0002\u0002",
 | |
|     "\u0285\u0287\u0005.\u0018\u0002\u0286\u0284\u0003\u0002\u0002\u0002",
 | |
|     "\u0286\u0287\u0003\u0002\u0002\u0002\u0287\u037e\u0003\u0002\u0002\u0002",
 | |
|     "\u0288\u0289\u0007u\u0002\u0002\u0289\u028a\u0007Z\u0002\u0002\u028a",
 | |
|     "\u028c\u0005\u009cO\u0002\u028b\u028d\u0007\u0016\u0002\u0002\u028c",
 | |
|     "\u028b\u0003\u0002\u0002\u0002\u028c\u028d\u0003\u0002\u0002\u0002\u028d",
 | |
|     "\u028e\u0003\u0002\u0002\u0002\u028e\u028f\u0005\u001a\u000e\u0002\u028f",
 | |
|     "\u037e\u0003\u0002\u0002\u0002\u0290\u0293\u0007W\u0002\u0002\u0291",
 | |
|     "\u0292\u0007%\u0002\u0002\u0292\u0294\u0007[\u0002\u0002\u0293\u0291",
 | |
|     "\u0003\u0002\u0002\u0002\u0293\u0294\u0003\u0002\u0002\u0002\u0294\u0296",
 | |
|     "\u0003\u0002\u0002\u0002\u0295\u0297\u0007\u00be\u0002\u0002\u0296\u0295",
 | |
|     "\u0003\u0002\u0002\u0002\u0296\u0297\u0003\u0002\u0002\u0002\u0297\u0298",
 | |
|     "\u0003\u0002\u0002\u0002\u0298\u029c\u0007\u00b5\u0002\u0002\u0299\u029a",
 | |
|     "\u0007\u0087\u0002\u0002\u029a\u029b\u0007(\u0002\u0002\u029b\u029d",
 | |
|     "\u0007*\u0002\u0002\u029c\u0299\u0003\u0002\u0002\u0002\u029c\u029d",
 | |
|     "\u0003\u0002\u0002\u0002\u029d\u029e\u0003\u0002\u0002\u0002\u029e\u029f",
 | |
|     "\u0005\u00dan\u0002\u029f\u02a0\u0007\u0016\u0002\u0002\u02a0\u02aa",
 | |
|     "\u0007\u0105\u0002\u0002\u02a1\u02a2\u0007\u00a7\u0002\u0002\u02a2\u02a7",
 | |
|     "\u0005@!\u0002\u02a3\u02a4\u0007\u0006\u0002\u0002\u02a4\u02a6\u0005",
 | |
|     "@!\u0002\u02a5\u02a3\u0003\u0002\u0002\u0002\u02a6\u02a9\u0003\u0002",
 | |
|     "\u0002\u0002\u02a7\u02a5\u0003\u0002\u0002\u0002\u02a7\u02a8\u0003\u0002",
 | |
|     "\u0002\u0002\u02a8\u02ab\u0003\u0002\u0002\u0002\u02a9\u02a7\u0003\u0002",
 | |
|     "\u0002\u0002\u02aa\u02a1\u0003\u0002\u0002\u0002\u02aa\u02ab\u0003\u0002",
 | |
|     "\u0002\u0002\u02ab\u037e\u0003\u0002\u0002\u0002\u02ac\u02ae\u0007m",
 | |
|     "\u0002\u0002\u02ad\u02af\u0007\u00be\u0002\u0002\u02ae\u02ad\u0003\u0002",
 | |
|     "\u0002\u0002\u02ae\u02af\u0003\u0002\u0002\u0002\u02af\u02b0\u0003\u0002",
 | |
|     "\u0002\u0002\u02b0\u02b3\u0007\u00b5\u0002\u0002\u02b1\u02b2\u0007\u0087",
 | |
|     "\u0002\u0002\u02b2\u02b4\u0007*\u0002\u0002\u02b3\u02b1\u0003\u0002",
 | |
|     "\u0002\u0002\u02b3\u02b4\u0003\u0002\u0002\u0002\u02b4\u02b5\u0003\u0002",
 | |
|     "\u0002\u0002\u02b5\u037e\u0005\u00dan\u0002\u02b6\u02b8\u0007`\u0002",
 | |
|     "\u0002\u02b7\u02b9\t\u0004\u0002\u0002\u02b8\u02b7\u0003\u0002\u0002",
 | |
|     "\u0002\u02b8\u02b9\u0003\u0002\u0002\u0002\u02b9\u02ba\u0003\u0002\u0002",
 | |
|     "\u0002\u02ba\u037e\u0005\u000e\b\u0002\u02bb\u02bc\u0007f\u0002\u0002",
 | |
|     "\u02bc\u02bf\u0007g\u0002\u0002\u02bd\u02be\t\u0005\u0002\u0002\u02be",
 | |
|     "\u02c0\u0005\u00dco\u0002\u02bf\u02bd\u0003\u0002\u0002\u0002\u02bf",
 | |
|     "\u02c0\u0003\u0002\u0002\u0002\u02c0\u02c5\u0003\u0002\u0002\u0002\u02c1",
 | |
|     "\u02c3\u0007,\u0002\u0002\u02c2\u02c1\u0003\u0002\u0002\u0002\u02c2",
 | |
|     "\u02c3\u0003\u0002\u0002\u0002\u02c3\u02c4\u0003\u0002\u0002\u0002\u02c4",
 | |
|     "\u02c6\u0007\u0105\u0002\u0002\u02c5\u02c2\u0003\u0002\u0002\u0002\u02c5",
 | |
|     "\u02c6\u0003\u0002\u0002\u0002\u02c6\u037e\u0003\u0002\u0002\u0002\u02c7",
 | |
|     "\u02c8\u0007f\u0002\u0002\u02c8\u02c9\u0007X\u0002\u0002\u02c9\u02cc",
 | |
|     "\u0007\u00b6\u0002\u0002\u02ca\u02cb\t\u0005\u0002\u0002\u02cb\u02cd",
 | |
|     "\u0005\u00dco\u0002\u02cc\u02ca\u0003\u0002\u0002\u0002\u02cc\u02cd",
 | |
|     "\u0003\u0002\u0002\u0002\u02cd\u02ce\u0003\u0002\u0002\u0002\u02ce\u02cf",
 | |
|     "\u0007,\u0002\u0002\u02cf\u02d1\u0007\u0105\u0002\u0002\u02d0\u02d2",
 | |
|     "\u0005 \u0011\u0002\u02d1\u02d0\u0003\u0002\u0002\u0002\u02d1\u02d2",
 | |
|     "\u0003\u0002\u0002\u0002\u02d2\u037e\u0003\u0002\u0002\u0002\u02d3\u02d4",
 | |
|     "\u0007f\u0002\u0002\u02d4\u02d9\u0007\u00d8\u0002\u0002\u02d5\u02d7",
 | |
|     "\u0007,\u0002\u0002\u02d6\u02d5\u0003\u0002\u0002\u0002\u02d6\u02d7",
 | |
|     "\u0003\u0002\u0002\u0002\u02d7\u02d8\u0003\u0002\u0002\u0002\u02d8\u02da",
 | |
|     "\u0007\u0105\u0002\u0002\u02d9\u02d6\u0003\u0002\u0002\u0002\u02d9\u02da",
 | |
|     "\u0003\u0002\u0002\u0002\u02da\u037e\u0003\u0002\u0002\u0002\u02db\u02dc",
 | |
|     "\u0007f\u0002\u0002\u02dc\u02dd\u0007\u00c1\u0002\u0002\u02dd\u02e2",
 | |
|     "\u0005\u009cO\u0002\u02de\u02df\u0007\u0003\u0002\u0002\u02df\u02e0",
 | |
|     "\u00052\u001a\u0002\u02e0\u02e1\u0007\u0004\u0002\u0002\u02e1\u02e3",
 | |
|     "\u0003\u0002\u0002\u0002\u02e2\u02de\u0003\u0002\u0002\u0002\u02e2\u02e3",
 | |
|     "\u0003\u0002\u0002\u0002\u02e3\u037e\u0003\u0002\u0002\u0002\u02e4\u02e5",
 | |
|     "\u0007f\u0002\u0002\u02e5\u02e6\u0007h\u0002\u0002\u02e6\u02e7\t\u0005",
 | |
|     "\u0002\u0002\u02e7\u02ea\u0005\u009cO\u0002\u02e8\u02e9\t\u0005\u0002",
 | |
|     "\u0002\u02e9\u02eb\u0005\u00dco\u0002\u02ea\u02e8\u0003\u0002\u0002",
 | |
|     "\u0002\u02ea\u02eb\u0003\u0002\u0002\u0002\u02eb\u037e\u0003\u0002\u0002",
 | |
|     "\u0002\u02ec\u02ed\u0007f\u0002\u0002\u02ed\u02ee\u0007k\u0002\u0002",
 | |
|     "\u02ee\u02f0\u0005\u009cO\u0002\u02ef\u02f1\u0005 \u0011\u0002\u02f0",
 | |
|     "\u02ef\u0003\u0002\u0002\u0002\u02f0\u02f1\u0003\u0002\u0002\u0002\u02f1",
 | |
|     "\u037e\u0003\u0002\u0002\u0002\u02f2\u02f4\u0007f\u0002\u0002\u02f3",
 | |
|     "\u02f5\u0005\u00dco\u0002\u02f4\u02f3\u0003\u0002\u0002\u0002\u02f4",
 | |
|     "\u02f5\u0003\u0002\u0002\u0002\u02f5\u02f6\u0003\u0002\u0002\u0002\u02f6",
 | |
|     "\u02fe\u0007l\u0002\u0002\u02f7\u02f9\u0007,\u0002\u0002\u02f8\u02f7",
 | |
|     "\u0003\u0002\u0002\u0002\u02f8\u02f9\u0003\u0002\u0002\u0002\u02f9\u02fc",
 | |
|     "\u0003\u0002\u0002\u0002\u02fa\u02fd\u0005\u00dan\u0002\u02fb\u02fd",
 | |
|     "\u0007\u0105\u0002\u0002\u02fc\u02fa\u0003\u0002\u0002\u0002\u02fc\u02fb",
 | |
|     "\u0003\u0002\u0002\u0002\u02fd\u02ff\u0003\u0002\u0002\u0002\u02fe\u02f8",
 | |
|     "\u0003\u0002\u0002\u0002\u02fe\u02ff\u0003\u0002\u0002\u0002\u02ff\u037e",
 | |
|     "\u0003\u0002\u0002\u0002\u0300\u0301\u0007f\u0002\u0002\u0301\u0302",
 | |
|     "\u0007W\u0002\u0002\u0302\u0303\u0007X\u0002\u0002\u0303\u037e\u0005",
 | |
|     "\u009cO\u0002\u0304\u0305\t\u0006\u0002\u0002\u0305\u0307\u0007\u00b5",
 | |
|     "\u0002\u0002\u0306\u0308\u0007\u00b6\u0002\u0002\u0307\u0306\u0003\u0002",
 | |
|     "\u0002\u0002\u0307\u0308\u0003\u0002\u0002\u0002\u0308\u0309\u0003\u0002",
 | |
|     "\u0002\u0002\u0309\u037e\u0005$\u0013\u0002\u030a\u030b\t\u0006\u0002",
 | |
|     "\u0002\u030b\u030d\u0007\u00d7\u0002\u0002\u030c\u030e\u0007\u00b6\u0002",
 | |
|     "\u0002\u030d\u030c\u0003\u0002\u0002\u0002\u030d\u030e\u0003\u0002\u0002",
 | |
|     "\u0002\u030e\u030f\u0003\u0002\u0002\u0002\u030f\u037e\u0005\u00dco",
 | |
|     "\u0002\u0310\u0312\t\u0006\u0002\u0002\u0311\u0313\u0007X\u0002\u0002",
 | |
|     "\u0312\u0311\u0003\u0002\u0002\u0002\u0312\u0313\u0003\u0002\u0002\u0002",
 | |
|     "\u0313\u0315\u0003\u0002\u0002\u0002\u0314\u0316\t\u0007\u0002\u0002",
 | |
|     "\u0315\u0314\u0003\u0002\u0002\u0002\u0315\u0316\u0003\u0002\u0002\u0002",
 | |
|     "\u0316\u0317\u0003\u0002\u0002\u0002\u0317\u0319\u0005\u009cO\u0002",
 | |
|     "\u0318\u031a\u0005 \u0011\u0002\u0319\u0318\u0003\u0002\u0002\u0002",
 | |
|     "\u0319\u031a\u0003\u0002\u0002\u0002\u031a\u031c\u0003\u0002\u0002\u0002",
 | |
|     "\u031b\u031d\u0005&\u0014\u0002\u031c\u031b\u0003\u0002\u0002\u0002",
 | |
|     "\u031c\u031d\u0003\u0002\u0002\u0002\u031d\u037e\u0003\u0002\u0002\u0002",
 | |
|     "\u031e\u031f\u0007\u00b7\u0002\u0002\u031f\u0320\u0007X\u0002\u0002",
 | |
|     "\u0320\u037e\u0005\u009cO\u0002\u0321\u0329\u0007\u00b7\u0002\u0002",
 | |
|     "\u0322\u032a\u0007\u0105\u0002\u0002\u0323\u0325\u000b\u0002\u0002\u0002",
 | |
|     "\u0324\u0323\u0003\u0002\u0002\u0002\u0325\u0328\u0003\u0002\u0002\u0002",
 | |
|     "\u0326\u0327\u0003\u0002\u0002\u0002\u0326\u0324\u0003\u0002\u0002\u0002",
 | |
|     "\u0327\u032a\u0003\u0002\u0002\u0002\u0328\u0326\u0003\u0002\u0002\u0002",
 | |
|     "\u0329\u0322\u0003\u0002\u0002\u0002\u0329\u0326\u0003\u0002\u0002\u0002",
 | |
|     "\u032a\u037e\u0003\u0002\u0002\u0002\u032b\u032d\u0007\u00b9\u0002\u0002",
 | |
|     "\u032c\u032e\u0007\u00bb\u0002\u0002\u032d\u032c\u0003\u0002\u0002\u0002",
 | |
|     "\u032d\u032e\u0003\u0002\u0002\u0002\u032e\u032f\u0003\u0002\u0002\u0002",
 | |
|     "\u032f\u0330\u0007X\u0002\u0002\u0330\u0333\u0005\u009cO\u0002\u0331",
 | |
|     "\u0332\u0007\u00bf\u0002\u0002\u0332\u0334\u0005.\u0018\u0002\u0333",
 | |
|     "\u0331\u0003\u0002\u0002\u0002\u0333\u0334\u0003\u0002\u0002\u0002\u0334",
 | |
|     "\u0339\u0003\u0002\u0002\u0002\u0335\u0337\u0007\u0016\u0002\u0002\u0336",
 | |
|     "\u0335\u0003\u0002\u0002\u0002\u0336\u0337\u0003\u0002\u0002\u0002\u0337",
 | |
|     "\u0338\u0003\u0002\u0002\u0002\u0338\u033a\u0005\u001a\u000e\u0002\u0339",
 | |
|     "\u0336\u0003\u0002\u0002\u0002\u0339\u033a\u0003\u0002\u0002\u0002\u033a",
 | |
|     "\u037e\u0003\u0002\u0002\u0002\u033b\u033c\u0007\u00ba\u0002\u0002\u033c",
 | |
|     "\u033f\u0007X\u0002\u0002\u033d\u033e\u0007\u0087\u0002\u0002\u033e",
 | |
|     "\u0340\u0007*\u0002\u0002\u033f\u033d\u0003\u0002\u0002\u0002\u033f",
 | |
|     "\u0340\u0003\u0002\u0002\u0002\u0340\u0341\u0003\u0002\u0002\u0002\u0341",
 | |
|     "\u037e\u0005\u009cO\u0002\u0342\u0343\u0007\u00b8\u0002\u0002\u0343",
 | |
|     "\u037e\u0007\u00b9\u0002\u0002\u0344\u0345\u0007\u00eb\u0002\u0002\u0345",
 | |
|     "\u0347\u0007}\u0002\u0002\u0346\u0348\u0007\u00f6\u0002\u0002\u0347",
 | |
|     "\u0346\u0003\u0002\u0002\u0002\u0347\u0348\u0003\u0002\u0002\u0002\u0348",
 | |
|     "\u0349\u0003\u0002\u0002\u0002\u0349\u034a\u0007\u00f7\u0002\u0002\u034a",
 | |
|     "\u034c\u0007\u0105\u0002\u0002\u034b\u034d\u0007\u00a4\u0002\u0002\u034c",
 | |
|     "\u034b\u0003\u0002\u0002\u0002\u034c\u034d\u0003\u0002\u0002\u0002\u034d",
 | |
|     "\u034e\u0003\u0002\u0002\u0002\u034e\u034f\u0007^\u0002\u0002\u034f",
 | |
|     "\u0350\u0007X\u0002\u0002\u0350\u0352\u0005\u009cO\u0002\u0351\u0353",
 | |
|     "\u0005 \u0011\u0002\u0352\u0351\u0003\u0002\u0002\u0002\u0352\u0353",
 | |
|     "\u0003\u0002\u0002\u0002\u0353\u037e\u0003\u0002\u0002\u0002\u0354\u0355",
 | |
|     "\u0007\u00da\u0002\u0002\u0355\u0356\u0007X\u0002\u0002\u0356\u0358",
 | |
|     "\u0005\u009cO\u0002\u0357\u0359\u0005 \u0011\u0002\u0358\u0357\u0003",
 | |
|     "\u0002\u0002\u0002\u0358\u0359\u0003\u0002\u0002\u0002\u0359\u037e\u0003",
 | |
|     "\u0002\u0002\u0002\u035a\u035b\u0007\u00e6\u0002\u0002\u035b\u035c\u0007",
 | |
|     "\u00e7\u0002\u0002\u035c\u035d\u0007X\u0002\u0002\u035d\u037e\u0005",
 | |
|     "\u009cO\u0002\u035e\u035f\t\b\u0002\u0002\u035f\u0363\u0005\u00dco\u0002",
 | |
|     "\u0360\u0362\u000b\u0002\u0002\u0002\u0361\u0360\u0003\u0002\u0002\u0002",
 | |
|     "\u0362\u0365\u0003\u0002\u0002\u0002\u0363\u0364\u0003\u0002\u0002\u0002",
 | |
|     "\u0363\u0361\u0003\u0002\u0002\u0002\u0364\u037e\u0003\u0002\u0002\u0002",
 | |
|     "\u0365\u0363\u0003\u0002\u0002\u0002\u0366\u0367\u0007{\u0002\u0002",
 | |
|     "\u0367\u036b\u0007\u00ec\u0002\u0002\u0368\u036a\u000b\u0002\u0002\u0002",
 | |
|     "\u0369\u0368\u0003\u0002\u0002\u0002\u036a\u036d\u0003\u0002\u0002\u0002",
 | |
|     "\u036b\u036c\u0003\u0002\u0002\u0002\u036b\u0369\u0003\u0002\u0002\u0002",
 | |
|     "\u036c\u037e\u0003\u0002\u0002\u0002\u036d\u036b\u0003\u0002\u0002\u0002",
 | |
|     "\u036e\u0372\u0007{\u0002\u0002\u036f\u0371\u000b\u0002\u0002\u0002",
 | |
|     "\u0370\u036f\u0003\u0002\u0002\u0002\u0371\u0374\u0003\u0002\u0002\u0002",
 | |
|     "\u0372\u0373\u0003\u0002\u0002\u0002\u0372\u0370\u0003\u0002\u0002\u0002",
 | |
|     "\u0373\u037e\u0003\u0002\u0002\u0002\u0374\u0372\u0003\u0002\u0002\u0002",
 | |
|     "\u0375\u037e\u0007|\u0002\u0002\u0376\u037a\u0005\u0010\t\u0002\u0377",
 | |
|     "\u0379\u000b\u0002\u0002\u0002\u0378\u0377\u0003\u0002\u0002\u0002\u0379",
 | |
|     "\u037c\u0003\u0002\u0002\u0002\u037a\u037b\u0003\u0002\u0002\u0002\u037a",
 | |
|     "\u0378\u0003\u0002\u0002\u0002\u037b\u037e\u0003\u0002\u0002\u0002\u037c",
 | |
|     "\u037a\u0003\u0002\u0002\u0002\u037d\u00fb\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u00fc\u0003\u0002\u0002\u0002\u037d\u00fe\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u0112\u0003\u0002\u0002\u0002\u037d\u0119\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u0123\u0003\u0002\u0002\u0002\u037d\u0141\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u0162\u0003\u0002\u0002\u0002\u037d\u017f\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u018c\u0003\u0002\u0002\u0002\u037d\u019d\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u01a6\u0003\u0002\u0002\u0002\u037d\u01ad\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u01b4\u0003\u0002\u0002\u0002\u037d\u01bf\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u01ce\u0003\u0002\u0002\u0002\u037d\u01dc\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u01e6\u0003\u0002\u0002\u0002\u037d\u01f4\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u0202\u0003\u0002\u0002\u0002\u037d\u020a\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u021d\u0003\u0002\u0002\u0002\u037d\u022d\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u0236\u0003\u0002\u0002\u0002\u037d\u023c\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u0246\u0003\u0002\u0002\u0002\u037d\u024d\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u0272\u0003\u0002\u0002\u0002\u037d\u0288\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u0290\u0003\u0002\u0002\u0002\u037d\u02ac\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u02b6\u0003\u0002\u0002\u0002\u037d\u02bb\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u02c7\u0003\u0002\u0002\u0002\u037d\u02d3\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u02db\u0003\u0002\u0002\u0002\u037d\u02e4\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u02ec\u0003\u0002\u0002\u0002\u037d\u02f2\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u0300\u0003\u0002\u0002\u0002\u037d\u0304\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u030a\u0003\u0002\u0002\u0002\u037d\u0310\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u031e\u0003\u0002\u0002\u0002\u037d\u0321\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u032b\u0003\u0002\u0002\u0002\u037d\u033b\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u0342\u0003\u0002\u0002\u0002\u037d\u0344\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u0354\u0003\u0002\u0002\u0002\u037d\u035a\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u035e\u0003\u0002\u0002\u0002\u037d\u0366\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u036e\u0003\u0002\u0002\u0002\u037d\u0375\u0003\u0002\u0002\u0002\u037d",
 | |
|     "\u0376\u0003\u0002\u0002\u0002\u037e\u000f\u0003\u0002\u0002\u0002\u037f",
 | |
|     "\u0380\u0007W\u0002\u0002\u0380\u042a\u0007\u00ec\u0002\u0002\u0381",
 | |
|     "\u0382\u0007m\u0002\u0002\u0382\u042a\u0007\u00ec\u0002\u0002\u0383",
 | |
|     "\u0385\u0007\u00e3\u0002\u0002\u0384\u0386\u0007\u00ec\u0002\u0002\u0385",
 | |
|     "\u0384\u0003\u0002\u0002\u0002\u0385\u0386\u0003\u0002\u0002\u0002\u0386",
 | |
|     "\u042a\u0003\u0002\u0002\u0002\u0387\u0389\u0007\u00e2\u0002\u0002\u0388",
 | |
|     "\u038a\u0007\u00ec\u0002\u0002\u0389\u0388\u0003\u0002\u0002\u0002\u0389",
 | |
|     "\u038a\u0003\u0002\u0002\u0002\u038a\u042a\u0003\u0002\u0002\u0002\u038b",
 | |
|     "\u038c\u0007f\u0002\u0002\u038c\u042a\u0007\u00e3\u0002\u0002\u038d",
 | |
|     "\u038e\u0007f\u0002\u0002\u038e\u0390\u0007\u00ec\u0002\u0002\u038f",
 | |
|     "\u0391\u0007\u00e3\u0002\u0002\u0390\u038f\u0003\u0002\u0002\u0002\u0390",
 | |
|     "\u0391\u0003\u0002\u0002\u0002\u0391\u042a\u0003\u0002\u0002\u0002\u0392",
 | |
|     "\u0393\u0007f\u0002\u0002\u0393\u042a\u0007\u00ef\u0002\u0002\u0394",
 | |
|     "\u0395\u0007f\u0002\u0002\u0395\u042a\u0007\u00ed\u0002\u0002\u0396",
 | |
|     "\u0397\u0007f\u0002\u0002\u0397\u0398\u0007P\u0002\u0002\u0398\u042a",
 | |
|     "\u0007\u00ed\u0002\u0002\u0399\u039a\u0007\u00e9\u0002\u0002\u039a\u042a",
 | |
|     "\u0007X\u0002\u0002\u039b\u039c\u0007\u00ea\u0002\u0002\u039c\u042a",
 | |
|     "\u0007X\u0002\u0002\u039d\u039e\u0007f\u0002\u0002\u039e\u042a\u0007",
 | |
|     "\u00ee\u0002\u0002\u039f\u03a0\u0007f\u0002\u0002\u03a0\u03a1\u0007",
 | |
|     "W\u0002\u0002\u03a1\u042a\u0007X\u0002\u0002\u03a2\u03a3\u0007f\u0002",
 | |
|     "\u0002\u03a3\u042a\u0007\u00f0\u0002\u0002\u03a4\u03a5\u0007f\u0002",
 | |
|     "\u0002\u03a5\u042a\u0007\u00f2\u0002\u0002\u03a6\u03a7\u0007f\u0002",
 | |
|     "\u0002\u03a7\u042a\u0007\u00f3\u0002\u0002\u03a8\u03a9\u0007W\u0002",
 | |
|     "\u0002\u03a9\u042a\u0007\u00f1\u0002\u0002\u03aa\u03ab\u0007m\u0002",
 | |
|     "\u0002\u03ab\u042a\u0007\u00f1\u0002\u0002\u03ac\u03ad\u0007u\u0002",
 | |
|     "\u0002\u03ad\u042a\u0007\u00f1\u0002\u0002\u03ae\u03af\u0007\u00e4\u0002",
 | |
|     "\u0002\u03af\u042a\u0007X\u0002\u0002\u03b0\u03b1\u0007\u00e4\u0002",
 | |
|     "\u0002\u03b1\u042a\u0007\u00d7\u0002\u0002\u03b2\u03b3\u0007\u00e5\u0002",
 | |
|     "\u0002\u03b3\u042a\u0007X\u0002\u0002\u03b4\u03b5\u0007\u00e5\u0002",
 | |
|     "\u0002\u03b5\u042a\u0007\u00d7\u0002\u0002\u03b6\u03b7\u0007W\u0002",
 | |
|     "\u0002\u03b7\u03b8\u0007\u00be\u0002\u0002\u03b8\u042a\u0007\u0082\u0002",
 | |
|     "\u0002\u03b9\u03ba\u0007m\u0002\u0002\u03ba\u03bb\u0007\u00be\u0002",
 | |
|     "\u0002\u03bb\u042a\u0007\u0082\u0002\u0002\u03bc\u03bd\u0007u\u0002",
 | |
|     "\u0002\u03bd\u03be\u0007X\u0002\u0002\u03be\u03bf\u0005\u009cO\u0002",
 | |
|     "\u03bf\u03c0\u0007(\u0002\u0002\u03c0\u03c1\u0007\u00d2\u0002\u0002",
 | |
|     "\u03c1\u042a\u0003\u0002\u0002\u0002\u03c2\u03c3\u0007u\u0002\u0002",
 | |
|     "\u03c3\u03c4\u0007X\u0002\u0002\u03c4\u03c5\u0005\u009cO\u0002\u03c5",
 | |
|     "\u03c6\u0007\u00d2\u0002\u0002\u03c6\u03c7\u0007\u001c\u0002\u0002\u03c7",
 | |
|     "\u042a\u0003\u0002\u0002\u0002\u03c8\u03c9\u0007u\u0002\u0002\u03c9",
 | |
|     "\u03ca\u0007X\u0002\u0002\u03ca\u03cb\u0005\u009cO\u0002\u03cb\u03cc",
 | |
|     "\u0007(\u0002\u0002\u03cc\u03cd\u0007\u00d3\u0002\u0002\u03cd\u042a",
 | |
|     "\u0003\u0002\u0002\u0002\u03ce\u03cf\u0007u\u0002\u0002\u03cf\u03d0",
 | |
|     "\u0007X\u0002\u0002\u03d0\u03d1\u0005\u009cO\u0002\u03d1\u03d2\u0007",
 | |
|     "\u00c4\u0002\u0002\u03d2\u03d3\u0007\u001c\u0002\u0002\u03d3\u042a\u0003",
 | |
|     "\u0002\u0002\u0002\u03d4\u03d5\u0007u\u0002\u0002\u03d5\u03d6\u0007",
 | |
|     "X\u0002\u0002\u03d6\u03d7\u0005\u009cO\u0002\u03d7\u03d8\u0007(\u0002",
 | |
|     "\u0002\u03d8\u03d9\u0007\u00c4\u0002\u0002\u03d9\u042a\u0003\u0002\u0002",
 | |
|     "\u0002\u03da\u03db\u0007u\u0002\u0002\u03db\u03dc\u0007X\u0002\u0002",
 | |
|     "\u03dc\u03dd\u0005\u009cO\u0002\u03dd\u03de\u0007(\u0002\u0002\u03de",
 | |
|     "\u03df\u0007\u00c5\u0002\u0002\u03df\u03e0\u0007\u0016\u0002\u0002\u03e0",
 | |
|     "\u03e1\u0007\u00c6\u0002\u0002\u03e1\u042a\u0003\u0002\u0002\u0002\u03e2",
 | |
|     "\u03e3\u0007u\u0002\u0002\u03e3\u03e4\u0007X\u0002\u0002\u03e4\u03e5",
 | |
|     "\u0005\u009cO\u0002\u03e5\u03e6\u0007{\u0002\u0002\u03e6\u03e7\u0007",
 | |
|     "\u00c4\u0002\u0002\u03e7\u03e8\u0007\u00c7\u0002\u0002\u03e8\u042a\u0003",
 | |
|     "\u0002\u0002\u0002\u03e9\u03ea\u0007u\u0002\u0002\u03ea\u03eb\u0007",
 | |
|     "X\u0002\u0002\u03eb\u03ec\u0005\u009cO\u0002\u03ec\u03ed\u0007\u00c8",
 | |
|     "\u0002\u0002\u03ed\u03ee\u0007J\u0002\u0002\u03ee\u042a\u0003\u0002",
 | |
|     "\u0002\u0002\u03ef\u03f0\u0007u\u0002\u0002\u03f0\u03f1\u0007X\u0002",
 | |
|     "\u0002\u03f1\u03f2\u0005\u009cO\u0002\u03f2\u03f3\u0007\u00c9\u0002",
 | |
|     "\u0002\u03f3\u03f4\u0007J\u0002\u0002\u03f4\u042a\u0003\u0002\u0002",
 | |
|     "\u0002\u03f5\u03f6\u0007u\u0002\u0002\u03f6\u03f7\u0007X\u0002\u0002",
 | |
|     "\u03f7\u03f8\u0005\u009cO\u0002\u03f8\u03f9\u0007\u00ca\u0002\u0002",
 | |
|     "\u03f9\u03fa\u0007J\u0002\u0002\u03fa\u042a\u0003\u0002\u0002\u0002",
 | |
|     "\u03fb\u03fc\u0007u\u0002\u0002\u03fc\u03fd\u0007X\u0002\u0002\u03fd",
 | |
|     "\u03fe\u0005\u009cO\u0002\u03fe\u03ff\u0007\u00cc\u0002\u0002\u03ff",
 | |
|     "\u042a\u0003\u0002\u0002\u0002\u0400\u0401\u0007u\u0002\u0002\u0401",
 | |
|     "\u0402\u0007X\u0002\u0002\u0402\u0404\u0005\u009cO\u0002\u0403\u0405",
 | |
|     "\u0005 \u0011\u0002\u0404\u0403\u0003\u0002\u0002\u0002\u0404\u0405",
 | |
|     "\u0003\u0002\u0002\u0002\u0405\u0406\u0003\u0002\u0002\u0002\u0406\u0407",
 | |
|     "\u0007\u00cd\u0002\u0002\u0407\u042a\u0003\u0002\u0002\u0002\u0408\u0409",
 | |
|     "\u0007u\u0002\u0002\u0409\u040a\u0007X\u0002\u0002\u040a\u040c\u0005",
 | |
|     "\u009cO\u0002\u040b\u040d\u0005 \u0011\u0002\u040c\u040b\u0003\u0002",
 | |
|     "\u0002\u0002\u040c\u040d\u0003\u0002\u0002\u0002\u040d\u040e\u0003\u0002",
 | |
|     "\u0002\u0002\u040e\u040f\u0007\u00ce\u0002\u0002\u040f\u042a\u0003\u0002",
 | |
|     "\u0002\u0002\u0410\u0411\u0007u\u0002\u0002\u0411\u0412\u0007X\u0002",
 | |
|     "\u0002\u0412\u0414\u0005\u009cO\u0002\u0413\u0415\u0005 \u0011\u0002",
 | |
|     "\u0414\u0413\u0003\u0002\u0002\u0002\u0414\u0415\u0003\u0002\u0002\u0002",
 | |
|     "\u0415\u0416\u0003\u0002\u0002\u0002\u0416\u0417\u0007{\u0002\u0002",
 | |
|     "\u0417\u0418\u0007\u00cb\u0002\u0002\u0418\u042a\u0003\u0002\u0002\u0002",
 | |
|     "\u0419\u041a\u0007u\u0002\u0002\u041a\u041b\u0007X\u0002\u0002\u041b",
 | |
|     "\u041d\u0005\u009cO\u0002\u041c\u041e\u0005 \u0011\u0002\u041d\u041c",
 | |
|     "\u0003\u0002\u0002\u0002\u041d\u041e\u0003\u0002\u0002\u0002\u041e\u041f",
 | |
|     "\u0003\u0002\u0002\u0002\u041f\u0420\u0007[\u0002\u0002\u0420\u0421",
 | |
|     "\u0007h\u0002\u0002\u0421\u042a\u0003\u0002\u0002\u0002\u0422\u0423",
 | |
|     "\u0007~\u0002\u0002\u0423\u042a\u0007\u007f\u0002\u0002\u0424\u042a",
 | |
|     "\u0007\u0080\u0002\u0002\u0425\u042a\u0007\u0081\u0002\u0002\u0426\u042a",
 | |
|     "\u0007\u00d9\u0002\u0002\u0427\u0428\u0007]\u0002\u0002\u0428\u042a",
 | |
|     "\u0007\u0014\u0002\u0002\u0429\u037f\u0003\u0002\u0002\u0002\u0429\u0381",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u0383\u0003\u0002\u0002\u0002\u0429\u0387",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u038b\u0003\u0002\u0002\u0002\u0429\u038d",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u0392\u0003\u0002\u0002\u0002\u0429\u0394",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u0396\u0003\u0002\u0002\u0002\u0429\u0399",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u039b\u0003\u0002\u0002\u0002\u0429\u039d",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u039f\u0003\u0002\u0002\u0002\u0429\u03a2",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u03a4\u0003\u0002\u0002\u0002\u0429\u03a6",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u03a8\u0003\u0002\u0002\u0002\u0429\u03aa",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u03ac\u0003\u0002\u0002\u0002\u0429\u03ae",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u03b0\u0003\u0002\u0002\u0002\u0429\u03b2",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u03b4\u0003\u0002\u0002\u0002\u0429\u03b6",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u03b9\u0003\u0002\u0002\u0002\u0429\u03bc",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u03c2\u0003\u0002\u0002\u0002\u0429\u03c8",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u03ce\u0003\u0002\u0002\u0002\u0429\u03d4",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u03da\u0003\u0002\u0002\u0002\u0429\u03e2",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u03e9\u0003\u0002\u0002\u0002\u0429\u03ef",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u03f5\u0003\u0002\u0002\u0002\u0429\u03fb",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u0400\u0003\u0002\u0002\u0002\u0429\u0408",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u0410\u0003\u0002\u0002\u0002\u0429\u0419",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u0422\u0003\u0002\u0002\u0002\u0429\u0424",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u0425\u0003\u0002\u0002\u0002\u0429\u0426",
 | |
|     "\u0003\u0002\u0002\u0002\u0429\u0427\u0003\u0002\u0002\u0002\u042a\u0011",
 | |
|     "\u0003\u0002\u0002\u0002\u042b\u042d\u0007W\u0002\u0002\u042c\u042e",
 | |
|     "\u0007\u00be\u0002\u0002\u042d\u042c\u0003\u0002\u0002\u0002\u042d\u042e",
 | |
|     "\u0003\u0002\u0002\u0002\u042e\u0430\u0003\u0002\u0002\u0002\u042f\u0431",
 | |
|     "\u0007\u00e0\u0002\u0002\u0430\u042f\u0003\u0002\u0002\u0002\u0430\u0431",
 | |
|     "\u0003\u0002\u0002\u0002\u0431\u0432\u0003\u0002\u0002\u0002\u0432\u0436",
 | |
|     "\u0007X\u0002\u0002\u0433\u0434\u0007\u0087\u0002\u0002\u0434\u0435",
 | |
|     "\u0007(\u0002\u0002\u0435\u0437\u0007*\u0002\u0002\u0436\u0433\u0003",
 | |
|     "\u0002\u0002\u0002\u0436\u0437\u0003\u0002\u0002\u0002\u0437\u0438\u0003",
 | |
|     "\u0002\u0002\u0002\u0438\u0439\u0005\u009cO\u0002\u0439\u0013\u0003",
 | |
|     "\u0002\u0002\u0002\u043a\u043b\u0007\u00d2\u0002\u0002\u043b\u043c\u0007",
 | |
|     "\u001c\u0002\u0002\u043c\u0440\u0005p9\u0002\u043d\u043e\u0007\u00d3",
 | |
|     "\u0002\u0002\u043e\u043f\u0007\u001c\u0002\u0002\u043f\u0441\u0005t",
 | |
|     ";\u0002\u0440\u043d\u0003\u0002\u0002\u0002\u0440\u0441\u0003\u0002",
 | |
|     "\u0002\u0002\u0441\u0442\u0003\u0002\u0002\u0002\u0442\u0443\u0007^",
 | |
|     "\u0002\u0002\u0443\u0444\u0007\u0109\u0002\u0002\u0444\u0445\u0007\u00c3",
 | |
|     "\u0002\u0002\u0445\u0015\u0003\u0002\u0002\u0002\u0446\u0447\u0007\u00c4",
 | |
|     "\u0002\u0002\u0447\u0448\u0007\u001c\u0002\u0002\u0448\u0449\u0005p",
 | |
|     "9\u0002\u0449\u044c\u0007E\u0002\u0002\u044a\u044d\u00056\u001c\u0002",
 | |
|     "\u044b\u044d\u00058\u001d\u0002\u044c\u044a\u0003\u0002\u0002\u0002",
 | |
|     "\u044c\u044b\u0003\u0002\u0002\u0002\u044d\u0451\u0003\u0002\u0002\u0002",
 | |
|     "\u044e\u044f\u0007\u00c5\u0002\u0002\u044f\u0450\u0007\u0016\u0002\u0002",
 | |
|     "\u0450\u0452\u0007\u00c6\u0002\u0002\u0451\u044e\u0003\u0002\u0002\u0002",
 | |
|     "\u0451\u0452\u0003\u0002\u0002\u0002\u0452\u0017\u0003\u0002\u0002\u0002",
 | |
|     "\u0453\u0454\u0007\u00c7\u0002\u0002\u0454\u0455\u0007\u0105\u0002\u0002",
 | |
|     "\u0455\u0019\u0003\u0002\u0002\u0002\u0456\u0458\u0005(\u0015\u0002",
 | |
|     "\u0457\u0456\u0003\u0002\u0002\u0002\u0457\u0458\u0003\u0002\u0002\u0002",
 | |
|     "\u0458\u0459\u0003\u0002\u0002\u0002\u0459\u045a\u0005B\"\u0002\u045a",
 | |
|     "\u001b\u0003\u0002\u0002\u0002\u045b\u045c\u0007\\\u0002\u0002\u045c",
 | |
|     "\u045d\u0007\u00a4\u0002\u0002\u045d\u045e\u0007X\u0002\u0002\u045e",
 | |
|     "\u0465\u0005\u009cO\u0002\u045f\u0463\u0005 \u0011\u0002\u0460\u0461",
 | |
|     "\u0007\u0087\u0002\u0002\u0461\u0462\u0007(\u0002\u0002\u0462\u0464",
 | |
|     "\u0007*\u0002\u0002\u0463\u0460\u0003\u0002\u0002\u0002\u0463\u0464",
 | |
|     "\u0003\u0002\u0002\u0002\u0464\u0466\u0003\u0002\u0002\u0002\u0465\u045f",
 | |
|     "\u0003\u0002\u0002\u0002\u0465\u0466\u0003\u0002\u0002\u0002\u0466\u048c",
 | |
|     "\u0003\u0002\u0002\u0002\u0467\u0468\u0007\\\u0002\u0002\u0468\u046a",
 | |
|     "\u0007^\u0002\u0002\u0469\u046b\u0007X\u0002\u0002\u046a\u0469\u0003",
 | |
|     "\u0002\u0002\u0002\u046a\u046b\u0003\u0002\u0002\u0002\u046b\u046c\u0003",
 | |
|     "\u0002\u0002\u0002\u046c\u046e\u0005\u009cO\u0002\u046d\u046f\u0005",
 | |
|     " \u0011\u0002\u046e\u046d\u0003\u0002\u0002\u0002\u046e\u046f\u0003",
 | |
|     "\u0002\u0002\u0002\u046f\u048c\u0003\u0002\u0002\u0002\u0470\u0471\u0007",
 | |
|     "\\\u0002\u0002\u0471\u0473\u0007\u00a4\u0002\u0002\u0472\u0474\u0007",
 | |
|     "\u00f6\u0002\u0002\u0473\u0472\u0003\u0002\u0002\u0002\u0473\u0474\u0003",
 | |
|     "\u0002\u0002\u0002\u0474\u0475\u0003\u0002\u0002\u0002\u0475\u0476\u0007",
 | |
|     "Y\u0002\u0002\u0476\u0478\u0007\u0105\u0002\u0002\u0477\u0479\u0005",
 | |
|     "\u009aN\u0002\u0478\u0477\u0003\u0002\u0002\u0002\u0478\u0479\u0003",
 | |
|     "\u0002\u0002\u0002\u0479\u047b\u0003\u0002\u0002\u0002\u047a\u047c\u0005",
 | |
|     ":\u001e\u0002\u047b\u047a\u0003\u0002\u0002\u0002\u047b\u047c\u0003",
 | |
|     "\u0002\u0002\u0002\u047c\u048c\u0003\u0002\u0002\u0002\u047d\u047e\u0007",
 | |
|     "\\\u0002\u0002\u047e\u0480\u0007\u00a4\u0002\u0002\u047f\u0481\u0007",
 | |
|     "\u00f6\u0002\u0002\u0480\u047f\u0003\u0002\u0002\u0002\u0480\u0481\u0003",
 | |
|     "\u0002\u0002\u0002\u0481\u0482\u0003\u0002\u0002\u0002\u0482\u0484\u0007",
 | |
|     "Y\u0002\u0002\u0483\u0485\u0007\u0105\u0002\u0002\u0484\u0483\u0003",
 | |
|     "\u0002\u0002\u0002\u0484\u0485\u0003\u0002\u0002\u0002\u0485\u0486\u0003",
 | |
|     "\u0002\u0002\u0002\u0486\u0489\u0005,\u0017\u0002\u0487\u0488\u0007",
 | |
|     "\u00bf\u0002\u0002\u0488\u048a\u0005.\u0018\u0002\u0489\u0487\u0003",
 | |
|     "\u0002\u0002\u0002\u0489\u048a\u0003\u0002\u0002\u0002\u048a\u048c\u0003",
 | |
|     "\u0002\u0002\u0002\u048b\u045b\u0003\u0002\u0002\u0002\u048b\u0467\u0003",
 | |
|     "\u0002\u0002\u0002\u048b\u0470\u0003\u0002\u0002\u0002\u048b\u047d\u0003",
 | |
|     "\u0002\u0002\u0002\u048c\u001d\u0003\u0002\u0002\u0002\u048d\u048f\u0005",
 | |
|     " \u0011\u0002\u048e\u0490\u0005\u0018\r\u0002\u048f\u048e\u0003\u0002",
 | |
|     "\u0002\u0002\u048f\u0490\u0003\u0002\u0002\u0002\u0490\u001f\u0003\u0002",
 | |
|     "\u0002\u0002\u0491\u0492\u0007J\u0002\u0002\u0492\u0493\u0007\u0003",
 | |
|     "\u0002\u0002\u0493\u0498\u0005\"\u0012\u0002\u0494\u0495\u0007\u0006",
 | |
|     "\u0002\u0002\u0495\u0497\u0005\"\u0012\u0002\u0496\u0494\u0003\u0002",
 | |
|     "\u0002\u0002\u0497\u049a\u0003\u0002\u0002\u0002\u0498\u0496\u0003\u0002",
 | |
|     "\u0002\u0002\u0498\u0499\u0003\u0002\u0002\u0002\u0499\u049b\u0003\u0002",
 | |
|     "\u0002\u0002\u049a\u0498\u0003\u0002\u0002\u0002\u049b\u049c\u0007\u0004",
 | |
|     "\u0002\u0002\u049c!\u0003\u0002\u0002\u0002\u049d\u04a0\u0005\u00dc",
 | |
|     "o\u0002\u049e\u049f\u0007\u008a\u0002\u0002\u049f\u04a1\u0005\u00ae",
 | |
|     "X\u0002\u04a0\u049e\u0003\u0002\u0002\u0002\u04a0\u04a1\u0003\u0002",
 | |
|     "\u0002\u0002\u04a1#\u0003\u0002\u0002\u0002\u04a2\u04a8\u0005\u00da",
 | |
|     "n\u0002\u04a3\u04a8\u0007\u0105\u0002\u0002\u04a4\u04a8\u0005\u00b0",
 | |
|     "Y\u0002\u04a5\u04a8\u0005\u00b2Z\u0002\u04a6\u04a8\u0005\u00b4[\u0002",
 | |
|     "\u04a7\u04a2\u0003\u0002\u0002\u0002\u04a7\u04a3\u0003\u0002\u0002\u0002",
 | |
|     "\u04a7\u04a4\u0003\u0002\u0002\u0002\u04a7\u04a5\u0003\u0002\u0002\u0002",
 | |
|     "\u04a7\u04a6\u0003\u0002\u0002\u0002\u04a8%\u0003\u0002\u0002\u0002",
 | |
|     "\u04a9\u04ae\u0005\u00dco\u0002\u04aa\u04ab\u0007\u0005\u0002\u0002",
 | |
|     "\u04ab\u04ad\u0005\u00dco\u0002\u04ac\u04aa\u0003\u0002\u0002\u0002",
 | |
|     "\u04ad\u04b0\u0003\u0002\u0002\u0002\u04ae\u04ac\u0003\u0002\u0002\u0002",
 | |
|     "\u04ae\u04af\u0003\u0002\u0002\u0002\u04af\'\u0003\u0002\u0002\u0002",
 | |
|     "\u04b0\u04ae\u0003\u0002\u0002\u0002\u04b1\u04b2\u0007U\u0002\u0002",
 | |
|     "\u04b2\u04b7\u0005*\u0016\u0002\u04b3\u04b4\u0007\u0006\u0002\u0002",
 | |
|     "\u04b4\u04b6\u0005*\u0016\u0002\u04b5\u04b3\u0003\u0002\u0002\u0002",
 | |
|     "\u04b6\u04b9\u0003\u0002\u0002\u0002\u04b7\u04b5\u0003\u0002\u0002\u0002",
 | |
|     "\u04b7\u04b8\u0003\u0002\u0002\u0002\u04b8)\u0003\u0002\u0002\u0002",
 | |
|     "\u04b9\u04b7\u0003\u0002\u0002\u0002\u04ba\u04bc\u0005\u00dco\u0002",
 | |
|     "\u04bb\u04bd\u0007\u0016\u0002\u0002\u04bc\u04bb\u0003\u0002\u0002\u0002",
 | |
|     "\u04bc\u04bd\u0003\u0002\u0002\u0002\u04bd\u04be\u0003\u0002\u0002\u0002",
 | |
|     "\u04be\u04bf\u0007\u0003\u0002\u0002\u04bf\u04c0\u0005\u001a\u000e\u0002",
 | |
|     "\u04c0\u04c1\u0007\u0004\u0002\u0002\u04c1+\u0003\u0002\u0002\u0002",
 | |
|     "\u04c2\u04c3\u0007\u00a7\u0002\u0002\u04c3\u04c4\u0005\u00dan\u0002",
 | |
|     "\u04c4-\u0003\u0002\u0002\u0002\u04c5\u04c6\u0007\u0003\u0002\u0002",
 | |
|     "\u04c6\u04cb\u00050\u0019\u0002\u04c7\u04c8\u0007\u0006\u0002\u0002",
 | |
|     "\u04c8\u04ca\u00050\u0019\u0002\u04c9\u04c7\u0003\u0002\u0002\u0002",
 | |
|     "\u04ca\u04cd\u0003\u0002\u0002\u0002\u04cb\u04c9\u0003\u0002\u0002\u0002",
 | |
|     "\u04cb\u04cc\u0003\u0002\u0002\u0002\u04cc\u04ce\u0003\u0002\u0002\u0002",
 | |
|     "\u04cd\u04cb\u0003\u0002\u0002\u0002\u04ce\u04cf\u0007\u0004\u0002\u0002",
 | |
|     "\u04cf/\u0003\u0002\u0002\u0002\u04d0\u04d5\u00052\u001a\u0002\u04d1",
 | |
|     "\u04d3\u0007\u008a\u0002\u0002\u04d2\u04d1\u0003\u0002\u0002\u0002\u04d2",
 | |
|     "\u04d3\u0003\u0002\u0002\u0002\u04d3\u04d4\u0003\u0002\u0002\u0002\u04d4",
 | |
|     "\u04d6\u00054\u001b\u0002\u04d5\u04d2\u0003\u0002\u0002\u0002\u04d5",
 | |
|     "\u04d6\u0003\u0002\u0002\u0002\u04d61\u0003\u0002\u0002\u0002\u04d7",
 | |
|     "\u04dc\u0005\u00dco\u0002\u04d8\u04d9\u0007\u0005\u0002\u0002\u04d9",
 | |
|     "\u04db\u0005\u00dco\u0002\u04da\u04d8\u0003\u0002\u0002\u0002\u04db",
 | |
|     "\u04de\u0003\u0002\u0002\u0002\u04dc\u04da\u0003\u0002\u0002\u0002\u04dc",
 | |
|     "\u04dd\u0003\u0002\u0002\u0002\u04dd\u04e1\u0003\u0002\u0002\u0002\u04de",
 | |
|     "\u04dc\u0003\u0002\u0002\u0002\u04df\u04e1\u0007\u0105\u0002\u0002\u04e0",
 | |
|     "\u04d7\u0003\u0002\u0002\u0002\u04e0\u04df\u0003\u0002\u0002\u0002\u04e1",
 | |
|     "3\u0003\u0002\u0002\u0002\u04e2\u04e7\u0007\u0109\u0002\u0002\u04e3",
 | |
|     "\u04e7\u0007\u010a\u0002\u0002\u04e4\u04e7\u0005\u00b6\\\u0002\u04e5",
 | |
|     "\u04e7\u0007\u0105\u0002\u0002\u04e6\u04e2\u0003\u0002\u0002\u0002\u04e6",
 | |
|     "\u04e3\u0003\u0002\u0002\u0002\u04e6\u04e4\u0003\u0002\u0002\u0002\u04e6",
 | |
|     "\u04e5\u0003\u0002\u0002\u0002\u04e75\u0003\u0002\u0002\u0002\u04e8",
 | |
|     "\u04e9\u0007\u0003\u0002\u0002\u04e9\u04ee\u0005\u00aeX\u0002\u04ea",
 | |
|     "\u04eb\u0007\u0006\u0002\u0002\u04eb\u04ed\u0005\u00aeX\u0002\u04ec",
 | |
|     "\u04ea\u0003\u0002\u0002\u0002\u04ed\u04f0\u0003\u0002\u0002\u0002\u04ee",
 | |
|     "\u04ec\u0003\u0002\u0002\u0002\u04ee\u04ef\u0003\u0002\u0002\u0002\u04ef",
 | |
|     "\u04f1\u0003\u0002\u0002\u0002\u04f0\u04ee\u0003\u0002\u0002\u0002\u04f1",
 | |
|     "\u04f2\u0007\u0004\u0002\u0002\u04f27\u0003\u0002\u0002\u0002\u04f3",
 | |
|     "\u04f4\u0007\u0003\u0002\u0002\u04f4\u04f9\u00056\u001c\u0002\u04f5",
 | |
|     "\u04f6\u0007\u0006\u0002\u0002\u04f6\u04f8\u00056\u001c\u0002\u04f7",
 | |
|     "\u04f5\u0003\u0002\u0002\u0002\u04f8\u04fb\u0003\u0002\u0002\u0002\u04f9",
 | |
|     "\u04f7\u0003\u0002\u0002\u0002\u04f9\u04fa\u0003\u0002\u0002\u0002\u04fa",
 | |
|     "\u04fc\u0003\u0002\u0002\u0002\u04fb\u04f9\u0003\u0002\u0002\u0002\u04fc",
 | |
|     "\u04fd\u0007\u0004\u0002\u0002\u04fd9\u0003\u0002\u0002\u0002\u04fe",
 | |
|     "\u04ff\u0007\u00c5\u0002\u0002\u04ff\u0500\u0007\u0016\u0002\u0002\u0500",
 | |
|     "\u0505\u0005<\u001f\u0002\u0501\u0502\u0007\u00c5\u0002\u0002\u0502",
 | |
|     "\u0503\u0007\u001c\u0002\u0002\u0503\u0505\u0005> \u0002\u0504\u04fe",
 | |
|     "\u0003\u0002\u0002\u0002\u0504\u0501\u0003\u0002\u0002\u0002\u0505;",
 | |
|     "\u0003\u0002\u0002\u0002\u0506\u0507\u0007\u00d5\u0002\u0002\u0507\u0508",
 | |
|     "\u0007\u0105\u0002\u0002\u0508\u0509\u0007\u00d6\u0002\u0002\u0509\u050c",
 | |
|     "\u0007\u0105\u0002\u0002\u050a\u050c\u0005\u00dco\u0002\u050b\u0506",
 | |
|     "\u0003\u0002\u0002\u0002\u050b\u050a\u0003\u0002\u0002\u0002\u050c=",
 | |
|     "\u0003\u0002\u0002\u0002\u050d\u0511\u0007\u0105\u0002\u0002\u050e\u050f",
 | |
|     "\u0007U\u0002\u0002\u050f\u0510\u0007\u00a9\u0002\u0002\u0510\u0512",
 | |
|     "\u0005.\u0018\u0002\u0511\u050e\u0003\u0002\u0002\u0002\u0511\u0512",
 | |
|     "\u0003\u0002\u0002\u0002\u0512?\u0003\u0002\u0002\u0002\u0513\u0514",
 | |
|     "\u0005\u00dco\u0002\u0514\u0515\u0007\u0105\u0002\u0002\u0515A\u0003",
 | |
|     "\u0002\u0002\u0002\u0516\u0518\u0005\u001c\u000f\u0002\u0517\u0516\u0003",
 | |
|     "\u0002\u0002\u0002\u0517\u0518\u0003\u0002\u0002\u0002\u0518\u0519\u0003",
 | |
|     "\u0002\u0002\u0002\u0519\u051a\u0005H%\u0002\u051a\u051b\u0005D#\u0002",
 | |
|     "\u051b\u0523\u0003\u0002\u0002\u0002\u051c\u051e\u0005T+\u0002\u051d",
 | |
|     "\u051f\u0005F$\u0002\u051e\u051d\u0003\u0002\u0002\u0002\u051f\u0520",
 | |
|     "\u0003\u0002\u0002\u0002\u0520\u051e\u0003\u0002\u0002\u0002\u0520\u0521",
 | |
|     "\u0003\u0002\u0002\u0002\u0521\u0523\u0003\u0002\u0002\u0002\u0522\u0517",
 | |
|     "\u0003\u0002\u0002\u0002\u0522\u051c\u0003\u0002\u0002\u0002\u0523C",
 | |
|     "\u0003\u0002\u0002\u0002\u0524\u0525\u0007!\u0002\u0002\u0525\u0526",
 | |
|     "\u0007\u001c\u0002\u0002\u0526\u052b\u0005L\'\u0002\u0527\u0528\u0007",
 | |
|     "\u0006\u0002\u0002\u0528\u052a\u0005L\'\u0002\u0529\u0527\u0003\u0002",
 | |
|     "\u0002\u0002\u052a\u052d\u0003\u0002\u0002\u0002\u052b\u0529\u0003\u0002",
 | |
|     "\u0002\u0002\u052b\u052c\u0003\u0002\u0002\u0002\u052c\u052f\u0003\u0002",
 | |
|     "\u0002\u0002\u052d\u052b\u0003\u0002\u0002\u0002\u052e\u0524\u0003\u0002",
 | |
|     "\u0002\u0002\u052e\u052f\u0003\u0002\u0002\u0002\u052f\u053a\u0003\u0002",
 | |
|     "\u0002\u0002\u0530\u0531\u0007\u00a2\u0002\u0002\u0531\u0532\u0007\u001c",
 | |
|     "\u0002\u0002\u0532\u0537\u0005\u00a4S\u0002\u0533\u0534\u0007\u0006",
 | |
|     "\u0002\u0002\u0534\u0536\u0005\u00a4S\u0002\u0535\u0533\u0003\u0002",
 | |
|     "\u0002\u0002\u0536\u0539\u0003\u0002\u0002\u0002\u0537\u0535\u0003\u0002",
 | |
|     "\u0002\u0002\u0537\u0538\u0003\u0002\u0002\u0002\u0538\u053b\u0003\u0002",
 | |
|     "\u0002\u0002\u0539\u0537\u0003\u0002\u0002\u0002\u053a\u0530\u0003\u0002",
 | |
|     "\u0002\u0002\u053a\u053b\u0003\u0002\u0002\u0002\u053b\u0546\u0003\u0002",
 | |
|     "\u0002\u0002\u053c\u053d\u0007\u00a3\u0002\u0002\u053d\u053e\u0007\u001c",
 | |
|     "\u0002\u0002\u053e\u0543\u0005\u00a4S\u0002\u053f\u0540\u0007\u0006",
 | |
|     "\u0002\u0002\u0540\u0542\u0005\u00a4S\u0002\u0541\u053f\u0003\u0002",
 | |
|     "\u0002\u0002\u0542\u0545\u0003\u0002\u0002\u0002\u0543\u0541\u0003\u0002",
 | |
|     "\u0002\u0002\u0543\u0544\u0003\u0002\u0002\u0002\u0544\u0547\u0003\u0002",
 | |
|     "\u0002\u0002\u0545\u0543\u0003\u0002\u0002\u0002\u0546\u053c\u0003\u0002",
 | |
|     "\u0002\u0002\u0546\u0547\u0003\u0002\u0002\u0002\u0547\u0552\u0003\u0002",
 | |
|     "\u0002\u0002\u0548\u0549\u0007\u00a1\u0002\u0002\u0549\u054a\u0007\u001c",
 | |
|     "\u0002\u0002\u054a\u054f\u0005L\'\u0002\u054b\u054c\u0007\u0006\u0002",
 | |
|     "\u0002\u054c\u054e\u0005L\'\u0002\u054d\u054b\u0003\u0002\u0002\u0002",
 | |
|     "\u054e\u0551\u0003\u0002\u0002\u0002\u054f\u054d\u0003\u0002\u0002\u0002",
 | |
|     "\u054f\u0550\u0003\u0002\u0002\u0002\u0550\u0553\u0003\u0002\u0002\u0002",
 | |
|     "\u0551\u054f\u0003\u0002\u0002\u0002\u0552\u0548\u0003\u0002\u0002\u0002",
 | |
|     "\u0552\u0553\u0003\u0002\u0002\u0002\u0553\u0555\u0003\u0002\u0002\u0002",
 | |
|     "\u0554\u0556\u0005\u00d0i\u0002\u0555\u0554\u0003\u0002\u0002\u0002",
 | |
|     "\u0555\u0556\u0003\u0002\u0002\u0002\u0556\u055c\u0003\u0002\u0002\u0002",
 | |
|     "\u0557\u055a\u0007#\u0002\u0002\u0558\u055b\u0007\u0017\u0002\u0002",
 | |
|     "\u0559\u055b\u0005\u00a4S\u0002\u055a\u0558\u0003\u0002\u0002\u0002",
 | |
|     "\u055a\u0559\u0003\u0002\u0002\u0002\u055b\u055d\u0003\u0002\u0002\u0002",
 | |
|     "\u055c\u0557\u0003\u0002\u0002\u0002\u055c\u055d\u0003\u0002\u0002\u0002",
 | |
|     "\u055dE\u0003\u0002\u0002\u0002\u055e\u0560\u0005\u001c\u000f\u0002",
 | |
|     "\u055f\u055e\u0003\u0002\u0002\u0002\u055f\u0560\u0003\u0002\u0002\u0002",
 | |
|     "\u0560\u0561\u0003\u0002\u0002\u0002\u0561\u0562\u0005N(\u0002\u0562",
 | |
|     "\u0563\u0005D#\u0002\u0563G\u0003\u0002\u0002\u0002\u0564\u0565\b%\u0001",
 | |
|     "\u0002\u0565\u0566\u0005J&\u0002\u0566\u057e\u0003\u0002\u0002\u0002",
 | |
|     "\u0567\u0568\f\u0005\u0002\u0002\u0568\u0569\u0006%\u0003\u0002\u0569",
 | |
|     "\u056b\t\t\u0002\u0002\u056a\u056c\u0005b2\u0002\u056b\u056a\u0003\u0002",
 | |
|     "\u0002\u0002\u056b\u056c\u0003\u0002\u0002\u0002\u056c\u056d\u0003\u0002",
 | |
|     "\u0002\u0002\u056d\u057d\u0005H%\u0006\u056e\u056f\f\u0004\u0002\u0002",
 | |
|     "\u056f\u0570\u0006%\u0005\u0002\u0570\u0572\u0007q\u0002\u0002\u0571",
 | |
|     "\u0573\u0005b2\u0002\u0572\u0571\u0003\u0002\u0002\u0002\u0572\u0573",
 | |
|     "\u0003\u0002\u0002\u0002\u0573\u0574\u0003\u0002\u0002\u0002\u0574\u057d",
 | |
|     "\u0005H%\u0005\u0575\u0576\f\u0003\u0002\u0002\u0576\u0577\u0006%\u0007",
 | |
|     "\u0002\u0577\u0579\t\n\u0002\u0002\u0578\u057a\u0005b2\u0002\u0579\u0578",
 | |
|     "\u0003\u0002\u0002\u0002\u0579\u057a\u0003\u0002\u0002\u0002\u057a\u057b",
 | |
|     "\u0003\u0002\u0002\u0002\u057b\u057d\u0005H%\u0004\u057c\u0567\u0003",
 | |
|     "\u0002\u0002\u0002\u057c\u056e\u0003\u0002\u0002\u0002\u057c\u0575\u0003",
 | |
|     "\u0002\u0002\u0002\u057d\u0580\u0003\u0002\u0002\u0002\u057e\u057c\u0003",
 | |
|     "\u0002\u0002\u0002\u057e\u057f\u0003\u0002\u0002\u0002\u057fI\u0003",
 | |
|     "\u0002\u0002\u0002\u0580\u057e\u0003\u0002\u0002\u0002\u0581\u058a\u0005",
 | |
|     "N(\u0002\u0582\u0583\u0007X\u0002\u0002\u0583\u058a\u0005\u009cO\u0002",
 | |
|     "\u0584\u058a\u0005\u0094K\u0002\u0585\u0586\u0007\u0003\u0002\u0002",
 | |
|     "\u0586\u0587\u0005B\"\u0002\u0587\u0588\u0007\u0004\u0002\u0002\u0588",
 | |
|     "\u058a\u0003\u0002\u0002\u0002\u0589\u0581\u0003\u0002\u0002\u0002\u0589",
 | |
|     "\u0582\u0003\u0002\u0002\u0002\u0589\u0584\u0003\u0002\u0002\u0002\u0589",
 | |
|     "\u0585\u0003\u0002\u0002\u0002\u058aK\u0003\u0002\u0002\u0002\u058b",
 | |
|     "\u058d\u0005\u00a4S\u0002\u058c\u058e\t\u000b\u0002\u0002\u058d\u058c",
 | |
|     "\u0003\u0002\u0002\u0002\u058d\u058e\u0003\u0002\u0002\u0002\u058e\u0591",
 | |
|     "\u0003\u0002\u0002\u0002\u058f\u0590\u00072\u0002\u0002\u0590\u0592",
 | |
|     "\t\f\u0002\u0002\u0591\u058f\u0003\u0002\u0002\u0002\u0591\u0592\u0003",
 | |
|     "\u0002\u0002\u0002\u0592M\u0003\u0002\u0002\u0002\u0593\u0594\u0007",
 | |
|     "\u0013\u0002\u0002\u0594\u0595\u0007\u00a5\u0002\u0002\u0595\u0596\u0007",
 | |
|     "\u0003\u0002\u0002\u0596\u0597\u0005\u00a2R\u0002\u0597\u0598\u0007",
 | |
|     "\u0004\u0002\u0002\u0598\u059e\u0003\u0002\u0002\u0002\u0599\u059a\u0007",
 | |
|     "x\u0002\u0002\u059a\u059e\u0005\u00a2R\u0002\u059b\u059c\u0007\u00a6",
 | |
|     "\u0002\u0002\u059c\u059e\u0005\u00a2R\u0002\u059d\u0593\u0003\u0002",
 | |
|     "\u0002\u0002\u059d\u0599\u0003\u0002\u0002\u0002\u059d\u059b\u0003\u0002",
 | |
|     "\u0002\u0002\u059e\u05a0\u0003\u0002\u0002\u0002\u059f\u05a1\u0005\u009a",
 | |
|     "N\u0002\u05a0\u059f\u0003\u0002\u0002\u0002\u05a0\u05a1\u0003\u0002",
 | |
|     "\u0002\u0002\u05a1\u05a4\u0003\u0002\u0002\u0002\u05a2\u05a3\u0007\u00ab",
 | |
|     "\u0002\u0002\u05a3\u05a5\u0007\u0105\u0002\u0002\u05a4\u05a2\u0003\u0002",
 | |
|     "\u0002\u0002\u05a4\u05a5\u0003\u0002\u0002\u0002\u05a5\u05a6\u0003\u0002",
 | |
|     "\u0002\u0002\u05a6\u05a7\u0007\u00a7\u0002\u0002\u05a7\u05b4\u0007\u0105",
 | |
|     "\u0002\u0002\u05a8\u05b2\u0007\u0016\u0002\u0002\u05a9\u05b3\u0005r",
 | |
|     ":\u0002\u05aa\u05b3\u0005\u00c2b\u0002\u05ab\u05ae\u0007\u0003\u0002",
 | |
|     "\u0002\u05ac\u05af\u0005r:\u0002\u05ad\u05af\u0005\u00c2b\u0002\u05ae",
 | |
|     "\u05ac\u0003\u0002\u0002\u0002\u05ae\u05ad\u0003\u0002\u0002\u0002\u05af",
 | |
|     "\u05b0\u0003\u0002\u0002\u0002\u05b0\u05b1\u0007\u0004\u0002\u0002\u05b1",
 | |
|     "\u05b3\u0003\u0002\u0002\u0002\u05b2\u05a9\u0003\u0002\u0002\u0002\u05b2",
 | |
|     "\u05aa\u0003\u0002\u0002\u0002\u05b2\u05ab\u0003\u0002\u0002\u0002\u05b3",
 | |
|     "\u05b5\u0003\u0002\u0002\u0002\u05b4\u05a8\u0003\u0002\u0002\u0002\u05b4",
 | |
|     "\u05b5\u0003\u0002\u0002\u0002\u05b5\u05b7\u0003\u0002\u0002\u0002\u05b6",
 | |
|     "\u05b8\u0005\u009aN\u0002\u05b7\u05b6\u0003\u0002\u0002\u0002\u05b7",
 | |
|     "\u05b8\u0003\u0002\u0002\u0002\u05b8\u05bb\u0003\u0002\u0002\u0002\u05b9",
 | |
|     "\u05ba\u0007\u00aa\u0002\u0002\u05ba\u05bc\u0007\u0105\u0002\u0002\u05bb",
 | |
|     "\u05b9\u0003\u0002\u0002\u0002\u05bb\u05bc\u0003\u0002\u0002\u0002\u05bc",
 | |
|     "\u05be\u0003\u0002\u0002\u0002\u05bd\u05bf\u0005T+\u0002\u05be\u05bd",
 | |
|     "\u0003\u0002\u0002\u0002\u05be\u05bf\u0003\u0002\u0002\u0002\u05bf\u05c2",
 | |
|     "\u0003\u0002\u0002\u0002\u05c0\u05c1\u0007\u001a\u0002\u0002\u05c1\u05c3",
 | |
|     "\u0005\u00a6T\u0002\u05c2\u05c0\u0003\u0002\u0002\u0002\u05c2\u05c3",
 | |
|     "\u0003\u0002\u0002\u0002\u05c3\u05f1\u0003\u0002\u0002\u0002\u05c4\u05c8",
 | |
|     "\u0007\u0013\u0002\u0002\u05c5\u05c7\u0005P)\u0002\u05c6\u05c5\u0003",
 | |
|     "\u0002\u0002\u0002\u05c7\u05ca\u0003\u0002\u0002\u0002\u05c8\u05c6\u0003",
 | |
|     "\u0002\u0002\u0002\u05c8\u05c9\u0003\u0002\u0002\u0002\u05c9\u05cc\u0003",
 | |
|     "\u0002\u0002\u0002\u05ca\u05c8\u0003\u0002\u0002\u0002\u05cb\u05cd\u0005",
 | |
|     "b2\u0002\u05cc\u05cb\u0003\u0002\u0002\u0002\u05cc\u05cd\u0003\u0002",
 | |
|     "\u0002\u0002\u05cd\u05ce\u0003\u0002\u0002\u0002\u05ce\u05d0\u0005\u00a2",
 | |
|     "R\u0002\u05cf\u05d1\u0005T+\u0002\u05d0\u05cf\u0003\u0002\u0002\u0002",
 | |
|     "\u05d0\u05d1\u0003\u0002\u0002\u0002\u05d1\u05db\u0003\u0002\u0002\u0002",
 | |
|     "\u05d2\u05d8\u0005T+\u0002\u05d3\u05d5\u0007\u0013\u0002\u0002\u05d4",
 | |
|     "\u05d6\u0005b2\u0002\u05d5\u05d4\u0003\u0002\u0002\u0002\u05d5\u05d6",
 | |
|     "\u0003\u0002\u0002\u0002\u05d6\u05d7\u0003\u0002\u0002\u0002\u05d7\u05d9",
 | |
|     "\u0005\u00a2R\u0002\u05d8\u05d3\u0003\u0002\u0002\u0002\u05d8\u05d9",
 | |
|     "\u0003\u0002\u0002\u0002\u05d9\u05db\u0003\u0002\u0002\u0002\u05da\u05c4",
 | |
|     "\u0003\u0002\u0002\u0002\u05da\u05d2\u0003\u0002\u0002\u0002\u05db\u05df",
 | |
|     "\u0003\u0002\u0002\u0002\u05dc\u05de\u0005`1\u0002\u05dd\u05dc\u0003",
 | |
|     "\u0002\u0002\u0002\u05de\u05e1\u0003\u0002\u0002\u0002\u05df\u05dd\u0003",
 | |
|     "\u0002\u0002\u0002\u05df\u05e0\u0003\u0002\u0002\u0002\u05e0\u05e4\u0003",
 | |
|     "\u0002\u0002\u0002\u05e1\u05df\u0003\u0002\u0002\u0002\u05e2\u05e3\u0007",
 | |
|     "\u001a\u0002\u0002\u05e3\u05e5\u0005\u00a6T\u0002\u05e4\u05e2\u0003",
 | |
|     "\u0002\u0002\u0002\u05e4\u05e5\u0003\u0002\u0002\u0002\u05e5\u05e7\u0003",
 | |
|     "\u0002\u0002\u0002\u05e6\u05e8\u0005V,\u0002\u05e7\u05e6\u0003\u0002",
 | |
|     "\u0002\u0002\u05e7\u05e8\u0003\u0002\u0002\u0002\u05e8\u05eb\u0003\u0002",
 | |
|     "\u0002\u0002\u05e9\u05ea\u0007\"\u0002\u0002\u05ea\u05ec\u0005\u00a6",
 | |
|     "T\u0002\u05eb\u05e9\u0003\u0002\u0002\u0002\u05eb\u05ec\u0003\u0002",
 | |
|     "\u0002\u0002\u05ec\u05ee\u0003\u0002\u0002\u0002\u05ed\u05ef\u0005\u00d0",
 | |
|     "i\u0002\u05ee\u05ed\u0003\u0002\u0002\u0002\u05ee\u05ef\u0003\u0002",
 | |
|     "\u0002\u0002\u05ef\u05f1\u0003\u0002\u0002\u0002\u05f0\u059d\u0003\u0002",
 | |
|     "\u0002\u0002\u05f0\u05da\u0003\u0002\u0002\u0002\u05f1O\u0003\u0002",
 | |
|     "\u0002\u0002\u05f2\u05f3\u0007\u0007\u0002\u0002\u05f3\u05fa\u0005R",
 | |
|     "*\u0002\u05f4\u05f6\u0007\u0006\u0002\u0002\u05f5\u05f4\u0003\u0002",
 | |
|     "\u0002\u0002\u05f5\u05f6\u0003\u0002\u0002\u0002\u05f6\u05f7\u0003\u0002",
 | |
|     "\u0002\u0002\u05f7\u05f9\u0005R*\u0002\u05f8\u05f5\u0003\u0002\u0002",
 | |
|     "\u0002\u05f9\u05fc\u0003\u0002\u0002\u0002\u05fa\u05f8\u0003\u0002\u0002",
 | |
|     "\u0002\u05fa\u05fb\u0003\u0002\u0002\u0002\u05fb\u05fd\u0003\u0002\u0002",
 | |
|     "\u0002\u05fc\u05fa\u0003\u0002\u0002\u0002\u05fd\u05fe\u0007\b\u0002",
 | |
|     "\u0002\u05feQ\u0003\u0002\u0002\u0002\u05ff\u060d\u0005\u00dco\u0002",
 | |
|     "\u0600\u0601\u0005\u00dco\u0002\u0601\u0602\u0007\u0003\u0002\u0002",
 | |
|     "\u0602\u0607\u0005\u00acW\u0002\u0603\u0604\u0007\u0006\u0002\u0002",
 | |
|     "\u0604\u0606\u0005\u00acW\u0002\u0605\u0603\u0003\u0002\u0002\u0002",
 | |
|     "\u0606\u0609\u0003\u0002\u0002\u0002\u0607\u0605\u0003\u0002\u0002\u0002",
 | |
|     "\u0607\u0608\u0003\u0002\u0002\u0002\u0608\u060a\u0003\u0002\u0002\u0002",
 | |
|     "\u0609\u0607\u0003\u0002\u0002\u0002\u060a\u060b\u0007\u0004\u0002\u0002",
 | |
|     "\u060b\u060d\u0003\u0002\u0002\u0002\u060c\u05ff\u0003\u0002\u0002\u0002",
 | |
|     "\u060c\u0600\u0003\u0002\u0002\u0002\u060dS\u0003\u0002\u0002\u0002",
 | |
|     "\u060e\u060f\u0007\u0014\u0002\u0002\u060f\u0614\u0005d3\u0002\u0610",
 | |
|     "\u0611\u0007\u0006\u0002\u0002\u0611\u0613\u0005d3\u0002\u0612\u0610",
 | |
|     "\u0003\u0002\u0002\u0002\u0613\u0616\u0003\u0002\u0002\u0002\u0614\u0612",
 | |
|     "\u0003\u0002\u0002\u0002\u0614\u0615\u0003\u0002\u0002\u0002\u0615\u061a",
 | |
|     "\u0003\u0002\u0002\u0002\u0616\u0614\u0003\u0002\u0002\u0002\u0617\u0619",
 | |
|     "\u0005`1\u0002\u0618\u0617\u0003\u0002\u0002\u0002\u0619\u061c\u0003",
 | |
|     "\u0002\u0002\u0002\u061a\u0618\u0003\u0002\u0002\u0002\u061a\u061b\u0003",
 | |
|     "\u0002\u0002\u0002\u061b\u061e\u0003\u0002\u0002\u0002\u061c\u061a\u0003",
 | |
|     "\u0002\u0002\u0002\u061d\u061f\u0005Z.\u0002\u061e\u061d\u0003\u0002",
 | |
|     "\u0002\u0002\u061e\u061f\u0003\u0002\u0002\u0002\u061fU\u0003\u0002",
 | |
|     "\u0002\u0002\u0620\u0621\u0007\u001b\u0002\u0002\u0621\u0622\u0007\u001c",
 | |
|     "\u0002\u0002\u0622\u0627\u0005\u00a4S\u0002\u0623\u0624\u0007\u0006",
 | |
|     "\u0002\u0002\u0624\u0626\u0005\u00a4S\u0002\u0625\u0623\u0003\u0002",
 | |
|     "\u0002\u0002\u0626\u0629\u0003\u0002\u0002\u0002\u0627\u0625\u0003\u0002",
 | |
|     "\u0002\u0002\u0627\u0628\u0003\u0002\u0002\u0002\u0628\u063b\u0003\u0002",
 | |
|     "\u0002\u0002\u0629\u0627\u0003\u0002\u0002\u0002\u062a\u062b\u0007U",
 | |
|     "\u0002\u0002\u062b\u063c\u0007 \u0002\u0002\u062c\u062d\u0007U\u0002",
 | |
|     "\u0002\u062d\u063c\u0007\u001f\u0002\u0002\u062e\u062f\u0007\u001d\u0002",
 | |
|     "\u0002\u062f\u0630\u0007\u001e\u0002\u0002\u0630\u0631\u0007\u0003\u0002",
 | |
|     "\u0002\u0631\u0636\u0005X-\u0002\u0632\u0633\u0007\u0006\u0002\u0002",
 | |
|     "\u0633\u0635\u0005X-\u0002\u0634\u0632\u0003\u0002\u0002\u0002\u0635",
 | |
|     "\u0638\u0003\u0002\u0002\u0002\u0636\u0634\u0003\u0002\u0002\u0002\u0636",
 | |
|     "\u0637\u0003\u0002\u0002\u0002\u0637\u0639\u0003\u0002\u0002\u0002\u0638",
 | |
|     "\u0636\u0003\u0002\u0002\u0002\u0639\u063a\u0007\u0004\u0002\u0002\u063a",
 | |
|     "\u063c\u0003\u0002\u0002\u0002\u063b\u062a\u0003\u0002\u0002\u0002\u063b",
 | |
|     "\u062c\u0003\u0002\u0002\u0002\u063b\u062e\u0003\u0002\u0002\u0002\u063b",
 | |
|     "\u063c\u0003\u0002\u0002\u0002\u063c\u064d\u0003\u0002\u0002\u0002\u063d",
 | |
|     "\u063e\u0007\u001b\u0002\u0002\u063e\u063f\u0007\u001c\u0002\u0002\u063f",
 | |
|     "\u0640\u0007\u001d\u0002\u0002\u0640\u0641\u0007\u001e\u0002\u0002\u0641",
 | |
|     "\u0642\u0007\u0003\u0002\u0002\u0642\u0647\u0005X-\u0002\u0643\u0644",
 | |
|     "\u0007\u0006\u0002\u0002\u0644\u0646\u0005X-\u0002\u0645\u0643\u0003",
 | |
|     "\u0002\u0002\u0002\u0646\u0649\u0003\u0002\u0002\u0002\u0647\u0645\u0003",
 | |
|     "\u0002\u0002\u0002\u0647\u0648\u0003\u0002\u0002\u0002\u0648\u064a\u0003",
 | |
|     "\u0002\u0002\u0002\u0649\u0647\u0003\u0002\u0002\u0002\u064a\u064b\u0007",
 | |
|     "\u0004\u0002\u0002\u064b\u064d\u0003\u0002\u0002\u0002\u064c\u0620\u0003",
 | |
|     "\u0002\u0002\u0002\u064c\u063d\u0003\u0002\u0002\u0002\u064dW\u0003",
 | |
|     "\u0002\u0002\u0002\u064e\u0657\u0007\u0003\u0002\u0002\u064f\u0654\u0005",
 | |
|     "\u00a4S\u0002\u0650\u0651\u0007\u0006\u0002\u0002\u0651\u0653\u0005",
 | |
|     "\u00a4S\u0002\u0652\u0650\u0003\u0002\u0002\u0002\u0653\u0656\u0003",
 | |
|     "\u0002\u0002\u0002\u0654\u0652\u0003\u0002\u0002\u0002\u0654\u0655\u0003",
 | |
|     "\u0002\u0002\u0002\u0655\u0658\u0003\u0002\u0002\u0002\u0656\u0654\u0003",
 | |
|     "\u0002\u0002\u0002\u0657\u064f\u0003\u0002\u0002\u0002\u0657\u0658\u0003",
 | |
|     "\u0002\u0002\u0002\u0658\u0659\u0003\u0002\u0002\u0002\u0659\u065c\u0007",
 | |
|     "\u0004\u0002\u0002\u065a\u065c\u0005\u00a4S\u0002\u065b\u064e\u0003",
 | |
|     "\u0002\u0002\u0002\u065b\u065a\u0003\u0002\u0002\u0002\u065cY\u0003",
 | |
|     "\u0002\u0002\u0002\u065d\u065e\u0007F\u0002\u0002\u065e\u065f\u0007",
 | |
|     "\u0003\u0002\u0002\u065f\u0660\u0005\u00a2R\u0002\u0660\u0661\u0007",
 | |
|     "5\u0002\u0002\u0661\u0662\u0005\\/\u0002\u0662\u0663\u0007\'\u0002\u0002",
 | |
|     "\u0663\u0664\u0007\u0003\u0002\u0002\u0664\u0669\u0005^0\u0002\u0665",
 | |
|     "\u0666\u0007\u0006\u0002\u0002\u0666\u0668\u0005^0\u0002\u0667\u0665",
 | |
|     "\u0003\u0002\u0002\u0002\u0668\u066b\u0003\u0002\u0002\u0002\u0669\u0667",
 | |
|     "\u0003\u0002\u0002\u0002\u0669\u066a\u0003\u0002\u0002\u0002\u066a\u066c",
 | |
|     "\u0003\u0002\u0002\u0002\u066b\u0669\u0003\u0002\u0002\u0002\u066c\u066d",
 | |
|     "\u0007\u0004\u0002\u0002\u066d\u066e\u0007\u0004\u0002\u0002\u066e[",
 | |
|     "\u0003\u0002\u0002\u0002\u066f\u067c\u0005\u00dco\u0002\u0670\u0671",
 | |
|     "\u0007\u0003\u0002\u0002\u0671\u0676\u0005\u00dco\u0002\u0672\u0673",
 | |
|     "\u0007\u0006\u0002\u0002\u0673\u0675\u0005\u00dco\u0002\u0674\u0672",
 | |
|     "\u0003\u0002\u0002\u0002\u0675\u0678\u0003\u0002\u0002\u0002\u0676\u0674",
 | |
|     "\u0003\u0002\u0002\u0002\u0676\u0677\u0003\u0002\u0002\u0002\u0677\u0679",
 | |
|     "\u0003\u0002\u0002\u0002\u0678\u0676\u0003\u0002\u0002\u0002\u0679\u067a",
 | |
|     "\u0007\u0004\u0002\u0002\u067a\u067c\u0003\u0002\u0002\u0002\u067b\u066f",
 | |
|     "\u0003\u0002\u0002\u0002\u067b\u0670\u0003\u0002\u0002\u0002\u067c]",
 | |
|     "\u0003\u0002\u0002\u0002\u067d\u0682\u0005\u00a4S\u0002\u067e\u0680",
 | |
|     "\u0007\u0016\u0002\u0002\u067f\u067e\u0003\u0002\u0002\u0002\u067f\u0680",
 | |
|     "\u0003\u0002\u0002\u0002\u0680\u0681\u0003\u0002\u0002\u0002\u0681\u0683",
 | |
|     "\u0005\u00dco\u0002\u0682\u067f\u0003\u0002\u0002\u0002\u0682\u0683",
 | |
|     "\u0003\u0002\u0002\u0002\u0683_\u0003\u0002\u0002\u0002\u0684\u0685",
 | |
|     "\u0007G\u0002\u0002\u0685\u0687\u0007Z\u0002\u0002\u0686\u0688\u0007",
 | |
|     ">\u0002\u0002\u0687\u0686\u0003\u0002\u0002\u0002\u0687\u0688\u0003",
 | |
|     "\u0002\u0002\u0002\u0688\u0689\u0003\u0002\u0002\u0002\u0689\u068a\u0005",
 | |
|     "\u00dan\u0002\u068a\u0693\u0007\u0003\u0002\u0002\u068b\u0690\u0005",
 | |
|     "\u00a4S\u0002\u068c\u068d\u0007\u0006\u0002\u0002\u068d\u068f\u0005",
 | |
|     "\u00a4S\u0002\u068e\u068c\u0003\u0002\u0002\u0002\u068f\u0692\u0003",
 | |
|     "\u0002\u0002\u0002\u0690\u068e\u0003\u0002\u0002\u0002\u0690\u0691\u0003",
 | |
|     "\u0002\u0002\u0002\u0691\u0694\u0003\u0002\u0002\u0002\u0692\u0690\u0003",
 | |
|     "\u0002\u0002\u0002\u0693\u068b\u0003\u0002\u0002\u0002\u0693\u0694\u0003",
 | |
|     "\u0002\u0002\u0002\u0694\u0695\u0003\u0002\u0002\u0002\u0695\u0696\u0007",
 | |
|     "\u0004\u0002\u0002\u0696\u06a2\u0005\u00dco\u0002\u0697\u0699\u0007",
 | |
|     "\u0016\u0002\u0002\u0698\u0697\u0003\u0002\u0002\u0002\u0698\u0699\u0003",
 | |
|     "\u0002\u0002\u0002\u0699\u069a\u0003\u0002\u0002\u0002\u069a\u069f\u0005",
 | |
|     "\u00dco\u0002\u069b\u069c\u0007\u0006\u0002\u0002\u069c\u069e\u0005",
 | |
|     "\u00dco\u0002\u069d\u069b\u0003\u0002\u0002\u0002\u069e\u06a1\u0003",
 | |
|     "\u0002\u0002\u0002\u069f\u069d\u0003\u0002\u0002\u0002\u069f\u06a0\u0003",
 | |
|     "\u0002\u0002\u0002\u06a0\u06a3\u0003\u0002\u0002\u0002\u06a1\u069f\u0003",
 | |
|     "\u0002\u0002\u0002\u06a2\u0698\u0003\u0002\u0002\u0002\u06a2\u06a3\u0003",
 | |
|     "\u0002\u0002\u0002\u06a3a\u0003\u0002\u0002\u0002\u06a4\u06a5\t\r\u0002",
 | |
|     "\u0002\u06a5c\u0003\u0002\u0002\u0002\u06a6\u06aa\u0005|?\u0002\u06a7",
 | |
|     "\u06a9\u0005f4\u0002\u06a8\u06a7\u0003\u0002\u0002\u0002\u06a9\u06ac",
 | |
|     "\u0003\u0002\u0002\u0002\u06aa\u06a8\u0003\u0002\u0002\u0002\u06aa\u06ab",
 | |
|     "\u0003\u0002\u0002\u0002\u06abe\u0003\u0002\u0002\u0002\u06ac\u06aa",
 | |
|     "\u0003\u0002\u0002\u0002\u06ad\u06ae\u0005h5\u0002\u06ae\u06af\u0007",
 | |
|     "<\u0002\u0002\u06af\u06b1\u0005|?\u0002\u06b0\u06b2\u0005j6\u0002\u06b1",
 | |
|     "\u06b0\u0003\u0002\u0002\u0002\u06b1\u06b2\u0003\u0002\u0002\u0002\u06b2",
 | |
|     "\u06b9\u0003\u0002\u0002\u0002\u06b3\u06b4\u0007D\u0002\u0002\u06b4",
 | |
|     "\u06b5\u0005h5\u0002\u06b5\u06b6\u0007<\u0002\u0002\u06b6\u06b7\u0005",
 | |
|     "|?\u0002\u06b7\u06b9\u0003\u0002\u0002\u0002\u06b8\u06ad\u0003\u0002",
 | |
|     "\u0002\u0002\u06b8\u06b3\u0003\u0002\u0002\u0002\u06b9g\u0003\u0002",
 | |
|     "\u0002\u0002\u06ba\u06bc\u0007?\u0002\u0002\u06bb\u06ba\u0003\u0002",
 | |
|     "\u0002\u0002\u06bb\u06bc\u0003\u0002\u0002\u0002\u06bc\u06d1\u0003\u0002",
 | |
|     "\u0002\u0002\u06bd\u06d1\u0007=\u0002\u0002\u06be\u06c0\u0007@\u0002",
 | |
|     "\u0002\u06bf\u06c1\u0007>\u0002\u0002\u06c0\u06bf\u0003\u0002\u0002",
 | |
|     "\u0002\u06c0\u06c1\u0003\u0002\u0002\u0002\u06c1\u06d1\u0003\u0002\u0002",
 | |
|     "\u0002\u06c2\u06c3\u0007@\u0002\u0002\u06c3\u06d1\u0007A\u0002\u0002",
 | |
|     "\u06c4\u06c6\u0007B\u0002\u0002\u06c5\u06c7\u0007>\u0002\u0002\u06c6",
 | |
|     "\u06c5\u0003\u0002\u0002\u0002\u06c6\u06c7\u0003\u0002\u0002\u0002\u06c7",
 | |
|     "\u06d1\u0003\u0002\u0002\u0002\u06c8\u06ca\u0007C\u0002\u0002\u06c9",
 | |
|     "\u06cb\u0007>\u0002\u0002\u06ca\u06c9\u0003\u0002\u0002\u0002\u06ca",
 | |
|     "\u06cb\u0003\u0002\u0002\u0002\u06cb\u06d1\u0003\u0002\u0002\u0002\u06cc",
 | |
|     "\u06ce\u0007@\u0002\u0002\u06cd\u06cc\u0003\u0002\u0002\u0002\u06cd",
 | |
|     "\u06ce\u0003\u0002\u0002\u0002\u06ce\u06cf\u0003\u0002\u0002\u0002\u06cf",
 | |
|     "\u06d1\u0007\u00f5\u0002\u0002\u06d0\u06bb\u0003\u0002\u0002\u0002\u06d0",
 | |
|     "\u06bd\u0003\u0002\u0002\u0002\u06d0\u06be\u0003\u0002\u0002\u0002\u06d0",
 | |
|     "\u06c2\u0003\u0002\u0002\u0002\u06d0\u06c4\u0003\u0002\u0002\u0002\u06d0",
 | |
|     "\u06c8\u0003\u0002\u0002\u0002\u06d0\u06cd\u0003\u0002\u0002\u0002\u06d1",
 | |
|     "i\u0003\u0002\u0002\u0002\u06d2\u06d3\u0007E\u0002\u0002\u06d3\u06d7",
 | |
|     "\u0005\u00a6T\u0002\u06d4\u06d5\u0007\u00a7\u0002\u0002\u06d5\u06d7",
 | |
|     "\u0005p9\u0002\u06d6\u06d2\u0003\u0002\u0002\u0002\u06d6\u06d4\u0003",
 | |
|     "\u0002\u0002\u0002\u06d7k\u0003\u0002\u0002\u0002\u06d8\u06d9\u0007",
 | |
|     "s\u0002\u0002\u06d9\u06db\u0007\u0003\u0002\u0002\u06da\u06dc\u0005",
 | |
|     "n8\u0002\u06db\u06da\u0003\u0002\u0002\u0002\u06db\u06dc\u0003\u0002",
 | |
|     "\u0002\u0002\u06dc\u06dd\u0003\u0002\u0002\u0002\u06dd\u06de\u0007\u0004",
 | |
|     "\u0002\u0002\u06dem\u0003\u0002\u0002\u0002\u06df\u06e1\u0007\u0093",
 | |
|     "\u0002\u0002\u06e0\u06df\u0003\u0002\u0002\u0002\u06e0\u06e1\u0003\u0002",
 | |
|     "\u0002\u0002\u06e1\u06e2\u0003\u0002\u0002\u0002\u06e2\u06e3\t\u000e",
 | |
|     "\u0002\u0002\u06e3\u06f8\u0007\u009d\u0002\u0002\u06e4\u06e5\u0005\u00a4",
 | |
|     "S\u0002\u06e5\u06e6\u0007L\u0002\u0002\u06e6\u06f8\u0003\u0002\u0002",
 | |
|     "\u0002\u06e7\u06e8\u0007\u009e\u0002\u0002\u06e8\u06e9\u0007\u0109\u0002",
 | |
|     "\u0002\u06e9\u06ea\u0007\u009f\u0002\u0002\u06ea\u06eb\u0007\u00a0\u0002",
 | |
|     "\u0002\u06eb\u06f4\u0007\u0109\u0002\u0002\u06ec\u06f2\u0007E\u0002",
 | |
|     "\u0002\u06ed\u06f3\u0005\u00dco\u0002\u06ee\u06ef\u0005\u00dan\u0002",
 | |
|     "\u06ef\u06f0\u0007\u0003\u0002\u0002\u06f0\u06f1\u0007\u0004\u0002\u0002",
 | |
|     "\u06f1\u06f3\u0003\u0002\u0002\u0002\u06f2\u06ed\u0003\u0002\u0002\u0002",
 | |
|     "\u06f2\u06ee\u0003\u0002\u0002\u0002\u06f3\u06f5\u0003\u0002\u0002\u0002",
 | |
|     "\u06f4\u06ec\u0003\u0002\u0002\u0002\u06f4\u06f5\u0003\u0002\u0002\u0002",
 | |
|     "\u06f5\u06f8\u0003\u0002\u0002\u0002\u06f6\u06f8\u0005\u00a4S\u0002",
 | |
|     "\u06f7\u06e0\u0003\u0002\u0002\u0002\u06f7\u06e4\u0003\u0002\u0002\u0002",
 | |
|     "\u06f7\u06e7\u0003\u0002\u0002\u0002\u06f7\u06f6\u0003\u0002\u0002\u0002",
 | |
|     "\u06f8o\u0003\u0002\u0002\u0002\u06f9\u06fa\u0007\u0003\u0002\u0002",
 | |
|     "\u06fa\u06fb\u0005r:\u0002\u06fb\u06fc\u0007\u0004\u0002\u0002\u06fc",
 | |
|     "q\u0003\u0002\u0002\u0002\u06fd\u0702\u0005\u00dco\u0002\u06fe\u06ff",
 | |
|     "\u0007\u0006\u0002\u0002\u06ff\u0701\u0005\u00dco\u0002\u0700\u06fe",
 | |
|     "\u0003\u0002\u0002\u0002\u0701\u0704\u0003\u0002\u0002\u0002\u0702\u0700",
 | |
|     "\u0003\u0002\u0002\u0002\u0702\u0703\u0003\u0002\u0002\u0002\u0703s",
 | |
|     "\u0003\u0002\u0002\u0002\u0704\u0702\u0003\u0002\u0002\u0002\u0705\u0706",
 | |
|     "\u0007\u0003\u0002\u0002\u0706\u070b\u0005v<\u0002\u0707\u0708\u0007",
 | |
|     "\u0006\u0002\u0002\u0708\u070a\u0005v<\u0002\u0709\u0707\u0003\u0002",
 | |
|     "\u0002\u0002\u070a\u070d\u0003\u0002\u0002\u0002\u070b\u0709\u0003\u0002",
 | |
|     "\u0002\u0002\u070b\u070c\u0003\u0002\u0002\u0002\u070c\u070e\u0003\u0002",
 | |
|     "\u0002\u0002\u070d\u070b\u0003\u0002\u0002\u0002\u070e\u070f\u0007\u0004",
 | |
|     "\u0002\u0002\u070fu\u0003\u0002\u0002\u0002\u0710\u0712\u0005\u00dc",
 | |
|     "o\u0002\u0711\u0713\t\u000b\u0002\u0002\u0712\u0711\u0003\u0002\u0002",
 | |
|     "\u0002\u0712\u0713\u0003\u0002\u0002\u0002\u0713w\u0003\u0002\u0002",
 | |
|     "\u0002\u0714\u0715\u0007\u0003\u0002\u0002\u0715\u071a\u0005z>\u0002",
 | |
|     "\u0716\u0717\u0007\u0006\u0002\u0002\u0717\u0719\u0005z>\u0002\u0718",
 | |
|     "\u0716\u0003\u0002\u0002\u0002\u0719\u071c\u0003\u0002\u0002\u0002\u071a",
 | |
|     "\u0718\u0003\u0002\u0002\u0002\u071a\u071b\u0003\u0002\u0002\u0002\u071b",
 | |
|     "\u071d\u0003\u0002\u0002\u0002\u071c\u071a\u0003\u0002\u0002\u0002\u071d",
 | |
|     "\u071e\u0007\u0004\u0002\u0002\u071ey\u0003\u0002\u0002\u0002\u071f",
 | |
|     "\u0722\u0005\u00dco\u0002\u0720\u0721\u0007z\u0002\u0002\u0721\u0723",
 | |
|     "\u0007\u0105\u0002\u0002\u0722\u0720\u0003\u0002\u0002\u0002\u0722\u0723",
 | |
|     "\u0003\u0002\u0002\u0002\u0723{\u0003\u0002\u0002\u0002\u0724\u0727",
 | |
|     "\u0005\u009cO\u0002\u0725\u0728\u0005l7\u0002\u0726\u0728\u0005~@\u0002",
 | |
|     "\u0727\u0725\u0003\u0002\u0002\u0002\u0727\u0726\u0003\u0002\u0002\u0002",
 | |
|     "\u0727\u0728\u0003\u0002\u0002\u0002\u0728\u0729\u0003\u0002\u0002\u0002",
 | |
|     "\u0729\u072a\u0005\u0098M\u0002\u072a\u073e\u0003\u0002\u0002\u0002",
 | |
|     "\u072b\u072c\u0007\u0003\u0002\u0002\u072c\u072d\u0005B\"\u0002\u072d",
 | |
|     "\u072f\u0007\u0004\u0002\u0002\u072e\u0730\u0005l7\u0002\u072f\u072e",
 | |
|     "\u0003\u0002\u0002\u0002\u072f\u0730\u0003\u0002\u0002\u0002\u0730\u0731",
 | |
|     "\u0003\u0002\u0002\u0002\u0731\u0732\u0005\u0098M\u0002\u0732\u073e",
 | |
|     "\u0003\u0002\u0002\u0002\u0733\u0734\u0007\u0003\u0002\u0002\u0734\u0735",
 | |
|     "\u0005d3\u0002\u0735\u0737\u0007\u0004\u0002\u0002\u0736\u0738\u0005",
 | |
|     "l7\u0002\u0737\u0736\u0003\u0002\u0002\u0002\u0737\u0738\u0003\u0002",
 | |
|     "\u0002\u0002\u0738\u0739\u0003\u0002\u0002\u0002\u0739\u073a\u0005\u0098",
 | |
|     "M\u0002\u073a\u073e\u0003\u0002\u0002\u0002\u073b\u073e\u0005\u0094",
 | |
|     "K\u0002\u073c\u073e\u0005\u0096L\u0002\u073d\u0724\u0003\u0002\u0002",
 | |
|     "\u0002\u073d\u072b\u0003\u0002\u0002\u0002\u073d\u0733\u0003\u0002\u0002",
 | |
|     "\u0002\u073d\u073b\u0003\u0002\u0002\u0002\u073d\u073c\u0003\u0002\u0002",
 | |
|     "\u0002\u073e}\u0003\u0002\u0002\u0002\u073f\u0740\u0007\u00fa\u0002",
 | |
|     "\u0002\u0740\u074b\u0007\u0003\u0002\u0002\u0741\u0742\u0007J\u0002",
 | |
|     "\u0002\u0742\u0743\u0007\u001c\u0002\u0002\u0743\u0748\u0005\u00a4S",
 | |
|     "\u0002\u0744\u0745\u0007\u0006\u0002\u0002\u0745\u0747\u0005\u00a4S",
 | |
|     "\u0002\u0746\u0744\u0003\u0002\u0002\u0002\u0747\u074a\u0003\u0002\u0002",
 | |
|     "\u0002\u0748\u0746\u0003\u0002\u0002\u0002\u0748\u0749\u0003\u0002\u0002",
 | |
|     "\u0002\u0749\u074c\u0003\u0002\u0002\u0002\u074a\u0748\u0003\u0002\u0002",
 | |
|     "\u0002\u074b\u0741\u0003\u0002\u0002\u0002\u074b\u074c\u0003\u0002\u0002",
 | |
|     "\u0002\u074c\u0757\u0003\u0002\u0002\u0002\u074d\u074e\u0007!\u0002",
 | |
|     "\u0002\u074e\u074f\u0007\u001c\u0002\u0002\u074f\u0754\u0005L\'\u0002",
 | |
|     "\u0750\u0751\u0007\u0006\u0002\u0002\u0751\u0753\u0005L\'\u0002\u0752",
 | |
|     "\u0750\u0003\u0002\u0002\u0002\u0753\u0756\u0003\u0002\u0002\u0002\u0754",
 | |
|     "\u0752\u0003\u0002\u0002\u0002\u0754\u0755\u0003\u0002\u0002\u0002\u0755",
 | |
|     "\u0758\u0003\u0002\u0002\u0002\u0756\u0754\u0003\u0002\u0002\u0002\u0757",
 | |
|     "\u074d\u0003\u0002\u0002\u0002\u0757\u0758\u0003\u0002\u0002\u0002\u0758",
 | |
|     "\u0762\u0003\u0002\u0002\u0002\u0759\u075a\u0007\u00fb\u0002\u0002\u075a",
 | |
|     "\u075f\u0005\u0080A\u0002\u075b\u075c\u0007\u0006\u0002\u0002\u075c",
 | |
|     "\u075e\u0005\u0080A\u0002\u075d\u075b\u0003\u0002\u0002\u0002\u075e",
 | |
|     "\u0761\u0003\u0002\u0002\u0002\u075f\u075d\u0003\u0002\u0002\u0002\u075f",
 | |
|     "\u0760\u0003\u0002\u0002\u0002\u0760\u0763\u0003\u0002\u0002\u0002\u0761",
 | |
|     "\u075f\u0003\u0002\u0002\u0002\u0762\u0759\u0003\u0002\u0002\u0002\u0762",
 | |
|     "\u0763\u0003\u0002\u0002\u0002\u0763\u0768\u0003\u0002\u0002\u0002\u0764",
 | |
|     "\u0765\u0007\u00fc\u0002\u0002\u0765\u0766\u0007T\u0002\u0002\u0766",
 | |
|     "\u0767\u0007\u00fd\u0002\u0002\u0767\u0769\u0007\u00fe\u0002\u0002\u0768",
 | |
|     "\u0764\u0003\u0002\u0002\u0002\u0768\u0769\u0003\u0002\u0002\u0002\u0769",
 | |
|     "\u0781\u0003\u0002\u0002\u0002\u076a\u076b\u0007R\u0002\u0002\u076b",
 | |
|     "\u077f\u0007\u00fe\u0002\u0002\u076c\u076d\u0007\u00ff\u0002\u0002\u076d",
 | |
|     "\u076e\u0007r\u0002\u0002\u076e\u076f\u0007\u0100\u0002\u0002\u076f",
 | |
|     "\u0780\u0007T\u0002\u0002\u0770\u0771\u0007\u00ff\u0002\u0002\u0771",
 | |
|     "\u0772\u0007\u0101\u0002\u0002\u0772\u0773\u0007S\u0002\u0002\u0773",
 | |
|     "\u0780\u0007T\u0002\u0002\u0774\u0775\u0007\u00ff\u0002\u0002\u0775",
 | |
|     "\u0776\u0007r\u0002\u0002\u0776\u0777\u0007Q\u0002\u0002\u0777\u0780",
 | |
|     "\u0005\u0084C\u0002\u0778\u0779\u0007\u00ff\u0002\u0002\u0779\u077a",
 | |
|     "\u0007r\u0002\u0002\u077a\u077b\u0007S\u0002\u0002\u077b\u0780\u0005",
 | |
|     "\u0084C\u0002\u077c\u077d\u0007\u00ff\u0002\u0002\u077d\u077e\u0007",
 | |
|     "r\u0002\u0002\u077e\u0780\u0005\u0084C\u0002\u077f\u076c\u0003\u0002",
 | |
|     "\u0002\u0002\u077f\u0770\u0003\u0002\u0002\u0002\u077f\u0774\u0003\u0002",
 | |
|     "\u0002\u0002\u077f\u0778\u0003\u0002\u0002\u0002\u077f\u077c\u0003\u0002",
 | |
|     "\u0002\u0002\u0780\u0782\u0003\u0002\u0002\u0002\u0781\u076a\u0003\u0002",
 | |
|     "\u0002\u0002\u0781\u0782\u0003\u0002\u0002\u0002\u0782\u0783\u0003\u0002",
 | |
|     "\u0002\u0002\u0783\u0784\u0007\u0102\u0002\u0002\u0784\u0785\u0007\u0003",
 | |
|     "\u0002\u0002\u0785\u0786\u0005\u0086D\u0002\u0786\u0789\u0007\u0004",
 | |
|     "\u0002\u0002\u0787\u0788\u0007\u0103\u0002\u0002\u0788\u078a\u0005\u00b8",
 | |
|     "]\u0002\u0789\u0787\u0003\u0002\u0002\u0002\u0789\u078a\u0003\u0002",
 | |
|     "\u0002\u0002\u078a\u078b\u0003\u0002\u0002\u0002\u078b\u078c\u0007\u0104",
 | |
|     "\u0002\u0002\u078c\u078d\u0005\u0084C\u0002\u078d\u078e\u0007\u0016",
 | |
|     "\u0002\u0002\u078e\u0796\u0005\u0082B\u0002\u078f\u0790\u0007\u0006",
 | |
|     "\u0002\u0002\u0790\u0791\u0005\u0084C\u0002\u0791\u0792\u0007\u0016",
 | |
|     "\u0002\u0002\u0792\u0793\u0005\u0082B\u0002\u0793\u0795\u0003\u0002",
 | |
|     "\u0002\u0002\u0794\u078f\u0003\u0002\u0002\u0002\u0795\u0798\u0003\u0002",
 | |
|     "\u0002\u0002\u0796\u0794\u0003\u0002\u0002\u0002\u0796\u0797\u0003\u0002",
 | |
|     "\u0002\u0002\u0797\u0799\u0003\u0002\u0002\u0002\u0798\u0796\u0003\u0002",
 | |
|     "\u0002\u0002\u0799\u079a\u0007\u0004\u0002\u0002\u079a\u007f\u0003\u0002",
 | |
|     "\u0002\u0002\u079b\u079c\u0005\u00a4S\u0002\u079c\u079d\u0007\u0016",
 | |
|     "\u0002\u0002\u079d\u079e\u0005\u00dep\u0002\u079e\u0081\u0003\u0002",
 | |
|     "\u0002\u0002\u079f\u07a0\u0005\u00a4S\u0002\u07a0\u0083\u0003\u0002",
 | |
|     "\u0002\u0002\u07a1\u07a2\u0005\u00dco\u0002\u07a2\u0085\u0003\u0002",
 | |
|     "\u0002\u0002\u07a3\u07a8\u0005\u0088E\u0002\u07a4\u07a5\u0007\u009a",
 | |
|     "\u0002\u0002\u07a5\u07a7\u0005\u0088E\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\u0087\u0003\u0002",
 | |
|     "\u0002\u0002\u07aa\u07a8\u0003\u0002\u0002\u0002\u07ab\u07af\u0005\u008a",
 | |
|     "F\u0002\u07ac\u07ae\u0005\u008aF\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\u0089\u0003\u0002\u0002",
 | |
|     "\u0002\u07b1\u07af\u0003\u0002\u0002\u0002\u07b2\u07b4\u0005\u0084C",
 | |
|     "\u0002\u07b3\u07b5\u0005\u008cG\u0002\u07b4\u07b3\u0003\u0002\u0002",
 | |
|     "\u0002\u07b4\u07b5\u0003\u0002\u0002\u0002\u07b5\u008b\u0003\u0002\u0002",
 | |
|     "\u0002\u07b6\u07cd\u0007\u0094\u0002\u0002\u07b7\u07cd\u0007\t\u0002",
 | |
|     "\u0002\u07b8\u07cd\u0007\u0092\u0002\u0002\u07b9\u07cd\u0007\n\u0002",
 | |
|     "\u0002\u07ba\u07cd\u0007\u000b\u0002\u0002\u07bb\u07cd\u0007\f\u0002",
 | |
|     "\u0002\u07bc\u07be\u0007\r\u0002\u0002\u07bd\u07bf\u0005\u008eH\u0002",
 | |
|     "\u07be\u07bd\u0003\u0002\u0002\u0002\u07be\u07bf\u0003\u0002\u0002\u0002",
 | |
|     "\u07bf\u07c0\u0003\u0002\u0002\u0002\u07c0\u07c2\u0007\u0006\u0002\u0002",
 | |
|     "\u07c1\u07c3\u0005\u0090I\u0002\u07c2\u07c1\u0003\u0002\u0002\u0002",
 | |
|     "\u07c2\u07c3\u0003\u0002\u0002\u0002\u07c3\u07c4\u0003\u0002\u0002\u0002",
 | |
|     "\u07c4\u07c6\u0007\u000e\u0002\u0002\u07c5\u07c7\u0007\u000b\u0002\u0002",
 | |
|     "\u07c6\u07c5\u0003\u0002\u0002\u0002\u07c6\u07c7\u0003\u0002\u0002\u0002",
 | |
|     "\u07c7\u07cd\u0003\u0002\u0002\u0002\u07c8\u07c9\u0007\r\u0002\u0002",
 | |
|     "\u07c9\u07ca\u0005\u0092J\u0002\u07ca\u07cb\u0007\u000e\u0002\u0002",
 | |
|     "\u07cb\u07cd\u0003\u0002\u0002\u0002\u07cc\u07b6\u0003\u0002\u0002\u0002",
 | |
|     "\u07cc\u07b7\u0003\u0002\u0002\u0002\u07cc\u07b8\u0003\u0002\u0002\u0002",
 | |
|     "\u07cc\u07b9\u0003\u0002\u0002\u0002\u07cc\u07ba\u0003\u0002\u0002\u0002",
 | |
|     "\u07cc\u07bb\u0003\u0002\u0002\u0002\u07cc\u07bc\u0003\u0002\u0002\u0002",
 | |
|     "\u07cc\u07c8\u0003\u0002\u0002\u0002\u07cd\u008d\u0003\u0002\u0002\u0002",
 | |
|     "\u07ce\u07cf\u0007\u0109\u0002\u0002\u07cf\u008f\u0003\u0002\u0002\u0002",
 | |
|     "\u07d0\u07d1\u0007\u0109\u0002\u0002\u07d1\u0091\u0003\u0002\u0002\u0002",
 | |
|     "\u07d2\u07d3\u0007\u0109\u0002\u0002\u07d3\u0093\u0003\u0002\u0002\u0002",
 | |
|     "\u07d4\u07d5\u0007V\u0002\u0002\u07d5\u07da\u0005\u00a4S\u0002\u07d6",
 | |
|     "\u07d7\u0007\u0006\u0002\u0002\u07d7\u07d9\u0005\u00a4S\u0002\u07d8",
 | |
|     "\u07d6\u0003\u0002\u0002\u0002\u07d9\u07dc\u0003\u0002\u0002\u0002\u07da",
 | |
|     "\u07d8\u0003\u0002\u0002\u0002\u07da\u07db\u0003\u0002\u0002\u0002\u07db",
 | |
|     "\u07dd\u0003\u0002\u0002\u0002\u07dc\u07da\u0003\u0002\u0002\u0002\u07dd",
 | |
|     "\u07de\u0005\u0098M\u0002\u07de\u0095\u0003\u0002\u0002\u0002\u07df",
 | |
|     "\u07e0\u0005\u00dco\u0002\u07e0\u07e9\u0007\u0003\u0002\u0002\u07e1",
 | |
|     "\u07e6\u0005\u00a4S\u0002\u07e2\u07e3\u0007\u0006\u0002\u0002\u07e3",
 | |
|     "\u07e5\u0005\u00a4S\u0002\u07e4\u07e2\u0003\u0002\u0002\u0002\u07e5",
 | |
|     "\u07e8\u0003\u0002\u0002\u0002\u07e6\u07e4\u0003\u0002\u0002\u0002\u07e6",
 | |
|     "\u07e7\u0003\u0002\u0002\u0002\u07e7\u07ea\u0003\u0002\u0002\u0002\u07e8",
 | |
|     "\u07e6\u0003\u0002\u0002\u0002\u07e9\u07e1\u0003\u0002\u0002\u0002\u07e9",
 | |
|     "\u07ea\u0003\u0002\u0002\u0002\u07ea\u07eb\u0003\u0002\u0002\u0002\u07eb",
 | |
|     "\u07ec\u0007\u0004\u0002\u0002\u07ec\u07ed\u0005\u0098M\u0002\u07ed",
 | |
|     "\u0097\u0003\u0002\u0002\u0002\u07ee\u07f0\u0007\u0016\u0002\u0002\u07ef",
 | |
|     "\u07ee\u0003\u0002\u0002\u0002\u07ef\u07f0\u0003\u0002\u0002\u0002\u07f0",
 | |
|     "\u07f1\u0003\u0002\u0002\u0002\u07f1\u07f3\u0005\u00dep\u0002\u07f2",
 | |
|     "\u07f4\u0005p9\u0002\u07f3\u07f2\u0003\u0002\u0002\u0002\u07f3\u07f4",
 | |
|     "\u0003\u0002\u0002\u0002\u07f4\u07f6\u0003\u0002\u0002\u0002\u07f5\u07ef",
 | |
|     "\u0003\u0002\u0002\u0002\u07f5\u07f6\u0003\u0002\u0002\u0002\u07f6\u0099",
 | |
|     "\u0003\u0002\u0002\u0002\u07f7\u07f8\u0007T\u0002\u0002\u07f8\u07f9",
 | |
|     "\u0007a\u0002\u0002\u07f9\u07fa\u0007\u00a8\u0002\u0002\u07fa\u07fe",
 | |
|     "\u0007\u0105\u0002\u0002\u07fb\u07fc\u0007U\u0002\u0002\u07fc\u07fd",
 | |
|     "\u0007\u00a9\u0002\u0002\u07fd\u07ff\u0005.\u0018\u0002\u07fe\u07fb",
 | |
|     "\u0003\u0002\u0002\u0002\u07fe\u07ff\u0003\u0002\u0002\u0002\u07ff\u0829",
 | |
|     "\u0003\u0002\u0002\u0002\u0800\u0801\u0007T\u0002\u0002\u0801\u0802",
 | |
|     "\u0007a\u0002\u0002\u0802\u080c\u0007\u00ac\u0002\u0002\u0803\u0804",
 | |
|     "\u0007\u00ad\u0002\u0002\u0804\u0805\u0007\u00ae\u0002\u0002\u0805\u0806",
 | |
|     "\u0007\u001c\u0002\u0002\u0806\u080a\u0007\u0105\u0002\u0002\u0807\u0808",
 | |
|     "\u0007\u00b2\u0002\u0002\u0808\u0809\u0007\u001c\u0002\u0002\u0809\u080b",
 | |
|     "\u0007\u0105\u0002\u0002\u080a\u0807\u0003\u0002\u0002\u0002\u080a\u080b",
 | |
|     "\u0003\u0002\u0002\u0002\u080b\u080d\u0003\u0002\u0002\u0002\u080c\u0803",
 | |
|     "\u0003\u0002\u0002\u0002\u080c\u080d\u0003\u0002\u0002\u0002\u080d\u0813",
 | |
|     "\u0003\u0002\u0002\u0002\u080e\u080f\u0007\u00af\u0002\u0002\u080f\u0810",
 | |
|     "\u0007\u00b0\u0002\u0002\u0810\u0811\u0007\u00ae\u0002\u0002\u0811\u0812",
 | |
|     "\u0007\u001c\u0002\u0002\u0812\u0814\u0007\u0105\u0002\u0002\u0813\u080e",
 | |
|     "\u0003\u0002\u0002\u0002\u0813\u0814\u0003\u0002\u0002\u0002\u0814\u081a",
 | |
|     "\u0003\u0002\u0002\u0002\u0815\u0816\u0007x\u0002\u0002\u0816\u0817",
 | |
|     "\u0007\u00b1\u0002\u0002\u0817\u0818\u0007\u00ae\u0002\u0002\u0818\u0819",
 | |
|     "\u0007\u001c\u0002\u0002\u0819\u081b\u0007\u0105\u0002\u0002\u081a\u0815",
 | |
|     "\u0003\u0002\u0002\u0002\u081a\u081b\u0003\u0002\u0002\u0002\u081b\u0820",
 | |
|     "\u0003\u0002\u0002\u0002\u081c\u081d\u0007\u00b3\u0002\u0002\u081d\u081e",
 | |
|     "\u0007\u00ae\u0002\u0002\u081e\u081f\u0007\u001c\u0002\u0002\u081f\u0821",
 | |
|     "\u0007\u0105\u0002\u0002\u0820\u081c\u0003\u0002\u0002\u0002\u0820\u0821",
 | |
|     "\u0003\u0002\u0002\u0002\u0821\u0826\u0003\u0002\u0002\u0002\u0822\u0823",
 | |
|     "\u0007/\u0002\u0002\u0823\u0824\u0007\u00e1\u0002\u0002\u0824\u0825",
 | |
|     "\u0007\u0016\u0002\u0002\u0825\u0827\u0007\u0105\u0002\u0002\u0826\u0822",
 | |
|     "\u0003\u0002\u0002\u0002\u0826\u0827\u0003\u0002\u0002\u0002\u0827\u0829",
 | |
|     "\u0003\u0002\u0002\u0002\u0828\u07f7\u0003\u0002\u0002\u0002\u0828\u0800",
 | |
|     "\u0003\u0002\u0002\u0002\u0829\u009b\u0003\u0002\u0002\u0002\u082a\u082b",
 | |
|     "\u0005\u00dco\u0002\u082b\u082c\u0007\u0005\u0002\u0002\u082c\u082e",
 | |
|     "\u0003\u0002\u0002\u0002\u082d\u082a\u0003\u0002\u0002\u0002\u082d\u082e",
 | |
|     "\u0003\u0002\u0002\u0002\u082e\u082f\u0003\u0002\u0002\u0002\u082f\u0846",
 | |
|     "\u0005\u00dco\u0002\u0830\u0831\u0007G\u0002\u0002\u0831\u0832\u0007",
 | |
|     "X\u0002\u0002\u0832\u0833\u0007\u0003\u0002\u0002\u0833\u0834\u0005",
 | |
|     "\u009eP\u0002\u0834\u0835\u0007\u0003\u0002\u0002\u0835\u083a\u0005",
 | |
|     "\u00a4S\u0002\u0836\u0837\u0007\u0006\u0002\u0002\u0837\u0839\u0005",
 | |
|     "\u00a4S\u0002\u0838\u0836\u0003\u0002\u0002\u0002\u0839\u083c\u0003",
 | |
|     "\u0002\u0002\u0002\u083a\u0838\u0003\u0002\u0002\u0002\u083a\u083b\u0003",
 | |
|     "\u0002\u0002\u0002\u083b\u083d\u0003\u0002\u0002\u0002\u083c\u083a\u0003",
 | |
|     "\u0002\u0002\u0002\u083d\u083e\u0007\u0004\u0002\u0002\u083e\u083f\u0007",
 | |
|     "\u0004\u0002\u0002\u083f\u0846\u0003\u0002\u0002\u0002\u0840\u0841\u0007",
 | |
|     "\u00f9\u0002\u0002\u0841\u0842\u0007\u0003\u0002\u0002\u0842\u0843\u0005",
 | |
|     "\u00a4S\u0002\u0843\u0844\u0007\u0004\u0002\u0002\u0844\u0846\u0003",
 | |
|     "\u0002\u0002\u0002\u0845\u082d\u0003\u0002\u0002\u0002\u0845\u0830\u0003",
 | |
|     "\u0002\u0002\u0002\u0845\u0840\u0003\u0002\u0002\u0002\u0846\u009d\u0003",
 | |
|     "\u0002\u0002\u0002\u0847\u0848\u0005\u00dco\u0002\u0848\u0849\u0007",
 | |
|     "\u0005\u0002\u0002\u0849\u084b\u0003\u0002\u0002\u0002\u084a\u0847\u0003",
 | |
|     "\u0002\u0002\u0002\u084a\u084b\u0003\u0002\u0002\u0002\u084b\u084c\u0003",
 | |
|     "\u0002\u0002\u0002\u084c\u084d\u0005\u00dco\u0002\u084d\u009f\u0003",
 | |
|     "\u0002\u0002\u0002\u084e\u0856\u0005\u00a4S\u0002\u084f\u0851\u0007",
 | |
|     "\u0016\u0002\u0002\u0850\u084f\u0003\u0002\u0002\u0002\u0850\u0851\u0003",
 | |
|     "\u0002\u0002\u0002\u0851\u0854\u0003\u0002\u0002\u0002\u0852\u0855\u0005",
 | |
|     "\u00dco\u0002\u0853\u0855\u0005p9\u0002\u0854\u0852\u0003\u0002\u0002",
 | |
|     "\u0002\u0854\u0853\u0003\u0002\u0002\u0002\u0855\u0857\u0003\u0002\u0002",
 | |
|     "\u0002\u0856\u0850\u0003\u0002\u0002\u0002\u0856\u0857\u0003\u0002\u0002",
 | |
|     "\u0002\u0857\u00a1\u0003\u0002\u0002\u0002\u0858\u085d\u0005\u00a0Q",
 | |
|     "\u0002\u0859\u085a\u0007\u0006\u0002\u0002\u085a\u085c\u0005\u00a0Q",
 | |
|     "\u0002\u085b\u0859\u0003\u0002\u0002\u0002\u085c\u085f\u0003\u0002\u0002",
 | |
|     "\u0002\u085d\u085b\u0003\u0002\u0002\u0002\u085d\u085e\u0003\u0002\u0002",
 | |
|     "\u0002\u085e\u00a3\u0003\u0002\u0002\u0002\u085f\u085d\u0003\u0002\u0002",
 | |
|     "\u0002\u0860\u0861\u0005\u00a6T\u0002\u0861\u00a5\u0003\u0002\u0002",
 | |
|     "\u0002\u0862\u0863\bT\u0001\u0002\u0863\u0864\u0007(\u0002\u0002\u0864",
 | |
|     "\u086f\u0005\u00a6T\u0007\u0865\u0866\u0007*\u0002\u0002\u0866\u0867",
 | |
|     "\u0007\u0003\u0002\u0002\u0867\u0868\u0005\u001a\u000e\u0002\u0868\u0869",
 | |
|     "\u0007\u0004\u0002\u0002\u0869\u086f\u0003\u0002\u0002\u0002\u086a\u086c",
 | |
|     "\u0005\u00aaV\u0002\u086b\u086d\u0005\u00a8U\u0002\u086c\u086b\u0003",
 | |
|     "\u0002\u0002\u0002\u086c\u086d\u0003\u0002\u0002\u0002\u086d\u086f\u0003",
 | |
|     "\u0002\u0002\u0002\u086e\u0862\u0003\u0002\u0002\u0002\u086e\u0865\u0003",
 | |
|     "\u0002\u0002\u0002\u086e\u086a\u0003\u0002\u0002\u0002\u086f\u0878\u0003",
 | |
|     "\u0002\u0002\u0002\u0870\u0871\f\u0004\u0002\u0002\u0871\u0872\u0007",
 | |
|     "&\u0002\u0002\u0872\u0877\u0005\u00a6T\u0005\u0873\u0874\f\u0003\u0002",
 | |
|     "\u0002\u0874\u0875\u0007%\u0002\u0002\u0875\u0877\u0005\u00a6T\u0004",
 | |
|     "\u0876\u0870\u0003\u0002\u0002\u0002\u0876\u0873\u0003\u0002\u0002\u0002",
 | |
|     "\u0877\u087a\u0003\u0002\u0002\u0002\u0878\u0876\u0003\u0002\u0002\u0002",
 | |
|     "\u0878\u0879\u0003\u0002\u0002\u0002\u0879\u00a7\u0003\u0002\u0002\u0002",
 | |
|     "\u087a\u0878\u0003\u0002\u0002\u0002\u087b\u087d\u0007(\u0002\u0002",
 | |
|     "\u087c\u087b\u0003\u0002\u0002\u0002\u087c\u087d\u0003\u0002\u0002\u0002",
 | |
|     "\u087d\u087e\u0003\u0002\u0002\u0002\u087e\u087f\u0007+\u0002\u0002",
 | |
|     "\u087f\u0880\u0005\u00aaV\u0002\u0880\u0881\u0007&\u0002\u0002\u0881",
 | |
|     "\u0882\u0005\u00aaV\u0002\u0882\u08ac\u0003\u0002\u0002\u0002\u0883",
 | |
|     "\u0885\u0007(\u0002\u0002\u0884\u0883\u0003\u0002\u0002\u0002\u0884",
 | |
|     "\u0885\u0003\u0002\u0002\u0002\u0885\u0886\u0003\u0002\u0002\u0002\u0886",
 | |
|     "\u0887\u0007\'\u0002\u0002\u0887\u0888\u0007\u0003\u0002\u0002\u0888",
 | |
|     "\u088d\u0005\u00a4S\u0002\u0889\u088a\u0007\u0006\u0002\u0002\u088a",
 | |
|     "\u088c\u0005\u00a4S\u0002\u088b\u0889\u0003\u0002\u0002\u0002\u088c",
 | |
|     "\u088f\u0003\u0002\u0002\u0002\u088d\u088b\u0003\u0002\u0002\u0002\u088d",
 | |
|     "\u088e\u0003\u0002\u0002\u0002\u088e\u0890\u0003\u0002\u0002\u0002\u088f",
 | |
|     "\u088d\u0003\u0002\u0002\u0002\u0890\u0891\u0007\u0004\u0002\u0002\u0891",
 | |
|     "\u08ac\u0003\u0002\u0002\u0002\u0892\u0894\u0007(\u0002\u0002\u0893",
 | |
|     "\u0892\u0003\u0002\u0002\u0002\u0893\u0894\u0003\u0002\u0002\u0002\u0894",
 | |
|     "\u0895\u0003\u0002\u0002\u0002\u0895\u0896\u0007\'\u0002\u0002\u0896",
 | |
|     "\u0897\u0007\u0003\u0002\u0002\u0897\u0898\u0005\u001a\u000e\u0002\u0898",
 | |
|     "\u0899\u0007\u0004\u0002\u0002\u0899\u08ac\u0003\u0002\u0002\u0002\u089a",
 | |
|     "\u089c\u0007(\u0002\u0002\u089b\u089a\u0003\u0002\u0002\u0002\u089b",
 | |
|     "\u089c\u0003\u0002\u0002\u0002\u089c\u089d\u0003\u0002\u0002\u0002\u089d",
 | |
|     "\u089e\t\u000f\u0002\u0002\u089e\u08ac\u0005\u00aaV\u0002\u089f\u08a1",
 | |
|     "\u0007.\u0002\u0002\u08a0\u08a2\u0007(\u0002\u0002\u08a1\u08a0\u0003",
 | |
|     "\u0002\u0002\u0002\u08a1\u08a2\u0003\u0002\u0002\u0002\u08a2\u08a3\u0003",
 | |
|     "\u0002\u0002\u0002\u08a3\u08ac\u0007/\u0002\u0002\u08a4\u08a6\u0007",
 | |
|     ".\u0002\u0002\u08a5\u08a7\u0007(\u0002\u0002\u08a6\u08a5\u0003\u0002",
 | |
|     "\u0002\u0002\u08a6\u08a7\u0003\u0002\u0002\u0002\u08a7\u08a8\u0003\u0002",
 | |
|     "\u0002\u0002\u08a8\u08a9\u0007\u0019\u0002\u0002\u08a9\u08aa\u0007\u0014",
 | |
|     "\u0002\u0002\u08aa\u08ac\u0005\u00aaV\u0002\u08ab\u087c\u0003\u0002",
 | |
|     "\u0002\u0002\u08ab\u0884\u0003\u0002\u0002\u0002\u08ab\u0893\u0003\u0002",
 | |
|     "\u0002\u0002\u08ab\u089b\u0003\u0002\u0002\u0002\u08ab\u089f\u0003\u0002",
 | |
|     "\u0002\u0002\u08ab\u08a4\u0003\u0002\u0002\u0002\u08ac\u00a9\u0003\u0002",
 | |
|     "\u0002\u0002\u08ad\u08ae\bV\u0001\u0002\u08ae\u08b2\u0005\u00acW\u0002",
 | |
|     "\u08af\u08b0\t\u0010\u0002\u0002\u08b0\u08b2\u0005\u00aaV\t\u08b1\u08ad",
 | |
|     "\u0003\u0002\u0002\u0002\u08b1\u08af\u0003\u0002\u0002\u0002\u08b2\u08c8",
 | |
|     "\u0003\u0002\u0002\u0002\u08b3\u08b4\f\b\u0002\u0002\u08b4\u08b5\t\u0011",
 | |
|     "\u0002\u0002\u08b5\u08c7\u0005\u00aaV\t\u08b6\u08b7\f\u0007\u0002\u0002",
 | |
|     "\u08b7\u08b8\t\u0012\u0002\u0002\u08b8\u08c7\u0005\u00aaV\b\u08b9\u08ba",
 | |
|     "\f\u0006\u0002\u0002\u08ba\u08bb\u0007\u0099\u0002\u0002\u08bb\u08c7",
 | |
|     "\u0005\u00aaV\u0007\u08bc\u08bd\f\u0005\u0002\u0002\u08bd\u08be\u0007",
 | |
|     "\u009c\u0002\u0002\u08be\u08c7\u0005\u00aaV\u0006\u08bf\u08c0\f\u0004",
 | |
|     "\u0002\u0002\u08c0\u08c1\u0007\u009a\u0002\u0002\u08c1\u08c7\u0005\u00aa",
 | |
|     "V\u0005\u08c2\u08c3\f\u0003\u0002\u0002\u08c3\u08c4\u0005\u00b0Y\u0002",
 | |
|     "\u08c4\u08c5\u0005\u00aaV\u0004\u08c5\u08c7\u0003\u0002\u0002\u0002",
 | |
|     "\u08c6\u08b3\u0003\u0002\u0002\u0002\u08c6\u08b6\u0003\u0002\u0002\u0002",
 | |
|     "\u08c6\u08b9\u0003\u0002\u0002\u0002\u08c6\u08bc\u0003\u0002\u0002\u0002",
 | |
|     "\u08c6\u08bf\u0003\u0002\u0002\u0002\u08c6\u08c2\u0003\u0002\u0002\u0002",
 | |
|     "\u08c7\u08ca\u0003\u0002\u0002\u0002\u08c8\u08c6\u0003\u0002\u0002\u0002",
 | |
|     "\u08c8\u08c9\u0003\u0002\u0002\u0002\u08c9\u00ab\u0003\u0002\u0002\u0002",
 | |
|     "\u08ca\u08c8\u0003\u0002\u0002\u0002\u08cb\u08cc\bW\u0001\u0002\u08cc",
 | |
|     "\u08ce\u00077\u0002\u0002\u08cd\u08cf\u0005\u00ceh\u0002\u08ce\u08cd",
 | |
|     "\u0003\u0002\u0002\u0002\u08cf\u08d0\u0003\u0002\u0002\u0002\u08d0\u08ce",
 | |
|     "\u0003\u0002\u0002\u0002\u08d0\u08d1\u0003\u0002\u0002\u0002\u08d1\u08d4",
 | |
|     "\u0003\u0002\u0002\u0002\u08d2\u08d3\u0007:\u0002\u0002\u08d3\u08d5",
 | |
|     "\u0005\u00a4S\u0002\u08d4\u08d2\u0003\u0002\u0002\u0002\u08d4\u08d5",
 | |
|     "\u0003\u0002\u0002\u0002\u08d5\u08d6\u0003\u0002\u0002\u0002\u08d6\u08d7",
 | |
|     "\u0007;\u0002\u0002\u08d7\u095d\u0003\u0002\u0002\u0002\u08d8\u08d9",
 | |
|     "\u00077\u0002\u0002\u08d9\u08db\u0005\u00a4S\u0002\u08da\u08dc\u0005",
 | |
|     "\u00ceh\u0002\u08db\u08da\u0003\u0002\u0002\u0002\u08dc\u08dd\u0003",
 | |
|     "\u0002\u0002\u0002\u08dd\u08db\u0003\u0002\u0002\u0002\u08dd\u08de\u0003",
 | |
|     "\u0002\u0002\u0002\u08de\u08e1\u0003\u0002\u0002\u0002\u08df\u08e0\u0007",
 | |
|     ":\u0002\u0002\u08e0\u08e2\u0005\u00a4S\u0002\u08e1\u08df\u0003\u0002",
 | |
|     "\u0002\u0002\u08e1\u08e2\u0003\u0002\u0002\u0002\u08e2\u08e3\u0003\u0002",
 | |
|     "\u0002\u0002\u08e3\u08e4\u0007;\u0002\u0002\u08e4\u095d\u0003\u0002",
 | |
|     "\u0002\u0002\u08e5\u08e6\u0007e\u0002\u0002\u08e6\u08e7\u0007\u0003",
 | |
|     "\u0002\u0002\u08e7\u08e8\u0005\u00a4S\u0002\u08e8\u08e9\u0007\u0016",
 | |
|     "\u0002\u0002\u08e9\u08ea\u0005\u00c0a\u0002\u08ea\u08eb\u0007\u0004",
 | |
|     "\u0002\u0002\u08eb\u095d\u0003\u0002\u0002\u0002\u08ec\u08ed\u0007y",
 | |
|     "\u0002\u0002\u08ed\u08f6\u0007\u0003\u0002\u0002\u08ee\u08f3\u0005\u00a0",
 | |
|     "Q\u0002\u08ef\u08f0\u0007\u0006\u0002\u0002\u08f0\u08f2\u0005\u00a0",
 | |
|     "Q\u0002\u08f1\u08ef\u0003\u0002\u0002\u0002\u08f2\u08f5\u0003\u0002",
 | |
|     "\u0002\u0002\u08f3\u08f1\u0003\u0002\u0002\u0002\u08f3\u08f4\u0003\u0002",
 | |
|     "\u0002\u0002\u08f4\u08f7\u0003\u0002\u0002\u0002\u08f5\u08f3\u0003\u0002",
 | |
|     "\u0002\u0002\u08f6\u08ee\u0003\u0002\u0002\u0002\u08f6\u08f7\u0003\u0002",
 | |
|     "\u0002\u0002\u08f7\u08f8\u0003\u0002\u0002\u0002\u08f8\u095d\u0007\u0004",
 | |
|     "\u0002\u0002\u08f9\u08fa\u0007Q\u0002\u0002\u08fa\u08fb\u0007\u0003",
 | |
|     "\u0002\u0002\u08fb\u08fe\u0005\u00a4S\u0002\u08fc\u08fd\u0007\u0083",
 | |
|     "\u0002\u0002\u08fd\u08ff\u00072\u0002\u0002\u08fe\u08fc\u0003\u0002",
 | |
|     "\u0002\u0002\u08fe\u08ff\u0003\u0002\u0002\u0002\u08ff\u0900\u0003\u0002",
 | |
|     "\u0002\u0002\u0900\u0901\u0007\u0004\u0002\u0002\u0901\u095d\u0003\u0002",
 | |
|     "\u0002\u0002\u0902\u0903\u0007S\u0002\u0002\u0903\u0904\u0007\u0003",
 | |
|     "\u0002\u0002\u0904\u0907\u0005\u00a4S\u0002\u0905\u0906\u0007\u0083",
 | |
|     "\u0002\u0002\u0906\u0908\u00072\u0002\u0002\u0907\u0905\u0003\u0002",
 | |
|     "\u0002\u0002\u0907\u0908\u0003\u0002\u0002\u0002\u0908\u0909\u0003\u0002",
 | |
|     "\u0002\u0002\u0909\u090a\u0007\u0004\u0002\u0002\u090a\u095d\u0003\u0002",
 | |
|     "\u0002\u0002\u090b\u090c\u0007\u0088\u0002\u0002\u090c\u090d\u0007\u0003",
 | |
|     "\u0002\u0002\u090d\u090e\u0005\u00aaV\u0002\u090e\u090f\u0007\'\u0002",
 | |
|     "\u0002\u090f\u0910\u0005\u00aaV\u0002\u0910\u0911\u0007\u0004\u0002",
 | |
|     "\u0002\u0911\u095d\u0003\u0002\u0002\u0002\u0912\u095d\u0005\u00aeX",
 | |
|     "\u0002\u0913\u095d\u0007\u0094\u0002\u0002\u0914\u0915\u0005\u00dan",
 | |
|     "\u0002\u0915\u0916\u0007\u0005\u0002\u0002\u0916\u0917\u0007\u0094\u0002",
 | |
|     "\u0002\u0917\u095d\u0003\u0002\u0002\u0002\u0918\u0919\u0007\u0003\u0002",
 | |
|     "\u0002\u0919\u091c\u0005\u00a0Q\u0002\u091a\u091b\u0007\u0006\u0002",
 | |
|     "\u0002\u091b\u091d\u0005\u00a0Q\u0002\u091c\u091a\u0003\u0002\u0002",
 | |
|     "\u0002\u091d\u091e\u0003\u0002\u0002\u0002\u091e\u091c\u0003\u0002\u0002",
 | |
|     "\u0002\u091e\u091f\u0003\u0002\u0002\u0002\u091f\u0920\u0003\u0002\u0002",
 | |
|     "\u0002\u0920\u0921\u0007\u0004\u0002\u0002\u0921\u095d\u0003\u0002\u0002",
 | |
|     "\u0002\u0922\u0923\u0007\u0003\u0002\u0002\u0923\u0924\u0005\u001a\u000e",
 | |
|     "\u0002\u0924\u0925\u0007\u0004\u0002\u0002\u0925\u095d\u0003\u0002\u0002",
 | |
|     "\u0002\u0926\u0927\u0005\u00dan\u0002\u0927\u0933\u0007\u0003\u0002",
 | |
|     "\u0002\u0928\u092a\u0005b2\u0002\u0929\u0928\u0003\u0002\u0002\u0002",
 | |
|     "\u0929\u092a\u0003\u0002\u0002\u0002\u092a\u092b\u0003\u0002\u0002\u0002",
 | |
|     "\u092b\u0930\u0005\u00a4S\u0002\u092c\u092d\u0007\u0006\u0002\u0002",
 | |
|     "\u092d\u092f\u0005\u00a4S\u0002\u092e\u092c\u0003\u0002\u0002\u0002",
 | |
|     "\u092f\u0932\u0003\u0002\u0002\u0002\u0930\u092e\u0003\u0002\u0002\u0002",
 | |
|     "\u0930\u0931\u0003\u0002\u0002\u0002\u0931\u0934\u0003\u0002\u0002\u0002",
 | |
|     "\u0932\u0930\u0003\u0002\u0002\u0002\u0933\u0929\u0003\u0002\u0002\u0002",
 | |
|     "\u0933\u0934\u0003\u0002\u0002\u0002\u0934\u0935\u0003\u0002\u0002\u0002",
 | |
|     "\u0935\u0938\u0007\u0004\u0002\u0002\u0936\u0937\u0007I\u0002\u0002",
 | |
|     "\u0937\u0939\u0005\u00d4k\u0002\u0938\u0936\u0003\u0002\u0002\u0002",
 | |
|     "\u0938\u0939\u0003\u0002\u0002\u0002\u0939\u095d\u0003\u0002\u0002\u0002",
 | |
|     "\u093a\u093b\u0005\u00dan\u0002\u093b\u093c\u0007\u0003\u0002\u0002",
 | |
|     "\u093c\u093d\t\u0013\u0002\u0002\u093d\u093e\u0005\u00a4S\u0002\u093e",
 | |
|     "\u093f\u0007\u0014\u0002\u0002\u093f\u0940\u0005\u00a4S\u0002\u0940",
 | |
|     "\u0941\u0007\u0004\u0002\u0002\u0941\u095d\u0003\u0002\u0002\u0002\u0942",
 | |
|     "\u0943\u0007\u010d\u0002\u0002\u0943\u0944\u0007\u000f\u0002\u0002\u0944",
 | |
|     "\u095d\u0005\u00a4S\u0002\u0945\u0946\u0007\u0003\u0002\u0002\u0946",
 | |
|     "\u0949\u0007\u010d\u0002\u0002\u0947\u0948\u0007\u0006\u0002\u0002\u0948",
 | |
|     "\u094a\u0007\u010d\u0002\u0002\u0949\u0947\u0003\u0002\u0002\u0002\u094a",
 | |
|     "\u094b\u0003\u0002\u0002\u0002\u094b\u0949\u0003\u0002\u0002\u0002\u094b",
 | |
|     "\u094c\u0003\u0002\u0002\u0002\u094c\u094d\u0003\u0002\u0002\u0002\u094d",
 | |
|     "\u094e\u0007\u0004\u0002\u0002\u094e\u094f\u0007\u000f\u0002\u0002\u094f",
 | |
|     "\u095d\u0005\u00a4S\u0002\u0950\u095d\u0005\u00dco\u0002\u0951\u0952",
 | |
|     "\u0007\u0003\u0002\u0002\u0952\u0953\u0005\u00a4S\u0002\u0953\u0954",
 | |
|     "\u0007\u0004\u0002\u0002\u0954\u095d\u0003\u0002\u0002\u0002\u0955\u0956",
 | |
|     "\u0007\u0089\u0002\u0002\u0956\u0957\u0007\u0003\u0002\u0002\u0957\u0958",
 | |
|     "\u0005\u00dco\u0002\u0958\u0959\u0007\u0014\u0002\u0002\u0959\u095a",
 | |
|     "\u0005\u00aaV\u0002\u095a\u095b\u0007\u0004\u0002\u0002\u095b\u095d",
 | |
|     "\u0003\u0002\u0002\u0002\u095c\u08cb\u0003\u0002\u0002\u0002\u095c\u08d8",
 | |
|     "\u0003\u0002\u0002\u0002\u095c\u08e5\u0003\u0002\u0002\u0002\u095c\u08ec",
 | |
|     "\u0003\u0002\u0002\u0002\u095c\u08f9\u0003\u0002\u0002\u0002\u095c\u0902",
 | |
|     "\u0003\u0002\u0002\u0002\u095c\u090b\u0003\u0002\u0002\u0002\u095c\u0912",
 | |
|     "\u0003\u0002\u0002\u0002\u095c\u0913\u0003\u0002\u0002\u0002\u095c\u0914",
 | |
|     "\u0003\u0002\u0002\u0002\u095c\u0918\u0003\u0002\u0002\u0002\u095c\u0922",
 | |
|     "\u0003\u0002\u0002\u0002\u095c\u0926\u0003\u0002\u0002\u0002\u095c\u093a",
 | |
|     "\u0003\u0002\u0002\u0002\u095c\u0942\u0003\u0002\u0002\u0002\u095c\u0945",
 | |
|     "\u0003\u0002\u0002\u0002\u095c\u0950\u0003\u0002\u0002\u0002\u095c\u0951",
 | |
|     "\u0003\u0002\u0002\u0002\u095c\u0955\u0003\u0002\u0002\u0002\u095d\u0968",
 | |
|     "\u0003\u0002\u0002\u0002\u095e\u095f\f\u0007\u0002\u0002\u095f\u0960",
 | |
|     "\u0007\u0010\u0002\u0002\u0960\u0961\u0005\u00aaV\u0002\u0961\u0962",
 | |
|     "\u0007\u0011\u0002\u0002\u0962\u0967\u0003\u0002\u0002\u0002\u0963\u0964",
 | |
|     "\f\u0005\u0002\u0002\u0964\u0965\u0007\u0005\u0002\u0002\u0965\u0967",
 | |
|     "\u0005\u00dco\u0002\u0966\u095e\u0003\u0002\u0002\u0002\u0966\u0963",
 | |
|     "\u0003\u0002\u0002\u0002\u0967\u096a\u0003\u0002\u0002\u0002\u0968\u0966",
 | |
|     "\u0003\u0002\u0002\u0002\u0968\u0969\u0003\u0002\u0002\u0002\u0969\u00ad",
 | |
|     "\u0003\u0002\u0002\u0002\u096a\u0968\u0003\u0002\u0002\u0002\u096b\u0978",
 | |
|     "\u0007/\u0002\u0002\u096c\u0978\u0005\u00b8]\u0002\u096d\u096e\u0005",
 | |
|     "\u00dco\u0002\u096e\u096f\u0007\u0105\u0002\u0002\u096f\u0978\u0003",
 | |
|     "\u0002\u0002\u0002\u0970\u0978\u0005\u00e2r\u0002\u0971\u0978\u0005",
 | |
|     "\u00b6\\\u0002\u0972\u0974\u0007\u0105\u0002\u0002\u0973\u0972\u0003",
 | |
|     "\u0002\u0002\u0002\u0974\u0975\u0003\u0002\u0002\u0002\u0975\u0973\u0003",
 | |
|     "\u0002\u0002\u0002\u0975\u0976\u0003\u0002\u0002\u0002\u0976\u0978\u0003",
 | |
|     "\u0002\u0002\u0002\u0977\u096b\u0003\u0002\u0002\u0002\u0977\u096c\u0003",
 | |
|     "\u0002\u0002\u0002\u0977\u096d\u0003\u0002\u0002\u0002\u0977\u0970\u0003",
 | |
|     "\u0002\u0002\u0002\u0977\u0971\u0003\u0002\u0002\u0002\u0977\u0973\u0003",
 | |
|     "\u0002\u0002\u0002\u0978\u00af\u0003\u0002\u0002\u0002\u0979\u097a\t",
 | |
|     "\u0014\u0002\u0002\u097a\u00b1\u0003\u0002\u0002\u0002\u097b\u097c\t",
 | |
|     "\u0015\u0002\u0002\u097c\u00b3\u0003\u0002\u0002\u0002\u097d\u097e\t",
 | |
|     "\u0016\u0002\u0002\u097e\u00b5\u0003\u0002\u0002\u0002\u097f\u0980\t",
 | |
|     "\u0017\u0002\u0002\u0980\u00b7\u0003\u0002\u0002\u0002\u0981\u0985\u0007",
 | |
|     "6\u0002\u0002\u0982\u0984\u0005\u00ba^\u0002\u0983\u0982\u0003\u0002",
 | |
|     "\u0002\u0002\u0984\u0987\u0003\u0002\u0002\u0002\u0985\u0983\u0003\u0002",
 | |
|     "\u0002\u0002\u0985\u0986\u0003\u0002\u0002\u0002\u0986\u00b9\u0003\u0002",
 | |
|     "\u0002\u0002\u0987\u0985\u0003\u0002\u0002\u0002\u0988\u0989\u0005\u00bc",
 | |
|     "_\u0002\u0989\u098c\u0005\u00dco\u0002\u098a\u098b\u0007r\u0002\u0002",
 | |
|     "\u098b\u098d\u0005\u00dco\u0002\u098c\u098a\u0003\u0002\u0002\u0002",
 | |
|     "\u098c\u098d\u0003\u0002\u0002\u0002\u098d\u00bb\u0003\u0002\u0002\u0002",
 | |
|     "\u098e\u0990\t\u0018\u0002\u0002\u098f\u098e\u0003\u0002\u0002\u0002",
 | |
|     "\u098f\u0990\u0003\u0002\u0002\u0002\u0990\u0991\u0003\u0002\u0002\u0002",
 | |
|     "\u0991\u0994\t\u000e\u0002\u0002\u0992\u0994\u0007\u0105\u0002\u0002",
 | |
|     "\u0993\u098f\u0003\u0002\u0002\u0002\u0993\u0992\u0003\u0002\u0002\u0002",
 | |
|     "\u0994\u00bd\u0003\u0002\u0002\u0002\u0995\u0999\u0007Q\u0002\u0002",
 | |
|     "\u0996\u0997\u0007R\u0002\u0002\u0997\u0999\u0005\u00dco\u0002\u0998",
 | |
|     "\u0995\u0003\u0002\u0002\u0002\u0998\u0996\u0003\u0002\u0002\u0002\u0999",
 | |
|     "\u00bf\u0003\u0002\u0002\u0002\u099a\u099b\u0007w\u0002\u0002\u099b",
 | |
|     "\u099c\u0007\u008e\u0002\u0002\u099c\u099d\u0005\u00c0a\u0002\u099d",
 | |
|     "\u099e\u0007\u0090\u0002\u0002\u099e\u09bd\u0003\u0002\u0002\u0002\u099f",
 | |
|     "\u09a0\u0007x\u0002\u0002\u09a0\u09a1\u0007\u008e\u0002\u0002\u09a1",
 | |
|     "\u09a2\u0005\u00c0a\u0002\u09a2\u09a3\u0007\u0006\u0002\u0002\u09a3",
 | |
|     "\u09a4\u0005\u00c0a\u0002\u09a4\u09a5\u0007\u0090\u0002\u0002\u09a5",
 | |
|     "\u09bd\u0003\u0002\u0002\u0002\u09a6\u09ad\u0007y\u0002\u0002\u09a7",
 | |
|     "\u09a9\u0007\u008e\u0002\u0002\u09a8\u09aa\u0005\u00caf\u0002\u09a9",
 | |
|     "\u09a8\u0003\u0002\u0002\u0002\u09a9\u09aa\u0003\u0002\u0002\u0002\u09aa",
 | |
|     "\u09ab\u0003\u0002\u0002\u0002\u09ab\u09ae\u0007\u0090\u0002\u0002\u09ac",
 | |
|     "\u09ae\u0007\u008c\u0002\u0002\u09ad\u09a7\u0003\u0002\u0002\u0002\u09ad",
 | |
|     "\u09ac\u0003\u0002\u0002\u0002\u09ae\u09bd\u0003\u0002\u0002\u0002\u09af",
 | |
|     "\u09ba\u0005\u00dco\u0002\u09b0\u09b1\u0007\u0003\u0002\u0002\u09b1",
 | |
|     "\u09b6\u0007\u0109\u0002\u0002\u09b2\u09b3\u0007\u0006\u0002\u0002\u09b3",
 | |
|     "\u09b5\u0007\u0109\u0002\u0002\u09b4\u09b2\u0003\u0002\u0002\u0002\u09b5",
 | |
|     "\u09b8\u0003\u0002\u0002\u0002\u09b6\u09b4\u0003\u0002\u0002\u0002\u09b6",
 | |
|     "\u09b7\u0003\u0002\u0002\u0002\u09b7\u09b9\u0003\u0002\u0002\u0002\u09b8",
 | |
|     "\u09b6\u0003\u0002\u0002\u0002\u09b9\u09bb\u0007\u0004\u0002\u0002\u09ba",
 | |
|     "\u09b0\u0003\u0002\u0002\u0002\u09ba\u09bb\u0003\u0002\u0002\u0002\u09bb",
 | |
|     "\u09bd\u0003\u0002\u0002\u0002\u09bc\u099a\u0003\u0002\u0002\u0002\u09bc",
 | |
|     "\u099f\u0003\u0002\u0002\u0002\u09bc\u09a6\u0003\u0002\u0002\u0002\u09bc",
 | |
|     "\u09af\u0003\u0002\u0002\u0002\u09bd\u00c1\u0003\u0002\u0002\u0002\u09be",
 | |
|     "\u09c3\u0005\u00c4c\u0002\u09bf\u09c0\u0007\u0006\u0002\u0002\u09c0",
 | |
|     "\u09c2\u0005\u00c4c\u0002\u09c1\u09bf\u0003\u0002\u0002\u0002\u09c2",
 | |
|     "\u09c5\u0003\u0002\u0002\u0002\u09c3\u09c1\u0003\u0002\u0002\u0002\u09c3",
 | |
|     "\u09c4\u0003\u0002\u0002\u0002\u09c4\u00c3\u0003\u0002\u0002\u0002\u09c5",
 | |
|     "\u09c3\u0003\u0002\u0002\u0002\u09c6\u09c7\u0005\u00dco\u0002\u09c7",
 | |
|     "\u09ca\u0005\u00c0a\u0002\u09c8\u09c9\u0007z\u0002\u0002\u09c9\u09cb",
 | |
|     "\u0007\u0105\u0002\u0002\u09ca\u09c8\u0003\u0002\u0002\u0002\u09ca\u09cb",
 | |
|     "\u0003\u0002\u0002\u0002\u09cb\u00c5\u0003\u0002\u0002\u0002\u09cc\u09d1",
 | |
|     "\u0005\u00c8e\u0002\u09cd\u09ce\u0007\u0006\u0002\u0002\u09ce\u09d0",
 | |
|     "\u0005\u00c8e\u0002\u09cf\u09cd\u0003\u0002\u0002\u0002\u09d0\u09d3",
 | |
|     "\u0003\u0002\u0002\u0002\u09d1\u09cf\u0003\u0002\u0002\u0002\u09d1\u09d2",
 | |
|     "\u0003\u0002\u0002\u0002\u09d2\u00c7\u0003\u0002\u0002\u0002\u09d3\u09d1",
 | |
|     "\u0003\u0002\u0002\u0002\u09d4\u09d9\u0005\u00dco\u0002\u09d5\u09d6",
 | |
|     "\u0007\u0005\u0002\u0002\u09d6\u09d8\u0005\u00dco\u0002\u09d7\u09d5",
 | |
|     "\u0003\u0002\u0002\u0002\u09d8\u09db\u0003\u0002\u0002\u0002\u09d9\u09d7",
 | |
|     "\u0003\u0002\u0002\u0002\u09d9\u09da\u0003\u0002\u0002\u0002\u09da\u09dc",
 | |
|     "\u0003\u0002\u0002\u0002\u09db\u09d9\u0003\u0002\u0002\u0002\u09dc\u09df",
 | |
|     "\u0005\u00c0a\u0002\u09dd\u09de\u0007\u0016\u0002\u0002\u09de\u09e0",
 | |
|     "\u0005\u00dco\u0002\u09df\u09dd\u0003\u0002\u0002\u0002\u09df\u09e0",
 | |
|     "\u0003\u0002\u0002\u0002\u09e0\u09e3\u0003\u0002\u0002\u0002\u09e1\u09e2",
 | |
|     "\u0007z\u0002\u0002\u09e2\u09e4\u0007\u0105\u0002\u0002\u09e3\u09e1",
 | |
|     "\u0003\u0002\u0002\u0002\u09e3\u09e4\u0003\u0002\u0002\u0002\u09e4\u09ec",
 | |
|     "\u0003\u0002\u0002\u0002\u09e5\u09e6\u0007\u00f8\u0002\u0002\u09e6\u09e7",
 | |
|     "\u00075\u0002\u0002\u09e7\u09e8\u0005\u00dco\u0002\u09e8\u09e9\u0007",
 | |
|     "\u0016\u0002\u0002\u09e9\u09ea\u0005\u00acW\u0002\u09ea\u09ec\u0003",
 | |
|     "\u0002\u0002\u0002\u09eb\u09d4\u0003\u0002\u0002\u0002\u09eb\u09e5\u0003",
 | |
|     "\u0002\u0002\u0002\u09ec\u00c9\u0003\u0002\u0002\u0002\u09ed\u09f2\u0005",
 | |
|     "\u00ccg\u0002\u09ee\u09ef\u0007\u0006\u0002\u0002\u09ef\u09f1\u0005",
 | |
|     "\u00ccg\u0002\u09f0\u09ee\u0003\u0002\u0002\u0002\u09f1\u09f4\u0003",
 | |
|     "\u0002\u0002\u0002\u09f2\u09f0\u0003\u0002\u0002\u0002\u09f2\u09f3\u0003",
 | |
|     "\u0002\u0002\u0002\u09f3\u00cb\u0003\u0002\u0002\u0002\u09f4\u09f2\u0003",
 | |
|     "\u0002\u0002\u0002\u09f5\u09f6\u0005\u00dco\u0002\u09f6\u09f7\u0007",
 | |
|     "\u0012\u0002\u0002\u09f7\u09fa\u0005\u00c0a\u0002\u09f8\u09f9\u0007",
 | |
|     "z\u0002\u0002\u09f9\u09fb\u0007\u0105\u0002\u0002\u09fa\u09f8\u0003",
 | |
|     "\u0002\u0002\u0002\u09fa\u09fb\u0003\u0002\u0002\u0002\u09fb\u00cd\u0003",
 | |
|     "\u0002\u0002\u0002\u09fc\u09fd\u00078\u0002\u0002\u09fd\u09fe\u0005",
 | |
|     "\u00a4S\u0002\u09fe\u09ff\u00079\u0002\u0002\u09ff\u0a00\u0005\u00a4",
 | |
|     "S\u0002\u0a00\u00cf\u0003\u0002\u0002\u0002\u0a01\u0a02\u0007H\u0002",
 | |
|     "\u0002\u0a02\u0a07\u0005\u00d2j\u0002\u0a03\u0a04\u0007\u0006\u0002",
 | |
|     "\u0002\u0a04\u0a06\u0005\u00d2j\u0002\u0a05\u0a03\u0003\u0002\u0002",
 | |
|     "\u0002\u0a06\u0a09\u0003\u0002\u0002\u0002\u0a07\u0a05\u0003\u0002\u0002",
 | |
|     "\u0002\u0a07\u0a08\u0003\u0002\u0002\u0002\u0a08\u00d1\u0003\u0002\u0002",
 | |
|     "\u0002\u0a09\u0a07\u0003\u0002\u0002\u0002\u0a0a\u0a0b\u0005\u00dco",
 | |
|     "\u0002\u0a0b\u0a0c\u0007\u0016\u0002\u0002\u0a0c\u0a0d\u0005\u00d4k",
 | |
|     "\u0002\u0a0d\u00d3\u0003\u0002\u0002\u0002\u0a0e\u0a39\u0005\u00dco",
 | |
|     "\u0002\u0a0f\u0a32\u0007\u0003\u0002\u0002\u0a10\u0a11\u0007\u00a2\u0002",
 | |
|     "\u0002\u0a11\u0a12\u0007\u001c\u0002\u0002\u0a12\u0a17\u0005\u00a4S",
 | |
|     "\u0002\u0a13\u0a14\u0007\u0006\u0002\u0002\u0a14\u0a16\u0005\u00a4S",
 | |
|     "\u0002\u0a15\u0a13\u0003\u0002\u0002\u0002\u0a16\u0a19\u0003\u0002\u0002",
 | |
|     "\u0002\u0a17\u0a15\u0003\u0002\u0002\u0002\u0a17\u0a18\u0003\u0002\u0002",
 | |
|     "\u0002\u0a18\u0a33\u0003\u0002\u0002\u0002\u0a19\u0a17\u0003\u0002\u0002",
 | |
|     "\u0002\u0a1a\u0a1b\t\u0019\u0002\u0002\u0a1b\u0a1c\u0007\u001c\u0002",
 | |
|     "\u0002\u0a1c\u0a21\u0005\u00a4S\u0002\u0a1d\u0a1e\u0007\u0006\u0002",
 | |
|     "\u0002\u0a1e\u0a20\u0005\u00a4S\u0002\u0a1f\u0a1d\u0003\u0002\u0002",
 | |
|     "\u0002\u0a20\u0a23\u0003\u0002\u0002\u0002\u0a21\u0a1f\u0003\u0002\u0002",
 | |
|     "\u0002\u0a21\u0a22\u0003\u0002\u0002\u0002\u0a22\u0a25\u0003\u0002\u0002",
 | |
|     "\u0002\u0a23\u0a21\u0003\u0002\u0002\u0002\u0a24\u0a1a\u0003\u0002\u0002",
 | |
|     "\u0002\u0a24\u0a25\u0003\u0002\u0002\u0002\u0a25\u0a30\u0003\u0002\u0002",
 | |
|     "\u0002\u0a26\u0a27\t\u001a\u0002\u0002\u0a27\u0a28\u0007\u001c\u0002",
 | |
|     "\u0002\u0a28\u0a2d\u0005L\'\u0002\u0a29\u0a2a\u0007\u0006\u0002\u0002",
 | |
|     "\u0a2a\u0a2c\u0005L\'\u0002\u0a2b\u0a29\u0003\u0002\u0002\u0002\u0a2c",
 | |
|     "\u0a2f\u0003\u0002\u0002\u0002\u0a2d\u0a2b\u0003\u0002\u0002\u0002\u0a2d",
 | |
|     "\u0a2e\u0003\u0002\u0002\u0002\u0a2e\u0a31\u0003\u0002\u0002\u0002\u0a2f",
 | |
|     "\u0a2d\u0003\u0002\u0002\u0002\u0a30\u0a26\u0003\u0002\u0002\u0002\u0a30",
 | |
|     "\u0a31\u0003\u0002\u0002\u0002\u0a31\u0a33\u0003\u0002\u0002\u0002\u0a32",
 | |
|     "\u0a10\u0003\u0002\u0002\u0002\u0a32\u0a24\u0003\u0002\u0002\u0002\u0a33",
 | |
|     "\u0a35\u0003\u0002\u0002\u0002\u0a34\u0a36\u0005\u00d6l\u0002\u0a35",
 | |
|     "\u0a34\u0003\u0002\u0002\u0002\u0a35\u0a36\u0003\u0002\u0002\u0002\u0a36",
 | |
|     "\u0a37\u0003\u0002\u0002\u0002\u0a37\u0a39\u0007\u0004\u0002\u0002\u0a38",
 | |
|     "\u0a0e\u0003\u0002\u0002\u0002\u0a38\u0a0f\u0003\u0002\u0002\u0002\u0a39",
 | |
|     "\u00d5\u0003\u0002\u0002\u0002\u0a3a\u0a3b\u0007K\u0002\u0002\u0a3b",
 | |
|     "\u0a4b\u0005\u00d8m\u0002\u0a3c\u0a3d\u0007L\u0002\u0002\u0a3d\u0a4b",
 | |
|     "\u0005\u00d8m\u0002\u0a3e\u0a3f\u0007K\u0002\u0002\u0a3f\u0a40\u0007",
 | |
|     "+\u0002\u0002\u0a40\u0a41\u0005\u00d8m\u0002\u0a41\u0a42\u0007&\u0002",
 | |
|     "\u0002\u0a42\u0a43\u0005\u00d8m\u0002\u0a43\u0a4b\u0003\u0002\u0002",
 | |
|     "\u0002\u0a44\u0a45\u0007L\u0002\u0002\u0a45\u0a46\u0007+\u0002\u0002",
 | |
|     "\u0a46\u0a47\u0005\u00d8m\u0002\u0a47\u0a48\u0007&\u0002\u0002\u0a48",
 | |
|     "\u0a49\u0005\u00d8m\u0002\u0a49\u0a4b\u0003\u0002\u0002\u0002\u0a4a",
 | |
|     "\u0a3a\u0003\u0002\u0002\u0002\u0a4a\u0a3c\u0003\u0002\u0002\u0002\u0a4a",
 | |
|     "\u0a3e\u0003\u0002\u0002\u0002\u0a4a\u0a44\u0003\u0002\u0002\u0002\u0a4b",
 | |
|     "\u00d7\u0003\u0002\u0002\u0002\u0a4c\u0a4d\u0007M\u0002\u0002\u0a4d",
 | |
|     "\u0a54\t\u001b\u0002\u0002\u0a4e\u0a4f\u0007P\u0002\u0002\u0a4f\u0a54",
 | |
|     "\u0007T\u0002\u0002\u0a50\u0a51\u0005\u00a4S\u0002\u0a51\u0a52\t\u001b",
 | |
|     "\u0002\u0002\u0a52\u0a54\u0003\u0002\u0002\u0002\u0a53\u0a4c\u0003\u0002",
 | |
|     "\u0002\u0002\u0a53\u0a4e\u0003\u0002\u0002\u0002\u0a53\u0a50\u0003\u0002",
 | |
|     "\u0002\u0002\u0a54\u00d9\u0003\u0002\u0002\u0002\u0a55\u0a5a\u0005\u00dc",
 | |
|     "o\u0002\u0a56\u0a57\u0007\u0005\u0002\u0002\u0a57\u0a59\u0005\u00dc",
 | |
|     "o\u0002\u0a58\u0a56\u0003\u0002\u0002\u0002\u0a59\u0a5c\u0003\u0002",
 | |
|     "\u0002\u0002\u0a5a\u0a58\u0003\u0002\u0002\u0002\u0a5a\u0a5b\u0003\u0002",
 | |
|     "\u0002\u0002\u0a5b\u00db\u0003\u0002\u0002\u0002\u0a5c\u0a5a\u0003\u0002",
 | |
|     "\u0002\u0002\u0a5d\u0a6d\u0005\u00dep\u0002\u0a5e\u0a6d\u0007\u00f5",
 | |
|     "\u0002\u0002\u0a5f\u0a6d\u0007C\u0002\u0002\u0a60\u0a6d\u0007?\u0002",
 | |
|     "\u0002\u0a61\u0a6d\u0007@\u0002\u0002\u0a62\u0a6d\u0007A\u0002\u0002",
 | |
|     "\u0a63\u0a6d\u0007B\u0002\u0002\u0a64\u0a6d\u0007D\u0002\u0002\u0a65",
 | |
|     "\u0a6d\u0007<\u0002\u0002\u0a66\u0a6d\u0007=\u0002\u0002\u0a67\u0a6d",
 | |
|     "\u0007E\u0002\u0002\u0a68\u0a6d\u0007n\u0002\u0002\u0a69\u0a6d\u0007",
 | |
|     "q\u0002\u0002\u0a6a\u0a6d\u0007o\u0002\u0002\u0a6b\u0a6d\u0007p\u0002",
 | |
|     "\u0002\u0a6c\u0a5d\u0003\u0002\u0002\u0002\u0a6c\u0a5e\u0003\u0002\u0002",
 | |
|     "\u0002\u0a6c\u0a5f\u0003\u0002\u0002\u0002\u0a6c\u0a60\u0003\u0002\u0002",
 | |
|     "\u0002\u0a6c\u0a61\u0003\u0002\u0002\u0002\u0a6c\u0a62\u0003\u0002\u0002",
 | |
|     "\u0002\u0a6c\u0a63\u0003\u0002\u0002\u0002\u0a6c\u0a64\u0003\u0002\u0002",
 | |
|     "\u0002\u0a6c\u0a65\u0003\u0002\u0002\u0002\u0a6c\u0a66\u0003\u0002\u0002",
 | |
|     "\u0002\u0a6c\u0a67\u0003\u0002\u0002\u0002\u0a6c\u0a68\u0003\u0002\u0002",
 | |
|     "\u0002\u0a6c\u0a69\u0003\u0002\u0002\u0002\u0a6c\u0a6a\u0003\u0002\u0002",
 | |
|     "\u0002\u0a6c\u0a6b\u0003\u0002\u0002\u0002\u0a6d\u00dd\u0003\u0002\u0002",
 | |
|     "\u0002\u0a6e\u0a72\u0007\u010d\u0002\u0002\u0a6f\u0a72\u0005\u00e0q",
 | |
|     "\u0002\u0a70\u0a72\u0005\u00e4s\u0002\u0a71\u0a6e\u0003\u0002\u0002",
 | |
|     "\u0002\u0a71\u0a6f\u0003\u0002\u0002\u0002\u0a71\u0a70\u0003\u0002\u0002",
 | |
|     "\u0002\u0a72\u00df\u0003\u0002\u0002\u0002\u0a73\u0a74\u0007\u010e\u0002",
 | |
|     "\u0002\u0a74\u00e1\u0003\u0002\u0002\u0002\u0a75\u0a77\u0007\u0093\u0002",
 | |
|     "\u0002\u0a76\u0a75\u0003\u0002\u0002\u0002\u0a76\u0a77\u0003\u0002\u0002",
 | |
|     "\u0002\u0a77\u0a78\u0003\u0002\u0002\u0002\u0a78\u0a92\u0007\u010a\u0002",
 | |
|     "\u0002\u0a79\u0a7b\u0007\u0093\u0002\u0002\u0a7a\u0a79\u0003\u0002\u0002",
 | |
|     "\u0002\u0a7a\u0a7b\u0003\u0002\u0002\u0002\u0a7b\u0a7c\u0003\u0002\u0002",
 | |
|     "\u0002\u0a7c\u0a92\u0007\u0109\u0002\u0002\u0a7d\u0a7f\u0007\u0093\u0002",
 | |
|     "\u0002\u0a7e\u0a7d\u0003\u0002\u0002\u0002\u0a7e\u0a7f\u0003\u0002\u0002",
 | |
|     "\u0002\u0a7f\u0a80\u0003\u0002\u0002\u0002\u0a80\u0a92\u0007\u0106\u0002",
 | |
|     "\u0002\u0a81\u0a83\u0007\u0093\u0002\u0002\u0a82\u0a81\u0003\u0002\u0002",
 | |
|     "\u0002\u0a82\u0a83\u0003\u0002\u0002\u0002\u0a83\u0a84\u0003\u0002\u0002",
 | |
|     "\u0002\u0a84\u0a92\u0007\u0107\u0002\u0002\u0a85\u0a87\u0007\u0093\u0002",
 | |
|     "\u0002\u0a86\u0a85\u0003\u0002\u0002\u0002\u0a86\u0a87\u0003\u0002\u0002",
 | |
|     "\u0002\u0a87\u0a88\u0003\u0002\u0002\u0002\u0a88\u0a92\u0007\u0108\u0002",
 | |
|     "\u0002\u0a89\u0a8b\u0007\u0093\u0002\u0002\u0a8a\u0a89\u0003\u0002\u0002",
 | |
|     "\u0002\u0a8a\u0a8b\u0003\u0002\u0002\u0002\u0a8b\u0a8c\u0003\u0002\u0002",
 | |
|     "\u0002\u0a8c\u0a92\u0007\u010b\u0002\u0002\u0a8d\u0a8f\u0007\u0093\u0002",
 | |
|     "\u0002\u0a8e\u0a8d\u0003\u0002\u0002\u0002\u0a8e\u0a8f\u0003\u0002\u0002",
 | |
|     "\u0002\u0a8f\u0a90\u0003\u0002\u0002\u0002\u0a90\u0a92\u0007\u010c\u0002",
 | |
|     "\u0002\u0a91\u0a76\u0003\u0002\u0002\u0002\u0a91\u0a7a\u0003\u0002\u0002",
 | |
|     "\u0002\u0a91\u0a7e\u0003\u0002\u0002\u0002\u0a91\u0a82\u0003\u0002\u0002",
 | |
|     "\u0002\u0a91\u0a86\u0003\u0002\u0002\u0002\u0a91\u0a8a\u0003\u0002\u0002",
 | |
|     "\u0002\u0a91\u0a8e\u0003\u0002\u0002\u0002\u0a92\u00e3\u0003\u0002\u0002",
 | |
|     "\u0002\u0a93\u0a94\t\u001c\u0002\u0002\u0a94\u00e5\u0003\u0002\u0002",
 | |
|     "\u0002\u0166\u00ea\u0103\u0108\u010b\u0110\u011d\u0121\u0128\u0136\u0138",
 | |
|     "\u013c\u013f\u0146\u0157\u0159\u015d\u0160\u0167\u016e\u0172\u017a\u0184",
 | |
|     "\u018a\u0190\u019b\u01bb\u01c3\u01c7\u01cc\u01d2\u01da\u01e0\u01ed\u01f2",
 | |
|     "\u01fb\u0200\u0210\u0217\u021b\u0223\u022a\u0231\u0240\u0244\u024a\u0250",
 | |
|     "\u0253\u0256\u025c\u0260\u0264\u0269\u026d\u0275\u0278\u0281\u0286\u028c",
 | |
|     "\u0293\u0296\u029c\u02a7\u02aa\u02ae\u02b3\u02b8\u02bf\u02c2\u02c5\u02cc",
 | |
|     "\u02d1\u02d6\u02d9\u02e2\u02ea\u02f0\u02f4\u02f8\u02fc\u02fe\u0307\u030d",
 | |
|     "\u0312\u0315\u0319\u031c\u0326\u0329\u032d\u0333\u0336\u0339\u033f\u0347",
 | |
|     "\u034c\u0352\u0358\u0363\u036b\u0372\u037a\u037d\u0385\u0389\u0390\u0404",
 | |
|     "\u040c\u0414\u041d\u0429\u042d\u0430\u0436\u0440\u044c\u0451\u0457\u0463",
 | |
|     "\u0465\u046a\u046e\u0473\u0478\u047b\u0480\u0484\u0489\u048b\u048f\u0498",
 | |
|     "\u04a0\u04a7\u04ae\u04b7\u04bc\u04cb\u04d2\u04d5\u04dc\u04e0\u04e6\u04ee",
 | |
|     "\u04f9\u0504\u050b\u0511\u0517\u0520\u0522\u052b\u052e\u0537\u053a\u0543",
 | |
|     "\u0546\u054f\u0552\u0555\u055a\u055c\u055f\u056b\u0572\u0579\u057c\u057e",
 | |
|     "\u0589\u058d\u0591\u059d\u05a0\u05a4\u05ae\u05b2\u05b4\u05b7\u05bb\u05be",
 | |
|     "\u05c2\u05c8\u05cc\u05d0\u05d5\u05d8\u05da\u05df\u05e4\u05e7\u05eb\u05ee",
 | |
|     "\u05f0\u05f5\u05fa\u0607\u060c\u0614\u061a\u061e\u0627\u0636\u063b\u0647",
 | |
|     "\u064c\u0654\u0657\u065b\u0669\u0676\u067b\u067f\u0682\u0687\u0690\u0693",
 | |
|     "\u0698\u069f\u06a2\u06aa\u06b1\u06b8\u06bb\u06c0\u06c6\u06ca\u06cd\u06d0",
 | |
|     "\u06d6\u06db\u06e0\u06f2\u06f4\u06f7\u0702\u070b\u0712\u071a\u0722\u0727",
 | |
|     "\u072f\u0737\u073d\u0748\u074b\u0754\u0757\u075f\u0762\u0768\u077f\u0781",
 | |
|     "\u0789\u0796\u07a8\u07af\u07b4\u07be\u07c2\u07c6\u07cc\u07da\u07e6\u07e9",
 | |
|     "\u07ef\u07f3\u07f5\u07fe\u080a\u080c\u0813\u081a\u0820\u0826\u0828\u082d",
 | |
|     "\u083a\u0845\u084a\u0850\u0854\u0856\u085d\u086c\u086e\u0876\u0878\u087c",
 | |
|     "\u0884\u088d\u0893\u089b\u08a1\u08a6\u08ab\u08b1\u08c6\u08c8\u08d0\u08d4",
 | |
|     "\u08dd\u08e1\u08f3\u08f6\u08fe\u0907\u091e\u0929\u0930\u0933\u0938\u094b",
 | |
|     "\u095c\u0966\u0968\u0975\u0977\u0985\u098c\u098f\u0993\u0998\u09a9\u09ad",
 | |
|     "\u09b6\u09ba\u09bc\u09c3\u09ca\u09d1\u09d9\u09df\u09e3\u09eb\u09f2\u09fa",
 | |
|     "\u0a07\u0a17\u0a21\u0a24\u0a2d\u0a30\u0a32\u0a35\u0a38\u0a4a\u0a53\u0a5a",
 | |
|     "\u0a6c\u0a71\u0a76\u0a7a\u0a7e\u0a82\u0a86\u0a8a\u0a8e\u0a91"].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, "'('", "')'", "'.'", "','", "'/*+'", "'*/'",
 | |
|     "'*?'", "'+?'", "'?'", "'??'", "'{'", "'}'", "'->'",
 | |
|     "'['", "']'", "':'", "'SELECT'", "'FROM'", "'ADD'",
 | |
|     "'AS'", "'ALL'", "'ANY'", "'DISTINCT'", "'WHERE'",
 | |
|     "'GROUP'", "'BY'", "'GROUPING'", "'SETS'", "'CUBE'",
 | |
|     "'ROLLUP'", "'ORDER'", "'HAVING'", "'LIMIT'", "'AT'",
 | |
|     "'OR'", "'AND'", "'IN'", null, "'NO'", "'EXISTS'",
 | |
|     "'BETWEEN'", "'LIKE'", null, "'IS'", "'NULL'", "'TRUE'",
 | |
|     "'FALSE'", "'NULLS'", "'ASC'", "'DESC'", "'FOR'", "'INTERVAL'",
 | |
|     "'CASE'", "'WHEN'", "'THEN'", "'ELSE'", "'END'", "'JOIN'",
 | |
|     "'CROSS'", "'OUTER'", "'INNER'", "'LEFT'", "'SEMI'",
 | |
|     "'RIGHT'", "'FULL'", "'NATURAL'", "'ON'", "'PIVOT'",
 | |
|     "'LATERAL'", "'WINDOW'", "'OVER'", "'PARTITION'", "'RANGE'",
 | |
|     "'ROWS'", "'UNBOUNDED'", "'PRECEDING'", "'FOLLOWING'",
 | |
|     "'CURRENT'", "'FIRST'", "'AFTER'", "'LAST'", "'ROW'",
 | |
|     "'WITH'", "'VALUES'", "'CREATE'", "'TABLE'", "'DIRECTORY'",
 | |
|     "'VIEW'", "'REPLACE'", "'INSERT'", "'DELETE'", "'INTO'",
 | |
|     "'DESCRIBE'", "'EXPLAIN'", "'FORMAT'", "'LOGICAL'",
 | |
|     "'CODEGEN'", "'COST'", "'CAST'", "'SHOW'", "'TABLES'",
 | |
|     "'COLUMNS'", "'COLUMN'", "'USE'", "'PARTITIONS'", "'FUNCTIONS'",
 | |
|     "'DROP'", "'UNION'", "'EXCEPT'", "'MINUS'", "'INTERSECT'",
 | |
|     "'TO'", "'TABLESAMPLE'", "'STRATIFY'", "'ALTER'", "'RENAME'",
 | |
|     "'ARRAY'", "'MAP'", "'STRUCT'", "'COMMENT'", "'SET'",
 | |
|     "'RESET'", "'DATA'", "'START'", "'TRANSACTION'", "'COMMIT'",
 | |
|     "'ROLLBACK'", "'MACRO'", "'IGNORE'", "'BOTH'", "'LEADING'",
 | |
|     "'TRAILING'", "'IF'", "'POSITION'", "'EXTRACT'", null,
 | |
|     "'<=>'", "'<>'", "'!='", "'<'", null, "'>'", null,
 | |
|     "'+'", "'-'", "'*'", "'/'", "'%'", "'DIV'", "'~'",
 | |
|     "'&'", "'|'", "'||'", "'^'", "'PERCENT'", "'BUCKET'",
 | |
|     "'OUT'", "'OF'", "'SORT'", "'CLUSTER'", "'DISTRIBUTE'",
 | |
|     "'OVERWRITE'", "'TRANSFORM'", "'REDUCE'", "'USING'",
 | |
|     "'SERDE'", "'SERDEPROPERTIES'", "'RECORDREADER'", "'RECORDWRITER'",
 | |
|     "'DELIMITED'", "'FIELDS'", "'TERMINATED'", "'COLLECTION'",
 | |
|     "'ITEMS'", "'KEYS'", "'ESCAPED'", "'LINES'", "'SEPARATED'",
 | |
|     "'FUNCTION'", "'EXTENDED'", "'REFRESH'", "'CLEAR'",
 | |
|     "'CACHE'", "'UNCACHE'", "'LAZY'", "'FORMATTED'", "'GLOBAL'",
 | |
|     null, "'OPTIONS'", "'UNSET'", "'TBLPROPERTIES'", "'DBPROPERTIES'",
 | |
|     "'BUCKETS'", "'SKEWED'", "'STORED'", "'DIRECTORIES'",
 | |
|     "'LOCATION'", "'EXCHANGE'", "'ARCHIVE'", "'UNARCHIVE'",
 | |
|     "'FILEFORMAT'", "'TOUCH'", "'COMPACT'", "'CONCATENATE'",
 | |
|     "'CHANGE'", "'CASCADE'", "'RESTRICT'", "'CLUSTERED'",
 | |
|     "'SORTED'", "'PURGE'", "'INPUTFORMAT'", "'OUTPUTFORMAT'",
 | |
|     null, null, "'DFS'", "'TRUNCATE'", "'ANALYZE'", "'COMPUTE'",
 | |
|     "'LIST'", "'STATISTICS'", "'PARTITIONED'", "'EXTERNAL'",
 | |
|     "'DEFINED'", "'REVOKE'", "'GRANT'", "'LOCK'", "'UNLOCK'",
 | |
|     "'MSCK'", "'REPAIR'", "'RECOVER'", "'EXPORT'", "'IMPORT'",
 | |
|     "'LOAD'", "'ROLE'", "'ROLES'", "'COMPACTIONS'", "'PRINCIPALS'",
 | |
|     "'TRANSACTIONS'", "'INDEX'", "'INDEXES'", "'LOCKS'",
 | |
|     "'OPTION'", "'ANTI'", "'LOCAL'", "'INPATH'", "'WATERMARK'",
 | |
|     "'UNNEST'", "'MATCH_RECOGNIZE'", "'MEASURES'", "'ONE'",
 | |
|     "'PER'", "'MATCH'", "'SKIP'", "'NEXT'", "'PAST'", "'PATTERN'",
 | |
|     "'WITHIN'", "'DEFINE'", null, null, null, null, null,
 | |
|     null, null, null, null, null, null, "'/**/'"];
 | |
| var symbolicNames = [null, null, null, null, null, null, null, null, null,
 | |
|     null, null, null, null, null, null, null, null, "SELECT",
 | |
|     "FROM", "ADD", "AS", "ALL", "ANY", "DISTINCT", "WHERE",
 | |
|     "GROUP", "BY", "GROUPING", "SETS", "CUBE", "ROLLUP",
 | |
|     "ORDER", "HAVING", "LIMIT", "AT", "OR", "AND", "IN",
 | |
|     "NOT", "NO", "EXISTS", "BETWEEN", "LIKE", "RLIKE",
 | |
|     "IS", "NULL", "TRUE", "FALSE", "NULLS", "ASC", "DESC",
 | |
|     "FOR", "INTERVAL", "CASE", "WHEN", "THEN", "ELSE",
 | |
|     "END", "JOIN", "CROSS", "OUTER", "INNER", "LEFT",
 | |
|     "SEMI", "RIGHT", "FULL", "NATURAL", "ON", "PIVOT",
 | |
|     "LATERAL", "WINDOW", "OVER", "PARTITION", "RANGE",
 | |
|     "ROWS", "UNBOUNDED", "PRECEDING", "FOLLOWING", "CURRENT",
 | |
|     "FIRST", "AFTER", "LAST", "ROW", "WITH", "VALUES",
 | |
|     "CREATE", "TABLE", "DIRECTORY", "VIEW", "REPLACE",
 | |
|     "INSERT", "DELETE", "INTO", "DESCRIBE", "EXPLAIN",
 | |
|     "FORMAT", "LOGICAL", "CODEGEN", "COST", "CAST", "SHOW",
 | |
|     "TABLES", "COLUMNS", "COLUMN", "USE", "PARTITIONS",
 | |
|     "FUNCTIONS", "DROP", "UNION", "EXCEPT", "SETMINUS",
 | |
|     "INTERSECT", "TO", "TABLESAMPLE", "STRATIFY", "ALTER",
 | |
|     "RENAME", "ARRAY", "MAP", "STRUCT", "COMMENT", "SET",
 | |
|     "RESET", "DATA", "START", "TRANSACTION", "COMMIT",
 | |
|     "ROLLBACK", "MACRO", "IGNORE", "BOTH", "LEADING",
 | |
|     "TRAILING", "IF", "POSITION", "EXTRACT", "EQ", "NSEQ",
 | |
|     "NEQ", "NEQJ", "LT", "LTE", "GT", "GTE", "PLUS", "MINUS",
 | |
|     "ASTERISK", "SLASH", "PERCENT", "DIV", "TILDE", "AMPERSAND",
 | |
|     "PIPE", "CONCAT_PIPE", "HAT", "PERCENTLIT", "BUCKET",
 | |
|     "OUT", "OF", "SORT", "CLUSTER", "DISTRIBUTE", "OVERWRITE",
 | |
|     "TRANSFORM", "REDUCE", "USING", "SERDE", "SERDEPROPERTIES",
 | |
|     "RECORDREADER", "RECORDWRITER", "DELIMITED", "FIELDS",
 | |
|     "TERMINATED", "COLLECTION", "ITEMS", "KEYS", "ESCAPED",
 | |
|     "LINES", "SEPARATED", "FUNCTION", "EXTENDED", "REFRESH",
 | |
|     "CLEAR", "CACHE", "UNCACHE", "LAZY", "FORMATTED",
 | |
|     "GLOBAL", "TEMPORARY", "OPTIONS", "UNSET", "TBLPROPERTIES",
 | |
|     "DBPROPERTIES", "BUCKETS", "SKEWED", "STORED", "DIRECTORIES",
 | |
|     "LOCATION", "EXCHANGE", "ARCHIVE", "UNARCHIVE", "FILEFORMAT",
 | |
|     "TOUCH", "COMPACT", "CONCATENATE", "CHANGE", "CASCADE",
 | |
|     "RESTRICT", "CLUSTERED", "SORTED", "PURGE", "INPUTFORMAT",
 | |
|     "OUTPUTFORMAT", "DATABASE", "DATABASES", "DFS", "TRUNCATE",
 | |
|     "ANALYZE", "COMPUTE", "LIST", "STATISTICS", "PARTITIONED",
 | |
|     "EXTERNAL", "DEFINED", "REVOKE", "GRANT", "LOCK",
 | |
|     "UNLOCK", "MSCK", "REPAIR", "RECOVER", "EXPORT", "IMPORT",
 | |
|     "LOAD", "ROLE", "ROLES", "COMPACTIONS", "PRINCIPALS",
 | |
|     "TRANSACTIONS", "INDEX", "INDEXES", "LOCKS", "OPTION",
 | |
|     "ANTI", "LOCAL", "INPATH", "WATERMARK", "UNNEST",
 | |
|     "MATCH_RECOGNIZE", "MEASURES", "ONE", "PER", "MATCH",
 | |
|     "SKIP1", "NEXT", "PAST", "PATTERN", "WITHIN", "DEFINE",
 | |
|     "STRING", "BIGINT_LITERAL", "SMALLINT_LITERAL", "TINYINT_LITERAL",
 | |
|     "INTEGER_VALUE", "DECIMAL_VALUE", "DOUBLE_LITERAL",
 | |
|     "BIGDECIMAL_LITERAL", "IDENTIFIER", "BACKQUOTED_IDENTIFIER",
 | |
|     "SIMPLE_COMMENT", "BRACKETED_EMPTY_COMMENT", "BRACKETED_COMMENT",
 | |
|     "WS", "UNRECOGNIZED"];
 | |
| var ruleNames = ["singleStatement", "singleExpression", "singleTableIdentifier",
 | |
|     "singleFunctionIdentifier", "singleDataType", "singleTableSchema",
 | |
|     "statement", "unsupportedHiveNativeCommands", "createTableHeader",
 | |
|     "bucketSpec", "skewSpec", "locationSpec", "query", "insertInto",
 | |
|     "partitionSpecLocation", "partitionSpec", "partitionVal",
 | |
|     "describeFuncName", "describeColName", "ctes", "namedQuery",
 | |
|     "tableProvider", "tablePropertyList", "tableProperty",
 | |
|     "tablePropertyKey", "tablePropertyValue", "constantList",
 | |
|     "nestedConstantList", "createFileFormat", "fileFormat",
 | |
|     "storageHandler", "resource", "queryNoWith", "queryOrganization",
 | |
|     "multiInsertQueryBody", "queryTerm", "queryPrimary",
 | |
|     "sortItem", "querySpecification", "hint", "hintStatement",
 | |
|     "fromClause", "aggregation", "groupingSet", "pivotClause",
 | |
|     "pivotColumn", "pivotValue", "lateralView", "setQuantifier",
 | |
|     "relation", "joinRelation", "joinType", "joinCriteria",
 | |
|     "sample", "sampleMethod", "identifierList", "identifierSeq",
 | |
|     "orderedIdentifierList", "orderedIdentifier", "identifierCommentList",
 | |
|     "identifierComment", "relationPrimary", "matchRecognize",
 | |
|     "measureColumn", "condition1", "variable", "pattern1",
 | |
|     "patternTerm", "patternFactor", "patternQuantifier",
 | |
|     "minRepeat", "maxRepeat", "repeat", "inlineTable", "functionTable",
 | |
|     "tableAlias", "rowFormat", "tableIdentifier", "functionIdentifier",
 | |
|     "namedExpression", "namedExpressionSeq", "expression",
 | |
|     "booleanExpression", "predicate", "valueExpression",
 | |
|     "primaryExpression", "constant", "comparisonOperator",
 | |
|     "arithmeticOperator", "predicateOperator", "booleanValue",
 | |
|     "interval", "intervalField", "intervalValue", "colPosition",
 | |
|     "dataType", "colTypeList", "colType", "dtColTypeList",
 | |
|     "dtColType", "complexColTypeList", "complexColType",
 | |
|     "whenClause", "windows", "namedWindow", "windowSpec",
 | |
|     "windowFrame", "frameBound", "qualifiedName", "identifier",
 | |
|     "strictIdentifier", "quotedIdentifier", "number", "nonReserved"];
 | |
| function sqlParser(input) {
 | |
|     antlr4.Parser.call(this, input);
 | |
|     this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache);
 | |
|     this.ruleNames = ruleNames;
 | |
|     this.literalNames = literalNames;
 | |
|     this.symbolicNames = symbolicNames;
 | |
|     return this;
 | |
| }
 | |
| sqlParser.prototype = Object.create(antlr4.Parser.prototype);
 | |
| sqlParser.prototype.constructor = sqlParser;
 | |
| Object.defineProperty(sqlParser.prototype, "atn", {
 | |
|     get: function () {
 | |
|         return atn;
 | |
|     }
 | |
| });
 | |
| sqlParser.EOF = antlr4.Token.EOF;
 | |
| sqlParser.T__0 = 1;
 | |
| sqlParser.T__1 = 2;
 | |
| sqlParser.T__2 = 3;
 | |
| sqlParser.T__3 = 4;
 | |
| sqlParser.T__4 = 5;
 | |
| sqlParser.T__5 = 6;
 | |
| sqlParser.T__6 = 7;
 | |
| sqlParser.T__7 = 8;
 | |
| sqlParser.T__8 = 9;
 | |
| sqlParser.T__9 = 10;
 | |
| sqlParser.T__10 = 11;
 | |
| sqlParser.T__11 = 12;
 | |
| sqlParser.T__12 = 13;
 | |
| sqlParser.T__13 = 14;
 | |
| sqlParser.T__14 = 15;
 | |
| sqlParser.T__15 = 16;
 | |
| sqlParser.SELECT = 17;
 | |
| sqlParser.FROM = 18;
 | |
| sqlParser.ADD = 19;
 | |
| sqlParser.AS = 20;
 | |
| sqlParser.ALL = 21;
 | |
| sqlParser.ANY = 22;
 | |
| sqlParser.DISTINCT = 23;
 | |
| sqlParser.WHERE = 24;
 | |
| sqlParser.GROUP = 25;
 | |
| sqlParser.BY = 26;
 | |
| sqlParser.GROUPING = 27;
 | |
| sqlParser.SETS = 28;
 | |
| sqlParser.CUBE = 29;
 | |
| sqlParser.ROLLUP = 30;
 | |
| sqlParser.ORDER = 31;
 | |
| sqlParser.HAVING = 32;
 | |
| sqlParser.LIMIT = 33;
 | |
| sqlParser.AT = 34;
 | |
| sqlParser.OR = 35;
 | |
| sqlParser.AND = 36;
 | |
| sqlParser.IN = 37;
 | |
| sqlParser.NOT = 38;
 | |
| sqlParser.NO = 39;
 | |
| sqlParser.EXISTS = 40;
 | |
| sqlParser.BETWEEN = 41;
 | |
| sqlParser.LIKE = 42;
 | |
| sqlParser.RLIKE = 43;
 | |
| sqlParser.IS = 44;
 | |
| sqlParser.NULL = 45;
 | |
| sqlParser.TRUE = 46;
 | |
| sqlParser.FALSE = 47;
 | |
| sqlParser.NULLS = 48;
 | |
| sqlParser.ASC = 49;
 | |
| sqlParser.DESC = 50;
 | |
| sqlParser.FOR = 51;
 | |
| sqlParser.INTERVAL = 52;
 | |
| sqlParser.CASE = 53;
 | |
| sqlParser.WHEN = 54;
 | |
| sqlParser.THEN = 55;
 | |
| sqlParser.ELSE = 56;
 | |
| sqlParser.END = 57;
 | |
| sqlParser.JOIN = 58;
 | |
| sqlParser.CROSS = 59;
 | |
| sqlParser.OUTER = 60;
 | |
| sqlParser.INNER = 61;
 | |
| sqlParser.LEFT = 62;
 | |
| sqlParser.SEMI = 63;
 | |
| sqlParser.RIGHT = 64;
 | |
| sqlParser.FULL = 65;
 | |
| sqlParser.NATURAL = 66;
 | |
| sqlParser.ON = 67;
 | |
| sqlParser.PIVOT = 68;
 | |
| sqlParser.LATERAL = 69;
 | |
| sqlParser.WINDOW = 70;
 | |
| sqlParser.OVER = 71;
 | |
| sqlParser.PARTITION = 72;
 | |
| sqlParser.RANGE = 73;
 | |
| sqlParser.ROWS = 74;
 | |
| sqlParser.UNBOUNDED = 75;
 | |
| sqlParser.PRECEDING = 76;
 | |
| sqlParser.FOLLOWING = 77;
 | |
| sqlParser.CURRENT = 78;
 | |
| sqlParser.FIRST = 79;
 | |
| sqlParser.AFTER = 80;
 | |
| sqlParser.LAST = 81;
 | |
| sqlParser.ROW = 82;
 | |
| sqlParser.WITH = 83;
 | |
| sqlParser.VALUES = 84;
 | |
| sqlParser.CREATE = 85;
 | |
| sqlParser.TABLE = 86;
 | |
| sqlParser.DIRECTORY = 87;
 | |
| sqlParser.VIEW = 88;
 | |
| sqlParser.REPLACE = 89;
 | |
| sqlParser.INSERT = 90;
 | |
| sqlParser.DELETE = 91;
 | |
| sqlParser.INTO = 92;
 | |
| sqlParser.DESCRIBE = 93;
 | |
| sqlParser.EXPLAIN = 94;
 | |
| sqlParser.FORMAT = 95;
 | |
| sqlParser.LOGICAL = 96;
 | |
| sqlParser.CODEGEN = 97;
 | |
| sqlParser.COST = 98;
 | |
| sqlParser.CAST = 99;
 | |
| sqlParser.SHOW = 100;
 | |
| sqlParser.TABLES = 101;
 | |
| sqlParser.COLUMNS = 102;
 | |
| sqlParser.COLUMN = 103;
 | |
| sqlParser.USE = 104;
 | |
| sqlParser.PARTITIONS = 105;
 | |
| sqlParser.FUNCTIONS = 106;
 | |
| sqlParser.DROP = 107;
 | |
| sqlParser.UNION = 108;
 | |
| sqlParser.EXCEPT = 109;
 | |
| sqlParser.SETMINUS = 110;
 | |
| sqlParser.INTERSECT = 111;
 | |
| sqlParser.TO = 112;
 | |
| sqlParser.TABLESAMPLE = 113;
 | |
| sqlParser.STRATIFY = 114;
 | |
| sqlParser.ALTER = 115;
 | |
| sqlParser.RENAME = 116;
 | |
| sqlParser.ARRAY = 117;
 | |
| sqlParser.MAP = 118;
 | |
| sqlParser.STRUCT = 119;
 | |
| sqlParser.COMMENT = 120;
 | |
| sqlParser.SET = 121;
 | |
| sqlParser.RESET = 122;
 | |
| sqlParser.DATA = 123;
 | |
| sqlParser.START = 124;
 | |
| sqlParser.TRANSACTION = 125;
 | |
| sqlParser.COMMIT = 126;
 | |
| sqlParser.ROLLBACK = 127;
 | |
| sqlParser.MACRO = 128;
 | |
| sqlParser.IGNORE = 129;
 | |
| sqlParser.BOTH = 130;
 | |
| sqlParser.LEADING = 131;
 | |
| sqlParser.TRAILING = 132;
 | |
| sqlParser.IF = 133;
 | |
| sqlParser.POSITION = 134;
 | |
| sqlParser.EXTRACT = 135;
 | |
| sqlParser.EQ = 136;
 | |
| sqlParser.NSEQ = 137;
 | |
| sqlParser.NEQ = 138;
 | |
| sqlParser.NEQJ = 139;
 | |
| sqlParser.LT = 140;
 | |
| sqlParser.LTE = 141;
 | |
| sqlParser.GT = 142;
 | |
| sqlParser.GTE = 143;
 | |
| sqlParser.PLUS = 144;
 | |
| sqlParser.MINUS = 145;
 | |
| sqlParser.ASTERISK = 146;
 | |
| sqlParser.SLASH = 147;
 | |
| sqlParser.PERCENT = 148;
 | |
| sqlParser.DIV = 149;
 | |
| sqlParser.TILDE = 150;
 | |
| sqlParser.AMPERSAND = 151;
 | |
| sqlParser.PIPE = 152;
 | |
| sqlParser.CONCAT_PIPE = 153;
 | |
| sqlParser.HAT = 154;
 | |
| sqlParser.PERCENTLIT = 155;
 | |
| sqlParser.BUCKET = 156;
 | |
| sqlParser.OUT = 157;
 | |
| sqlParser.OF = 158;
 | |
| sqlParser.SORT = 159;
 | |
| sqlParser.CLUSTER = 160;
 | |
| sqlParser.DISTRIBUTE = 161;
 | |
| sqlParser.OVERWRITE = 162;
 | |
| sqlParser.TRANSFORM = 163;
 | |
| sqlParser.REDUCE = 164;
 | |
| sqlParser.USING = 165;
 | |
| sqlParser.SERDE = 166;
 | |
| sqlParser.SERDEPROPERTIES = 167;
 | |
| sqlParser.RECORDREADER = 168;
 | |
| sqlParser.RECORDWRITER = 169;
 | |
| sqlParser.DELIMITED = 170;
 | |
| sqlParser.FIELDS = 171;
 | |
| sqlParser.TERMINATED = 172;
 | |
| sqlParser.COLLECTION = 173;
 | |
| sqlParser.ITEMS = 174;
 | |
| sqlParser.KEYS = 175;
 | |
| sqlParser.ESCAPED = 176;
 | |
| sqlParser.LINES = 177;
 | |
| sqlParser.SEPARATED = 178;
 | |
| sqlParser.FUNCTION = 179;
 | |
| sqlParser.EXTENDED = 180;
 | |
| sqlParser.REFRESH = 181;
 | |
| sqlParser.CLEAR = 182;
 | |
| sqlParser.CACHE = 183;
 | |
| sqlParser.UNCACHE = 184;
 | |
| sqlParser.LAZY = 185;
 | |
| sqlParser.FORMATTED = 186;
 | |
| sqlParser.GLOBAL = 187;
 | |
| sqlParser.TEMPORARY = 188;
 | |
| sqlParser.OPTIONS = 189;
 | |
| sqlParser.UNSET = 190;
 | |
| sqlParser.TBLPROPERTIES = 191;
 | |
| sqlParser.DBPROPERTIES = 192;
 | |
| sqlParser.BUCKETS = 193;
 | |
| sqlParser.SKEWED = 194;
 | |
| sqlParser.STORED = 195;
 | |
| sqlParser.DIRECTORIES = 196;
 | |
| sqlParser.LOCATION = 197;
 | |
| sqlParser.EXCHANGE = 198;
 | |
| sqlParser.ARCHIVE = 199;
 | |
| sqlParser.UNARCHIVE = 200;
 | |
| sqlParser.FILEFORMAT = 201;
 | |
| sqlParser.TOUCH = 202;
 | |
| sqlParser.COMPACT = 203;
 | |
| sqlParser.CONCATENATE = 204;
 | |
| sqlParser.CHANGE = 205;
 | |
| sqlParser.CASCADE = 206;
 | |
| sqlParser.RESTRICT = 207;
 | |
| sqlParser.CLUSTERED = 208;
 | |
| sqlParser.SORTED = 209;
 | |
| sqlParser.PURGE = 210;
 | |
| sqlParser.INPUTFORMAT = 211;
 | |
| sqlParser.OUTPUTFORMAT = 212;
 | |
| sqlParser.DATABASE = 213;
 | |
| sqlParser.DATABASES = 214;
 | |
| sqlParser.DFS = 215;
 | |
| sqlParser.TRUNCATE = 216;
 | |
| sqlParser.ANALYZE = 217;
 | |
| sqlParser.COMPUTE = 218;
 | |
| sqlParser.LIST = 219;
 | |
| sqlParser.STATISTICS = 220;
 | |
| sqlParser.PARTITIONED = 221;
 | |
| sqlParser.EXTERNAL = 222;
 | |
| sqlParser.DEFINED = 223;
 | |
| sqlParser.REVOKE = 224;
 | |
| sqlParser.GRANT = 225;
 | |
| sqlParser.LOCK = 226;
 | |
| sqlParser.UNLOCK = 227;
 | |
| sqlParser.MSCK = 228;
 | |
| sqlParser.REPAIR = 229;
 | |
| sqlParser.RECOVER = 230;
 | |
| sqlParser.EXPORT = 231;
 | |
| sqlParser.IMPORT = 232;
 | |
| sqlParser.LOAD = 233;
 | |
| sqlParser.ROLE = 234;
 | |
| sqlParser.ROLES = 235;
 | |
| sqlParser.COMPACTIONS = 236;
 | |
| sqlParser.PRINCIPALS = 237;
 | |
| sqlParser.TRANSACTIONS = 238;
 | |
| sqlParser.INDEX = 239;
 | |
| sqlParser.INDEXES = 240;
 | |
| sqlParser.LOCKS = 241;
 | |
| sqlParser.OPTION = 242;
 | |
| sqlParser.ANTI = 243;
 | |
| sqlParser.LOCAL = 244;
 | |
| sqlParser.INPATH = 245;
 | |
| sqlParser.WATERMARK = 246;
 | |
| sqlParser.UNNEST = 247;
 | |
| sqlParser.MATCH_RECOGNIZE = 248;
 | |
| sqlParser.MEASURES = 249;
 | |
| sqlParser.ONE = 250;
 | |
| sqlParser.PER = 251;
 | |
| sqlParser.MATCH = 252;
 | |
| sqlParser.SKIP1 = 253;
 | |
| sqlParser.NEXT = 254;
 | |
| sqlParser.PAST = 255;
 | |
| sqlParser.PATTERN = 256;
 | |
| sqlParser.WITHIN = 257;
 | |
| sqlParser.DEFINE = 258;
 | |
| sqlParser.STRING = 259;
 | |
| sqlParser.BIGINT_LITERAL = 260;
 | |
| sqlParser.SMALLINT_LITERAL = 261;
 | |
| sqlParser.TINYINT_LITERAL = 262;
 | |
| sqlParser.INTEGER_VALUE = 263;
 | |
| sqlParser.DECIMAL_VALUE = 264;
 | |
| sqlParser.DOUBLE_LITERAL = 265;
 | |
| sqlParser.BIGDECIMAL_LITERAL = 266;
 | |
| sqlParser.IDENTIFIER = 267;
 | |
| sqlParser.BACKQUOTED_IDENTIFIER = 268;
 | |
| sqlParser.SIMPLE_COMMENT = 269;
 | |
| sqlParser.BRACKETED_EMPTY_COMMENT = 270;
 | |
| sqlParser.BRACKETED_COMMENT = 271;
 | |
| sqlParser.WS = 272;
 | |
| sqlParser.UNRECOGNIZED = 273;
 | |
| sqlParser.RULE_singleStatement = 0;
 | |
| sqlParser.RULE_singleExpression = 1;
 | |
| sqlParser.RULE_singleTableIdentifier = 2;
 | |
| sqlParser.RULE_singleFunctionIdentifier = 3;
 | |
| sqlParser.RULE_singleDataType = 4;
 | |
| sqlParser.RULE_singleTableSchema = 5;
 | |
| sqlParser.RULE_statement = 6;
 | |
| sqlParser.RULE_unsupportedHiveNativeCommands = 7;
 | |
| sqlParser.RULE_createTableHeader = 8;
 | |
| sqlParser.RULE_bucketSpec = 9;
 | |
| sqlParser.RULE_skewSpec = 10;
 | |
| sqlParser.RULE_locationSpec = 11;
 | |
| sqlParser.RULE_query = 12;
 | |
| sqlParser.RULE_insertInto = 13;
 | |
| sqlParser.RULE_partitionSpecLocation = 14;
 | |
| sqlParser.RULE_partitionSpec = 15;
 | |
| sqlParser.RULE_partitionVal = 16;
 | |
| sqlParser.RULE_describeFuncName = 17;
 | |
| sqlParser.RULE_describeColName = 18;
 | |
| sqlParser.RULE_ctes = 19;
 | |
| sqlParser.RULE_namedQuery = 20;
 | |
| sqlParser.RULE_tableProvider = 21;
 | |
| sqlParser.RULE_tablePropertyList = 22;
 | |
| sqlParser.RULE_tableProperty = 23;
 | |
| sqlParser.RULE_tablePropertyKey = 24;
 | |
| sqlParser.RULE_tablePropertyValue = 25;
 | |
| sqlParser.RULE_constantList = 26;
 | |
| sqlParser.RULE_nestedConstantList = 27;
 | |
| sqlParser.RULE_createFileFormat = 28;
 | |
| sqlParser.RULE_fileFormat = 29;
 | |
| sqlParser.RULE_storageHandler = 30;
 | |
| sqlParser.RULE_resource = 31;
 | |
| sqlParser.RULE_queryNoWith = 32;
 | |
| sqlParser.RULE_queryOrganization = 33;
 | |
| sqlParser.RULE_multiInsertQueryBody = 34;
 | |
| sqlParser.RULE_queryTerm = 35;
 | |
| sqlParser.RULE_queryPrimary = 36;
 | |
| sqlParser.RULE_sortItem = 37;
 | |
| sqlParser.RULE_querySpecification = 38;
 | |
| sqlParser.RULE_hint = 39;
 | |
| sqlParser.RULE_hintStatement = 40;
 | |
| sqlParser.RULE_fromClause = 41;
 | |
| sqlParser.RULE_aggregation = 42;
 | |
| sqlParser.RULE_groupingSet = 43;
 | |
| sqlParser.RULE_pivotClause = 44;
 | |
| sqlParser.RULE_pivotColumn = 45;
 | |
| sqlParser.RULE_pivotValue = 46;
 | |
| sqlParser.RULE_lateralView = 47;
 | |
| sqlParser.RULE_setQuantifier = 48;
 | |
| sqlParser.RULE_relation = 49;
 | |
| sqlParser.RULE_joinRelation = 50;
 | |
| sqlParser.RULE_joinType = 51;
 | |
| sqlParser.RULE_joinCriteria = 52;
 | |
| sqlParser.RULE_sample = 53;
 | |
| sqlParser.RULE_sampleMethod = 54;
 | |
| sqlParser.RULE_identifierList = 55;
 | |
| sqlParser.RULE_identifierSeq = 56;
 | |
| sqlParser.RULE_orderedIdentifierList = 57;
 | |
| sqlParser.RULE_orderedIdentifier = 58;
 | |
| sqlParser.RULE_identifierCommentList = 59;
 | |
| sqlParser.RULE_identifierComment = 60;
 | |
| sqlParser.RULE_relationPrimary = 61;
 | |
| sqlParser.RULE_matchRecognize = 62;
 | |
| sqlParser.RULE_measureColumn = 63;
 | |
| sqlParser.RULE_condition1 = 64;
 | |
| sqlParser.RULE_variable = 65;
 | |
| sqlParser.RULE_pattern1 = 66;
 | |
| sqlParser.RULE_patternTerm = 67;
 | |
| sqlParser.RULE_patternFactor = 68;
 | |
| sqlParser.RULE_patternQuantifier = 69;
 | |
| sqlParser.RULE_minRepeat = 70;
 | |
| sqlParser.RULE_maxRepeat = 71;
 | |
| sqlParser.RULE_repeat = 72;
 | |
| sqlParser.RULE_inlineTable = 73;
 | |
| sqlParser.RULE_functionTable = 74;
 | |
| sqlParser.RULE_tableAlias = 75;
 | |
| sqlParser.RULE_rowFormat = 76;
 | |
| sqlParser.RULE_tableIdentifier = 77;
 | |
| sqlParser.RULE_functionIdentifier = 78;
 | |
| sqlParser.RULE_namedExpression = 79;
 | |
| sqlParser.RULE_namedExpressionSeq = 80;
 | |
| sqlParser.RULE_expression = 81;
 | |
| sqlParser.RULE_booleanExpression = 82;
 | |
| sqlParser.RULE_predicate = 83;
 | |
| sqlParser.RULE_valueExpression = 84;
 | |
| sqlParser.RULE_primaryExpression = 85;
 | |
| sqlParser.RULE_constant = 86;
 | |
| sqlParser.RULE_comparisonOperator = 87;
 | |
| sqlParser.RULE_arithmeticOperator = 88;
 | |
| sqlParser.RULE_predicateOperator = 89;
 | |
| sqlParser.RULE_booleanValue = 90;
 | |
| sqlParser.RULE_interval = 91;
 | |
| sqlParser.RULE_intervalField = 92;
 | |
| sqlParser.RULE_intervalValue = 93;
 | |
| sqlParser.RULE_colPosition = 94;
 | |
| sqlParser.RULE_dataType = 95;
 | |
| sqlParser.RULE_colTypeList = 96;
 | |
| sqlParser.RULE_colType = 97;
 | |
| sqlParser.RULE_dtColTypeList = 98;
 | |
| sqlParser.RULE_dtColType = 99;
 | |
| sqlParser.RULE_complexColTypeList = 100;
 | |
| sqlParser.RULE_complexColType = 101;
 | |
| sqlParser.RULE_whenClause = 102;
 | |
| sqlParser.RULE_windows = 103;
 | |
| sqlParser.RULE_namedWindow = 104;
 | |
| sqlParser.RULE_windowSpec = 105;
 | |
| sqlParser.RULE_windowFrame = 106;
 | |
| sqlParser.RULE_frameBound = 107;
 | |
| sqlParser.RULE_qualifiedName = 108;
 | |
| sqlParser.RULE_identifier = 109;
 | |
| sqlParser.RULE_strictIdentifier = 110;
 | |
| sqlParser.RULE_quotedIdentifier = 111;
 | |
| sqlParser.RULE_number = 112;
 | |
| sqlParser.RULE_nonReserved = 113;
 | |
| function SingleStatementContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_singleStatement;
 | |
|     return this;
 | |
| }
 | |
| SingleStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| SingleStatementContext.prototype.constructor = SingleStatementContext;
 | |
| SingleStatementContext.prototype.statement = function () {
 | |
|     return this.getTypedRuleContext(StatementContext, 0);
 | |
| };
 | |
| SingleStatementContext.prototype.EOF = function () {
 | |
|     return this.getToken(sqlParser.EOF, 0);
 | |
| };
 | |
| SingleStatementContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSingleStatement(this);
 | |
|     }
 | |
| };
 | |
| SingleStatementContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSingleStatement(this);
 | |
|     }
 | |
| };
 | |
| SingleStatementContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSingleStatement(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.SingleStatementContext = SingleStatementContext;
 | |
| sqlParser.prototype.singleStatement = function () {
 | |
|     var localctx = new SingleStatementContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 0, sqlParser.RULE_singleStatement);
 | |
|     try {
 | |
|         this.state = 232;
 | |
|         this._errHandler.sync(this);
 | |
|         switch (this._input.LA(1)) {
 | |
|             case sqlParser.T__0:
 | |
|             case sqlParser.SELECT:
 | |
|             case sqlParser.FROM:
 | |
|             case sqlParser.ADD:
 | |
|             case sqlParser.DESC:
 | |
|             case sqlParser.WITH:
 | |
|             case sqlParser.VALUES:
 | |
|             case sqlParser.CREATE:
 | |
|             case sqlParser.TABLE:
 | |
|             case sqlParser.INSERT:
 | |
|             case sqlParser.DELETE:
 | |
|             case sqlParser.DESCRIBE:
 | |
|             case sqlParser.EXPLAIN:
 | |
|             case sqlParser.SHOW:
 | |
|             case sqlParser.USE:
 | |
|             case sqlParser.DROP:
 | |
|             case sqlParser.ALTER:
 | |
|             case sqlParser.MAP:
 | |
|             case sqlParser.SET:
 | |
|             case sqlParser.RESET:
 | |
|             case sqlParser.START:
 | |
|             case sqlParser.COMMIT:
 | |
|             case sqlParser.ROLLBACK:
 | |
|             case sqlParser.REDUCE:
 | |
|             case sqlParser.REFRESH:
 | |
|             case sqlParser.CLEAR:
 | |
|             case sqlParser.CACHE:
 | |
|             case sqlParser.UNCACHE:
 | |
|             case sqlParser.DFS:
 | |
|             case sqlParser.TRUNCATE:
 | |
|             case sqlParser.ANALYZE:
 | |
|             case sqlParser.LIST:
 | |
|             case sqlParser.REVOKE:
 | |
|             case sqlParser.GRANT:
 | |
|             case sqlParser.LOCK:
 | |
|             case sqlParser.UNLOCK:
 | |
|             case sqlParser.MSCK:
 | |
|             case sqlParser.EXPORT:
 | |
|             case sqlParser.IMPORT:
 | |
|             case sqlParser.LOAD:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 228;
 | |
|                 this.statement();
 | |
|                 this.state = 229;
 | |
|                 this.match(sqlParser.EOF);
 | |
|                 break;
 | |
|             case sqlParser.EOF:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 231;
 | |
|                 this.match(sqlParser.EOF);
 | |
|                 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 SingleExpressionContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_singleExpression;
 | |
|     return this;
 | |
| }
 | |
| SingleExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| SingleExpressionContext.prototype.constructor = SingleExpressionContext;
 | |
| SingleExpressionContext.prototype.namedExpression = function () {
 | |
|     return this.getTypedRuleContext(NamedExpressionContext, 0);
 | |
| };
 | |
| SingleExpressionContext.prototype.EOF = function () {
 | |
|     return this.getToken(sqlParser.EOF, 0);
 | |
| };
 | |
| SingleExpressionContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSingleExpression(this);
 | |
|     }
 | |
| };
 | |
| SingleExpressionContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSingleExpression(this);
 | |
|     }
 | |
| };
 | |
| SingleExpressionContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSingleExpression(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.SingleExpressionContext = SingleExpressionContext;
 | |
| sqlParser.prototype.singleExpression = function () {
 | |
|     var localctx = new SingleExpressionContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 2, sqlParser.RULE_singleExpression);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 234;
 | |
|         this.namedExpression();
 | |
|         this.state = 235;
 | |
|         this.match(sqlParser.EOF);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function SingleTableIdentifierContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_singleTableIdentifier;
 | |
|     return this;
 | |
| }
 | |
| SingleTableIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| SingleTableIdentifierContext.prototype.constructor = SingleTableIdentifierContext;
 | |
| SingleTableIdentifierContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| SingleTableIdentifierContext.prototype.EOF = function () {
 | |
|     return this.getToken(sqlParser.EOF, 0);
 | |
| };
 | |
| SingleTableIdentifierContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSingleTableIdentifier(this);
 | |
|     }
 | |
| };
 | |
| SingleTableIdentifierContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSingleTableIdentifier(this);
 | |
|     }
 | |
| };
 | |
| SingleTableIdentifierContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSingleTableIdentifier(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.SingleTableIdentifierContext = SingleTableIdentifierContext;
 | |
| sqlParser.prototype.singleTableIdentifier = function () {
 | |
|     var localctx = new SingleTableIdentifierContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 4, sqlParser.RULE_singleTableIdentifier);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 237;
 | |
|         this.tableIdentifier();
 | |
|         this.state = 238;
 | |
|         this.match(sqlParser.EOF);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function SingleFunctionIdentifierContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_singleFunctionIdentifier;
 | |
|     return this;
 | |
| }
 | |
| SingleFunctionIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| SingleFunctionIdentifierContext.prototype.constructor = SingleFunctionIdentifierContext;
 | |
| SingleFunctionIdentifierContext.prototype.functionIdentifier = function () {
 | |
|     return this.getTypedRuleContext(FunctionIdentifierContext, 0);
 | |
| };
 | |
| SingleFunctionIdentifierContext.prototype.EOF = function () {
 | |
|     return this.getToken(sqlParser.EOF, 0);
 | |
| };
 | |
| SingleFunctionIdentifierContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSingleFunctionIdentifier(this);
 | |
|     }
 | |
| };
 | |
| SingleFunctionIdentifierContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSingleFunctionIdentifier(this);
 | |
|     }
 | |
| };
 | |
| SingleFunctionIdentifierContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSingleFunctionIdentifier(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.SingleFunctionIdentifierContext = SingleFunctionIdentifierContext;
 | |
| sqlParser.prototype.singleFunctionIdentifier = function () {
 | |
|     var localctx = new SingleFunctionIdentifierContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 6, sqlParser.RULE_singleFunctionIdentifier);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 240;
 | |
|         this.functionIdentifier();
 | |
|         this.state = 241;
 | |
|         this.match(sqlParser.EOF);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function SingleDataTypeContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_singleDataType;
 | |
|     return this;
 | |
| }
 | |
| SingleDataTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| SingleDataTypeContext.prototype.constructor = SingleDataTypeContext;
 | |
| SingleDataTypeContext.prototype.dataType = function () {
 | |
|     return this.getTypedRuleContext(DataTypeContext, 0);
 | |
| };
 | |
| SingleDataTypeContext.prototype.EOF = function () {
 | |
|     return this.getToken(sqlParser.EOF, 0);
 | |
| };
 | |
| SingleDataTypeContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSingleDataType(this);
 | |
|     }
 | |
| };
 | |
| SingleDataTypeContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSingleDataType(this);
 | |
|     }
 | |
| };
 | |
| SingleDataTypeContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSingleDataType(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.SingleDataTypeContext = SingleDataTypeContext;
 | |
| sqlParser.prototype.singleDataType = function () {
 | |
|     var localctx = new SingleDataTypeContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 8, sqlParser.RULE_singleDataType);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 243;
 | |
|         this.dataType();
 | |
|         this.state = 244;
 | |
|         this.match(sqlParser.EOF);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function SingleTableSchemaContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_singleTableSchema;
 | |
|     return this;
 | |
| }
 | |
| SingleTableSchemaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| SingleTableSchemaContext.prototype.constructor = SingleTableSchemaContext;
 | |
| SingleTableSchemaContext.prototype.colTypeList = function () {
 | |
|     return this.getTypedRuleContext(ColTypeListContext, 0);
 | |
| };
 | |
| SingleTableSchemaContext.prototype.EOF = function () {
 | |
|     return this.getToken(sqlParser.EOF, 0);
 | |
| };
 | |
| SingleTableSchemaContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSingleTableSchema(this);
 | |
|     }
 | |
| };
 | |
| SingleTableSchemaContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSingleTableSchema(this);
 | |
|     }
 | |
| };
 | |
| SingleTableSchemaContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSingleTableSchema(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.SingleTableSchemaContext = SingleTableSchemaContext;
 | |
| sqlParser.prototype.singleTableSchema = function () {
 | |
|     var localctx = new SingleTableSchemaContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 10, sqlParser.RULE_singleTableSchema);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 246;
 | |
|         this.colTypeList();
 | |
|         this.state = 247;
 | |
|         this.match(sqlParser.EOF);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function StatementContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_statement;
 | |
|     return this;
 | |
| }
 | |
| StatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| StatementContext.prototype.constructor = StatementContext;
 | |
| StatementContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function ExplainContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ExplainContext.prototype = Object.create(StatementContext.prototype);
 | |
| ExplainContext.prototype.constructor = ExplainContext;
 | |
| sqlParser.ExplainContext = ExplainContext;
 | |
| ExplainContext.prototype.EXPLAIN = function () {
 | |
|     return this.getToken(sqlParser.EXPLAIN, 0);
 | |
| };
 | |
| ExplainContext.prototype.statement = function () {
 | |
|     return this.getTypedRuleContext(StatementContext, 0);
 | |
| };
 | |
| ExplainContext.prototype.LOGICAL = function () {
 | |
|     return this.getToken(sqlParser.LOGICAL, 0);
 | |
| };
 | |
| ExplainContext.prototype.FORMATTED = function () {
 | |
|     return this.getToken(sqlParser.FORMATTED, 0);
 | |
| };
 | |
| ExplainContext.prototype.EXTENDED = function () {
 | |
|     return this.getToken(sqlParser.EXTENDED, 0);
 | |
| };
 | |
| ExplainContext.prototype.CODEGEN = function () {
 | |
|     return this.getToken(sqlParser.CODEGEN, 0);
 | |
| };
 | |
| ExplainContext.prototype.COST = function () {
 | |
|     return this.getToken(sqlParser.COST, 0);
 | |
| };
 | |
| ExplainContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterExplain(this);
 | |
|     }
 | |
| };
 | |
| ExplainContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitExplain(this);
 | |
|     }
 | |
| };
 | |
| ExplainContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitExplain(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function DropDatabaseContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| DropDatabaseContext.prototype = Object.create(StatementContext.prototype);
 | |
| DropDatabaseContext.prototype.constructor = DropDatabaseContext;
 | |
| sqlParser.DropDatabaseContext = DropDatabaseContext;
 | |
| DropDatabaseContext.prototype.DROP = function () {
 | |
|     return this.getToken(sqlParser.DROP, 0);
 | |
| };
 | |
| DropDatabaseContext.prototype.DATABASE = function () {
 | |
|     return this.getToken(sqlParser.DATABASE, 0);
 | |
| };
 | |
| DropDatabaseContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| DropDatabaseContext.prototype.IF = function () {
 | |
|     return this.getToken(sqlParser.IF, 0);
 | |
| };
 | |
| DropDatabaseContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| DropDatabaseContext.prototype.RESTRICT = function () {
 | |
|     return this.getToken(sqlParser.RESTRICT, 0);
 | |
| };
 | |
| DropDatabaseContext.prototype.CASCADE = function () {
 | |
|     return this.getToken(sqlParser.CASCADE, 0);
 | |
| };
 | |
| DropDatabaseContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterDropDatabase(this);
 | |
|     }
 | |
| };
 | |
| DropDatabaseContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitDropDatabase(this);
 | |
|     }
 | |
| };
 | |
| DropDatabaseContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitDropDatabase(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ResetConfigurationContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ResetConfigurationContext.prototype = Object.create(StatementContext.prototype);
 | |
| ResetConfigurationContext.prototype.constructor = ResetConfigurationContext;
 | |
| sqlParser.ResetConfigurationContext = ResetConfigurationContext;
 | |
| ResetConfigurationContext.prototype.RESET = function () {
 | |
|     return this.getToken(sqlParser.RESET, 0);
 | |
| };
 | |
| ResetConfigurationContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterResetConfiguration(this);
 | |
|     }
 | |
| };
 | |
| ResetConfigurationContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitResetConfiguration(this);
 | |
|     }
 | |
| };
 | |
| ResetConfigurationContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitResetConfiguration(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function DescribeDatabaseContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| DescribeDatabaseContext.prototype = Object.create(StatementContext.prototype);
 | |
| DescribeDatabaseContext.prototype.constructor = DescribeDatabaseContext;
 | |
| sqlParser.DescribeDatabaseContext = DescribeDatabaseContext;
 | |
| DescribeDatabaseContext.prototype.DATABASE = function () {
 | |
|     return this.getToken(sqlParser.DATABASE, 0);
 | |
| };
 | |
| DescribeDatabaseContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| DescribeDatabaseContext.prototype.DESC = function () {
 | |
|     return this.getToken(sqlParser.DESC, 0);
 | |
| };
 | |
| DescribeDatabaseContext.prototype.DESCRIBE = function () {
 | |
|     return this.getToken(sqlParser.DESCRIBE, 0);
 | |
| };
 | |
| DescribeDatabaseContext.prototype.EXTENDED = function () {
 | |
|     return this.getToken(sqlParser.EXTENDED, 0);
 | |
| };
 | |
| DescribeDatabaseContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterDescribeDatabase(this);
 | |
|     }
 | |
| };
 | |
| DescribeDatabaseContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitDescribeDatabase(this);
 | |
|     }
 | |
| };
 | |
| DescribeDatabaseContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitDescribeDatabase(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function AlterViewQueryContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| AlterViewQueryContext.prototype = Object.create(StatementContext.prototype);
 | |
| AlterViewQueryContext.prototype.constructor = AlterViewQueryContext;
 | |
| sqlParser.AlterViewQueryContext = AlterViewQueryContext;
 | |
| AlterViewQueryContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| AlterViewQueryContext.prototype.VIEW = function () {
 | |
|     return this.getToken(sqlParser.VIEW, 0);
 | |
| };
 | |
| AlterViewQueryContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| AlterViewQueryContext.prototype.query = function () {
 | |
|     return this.getTypedRuleContext(QueryContext, 0);
 | |
| };
 | |
| AlterViewQueryContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| AlterViewQueryContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterAlterViewQuery(this);
 | |
|     }
 | |
| };
 | |
| AlterViewQueryContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitAlterViewQuery(this);
 | |
|     }
 | |
| };
 | |
| AlterViewQueryContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitAlterViewQuery(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function UseContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.db = null; // IdentifierContext;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| UseContext.prototype = Object.create(StatementContext.prototype);
 | |
| UseContext.prototype.constructor = UseContext;
 | |
| sqlParser.UseContext = UseContext;
 | |
| UseContext.prototype.USE = function () {
 | |
|     return this.getToken(sqlParser.USE, 0);
 | |
| };
 | |
| UseContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| UseContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterUse(this);
 | |
|     }
 | |
| };
 | |
| UseContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitUse(this);
 | |
|     }
 | |
| };
 | |
| UseContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitUse(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function CreateTempViewUsingContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| CreateTempViewUsingContext.prototype = Object.create(StatementContext.prototype);
 | |
| CreateTempViewUsingContext.prototype.constructor = CreateTempViewUsingContext;
 | |
| sqlParser.CreateTempViewUsingContext = CreateTempViewUsingContext;
 | |
| CreateTempViewUsingContext.prototype.CREATE = function () {
 | |
|     return this.getToken(sqlParser.CREATE, 0);
 | |
| };
 | |
| CreateTempViewUsingContext.prototype.TEMPORARY = function () {
 | |
|     return this.getToken(sqlParser.TEMPORARY, 0);
 | |
| };
 | |
| CreateTempViewUsingContext.prototype.VIEW = function () {
 | |
|     return this.getToken(sqlParser.VIEW, 0);
 | |
| };
 | |
| CreateTempViewUsingContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| CreateTempViewUsingContext.prototype.tableProvider = function () {
 | |
|     return this.getTypedRuleContext(TableProviderContext, 0);
 | |
| };
 | |
| CreateTempViewUsingContext.prototype.OR = function () {
 | |
|     return this.getToken(sqlParser.OR, 0);
 | |
| };
 | |
| CreateTempViewUsingContext.prototype.REPLACE = function () {
 | |
|     return this.getToken(sqlParser.REPLACE, 0);
 | |
| };
 | |
| CreateTempViewUsingContext.prototype.GLOBAL = function () {
 | |
|     return this.getToken(sqlParser.GLOBAL, 0);
 | |
| };
 | |
| CreateTempViewUsingContext.prototype.colTypeList = function () {
 | |
|     return this.getTypedRuleContext(ColTypeListContext, 0);
 | |
| };
 | |
| CreateTempViewUsingContext.prototype.OPTIONS = function () {
 | |
|     return this.getToken(sqlParser.OPTIONS, 0);
 | |
| };
 | |
| CreateTempViewUsingContext.prototype.tablePropertyList = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyListContext, 0);
 | |
| };
 | |
| CreateTempViewUsingContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterCreateTempViewUsing(this);
 | |
|     }
 | |
| };
 | |
| CreateTempViewUsingContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitCreateTempViewUsing(this);
 | |
|     }
 | |
| };
 | |
| CreateTempViewUsingContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitCreateTempViewUsing(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function RenameTableContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.from = null; // TableIdentifierContext;
 | |
|     this.to = null; // TableIdentifierContext;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| RenameTableContext.prototype = Object.create(StatementContext.prototype);
 | |
| RenameTableContext.prototype.constructor = RenameTableContext;
 | |
| sqlParser.RenameTableContext = RenameTableContext;
 | |
| RenameTableContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| RenameTableContext.prototype.RENAME = function () {
 | |
|     return this.getToken(sqlParser.RENAME, 0);
 | |
| };
 | |
| RenameTableContext.prototype.TO = function () {
 | |
|     return this.getToken(sqlParser.TO, 0);
 | |
| };
 | |
| RenameTableContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| RenameTableContext.prototype.VIEW = function () {
 | |
|     return this.getToken(sqlParser.VIEW, 0);
 | |
| };
 | |
| RenameTableContext.prototype.tableIdentifier = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(TableIdentifierContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(TableIdentifierContext, i);
 | |
|     }
 | |
| };
 | |
| RenameTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterRenameTable(this);
 | |
|     }
 | |
| };
 | |
| RenameTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitRenameTable(this);
 | |
|     }
 | |
| };
 | |
| RenameTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitRenameTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function FailNativeCommandContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| FailNativeCommandContext.prototype = Object.create(StatementContext.prototype);
 | |
| FailNativeCommandContext.prototype.constructor = FailNativeCommandContext;
 | |
| sqlParser.FailNativeCommandContext = FailNativeCommandContext;
 | |
| FailNativeCommandContext.prototype.SET = function () {
 | |
|     return this.getToken(sqlParser.SET, 0);
 | |
| };
 | |
| FailNativeCommandContext.prototype.ROLE = function () {
 | |
|     return this.getToken(sqlParser.ROLE, 0);
 | |
| };
 | |
| FailNativeCommandContext.prototype.unsupportedHiveNativeCommands = function () {
 | |
|     return this.getTypedRuleContext(UnsupportedHiveNativeCommandsContext, 0);
 | |
| };
 | |
| FailNativeCommandContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterFailNativeCommand(this);
 | |
|     }
 | |
| };
 | |
| FailNativeCommandContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitFailNativeCommand(this);
 | |
|     }
 | |
| };
 | |
| FailNativeCommandContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitFailNativeCommand(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ClearCacheContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ClearCacheContext.prototype = Object.create(StatementContext.prototype);
 | |
| ClearCacheContext.prototype.constructor = ClearCacheContext;
 | |
| sqlParser.ClearCacheContext = ClearCacheContext;
 | |
| ClearCacheContext.prototype.CLEAR = function () {
 | |
|     return this.getToken(sqlParser.CLEAR, 0);
 | |
| };
 | |
| ClearCacheContext.prototype.CACHE = function () {
 | |
|     return this.getToken(sqlParser.CACHE, 0);
 | |
| };
 | |
| ClearCacheContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterClearCache(this);
 | |
|     }
 | |
| };
 | |
| ClearCacheContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitClearCache(this);
 | |
|     }
 | |
| };
 | |
| ClearCacheContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitClearCache(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ShowTablesContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.db = null; // IdentifierContext;
 | |
|     this.pattern = null; // Token;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ShowTablesContext.prototype = Object.create(StatementContext.prototype);
 | |
| ShowTablesContext.prototype.constructor = ShowTablesContext;
 | |
| sqlParser.ShowTablesContext = ShowTablesContext;
 | |
| ShowTablesContext.prototype.SHOW = function () {
 | |
|     return this.getToken(sqlParser.SHOW, 0);
 | |
| };
 | |
| ShowTablesContext.prototype.TABLES = function () {
 | |
|     return this.getToken(sqlParser.TABLES, 0);
 | |
| };
 | |
| ShowTablesContext.prototype.FROM = function () {
 | |
|     return this.getToken(sqlParser.FROM, 0);
 | |
| };
 | |
| ShowTablesContext.prototype.IN = function () {
 | |
|     return this.getToken(sqlParser.IN, 0);
 | |
| };
 | |
| ShowTablesContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| ShowTablesContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| ShowTablesContext.prototype.LIKE = function () {
 | |
|     return this.getToken(sqlParser.LIKE, 0);
 | |
| };
 | |
| ShowTablesContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterShowTables(this);
 | |
|     }
 | |
| };
 | |
| ShowTablesContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitShowTables(this);
 | |
|     }
 | |
| };
 | |
| ShowTablesContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitShowTables(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function RecoverPartitionsContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| RecoverPartitionsContext.prototype = Object.create(StatementContext.prototype);
 | |
| RecoverPartitionsContext.prototype.constructor = RecoverPartitionsContext;
 | |
| sqlParser.RecoverPartitionsContext = RecoverPartitionsContext;
 | |
| RecoverPartitionsContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| RecoverPartitionsContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| RecoverPartitionsContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| RecoverPartitionsContext.prototype.RECOVER = function () {
 | |
|     return this.getToken(sqlParser.RECOVER, 0);
 | |
| };
 | |
| RecoverPartitionsContext.prototype.PARTITIONS = function () {
 | |
|     return this.getToken(sqlParser.PARTITIONS, 0);
 | |
| };
 | |
| RecoverPartitionsContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterRecoverPartitions(this);
 | |
|     }
 | |
| };
 | |
| RecoverPartitionsContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitRecoverPartitions(this);
 | |
|     }
 | |
| };
 | |
| RecoverPartitionsContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitRecoverPartitions(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function RenameTablePartitionContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.from = null; // PartitionSpecContext;
 | |
|     this.to = null; // PartitionSpecContext;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| RenameTablePartitionContext.prototype = Object.create(StatementContext.prototype);
 | |
| RenameTablePartitionContext.prototype.constructor = RenameTablePartitionContext;
 | |
| sqlParser.RenameTablePartitionContext = RenameTablePartitionContext;
 | |
| RenameTablePartitionContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| RenameTablePartitionContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| RenameTablePartitionContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| RenameTablePartitionContext.prototype.RENAME = function () {
 | |
|     return this.getToken(sqlParser.RENAME, 0);
 | |
| };
 | |
| RenameTablePartitionContext.prototype.TO = function () {
 | |
|     return this.getToken(sqlParser.TO, 0);
 | |
| };
 | |
| RenameTablePartitionContext.prototype.partitionSpec = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(PartitionSpecContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(PartitionSpecContext, i);
 | |
|     }
 | |
| };
 | |
| RenameTablePartitionContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterRenameTablePartition(this);
 | |
|     }
 | |
| };
 | |
| RenameTablePartitionContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitRenameTablePartition(this);
 | |
|     }
 | |
| };
 | |
| RenameTablePartitionContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitRenameTablePartition(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function RepairTableContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| RepairTableContext.prototype = Object.create(StatementContext.prototype);
 | |
| RepairTableContext.prototype.constructor = RepairTableContext;
 | |
| sqlParser.RepairTableContext = RepairTableContext;
 | |
| RepairTableContext.prototype.MSCK = function () {
 | |
|     return this.getToken(sqlParser.MSCK, 0);
 | |
| };
 | |
| RepairTableContext.prototype.REPAIR = function () {
 | |
|     return this.getToken(sqlParser.REPAIR, 0);
 | |
| };
 | |
| RepairTableContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| RepairTableContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| RepairTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterRepairTable(this);
 | |
|     }
 | |
| };
 | |
| RepairTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitRepairTable(this);
 | |
|     }
 | |
| };
 | |
| RepairTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitRepairTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function RefreshResourceContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| RefreshResourceContext.prototype = Object.create(StatementContext.prototype);
 | |
| RefreshResourceContext.prototype.constructor = RefreshResourceContext;
 | |
| sqlParser.RefreshResourceContext = RefreshResourceContext;
 | |
| RefreshResourceContext.prototype.REFRESH = function () {
 | |
|     return this.getToken(sqlParser.REFRESH, 0);
 | |
| };
 | |
| RefreshResourceContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| RefreshResourceContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterRefreshResource(this);
 | |
|     }
 | |
| };
 | |
| RefreshResourceContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitRefreshResource(this);
 | |
|     }
 | |
| };
 | |
| RefreshResourceContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitRefreshResource(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ShowCreateTableContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ShowCreateTableContext.prototype = Object.create(StatementContext.prototype);
 | |
| ShowCreateTableContext.prototype.constructor = ShowCreateTableContext;
 | |
| sqlParser.ShowCreateTableContext = ShowCreateTableContext;
 | |
| ShowCreateTableContext.prototype.SHOW = function () {
 | |
|     return this.getToken(sqlParser.SHOW, 0);
 | |
| };
 | |
| ShowCreateTableContext.prototype.CREATE = function () {
 | |
|     return this.getToken(sqlParser.CREATE, 0);
 | |
| };
 | |
| ShowCreateTableContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| ShowCreateTableContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| ShowCreateTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterShowCreateTable(this);
 | |
|     }
 | |
| };
 | |
| ShowCreateTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitShowCreateTable(this);
 | |
|     }
 | |
| };
 | |
| ShowCreateTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitShowCreateTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ShowColumnsContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.db = null; // IdentifierContext;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ShowColumnsContext.prototype = Object.create(StatementContext.prototype);
 | |
| ShowColumnsContext.prototype.constructor = ShowColumnsContext;
 | |
| sqlParser.ShowColumnsContext = ShowColumnsContext;
 | |
| ShowColumnsContext.prototype.SHOW = function () {
 | |
|     return this.getToken(sqlParser.SHOW, 0);
 | |
| };
 | |
| ShowColumnsContext.prototype.COLUMNS = function () {
 | |
|     return this.getToken(sqlParser.COLUMNS, 0);
 | |
| };
 | |
| ShowColumnsContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| ShowColumnsContext.prototype.FROM = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.FROM);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.FROM, i);
 | |
|     }
 | |
| };
 | |
| ShowColumnsContext.prototype.IN = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.IN);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.IN, i);
 | |
|     }
 | |
| };
 | |
| ShowColumnsContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| ShowColumnsContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterShowColumns(this);
 | |
|     }
 | |
| };
 | |
| ShowColumnsContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitShowColumns(this);
 | |
|     }
 | |
| };
 | |
| ShowColumnsContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitShowColumns(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function AddTablePartitionContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| AddTablePartitionContext.prototype = Object.create(StatementContext.prototype);
 | |
| AddTablePartitionContext.prototype.constructor = AddTablePartitionContext;
 | |
| sqlParser.AddTablePartitionContext = AddTablePartitionContext;
 | |
| AddTablePartitionContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| AddTablePartitionContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| AddTablePartitionContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| AddTablePartitionContext.prototype.ADD = function () {
 | |
|     return this.getToken(sqlParser.ADD, 0);
 | |
| };
 | |
| AddTablePartitionContext.prototype.IF = function () {
 | |
|     return this.getToken(sqlParser.IF, 0);
 | |
| };
 | |
| AddTablePartitionContext.prototype.NOT = function () {
 | |
|     return this.getToken(sqlParser.NOT, 0);
 | |
| };
 | |
| AddTablePartitionContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| AddTablePartitionContext.prototype.partitionSpecLocation = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(PartitionSpecLocationContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(PartitionSpecLocationContext, i);
 | |
|     }
 | |
| };
 | |
| AddTablePartitionContext.prototype.VIEW = function () {
 | |
|     return this.getToken(sqlParser.VIEW, 0);
 | |
| };
 | |
| AddTablePartitionContext.prototype.partitionSpec = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(PartitionSpecContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(PartitionSpecContext, i);
 | |
|     }
 | |
| };
 | |
| AddTablePartitionContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterAddTablePartition(this);
 | |
|     }
 | |
| };
 | |
| AddTablePartitionContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitAddTablePartition(this);
 | |
|     }
 | |
| };
 | |
| AddTablePartitionContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitAddTablePartition(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function RefreshTableContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| RefreshTableContext.prototype = Object.create(StatementContext.prototype);
 | |
| RefreshTableContext.prototype.constructor = RefreshTableContext;
 | |
| sqlParser.RefreshTableContext = RefreshTableContext;
 | |
| RefreshTableContext.prototype.REFRESH = function () {
 | |
|     return this.getToken(sqlParser.REFRESH, 0);
 | |
| };
 | |
| RefreshTableContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| RefreshTableContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| RefreshTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterRefreshTable(this);
 | |
|     }
 | |
| };
 | |
| RefreshTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitRefreshTable(this);
 | |
|     }
 | |
| };
 | |
| RefreshTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitRefreshTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ManageResourceContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.op = null; // Token;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ManageResourceContext.prototype = Object.create(StatementContext.prototype);
 | |
| ManageResourceContext.prototype.constructor = ManageResourceContext;
 | |
| sqlParser.ManageResourceContext = ManageResourceContext;
 | |
| ManageResourceContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| ManageResourceContext.prototype.ADD = function () {
 | |
|     return this.getToken(sqlParser.ADD, 0);
 | |
| };
 | |
| ManageResourceContext.prototype.LIST = function () {
 | |
|     return this.getToken(sqlParser.LIST, 0);
 | |
| };
 | |
| ManageResourceContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterManageResource(this);
 | |
|     }
 | |
| };
 | |
| ManageResourceContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitManageResource(this);
 | |
|     }
 | |
| };
 | |
| ManageResourceContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitManageResource(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function CreateDatabaseContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.comment = null; // Token;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| CreateDatabaseContext.prototype = Object.create(StatementContext.prototype);
 | |
| CreateDatabaseContext.prototype.constructor = CreateDatabaseContext;
 | |
| sqlParser.CreateDatabaseContext = CreateDatabaseContext;
 | |
| CreateDatabaseContext.prototype.CREATE = function () {
 | |
|     return this.getToken(sqlParser.CREATE, 0);
 | |
| };
 | |
| CreateDatabaseContext.prototype.DATABASE = function () {
 | |
|     return this.getToken(sqlParser.DATABASE, 0);
 | |
| };
 | |
| CreateDatabaseContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| CreateDatabaseContext.prototype.IF = function () {
 | |
|     return this.getToken(sqlParser.IF, 0);
 | |
| };
 | |
| CreateDatabaseContext.prototype.NOT = function () {
 | |
|     return this.getToken(sqlParser.NOT, 0);
 | |
| };
 | |
| CreateDatabaseContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| CreateDatabaseContext.prototype.COMMENT = function () {
 | |
|     return this.getToken(sqlParser.COMMENT, 0);
 | |
| };
 | |
| CreateDatabaseContext.prototype.locationSpec = function () {
 | |
|     return this.getTypedRuleContext(LocationSpecContext, 0);
 | |
| };
 | |
| CreateDatabaseContext.prototype.WITH = function () {
 | |
|     return this.getToken(sqlParser.WITH, 0);
 | |
| };
 | |
| CreateDatabaseContext.prototype.DBPROPERTIES = function () {
 | |
|     return this.getToken(sqlParser.DBPROPERTIES, 0);
 | |
| };
 | |
| CreateDatabaseContext.prototype.tablePropertyList = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyListContext, 0);
 | |
| };
 | |
| CreateDatabaseContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| CreateDatabaseContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterCreateDatabase(this);
 | |
|     }
 | |
| };
 | |
| CreateDatabaseContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitCreateDatabase(this);
 | |
|     }
 | |
| };
 | |
| CreateDatabaseContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitCreateDatabase(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function AnalyzeContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| AnalyzeContext.prototype = Object.create(StatementContext.prototype);
 | |
| AnalyzeContext.prototype.constructor = AnalyzeContext;
 | |
| sqlParser.AnalyzeContext = AnalyzeContext;
 | |
| AnalyzeContext.prototype.ANALYZE = function () {
 | |
|     return this.getToken(sqlParser.ANALYZE, 0);
 | |
| };
 | |
| AnalyzeContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| AnalyzeContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| AnalyzeContext.prototype.COMPUTE = function () {
 | |
|     return this.getToken(sqlParser.COMPUTE, 0);
 | |
| };
 | |
| AnalyzeContext.prototype.STATISTICS = function () {
 | |
|     return this.getToken(sqlParser.STATISTICS, 0);
 | |
| };
 | |
| AnalyzeContext.prototype.partitionSpec = function () {
 | |
|     return this.getTypedRuleContext(PartitionSpecContext, 0);
 | |
| };
 | |
| AnalyzeContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| AnalyzeContext.prototype.FOR = function () {
 | |
|     return this.getToken(sqlParser.FOR, 0);
 | |
| };
 | |
| AnalyzeContext.prototype.COLUMNS = function () {
 | |
|     return this.getToken(sqlParser.COLUMNS, 0);
 | |
| };
 | |
| AnalyzeContext.prototype.identifierSeq = function () {
 | |
|     return this.getTypedRuleContext(IdentifierSeqContext, 0);
 | |
| };
 | |
| AnalyzeContext.prototype.ALL = function () {
 | |
|     return this.getToken(sqlParser.ALL, 0);
 | |
| };
 | |
| AnalyzeContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterAnalyze(this);
 | |
|     }
 | |
| };
 | |
| AnalyzeContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitAnalyze(this);
 | |
|     }
 | |
| };
 | |
| AnalyzeContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitAnalyze(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function CreateHiveTableContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.columns = null; // ColTypeListContext;
 | |
|     this.comment = null; // Token;
 | |
|     this.partitionColumns = null; // ColTypeListContext;
 | |
|     this.tableProps = null; // TablePropertyListContext;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| CreateHiveTableContext.prototype = Object.create(StatementContext.prototype);
 | |
| CreateHiveTableContext.prototype.constructor = CreateHiveTableContext;
 | |
| sqlParser.CreateHiveTableContext = CreateHiveTableContext;
 | |
| CreateHiveTableContext.prototype.createTableHeader = function () {
 | |
|     return this.getTypedRuleContext(CreateTableHeaderContext, 0);
 | |
| };
 | |
| CreateHiveTableContext.prototype.bucketSpec = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(BucketSpecContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(BucketSpecContext, i);
 | |
|     }
 | |
| };
 | |
| CreateHiveTableContext.prototype.skewSpec = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(SkewSpecContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(SkewSpecContext, i);
 | |
|     }
 | |
| };
 | |
| CreateHiveTableContext.prototype.rowFormat = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(RowFormatContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(RowFormatContext, i);
 | |
|     }
 | |
| };
 | |
| CreateHiveTableContext.prototype.createFileFormat = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(CreateFileFormatContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(CreateFileFormatContext, i);
 | |
|     }
 | |
| };
 | |
| CreateHiveTableContext.prototype.locationSpec = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(LocationSpecContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(LocationSpecContext, i);
 | |
|     }
 | |
| };
 | |
| CreateHiveTableContext.prototype.query = function () {
 | |
|     return this.getTypedRuleContext(QueryContext, 0);
 | |
| };
 | |
| CreateHiveTableContext.prototype.colTypeList = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ColTypeListContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ColTypeListContext, i);
 | |
|     }
 | |
| };
 | |
| CreateHiveTableContext.prototype.COMMENT = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.COMMENT);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.COMMENT, i);
 | |
|     }
 | |
| };
 | |
| CreateHiveTableContext.prototype.PARTITIONED = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.PARTITIONED);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.PARTITIONED, i);
 | |
|     }
 | |
| };
 | |
| CreateHiveTableContext.prototype.BY = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.BY);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.BY, i);
 | |
|     }
 | |
| };
 | |
| CreateHiveTableContext.prototype.TBLPROPERTIES = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.TBLPROPERTIES);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.TBLPROPERTIES, i);
 | |
|     }
 | |
| };
 | |
| CreateHiveTableContext.prototype.STRING = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.STRING);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.STRING, i);
 | |
|     }
 | |
| };
 | |
| CreateHiveTableContext.prototype.tablePropertyList = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(TablePropertyListContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(TablePropertyListContext, i);
 | |
|     }
 | |
| };
 | |
| CreateHiveTableContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| CreateHiveTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterCreateHiveTable(this);
 | |
|     }
 | |
| };
 | |
| CreateHiveTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitCreateHiveTable(this);
 | |
|     }
 | |
| };
 | |
| CreateHiveTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitCreateHiveTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function CreateFunctionContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.className = null; // Token;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| CreateFunctionContext.prototype = Object.create(StatementContext.prototype);
 | |
| CreateFunctionContext.prototype.constructor = CreateFunctionContext;
 | |
| sqlParser.CreateFunctionContext = CreateFunctionContext;
 | |
| CreateFunctionContext.prototype.CREATE = function () {
 | |
|     return this.getToken(sqlParser.CREATE, 0);
 | |
| };
 | |
| CreateFunctionContext.prototype.FUNCTION = function () {
 | |
|     return this.getToken(sqlParser.FUNCTION, 0);
 | |
| };
 | |
| CreateFunctionContext.prototype.qualifiedName = function () {
 | |
|     return this.getTypedRuleContext(QualifiedNameContext, 0);
 | |
| };
 | |
| CreateFunctionContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| CreateFunctionContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| CreateFunctionContext.prototype.OR = function () {
 | |
|     return this.getToken(sqlParser.OR, 0);
 | |
| };
 | |
| CreateFunctionContext.prototype.REPLACE = function () {
 | |
|     return this.getToken(sqlParser.REPLACE, 0);
 | |
| };
 | |
| CreateFunctionContext.prototype.TEMPORARY = function () {
 | |
|     return this.getToken(sqlParser.TEMPORARY, 0);
 | |
| };
 | |
| CreateFunctionContext.prototype.IF = function () {
 | |
|     return this.getToken(sqlParser.IF, 0);
 | |
| };
 | |
| CreateFunctionContext.prototype.NOT = function () {
 | |
|     return this.getToken(sqlParser.NOT, 0);
 | |
| };
 | |
| CreateFunctionContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| CreateFunctionContext.prototype.USING = function () {
 | |
|     return this.getToken(sqlParser.USING, 0);
 | |
| };
 | |
| CreateFunctionContext.prototype.resource = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ResourceContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ResourceContext, i);
 | |
|     }
 | |
| };
 | |
| CreateFunctionContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterCreateFunction(this);
 | |
|     }
 | |
| };
 | |
| CreateFunctionContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitCreateFunction(this);
 | |
|     }
 | |
| };
 | |
| CreateFunctionContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitCreateFunction(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ShowTableContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.db = null; // IdentifierContext;
 | |
|     this.pattern = null; // Token;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ShowTableContext.prototype = Object.create(StatementContext.prototype);
 | |
| ShowTableContext.prototype.constructor = ShowTableContext;
 | |
| sqlParser.ShowTableContext = ShowTableContext;
 | |
| ShowTableContext.prototype.SHOW = function () {
 | |
|     return this.getToken(sqlParser.SHOW, 0);
 | |
| };
 | |
| ShowTableContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| ShowTableContext.prototype.EXTENDED = function () {
 | |
|     return this.getToken(sqlParser.EXTENDED, 0);
 | |
| };
 | |
| ShowTableContext.prototype.LIKE = function () {
 | |
|     return this.getToken(sqlParser.LIKE, 0);
 | |
| };
 | |
| ShowTableContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| ShowTableContext.prototype.partitionSpec = function () {
 | |
|     return this.getTypedRuleContext(PartitionSpecContext, 0);
 | |
| };
 | |
| ShowTableContext.prototype.FROM = function () {
 | |
|     return this.getToken(sqlParser.FROM, 0);
 | |
| };
 | |
| ShowTableContext.prototype.IN = function () {
 | |
|     return this.getToken(sqlParser.IN, 0);
 | |
| };
 | |
| ShowTableContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| ShowTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterShowTable(this);
 | |
|     }
 | |
| };
 | |
| ShowTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitShowTable(this);
 | |
|     }
 | |
| };
 | |
| ShowTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitShowTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function SetDatabasePropertiesContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SetDatabasePropertiesContext.prototype = Object.create(StatementContext.prototype);
 | |
| SetDatabasePropertiesContext.prototype.constructor = SetDatabasePropertiesContext;
 | |
| sqlParser.SetDatabasePropertiesContext = SetDatabasePropertiesContext;
 | |
| SetDatabasePropertiesContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| SetDatabasePropertiesContext.prototype.DATABASE = function () {
 | |
|     return this.getToken(sqlParser.DATABASE, 0);
 | |
| };
 | |
| SetDatabasePropertiesContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| SetDatabasePropertiesContext.prototype.SET = function () {
 | |
|     return this.getToken(sqlParser.SET, 0);
 | |
| };
 | |
| SetDatabasePropertiesContext.prototype.DBPROPERTIES = function () {
 | |
|     return this.getToken(sqlParser.DBPROPERTIES, 0);
 | |
| };
 | |
| SetDatabasePropertiesContext.prototype.tablePropertyList = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyListContext, 0);
 | |
| };
 | |
| SetDatabasePropertiesContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSetDatabaseProperties(this);
 | |
|     }
 | |
| };
 | |
| SetDatabasePropertiesContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSetDatabaseProperties(this);
 | |
|     }
 | |
| };
 | |
| SetDatabasePropertiesContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSetDatabaseProperties(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function CreateTableContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.options = null; // TablePropertyListContext;
 | |
|     this.partitionColumnNames = null; // IdentifierListContext;
 | |
|     this.comment = null; // Token;
 | |
|     this.tableProps = null; // TablePropertyListContext;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| CreateTableContext.prototype = Object.create(StatementContext.prototype);
 | |
| CreateTableContext.prototype.constructor = CreateTableContext;
 | |
| sqlParser.CreateTableContext = CreateTableContext;
 | |
| CreateTableContext.prototype.createTableHeader = function () {
 | |
|     return this.getTypedRuleContext(CreateTableHeaderContext, 0);
 | |
| };
 | |
| CreateTableContext.prototype.tableProvider = function () {
 | |
|     return this.getTypedRuleContext(TableProviderContext, 0);
 | |
| };
 | |
| CreateTableContext.prototype.colTypeList = function () {
 | |
|     return this.getTypedRuleContext(ColTypeListContext, 0);
 | |
| };
 | |
| CreateTableContext.prototype.bucketSpec = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(BucketSpecContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(BucketSpecContext, i);
 | |
|     }
 | |
| };
 | |
| CreateTableContext.prototype.locationSpec = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(LocationSpecContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(LocationSpecContext, i);
 | |
|     }
 | |
| };
 | |
| CreateTableContext.prototype.query = function () {
 | |
|     return this.getTypedRuleContext(QueryContext, 0);
 | |
| };
 | |
| CreateTableContext.prototype.OPTIONS = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.OPTIONS);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.OPTIONS, i);
 | |
|     }
 | |
| };
 | |
| CreateTableContext.prototype.PARTITIONED = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.PARTITIONED);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.PARTITIONED, i);
 | |
|     }
 | |
| };
 | |
| CreateTableContext.prototype.BY = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.BY);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.BY, i);
 | |
|     }
 | |
| };
 | |
| CreateTableContext.prototype.COMMENT = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.COMMENT);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.COMMENT, i);
 | |
|     }
 | |
| };
 | |
| CreateTableContext.prototype.TBLPROPERTIES = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.TBLPROPERTIES);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.TBLPROPERTIES, i);
 | |
|     }
 | |
| };
 | |
| CreateTableContext.prototype.tablePropertyList = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(TablePropertyListContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(TablePropertyListContext, i);
 | |
|     }
 | |
| };
 | |
| CreateTableContext.prototype.identifierList = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(IdentifierListContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(IdentifierListContext, i);
 | |
|     }
 | |
| };
 | |
| CreateTableContext.prototype.STRING = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.STRING);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.STRING, i);
 | |
|     }
 | |
| };
 | |
| CreateTableContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| CreateTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterCreateTable(this);
 | |
|     }
 | |
| };
 | |
| CreateTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitCreateTable(this);
 | |
|     }
 | |
| };
 | |
| CreateTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitCreateTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function DescribeTableContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.option = null; // Token;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| DescribeTableContext.prototype = Object.create(StatementContext.prototype);
 | |
| DescribeTableContext.prototype.constructor = DescribeTableContext;
 | |
| sqlParser.DescribeTableContext = DescribeTableContext;
 | |
| DescribeTableContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| DescribeTableContext.prototype.DESC = function () {
 | |
|     return this.getToken(sqlParser.DESC, 0);
 | |
| };
 | |
| DescribeTableContext.prototype.DESCRIBE = function () {
 | |
|     return this.getToken(sqlParser.DESCRIBE, 0);
 | |
| };
 | |
| DescribeTableContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| DescribeTableContext.prototype.partitionSpec = function () {
 | |
|     return this.getTypedRuleContext(PartitionSpecContext, 0);
 | |
| };
 | |
| DescribeTableContext.prototype.describeColName = function () {
 | |
|     return this.getTypedRuleContext(DescribeColNameContext, 0);
 | |
| };
 | |
| DescribeTableContext.prototype.EXTENDED = function () {
 | |
|     return this.getToken(sqlParser.EXTENDED, 0);
 | |
| };
 | |
| DescribeTableContext.prototype.FORMATTED = function () {
 | |
|     return this.getToken(sqlParser.FORMATTED, 0);
 | |
| };
 | |
| DescribeTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterDescribeTable(this);
 | |
|     }
 | |
| };
 | |
| DescribeTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitDescribeTable(this);
 | |
|     }
 | |
| };
 | |
| DescribeTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitDescribeTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function CreateTableLikeContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.target = null; // TableIdentifierContext;
 | |
|     this.source = null; // TableIdentifierContext;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| CreateTableLikeContext.prototype = Object.create(StatementContext.prototype);
 | |
| CreateTableLikeContext.prototype.constructor = CreateTableLikeContext;
 | |
| sqlParser.CreateTableLikeContext = CreateTableLikeContext;
 | |
| CreateTableLikeContext.prototype.CREATE = function () {
 | |
|     return this.getToken(sqlParser.CREATE, 0);
 | |
| };
 | |
| CreateTableLikeContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| CreateTableLikeContext.prototype.LIKE = function () {
 | |
|     return this.getToken(sqlParser.LIKE, 0);
 | |
| };
 | |
| CreateTableLikeContext.prototype.tableIdentifier = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(TableIdentifierContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(TableIdentifierContext, i);
 | |
|     }
 | |
| };
 | |
| CreateTableLikeContext.prototype.IF = function () {
 | |
|     return this.getToken(sqlParser.IF, 0);
 | |
| };
 | |
| CreateTableLikeContext.prototype.NOT = function () {
 | |
|     return this.getToken(sqlParser.NOT, 0);
 | |
| };
 | |
| CreateTableLikeContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| CreateTableLikeContext.prototype.locationSpec = function () {
 | |
|     return this.getTypedRuleContext(LocationSpecContext, 0);
 | |
| };
 | |
| CreateTableLikeContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterCreateTableLike(this);
 | |
|     }
 | |
| };
 | |
| CreateTableLikeContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitCreateTableLike(this);
 | |
|     }
 | |
| };
 | |
| CreateTableLikeContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitCreateTableLike(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function UncacheTableContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| UncacheTableContext.prototype = Object.create(StatementContext.prototype);
 | |
| UncacheTableContext.prototype.constructor = UncacheTableContext;
 | |
| sqlParser.UncacheTableContext = UncacheTableContext;
 | |
| UncacheTableContext.prototype.UNCACHE = function () {
 | |
|     return this.getToken(sqlParser.UNCACHE, 0);
 | |
| };
 | |
| UncacheTableContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| UncacheTableContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| UncacheTableContext.prototype.IF = function () {
 | |
|     return this.getToken(sqlParser.IF, 0);
 | |
| };
 | |
| UncacheTableContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| UncacheTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterUncacheTable(this);
 | |
|     }
 | |
| };
 | |
| UncacheTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitUncacheTable(this);
 | |
|     }
 | |
| };
 | |
| UncacheTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitUncacheTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function DropFunctionContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| DropFunctionContext.prototype = Object.create(StatementContext.prototype);
 | |
| DropFunctionContext.prototype.constructor = DropFunctionContext;
 | |
| sqlParser.DropFunctionContext = DropFunctionContext;
 | |
| DropFunctionContext.prototype.DROP = function () {
 | |
|     return this.getToken(sqlParser.DROP, 0);
 | |
| };
 | |
| DropFunctionContext.prototype.FUNCTION = function () {
 | |
|     return this.getToken(sqlParser.FUNCTION, 0);
 | |
| };
 | |
| DropFunctionContext.prototype.qualifiedName = function () {
 | |
|     return this.getTypedRuleContext(QualifiedNameContext, 0);
 | |
| };
 | |
| DropFunctionContext.prototype.TEMPORARY = function () {
 | |
|     return this.getToken(sqlParser.TEMPORARY, 0);
 | |
| };
 | |
| DropFunctionContext.prototype.IF = function () {
 | |
|     return this.getToken(sqlParser.IF, 0);
 | |
| };
 | |
| DropFunctionContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| DropFunctionContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterDropFunction(this);
 | |
|     }
 | |
| };
 | |
| DropFunctionContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitDropFunction(this);
 | |
|     }
 | |
| };
 | |
| DropFunctionContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitDropFunction(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function LoadDataContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.path = null; // Token;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| LoadDataContext.prototype = Object.create(StatementContext.prototype);
 | |
| LoadDataContext.prototype.constructor = LoadDataContext;
 | |
| sqlParser.LoadDataContext = LoadDataContext;
 | |
| LoadDataContext.prototype.LOAD = function () {
 | |
|     return this.getToken(sqlParser.LOAD, 0);
 | |
| };
 | |
| LoadDataContext.prototype.DATA = function () {
 | |
|     return this.getToken(sqlParser.DATA, 0);
 | |
| };
 | |
| LoadDataContext.prototype.INPATH = function () {
 | |
|     return this.getToken(sqlParser.INPATH, 0);
 | |
| };
 | |
| LoadDataContext.prototype.INTO = function () {
 | |
|     return this.getToken(sqlParser.INTO, 0);
 | |
| };
 | |
| LoadDataContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| LoadDataContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| LoadDataContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| LoadDataContext.prototype.LOCAL = function () {
 | |
|     return this.getToken(sqlParser.LOCAL, 0);
 | |
| };
 | |
| LoadDataContext.prototype.OVERWRITE = function () {
 | |
|     return this.getToken(sqlParser.OVERWRITE, 0);
 | |
| };
 | |
| LoadDataContext.prototype.partitionSpec = function () {
 | |
|     return this.getTypedRuleContext(PartitionSpecContext, 0);
 | |
| };
 | |
| LoadDataContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterLoadData(this);
 | |
|     }
 | |
| };
 | |
| LoadDataContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitLoadData(this);
 | |
|     }
 | |
| };
 | |
| LoadDataContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitLoadData(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ShowPartitionsContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ShowPartitionsContext.prototype = Object.create(StatementContext.prototype);
 | |
| ShowPartitionsContext.prototype.constructor = ShowPartitionsContext;
 | |
| sqlParser.ShowPartitionsContext = ShowPartitionsContext;
 | |
| ShowPartitionsContext.prototype.SHOW = function () {
 | |
|     return this.getToken(sqlParser.SHOW, 0);
 | |
| };
 | |
| ShowPartitionsContext.prototype.PARTITIONS = function () {
 | |
|     return this.getToken(sqlParser.PARTITIONS, 0);
 | |
| };
 | |
| ShowPartitionsContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| ShowPartitionsContext.prototype.partitionSpec = function () {
 | |
|     return this.getTypedRuleContext(PartitionSpecContext, 0);
 | |
| };
 | |
| ShowPartitionsContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterShowPartitions(this);
 | |
|     }
 | |
| };
 | |
| ShowPartitionsContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitShowPartitions(this);
 | |
|     }
 | |
| };
 | |
| ShowPartitionsContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitShowPartitions(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function DescribeFunctionContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| DescribeFunctionContext.prototype = Object.create(StatementContext.prototype);
 | |
| DescribeFunctionContext.prototype.constructor = DescribeFunctionContext;
 | |
| sqlParser.DescribeFunctionContext = DescribeFunctionContext;
 | |
| DescribeFunctionContext.prototype.FUNCTION = function () {
 | |
|     return this.getToken(sqlParser.FUNCTION, 0);
 | |
| };
 | |
| DescribeFunctionContext.prototype.describeFuncName = function () {
 | |
|     return this.getTypedRuleContext(DescribeFuncNameContext, 0);
 | |
| };
 | |
| DescribeFunctionContext.prototype.DESC = function () {
 | |
|     return this.getToken(sqlParser.DESC, 0);
 | |
| };
 | |
| DescribeFunctionContext.prototype.DESCRIBE = function () {
 | |
|     return this.getToken(sqlParser.DESCRIBE, 0);
 | |
| };
 | |
| DescribeFunctionContext.prototype.EXTENDED = function () {
 | |
|     return this.getToken(sqlParser.EXTENDED, 0);
 | |
| };
 | |
| DescribeFunctionContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterDescribeFunction(this);
 | |
|     }
 | |
| };
 | |
| DescribeFunctionContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitDescribeFunction(this);
 | |
|     }
 | |
| };
 | |
| DescribeFunctionContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitDescribeFunction(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ChangeColumnContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ChangeColumnContext.prototype = Object.create(StatementContext.prototype);
 | |
| ChangeColumnContext.prototype.constructor = ChangeColumnContext;
 | |
| sqlParser.ChangeColumnContext = ChangeColumnContext;
 | |
| ChangeColumnContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| ChangeColumnContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| ChangeColumnContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| ChangeColumnContext.prototype.CHANGE = function () {
 | |
|     return this.getToken(sqlParser.CHANGE, 0);
 | |
| };
 | |
| ChangeColumnContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| ChangeColumnContext.prototype.colType = function () {
 | |
|     return this.getTypedRuleContext(ColTypeContext, 0);
 | |
| };
 | |
| ChangeColumnContext.prototype.partitionSpec = function () {
 | |
|     return this.getTypedRuleContext(PartitionSpecContext, 0);
 | |
| };
 | |
| ChangeColumnContext.prototype.COLUMN = function () {
 | |
|     return this.getToken(sqlParser.COLUMN, 0);
 | |
| };
 | |
| ChangeColumnContext.prototype.colPosition = function () {
 | |
|     return this.getTypedRuleContext(ColPositionContext, 0);
 | |
| };
 | |
| ChangeColumnContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterChangeColumn(this);
 | |
|     }
 | |
| };
 | |
| ChangeColumnContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitChangeColumn(this);
 | |
|     }
 | |
| };
 | |
| ChangeColumnContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitChangeColumn(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function StatementDefaultContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| StatementDefaultContext.prototype = Object.create(StatementContext.prototype);
 | |
| StatementDefaultContext.prototype.constructor = StatementDefaultContext;
 | |
| sqlParser.StatementDefaultContext = StatementDefaultContext;
 | |
| StatementDefaultContext.prototype.query = function () {
 | |
|     return this.getTypedRuleContext(QueryContext, 0);
 | |
| };
 | |
| StatementDefaultContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterStatementDefault(this);
 | |
|     }
 | |
| };
 | |
| StatementDefaultContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitStatementDefault(this);
 | |
|     }
 | |
| };
 | |
| StatementDefaultContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitStatementDefault(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function TruncateTableContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| TruncateTableContext.prototype = Object.create(StatementContext.prototype);
 | |
| TruncateTableContext.prototype.constructor = TruncateTableContext;
 | |
| sqlParser.TruncateTableContext = TruncateTableContext;
 | |
| TruncateTableContext.prototype.TRUNCATE = function () {
 | |
|     return this.getToken(sqlParser.TRUNCATE, 0);
 | |
| };
 | |
| TruncateTableContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| TruncateTableContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| TruncateTableContext.prototype.partitionSpec = function () {
 | |
|     return this.getTypedRuleContext(PartitionSpecContext, 0);
 | |
| };
 | |
| TruncateTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterTruncateTable(this);
 | |
|     }
 | |
| };
 | |
| TruncateTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitTruncateTable(this);
 | |
|     }
 | |
| };
 | |
| TruncateTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitTruncateTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function SetTableSerDeContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SetTableSerDeContext.prototype = Object.create(StatementContext.prototype);
 | |
| SetTableSerDeContext.prototype.constructor = SetTableSerDeContext;
 | |
| sqlParser.SetTableSerDeContext = SetTableSerDeContext;
 | |
| SetTableSerDeContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| SetTableSerDeContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| SetTableSerDeContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| SetTableSerDeContext.prototype.SET = function () {
 | |
|     return this.getToken(sqlParser.SET, 0);
 | |
| };
 | |
| SetTableSerDeContext.prototype.SERDE = function () {
 | |
|     return this.getToken(sqlParser.SERDE, 0);
 | |
| };
 | |
| SetTableSerDeContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| SetTableSerDeContext.prototype.partitionSpec = function () {
 | |
|     return this.getTypedRuleContext(PartitionSpecContext, 0);
 | |
| };
 | |
| SetTableSerDeContext.prototype.WITH = function () {
 | |
|     return this.getToken(sqlParser.WITH, 0);
 | |
| };
 | |
| SetTableSerDeContext.prototype.SERDEPROPERTIES = function () {
 | |
|     return this.getToken(sqlParser.SERDEPROPERTIES, 0);
 | |
| };
 | |
| SetTableSerDeContext.prototype.tablePropertyList = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyListContext, 0);
 | |
| };
 | |
| SetTableSerDeContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSetTableSerDe(this);
 | |
|     }
 | |
| };
 | |
| SetTableSerDeContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSetTableSerDe(this);
 | |
|     }
 | |
| };
 | |
| SetTableSerDeContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSetTableSerDe(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function CreateViewContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| CreateViewContext.prototype = Object.create(StatementContext.prototype);
 | |
| CreateViewContext.prototype.constructor = CreateViewContext;
 | |
| sqlParser.CreateViewContext = CreateViewContext;
 | |
| CreateViewContext.prototype.CREATE = function () {
 | |
|     return this.getToken(sqlParser.CREATE, 0);
 | |
| };
 | |
| CreateViewContext.prototype.VIEW = function () {
 | |
|     return this.getToken(sqlParser.VIEW, 0);
 | |
| };
 | |
| CreateViewContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| CreateViewContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| CreateViewContext.prototype.query = function () {
 | |
|     return this.getTypedRuleContext(QueryContext, 0);
 | |
| };
 | |
| CreateViewContext.prototype.OR = function () {
 | |
|     return this.getToken(sqlParser.OR, 0);
 | |
| };
 | |
| CreateViewContext.prototype.REPLACE = function () {
 | |
|     return this.getToken(sqlParser.REPLACE, 0);
 | |
| };
 | |
| CreateViewContext.prototype.TEMPORARY = function () {
 | |
|     return this.getToken(sqlParser.TEMPORARY, 0);
 | |
| };
 | |
| CreateViewContext.prototype.IF = function () {
 | |
|     return this.getToken(sqlParser.IF, 0);
 | |
| };
 | |
| CreateViewContext.prototype.NOT = function () {
 | |
|     return this.getToken(sqlParser.NOT, 0);
 | |
| };
 | |
| CreateViewContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| CreateViewContext.prototype.identifierCommentList = function () {
 | |
|     return this.getTypedRuleContext(IdentifierCommentListContext, 0);
 | |
| };
 | |
| CreateViewContext.prototype.COMMENT = function () {
 | |
|     return this.getToken(sqlParser.COMMENT, 0);
 | |
| };
 | |
| CreateViewContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| CreateViewContext.prototype.PARTITIONED = function () {
 | |
|     return this.getToken(sqlParser.PARTITIONED, 0);
 | |
| };
 | |
| CreateViewContext.prototype.ON = function () {
 | |
|     return this.getToken(sqlParser.ON, 0);
 | |
| };
 | |
| CreateViewContext.prototype.identifierList = function () {
 | |
|     return this.getTypedRuleContext(IdentifierListContext, 0);
 | |
| };
 | |
| CreateViewContext.prototype.TBLPROPERTIES = function () {
 | |
|     return this.getToken(sqlParser.TBLPROPERTIES, 0);
 | |
| };
 | |
| CreateViewContext.prototype.tablePropertyList = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyListContext, 0);
 | |
| };
 | |
| CreateViewContext.prototype.GLOBAL = function () {
 | |
|     return this.getToken(sqlParser.GLOBAL, 0);
 | |
| };
 | |
| CreateViewContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterCreateView(this);
 | |
|     }
 | |
| };
 | |
| CreateViewContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitCreateView(this);
 | |
|     }
 | |
| };
 | |
| CreateViewContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitCreateView(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function DropTablePartitionsContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| DropTablePartitionsContext.prototype = Object.create(StatementContext.prototype);
 | |
| DropTablePartitionsContext.prototype.constructor = DropTablePartitionsContext;
 | |
| sqlParser.DropTablePartitionsContext = DropTablePartitionsContext;
 | |
| DropTablePartitionsContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| DropTablePartitionsContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| DropTablePartitionsContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| DropTablePartitionsContext.prototype.DROP = function () {
 | |
|     return this.getToken(sqlParser.DROP, 0);
 | |
| };
 | |
| DropTablePartitionsContext.prototype.partitionSpec = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(PartitionSpecContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(PartitionSpecContext, i);
 | |
|     }
 | |
| };
 | |
| DropTablePartitionsContext.prototype.IF = function () {
 | |
|     return this.getToken(sqlParser.IF, 0);
 | |
| };
 | |
| DropTablePartitionsContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| DropTablePartitionsContext.prototype.PURGE = function () {
 | |
|     return this.getToken(sqlParser.PURGE, 0);
 | |
| };
 | |
| DropTablePartitionsContext.prototype.VIEW = function () {
 | |
|     return this.getToken(sqlParser.VIEW, 0);
 | |
| };
 | |
| DropTablePartitionsContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterDropTablePartitions(this);
 | |
|     }
 | |
| };
 | |
| DropTablePartitionsContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitDropTablePartitions(this);
 | |
|     }
 | |
| };
 | |
| DropTablePartitionsContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitDropTablePartitions(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function SetConfigurationContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SetConfigurationContext.prototype = Object.create(StatementContext.prototype);
 | |
| SetConfigurationContext.prototype.constructor = SetConfigurationContext;
 | |
| sqlParser.SetConfigurationContext = SetConfigurationContext;
 | |
| SetConfigurationContext.prototype.SET = function () {
 | |
|     return this.getToken(sqlParser.SET, 0);
 | |
| };
 | |
| SetConfigurationContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSetConfiguration(this);
 | |
|     }
 | |
| };
 | |
| SetConfigurationContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSetConfiguration(this);
 | |
|     }
 | |
| };
 | |
| SetConfigurationContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSetConfiguration(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function DropTableContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| DropTableContext.prototype = Object.create(StatementContext.prototype);
 | |
| DropTableContext.prototype.constructor = DropTableContext;
 | |
| sqlParser.DropTableContext = DropTableContext;
 | |
| DropTableContext.prototype.DROP = function () {
 | |
|     return this.getToken(sqlParser.DROP, 0);
 | |
| };
 | |
| DropTableContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| DropTableContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| DropTableContext.prototype.IF = function () {
 | |
|     return this.getToken(sqlParser.IF, 0);
 | |
| };
 | |
| DropTableContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| DropTableContext.prototype.PURGE = function () {
 | |
|     return this.getToken(sqlParser.PURGE, 0);
 | |
| };
 | |
| DropTableContext.prototype.VIEW = function () {
 | |
|     return this.getToken(sqlParser.VIEW, 0);
 | |
| };
 | |
| DropTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterDropTable(this);
 | |
|     }
 | |
| };
 | |
| DropTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitDropTable(this);
 | |
|     }
 | |
| };
 | |
| DropTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitDropTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ShowDatabasesContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.pattern = null; // Token;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ShowDatabasesContext.prototype = Object.create(StatementContext.prototype);
 | |
| ShowDatabasesContext.prototype.constructor = ShowDatabasesContext;
 | |
| sqlParser.ShowDatabasesContext = ShowDatabasesContext;
 | |
| ShowDatabasesContext.prototype.SHOW = function () {
 | |
|     return this.getToken(sqlParser.SHOW, 0);
 | |
| };
 | |
| ShowDatabasesContext.prototype.DATABASES = function () {
 | |
|     return this.getToken(sqlParser.DATABASES, 0);
 | |
| };
 | |
| ShowDatabasesContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| ShowDatabasesContext.prototype.LIKE = function () {
 | |
|     return this.getToken(sqlParser.LIKE, 0);
 | |
| };
 | |
| ShowDatabasesContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterShowDatabases(this);
 | |
|     }
 | |
| };
 | |
| ShowDatabasesContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitShowDatabases(this);
 | |
|     }
 | |
| };
 | |
| ShowDatabasesContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitShowDatabases(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ShowTblPropertiesContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.table = null; // TableIdentifierContext;
 | |
|     this.key = null; // TablePropertyKeyContext;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ShowTblPropertiesContext.prototype = Object.create(StatementContext.prototype);
 | |
| ShowTblPropertiesContext.prototype.constructor = ShowTblPropertiesContext;
 | |
| sqlParser.ShowTblPropertiesContext = ShowTblPropertiesContext;
 | |
| ShowTblPropertiesContext.prototype.SHOW = function () {
 | |
|     return this.getToken(sqlParser.SHOW, 0);
 | |
| };
 | |
| ShowTblPropertiesContext.prototype.TBLPROPERTIES = function () {
 | |
|     return this.getToken(sqlParser.TBLPROPERTIES, 0);
 | |
| };
 | |
| ShowTblPropertiesContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| ShowTblPropertiesContext.prototype.tablePropertyKey = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyKeyContext, 0);
 | |
| };
 | |
| ShowTblPropertiesContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterShowTblProperties(this);
 | |
|     }
 | |
| };
 | |
| ShowTblPropertiesContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitShowTblProperties(this);
 | |
|     }
 | |
| };
 | |
| ShowTblPropertiesContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitShowTblProperties(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function CreateFlinkTableContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.catcatalogName = null; // IdentifierContext;
 | |
|     this.columns = null; // DtColTypeListContext;
 | |
|     this.comment = null; // Token;
 | |
|     this.partitionColumnNames = null; // IdentifierListContext;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| CreateFlinkTableContext.prototype = Object.create(StatementContext.prototype);
 | |
| CreateFlinkTableContext.prototype.constructor = CreateFlinkTableContext;
 | |
| sqlParser.CreateFlinkTableContext = CreateFlinkTableContext;
 | |
| CreateFlinkTableContext.prototype.CREATE = function () {
 | |
|     return this.getToken(sqlParser.CREATE, 0);
 | |
| };
 | |
| CreateFlinkTableContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| CreateFlinkTableContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| CreateFlinkTableContext.prototype.WITH = function () {
 | |
|     return this.getToken(sqlParser.WITH, 0);
 | |
| };
 | |
| CreateFlinkTableContext.prototype.tablePropertyList = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyListContext, 0);
 | |
| };
 | |
| CreateFlinkTableContext.prototype.COMMENT = function () {
 | |
|     return this.getToken(sqlParser.COMMENT, 0);
 | |
| };
 | |
| CreateFlinkTableContext.prototype.PARTITIONED = function () {
 | |
|     return this.getToken(sqlParser.PARTITIONED, 0);
 | |
| };
 | |
| CreateFlinkTableContext.prototype.BY = function () {
 | |
|     return this.getToken(sqlParser.BY, 0);
 | |
| };
 | |
| CreateFlinkTableContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| CreateFlinkTableContext.prototype.dtColTypeList = function () {
 | |
|     return this.getTypedRuleContext(DtColTypeListContext, 0);
 | |
| };
 | |
| CreateFlinkTableContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| CreateFlinkTableContext.prototype.identifierList = function () {
 | |
|     return this.getTypedRuleContext(IdentifierListContext, 0);
 | |
| };
 | |
| CreateFlinkTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterCreateFlinkTable(this);
 | |
|     }
 | |
| };
 | |
| CreateFlinkTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitCreateFlinkTable(this);
 | |
|     }
 | |
| };
 | |
| CreateFlinkTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitCreateFlinkTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function UnsetTablePropertiesContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| UnsetTablePropertiesContext.prototype = Object.create(StatementContext.prototype);
 | |
| UnsetTablePropertiesContext.prototype.constructor = UnsetTablePropertiesContext;
 | |
| sqlParser.UnsetTablePropertiesContext = UnsetTablePropertiesContext;
 | |
| UnsetTablePropertiesContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| UnsetTablePropertiesContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| UnsetTablePropertiesContext.prototype.UNSET = function () {
 | |
|     return this.getToken(sqlParser.UNSET, 0);
 | |
| };
 | |
| UnsetTablePropertiesContext.prototype.TBLPROPERTIES = function () {
 | |
|     return this.getToken(sqlParser.TBLPROPERTIES, 0);
 | |
| };
 | |
| UnsetTablePropertiesContext.prototype.tablePropertyList = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyListContext, 0);
 | |
| };
 | |
| UnsetTablePropertiesContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| UnsetTablePropertiesContext.prototype.VIEW = function () {
 | |
|     return this.getToken(sqlParser.VIEW, 0);
 | |
| };
 | |
| UnsetTablePropertiesContext.prototype.IF = function () {
 | |
|     return this.getToken(sqlParser.IF, 0);
 | |
| };
 | |
| UnsetTablePropertiesContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| UnsetTablePropertiesContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterUnsetTableProperties(this);
 | |
|     }
 | |
| };
 | |
| UnsetTablePropertiesContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitUnsetTableProperties(this);
 | |
|     }
 | |
| };
 | |
| UnsetTablePropertiesContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitUnsetTableProperties(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function SetTableLocationContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SetTableLocationContext.prototype = Object.create(StatementContext.prototype);
 | |
| SetTableLocationContext.prototype.constructor = SetTableLocationContext;
 | |
| sqlParser.SetTableLocationContext = SetTableLocationContext;
 | |
| SetTableLocationContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| SetTableLocationContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| SetTableLocationContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| SetTableLocationContext.prototype.SET = function () {
 | |
|     return this.getToken(sqlParser.SET, 0);
 | |
| };
 | |
| SetTableLocationContext.prototype.locationSpec = function () {
 | |
|     return this.getTypedRuleContext(LocationSpecContext, 0);
 | |
| };
 | |
| SetTableLocationContext.prototype.partitionSpec = function () {
 | |
|     return this.getTypedRuleContext(PartitionSpecContext, 0);
 | |
| };
 | |
| SetTableLocationContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSetTableLocation(this);
 | |
|     }
 | |
| };
 | |
| SetTableLocationContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSetTableLocation(this);
 | |
|     }
 | |
| };
 | |
| SetTableLocationContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSetTableLocation(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ShowFunctionsContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.pattern = null; // Token;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ShowFunctionsContext.prototype = Object.create(StatementContext.prototype);
 | |
| ShowFunctionsContext.prototype.constructor = ShowFunctionsContext;
 | |
| sqlParser.ShowFunctionsContext = ShowFunctionsContext;
 | |
| ShowFunctionsContext.prototype.SHOW = function () {
 | |
|     return this.getToken(sqlParser.SHOW, 0);
 | |
| };
 | |
| ShowFunctionsContext.prototype.FUNCTIONS = function () {
 | |
|     return this.getToken(sqlParser.FUNCTIONS, 0);
 | |
| };
 | |
| ShowFunctionsContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| ShowFunctionsContext.prototype.qualifiedName = function () {
 | |
|     return this.getTypedRuleContext(QualifiedNameContext, 0);
 | |
| };
 | |
| ShowFunctionsContext.prototype.LIKE = function () {
 | |
|     return this.getToken(sqlParser.LIKE, 0);
 | |
| };
 | |
| ShowFunctionsContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| ShowFunctionsContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterShowFunctions(this);
 | |
|     }
 | |
| };
 | |
| ShowFunctionsContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitShowFunctions(this);
 | |
|     }
 | |
| };
 | |
| ShowFunctionsContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitShowFunctions(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function CacheTableContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.options = null; // TablePropertyListContext;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| CacheTableContext.prototype = Object.create(StatementContext.prototype);
 | |
| CacheTableContext.prototype.constructor = CacheTableContext;
 | |
| sqlParser.CacheTableContext = CacheTableContext;
 | |
| CacheTableContext.prototype.CACHE = function () {
 | |
|     return this.getToken(sqlParser.CACHE, 0);
 | |
| };
 | |
| CacheTableContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| CacheTableContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| CacheTableContext.prototype.LAZY = function () {
 | |
|     return this.getToken(sqlParser.LAZY, 0);
 | |
| };
 | |
| CacheTableContext.prototype.OPTIONS = function () {
 | |
|     return this.getToken(sqlParser.OPTIONS, 0);
 | |
| };
 | |
| CacheTableContext.prototype.query = function () {
 | |
|     return this.getTypedRuleContext(QueryContext, 0);
 | |
| };
 | |
| CacheTableContext.prototype.tablePropertyList = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyListContext, 0);
 | |
| };
 | |
| CacheTableContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| CacheTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterCacheTable(this);
 | |
|     }
 | |
| };
 | |
| CacheTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitCacheTable(this);
 | |
|     }
 | |
| };
 | |
| CacheTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitCacheTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function AddTableColumnsContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     this.columns = null; // ColTypeListContext;
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| AddTableColumnsContext.prototype = Object.create(StatementContext.prototype);
 | |
| AddTableColumnsContext.prototype.constructor = AddTableColumnsContext;
 | |
| sqlParser.AddTableColumnsContext = AddTableColumnsContext;
 | |
| AddTableColumnsContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| AddTableColumnsContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| AddTableColumnsContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| AddTableColumnsContext.prototype.ADD = function () {
 | |
|     return this.getToken(sqlParser.ADD, 0);
 | |
| };
 | |
| AddTableColumnsContext.prototype.COLUMNS = function () {
 | |
|     return this.getToken(sqlParser.COLUMNS, 0);
 | |
| };
 | |
| AddTableColumnsContext.prototype.colTypeList = function () {
 | |
|     return this.getTypedRuleContext(ColTypeListContext, 0);
 | |
| };
 | |
| AddTableColumnsContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterAddTableColumns(this);
 | |
|     }
 | |
| };
 | |
| AddTableColumnsContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitAddTableColumns(this);
 | |
|     }
 | |
| };
 | |
| AddTableColumnsContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitAddTableColumns(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function SetTablePropertiesContext(parser, ctx) {
 | |
|     StatementContext.call(this, parser);
 | |
|     StatementContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SetTablePropertiesContext.prototype = Object.create(StatementContext.prototype);
 | |
| SetTablePropertiesContext.prototype.constructor = SetTablePropertiesContext;
 | |
| sqlParser.SetTablePropertiesContext = SetTablePropertiesContext;
 | |
| SetTablePropertiesContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| SetTablePropertiesContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| SetTablePropertiesContext.prototype.SET = function () {
 | |
|     return this.getToken(sqlParser.SET, 0);
 | |
| };
 | |
| SetTablePropertiesContext.prototype.TBLPROPERTIES = function () {
 | |
|     return this.getToken(sqlParser.TBLPROPERTIES, 0);
 | |
| };
 | |
| SetTablePropertiesContext.prototype.tablePropertyList = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyListContext, 0);
 | |
| };
 | |
| SetTablePropertiesContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| SetTablePropertiesContext.prototype.VIEW = function () {
 | |
|     return this.getToken(sqlParser.VIEW, 0);
 | |
| };
 | |
| SetTablePropertiesContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSetTableProperties(this);
 | |
|     }
 | |
| };
 | |
| SetTablePropertiesContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSetTableProperties(this);
 | |
|     }
 | |
| };
 | |
| SetTablePropertiesContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSetTableProperties(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.StatementContext = StatementContext;
 | |
| sqlParser.prototype.statement = function () {
 | |
|     var localctx = new StatementContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 12, sqlParser.RULE_statement);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 891;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 101, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 localctx = new StatementDefaultContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 249;
 | |
|                 this.query();
 | |
|                 break;
 | |
|             case 2:
 | |
|                 localctx = new UseContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 250;
 | |
|                 this.match(sqlParser.USE);
 | |
|                 this.state = 251;
 | |
|                 localctx.db = this.identifier();
 | |
|                 break;
 | |
|             case 3:
 | |
|                 localctx = new CreateDatabaseContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 252;
 | |
|                 this.match(sqlParser.CREATE);
 | |
|                 this.state = 253;
 | |
|                 this.match(sqlParser.DATABASE);
 | |
|                 this.state = 257;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 1, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 254;
 | |
|                     this.match(sqlParser.IF);
 | |
|                     this.state = 255;
 | |
|                     this.match(sqlParser.NOT);
 | |
|                     this.state = 256;
 | |
|                     this.match(sqlParser.EXISTS);
 | |
|                 }
 | |
|                 this.state = 259;
 | |
|                 this.identifier();
 | |
|                 this.state = 262;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.COMMENT) {
 | |
|                     this.state = 260;
 | |
|                     this.match(sqlParser.COMMENT);
 | |
|                     this.state = 261;
 | |
|                     localctx.comment = this.match(sqlParser.STRING);
 | |
|                 }
 | |
|                 this.state = 265;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.LOCATION) {
 | |
|                     this.state = 264;
 | |
|                     this.locationSpec();
 | |
|                 }
 | |
|                 this.state = 270;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.WITH) {
 | |
|                     this.state = 267;
 | |
|                     this.match(sqlParser.WITH);
 | |
|                     this.state = 268;
 | |
|                     this.match(sqlParser.DBPROPERTIES);
 | |
|                     this.state = 269;
 | |
|                     this.tablePropertyList();
 | |
|                 }
 | |
|                 break;
 | |
|             case 4:
 | |
|                 localctx = new SetDatabasePropertiesContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 272;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 273;
 | |
|                 this.match(sqlParser.DATABASE);
 | |
|                 this.state = 274;
 | |
|                 this.identifier();
 | |
|                 this.state = 275;
 | |
|                 this.match(sqlParser.SET);
 | |
|                 this.state = 276;
 | |
|                 this.match(sqlParser.DBPROPERTIES);
 | |
|                 this.state = 277;
 | |
|                 this.tablePropertyList();
 | |
|                 break;
 | |
|             case 5:
 | |
|                 localctx = new DropDatabaseContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 5);
 | |
|                 this.state = 279;
 | |
|                 this.match(sqlParser.DROP);
 | |
|                 this.state = 280;
 | |
|                 this.match(sqlParser.DATABASE);
 | |
|                 this.state = 283;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 5, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 281;
 | |
|                     this.match(sqlParser.IF);
 | |
|                     this.state = 282;
 | |
|                     this.match(sqlParser.EXISTS);
 | |
|                 }
 | |
|                 this.state = 285;
 | |
|                 this.identifier();
 | |
|                 this.state = 287;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.CASCADE || _la === sqlParser.RESTRICT) {
 | |
|                     this.state = 286;
 | |
|                     _la = this._input.LA(1);
 | |
|                     if (!(_la === sqlParser.CASCADE || _la === sqlParser.RESTRICT)) {
 | |
|                         this._errHandler.recoverInline(this);
 | |
|                     }
 | |
|                     else {
 | |
|                         this._errHandler.reportMatch(this);
 | |
|                         this.consume();
 | |
|                     }
 | |
|                 }
 | |
|                 break;
 | |
|             case 6:
 | |
|                 localctx = new CreateTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 6);
 | |
|                 this.state = 289;
 | |
|                 this.createTableHeader();
 | |
|                 this.state = 294;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.T__0) {
 | |
|                     this.state = 290;
 | |
|                     this.match(sqlParser.T__0);
 | |
|                     this.state = 291;
 | |
|                     this.colTypeList();
 | |
|                     this.state = 292;
 | |
|                     this.match(sqlParser.T__1);
 | |
|                 }
 | |
|                 this.state = 296;
 | |
|                 this.tableProvider();
 | |
|                 this.state = 310;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 while (_la === sqlParser.COMMENT || ((((_la - 189)) & ~0x1f) == 0 && ((1 << (_la - 189)) & ((1 << (sqlParser.OPTIONS - 189)) | (1 << (sqlParser.TBLPROPERTIES - 189)) | (1 << (sqlParser.LOCATION - 189)) | (1 << (sqlParser.CLUSTERED - 189)))) !== 0) || _la === sqlParser.PARTITIONED) {
 | |
|                     this.state = 308;
 | |
|                     this._errHandler.sync(this);
 | |
|                     switch (this._input.LA(1)) {
 | |
|                         case sqlParser.OPTIONS:
 | |
|                             this.state = 297;
 | |
|                             this.match(sqlParser.OPTIONS);
 | |
|                             this.state = 298;
 | |
|                             localctx.options = this.tablePropertyList();
 | |
|                             break;
 | |
|                         case sqlParser.PARTITIONED:
 | |
|                             this.state = 299;
 | |
|                             this.match(sqlParser.PARTITIONED);
 | |
|                             this.state = 300;
 | |
|                             this.match(sqlParser.BY);
 | |
|                             this.state = 301;
 | |
|                             localctx.partitionColumnNames = this.identifierList();
 | |
|                             break;
 | |
|                         case sqlParser.CLUSTERED:
 | |
|                             this.state = 302;
 | |
|                             this.bucketSpec();
 | |
|                             break;
 | |
|                         case sqlParser.LOCATION:
 | |
|                             this.state = 303;
 | |
|                             this.locationSpec();
 | |
|                             break;
 | |
|                         case sqlParser.COMMENT:
 | |
|                             this.state = 304;
 | |
|                             this.match(sqlParser.COMMENT);
 | |
|                             this.state = 305;
 | |
|                             localctx.comment = this.match(sqlParser.STRING);
 | |
|                             break;
 | |
|                         case sqlParser.TBLPROPERTIES:
 | |
|                             this.state = 306;
 | |
|                             this.match(sqlParser.TBLPROPERTIES);
 | |
|                             this.state = 307;
 | |
|                             localctx.tableProps = this.tablePropertyList();
 | |
|                             break;
 | |
|                         default:
 | |
|                             throw new antlr4.error.NoViableAltException(this);
 | |
|                     }
 | |
|                     this.state = 312;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 }
 | |
|                 this.state = 317;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.AS))) !== 0) || ((((_la - 83)) & ~0x1f) == 0 && ((1 << (_la - 83)) & ((1 << (sqlParser.WITH - 83)) | (1 << (sqlParser.VALUES - 83)) | (1 << (sqlParser.TABLE - 83)) | (1 << (sqlParser.INSERT - 83)))) !== 0) || _la === sqlParser.MAP || _la === sqlParser.REDUCE) {
 | |
|                     this.state = 314;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                     if (_la === sqlParser.AS) {
 | |
|                         this.state = 313;
 | |
|                         this.match(sqlParser.AS);
 | |
|                     }
 | |
|                     this.state = 316;
 | |
|                     this.query();
 | |
|                 }
 | |
|                 break;
 | |
|             case 7:
 | |
|                 localctx = new CreateHiveTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 7);
 | |
|                 this.state = 319;
 | |
|                 this.createTableHeader();
 | |
|                 this.state = 324;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 12, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 320;
 | |
|                     this.match(sqlParser.T__0);
 | |
|                     this.state = 321;
 | |
|                     localctx.columns = this.colTypeList();
 | |
|                     this.state = 322;
 | |
|                     this.match(sqlParser.T__1);
 | |
|                 }
 | |
|                 this.state = 343;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 while (_la === sqlParser.ROW || _la === sqlParser.COMMENT || ((((_la - 191)) & ~0x1f) == 0 && ((1 << (_la - 191)) & ((1 << (sqlParser.TBLPROPERTIES - 191)) | (1 << (sqlParser.SKEWED - 191)) | (1 << (sqlParser.STORED - 191)) | (1 << (sqlParser.LOCATION - 191)) | (1 << (sqlParser.CLUSTERED - 191)) | (1 << (sqlParser.PARTITIONED - 191)))) !== 0)) {
 | |
|                     this.state = 341;
 | |
|                     this._errHandler.sync(this);
 | |
|                     switch (this._input.LA(1)) {
 | |
|                         case sqlParser.COMMENT:
 | |
|                             this.state = 326;
 | |
|                             this.match(sqlParser.COMMENT);
 | |
|                             this.state = 327;
 | |
|                             localctx.comment = this.match(sqlParser.STRING);
 | |
|                             break;
 | |
|                         case sqlParser.PARTITIONED:
 | |
|                             this.state = 328;
 | |
|                             this.match(sqlParser.PARTITIONED);
 | |
|                             this.state = 329;
 | |
|                             this.match(sqlParser.BY);
 | |
|                             this.state = 330;
 | |
|                             this.match(sqlParser.T__0);
 | |
|                             this.state = 331;
 | |
|                             localctx.partitionColumns = this.colTypeList();
 | |
|                             this.state = 332;
 | |
|                             this.match(sqlParser.T__1);
 | |
|                             break;
 | |
|                         case sqlParser.CLUSTERED:
 | |
|                             this.state = 334;
 | |
|                             this.bucketSpec();
 | |
|                             break;
 | |
|                         case sqlParser.SKEWED:
 | |
|                             this.state = 335;
 | |
|                             this.skewSpec();
 | |
|                             break;
 | |
|                         case sqlParser.ROW:
 | |
|                             this.state = 336;
 | |
|                             this.rowFormat();
 | |
|                             break;
 | |
|                         case sqlParser.STORED:
 | |
|                             this.state = 337;
 | |
|                             this.createFileFormat();
 | |
|                             break;
 | |
|                         case sqlParser.LOCATION:
 | |
|                             this.state = 338;
 | |
|                             this.locationSpec();
 | |
|                             break;
 | |
|                         case sqlParser.TBLPROPERTIES:
 | |
|                             this.state = 339;
 | |
|                             this.match(sqlParser.TBLPROPERTIES);
 | |
|                             this.state = 340;
 | |
|                             localctx.tableProps = this.tablePropertyList();
 | |
|                             break;
 | |
|                         default:
 | |
|                             throw new antlr4.error.NoViableAltException(this);
 | |
|                     }
 | |
|                     this.state = 345;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 }
 | |
|                 this.state = 350;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.AS))) !== 0) || ((((_la - 83)) & ~0x1f) == 0 && ((1 << (_la - 83)) & ((1 << (sqlParser.WITH - 83)) | (1 << (sqlParser.VALUES - 83)) | (1 << (sqlParser.TABLE - 83)) | (1 << (sqlParser.INSERT - 83)))) !== 0) || _la === sqlParser.MAP || _la === sqlParser.REDUCE) {
 | |
|                     this.state = 347;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                     if (_la === sqlParser.AS) {
 | |
|                         this.state = 346;
 | |
|                         this.match(sqlParser.AS);
 | |
|                     }
 | |
|                     this.state = 349;
 | |
|                     this.query();
 | |
|                 }
 | |
|                 break;
 | |
|             case 8:
 | |
|                 localctx = new CreateFlinkTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 8);
 | |
|                 this.state = 352;
 | |
|                 this.match(sqlParser.CREATE);
 | |
|                 this.state = 353;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 357;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 17, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 354;
 | |
|                     localctx.catcatalogName = this.identifier();
 | |
|                     this.state = 355;
 | |
|                     this.match(sqlParser.T__2);
 | |
|                 }
 | |
|                 this.state = 359;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 364;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.T__0) {
 | |
|                     this.state = 360;
 | |
|                     this.match(sqlParser.T__0);
 | |
|                     this.state = 361;
 | |
|                     localctx.columns = this.dtColTypeList();
 | |
|                     this.state = 362;
 | |
|                     this.match(sqlParser.T__1);
 | |
|                 }
 | |
|                 this.state = 368;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.COMMENT) {
 | |
|                     this.state = 366;
 | |
|                     this.match(sqlParser.COMMENT);
 | |
|                     this.state = 367;
 | |
|                     localctx.comment = this.match(sqlParser.STRING);
 | |
|                 }
 | |
|                 this.state = 376;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITIONED) {
 | |
|                     this.state = 370;
 | |
|                     this.match(sqlParser.PARTITIONED);
 | |
|                     this.state = 371;
 | |
|                     this.match(sqlParser.BY);
 | |
|                     this.state = 372;
 | |
|                     this.match(sqlParser.T__0);
 | |
|                     this.state = 373;
 | |
|                     localctx.partitionColumnNames = this.identifierList();
 | |
|                     this.state = 374;
 | |
|                     this.match(sqlParser.T__1);
 | |
|                 }
 | |
|                 this.state = 378;
 | |
|                 this.match(sqlParser.WITH);
 | |
|                 this.state = 379;
 | |
|                 this.tablePropertyList();
 | |
|                 break;
 | |
|             case 9:
 | |
|                 localctx = new CreateTableLikeContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 9);
 | |
|                 this.state = 381;
 | |
|                 this.match(sqlParser.CREATE);
 | |
|                 this.state = 382;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 386;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 21, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 383;
 | |
|                     this.match(sqlParser.IF);
 | |
|                     this.state = 384;
 | |
|                     this.match(sqlParser.NOT);
 | |
|                     this.state = 385;
 | |
|                     this.match(sqlParser.EXISTS);
 | |
|                 }
 | |
|                 this.state = 388;
 | |
|                 localctx.target = this.tableIdentifier();
 | |
|                 this.state = 389;
 | |
|                 this.match(sqlParser.LIKE);
 | |
|                 this.state = 390;
 | |
|                 localctx.source = this.tableIdentifier();
 | |
|                 this.state = 392;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.LOCATION) {
 | |
|                     this.state = 391;
 | |
|                     this.locationSpec();
 | |
|                 }
 | |
|                 break;
 | |
|             case 10:
 | |
|                 localctx = new AnalyzeContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 10);
 | |
|                 this.state = 394;
 | |
|                 this.match(sqlParser.ANALYZE);
 | |
|                 this.state = 395;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 396;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 398;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 397;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 this.state = 400;
 | |
|                 this.match(sqlParser.COMPUTE);
 | |
|                 this.state = 401;
 | |
|                 this.match(sqlParser.STATISTICS);
 | |
|                 this.state = 409;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 24, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 402;
 | |
|                     this.identifier();
 | |
|                 }
 | |
|                 else if (la_ === 2) {
 | |
|                     this.state = 403;
 | |
|                     this.match(sqlParser.FOR);
 | |
|                     this.state = 404;
 | |
|                     this.match(sqlParser.COLUMNS);
 | |
|                     this.state = 405;
 | |
|                     this.identifierSeq();
 | |
|                 }
 | |
|                 else if (la_ === 3) {
 | |
|                     this.state = 406;
 | |
|                     this.match(sqlParser.FOR);
 | |
|                     this.state = 407;
 | |
|                     this.match(sqlParser.ALL);
 | |
|                     this.state = 408;
 | |
|                     this.match(sqlParser.COLUMNS);
 | |
|                 }
 | |
|                 break;
 | |
|             case 11:
 | |
|                 localctx = new AddTableColumnsContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 11);
 | |
|                 this.state = 411;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 412;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 413;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 414;
 | |
|                 this.match(sqlParser.ADD);
 | |
|                 this.state = 415;
 | |
|                 this.match(sqlParser.COLUMNS);
 | |
|                 this.state = 416;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 417;
 | |
|                 localctx.columns = this.colTypeList();
 | |
|                 this.state = 418;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 12:
 | |
|                 localctx = new RenameTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 12);
 | |
|                 this.state = 420;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 421;
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(_la === sqlParser.TABLE || _la === sqlParser.VIEW)) {
 | |
|                     this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 this.state = 422;
 | |
|                 localctx.from = this.tableIdentifier();
 | |
|                 this.state = 423;
 | |
|                 this.match(sqlParser.RENAME);
 | |
|                 this.state = 424;
 | |
|                 this.match(sqlParser.TO);
 | |
|                 this.state = 425;
 | |
|                 localctx.to = this.tableIdentifier();
 | |
|                 break;
 | |
|             case 13:
 | |
|                 localctx = new SetTablePropertiesContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 13);
 | |
|                 this.state = 427;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 428;
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(_la === sqlParser.TABLE || _la === sqlParser.VIEW)) {
 | |
|                     this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 this.state = 429;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 430;
 | |
|                 this.match(sqlParser.SET);
 | |
|                 this.state = 431;
 | |
|                 this.match(sqlParser.TBLPROPERTIES);
 | |
|                 this.state = 432;
 | |
|                 this.tablePropertyList();
 | |
|                 break;
 | |
|             case 14:
 | |
|                 localctx = new UnsetTablePropertiesContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 14);
 | |
|                 this.state = 434;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 435;
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(_la === sqlParser.TABLE || _la === sqlParser.VIEW)) {
 | |
|                     this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 this.state = 436;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 437;
 | |
|                 this.match(sqlParser.UNSET);
 | |
|                 this.state = 438;
 | |
|                 this.match(sqlParser.TBLPROPERTIES);
 | |
|                 this.state = 441;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.IF) {
 | |
|                     this.state = 439;
 | |
|                     this.match(sqlParser.IF);
 | |
|                     this.state = 440;
 | |
|                     this.match(sqlParser.EXISTS);
 | |
|                 }
 | |
|                 this.state = 443;
 | |
|                 this.tablePropertyList();
 | |
|                 break;
 | |
|             case 15:
 | |
|                 localctx = new ChangeColumnContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 15);
 | |
|                 this.state = 445;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 446;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 447;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 449;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 448;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 this.state = 451;
 | |
|                 this.match(sqlParser.CHANGE);
 | |
|                 this.state = 453;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 27, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 452;
 | |
|                     this.match(sqlParser.COLUMN);
 | |
|                 }
 | |
|                 this.state = 455;
 | |
|                 this.identifier();
 | |
|                 this.state = 456;
 | |
|                 this.colType();
 | |
|                 this.state = 458;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.FIRST || _la === sqlParser.AFTER) {
 | |
|                     this.state = 457;
 | |
|                     this.colPosition();
 | |
|                 }
 | |
|                 break;
 | |
|             case 16:
 | |
|                 localctx = new SetTableSerDeContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 16);
 | |
|                 this.state = 460;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 461;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 462;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 464;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 463;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 this.state = 466;
 | |
|                 this.match(sqlParser.SET);
 | |
|                 this.state = 467;
 | |
|                 this.match(sqlParser.SERDE);
 | |
|                 this.state = 468;
 | |
|                 this.match(sqlParser.STRING);
 | |
|                 this.state = 472;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.WITH) {
 | |
|                     this.state = 469;
 | |
|                     this.match(sqlParser.WITH);
 | |
|                     this.state = 470;
 | |
|                     this.match(sqlParser.SERDEPROPERTIES);
 | |
|                     this.state = 471;
 | |
|                     this.tablePropertyList();
 | |
|                 }
 | |
|                 break;
 | |
|             case 17:
 | |
|                 localctx = new SetTableSerDeContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 17);
 | |
|                 this.state = 474;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 475;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 476;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 478;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 477;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 this.state = 480;
 | |
|                 this.match(sqlParser.SET);
 | |
|                 this.state = 481;
 | |
|                 this.match(sqlParser.SERDEPROPERTIES);
 | |
|                 this.state = 482;
 | |
|                 this.tablePropertyList();
 | |
|                 break;
 | |
|             case 18:
 | |
|                 localctx = new AddTablePartitionContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 18);
 | |
|                 this.state = 484;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 485;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 486;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 487;
 | |
|                 this.match(sqlParser.ADD);
 | |
|                 this.state = 491;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.IF) {
 | |
|                     this.state = 488;
 | |
|                     this.match(sqlParser.IF);
 | |
|                     this.state = 489;
 | |
|                     this.match(sqlParser.NOT);
 | |
|                     this.state = 490;
 | |
|                     this.match(sqlParser.EXISTS);
 | |
|                 }
 | |
|                 this.state = 494;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 do {
 | |
|                     this.state = 493;
 | |
|                     this.partitionSpecLocation();
 | |
|                     this.state = 496;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 } while (_la === sqlParser.PARTITION);
 | |
|                 break;
 | |
|             case 19:
 | |
|                 localctx = new AddTablePartitionContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 19);
 | |
|                 this.state = 498;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 499;
 | |
|                 this.match(sqlParser.VIEW);
 | |
|                 this.state = 500;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 501;
 | |
|                 this.match(sqlParser.ADD);
 | |
|                 this.state = 505;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.IF) {
 | |
|                     this.state = 502;
 | |
|                     this.match(sqlParser.IF);
 | |
|                     this.state = 503;
 | |
|                     this.match(sqlParser.NOT);
 | |
|                     this.state = 504;
 | |
|                     this.match(sqlParser.EXISTS);
 | |
|                 }
 | |
|                 this.state = 508;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 do {
 | |
|                     this.state = 507;
 | |
|                     this.partitionSpec();
 | |
|                     this.state = 510;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 } while (_la === sqlParser.PARTITION);
 | |
|                 break;
 | |
|             case 20:
 | |
|                 localctx = new RenameTablePartitionContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 20);
 | |
|                 this.state = 512;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 513;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 514;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 515;
 | |
|                 localctx.from = this.partitionSpec();
 | |
|                 this.state = 516;
 | |
|                 this.match(sqlParser.RENAME);
 | |
|                 this.state = 517;
 | |
|                 this.match(sqlParser.TO);
 | |
|                 this.state = 518;
 | |
|                 localctx.to = this.partitionSpec();
 | |
|                 break;
 | |
|             case 21:
 | |
|                 localctx = new DropTablePartitionsContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 21);
 | |
|                 this.state = 520;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 521;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 522;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 523;
 | |
|                 this.match(sqlParser.DROP);
 | |
|                 this.state = 526;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.IF) {
 | |
|                     this.state = 524;
 | |
|                     this.match(sqlParser.IF);
 | |
|                     this.state = 525;
 | |
|                     this.match(sqlParser.EXISTS);
 | |
|                 }
 | |
|                 this.state = 528;
 | |
|                 this.partitionSpec();
 | |
|                 this.state = 533;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 while (_la === sqlParser.T__3) {
 | |
|                     this.state = 529;
 | |
|                     this.match(sqlParser.T__3);
 | |
|                     this.state = 530;
 | |
|                     this.partitionSpec();
 | |
|                     this.state = 535;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 }
 | |
|                 this.state = 537;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PURGE) {
 | |
|                     this.state = 536;
 | |
|                     this.match(sqlParser.PURGE);
 | |
|                 }
 | |
|                 break;
 | |
|             case 22:
 | |
|                 localctx = new DropTablePartitionsContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 22);
 | |
|                 this.state = 539;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 540;
 | |
|                 this.match(sqlParser.VIEW);
 | |
|                 this.state = 541;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 542;
 | |
|                 this.match(sqlParser.DROP);
 | |
|                 this.state = 545;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.IF) {
 | |
|                     this.state = 543;
 | |
|                     this.match(sqlParser.IF);
 | |
|                     this.state = 544;
 | |
|                     this.match(sqlParser.EXISTS);
 | |
|                 }
 | |
|                 this.state = 547;
 | |
|                 this.partitionSpec();
 | |
|                 this.state = 552;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 while (_la === sqlParser.T__3) {
 | |
|                     this.state = 548;
 | |
|                     this.match(sqlParser.T__3);
 | |
|                     this.state = 549;
 | |
|                     this.partitionSpec();
 | |
|                     this.state = 554;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 }
 | |
|                 break;
 | |
|             case 23:
 | |
|                 localctx = new SetTableLocationContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 23);
 | |
|                 this.state = 555;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 556;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 557;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 559;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 558;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 this.state = 561;
 | |
|                 this.match(sqlParser.SET);
 | |
|                 this.state = 562;
 | |
|                 this.locationSpec();
 | |
|                 break;
 | |
|             case 24:
 | |
|                 localctx = new RecoverPartitionsContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 24);
 | |
|                 this.state = 564;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 565;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 566;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 567;
 | |
|                 this.match(sqlParser.RECOVER);
 | |
|                 this.state = 568;
 | |
|                 this.match(sqlParser.PARTITIONS);
 | |
|                 break;
 | |
|             case 25:
 | |
|                 localctx = new DropTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 25);
 | |
|                 this.state = 570;
 | |
|                 this.match(sqlParser.DROP);
 | |
|                 this.state = 571;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 574;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 42, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 572;
 | |
|                     this.match(sqlParser.IF);
 | |
|                     this.state = 573;
 | |
|                     this.match(sqlParser.EXISTS);
 | |
|                 }
 | |
|                 this.state = 576;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 578;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PURGE) {
 | |
|                     this.state = 577;
 | |
|                     this.match(sqlParser.PURGE);
 | |
|                 }
 | |
|                 break;
 | |
|             case 26:
 | |
|                 localctx = new DropTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 26);
 | |
|                 this.state = 580;
 | |
|                 this.match(sqlParser.DROP);
 | |
|                 this.state = 581;
 | |
|                 this.match(sqlParser.VIEW);
 | |
|                 this.state = 584;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 44, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 582;
 | |
|                     this.match(sqlParser.IF);
 | |
|                     this.state = 583;
 | |
|                     this.match(sqlParser.EXISTS);
 | |
|                 }
 | |
|                 this.state = 586;
 | |
|                 this.tableIdentifier();
 | |
|                 break;
 | |
|             case 27:
 | |
|                 localctx = new CreateViewContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 27);
 | |
|                 this.state = 587;
 | |
|                 this.match(sqlParser.CREATE);
 | |
|                 this.state = 590;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.OR) {
 | |
|                     this.state = 588;
 | |
|                     this.match(sqlParser.OR);
 | |
|                     this.state = 589;
 | |
|                     this.match(sqlParser.REPLACE);
 | |
|                 }
 | |
|                 this.state = 596;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.GLOBAL || _la === sqlParser.TEMPORARY) {
 | |
|                     this.state = 593;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                     if (_la === sqlParser.GLOBAL) {
 | |
|                         this.state = 592;
 | |
|                         this.match(sqlParser.GLOBAL);
 | |
|                     }
 | |
|                     this.state = 595;
 | |
|                     this.match(sqlParser.TEMPORARY);
 | |
|                 }
 | |
|                 this.state = 598;
 | |
|                 this.match(sqlParser.VIEW);
 | |
|                 this.state = 602;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 48, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 599;
 | |
|                     this.match(sqlParser.IF);
 | |
|                     this.state = 600;
 | |
|                     this.match(sqlParser.NOT);
 | |
|                     this.state = 601;
 | |
|                     this.match(sqlParser.EXISTS);
 | |
|                 }
 | |
|                 this.state = 604;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 606;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.T__0) {
 | |
|                     this.state = 605;
 | |
|                     this.identifierCommentList();
 | |
|                 }
 | |
|                 this.state = 610;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.COMMENT) {
 | |
|                     this.state = 608;
 | |
|                     this.match(sqlParser.COMMENT);
 | |
|                     this.state = 609;
 | |
|                     this.match(sqlParser.STRING);
 | |
|                 }
 | |
|                 this.state = 615;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITIONED) {
 | |
|                     this.state = 612;
 | |
|                     this.match(sqlParser.PARTITIONED);
 | |
|                     this.state = 613;
 | |
|                     this.match(sqlParser.ON);
 | |
|                     this.state = 614;
 | |
|                     this.identifierList();
 | |
|                 }
 | |
|                 this.state = 619;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.TBLPROPERTIES) {
 | |
|                     this.state = 617;
 | |
|                     this.match(sqlParser.TBLPROPERTIES);
 | |
|                     this.state = 618;
 | |
|                     this.tablePropertyList();
 | |
|                 }
 | |
|                 this.state = 621;
 | |
|                 this.match(sqlParser.AS);
 | |
|                 this.state = 622;
 | |
|                 this.query();
 | |
|                 break;
 | |
|             case 28:
 | |
|                 localctx = new CreateTempViewUsingContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 28);
 | |
|                 this.state = 624;
 | |
|                 this.match(sqlParser.CREATE);
 | |
|                 this.state = 627;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.OR) {
 | |
|                     this.state = 625;
 | |
|                     this.match(sqlParser.OR);
 | |
|                     this.state = 626;
 | |
|                     this.match(sqlParser.REPLACE);
 | |
|                 }
 | |
|                 this.state = 630;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.GLOBAL) {
 | |
|                     this.state = 629;
 | |
|                     this.match(sqlParser.GLOBAL);
 | |
|                 }
 | |
|                 this.state = 632;
 | |
|                 this.match(sqlParser.TEMPORARY);
 | |
|                 this.state = 633;
 | |
|                 this.match(sqlParser.VIEW);
 | |
|                 this.state = 634;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 639;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.T__0) {
 | |
|                     this.state = 635;
 | |
|                     this.match(sqlParser.T__0);
 | |
|                     this.state = 636;
 | |
|                     this.colTypeList();
 | |
|                     this.state = 637;
 | |
|                     this.match(sqlParser.T__1);
 | |
|                 }
 | |
|                 this.state = 641;
 | |
|                 this.tableProvider();
 | |
|                 this.state = 644;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.OPTIONS) {
 | |
|                     this.state = 642;
 | |
|                     this.match(sqlParser.OPTIONS);
 | |
|                     this.state = 643;
 | |
|                     this.tablePropertyList();
 | |
|                 }
 | |
|                 break;
 | |
|             case 29:
 | |
|                 localctx = new AlterViewQueryContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 29);
 | |
|                 this.state = 646;
 | |
|                 this.match(sqlParser.ALTER);
 | |
|                 this.state = 647;
 | |
|                 this.match(sqlParser.VIEW);
 | |
|                 this.state = 648;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 650;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.AS) {
 | |
|                     this.state = 649;
 | |
|                     this.match(sqlParser.AS);
 | |
|                 }
 | |
|                 this.state = 652;
 | |
|                 this.query();
 | |
|                 break;
 | |
|             case 30:
 | |
|                 localctx = new CreateFunctionContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 30);
 | |
|                 this.state = 654;
 | |
|                 this.match(sqlParser.CREATE);
 | |
|                 this.state = 657;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.OR) {
 | |
|                     this.state = 655;
 | |
|                     this.match(sqlParser.OR);
 | |
|                     this.state = 656;
 | |
|                     this.match(sqlParser.REPLACE);
 | |
|                 }
 | |
|                 this.state = 660;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.TEMPORARY) {
 | |
|                     this.state = 659;
 | |
|                     this.match(sqlParser.TEMPORARY);
 | |
|                 }
 | |
|                 this.state = 662;
 | |
|                 this.match(sqlParser.FUNCTION);
 | |
|                 this.state = 666;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 60, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 663;
 | |
|                     this.match(sqlParser.IF);
 | |
|                     this.state = 664;
 | |
|                     this.match(sqlParser.NOT);
 | |
|                     this.state = 665;
 | |
|                     this.match(sqlParser.EXISTS);
 | |
|                 }
 | |
|                 this.state = 668;
 | |
|                 this.qualifiedName();
 | |
|                 this.state = 669;
 | |
|                 this.match(sqlParser.AS);
 | |
|                 this.state = 670;
 | |
|                 localctx.className = this.match(sqlParser.STRING);
 | |
|                 this.state = 680;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.USING) {
 | |
|                     this.state = 671;
 | |
|                     this.match(sqlParser.USING);
 | |
|                     this.state = 672;
 | |
|                     this.resource();
 | |
|                     this.state = 677;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                     while (_la === sqlParser.T__3) {
 | |
|                         this.state = 673;
 | |
|                         this.match(sqlParser.T__3);
 | |
|                         this.state = 674;
 | |
|                         this.resource();
 | |
|                         this.state = 679;
 | |
|                         this._errHandler.sync(this);
 | |
|                         _la = this._input.LA(1);
 | |
|                     }
 | |
|                 }
 | |
|                 break;
 | |
|             case 31:
 | |
|                 localctx = new DropFunctionContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 31);
 | |
|                 this.state = 682;
 | |
|                 this.match(sqlParser.DROP);
 | |
|                 this.state = 684;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.TEMPORARY) {
 | |
|                     this.state = 683;
 | |
|                     this.match(sqlParser.TEMPORARY);
 | |
|                 }
 | |
|                 this.state = 686;
 | |
|                 this.match(sqlParser.FUNCTION);
 | |
|                 this.state = 689;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 64, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 687;
 | |
|                     this.match(sqlParser.IF);
 | |
|                     this.state = 688;
 | |
|                     this.match(sqlParser.EXISTS);
 | |
|                 }
 | |
|                 this.state = 691;
 | |
|                 this.qualifiedName();
 | |
|                 break;
 | |
|             case 32:
 | |
|                 localctx = new ExplainContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 32);
 | |
|                 this.state = 692;
 | |
|                 this.match(sqlParser.EXPLAIN);
 | |
|                 this.state = 694;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)))) !== 0) || _la === sqlParser.EXTENDED || _la === sqlParser.FORMATTED) {
 | |
|                     this.state = 693;
 | |
|                     _la = this._input.LA(1);
 | |
|                     if (!(((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)))) !== 0) || _la === sqlParser.EXTENDED || _la === sqlParser.FORMATTED)) {
 | |
|                         this._errHandler.recoverInline(this);
 | |
|                     }
 | |
|                     else {
 | |
|                         this._errHandler.reportMatch(this);
 | |
|                         this.consume();
 | |
|                     }
 | |
|                 }
 | |
|                 this.state = 696;
 | |
|                 this.statement();
 | |
|                 break;
 | |
|             case 33:
 | |
|                 localctx = new ShowTablesContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 33);
 | |
|                 this.state = 697;
 | |
|                 this.match(sqlParser.SHOW);
 | |
|                 this.state = 698;
 | |
|                 this.match(sqlParser.TABLES);
 | |
|                 this.state = 701;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.FROM || _la === sqlParser.IN) {
 | |
|                     this.state = 699;
 | |
|                     _la = this._input.LA(1);
 | |
|                     if (!(_la === sqlParser.FROM || _la === sqlParser.IN)) {
 | |
|                         this._errHandler.recoverInline(this);
 | |
|                     }
 | |
|                     else {
 | |
|                         this._errHandler.reportMatch(this);
 | |
|                         this.consume();
 | |
|                     }
 | |
|                     this.state = 700;
 | |
|                     localctx.db = this.identifier();
 | |
|                 }
 | |
|                 this.state = 707;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.LIKE || _la === sqlParser.STRING) {
 | |
|                     this.state = 704;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                     if (_la === sqlParser.LIKE) {
 | |
|                         this.state = 703;
 | |
|                         this.match(sqlParser.LIKE);
 | |
|                     }
 | |
|                     this.state = 706;
 | |
|                     localctx.pattern = this.match(sqlParser.STRING);
 | |
|                 }
 | |
|                 break;
 | |
|             case 34:
 | |
|                 localctx = new ShowTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 34);
 | |
|                 this.state = 709;
 | |
|                 this.match(sqlParser.SHOW);
 | |
|                 this.state = 710;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 711;
 | |
|                 this.match(sqlParser.EXTENDED);
 | |
|                 this.state = 714;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.FROM || _la === sqlParser.IN) {
 | |
|                     this.state = 712;
 | |
|                     _la = this._input.LA(1);
 | |
|                     if (!(_la === sqlParser.FROM || _la === sqlParser.IN)) {
 | |
|                         this._errHandler.recoverInline(this);
 | |
|                     }
 | |
|                     else {
 | |
|                         this._errHandler.reportMatch(this);
 | |
|                         this.consume();
 | |
|                     }
 | |
|                     this.state = 713;
 | |
|                     localctx.db = this.identifier();
 | |
|                 }
 | |
|                 this.state = 716;
 | |
|                 this.match(sqlParser.LIKE);
 | |
|                 this.state = 717;
 | |
|                 localctx.pattern = this.match(sqlParser.STRING);
 | |
|                 this.state = 719;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 718;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 break;
 | |
|             case 35:
 | |
|                 localctx = new ShowDatabasesContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 35);
 | |
|                 this.state = 721;
 | |
|                 this.match(sqlParser.SHOW);
 | |
|                 this.state = 722;
 | |
|                 this.match(sqlParser.DATABASES);
 | |
|                 this.state = 727;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.LIKE || _la === sqlParser.STRING) {
 | |
|                     this.state = 724;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                     if (_la === sqlParser.LIKE) {
 | |
|                         this.state = 723;
 | |
|                         this.match(sqlParser.LIKE);
 | |
|                     }
 | |
|                     this.state = 726;
 | |
|                     localctx.pattern = this.match(sqlParser.STRING);
 | |
|                 }
 | |
|                 break;
 | |
|             case 36:
 | |
|                 localctx = new ShowTblPropertiesContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 36);
 | |
|                 this.state = 729;
 | |
|                 this.match(sqlParser.SHOW);
 | |
|                 this.state = 730;
 | |
|                 this.match(sqlParser.TBLPROPERTIES);
 | |
|                 this.state = 731;
 | |
|                 localctx.table = this.tableIdentifier();
 | |
|                 this.state = 736;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.T__0) {
 | |
|                     this.state = 732;
 | |
|                     this.match(sqlParser.T__0);
 | |
|                     this.state = 733;
 | |
|                     localctx.key = this.tablePropertyKey();
 | |
|                     this.state = 734;
 | |
|                     this.match(sqlParser.T__1);
 | |
|                 }
 | |
|                 break;
 | |
|             case 37:
 | |
|                 localctx = new ShowColumnsContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 37);
 | |
|                 this.state = 738;
 | |
|                 this.match(sqlParser.SHOW);
 | |
|                 this.state = 739;
 | |
|                 this.match(sqlParser.COLUMNS);
 | |
|                 this.state = 740;
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(_la === sqlParser.FROM || _la === sqlParser.IN)) {
 | |
|                     this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 this.state = 741;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 744;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.FROM || _la === sqlParser.IN) {
 | |
|                     this.state = 742;
 | |
|                     _la = this._input.LA(1);
 | |
|                     if (!(_la === sqlParser.FROM || _la === sqlParser.IN)) {
 | |
|                         this._errHandler.recoverInline(this);
 | |
|                     }
 | |
|                     else {
 | |
|                         this._errHandler.reportMatch(this);
 | |
|                         this.consume();
 | |
|                     }
 | |
|                     this.state = 743;
 | |
|                     localctx.db = this.identifier();
 | |
|                 }
 | |
|                 break;
 | |
|             case 38:
 | |
|                 localctx = new ShowPartitionsContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 38);
 | |
|                 this.state = 746;
 | |
|                 this.match(sqlParser.SHOW);
 | |
|                 this.state = 747;
 | |
|                 this.match(sqlParser.PARTITIONS);
 | |
|                 this.state = 748;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 750;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 749;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 break;
 | |
|             case 39:
 | |
|                 localctx = new ShowFunctionsContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 39);
 | |
|                 this.state = 752;
 | |
|                 this.match(sqlParser.SHOW);
 | |
|                 this.state = 754;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 76, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 753;
 | |
|                     this.identifier();
 | |
|                 }
 | |
|                 this.state = 756;
 | |
|                 this.match(sqlParser.FUNCTIONS);
 | |
|                 this.state = 764;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (((((_la - 17)) & ~0x1f) == 0 && ((1 << (_la - 17)) & ((1 << (sqlParser.SELECT - 17)) | (1 << (sqlParser.FROM - 17)) | (1 << (sqlParser.ADD - 17)) | (1 << (sqlParser.AS - 17)) | (1 << (sqlParser.ALL - 17)) | (1 << (sqlParser.ANY - 17)) | (1 << (sqlParser.DISTINCT - 17)) | (1 << (sqlParser.WHERE - 17)) | (1 << (sqlParser.GROUP - 17)) | (1 << (sqlParser.BY - 17)) | (1 << (sqlParser.GROUPING - 17)) | (1 << (sqlParser.SETS - 17)) | (1 << (sqlParser.CUBE - 17)) | (1 << (sqlParser.ROLLUP - 17)) | (1 << (sqlParser.ORDER - 17)) | (1 << (sqlParser.HAVING - 17)) | (1 << (sqlParser.LIMIT - 17)) | (1 << (sqlParser.AT - 17)) | (1 << (sqlParser.OR - 17)) | (1 << (sqlParser.AND - 17)) | (1 << (sqlParser.IN - 17)) | (1 << (sqlParser.NOT - 17)) | (1 << (sqlParser.NO - 17)) | (1 << (sqlParser.EXISTS - 17)) | (1 << (sqlParser.BETWEEN - 17)) | (1 << (sqlParser.LIKE - 17)) | (1 << (sqlParser.RLIKE - 17)) | (1 << (sqlParser.IS - 17)) | (1 << (sqlParser.NULL - 17)) | (1 << (sqlParser.TRUE - 17)) | (1 << (sqlParser.FALSE - 17)) | (1 << (sqlParser.NULLS - 17)))) !== 0) || ((((_la - 49)) & ~0x1f) == 0 && ((1 << (_la - 49)) & ((1 << (sqlParser.ASC - 49)) | (1 << (sqlParser.DESC - 49)) | (1 << (sqlParser.FOR - 49)) | (1 << (sqlParser.INTERVAL - 49)) | (1 << (sqlParser.CASE - 49)) | (1 << (sqlParser.WHEN - 49)) | (1 << (sqlParser.THEN - 49)) | (1 << (sqlParser.ELSE - 49)) | (1 << (sqlParser.END - 49)) | (1 << (sqlParser.JOIN - 49)) | (1 << (sqlParser.CROSS - 49)) | (1 << (sqlParser.OUTER - 49)) | (1 << (sqlParser.INNER - 49)) | (1 << (sqlParser.LEFT - 49)) | (1 << (sqlParser.SEMI - 49)) | (1 << (sqlParser.RIGHT - 49)) | (1 << (sqlParser.FULL - 49)) | (1 << (sqlParser.NATURAL - 49)) | (1 << (sqlParser.ON - 49)) | (1 << (sqlParser.PIVOT - 49)) | (1 << (sqlParser.LATERAL - 49)) | (1 << (sqlParser.WINDOW - 49)) | (1 << (sqlParser.OVER - 49)) | (1 << (sqlParser.PARTITION - 49)) | (1 << (sqlParser.RANGE - 49)) | (1 << (sqlParser.ROWS - 49)) | (1 << (sqlParser.UNBOUNDED - 49)) | (1 << (sqlParser.PRECEDING - 49)) | (1 << (sqlParser.FOLLOWING - 49)) | (1 << (sqlParser.CURRENT - 49)) | (1 << (sqlParser.FIRST - 49)) | (1 << (sqlParser.AFTER - 49)))) !== 0) || ((((_la - 81)) & ~0x1f) == 0 && ((1 << (_la - 81)) & ((1 << (sqlParser.LAST - 81)) | (1 << (sqlParser.ROW - 81)) | (1 << (sqlParser.WITH - 81)) | (1 << (sqlParser.CREATE - 81)) | (1 << (sqlParser.TABLE - 81)) | (1 << (sqlParser.DIRECTORY - 81)) | (1 << (sqlParser.VIEW - 81)) | (1 << (sqlParser.REPLACE - 81)) | (1 << (sqlParser.INSERT - 81)) | (1 << (sqlParser.DELETE - 81)) | (1 << (sqlParser.INTO - 81)) | (1 << (sqlParser.DESCRIBE - 81)) | (1 << (sqlParser.EXPLAIN - 81)) | (1 << (sqlParser.FORMAT - 81)) | (1 << (sqlParser.LOGICAL - 81)) | (1 << (sqlParser.CODEGEN - 81)) | (1 << (sqlParser.COST - 81)) | (1 << (sqlParser.CAST - 81)) | (1 << (sqlParser.SHOW - 81)) | (1 << (sqlParser.TABLES - 81)) | (1 << (sqlParser.COLUMNS - 81)) | (1 << (sqlParser.COLUMN - 81)) | (1 << (sqlParser.USE - 81)) | (1 << (sqlParser.PARTITIONS - 81)) | (1 << (sqlParser.FUNCTIONS - 81)) | (1 << (sqlParser.DROP - 81)) | (1 << (sqlParser.UNION - 81)) | (1 << (sqlParser.EXCEPT - 81)) | (1 << (sqlParser.SETMINUS - 81)) | (1 << (sqlParser.INTERSECT - 81)) | (1 << (sqlParser.TO - 81)))) !== 0) || ((((_la - 113)) & ~0x1f) == 0 && ((1 << (_la - 113)) & ((1 << (sqlParser.TABLESAMPLE - 113)) | (1 << (sqlParser.STRATIFY - 113)) | (1 << (sqlParser.ALTER - 113)) | (1 << (sqlParser.RENAME - 113)) | (1 << (sqlParser.ARRAY - 113)) | (1 << (sqlParser.MAP - 113)) | (1 << (sqlParser.STRUCT - 113)) | (1 << (sqlParser.COMMENT - 113)) | (1 << (sqlParser.SET - 113)) | (1 << (sqlParser.RESET - 113)) | (1 << (sqlParser.DATA - 113)) | (1 << (sqlParser.START - 113)) | (1 << (sqlParser.TRANSACTION - 113)) | (1 << (sqlParser.COMMIT - 113)) | (1 << (sqlParser.ROLLBACK - 113)) | (1 << (sqlParser.MACRO - 113)) | (1 << (sqlParser.IGNORE - 113)) | (1 << (sqlParser.BOTH - 113)) | (1 << (sqlParser.LEADING - 113)) | (1 << (sqlParser.TRAILING - 113)) | (1 << (sqlParser.IF - 113)) | (1 << (sqlParser.POSITION - 113)) | (1 << (sqlParser.EXTRACT - 113)))) !== 0) || ((((_la - 149)) & ~0x1f) == 0 && ((1 << (_la - 149)) & ((1 << (sqlParser.DIV - 149)) | (1 << (sqlParser.PERCENTLIT - 149)) | (1 << (sqlParser.BUCKET - 149)) | (1 << (sqlParser.OUT - 149)) | (1 << (sqlParser.OF - 149)) | (1 << (sqlParser.SORT - 149)) | (1 << (sqlParser.CLUSTER - 149)) | (1 << (sqlParser.DISTRIBUTE - 149)) | (1 << (sqlParser.OVERWRITE - 149)) | (1 << (sqlParser.TRANSFORM - 149)) | (1 << (sqlParser.REDUCE - 149)) | (1 << (sqlParser.SERDE - 149)) | (1 << (sqlParser.SERDEPROPERTIES - 149)) | (1 << (sqlParser.RECORDREADER - 149)) | (1 << (sqlParser.RECORDWRITER - 149)) | (1 << (sqlParser.DELIMITED - 149)) | (1 << (sqlParser.FIELDS - 149)) | (1 << (sqlParser.TERMINATED - 149)) | (1 << (sqlParser.COLLECTION - 149)) | (1 << (sqlParser.ITEMS - 149)) | (1 << (sqlParser.KEYS - 149)) | (1 << (sqlParser.ESCAPED - 149)) | (1 << (sqlParser.LINES - 149)) | (1 << (sqlParser.SEPARATED - 149)) | (1 << (sqlParser.FUNCTION - 149)) | (1 << (sqlParser.EXTENDED - 149)))) !== 0) || ((((_la - 181)) & ~0x1f) == 0 && ((1 << (_la - 181)) & ((1 << (sqlParser.REFRESH - 181)) | (1 << (sqlParser.CLEAR - 181)) | (1 << (sqlParser.CACHE - 181)) | (1 << (sqlParser.UNCACHE - 181)) | (1 << (sqlParser.LAZY - 181)) | (1 << (sqlParser.FORMATTED - 181)) | (1 << (sqlParser.GLOBAL - 181)) | (1 << (sqlParser.TEMPORARY - 181)) | (1 << (sqlParser.OPTIONS - 181)) | (1 << (sqlParser.UNSET - 181)) | (1 << (sqlParser.TBLPROPERTIES - 181)) | (1 << (sqlParser.DBPROPERTIES - 181)) | (1 << (sqlParser.BUCKETS - 181)) | (1 << (sqlParser.SKEWED - 181)) | (1 << (sqlParser.STORED - 181)) | (1 << (sqlParser.DIRECTORIES - 181)) | (1 << (sqlParser.LOCATION - 181)) | (1 << (sqlParser.EXCHANGE - 181)) | (1 << (sqlParser.ARCHIVE - 181)) | (1 << (sqlParser.UNARCHIVE - 181)) | (1 << (sqlParser.FILEFORMAT - 181)) | (1 << (sqlParser.TOUCH - 181)) | (1 << (sqlParser.COMPACT - 181)) | (1 << (sqlParser.CONCATENATE - 181)) | (1 << (sqlParser.CHANGE - 181)) | (1 << (sqlParser.CASCADE - 181)) | (1 << (sqlParser.RESTRICT - 181)) | (1 << (sqlParser.CLUSTERED - 181)) | (1 << (sqlParser.SORTED - 181)) | (1 << (sqlParser.PURGE - 181)) | (1 << (sqlParser.INPUTFORMAT - 181)) | (1 << (sqlParser.OUTPUTFORMAT - 181)))) !== 0) || ((((_la - 213)) & ~0x1f) == 0 && ((1 << (_la - 213)) & ((1 << (sqlParser.DATABASE - 213)) | (1 << (sqlParser.DATABASES - 213)) | (1 << (sqlParser.DFS - 213)) | (1 << (sqlParser.TRUNCATE - 213)) | (1 << (sqlParser.ANALYZE - 213)) | (1 << (sqlParser.COMPUTE - 213)) | (1 << (sqlParser.LIST - 213)) | (1 << (sqlParser.STATISTICS - 213)) | (1 << (sqlParser.PARTITIONED - 213)) | (1 << (sqlParser.EXTERNAL - 213)) | (1 << (sqlParser.DEFINED - 213)) | (1 << (sqlParser.REVOKE - 213)) | (1 << (sqlParser.GRANT - 213)) | (1 << (sqlParser.LOCK - 213)) | (1 << (sqlParser.UNLOCK - 213)) | (1 << (sqlParser.MSCK - 213)) | (1 << (sqlParser.REPAIR - 213)) | (1 << (sqlParser.RECOVER - 213)) | (1 << (sqlParser.EXPORT - 213)) | (1 << (sqlParser.IMPORT - 213)) | (1 << (sqlParser.LOAD - 213)) | (1 << (sqlParser.ROLE - 213)) | (1 << (sqlParser.ROLES - 213)) | (1 << (sqlParser.COMPACTIONS - 213)) | (1 << (sqlParser.PRINCIPALS - 213)) | (1 << (sqlParser.TRANSACTIONS - 213)) | (1 << (sqlParser.INDEX - 213)) | (1 << (sqlParser.INDEXES - 213)) | (1 << (sqlParser.LOCKS - 213)) | (1 << (sqlParser.OPTION - 213)) | (1 << (sqlParser.ANTI - 213)) | (1 << (sqlParser.LOCAL - 213)))) !== 0) || ((((_la - 245)) & ~0x1f) == 0 && ((1 << (_la - 245)) & ((1 << (sqlParser.INPATH - 245)) | (1 << (sqlParser.STRING - 245)) | (1 << (sqlParser.IDENTIFIER - 245)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 245)))) !== 0)) {
 | |
|                     this.state = 758;
 | |
|                     this._errHandler.sync(this);
 | |
|                     var la_ = this._interp.adaptivePredict(this._input, 77, this._ctx);
 | |
|                     if (la_ === 1) {
 | |
|                         this.state = 757;
 | |
|                         this.match(sqlParser.LIKE);
 | |
|                     }
 | |
|                     this.state = 762;
 | |
|                     this._errHandler.sync(this);
 | |
|                     switch (this._input.LA(1)) {
 | |
|                         case sqlParser.SELECT:
 | |
|                         case sqlParser.FROM:
 | |
|                         case sqlParser.ADD:
 | |
|                         case sqlParser.AS:
 | |
|                         case sqlParser.ALL:
 | |
|                         case sqlParser.ANY:
 | |
|                         case sqlParser.DISTINCT:
 | |
|                         case sqlParser.WHERE:
 | |
|                         case sqlParser.GROUP:
 | |
|                         case sqlParser.BY:
 | |
|                         case sqlParser.GROUPING:
 | |
|                         case sqlParser.SETS:
 | |
|                         case sqlParser.CUBE:
 | |
|                         case sqlParser.ROLLUP:
 | |
|                         case sqlParser.ORDER:
 | |
|                         case sqlParser.HAVING:
 | |
|                         case sqlParser.LIMIT:
 | |
|                         case sqlParser.AT:
 | |
|                         case sqlParser.OR:
 | |
|                         case sqlParser.AND:
 | |
|                         case sqlParser.IN:
 | |
|                         case sqlParser.NOT:
 | |
|                         case sqlParser.NO:
 | |
|                         case sqlParser.EXISTS:
 | |
|                         case sqlParser.BETWEEN:
 | |
|                         case sqlParser.LIKE:
 | |
|                         case sqlParser.RLIKE:
 | |
|                         case sqlParser.IS:
 | |
|                         case sqlParser.NULL:
 | |
|                         case sqlParser.TRUE:
 | |
|                         case sqlParser.FALSE:
 | |
|                         case sqlParser.NULLS:
 | |
|                         case sqlParser.ASC:
 | |
|                         case sqlParser.DESC:
 | |
|                         case sqlParser.FOR:
 | |
|                         case sqlParser.INTERVAL:
 | |
|                         case sqlParser.CASE:
 | |
|                         case sqlParser.WHEN:
 | |
|                         case sqlParser.THEN:
 | |
|                         case sqlParser.ELSE:
 | |
|                         case sqlParser.END:
 | |
|                         case sqlParser.JOIN:
 | |
|                         case sqlParser.CROSS:
 | |
|                         case sqlParser.OUTER:
 | |
|                         case sqlParser.INNER:
 | |
|                         case sqlParser.LEFT:
 | |
|                         case sqlParser.SEMI:
 | |
|                         case sqlParser.RIGHT:
 | |
|                         case sqlParser.FULL:
 | |
|                         case sqlParser.NATURAL:
 | |
|                         case sqlParser.ON:
 | |
|                         case sqlParser.PIVOT:
 | |
|                         case sqlParser.LATERAL:
 | |
|                         case sqlParser.WINDOW:
 | |
|                         case sqlParser.OVER:
 | |
|                         case sqlParser.PARTITION:
 | |
|                         case sqlParser.RANGE:
 | |
|                         case sqlParser.ROWS:
 | |
|                         case sqlParser.UNBOUNDED:
 | |
|                         case sqlParser.PRECEDING:
 | |
|                         case sqlParser.FOLLOWING:
 | |
|                         case sqlParser.CURRENT:
 | |
|                         case sqlParser.FIRST:
 | |
|                         case sqlParser.AFTER:
 | |
|                         case sqlParser.LAST:
 | |
|                         case sqlParser.ROW:
 | |
|                         case sqlParser.WITH:
 | |
|                         case sqlParser.CREATE:
 | |
|                         case sqlParser.TABLE:
 | |
|                         case sqlParser.DIRECTORY:
 | |
|                         case sqlParser.VIEW:
 | |
|                         case sqlParser.REPLACE:
 | |
|                         case sqlParser.INSERT:
 | |
|                         case sqlParser.DELETE:
 | |
|                         case sqlParser.INTO:
 | |
|                         case sqlParser.DESCRIBE:
 | |
|                         case sqlParser.EXPLAIN:
 | |
|                         case sqlParser.FORMAT:
 | |
|                         case sqlParser.LOGICAL:
 | |
|                         case sqlParser.CODEGEN:
 | |
|                         case sqlParser.COST:
 | |
|                         case sqlParser.CAST:
 | |
|                         case sqlParser.SHOW:
 | |
|                         case sqlParser.TABLES:
 | |
|                         case sqlParser.COLUMNS:
 | |
|                         case sqlParser.COLUMN:
 | |
|                         case sqlParser.USE:
 | |
|                         case sqlParser.PARTITIONS:
 | |
|                         case sqlParser.FUNCTIONS:
 | |
|                         case sqlParser.DROP:
 | |
|                         case sqlParser.UNION:
 | |
|                         case sqlParser.EXCEPT:
 | |
|                         case sqlParser.SETMINUS:
 | |
|                         case sqlParser.INTERSECT:
 | |
|                         case sqlParser.TO:
 | |
|                         case sqlParser.TABLESAMPLE:
 | |
|                         case sqlParser.STRATIFY:
 | |
|                         case sqlParser.ALTER:
 | |
|                         case sqlParser.RENAME:
 | |
|                         case sqlParser.ARRAY:
 | |
|                         case sqlParser.MAP:
 | |
|                         case sqlParser.STRUCT:
 | |
|                         case sqlParser.COMMENT:
 | |
|                         case sqlParser.SET:
 | |
|                         case sqlParser.RESET:
 | |
|                         case sqlParser.DATA:
 | |
|                         case sqlParser.START:
 | |
|                         case sqlParser.TRANSACTION:
 | |
|                         case sqlParser.COMMIT:
 | |
|                         case sqlParser.ROLLBACK:
 | |
|                         case sqlParser.MACRO:
 | |
|                         case sqlParser.IGNORE:
 | |
|                         case sqlParser.BOTH:
 | |
|                         case sqlParser.LEADING:
 | |
|                         case sqlParser.TRAILING:
 | |
|                         case sqlParser.IF:
 | |
|                         case sqlParser.POSITION:
 | |
|                         case sqlParser.EXTRACT:
 | |
|                         case sqlParser.DIV:
 | |
|                         case sqlParser.PERCENTLIT:
 | |
|                         case sqlParser.BUCKET:
 | |
|                         case sqlParser.OUT:
 | |
|                         case sqlParser.OF:
 | |
|                         case sqlParser.SORT:
 | |
|                         case sqlParser.CLUSTER:
 | |
|                         case sqlParser.DISTRIBUTE:
 | |
|                         case sqlParser.OVERWRITE:
 | |
|                         case sqlParser.TRANSFORM:
 | |
|                         case sqlParser.REDUCE:
 | |
|                         case sqlParser.SERDE:
 | |
|                         case sqlParser.SERDEPROPERTIES:
 | |
|                         case sqlParser.RECORDREADER:
 | |
|                         case sqlParser.RECORDWRITER:
 | |
|                         case sqlParser.DELIMITED:
 | |
|                         case sqlParser.FIELDS:
 | |
|                         case sqlParser.TERMINATED:
 | |
|                         case sqlParser.COLLECTION:
 | |
|                         case sqlParser.ITEMS:
 | |
|                         case sqlParser.KEYS:
 | |
|                         case sqlParser.ESCAPED:
 | |
|                         case sqlParser.LINES:
 | |
|                         case sqlParser.SEPARATED:
 | |
|                         case sqlParser.FUNCTION:
 | |
|                         case sqlParser.EXTENDED:
 | |
|                         case sqlParser.REFRESH:
 | |
|                         case sqlParser.CLEAR:
 | |
|                         case sqlParser.CACHE:
 | |
|                         case sqlParser.UNCACHE:
 | |
|                         case sqlParser.LAZY:
 | |
|                         case sqlParser.FORMATTED:
 | |
|                         case sqlParser.GLOBAL:
 | |
|                         case sqlParser.TEMPORARY:
 | |
|                         case sqlParser.OPTIONS:
 | |
|                         case sqlParser.UNSET:
 | |
|                         case sqlParser.TBLPROPERTIES:
 | |
|                         case sqlParser.DBPROPERTIES:
 | |
|                         case sqlParser.BUCKETS:
 | |
|                         case sqlParser.SKEWED:
 | |
|                         case sqlParser.STORED:
 | |
|                         case sqlParser.DIRECTORIES:
 | |
|                         case sqlParser.LOCATION:
 | |
|                         case sqlParser.EXCHANGE:
 | |
|                         case sqlParser.ARCHIVE:
 | |
|                         case sqlParser.UNARCHIVE:
 | |
|                         case sqlParser.FILEFORMAT:
 | |
|                         case sqlParser.TOUCH:
 | |
|                         case sqlParser.COMPACT:
 | |
|                         case sqlParser.CONCATENATE:
 | |
|                         case sqlParser.CHANGE:
 | |
|                         case sqlParser.CASCADE:
 | |
|                         case sqlParser.RESTRICT:
 | |
|                         case sqlParser.CLUSTERED:
 | |
|                         case sqlParser.SORTED:
 | |
|                         case sqlParser.PURGE:
 | |
|                         case sqlParser.INPUTFORMAT:
 | |
|                         case sqlParser.OUTPUTFORMAT:
 | |
|                         case sqlParser.DATABASE:
 | |
|                         case sqlParser.DATABASES:
 | |
|                         case sqlParser.DFS:
 | |
|                         case sqlParser.TRUNCATE:
 | |
|                         case sqlParser.ANALYZE:
 | |
|                         case sqlParser.COMPUTE:
 | |
|                         case sqlParser.LIST:
 | |
|                         case sqlParser.STATISTICS:
 | |
|                         case sqlParser.PARTITIONED:
 | |
|                         case sqlParser.EXTERNAL:
 | |
|                         case sqlParser.DEFINED:
 | |
|                         case sqlParser.REVOKE:
 | |
|                         case sqlParser.GRANT:
 | |
|                         case sqlParser.LOCK:
 | |
|                         case sqlParser.UNLOCK:
 | |
|                         case sqlParser.MSCK:
 | |
|                         case sqlParser.REPAIR:
 | |
|                         case sqlParser.RECOVER:
 | |
|                         case sqlParser.EXPORT:
 | |
|                         case sqlParser.IMPORT:
 | |
|                         case sqlParser.LOAD:
 | |
|                         case sqlParser.ROLE:
 | |
|                         case sqlParser.ROLES:
 | |
|                         case sqlParser.COMPACTIONS:
 | |
|                         case sqlParser.PRINCIPALS:
 | |
|                         case sqlParser.TRANSACTIONS:
 | |
|                         case sqlParser.INDEX:
 | |
|                         case sqlParser.INDEXES:
 | |
|                         case sqlParser.LOCKS:
 | |
|                         case sqlParser.OPTION:
 | |
|                         case sqlParser.ANTI:
 | |
|                         case sqlParser.LOCAL:
 | |
|                         case sqlParser.INPATH:
 | |
|                         case sqlParser.IDENTIFIER:
 | |
|                         case sqlParser.BACKQUOTED_IDENTIFIER:
 | |
|                             this.state = 760;
 | |
|                             this.qualifiedName();
 | |
|                             break;
 | |
|                         case sqlParser.STRING:
 | |
|                             this.state = 761;
 | |
|                             localctx.pattern = this.match(sqlParser.STRING);
 | |
|                             break;
 | |
|                         default:
 | |
|                             throw new antlr4.error.NoViableAltException(this);
 | |
|                     }
 | |
|                 }
 | |
|                 break;
 | |
|             case 40:
 | |
|                 localctx = new ShowCreateTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 40);
 | |
|                 this.state = 766;
 | |
|                 this.match(sqlParser.SHOW);
 | |
|                 this.state = 767;
 | |
|                 this.match(sqlParser.CREATE);
 | |
|                 this.state = 768;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 769;
 | |
|                 this.tableIdentifier();
 | |
|                 break;
 | |
|             case 41:
 | |
|                 localctx = new DescribeFunctionContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 41);
 | |
|                 this.state = 770;
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(_la === sqlParser.DESC || _la === sqlParser.DESCRIBE)) {
 | |
|                     this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 this.state = 771;
 | |
|                 this.match(sqlParser.FUNCTION);
 | |
|                 this.state = 773;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 80, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 772;
 | |
|                     this.match(sqlParser.EXTENDED);
 | |
|                 }
 | |
|                 this.state = 775;
 | |
|                 this.describeFuncName();
 | |
|                 break;
 | |
|             case 42:
 | |
|                 localctx = new DescribeDatabaseContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 42);
 | |
|                 this.state = 776;
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(_la === sqlParser.DESC || _la === sqlParser.DESCRIBE)) {
 | |
|                     this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 this.state = 777;
 | |
|                 this.match(sqlParser.DATABASE);
 | |
|                 this.state = 779;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 81, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 778;
 | |
|                     this.match(sqlParser.EXTENDED);
 | |
|                 }
 | |
|                 this.state = 781;
 | |
|                 this.identifier();
 | |
|                 break;
 | |
|             case 43:
 | |
|                 localctx = new DescribeTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 43);
 | |
|                 this.state = 782;
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(_la === sqlParser.DESC || _la === sqlParser.DESCRIBE)) {
 | |
|                     this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 this.state = 784;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 82, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 783;
 | |
|                     this.match(sqlParser.TABLE);
 | |
|                 }
 | |
|                 this.state = 787;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 83, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 786;
 | |
|                     localctx.option = this._input.LT(1);
 | |
|                     _la = this._input.LA(1);
 | |
|                     if (!(_la === sqlParser.EXTENDED || _la === sqlParser.FORMATTED)) {
 | |
|                         localctx.option = this._errHandler.recoverInline(this);
 | |
|                     }
 | |
|                     else {
 | |
|                         this._errHandler.reportMatch(this);
 | |
|                         this.consume();
 | |
|                     }
 | |
|                 }
 | |
|                 this.state = 789;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 791;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 84, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 790;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 this.state = 794;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (((((_la - 17)) & ~0x1f) == 0 && ((1 << (_la - 17)) & ((1 << (sqlParser.SELECT - 17)) | (1 << (sqlParser.FROM - 17)) | (1 << (sqlParser.ADD - 17)) | (1 << (sqlParser.AS - 17)) | (1 << (sqlParser.ALL - 17)) | (1 << (sqlParser.ANY - 17)) | (1 << (sqlParser.DISTINCT - 17)) | (1 << (sqlParser.WHERE - 17)) | (1 << (sqlParser.GROUP - 17)) | (1 << (sqlParser.BY - 17)) | (1 << (sqlParser.GROUPING - 17)) | (1 << (sqlParser.SETS - 17)) | (1 << (sqlParser.CUBE - 17)) | (1 << (sqlParser.ROLLUP - 17)) | (1 << (sqlParser.ORDER - 17)) | (1 << (sqlParser.HAVING - 17)) | (1 << (sqlParser.LIMIT - 17)) | (1 << (sqlParser.AT - 17)) | (1 << (sqlParser.OR - 17)) | (1 << (sqlParser.AND - 17)) | (1 << (sqlParser.IN - 17)) | (1 << (sqlParser.NOT - 17)) | (1 << (sqlParser.NO - 17)) | (1 << (sqlParser.EXISTS - 17)) | (1 << (sqlParser.BETWEEN - 17)) | (1 << (sqlParser.LIKE - 17)) | (1 << (sqlParser.RLIKE - 17)) | (1 << (sqlParser.IS - 17)) | (1 << (sqlParser.NULL - 17)) | (1 << (sqlParser.TRUE - 17)) | (1 << (sqlParser.FALSE - 17)) | (1 << (sqlParser.NULLS - 17)))) !== 0) || ((((_la - 49)) & ~0x1f) == 0 && ((1 << (_la - 49)) & ((1 << (sqlParser.ASC - 49)) | (1 << (sqlParser.DESC - 49)) | (1 << (sqlParser.FOR - 49)) | (1 << (sqlParser.INTERVAL - 49)) | (1 << (sqlParser.CASE - 49)) | (1 << (sqlParser.WHEN - 49)) | (1 << (sqlParser.THEN - 49)) | (1 << (sqlParser.ELSE - 49)) | (1 << (sqlParser.END - 49)) | (1 << (sqlParser.JOIN - 49)) | (1 << (sqlParser.CROSS - 49)) | (1 << (sqlParser.OUTER - 49)) | (1 << (sqlParser.INNER - 49)) | (1 << (sqlParser.LEFT - 49)) | (1 << (sqlParser.SEMI - 49)) | (1 << (sqlParser.RIGHT - 49)) | (1 << (sqlParser.FULL - 49)) | (1 << (sqlParser.NATURAL - 49)) | (1 << (sqlParser.ON - 49)) | (1 << (sqlParser.PIVOT - 49)) | (1 << (sqlParser.LATERAL - 49)) | (1 << (sqlParser.WINDOW - 49)) | (1 << (sqlParser.OVER - 49)) | (1 << (sqlParser.PARTITION - 49)) | (1 << (sqlParser.RANGE - 49)) | (1 << (sqlParser.ROWS - 49)) | (1 << (sqlParser.UNBOUNDED - 49)) | (1 << (sqlParser.PRECEDING - 49)) | (1 << (sqlParser.FOLLOWING - 49)) | (1 << (sqlParser.CURRENT - 49)) | (1 << (sqlParser.FIRST - 49)) | (1 << (sqlParser.AFTER - 49)))) !== 0) || ((((_la - 81)) & ~0x1f) == 0 && ((1 << (_la - 81)) & ((1 << (sqlParser.LAST - 81)) | (1 << (sqlParser.ROW - 81)) | (1 << (sqlParser.WITH - 81)) | (1 << (sqlParser.CREATE - 81)) | (1 << (sqlParser.TABLE - 81)) | (1 << (sqlParser.DIRECTORY - 81)) | (1 << (sqlParser.VIEW - 81)) | (1 << (sqlParser.REPLACE - 81)) | (1 << (sqlParser.INSERT - 81)) | (1 << (sqlParser.DELETE - 81)) | (1 << (sqlParser.INTO - 81)) | (1 << (sqlParser.DESCRIBE - 81)) | (1 << (sqlParser.EXPLAIN - 81)) | (1 << (sqlParser.FORMAT - 81)) | (1 << (sqlParser.LOGICAL - 81)) | (1 << (sqlParser.CODEGEN - 81)) | (1 << (sqlParser.COST - 81)) | (1 << (sqlParser.CAST - 81)) | (1 << (sqlParser.SHOW - 81)) | (1 << (sqlParser.TABLES - 81)) | (1 << (sqlParser.COLUMNS - 81)) | (1 << (sqlParser.COLUMN - 81)) | (1 << (sqlParser.USE - 81)) | (1 << (sqlParser.PARTITIONS - 81)) | (1 << (sqlParser.FUNCTIONS - 81)) | (1 << (sqlParser.DROP - 81)) | (1 << (sqlParser.UNION - 81)) | (1 << (sqlParser.EXCEPT - 81)) | (1 << (sqlParser.SETMINUS - 81)) | (1 << (sqlParser.INTERSECT - 81)) | (1 << (sqlParser.TO - 81)))) !== 0) || ((((_la - 113)) & ~0x1f) == 0 && ((1 << (_la - 113)) & ((1 << (sqlParser.TABLESAMPLE - 113)) | (1 << (sqlParser.STRATIFY - 113)) | (1 << (sqlParser.ALTER - 113)) | (1 << (sqlParser.RENAME - 113)) | (1 << (sqlParser.ARRAY - 113)) | (1 << (sqlParser.MAP - 113)) | (1 << (sqlParser.STRUCT - 113)) | (1 << (sqlParser.COMMENT - 113)) | (1 << (sqlParser.SET - 113)) | (1 << (sqlParser.RESET - 113)) | (1 << (sqlParser.DATA - 113)) | (1 << (sqlParser.START - 113)) | (1 << (sqlParser.TRANSACTION - 113)) | (1 << (sqlParser.COMMIT - 113)) | (1 << (sqlParser.ROLLBACK - 113)) | (1 << (sqlParser.MACRO - 113)) | (1 << (sqlParser.IGNORE - 113)) | (1 << (sqlParser.BOTH - 113)) | (1 << (sqlParser.LEADING - 113)) | (1 << (sqlParser.TRAILING - 113)) | (1 << (sqlParser.IF - 113)) | (1 << (sqlParser.POSITION - 113)) | (1 << (sqlParser.EXTRACT - 113)))) !== 0) || ((((_la - 149)) & ~0x1f) == 0 && ((1 << (_la - 149)) & ((1 << (sqlParser.DIV - 149)) | (1 << (sqlParser.PERCENTLIT - 149)) | (1 << (sqlParser.BUCKET - 149)) | (1 << (sqlParser.OUT - 149)) | (1 << (sqlParser.OF - 149)) | (1 << (sqlParser.SORT - 149)) | (1 << (sqlParser.CLUSTER - 149)) | (1 << (sqlParser.DISTRIBUTE - 149)) | (1 << (sqlParser.OVERWRITE - 149)) | (1 << (sqlParser.TRANSFORM - 149)) | (1 << (sqlParser.REDUCE - 149)) | (1 << (sqlParser.SERDE - 149)) | (1 << (sqlParser.SERDEPROPERTIES - 149)) | (1 << (sqlParser.RECORDREADER - 149)) | (1 << (sqlParser.RECORDWRITER - 149)) | (1 << (sqlParser.DELIMITED - 149)) | (1 << (sqlParser.FIELDS - 149)) | (1 << (sqlParser.TERMINATED - 149)) | (1 << (sqlParser.COLLECTION - 149)) | (1 << (sqlParser.ITEMS - 149)) | (1 << (sqlParser.KEYS - 149)) | (1 << (sqlParser.ESCAPED - 149)) | (1 << (sqlParser.LINES - 149)) | (1 << (sqlParser.SEPARATED - 149)) | (1 << (sqlParser.FUNCTION - 149)) | (1 << (sqlParser.EXTENDED - 149)))) !== 0) || ((((_la - 181)) & ~0x1f) == 0 && ((1 << (_la - 181)) & ((1 << (sqlParser.REFRESH - 181)) | (1 << (sqlParser.CLEAR - 181)) | (1 << (sqlParser.CACHE - 181)) | (1 << (sqlParser.UNCACHE - 181)) | (1 << (sqlParser.LAZY - 181)) | (1 << (sqlParser.FORMATTED - 181)) | (1 << (sqlParser.GLOBAL - 181)) | (1 << (sqlParser.TEMPORARY - 181)) | (1 << (sqlParser.OPTIONS - 181)) | (1 << (sqlParser.UNSET - 181)) | (1 << (sqlParser.TBLPROPERTIES - 181)) | (1 << (sqlParser.DBPROPERTIES - 181)) | (1 << (sqlParser.BUCKETS - 181)) | (1 << (sqlParser.SKEWED - 181)) | (1 << (sqlParser.STORED - 181)) | (1 << (sqlParser.DIRECTORIES - 181)) | (1 << (sqlParser.LOCATION - 181)) | (1 << (sqlParser.EXCHANGE - 181)) | (1 << (sqlParser.ARCHIVE - 181)) | (1 << (sqlParser.UNARCHIVE - 181)) | (1 << (sqlParser.FILEFORMAT - 181)) | (1 << (sqlParser.TOUCH - 181)) | (1 << (sqlParser.COMPACT - 181)) | (1 << (sqlParser.CONCATENATE - 181)) | (1 << (sqlParser.CHANGE - 181)) | (1 << (sqlParser.CASCADE - 181)) | (1 << (sqlParser.RESTRICT - 181)) | (1 << (sqlParser.CLUSTERED - 181)) | (1 << (sqlParser.SORTED - 181)) | (1 << (sqlParser.PURGE - 181)) | (1 << (sqlParser.INPUTFORMAT - 181)) | (1 << (sqlParser.OUTPUTFORMAT - 181)))) !== 0) || ((((_la - 213)) & ~0x1f) == 0 && ((1 << (_la - 213)) & ((1 << (sqlParser.DATABASE - 213)) | (1 << (sqlParser.DATABASES - 213)) | (1 << (sqlParser.DFS - 213)) | (1 << (sqlParser.TRUNCATE - 213)) | (1 << (sqlParser.ANALYZE - 213)) | (1 << (sqlParser.COMPUTE - 213)) | (1 << (sqlParser.LIST - 213)) | (1 << (sqlParser.STATISTICS - 213)) | (1 << (sqlParser.PARTITIONED - 213)) | (1 << (sqlParser.EXTERNAL - 213)) | (1 << (sqlParser.DEFINED - 213)) | (1 << (sqlParser.REVOKE - 213)) | (1 << (sqlParser.GRANT - 213)) | (1 << (sqlParser.LOCK - 213)) | (1 << (sqlParser.UNLOCK - 213)) | (1 << (sqlParser.MSCK - 213)) | (1 << (sqlParser.REPAIR - 213)) | (1 << (sqlParser.RECOVER - 213)) | (1 << (sqlParser.EXPORT - 213)) | (1 << (sqlParser.IMPORT - 213)) | (1 << (sqlParser.LOAD - 213)) | (1 << (sqlParser.ROLE - 213)) | (1 << (sqlParser.ROLES - 213)) | (1 << (sqlParser.COMPACTIONS - 213)) | (1 << (sqlParser.PRINCIPALS - 213)) | (1 << (sqlParser.TRANSACTIONS - 213)) | (1 << (sqlParser.INDEX - 213)) | (1 << (sqlParser.INDEXES - 213)) | (1 << (sqlParser.LOCKS - 213)) | (1 << (sqlParser.OPTION - 213)) | (1 << (sqlParser.ANTI - 213)) | (1 << (sqlParser.LOCAL - 213)))) !== 0) || ((((_la - 245)) & ~0x1f) == 0 && ((1 << (_la - 245)) & ((1 << (sqlParser.INPATH - 245)) | (1 << (sqlParser.IDENTIFIER - 245)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 245)))) !== 0)) {
 | |
|                     this.state = 793;
 | |
|                     this.describeColName();
 | |
|                 }
 | |
|                 break;
 | |
|             case 44:
 | |
|                 localctx = new RefreshTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 44);
 | |
|                 this.state = 796;
 | |
|                 this.match(sqlParser.REFRESH);
 | |
|                 this.state = 797;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 798;
 | |
|                 this.tableIdentifier();
 | |
|                 break;
 | |
|             case 45:
 | |
|                 localctx = new RefreshResourceContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 45);
 | |
|                 this.state = 799;
 | |
|                 this.match(sqlParser.REFRESH);
 | |
|                 this.state = 807;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 87, this._ctx);
 | |
|                 switch (la_) {
 | |
|                     case 1:
 | |
|                         this.state = 800;
 | |
|                         this.match(sqlParser.STRING);
 | |
|                         break;
 | |
|                     case 2:
 | |
|                         this.state = 804;
 | |
|                         this._errHandler.sync(this);
 | |
|                         var _alt = this._interp.adaptivePredict(this._input, 86, this._ctx);
 | |
|                         while (_alt != 1 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|                             if (_alt === 1 + 1) {
 | |
|                                 this.state = 801;
 | |
|                                 this.matchWildcard();
 | |
|                             }
 | |
|                             this.state = 806;
 | |
|                             this._errHandler.sync(this);
 | |
|                             _alt = this._interp.adaptivePredict(this._input, 86, this._ctx);
 | |
|                         }
 | |
|                         break;
 | |
|                 }
 | |
|                 break;
 | |
|             case 46:
 | |
|                 localctx = new CacheTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 46);
 | |
|                 this.state = 809;
 | |
|                 this.match(sqlParser.CACHE);
 | |
|                 this.state = 811;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.LAZY) {
 | |
|                     this.state = 810;
 | |
|                     this.match(sqlParser.LAZY);
 | |
|                 }
 | |
|                 this.state = 813;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 814;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 817;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.OPTIONS) {
 | |
|                     this.state = 815;
 | |
|                     this.match(sqlParser.OPTIONS);
 | |
|                     this.state = 816;
 | |
|                     localctx.options = this.tablePropertyList();
 | |
|                 }
 | |
|                 this.state = 823;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.AS))) !== 0) || ((((_la - 83)) & ~0x1f) == 0 && ((1 << (_la - 83)) & ((1 << (sqlParser.WITH - 83)) | (1 << (sqlParser.VALUES - 83)) | (1 << (sqlParser.TABLE - 83)) | (1 << (sqlParser.INSERT - 83)))) !== 0) || _la === sqlParser.MAP || _la === sqlParser.REDUCE) {
 | |
|                     this.state = 820;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                     if (_la === sqlParser.AS) {
 | |
|                         this.state = 819;
 | |
|                         this.match(sqlParser.AS);
 | |
|                     }
 | |
|                     this.state = 822;
 | |
|                     this.query();
 | |
|                 }
 | |
|                 break;
 | |
|             case 47:
 | |
|                 localctx = new UncacheTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 47);
 | |
|                 this.state = 825;
 | |
|                 this.match(sqlParser.UNCACHE);
 | |
|                 this.state = 826;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 829;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 92, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 827;
 | |
|                     this.match(sqlParser.IF);
 | |
|                     this.state = 828;
 | |
|                     this.match(sqlParser.EXISTS);
 | |
|                 }
 | |
|                 this.state = 831;
 | |
|                 this.tableIdentifier();
 | |
|                 break;
 | |
|             case 48:
 | |
|                 localctx = new ClearCacheContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 48);
 | |
|                 this.state = 832;
 | |
|                 this.match(sqlParser.CLEAR);
 | |
|                 this.state = 833;
 | |
|                 this.match(sqlParser.CACHE);
 | |
|                 break;
 | |
|             case 49:
 | |
|                 localctx = new LoadDataContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 49);
 | |
|                 this.state = 834;
 | |
|                 this.match(sqlParser.LOAD);
 | |
|                 this.state = 835;
 | |
|                 this.match(sqlParser.DATA);
 | |
|                 this.state = 837;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.LOCAL) {
 | |
|                     this.state = 836;
 | |
|                     this.match(sqlParser.LOCAL);
 | |
|                 }
 | |
|                 this.state = 839;
 | |
|                 this.match(sqlParser.INPATH);
 | |
|                 this.state = 840;
 | |
|                 localctx.path = this.match(sqlParser.STRING);
 | |
|                 this.state = 842;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.OVERWRITE) {
 | |
|                     this.state = 841;
 | |
|                     this.match(sqlParser.OVERWRITE);
 | |
|                 }
 | |
|                 this.state = 844;
 | |
|                 this.match(sqlParser.INTO);
 | |
|                 this.state = 845;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 846;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 848;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 847;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 break;
 | |
|             case 50:
 | |
|                 localctx = new TruncateTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 50);
 | |
|                 this.state = 850;
 | |
|                 this.match(sqlParser.TRUNCATE);
 | |
|                 this.state = 851;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 852;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 854;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 853;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 break;
 | |
|             case 51:
 | |
|                 localctx = new RepairTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 51);
 | |
|                 this.state = 856;
 | |
|                 this.match(sqlParser.MSCK);
 | |
|                 this.state = 857;
 | |
|                 this.match(sqlParser.REPAIR);
 | |
|                 this.state = 858;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 859;
 | |
|                 this.tableIdentifier();
 | |
|                 break;
 | |
|             case 52:
 | |
|                 localctx = new ManageResourceContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 52);
 | |
|                 this.state = 860;
 | |
|                 localctx.op = this._input.LT(1);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(_la === sqlParser.ADD || _la === sqlParser.LIST)) {
 | |
|                     localctx.op = this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 this.state = 861;
 | |
|                 this.identifier();
 | |
|                 this.state = 865;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var _alt = this._interp.adaptivePredict(this._input, 97, this._ctx);
 | |
|                 while (_alt != 1 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|                     if (_alt === 1 + 1) {
 | |
|                         this.state = 862;
 | |
|                         this.matchWildcard();
 | |
|                     }
 | |
|                     this.state = 867;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _alt = this._interp.adaptivePredict(this._input, 97, this._ctx);
 | |
|                 }
 | |
|                 break;
 | |
|             case 53:
 | |
|                 localctx = new FailNativeCommandContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 53);
 | |
|                 this.state = 868;
 | |
|                 this.match(sqlParser.SET);
 | |
|                 this.state = 869;
 | |
|                 this.match(sqlParser.ROLE);
 | |
|                 this.state = 873;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var _alt = this._interp.adaptivePredict(this._input, 98, this._ctx);
 | |
|                 while (_alt != 1 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|                     if (_alt === 1 + 1) {
 | |
|                         this.state = 870;
 | |
|                         this.matchWildcard();
 | |
|                     }
 | |
|                     this.state = 875;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _alt = this._interp.adaptivePredict(this._input, 98, this._ctx);
 | |
|                 }
 | |
|                 break;
 | |
|             case 54:
 | |
|                 localctx = new SetConfigurationContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 54);
 | |
|                 this.state = 876;
 | |
|                 this.match(sqlParser.SET);
 | |
|                 this.state = 880;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var _alt = this._interp.adaptivePredict(this._input, 99, this._ctx);
 | |
|                 while (_alt != 1 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|                     if (_alt === 1 + 1) {
 | |
|                         this.state = 877;
 | |
|                         this.matchWildcard();
 | |
|                     }
 | |
|                     this.state = 882;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _alt = this._interp.adaptivePredict(this._input, 99, this._ctx);
 | |
|                 }
 | |
|                 break;
 | |
|             case 55:
 | |
|                 localctx = new ResetConfigurationContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 55);
 | |
|                 this.state = 883;
 | |
|                 this.match(sqlParser.RESET);
 | |
|                 break;
 | |
|             case 56:
 | |
|                 localctx = new FailNativeCommandContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 56);
 | |
|                 this.state = 884;
 | |
|                 this.unsupportedHiveNativeCommands();
 | |
|                 this.state = 888;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var _alt = this._interp.adaptivePredict(this._input, 100, this._ctx);
 | |
|                 while (_alt != 1 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|                     if (_alt === 1 + 1) {
 | |
|                         this.state = 885;
 | |
|                         this.matchWildcard();
 | |
|                     }
 | |
|                     this.state = 890;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _alt = this._interp.adaptivePredict(this._input, 100, 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 UnsupportedHiveNativeCommandsContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_unsupportedHiveNativeCommands;
 | |
|     this.kw1 = null; // Token
 | |
|     this.kw2 = null; // Token
 | |
|     this.kw3 = null; // Token
 | |
|     this.kw4 = null; // Token
 | |
|     this.kw5 = null; // Token
 | |
|     this.kw6 = null; // Token
 | |
|     return this;
 | |
| }
 | |
| UnsupportedHiveNativeCommandsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| UnsupportedHiveNativeCommandsContext.prototype.constructor = UnsupportedHiveNativeCommandsContext;
 | |
| UnsupportedHiveNativeCommandsContext.prototype.CREATE = function () {
 | |
|     return this.getToken(sqlParser.CREATE, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.ROLE = function () {
 | |
|     return this.getToken(sqlParser.ROLE, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.DROP = function () {
 | |
|     return this.getToken(sqlParser.DROP, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.GRANT = function () {
 | |
|     return this.getToken(sqlParser.GRANT, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.REVOKE = function () {
 | |
|     return this.getToken(sqlParser.REVOKE, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.SHOW = function () {
 | |
|     return this.getToken(sqlParser.SHOW, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.PRINCIPALS = function () {
 | |
|     return this.getToken(sqlParser.PRINCIPALS, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.ROLES = function () {
 | |
|     return this.getToken(sqlParser.ROLES, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.CURRENT = function () {
 | |
|     return this.getToken(sqlParser.CURRENT, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.EXPORT = function () {
 | |
|     return this.getToken(sqlParser.EXPORT, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.IMPORT = function () {
 | |
|     return this.getToken(sqlParser.IMPORT, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.COMPACTIONS = function () {
 | |
|     return this.getToken(sqlParser.COMPACTIONS, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.TRANSACTIONS = function () {
 | |
|     return this.getToken(sqlParser.TRANSACTIONS, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.INDEXES = function () {
 | |
|     return this.getToken(sqlParser.INDEXES, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.LOCKS = function () {
 | |
|     return this.getToken(sqlParser.LOCKS, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.INDEX = function () {
 | |
|     return this.getToken(sqlParser.INDEX, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.LOCK = function () {
 | |
|     return this.getToken(sqlParser.LOCK, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.DATABASE = function () {
 | |
|     return this.getToken(sqlParser.DATABASE, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.UNLOCK = function () {
 | |
|     return this.getToken(sqlParser.UNLOCK, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.TEMPORARY = function () {
 | |
|     return this.getToken(sqlParser.TEMPORARY, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.MACRO = function () {
 | |
|     return this.getToken(sqlParser.MACRO, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.NOT = function () {
 | |
|     return this.getToken(sqlParser.NOT, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.CLUSTERED = function () {
 | |
|     return this.getToken(sqlParser.CLUSTERED, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.BY = function () {
 | |
|     return this.getToken(sqlParser.BY, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.SORTED = function () {
 | |
|     return this.getToken(sqlParser.SORTED, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.SKEWED = function () {
 | |
|     return this.getToken(sqlParser.SKEWED, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.STORED = function () {
 | |
|     return this.getToken(sqlParser.STORED, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.DIRECTORIES = function () {
 | |
|     return this.getToken(sqlParser.DIRECTORIES, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.SET = function () {
 | |
|     return this.getToken(sqlParser.SET, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.LOCATION = function () {
 | |
|     return this.getToken(sqlParser.LOCATION, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.EXCHANGE = function () {
 | |
|     return this.getToken(sqlParser.EXCHANGE, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.PARTITION = function () {
 | |
|     return this.getToken(sqlParser.PARTITION, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.ARCHIVE = function () {
 | |
|     return this.getToken(sqlParser.ARCHIVE, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.UNARCHIVE = function () {
 | |
|     return this.getToken(sqlParser.UNARCHIVE, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.TOUCH = function () {
 | |
|     return this.getToken(sqlParser.TOUCH, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.COMPACT = function () {
 | |
|     return this.getToken(sqlParser.COMPACT, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.partitionSpec = function () {
 | |
|     return this.getTypedRuleContext(PartitionSpecContext, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.CONCATENATE = function () {
 | |
|     return this.getToken(sqlParser.CONCATENATE, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.FILEFORMAT = function () {
 | |
|     return this.getToken(sqlParser.FILEFORMAT, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.REPLACE = function () {
 | |
|     return this.getToken(sqlParser.REPLACE, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.COLUMNS = function () {
 | |
|     return this.getToken(sqlParser.COLUMNS, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.START = function () {
 | |
|     return this.getToken(sqlParser.START, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.TRANSACTION = function () {
 | |
|     return this.getToken(sqlParser.TRANSACTION, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.COMMIT = function () {
 | |
|     return this.getToken(sqlParser.COMMIT, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.ROLLBACK = function () {
 | |
|     return this.getToken(sqlParser.ROLLBACK, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.DFS = function () {
 | |
|     return this.getToken(sqlParser.DFS, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.DELETE = function () {
 | |
|     return this.getToken(sqlParser.DELETE, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.FROM = function () {
 | |
|     return this.getToken(sqlParser.FROM, 0);
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterUnsupportedHiveNativeCommands(this);
 | |
|     }
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitUnsupportedHiveNativeCommands(this);
 | |
|     }
 | |
| };
 | |
| UnsupportedHiveNativeCommandsContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitUnsupportedHiveNativeCommands(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.UnsupportedHiveNativeCommandsContext = UnsupportedHiveNativeCommandsContext;
 | |
| sqlParser.prototype.unsupportedHiveNativeCommands = function () {
 | |
|     var localctx = new UnsupportedHiveNativeCommandsContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 14, sqlParser.RULE_unsupportedHiveNativeCommands);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 1063;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 109, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 893;
 | |
|                 localctx.kw1 = this.match(sqlParser.CREATE);
 | |
|                 this.state = 894;
 | |
|                 localctx.kw2 = this.match(sqlParser.ROLE);
 | |
|                 break;
 | |
|             case 2:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 895;
 | |
|                 localctx.kw1 = this.match(sqlParser.DROP);
 | |
|                 this.state = 896;
 | |
|                 localctx.kw2 = this.match(sqlParser.ROLE);
 | |
|                 break;
 | |
|             case 3:
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 897;
 | |
|                 localctx.kw1 = this.match(sqlParser.GRANT);
 | |
|                 this.state = 899;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 102, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 898;
 | |
|                     localctx.kw2 = this.match(sqlParser.ROLE);
 | |
|                 }
 | |
|                 break;
 | |
|             case 4:
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 901;
 | |
|                 localctx.kw1 = this.match(sqlParser.REVOKE);
 | |
|                 this.state = 903;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 103, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 902;
 | |
|                     localctx.kw2 = this.match(sqlParser.ROLE);
 | |
|                 }
 | |
|                 break;
 | |
|             case 5:
 | |
|                 this.enterOuterAlt(localctx, 5);
 | |
|                 this.state = 905;
 | |
|                 localctx.kw1 = this.match(sqlParser.SHOW);
 | |
|                 this.state = 906;
 | |
|                 localctx.kw2 = this.match(sqlParser.GRANT);
 | |
|                 break;
 | |
|             case 6:
 | |
|                 this.enterOuterAlt(localctx, 6);
 | |
|                 this.state = 907;
 | |
|                 localctx.kw1 = this.match(sqlParser.SHOW);
 | |
|                 this.state = 908;
 | |
|                 localctx.kw2 = this.match(sqlParser.ROLE);
 | |
|                 this.state = 910;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 104, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 909;
 | |
|                     localctx.kw3 = this.match(sqlParser.GRANT);
 | |
|                 }
 | |
|                 break;
 | |
|             case 7:
 | |
|                 this.enterOuterAlt(localctx, 7);
 | |
|                 this.state = 912;
 | |
|                 localctx.kw1 = this.match(sqlParser.SHOW);
 | |
|                 this.state = 913;
 | |
|                 localctx.kw2 = this.match(sqlParser.PRINCIPALS);
 | |
|                 break;
 | |
|             case 8:
 | |
|                 this.enterOuterAlt(localctx, 8);
 | |
|                 this.state = 914;
 | |
|                 localctx.kw1 = this.match(sqlParser.SHOW);
 | |
|                 this.state = 915;
 | |
|                 localctx.kw2 = this.match(sqlParser.ROLES);
 | |
|                 break;
 | |
|             case 9:
 | |
|                 this.enterOuterAlt(localctx, 9);
 | |
|                 this.state = 916;
 | |
|                 localctx.kw1 = this.match(sqlParser.SHOW);
 | |
|                 this.state = 917;
 | |
|                 localctx.kw2 = this.match(sqlParser.CURRENT);
 | |
|                 this.state = 918;
 | |
|                 localctx.kw3 = this.match(sqlParser.ROLES);
 | |
|                 break;
 | |
|             case 10:
 | |
|                 this.enterOuterAlt(localctx, 10);
 | |
|                 this.state = 919;
 | |
|                 localctx.kw1 = this.match(sqlParser.EXPORT);
 | |
|                 this.state = 920;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 break;
 | |
|             case 11:
 | |
|                 this.enterOuterAlt(localctx, 11);
 | |
|                 this.state = 921;
 | |
|                 localctx.kw1 = this.match(sqlParser.IMPORT);
 | |
|                 this.state = 922;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 break;
 | |
|             case 12:
 | |
|                 this.enterOuterAlt(localctx, 12);
 | |
|                 this.state = 923;
 | |
|                 localctx.kw1 = this.match(sqlParser.SHOW);
 | |
|                 this.state = 924;
 | |
|                 localctx.kw2 = this.match(sqlParser.COMPACTIONS);
 | |
|                 break;
 | |
|             case 13:
 | |
|                 this.enterOuterAlt(localctx, 13);
 | |
|                 this.state = 925;
 | |
|                 localctx.kw1 = this.match(sqlParser.SHOW);
 | |
|                 this.state = 926;
 | |
|                 localctx.kw2 = this.match(sqlParser.CREATE);
 | |
|                 this.state = 927;
 | |
|                 localctx.kw3 = this.match(sqlParser.TABLE);
 | |
|                 break;
 | |
|             case 14:
 | |
|                 this.enterOuterAlt(localctx, 14);
 | |
|                 this.state = 928;
 | |
|                 localctx.kw1 = this.match(sqlParser.SHOW);
 | |
|                 this.state = 929;
 | |
|                 localctx.kw2 = this.match(sqlParser.TRANSACTIONS);
 | |
|                 break;
 | |
|             case 15:
 | |
|                 this.enterOuterAlt(localctx, 15);
 | |
|                 this.state = 930;
 | |
|                 localctx.kw1 = this.match(sqlParser.SHOW);
 | |
|                 this.state = 931;
 | |
|                 localctx.kw2 = this.match(sqlParser.INDEXES);
 | |
|                 break;
 | |
|             case 16:
 | |
|                 this.enterOuterAlt(localctx, 16);
 | |
|                 this.state = 932;
 | |
|                 localctx.kw1 = this.match(sqlParser.SHOW);
 | |
|                 this.state = 933;
 | |
|                 localctx.kw2 = this.match(sqlParser.LOCKS);
 | |
|                 break;
 | |
|             case 17:
 | |
|                 this.enterOuterAlt(localctx, 17);
 | |
|                 this.state = 934;
 | |
|                 localctx.kw1 = this.match(sqlParser.CREATE);
 | |
|                 this.state = 935;
 | |
|                 localctx.kw2 = this.match(sqlParser.INDEX);
 | |
|                 break;
 | |
|             case 18:
 | |
|                 this.enterOuterAlt(localctx, 18);
 | |
|                 this.state = 936;
 | |
|                 localctx.kw1 = this.match(sqlParser.DROP);
 | |
|                 this.state = 937;
 | |
|                 localctx.kw2 = this.match(sqlParser.INDEX);
 | |
|                 break;
 | |
|             case 19:
 | |
|                 this.enterOuterAlt(localctx, 19);
 | |
|                 this.state = 938;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 939;
 | |
|                 localctx.kw2 = this.match(sqlParser.INDEX);
 | |
|                 break;
 | |
|             case 20:
 | |
|                 this.enterOuterAlt(localctx, 20);
 | |
|                 this.state = 940;
 | |
|                 localctx.kw1 = this.match(sqlParser.LOCK);
 | |
|                 this.state = 941;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 break;
 | |
|             case 21:
 | |
|                 this.enterOuterAlt(localctx, 21);
 | |
|                 this.state = 942;
 | |
|                 localctx.kw1 = this.match(sqlParser.LOCK);
 | |
|                 this.state = 943;
 | |
|                 localctx.kw2 = this.match(sqlParser.DATABASE);
 | |
|                 break;
 | |
|             case 22:
 | |
|                 this.enterOuterAlt(localctx, 22);
 | |
|                 this.state = 944;
 | |
|                 localctx.kw1 = this.match(sqlParser.UNLOCK);
 | |
|                 this.state = 945;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 break;
 | |
|             case 23:
 | |
|                 this.enterOuterAlt(localctx, 23);
 | |
|                 this.state = 946;
 | |
|                 localctx.kw1 = this.match(sqlParser.UNLOCK);
 | |
|                 this.state = 947;
 | |
|                 localctx.kw2 = this.match(sqlParser.DATABASE);
 | |
|                 break;
 | |
|             case 24:
 | |
|                 this.enterOuterAlt(localctx, 24);
 | |
|                 this.state = 948;
 | |
|                 localctx.kw1 = this.match(sqlParser.CREATE);
 | |
|                 this.state = 949;
 | |
|                 localctx.kw2 = this.match(sqlParser.TEMPORARY);
 | |
|                 this.state = 950;
 | |
|                 localctx.kw3 = this.match(sqlParser.MACRO);
 | |
|                 break;
 | |
|             case 25:
 | |
|                 this.enterOuterAlt(localctx, 25);
 | |
|                 this.state = 951;
 | |
|                 localctx.kw1 = this.match(sqlParser.DROP);
 | |
|                 this.state = 952;
 | |
|                 localctx.kw2 = this.match(sqlParser.TEMPORARY);
 | |
|                 this.state = 953;
 | |
|                 localctx.kw3 = this.match(sqlParser.MACRO);
 | |
|                 break;
 | |
|             case 26:
 | |
|                 this.enterOuterAlt(localctx, 26);
 | |
|                 this.state = 954;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 955;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 956;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 957;
 | |
|                 localctx.kw3 = this.match(sqlParser.NOT);
 | |
|                 this.state = 958;
 | |
|                 localctx.kw4 = this.match(sqlParser.CLUSTERED);
 | |
|                 break;
 | |
|             case 27:
 | |
|                 this.enterOuterAlt(localctx, 27);
 | |
|                 this.state = 960;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 961;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 962;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 963;
 | |
|                 localctx.kw3 = this.match(sqlParser.CLUSTERED);
 | |
|                 this.state = 964;
 | |
|                 localctx.kw4 = this.match(sqlParser.BY);
 | |
|                 break;
 | |
|             case 28:
 | |
|                 this.enterOuterAlt(localctx, 28);
 | |
|                 this.state = 966;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 967;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 968;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 969;
 | |
|                 localctx.kw3 = this.match(sqlParser.NOT);
 | |
|                 this.state = 970;
 | |
|                 localctx.kw4 = this.match(sqlParser.SORTED);
 | |
|                 break;
 | |
|             case 29:
 | |
|                 this.enterOuterAlt(localctx, 29);
 | |
|                 this.state = 972;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 973;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 974;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 975;
 | |
|                 localctx.kw3 = this.match(sqlParser.SKEWED);
 | |
|                 this.state = 976;
 | |
|                 localctx.kw4 = this.match(sqlParser.BY);
 | |
|                 break;
 | |
|             case 30:
 | |
|                 this.enterOuterAlt(localctx, 30);
 | |
|                 this.state = 978;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 979;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 980;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 981;
 | |
|                 localctx.kw3 = this.match(sqlParser.NOT);
 | |
|                 this.state = 982;
 | |
|                 localctx.kw4 = this.match(sqlParser.SKEWED);
 | |
|                 break;
 | |
|             case 31:
 | |
|                 this.enterOuterAlt(localctx, 31);
 | |
|                 this.state = 984;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 985;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 986;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 987;
 | |
|                 localctx.kw3 = this.match(sqlParser.NOT);
 | |
|                 this.state = 988;
 | |
|                 localctx.kw4 = this.match(sqlParser.STORED);
 | |
|                 this.state = 989;
 | |
|                 localctx.kw5 = this.match(sqlParser.AS);
 | |
|                 this.state = 990;
 | |
|                 localctx.kw6 = this.match(sqlParser.DIRECTORIES);
 | |
|                 break;
 | |
|             case 32:
 | |
|                 this.enterOuterAlt(localctx, 32);
 | |
|                 this.state = 992;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 993;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 994;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 995;
 | |
|                 localctx.kw3 = this.match(sqlParser.SET);
 | |
|                 this.state = 996;
 | |
|                 localctx.kw4 = this.match(sqlParser.SKEWED);
 | |
|                 this.state = 997;
 | |
|                 localctx.kw5 = this.match(sqlParser.LOCATION);
 | |
|                 break;
 | |
|             case 33:
 | |
|                 this.enterOuterAlt(localctx, 33);
 | |
|                 this.state = 999;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 1000;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 1001;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 1002;
 | |
|                 localctx.kw3 = this.match(sqlParser.EXCHANGE);
 | |
|                 this.state = 1003;
 | |
|                 localctx.kw4 = this.match(sqlParser.PARTITION);
 | |
|                 break;
 | |
|             case 34:
 | |
|                 this.enterOuterAlt(localctx, 34);
 | |
|                 this.state = 1005;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 1006;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 1007;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 1008;
 | |
|                 localctx.kw3 = this.match(sqlParser.ARCHIVE);
 | |
|                 this.state = 1009;
 | |
|                 localctx.kw4 = this.match(sqlParser.PARTITION);
 | |
|                 break;
 | |
|             case 35:
 | |
|                 this.enterOuterAlt(localctx, 35);
 | |
|                 this.state = 1011;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 1012;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 1013;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 1014;
 | |
|                 localctx.kw3 = this.match(sqlParser.UNARCHIVE);
 | |
|                 this.state = 1015;
 | |
|                 localctx.kw4 = this.match(sqlParser.PARTITION);
 | |
|                 break;
 | |
|             case 36:
 | |
|                 this.enterOuterAlt(localctx, 36);
 | |
|                 this.state = 1017;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 1018;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 1019;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 1020;
 | |
|                 localctx.kw3 = this.match(sqlParser.TOUCH);
 | |
|                 break;
 | |
|             case 37:
 | |
|                 this.enterOuterAlt(localctx, 37);
 | |
|                 this.state = 1022;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 1023;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 1024;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 1026;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 1025;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 this.state = 1028;
 | |
|                 localctx.kw3 = this.match(sqlParser.COMPACT);
 | |
|                 break;
 | |
|             case 38:
 | |
|                 this.enterOuterAlt(localctx, 38);
 | |
|                 this.state = 1030;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 1031;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 1032;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 1034;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 1033;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 this.state = 1036;
 | |
|                 localctx.kw3 = this.match(sqlParser.CONCATENATE);
 | |
|                 break;
 | |
|             case 39:
 | |
|                 this.enterOuterAlt(localctx, 39);
 | |
|                 this.state = 1038;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 1039;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 1040;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 1042;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 1041;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 this.state = 1044;
 | |
|                 localctx.kw3 = this.match(sqlParser.SET);
 | |
|                 this.state = 1045;
 | |
|                 localctx.kw4 = this.match(sqlParser.FILEFORMAT);
 | |
|                 break;
 | |
|             case 40:
 | |
|                 this.enterOuterAlt(localctx, 40);
 | |
|                 this.state = 1047;
 | |
|                 localctx.kw1 = this.match(sqlParser.ALTER);
 | |
|                 this.state = 1048;
 | |
|                 localctx.kw2 = this.match(sqlParser.TABLE);
 | |
|                 this.state = 1049;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 1051;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 1050;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 this.state = 1053;
 | |
|                 localctx.kw3 = this.match(sqlParser.REPLACE);
 | |
|                 this.state = 1054;
 | |
|                 localctx.kw4 = this.match(sqlParser.COLUMNS);
 | |
|                 break;
 | |
|             case 41:
 | |
|                 this.enterOuterAlt(localctx, 41);
 | |
|                 this.state = 1056;
 | |
|                 localctx.kw1 = this.match(sqlParser.START);
 | |
|                 this.state = 1057;
 | |
|                 localctx.kw2 = this.match(sqlParser.TRANSACTION);
 | |
|                 break;
 | |
|             case 42:
 | |
|                 this.enterOuterAlt(localctx, 42);
 | |
|                 this.state = 1058;
 | |
|                 localctx.kw1 = this.match(sqlParser.COMMIT);
 | |
|                 break;
 | |
|             case 43:
 | |
|                 this.enterOuterAlt(localctx, 43);
 | |
|                 this.state = 1059;
 | |
|                 localctx.kw1 = this.match(sqlParser.ROLLBACK);
 | |
|                 break;
 | |
|             case 44:
 | |
|                 this.enterOuterAlt(localctx, 44);
 | |
|                 this.state = 1060;
 | |
|                 localctx.kw1 = this.match(sqlParser.DFS);
 | |
|                 break;
 | |
|             case 45:
 | |
|                 this.enterOuterAlt(localctx, 45);
 | |
|                 this.state = 1061;
 | |
|                 localctx.kw1 = this.match(sqlParser.DELETE);
 | |
|                 this.state = 1062;
 | |
|                 localctx.kw2 = this.match(sqlParser.FROM);
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function CreateTableHeaderContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_createTableHeader;
 | |
|     return this;
 | |
| }
 | |
| CreateTableHeaderContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| CreateTableHeaderContext.prototype.constructor = CreateTableHeaderContext;
 | |
| CreateTableHeaderContext.prototype.CREATE = function () {
 | |
|     return this.getToken(sqlParser.CREATE, 0);
 | |
| };
 | |
| CreateTableHeaderContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| CreateTableHeaderContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| CreateTableHeaderContext.prototype.TEMPORARY = function () {
 | |
|     return this.getToken(sqlParser.TEMPORARY, 0);
 | |
| };
 | |
| CreateTableHeaderContext.prototype.EXTERNAL = function () {
 | |
|     return this.getToken(sqlParser.EXTERNAL, 0);
 | |
| };
 | |
| CreateTableHeaderContext.prototype.IF = function () {
 | |
|     return this.getToken(sqlParser.IF, 0);
 | |
| };
 | |
| CreateTableHeaderContext.prototype.NOT = function () {
 | |
|     return this.getToken(sqlParser.NOT, 0);
 | |
| };
 | |
| CreateTableHeaderContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| CreateTableHeaderContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterCreateTableHeader(this);
 | |
|     }
 | |
| };
 | |
| CreateTableHeaderContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitCreateTableHeader(this);
 | |
|     }
 | |
| };
 | |
| CreateTableHeaderContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitCreateTableHeader(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.CreateTableHeaderContext = CreateTableHeaderContext;
 | |
| sqlParser.prototype.createTableHeader = function () {
 | |
|     var localctx = new CreateTableHeaderContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 16, sqlParser.RULE_createTableHeader);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1065;
 | |
|         this.match(sqlParser.CREATE);
 | |
|         this.state = 1067;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.TEMPORARY) {
 | |
|             this.state = 1066;
 | |
|             this.match(sqlParser.TEMPORARY);
 | |
|         }
 | |
|         this.state = 1070;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.EXTERNAL) {
 | |
|             this.state = 1069;
 | |
|             this.match(sqlParser.EXTERNAL);
 | |
|         }
 | |
|         this.state = 1072;
 | |
|         this.match(sqlParser.TABLE);
 | |
|         this.state = 1076;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 112, this._ctx);
 | |
|         if (la_ === 1) {
 | |
|             this.state = 1073;
 | |
|             this.match(sqlParser.IF);
 | |
|             this.state = 1074;
 | |
|             this.match(sqlParser.NOT);
 | |
|             this.state = 1075;
 | |
|             this.match(sqlParser.EXISTS);
 | |
|         }
 | |
|         this.state = 1078;
 | |
|         this.tableIdentifier();
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function BucketSpecContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_bucketSpec;
 | |
|     return this;
 | |
| }
 | |
| BucketSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| BucketSpecContext.prototype.constructor = BucketSpecContext;
 | |
| BucketSpecContext.prototype.CLUSTERED = function () {
 | |
|     return this.getToken(sqlParser.CLUSTERED, 0);
 | |
| };
 | |
| BucketSpecContext.prototype.BY = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.BY);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.BY, i);
 | |
|     }
 | |
| };
 | |
| BucketSpecContext.prototype.identifierList = function () {
 | |
|     return this.getTypedRuleContext(IdentifierListContext, 0);
 | |
| };
 | |
| BucketSpecContext.prototype.INTO = function () {
 | |
|     return this.getToken(sqlParser.INTO, 0);
 | |
| };
 | |
| BucketSpecContext.prototype.INTEGER_VALUE = function () {
 | |
|     return this.getToken(sqlParser.INTEGER_VALUE, 0);
 | |
| };
 | |
| BucketSpecContext.prototype.BUCKETS = function () {
 | |
|     return this.getToken(sqlParser.BUCKETS, 0);
 | |
| };
 | |
| BucketSpecContext.prototype.SORTED = function () {
 | |
|     return this.getToken(sqlParser.SORTED, 0);
 | |
| };
 | |
| BucketSpecContext.prototype.orderedIdentifierList = function () {
 | |
|     return this.getTypedRuleContext(OrderedIdentifierListContext, 0);
 | |
| };
 | |
| BucketSpecContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterBucketSpec(this);
 | |
|     }
 | |
| };
 | |
| BucketSpecContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitBucketSpec(this);
 | |
|     }
 | |
| };
 | |
| BucketSpecContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitBucketSpec(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.BucketSpecContext = BucketSpecContext;
 | |
| sqlParser.prototype.bucketSpec = function () {
 | |
|     var localctx = new BucketSpecContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 18, sqlParser.RULE_bucketSpec);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1080;
 | |
|         this.match(sqlParser.CLUSTERED);
 | |
|         this.state = 1081;
 | |
|         this.match(sqlParser.BY);
 | |
|         this.state = 1082;
 | |
|         this.identifierList();
 | |
|         this.state = 1086;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.SORTED) {
 | |
|             this.state = 1083;
 | |
|             this.match(sqlParser.SORTED);
 | |
|             this.state = 1084;
 | |
|             this.match(sqlParser.BY);
 | |
|             this.state = 1085;
 | |
|             this.orderedIdentifierList();
 | |
|         }
 | |
|         this.state = 1088;
 | |
|         this.match(sqlParser.INTO);
 | |
|         this.state = 1089;
 | |
|         this.match(sqlParser.INTEGER_VALUE);
 | |
|         this.state = 1090;
 | |
|         this.match(sqlParser.BUCKETS);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function SkewSpecContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_skewSpec;
 | |
|     return this;
 | |
| }
 | |
| SkewSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| SkewSpecContext.prototype.constructor = SkewSpecContext;
 | |
| SkewSpecContext.prototype.SKEWED = function () {
 | |
|     return this.getToken(sqlParser.SKEWED, 0);
 | |
| };
 | |
| SkewSpecContext.prototype.BY = function () {
 | |
|     return this.getToken(sqlParser.BY, 0);
 | |
| };
 | |
| SkewSpecContext.prototype.identifierList = function () {
 | |
|     return this.getTypedRuleContext(IdentifierListContext, 0);
 | |
| };
 | |
| SkewSpecContext.prototype.ON = function () {
 | |
|     return this.getToken(sqlParser.ON, 0);
 | |
| };
 | |
| SkewSpecContext.prototype.constantList = function () {
 | |
|     return this.getTypedRuleContext(ConstantListContext, 0);
 | |
| };
 | |
| SkewSpecContext.prototype.nestedConstantList = function () {
 | |
|     return this.getTypedRuleContext(NestedConstantListContext, 0);
 | |
| };
 | |
| SkewSpecContext.prototype.STORED = function () {
 | |
|     return this.getToken(sqlParser.STORED, 0);
 | |
| };
 | |
| SkewSpecContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| SkewSpecContext.prototype.DIRECTORIES = function () {
 | |
|     return this.getToken(sqlParser.DIRECTORIES, 0);
 | |
| };
 | |
| SkewSpecContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSkewSpec(this);
 | |
|     }
 | |
| };
 | |
| SkewSpecContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSkewSpec(this);
 | |
|     }
 | |
| };
 | |
| SkewSpecContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSkewSpec(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.SkewSpecContext = SkewSpecContext;
 | |
| sqlParser.prototype.skewSpec = function () {
 | |
|     var localctx = new SkewSpecContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 20, sqlParser.RULE_skewSpec);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1092;
 | |
|         this.match(sqlParser.SKEWED);
 | |
|         this.state = 1093;
 | |
|         this.match(sqlParser.BY);
 | |
|         this.state = 1094;
 | |
|         this.identifierList();
 | |
|         this.state = 1095;
 | |
|         this.match(sqlParser.ON);
 | |
|         this.state = 1098;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 114, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 this.state = 1096;
 | |
|                 this.constantList();
 | |
|                 break;
 | |
|             case 2:
 | |
|                 this.state = 1097;
 | |
|                 this.nestedConstantList();
 | |
|                 break;
 | |
|         }
 | |
|         this.state = 1103;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 115, this._ctx);
 | |
|         if (la_ === 1) {
 | |
|             this.state = 1100;
 | |
|             this.match(sqlParser.STORED);
 | |
|             this.state = 1101;
 | |
|             this.match(sqlParser.AS);
 | |
|             this.state = 1102;
 | |
|             this.match(sqlParser.DIRECTORIES);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function LocationSpecContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_locationSpec;
 | |
|     return this;
 | |
| }
 | |
| LocationSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| LocationSpecContext.prototype.constructor = LocationSpecContext;
 | |
| LocationSpecContext.prototype.LOCATION = function () {
 | |
|     return this.getToken(sqlParser.LOCATION, 0);
 | |
| };
 | |
| LocationSpecContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| LocationSpecContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterLocationSpec(this);
 | |
|     }
 | |
| };
 | |
| LocationSpecContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitLocationSpec(this);
 | |
|     }
 | |
| };
 | |
| LocationSpecContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitLocationSpec(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.LocationSpecContext = LocationSpecContext;
 | |
| sqlParser.prototype.locationSpec = function () {
 | |
|     var localctx = new LocationSpecContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 22, sqlParser.RULE_locationSpec);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1105;
 | |
|         this.match(sqlParser.LOCATION);
 | |
|         this.state = 1106;
 | |
|         this.match(sqlParser.STRING);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function QueryContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_query;
 | |
|     return this;
 | |
| }
 | |
| QueryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| QueryContext.prototype.constructor = QueryContext;
 | |
| QueryContext.prototype.queryNoWith = function () {
 | |
|     return this.getTypedRuleContext(QueryNoWithContext, 0);
 | |
| };
 | |
| QueryContext.prototype.ctes = function () {
 | |
|     return this.getTypedRuleContext(CtesContext, 0);
 | |
| };
 | |
| QueryContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterQuery(this);
 | |
|     }
 | |
| };
 | |
| QueryContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitQuery(this);
 | |
|     }
 | |
| };
 | |
| QueryContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitQuery(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.QueryContext = QueryContext;
 | |
| sqlParser.prototype.query = function () {
 | |
|     var localctx = new QueryContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 24, sqlParser.RULE_query);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1109;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.WITH) {
 | |
|             this.state = 1108;
 | |
|             this.ctes();
 | |
|         }
 | |
|         this.state = 1111;
 | |
|         this.queryNoWith();
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function InsertIntoContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_insertInto;
 | |
|     return this;
 | |
| }
 | |
| InsertIntoContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| InsertIntoContext.prototype.constructor = InsertIntoContext;
 | |
| InsertIntoContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function InsertOverwriteHiveDirContext(parser, ctx) {
 | |
|     InsertIntoContext.call(this, parser);
 | |
|     this.path = null; // Token;
 | |
|     InsertIntoContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| InsertOverwriteHiveDirContext.prototype = Object.create(InsertIntoContext.prototype);
 | |
| InsertOverwriteHiveDirContext.prototype.constructor = InsertOverwriteHiveDirContext;
 | |
| sqlParser.InsertOverwriteHiveDirContext = InsertOverwriteHiveDirContext;
 | |
| InsertOverwriteHiveDirContext.prototype.INSERT = function () {
 | |
|     return this.getToken(sqlParser.INSERT, 0);
 | |
| };
 | |
| InsertOverwriteHiveDirContext.prototype.OVERWRITE = function () {
 | |
|     return this.getToken(sqlParser.OVERWRITE, 0);
 | |
| };
 | |
| InsertOverwriteHiveDirContext.prototype.DIRECTORY = function () {
 | |
|     return this.getToken(sqlParser.DIRECTORY, 0);
 | |
| };
 | |
| InsertOverwriteHiveDirContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| InsertOverwriteHiveDirContext.prototype.LOCAL = function () {
 | |
|     return this.getToken(sqlParser.LOCAL, 0);
 | |
| };
 | |
| InsertOverwriteHiveDirContext.prototype.rowFormat = function () {
 | |
|     return this.getTypedRuleContext(RowFormatContext, 0);
 | |
| };
 | |
| InsertOverwriteHiveDirContext.prototype.createFileFormat = function () {
 | |
|     return this.getTypedRuleContext(CreateFileFormatContext, 0);
 | |
| };
 | |
| InsertOverwriteHiveDirContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterInsertOverwriteHiveDir(this);
 | |
|     }
 | |
| };
 | |
| InsertOverwriteHiveDirContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitInsertOverwriteHiveDir(this);
 | |
|     }
 | |
| };
 | |
| InsertOverwriteHiveDirContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitInsertOverwriteHiveDir(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function InsertOverwriteDirContext(parser, ctx) {
 | |
|     InsertIntoContext.call(this, parser);
 | |
|     this.path = null; // Token;
 | |
|     this.options = null; // TablePropertyListContext;
 | |
|     InsertIntoContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| InsertOverwriteDirContext.prototype = Object.create(InsertIntoContext.prototype);
 | |
| InsertOverwriteDirContext.prototype.constructor = InsertOverwriteDirContext;
 | |
| sqlParser.InsertOverwriteDirContext = InsertOverwriteDirContext;
 | |
| InsertOverwriteDirContext.prototype.INSERT = function () {
 | |
|     return this.getToken(sqlParser.INSERT, 0);
 | |
| };
 | |
| InsertOverwriteDirContext.prototype.OVERWRITE = function () {
 | |
|     return this.getToken(sqlParser.OVERWRITE, 0);
 | |
| };
 | |
| InsertOverwriteDirContext.prototype.DIRECTORY = function () {
 | |
|     return this.getToken(sqlParser.DIRECTORY, 0);
 | |
| };
 | |
| InsertOverwriteDirContext.prototype.tableProvider = function () {
 | |
|     return this.getTypedRuleContext(TableProviderContext, 0);
 | |
| };
 | |
| InsertOverwriteDirContext.prototype.LOCAL = function () {
 | |
|     return this.getToken(sqlParser.LOCAL, 0);
 | |
| };
 | |
| InsertOverwriteDirContext.prototype.OPTIONS = function () {
 | |
|     return this.getToken(sqlParser.OPTIONS, 0);
 | |
| };
 | |
| InsertOverwriteDirContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| InsertOverwriteDirContext.prototype.tablePropertyList = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyListContext, 0);
 | |
| };
 | |
| InsertOverwriteDirContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterInsertOverwriteDir(this);
 | |
|     }
 | |
| };
 | |
| InsertOverwriteDirContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitInsertOverwriteDir(this);
 | |
|     }
 | |
| };
 | |
| InsertOverwriteDirContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitInsertOverwriteDir(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function InsertOverwriteTableContext(parser, ctx) {
 | |
|     InsertIntoContext.call(this, parser);
 | |
|     InsertIntoContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| InsertOverwriteTableContext.prototype = Object.create(InsertIntoContext.prototype);
 | |
| InsertOverwriteTableContext.prototype.constructor = InsertOverwriteTableContext;
 | |
| sqlParser.InsertOverwriteTableContext = InsertOverwriteTableContext;
 | |
| InsertOverwriteTableContext.prototype.INSERT = function () {
 | |
|     return this.getToken(sqlParser.INSERT, 0);
 | |
| };
 | |
| InsertOverwriteTableContext.prototype.OVERWRITE = function () {
 | |
|     return this.getToken(sqlParser.OVERWRITE, 0);
 | |
| };
 | |
| InsertOverwriteTableContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| InsertOverwriteTableContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| InsertOverwriteTableContext.prototype.partitionSpec = function () {
 | |
|     return this.getTypedRuleContext(PartitionSpecContext, 0);
 | |
| };
 | |
| InsertOverwriteTableContext.prototype.IF = function () {
 | |
|     return this.getToken(sqlParser.IF, 0);
 | |
| };
 | |
| InsertOverwriteTableContext.prototype.NOT = function () {
 | |
|     return this.getToken(sqlParser.NOT, 0);
 | |
| };
 | |
| InsertOverwriteTableContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| InsertOverwriteTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterInsertOverwriteTable(this);
 | |
|     }
 | |
| };
 | |
| InsertOverwriteTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitInsertOverwriteTable(this);
 | |
|     }
 | |
| };
 | |
| InsertOverwriteTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitInsertOverwriteTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function InsertIntoTableContext(parser, ctx) {
 | |
|     InsertIntoContext.call(this, parser);
 | |
|     InsertIntoContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| InsertIntoTableContext.prototype = Object.create(InsertIntoContext.prototype);
 | |
| InsertIntoTableContext.prototype.constructor = InsertIntoTableContext;
 | |
| sqlParser.InsertIntoTableContext = InsertIntoTableContext;
 | |
| InsertIntoTableContext.prototype.INSERT = function () {
 | |
|     return this.getToken(sqlParser.INSERT, 0);
 | |
| };
 | |
| InsertIntoTableContext.prototype.INTO = function () {
 | |
|     return this.getToken(sqlParser.INTO, 0);
 | |
| };
 | |
| InsertIntoTableContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| InsertIntoTableContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| InsertIntoTableContext.prototype.partitionSpec = function () {
 | |
|     return this.getTypedRuleContext(PartitionSpecContext, 0);
 | |
| };
 | |
| InsertIntoTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterInsertIntoTable(this);
 | |
|     }
 | |
| };
 | |
| InsertIntoTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitInsertIntoTable(this);
 | |
|     }
 | |
| };
 | |
| InsertIntoTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitInsertIntoTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.InsertIntoContext = InsertIntoContext;
 | |
| sqlParser.prototype.insertInto = function () {
 | |
|     var localctx = new InsertIntoContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 26, sqlParser.RULE_insertInto);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 1161;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 127, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 localctx = new InsertOverwriteTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1113;
 | |
|                 this.match(sqlParser.INSERT);
 | |
|                 this.state = 1114;
 | |
|                 this.match(sqlParser.OVERWRITE);
 | |
|                 this.state = 1115;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 1116;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 1123;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 1117;
 | |
|                     this.partitionSpec();
 | |
|                     this.state = 1121;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                     if (_la === sqlParser.IF) {
 | |
|                         this.state = 1118;
 | |
|                         this.match(sqlParser.IF);
 | |
|                         this.state = 1119;
 | |
|                         this.match(sqlParser.NOT);
 | |
|                         this.state = 1120;
 | |
|                         this.match(sqlParser.EXISTS);
 | |
|                     }
 | |
|                 }
 | |
|                 break;
 | |
|             case 2:
 | |
|                 localctx = new InsertIntoTableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1125;
 | |
|                 this.match(sqlParser.INSERT);
 | |
|                 this.state = 1126;
 | |
|                 this.match(sqlParser.INTO);
 | |
|                 this.state = 1128;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 119, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1127;
 | |
|                     this.match(sqlParser.TABLE);
 | |
|                 }
 | |
|                 this.state = 1130;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 1132;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PARTITION) {
 | |
|                     this.state = 1131;
 | |
|                     this.partitionSpec();
 | |
|                 }
 | |
|                 break;
 | |
|             case 3:
 | |
|                 localctx = new InsertOverwriteHiveDirContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 1134;
 | |
|                 this.match(sqlParser.INSERT);
 | |
|                 this.state = 1135;
 | |
|                 this.match(sqlParser.OVERWRITE);
 | |
|                 this.state = 1137;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.LOCAL) {
 | |
|                     this.state = 1136;
 | |
|                     this.match(sqlParser.LOCAL);
 | |
|                 }
 | |
|                 this.state = 1139;
 | |
|                 this.match(sqlParser.DIRECTORY);
 | |
|                 this.state = 1140;
 | |
|                 localctx.path = this.match(sqlParser.STRING);
 | |
|                 this.state = 1142;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.ROW) {
 | |
|                     this.state = 1141;
 | |
|                     this.rowFormat();
 | |
|                 }
 | |
|                 this.state = 1145;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.STORED) {
 | |
|                     this.state = 1144;
 | |
|                     this.createFileFormat();
 | |
|                 }
 | |
|                 break;
 | |
|             case 4:
 | |
|                 localctx = new InsertOverwriteDirContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 1147;
 | |
|                 this.match(sqlParser.INSERT);
 | |
|                 this.state = 1148;
 | |
|                 this.match(sqlParser.OVERWRITE);
 | |
|                 this.state = 1150;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.LOCAL) {
 | |
|                     this.state = 1149;
 | |
|                     this.match(sqlParser.LOCAL);
 | |
|                 }
 | |
|                 this.state = 1152;
 | |
|                 this.match(sqlParser.DIRECTORY);
 | |
|                 this.state = 1154;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.STRING) {
 | |
|                     this.state = 1153;
 | |
|                     localctx.path = this.match(sqlParser.STRING);
 | |
|                 }
 | |
|                 this.state = 1156;
 | |
|                 this.tableProvider();
 | |
|                 this.state = 1159;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.OPTIONS) {
 | |
|                     this.state = 1157;
 | |
|                     this.match(sqlParser.OPTIONS);
 | |
|                     this.state = 1158;
 | |
|                     localctx.options = this.tablePropertyList();
 | |
|                 }
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function PartitionSpecLocationContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_partitionSpecLocation;
 | |
|     return this;
 | |
| }
 | |
| PartitionSpecLocationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| PartitionSpecLocationContext.prototype.constructor = PartitionSpecLocationContext;
 | |
| PartitionSpecLocationContext.prototype.partitionSpec = function () {
 | |
|     return this.getTypedRuleContext(PartitionSpecContext, 0);
 | |
| };
 | |
| PartitionSpecLocationContext.prototype.locationSpec = function () {
 | |
|     return this.getTypedRuleContext(LocationSpecContext, 0);
 | |
| };
 | |
| PartitionSpecLocationContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPartitionSpecLocation(this);
 | |
|     }
 | |
| };
 | |
| PartitionSpecLocationContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPartitionSpecLocation(this);
 | |
|     }
 | |
| };
 | |
| PartitionSpecLocationContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPartitionSpecLocation(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.PartitionSpecLocationContext = PartitionSpecLocationContext;
 | |
| sqlParser.prototype.partitionSpecLocation = function () {
 | |
|     var localctx = new PartitionSpecLocationContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 28, sqlParser.RULE_partitionSpecLocation);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1163;
 | |
|         this.partitionSpec();
 | |
|         this.state = 1165;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.LOCATION) {
 | |
|             this.state = 1164;
 | |
|             this.locationSpec();
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function PartitionSpecContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_partitionSpec;
 | |
|     return this;
 | |
| }
 | |
| PartitionSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| PartitionSpecContext.prototype.constructor = PartitionSpecContext;
 | |
| PartitionSpecContext.prototype.PARTITION = function () {
 | |
|     return this.getToken(sqlParser.PARTITION, 0);
 | |
| };
 | |
| PartitionSpecContext.prototype.partitionVal = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(PartitionValContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(PartitionValContext, i);
 | |
|     }
 | |
| };
 | |
| PartitionSpecContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPartitionSpec(this);
 | |
|     }
 | |
| };
 | |
| PartitionSpecContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPartitionSpec(this);
 | |
|     }
 | |
| };
 | |
| PartitionSpecContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPartitionSpec(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.PartitionSpecContext = PartitionSpecContext;
 | |
| sqlParser.prototype.partitionSpec = function () {
 | |
|     var localctx = new PartitionSpecContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 30, sqlParser.RULE_partitionSpec);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1167;
 | |
|         this.match(sqlParser.PARTITION);
 | |
|         this.state = 1168;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 1169;
 | |
|         this.partitionVal();
 | |
|         this.state = 1174;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while (_la === sqlParser.T__3) {
 | |
|             this.state = 1170;
 | |
|             this.match(sqlParser.T__3);
 | |
|             this.state = 1171;
 | |
|             this.partitionVal();
 | |
|             this.state = 1176;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|         }
 | |
|         this.state = 1177;
 | |
|         this.match(sqlParser.T__1);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function PartitionValContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_partitionVal;
 | |
|     return this;
 | |
| }
 | |
| PartitionValContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| PartitionValContext.prototype.constructor = PartitionValContext;
 | |
| PartitionValContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| PartitionValContext.prototype.EQ = function () {
 | |
|     return this.getToken(sqlParser.EQ, 0);
 | |
| };
 | |
| PartitionValContext.prototype.constant = function () {
 | |
|     return this.getTypedRuleContext(ConstantContext, 0);
 | |
| };
 | |
| PartitionValContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPartitionVal(this);
 | |
|     }
 | |
| };
 | |
| PartitionValContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPartitionVal(this);
 | |
|     }
 | |
| };
 | |
| PartitionValContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPartitionVal(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.PartitionValContext = PartitionValContext;
 | |
| sqlParser.prototype.partitionVal = function () {
 | |
|     var localctx = new PartitionValContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 32, sqlParser.RULE_partitionVal);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1179;
 | |
|         this.identifier();
 | |
|         this.state = 1182;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.EQ) {
 | |
|             this.state = 1180;
 | |
|             this.match(sqlParser.EQ);
 | |
|             this.state = 1181;
 | |
|             this.constant();
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function DescribeFuncNameContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_describeFuncName;
 | |
|     return this;
 | |
| }
 | |
| DescribeFuncNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| DescribeFuncNameContext.prototype.constructor = DescribeFuncNameContext;
 | |
| DescribeFuncNameContext.prototype.qualifiedName = function () {
 | |
|     return this.getTypedRuleContext(QualifiedNameContext, 0);
 | |
| };
 | |
| DescribeFuncNameContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| DescribeFuncNameContext.prototype.comparisonOperator = function () {
 | |
|     return this.getTypedRuleContext(ComparisonOperatorContext, 0);
 | |
| };
 | |
| DescribeFuncNameContext.prototype.arithmeticOperator = function () {
 | |
|     return this.getTypedRuleContext(ArithmeticOperatorContext, 0);
 | |
| };
 | |
| DescribeFuncNameContext.prototype.predicateOperator = function () {
 | |
|     return this.getTypedRuleContext(PredicateOperatorContext, 0);
 | |
| };
 | |
| DescribeFuncNameContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterDescribeFuncName(this);
 | |
|     }
 | |
| };
 | |
| DescribeFuncNameContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitDescribeFuncName(this);
 | |
|     }
 | |
| };
 | |
| DescribeFuncNameContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitDescribeFuncName(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.DescribeFuncNameContext = DescribeFuncNameContext;
 | |
| sqlParser.prototype.describeFuncName = function () {
 | |
|     var localctx = new DescribeFuncNameContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 34, sqlParser.RULE_describeFuncName);
 | |
|     try {
 | |
|         this.state = 1189;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 131, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1184;
 | |
|                 this.qualifiedName();
 | |
|                 break;
 | |
|             case 2:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1185;
 | |
|                 this.match(sqlParser.STRING);
 | |
|                 break;
 | |
|             case 3:
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 1186;
 | |
|                 this.comparisonOperator();
 | |
|                 break;
 | |
|             case 4:
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 1187;
 | |
|                 this.arithmeticOperator();
 | |
|                 break;
 | |
|             case 5:
 | |
|                 this.enterOuterAlt(localctx, 5);
 | |
|                 this.state = 1188;
 | |
|                 this.predicateOperator();
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function DescribeColNameContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_describeColName;
 | |
|     this._identifier = null; // IdentifierContext
 | |
|     this.nameParts = []; // of IdentifierContexts
 | |
|     return this;
 | |
| }
 | |
| DescribeColNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| DescribeColNameContext.prototype.constructor = DescribeColNameContext;
 | |
| DescribeColNameContext.prototype.identifier = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(IdentifierContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(IdentifierContext, i);
 | |
|     }
 | |
| };
 | |
| DescribeColNameContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterDescribeColName(this);
 | |
|     }
 | |
| };
 | |
| DescribeColNameContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitDescribeColName(this);
 | |
|     }
 | |
| };
 | |
| DescribeColNameContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitDescribeColName(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.DescribeColNameContext = DescribeColNameContext;
 | |
| sqlParser.prototype.describeColName = function () {
 | |
|     var localctx = new DescribeColNameContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 36, sqlParser.RULE_describeColName);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1191;
 | |
|         localctx._identifier = this.identifier();
 | |
|         localctx.nameParts.push(localctx._identifier);
 | |
|         this.state = 1196;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while (_la === sqlParser.T__2) {
 | |
|             this.state = 1192;
 | |
|             this.match(sqlParser.T__2);
 | |
|             this.state = 1193;
 | |
|             localctx._identifier = this.identifier();
 | |
|             localctx.nameParts.push(localctx._identifier);
 | |
|             this.state = 1198;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function CtesContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_ctes;
 | |
|     return this;
 | |
| }
 | |
| CtesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| CtesContext.prototype.constructor = CtesContext;
 | |
| CtesContext.prototype.WITH = function () {
 | |
|     return this.getToken(sqlParser.WITH, 0);
 | |
| };
 | |
| CtesContext.prototype.namedQuery = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(NamedQueryContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(NamedQueryContext, i);
 | |
|     }
 | |
| };
 | |
| CtesContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterCtes(this);
 | |
|     }
 | |
| };
 | |
| CtesContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitCtes(this);
 | |
|     }
 | |
| };
 | |
| CtesContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitCtes(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.CtesContext = CtesContext;
 | |
| sqlParser.prototype.ctes = function () {
 | |
|     var localctx = new CtesContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 38, sqlParser.RULE_ctes);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1199;
 | |
|         this.match(sqlParser.WITH);
 | |
|         this.state = 1200;
 | |
|         this.namedQuery();
 | |
|         this.state = 1205;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while (_la === sqlParser.T__3) {
 | |
|             this.state = 1201;
 | |
|             this.match(sqlParser.T__3);
 | |
|             this.state = 1202;
 | |
|             this.namedQuery();
 | |
|             this.state = 1207;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function NamedQueryContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_namedQuery;
 | |
|     this.name = null; // IdentifierContext
 | |
|     return this;
 | |
| }
 | |
| NamedQueryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| NamedQueryContext.prototype.constructor = NamedQueryContext;
 | |
| NamedQueryContext.prototype.query = function () {
 | |
|     return this.getTypedRuleContext(QueryContext, 0);
 | |
| };
 | |
| NamedQueryContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| NamedQueryContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| NamedQueryContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterNamedQuery(this);
 | |
|     }
 | |
| };
 | |
| NamedQueryContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitNamedQuery(this);
 | |
|     }
 | |
| };
 | |
| NamedQueryContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitNamedQuery(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.NamedQueryContext = NamedQueryContext;
 | |
| sqlParser.prototype.namedQuery = function () {
 | |
|     var localctx = new NamedQueryContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 40, sqlParser.RULE_namedQuery);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1208;
 | |
|         localctx.name = this.identifier();
 | |
|         this.state = 1210;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.AS) {
 | |
|             this.state = 1209;
 | |
|             this.match(sqlParser.AS);
 | |
|         }
 | |
|         this.state = 1212;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 1213;
 | |
|         this.query();
 | |
|         this.state = 1214;
 | |
|         this.match(sqlParser.T__1);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function TableProviderContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_tableProvider;
 | |
|     return this;
 | |
| }
 | |
| TableProviderContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| TableProviderContext.prototype.constructor = TableProviderContext;
 | |
| TableProviderContext.prototype.USING = function () {
 | |
|     return this.getToken(sqlParser.USING, 0);
 | |
| };
 | |
| TableProviderContext.prototype.qualifiedName = function () {
 | |
|     return this.getTypedRuleContext(QualifiedNameContext, 0);
 | |
| };
 | |
| TableProviderContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterTableProvider(this);
 | |
|     }
 | |
| };
 | |
| TableProviderContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitTableProvider(this);
 | |
|     }
 | |
| };
 | |
| TableProviderContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitTableProvider(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.TableProviderContext = TableProviderContext;
 | |
| sqlParser.prototype.tableProvider = function () {
 | |
|     var localctx = new TableProviderContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 42, sqlParser.RULE_tableProvider);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1216;
 | |
|         this.match(sqlParser.USING);
 | |
|         this.state = 1217;
 | |
|         this.qualifiedName();
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function TablePropertyListContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_tablePropertyList;
 | |
|     return this;
 | |
| }
 | |
| TablePropertyListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| TablePropertyListContext.prototype.constructor = TablePropertyListContext;
 | |
| TablePropertyListContext.prototype.tableProperty = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(TablePropertyContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(TablePropertyContext, i);
 | |
|     }
 | |
| };
 | |
| TablePropertyListContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterTablePropertyList(this);
 | |
|     }
 | |
| };
 | |
| TablePropertyListContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitTablePropertyList(this);
 | |
|     }
 | |
| };
 | |
| TablePropertyListContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitTablePropertyList(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.TablePropertyListContext = TablePropertyListContext;
 | |
| sqlParser.prototype.tablePropertyList = function () {
 | |
|     var localctx = new TablePropertyListContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 44, sqlParser.RULE_tablePropertyList);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1219;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 1220;
 | |
|         this.tableProperty();
 | |
|         this.state = 1225;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while (_la === sqlParser.T__3) {
 | |
|             this.state = 1221;
 | |
|             this.match(sqlParser.T__3);
 | |
|             this.state = 1222;
 | |
|             this.tableProperty();
 | |
|             this.state = 1227;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|         }
 | |
|         this.state = 1228;
 | |
|         this.match(sqlParser.T__1);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function TablePropertyContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_tableProperty;
 | |
|     this.key = null; // TablePropertyKeyContext
 | |
|     this.value = null; // TablePropertyValueContext
 | |
|     return this;
 | |
| }
 | |
| TablePropertyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| TablePropertyContext.prototype.constructor = TablePropertyContext;
 | |
| TablePropertyContext.prototype.tablePropertyKey = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyKeyContext, 0);
 | |
| };
 | |
| TablePropertyContext.prototype.tablePropertyValue = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyValueContext, 0);
 | |
| };
 | |
| TablePropertyContext.prototype.EQ = function () {
 | |
|     return this.getToken(sqlParser.EQ, 0);
 | |
| };
 | |
| TablePropertyContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterTableProperty(this);
 | |
|     }
 | |
| };
 | |
| TablePropertyContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitTableProperty(this);
 | |
|     }
 | |
| };
 | |
| TablePropertyContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitTableProperty(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.TablePropertyContext = TablePropertyContext;
 | |
| sqlParser.prototype.tableProperty = function () {
 | |
|     var localctx = new TablePropertyContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 46, sqlParser.RULE_tableProperty);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1230;
 | |
|         localctx.key = this.tablePropertyKey();
 | |
|         this.state = 1235;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.TRUE || _la === sqlParser.FALSE || _la === sqlParser.EQ || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (sqlParser.STRING - 259)) | (1 << (sqlParser.INTEGER_VALUE - 259)) | (1 << (sqlParser.DECIMAL_VALUE - 259)))) !== 0)) {
 | |
|             this.state = 1232;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|             if (_la === sqlParser.EQ) {
 | |
|                 this.state = 1231;
 | |
|                 this.match(sqlParser.EQ);
 | |
|             }
 | |
|             this.state = 1234;
 | |
|             localctx.value = this.tablePropertyValue();
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function TablePropertyKeyContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_tablePropertyKey;
 | |
|     return this;
 | |
| }
 | |
| TablePropertyKeyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| TablePropertyKeyContext.prototype.constructor = TablePropertyKeyContext;
 | |
| TablePropertyKeyContext.prototype.identifier = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(IdentifierContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(IdentifierContext, i);
 | |
|     }
 | |
| };
 | |
| TablePropertyKeyContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| TablePropertyKeyContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterTablePropertyKey(this);
 | |
|     }
 | |
| };
 | |
| TablePropertyKeyContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitTablePropertyKey(this);
 | |
|     }
 | |
| };
 | |
| TablePropertyKeyContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitTablePropertyKey(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.TablePropertyKeyContext = TablePropertyKeyContext;
 | |
| sqlParser.prototype.tablePropertyKey = function () {
 | |
|     var localctx = new TablePropertyKeyContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 48, sqlParser.RULE_tablePropertyKey);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 1246;
 | |
|         this._errHandler.sync(this);
 | |
|         switch (this._input.LA(1)) {
 | |
|             case sqlParser.SELECT:
 | |
|             case sqlParser.FROM:
 | |
|             case sqlParser.ADD:
 | |
|             case sqlParser.AS:
 | |
|             case sqlParser.ALL:
 | |
|             case sqlParser.ANY:
 | |
|             case sqlParser.DISTINCT:
 | |
|             case sqlParser.WHERE:
 | |
|             case sqlParser.GROUP:
 | |
|             case sqlParser.BY:
 | |
|             case sqlParser.GROUPING:
 | |
|             case sqlParser.SETS:
 | |
|             case sqlParser.CUBE:
 | |
|             case sqlParser.ROLLUP:
 | |
|             case sqlParser.ORDER:
 | |
|             case sqlParser.HAVING:
 | |
|             case sqlParser.LIMIT:
 | |
|             case sqlParser.AT:
 | |
|             case sqlParser.OR:
 | |
|             case sqlParser.AND:
 | |
|             case sqlParser.IN:
 | |
|             case sqlParser.NOT:
 | |
|             case sqlParser.NO:
 | |
|             case sqlParser.EXISTS:
 | |
|             case sqlParser.BETWEEN:
 | |
|             case sqlParser.LIKE:
 | |
|             case sqlParser.RLIKE:
 | |
|             case sqlParser.IS:
 | |
|             case sqlParser.NULL:
 | |
|             case sqlParser.TRUE:
 | |
|             case sqlParser.FALSE:
 | |
|             case sqlParser.NULLS:
 | |
|             case sqlParser.ASC:
 | |
|             case sqlParser.DESC:
 | |
|             case sqlParser.FOR:
 | |
|             case sqlParser.INTERVAL:
 | |
|             case sqlParser.CASE:
 | |
|             case sqlParser.WHEN:
 | |
|             case sqlParser.THEN:
 | |
|             case sqlParser.ELSE:
 | |
|             case sqlParser.END:
 | |
|             case sqlParser.JOIN:
 | |
|             case sqlParser.CROSS:
 | |
|             case sqlParser.OUTER:
 | |
|             case sqlParser.INNER:
 | |
|             case sqlParser.LEFT:
 | |
|             case sqlParser.SEMI:
 | |
|             case sqlParser.RIGHT:
 | |
|             case sqlParser.FULL:
 | |
|             case sqlParser.NATURAL:
 | |
|             case sqlParser.ON:
 | |
|             case sqlParser.PIVOT:
 | |
|             case sqlParser.LATERAL:
 | |
|             case sqlParser.WINDOW:
 | |
|             case sqlParser.OVER:
 | |
|             case sqlParser.PARTITION:
 | |
|             case sqlParser.RANGE:
 | |
|             case sqlParser.ROWS:
 | |
|             case sqlParser.UNBOUNDED:
 | |
|             case sqlParser.PRECEDING:
 | |
|             case sqlParser.FOLLOWING:
 | |
|             case sqlParser.CURRENT:
 | |
|             case sqlParser.FIRST:
 | |
|             case sqlParser.AFTER:
 | |
|             case sqlParser.LAST:
 | |
|             case sqlParser.ROW:
 | |
|             case sqlParser.WITH:
 | |
|             case sqlParser.CREATE:
 | |
|             case sqlParser.TABLE:
 | |
|             case sqlParser.DIRECTORY:
 | |
|             case sqlParser.VIEW:
 | |
|             case sqlParser.REPLACE:
 | |
|             case sqlParser.INSERT:
 | |
|             case sqlParser.DELETE:
 | |
|             case sqlParser.INTO:
 | |
|             case sqlParser.DESCRIBE:
 | |
|             case sqlParser.EXPLAIN:
 | |
|             case sqlParser.FORMAT:
 | |
|             case sqlParser.LOGICAL:
 | |
|             case sqlParser.CODEGEN:
 | |
|             case sqlParser.COST:
 | |
|             case sqlParser.CAST:
 | |
|             case sqlParser.SHOW:
 | |
|             case sqlParser.TABLES:
 | |
|             case sqlParser.COLUMNS:
 | |
|             case sqlParser.COLUMN:
 | |
|             case sqlParser.USE:
 | |
|             case sqlParser.PARTITIONS:
 | |
|             case sqlParser.FUNCTIONS:
 | |
|             case sqlParser.DROP:
 | |
|             case sqlParser.UNION:
 | |
|             case sqlParser.EXCEPT:
 | |
|             case sqlParser.SETMINUS:
 | |
|             case sqlParser.INTERSECT:
 | |
|             case sqlParser.TO:
 | |
|             case sqlParser.TABLESAMPLE:
 | |
|             case sqlParser.STRATIFY:
 | |
|             case sqlParser.ALTER:
 | |
|             case sqlParser.RENAME:
 | |
|             case sqlParser.ARRAY:
 | |
|             case sqlParser.MAP:
 | |
|             case sqlParser.STRUCT:
 | |
|             case sqlParser.COMMENT:
 | |
|             case sqlParser.SET:
 | |
|             case sqlParser.RESET:
 | |
|             case sqlParser.DATA:
 | |
|             case sqlParser.START:
 | |
|             case sqlParser.TRANSACTION:
 | |
|             case sqlParser.COMMIT:
 | |
|             case sqlParser.ROLLBACK:
 | |
|             case sqlParser.MACRO:
 | |
|             case sqlParser.IGNORE:
 | |
|             case sqlParser.BOTH:
 | |
|             case sqlParser.LEADING:
 | |
|             case sqlParser.TRAILING:
 | |
|             case sqlParser.IF:
 | |
|             case sqlParser.POSITION:
 | |
|             case sqlParser.EXTRACT:
 | |
|             case sqlParser.DIV:
 | |
|             case sqlParser.PERCENTLIT:
 | |
|             case sqlParser.BUCKET:
 | |
|             case sqlParser.OUT:
 | |
|             case sqlParser.OF:
 | |
|             case sqlParser.SORT:
 | |
|             case sqlParser.CLUSTER:
 | |
|             case sqlParser.DISTRIBUTE:
 | |
|             case sqlParser.OVERWRITE:
 | |
|             case sqlParser.TRANSFORM:
 | |
|             case sqlParser.REDUCE:
 | |
|             case sqlParser.SERDE:
 | |
|             case sqlParser.SERDEPROPERTIES:
 | |
|             case sqlParser.RECORDREADER:
 | |
|             case sqlParser.RECORDWRITER:
 | |
|             case sqlParser.DELIMITED:
 | |
|             case sqlParser.FIELDS:
 | |
|             case sqlParser.TERMINATED:
 | |
|             case sqlParser.COLLECTION:
 | |
|             case sqlParser.ITEMS:
 | |
|             case sqlParser.KEYS:
 | |
|             case sqlParser.ESCAPED:
 | |
|             case sqlParser.LINES:
 | |
|             case sqlParser.SEPARATED:
 | |
|             case sqlParser.FUNCTION:
 | |
|             case sqlParser.EXTENDED:
 | |
|             case sqlParser.REFRESH:
 | |
|             case sqlParser.CLEAR:
 | |
|             case sqlParser.CACHE:
 | |
|             case sqlParser.UNCACHE:
 | |
|             case sqlParser.LAZY:
 | |
|             case sqlParser.FORMATTED:
 | |
|             case sqlParser.GLOBAL:
 | |
|             case sqlParser.TEMPORARY:
 | |
|             case sqlParser.OPTIONS:
 | |
|             case sqlParser.UNSET:
 | |
|             case sqlParser.TBLPROPERTIES:
 | |
|             case sqlParser.DBPROPERTIES:
 | |
|             case sqlParser.BUCKETS:
 | |
|             case sqlParser.SKEWED:
 | |
|             case sqlParser.STORED:
 | |
|             case sqlParser.DIRECTORIES:
 | |
|             case sqlParser.LOCATION:
 | |
|             case sqlParser.EXCHANGE:
 | |
|             case sqlParser.ARCHIVE:
 | |
|             case sqlParser.UNARCHIVE:
 | |
|             case sqlParser.FILEFORMAT:
 | |
|             case sqlParser.TOUCH:
 | |
|             case sqlParser.COMPACT:
 | |
|             case sqlParser.CONCATENATE:
 | |
|             case sqlParser.CHANGE:
 | |
|             case sqlParser.CASCADE:
 | |
|             case sqlParser.RESTRICT:
 | |
|             case sqlParser.CLUSTERED:
 | |
|             case sqlParser.SORTED:
 | |
|             case sqlParser.PURGE:
 | |
|             case sqlParser.INPUTFORMAT:
 | |
|             case sqlParser.OUTPUTFORMAT:
 | |
|             case sqlParser.DATABASE:
 | |
|             case sqlParser.DATABASES:
 | |
|             case sqlParser.DFS:
 | |
|             case sqlParser.TRUNCATE:
 | |
|             case sqlParser.ANALYZE:
 | |
|             case sqlParser.COMPUTE:
 | |
|             case sqlParser.LIST:
 | |
|             case sqlParser.STATISTICS:
 | |
|             case sqlParser.PARTITIONED:
 | |
|             case sqlParser.EXTERNAL:
 | |
|             case sqlParser.DEFINED:
 | |
|             case sqlParser.REVOKE:
 | |
|             case sqlParser.GRANT:
 | |
|             case sqlParser.LOCK:
 | |
|             case sqlParser.UNLOCK:
 | |
|             case sqlParser.MSCK:
 | |
|             case sqlParser.REPAIR:
 | |
|             case sqlParser.RECOVER:
 | |
|             case sqlParser.EXPORT:
 | |
|             case sqlParser.IMPORT:
 | |
|             case sqlParser.LOAD:
 | |
|             case sqlParser.ROLE:
 | |
|             case sqlParser.ROLES:
 | |
|             case sqlParser.COMPACTIONS:
 | |
|             case sqlParser.PRINCIPALS:
 | |
|             case sqlParser.TRANSACTIONS:
 | |
|             case sqlParser.INDEX:
 | |
|             case sqlParser.INDEXES:
 | |
|             case sqlParser.LOCKS:
 | |
|             case sqlParser.OPTION:
 | |
|             case sqlParser.ANTI:
 | |
|             case sqlParser.LOCAL:
 | |
|             case sqlParser.INPATH:
 | |
|             case sqlParser.IDENTIFIER:
 | |
|             case sqlParser.BACKQUOTED_IDENTIFIER:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1237;
 | |
|                 this.identifier();
 | |
|                 this.state = 1242;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 while (_la === sqlParser.T__2) {
 | |
|                     this.state = 1238;
 | |
|                     this.match(sqlParser.T__2);
 | |
|                     this.state = 1239;
 | |
|                     this.identifier();
 | |
|                     this.state = 1244;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 }
 | |
|                 break;
 | |
|             case sqlParser.STRING:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1245;
 | |
|                 this.match(sqlParser.STRING);
 | |
|                 break;
 | |
|             default:
 | |
|                 throw new antlr4.error.NoViableAltException(this);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function TablePropertyValueContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_tablePropertyValue;
 | |
|     return this;
 | |
| }
 | |
| TablePropertyValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| TablePropertyValueContext.prototype.constructor = TablePropertyValueContext;
 | |
| TablePropertyValueContext.prototype.INTEGER_VALUE = function () {
 | |
|     return this.getToken(sqlParser.INTEGER_VALUE, 0);
 | |
| };
 | |
| TablePropertyValueContext.prototype.DECIMAL_VALUE = function () {
 | |
|     return this.getToken(sqlParser.DECIMAL_VALUE, 0);
 | |
| };
 | |
| TablePropertyValueContext.prototype.booleanValue = function () {
 | |
|     return this.getTypedRuleContext(BooleanValueContext, 0);
 | |
| };
 | |
| TablePropertyValueContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| TablePropertyValueContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterTablePropertyValue(this);
 | |
|     }
 | |
| };
 | |
| TablePropertyValueContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitTablePropertyValue(this);
 | |
|     }
 | |
| };
 | |
| TablePropertyValueContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitTablePropertyValue(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.TablePropertyValueContext = TablePropertyValueContext;
 | |
| sqlParser.prototype.tablePropertyValue = function () {
 | |
|     var localctx = new TablePropertyValueContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 50, sqlParser.RULE_tablePropertyValue);
 | |
|     try {
 | |
|         this.state = 1252;
 | |
|         this._errHandler.sync(this);
 | |
|         switch (this._input.LA(1)) {
 | |
|             case sqlParser.INTEGER_VALUE:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1248;
 | |
|                 this.match(sqlParser.INTEGER_VALUE);
 | |
|                 break;
 | |
|             case sqlParser.DECIMAL_VALUE:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1249;
 | |
|                 this.match(sqlParser.DECIMAL_VALUE);
 | |
|                 break;
 | |
|             case sqlParser.TRUE:
 | |
|             case sqlParser.FALSE:
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 1250;
 | |
|                 this.booleanValue();
 | |
|                 break;
 | |
|             case sqlParser.STRING:
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 1251;
 | |
|                 this.match(sqlParser.STRING);
 | |
|                 break;
 | |
|             default:
 | |
|                 throw new antlr4.error.NoViableAltException(this);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function ConstantListContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_constantList;
 | |
|     return this;
 | |
| }
 | |
| ConstantListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| ConstantListContext.prototype.constructor = ConstantListContext;
 | |
| ConstantListContext.prototype.constant = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ConstantContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ConstantContext, i);
 | |
|     }
 | |
| };
 | |
| ConstantListContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterConstantList(this);
 | |
|     }
 | |
| };
 | |
| ConstantListContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitConstantList(this);
 | |
|     }
 | |
| };
 | |
| ConstantListContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitConstantList(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.ConstantListContext = ConstantListContext;
 | |
| sqlParser.prototype.constantList = function () {
 | |
|     var localctx = new ConstantListContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 52, sqlParser.RULE_constantList);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1254;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 1255;
 | |
|         this.constant();
 | |
|         this.state = 1260;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while (_la === sqlParser.T__3) {
 | |
|             this.state = 1256;
 | |
|             this.match(sqlParser.T__3);
 | |
|             this.state = 1257;
 | |
|             this.constant();
 | |
|             this.state = 1262;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|         }
 | |
|         this.state = 1263;
 | |
|         this.match(sqlParser.T__1);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function NestedConstantListContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_nestedConstantList;
 | |
|     return this;
 | |
| }
 | |
| NestedConstantListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| NestedConstantListContext.prototype.constructor = NestedConstantListContext;
 | |
| NestedConstantListContext.prototype.constantList = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ConstantListContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ConstantListContext, i);
 | |
|     }
 | |
| };
 | |
| NestedConstantListContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterNestedConstantList(this);
 | |
|     }
 | |
| };
 | |
| NestedConstantListContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitNestedConstantList(this);
 | |
|     }
 | |
| };
 | |
| NestedConstantListContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitNestedConstantList(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.NestedConstantListContext = NestedConstantListContext;
 | |
| sqlParser.prototype.nestedConstantList = function () {
 | |
|     var localctx = new NestedConstantListContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 54, sqlParser.RULE_nestedConstantList);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1265;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 1266;
 | |
|         this.constantList();
 | |
|         this.state = 1271;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while (_la === sqlParser.T__3) {
 | |
|             this.state = 1267;
 | |
|             this.match(sqlParser.T__3);
 | |
|             this.state = 1268;
 | |
|             this.constantList();
 | |
|             this.state = 1273;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|         }
 | |
|         this.state = 1274;
 | |
|         this.match(sqlParser.T__1);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function CreateFileFormatContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_createFileFormat;
 | |
|     return this;
 | |
| }
 | |
| CreateFileFormatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| CreateFileFormatContext.prototype.constructor = CreateFileFormatContext;
 | |
| CreateFileFormatContext.prototype.STORED = function () {
 | |
|     return this.getToken(sqlParser.STORED, 0);
 | |
| };
 | |
| CreateFileFormatContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| CreateFileFormatContext.prototype.fileFormat = function () {
 | |
|     return this.getTypedRuleContext(FileFormatContext, 0);
 | |
| };
 | |
| CreateFileFormatContext.prototype.BY = function () {
 | |
|     return this.getToken(sqlParser.BY, 0);
 | |
| };
 | |
| CreateFileFormatContext.prototype.storageHandler = function () {
 | |
|     return this.getTypedRuleContext(StorageHandlerContext, 0);
 | |
| };
 | |
| CreateFileFormatContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterCreateFileFormat(this);
 | |
|     }
 | |
| };
 | |
| CreateFileFormatContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitCreateFileFormat(this);
 | |
|     }
 | |
| };
 | |
| CreateFileFormatContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitCreateFileFormat(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.CreateFileFormatContext = CreateFileFormatContext;
 | |
| sqlParser.prototype.createFileFormat = function () {
 | |
|     var localctx = new CreateFileFormatContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 56, sqlParser.RULE_createFileFormat);
 | |
|     try {
 | |
|         this.state = 1282;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 143, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1276;
 | |
|                 this.match(sqlParser.STORED);
 | |
|                 this.state = 1277;
 | |
|                 this.match(sqlParser.AS);
 | |
|                 this.state = 1278;
 | |
|                 this.fileFormat();
 | |
|                 break;
 | |
|             case 2:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1279;
 | |
|                 this.match(sqlParser.STORED);
 | |
|                 this.state = 1280;
 | |
|                 this.match(sqlParser.BY);
 | |
|                 this.state = 1281;
 | |
|                 this.storageHandler();
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function FileFormatContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_fileFormat;
 | |
|     return this;
 | |
| }
 | |
| FileFormatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| FileFormatContext.prototype.constructor = FileFormatContext;
 | |
| FileFormatContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function TableFileFormatContext(parser, ctx) {
 | |
|     FileFormatContext.call(this, parser);
 | |
|     this.inFmt = null; // Token;
 | |
|     this.outFmt = null; // Token;
 | |
|     FileFormatContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| TableFileFormatContext.prototype = Object.create(FileFormatContext.prototype);
 | |
| TableFileFormatContext.prototype.constructor = TableFileFormatContext;
 | |
| sqlParser.TableFileFormatContext = TableFileFormatContext;
 | |
| TableFileFormatContext.prototype.INPUTFORMAT = function () {
 | |
|     return this.getToken(sqlParser.INPUTFORMAT, 0);
 | |
| };
 | |
| TableFileFormatContext.prototype.OUTPUTFORMAT = function () {
 | |
|     return this.getToken(sqlParser.OUTPUTFORMAT, 0);
 | |
| };
 | |
| TableFileFormatContext.prototype.STRING = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.STRING);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.STRING, i);
 | |
|     }
 | |
| };
 | |
| TableFileFormatContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterTableFileFormat(this);
 | |
|     }
 | |
| };
 | |
| TableFileFormatContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitTableFileFormat(this);
 | |
|     }
 | |
| };
 | |
| TableFileFormatContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitTableFileFormat(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function GenericFileFormatContext(parser, ctx) {
 | |
|     FileFormatContext.call(this, parser);
 | |
|     FileFormatContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| GenericFileFormatContext.prototype = Object.create(FileFormatContext.prototype);
 | |
| GenericFileFormatContext.prototype.constructor = GenericFileFormatContext;
 | |
| sqlParser.GenericFileFormatContext = GenericFileFormatContext;
 | |
| GenericFileFormatContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| GenericFileFormatContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterGenericFileFormat(this);
 | |
|     }
 | |
| };
 | |
| GenericFileFormatContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitGenericFileFormat(this);
 | |
|     }
 | |
| };
 | |
| GenericFileFormatContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitGenericFileFormat(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.FileFormatContext = FileFormatContext;
 | |
| sqlParser.prototype.fileFormat = function () {
 | |
|     var localctx = new FileFormatContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 58, sqlParser.RULE_fileFormat);
 | |
|     try {
 | |
|         this.state = 1289;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 144, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 localctx = new TableFileFormatContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1284;
 | |
|                 this.match(sqlParser.INPUTFORMAT);
 | |
|                 this.state = 1285;
 | |
|                 localctx.inFmt = this.match(sqlParser.STRING);
 | |
|                 this.state = 1286;
 | |
|                 this.match(sqlParser.OUTPUTFORMAT);
 | |
|                 this.state = 1287;
 | |
|                 localctx.outFmt = this.match(sqlParser.STRING);
 | |
|                 break;
 | |
|             case 2:
 | |
|                 localctx = new GenericFileFormatContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1288;
 | |
|                 this.identifier();
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function StorageHandlerContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_storageHandler;
 | |
|     return this;
 | |
| }
 | |
| StorageHandlerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| StorageHandlerContext.prototype.constructor = StorageHandlerContext;
 | |
| StorageHandlerContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| StorageHandlerContext.prototype.WITH = function () {
 | |
|     return this.getToken(sqlParser.WITH, 0);
 | |
| };
 | |
| StorageHandlerContext.prototype.SERDEPROPERTIES = function () {
 | |
|     return this.getToken(sqlParser.SERDEPROPERTIES, 0);
 | |
| };
 | |
| StorageHandlerContext.prototype.tablePropertyList = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyListContext, 0);
 | |
| };
 | |
| StorageHandlerContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterStorageHandler(this);
 | |
|     }
 | |
| };
 | |
| StorageHandlerContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitStorageHandler(this);
 | |
|     }
 | |
| };
 | |
| StorageHandlerContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitStorageHandler(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.StorageHandlerContext = StorageHandlerContext;
 | |
| sqlParser.prototype.storageHandler = function () {
 | |
|     var localctx = new StorageHandlerContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 60, sqlParser.RULE_storageHandler);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1291;
 | |
|         this.match(sqlParser.STRING);
 | |
|         this.state = 1295;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 145, this._ctx);
 | |
|         if (la_ === 1) {
 | |
|             this.state = 1292;
 | |
|             this.match(sqlParser.WITH);
 | |
|             this.state = 1293;
 | |
|             this.match(sqlParser.SERDEPROPERTIES);
 | |
|             this.state = 1294;
 | |
|             this.tablePropertyList();
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function ResourceContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_resource;
 | |
|     return this;
 | |
| }
 | |
| ResourceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| ResourceContext.prototype.constructor = ResourceContext;
 | |
| ResourceContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| ResourceContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| ResourceContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterResource(this);
 | |
|     }
 | |
| };
 | |
| ResourceContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitResource(this);
 | |
|     }
 | |
| };
 | |
| ResourceContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitResource(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.ResourceContext = ResourceContext;
 | |
| sqlParser.prototype.resource = function () {
 | |
|     var localctx = new ResourceContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 62, sqlParser.RULE_resource);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1297;
 | |
|         this.identifier();
 | |
|         this.state = 1298;
 | |
|         this.match(sqlParser.STRING);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function QueryNoWithContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_queryNoWith;
 | |
|     return this;
 | |
| }
 | |
| QueryNoWithContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| QueryNoWithContext.prototype.constructor = QueryNoWithContext;
 | |
| QueryNoWithContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function SingleInsertQueryContext(parser, ctx) {
 | |
|     QueryNoWithContext.call(this, parser);
 | |
|     QueryNoWithContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SingleInsertQueryContext.prototype = Object.create(QueryNoWithContext.prototype);
 | |
| SingleInsertQueryContext.prototype.constructor = SingleInsertQueryContext;
 | |
| sqlParser.SingleInsertQueryContext = SingleInsertQueryContext;
 | |
| SingleInsertQueryContext.prototype.queryTerm = function () {
 | |
|     return this.getTypedRuleContext(QueryTermContext, 0);
 | |
| };
 | |
| SingleInsertQueryContext.prototype.queryOrganization = function () {
 | |
|     return this.getTypedRuleContext(QueryOrganizationContext, 0);
 | |
| };
 | |
| SingleInsertQueryContext.prototype.insertInto = function () {
 | |
|     return this.getTypedRuleContext(InsertIntoContext, 0);
 | |
| };
 | |
| SingleInsertQueryContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSingleInsertQuery(this);
 | |
|     }
 | |
| };
 | |
| SingleInsertQueryContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSingleInsertQuery(this);
 | |
|     }
 | |
| };
 | |
| SingleInsertQueryContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSingleInsertQuery(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function MultiInsertQueryContext(parser, ctx) {
 | |
|     QueryNoWithContext.call(this, parser);
 | |
|     QueryNoWithContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| MultiInsertQueryContext.prototype = Object.create(QueryNoWithContext.prototype);
 | |
| MultiInsertQueryContext.prototype.constructor = MultiInsertQueryContext;
 | |
| sqlParser.MultiInsertQueryContext = MultiInsertQueryContext;
 | |
| MultiInsertQueryContext.prototype.fromClause = function () {
 | |
|     return this.getTypedRuleContext(FromClauseContext, 0);
 | |
| };
 | |
| MultiInsertQueryContext.prototype.multiInsertQueryBody = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(MultiInsertQueryBodyContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(MultiInsertQueryBodyContext, i);
 | |
|     }
 | |
| };
 | |
| MultiInsertQueryContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterMultiInsertQuery(this);
 | |
|     }
 | |
| };
 | |
| MultiInsertQueryContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitMultiInsertQuery(this);
 | |
|     }
 | |
| };
 | |
| MultiInsertQueryContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitMultiInsertQuery(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.QueryNoWithContext = QueryNoWithContext;
 | |
| sqlParser.prototype.queryNoWith = function () {
 | |
|     var localctx = new QueryNoWithContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 64, sqlParser.RULE_queryNoWith);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 1312;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 148, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 localctx = new SingleInsertQueryContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1301;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.INSERT) {
 | |
|                     this.state = 1300;
 | |
|                     this.insertInto();
 | |
|                 }
 | |
|                 this.state = 1303;
 | |
|                 this.queryTerm(0);
 | |
|                 this.state = 1304;
 | |
|                 this.queryOrganization();
 | |
|                 break;
 | |
|             case 2:
 | |
|                 localctx = new MultiInsertQueryContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1306;
 | |
|                 this.fromClause();
 | |
|                 this.state = 1308;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 do {
 | |
|                     this.state = 1307;
 | |
|                     this.multiInsertQueryBody();
 | |
|                     this.state = 1310;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 } while (_la === sqlParser.SELECT || _la === sqlParser.FROM || _la === sqlParser.INSERT || _la === sqlParser.MAP || _la === sqlParser.REDUCE);
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function QueryOrganizationContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_queryOrganization;
 | |
|     this._sortItem = null; // SortItemContext
 | |
|     this.order = []; // of SortItemContexts
 | |
|     this._expression = null; // ExpressionContext
 | |
|     this.clusterBy = []; // of ExpressionContexts
 | |
|     this.distributeBy = []; // of ExpressionContexts
 | |
|     this.sort = []; // of SortItemContexts
 | |
|     this.limit = null; // ExpressionContext
 | |
|     return this;
 | |
| }
 | |
| QueryOrganizationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| QueryOrganizationContext.prototype.constructor = QueryOrganizationContext;
 | |
| QueryOrganizationContext.prototype.ORDER = function () {
 | |
|     return this.getToken(sqlParser.ORDER, 0);
 | |
| };
 | |
| QueryOrganizationContext.prototype.BY = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.BY);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.BY, i);
 | |
|     }
 | |
| };
 | |
| QueryOrganizationContext.prototype.CLUSTER = function () {
 | |
|     return this.getToken(sqlParser.CLUSTER, 0);
 | |
| };
 | |
| QueryOrganizationContext.prototype.DISTRIBUTE = function () {
 | |
|     return this.getToken(sqlParser.DISTRIBUTE, 0);
 | |
| };
 | |
| QueryOrganizationContext.prototype.SORT = function () {
 | |
|     return this.getToken(sqlParser.SORT, 0);
 | |
| };
 | |
| QueryOrganizationContext.prototype.windows = function () {
 | |
|     return this.getTypedRuleContext(WindowsContext, 0);
 | |
| };
 | |
| QueryOrganizationContext.prototype.LIMIT = function () {
 | |
|     return this.getToken(sqlParser.LIMIT, 0);
 | |
| };
 | |
| QueryOrganizationContext.prototype.sortItem = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(SortItemContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(SortItemContext, i);
 | |
|     }
 | |
| };
 | |
| QueryOrganizationContext.prototype.expression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| QueryOrganizationContext.prototype.ALL = function () {
 | |
|     return this.getToken(sqlParser.ALL, 0);
 | |
| };
 | |
| QueryOrganizationContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterQueryOrganization(this);
 | |
|     }
 | |
| };
 | |
| QueryOrganizationContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitQueryOrganization(this);
 | |
|     }
 | |
| };
 | |
| QueryOrganizationContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitQueryOrganization(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.QueryOrganizationContext = QueryOrganizationContext;
 | |
| sqlParser.prototype.queryOrganization = function () {
 | |
|     var localctx = new QueryOrganizationContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 66, sqlParser.RULE_queryOrganization);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1324;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.ORDER) {
 | |
|             this.state = 1314;
 | |
|             this.match(sqlParser.ORDER);
 | |
|             this.state = 1315;
 | |
|             this.match(sqlParser.BY);
 | |
|             this.state = 1316;
 | |
|             localctx._sortItem = this.sortItem();
 | |
|             localctx.order.push(localctx._sortItem);
 | |
|             this.state = 1321;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|             while (_la === sqlParser.T__3) {
 | |
|                 this.state = 1317;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 1318;
 | |
|                 localctx._sortItem = this.sortItem();
 | |
|                 localctx.order.push(localctx._sortItem);
 | |
|                 this.state = 1323;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|             }
 | |
|         }
 | |
|         this.state = 1336;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.CLUSTER) {
 | |
|             this.state = 1326;
 | |
|             this.match(sqlParser.CLUSTER);
 | |
|             this.state = 1327;
 | |
|             this.match(sqlParser.BY);
 | |
|             this.state = 1328;
 | |
|             localctx._expression = this.expression();
 | |
|             localctx.clusterBy.push(localctx._expression);
 | |
|             this.state = 1333;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|             while (_la === sqlParser.T__3) {
 | |
|                 this.state = 1329;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 1330;
 | |
|                 localctx._expression = this.expression();
 | |
|                 localctx.clusterBy.push(localctx._expression);
 | |
|                 this.state = 1335;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|             }
 | |
|         }
 | |
|         this.state = 1348;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.DISTRIBUTE) {
 | |
|             this.state = 1338;
 | |
|             this.match(sqlParser.DISTRIBUTE);
 | |
|             this.state = 1339;
 | |
|             this.match(sqlParser.BY);
 | |
|             this.state = 1340;
 | |
|             localctx._expression = this.expression();
 | |
|             localctx.distributeBy.push(localctx._expression);
 | |
|             this.state = 1345;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|             while (_la === sqlParser.T__3) {
 | |
|                 this.state = 1341;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 1342;
 | |
|                 localctx._expression = this.expression();
 | |
|                 localctx.distributeBy.push(localctx._expression);
 | |
|                 this.state = 1347;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|             }
 | |
|         }
 | |
|         this.state = 1360;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.SORT) {
 | |
|             this.state = 1350;
 | |
|             this.match(sqlParser.SORT);
 | |
|             this.state = 1351;
 | |
|             this.match(sqlParser.BY);
 | |
|             this.state = 1352;
 | |
|             localctx._sortItem = this.sortItem();
 | |
|             localctx.sort.push(localctx._sortItem);
 | |
|             this.state = 1357;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|             while (_la === sqlParser.T__3) {
 | |
|                 this.state = 1353;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 1354;
 | |
|                 localctx._sortItem = this.sortItem();
 | |
|                 localctx.sort.push(localctx._sortItem);
 | |
|                 this.state = 1359;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|             }
 | |
|         }
 | |
|         this.state = 1363;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.WINDOW) {
 | |
|             this.state = 1362;
 | |
|             this.windows();
 | |
|         }
 | |
|         this.state = 1370;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.LIMIT) {
 | |
|             this.state = 1365;
 | |
|             this.match(sqlParser.LIMIT);
 | |
|             this.state = 1368;
 | |
|             this._errHandler.sync(this);
 | |
|             var la_ = this._interp.adaptivePredict(this._input, 158, this._ctx);
 | |
|             switch (la_) {
 | |
|                 case 1:
 | |
|                     this.state = 1366;
 | |
|                     this.match(sqlParser.ALL);
 | |
|                     break;
 | |
|                 case 2:
 | |
|                     this.state = 1367;
 | |
|                     localctx.limit = this.expression();
 | |
|                     break;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function MultiInsertQueryBodyContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_multiInsertQueryBody;
 | |
|     return this;
 | |
| }
 | |
| MultiInsertQueryBodyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| MultiInsertQueryBodyContext.prototype.constructor = MultiInsertQueryBodyContext;
 | |
| MultiInsertQueryBodyContext.prototype.querySpecification = function () {
 | |
|     return this.getTypedRuleContext(QuerySpecificationContext, 0);
 | |
| };
 | |
| MultiInsertQueryBodyContext.prototype.queryOrganization = function () {
 | |
|     return this.getTypedRuleContext(QueryOrganizationContext, 0);
 | |
| };
 | |
| MultiInsertQueryBodyContext.prototype.insertInto = function () {
 | |
|     return this.getTypedRuleContext(InsertIntoContext, 0);
 | |
| };
 | |
| MultiInsertQueryBodyContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterMultiInsertQueryBody(this);
 | |
|     }
 | |
| };
 | |
| MultiInsertQueryBodyContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitMultiInsertQueryBody(this);
 | |
|     }
 | |
| };
 | |
| MultiInsertQueryBodyContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitMultiInsertQueryBody(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.MultiInsertQueryBodyContext = MultiInsertQueryBodyContext;
 | |
| sqlParser.prototype.multiInsertQueryBody = function () {
 | |
|     var localctx = new MultiInsertQueryBodyContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 68, sqlParser.RULE_multiInsertQueryBody);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1373;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.INSERT) {
 | |
|             this.state = 1372;
 | |
|             this.insertInto();
 | |
|         }
 | |
|         this.state = 1375;
 | |
|         this.querySpecification();
 | |
|         this.state = 1376;
 | |
|         this.queryOrganization();
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function QueryTermContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_queryTerm;
 | |
|     return this;
 | |
| }
 | |
| QueryTermContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| QueryTermContext.prototype.constructor = QueryTermContext;
 | |
| QueryTermContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function QueryTermDefaultContext(parser, ctx) {
 | |
|     QueryTermContext.call(this, parser);
 | |
|     QueryTermContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| QueryTermDefaultContext.prototype = Object.create(QueryTermContext.prototype);
 | |
| QueryTermDefaultContext.prototype.constructor = QueryTermDefaultContext;
 | |
| sqlParser.QueryTermDefaultContext = QueryTermDefaultContext;
 | |
| QueryTermDefaultContext.prototype.queryPrimary = function () {
 | |
|     return this.getTypedRuleContext(QueryPrimaryContext, 0);
 | |
| };
 | |
| QueryTermDefaultContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterQueryTermDefault(this);
 | |
|     }
 | |
| };
 | |
| QueryTermDefaultContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitQueryTermDefault(this);
 | |
|     }
 | |
| };
 | |
| QueryTermDefaultContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitQueryTermDefault(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function SetOperationContext(parser, ctx) {
 | |
|     QueryTermContext.call(this, parser);
 | |
|     this.left = null; // QueryTermContext;
 | |
|     this.operator = null; // Token;
 | |
|     this.right = null; // QueryTermContext;
 | |
|     QueryTermContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SetOperationContext.prototype = Object.create(QueryTermContext.prototype);
 | |
| SetOperationContext.prototype.constructor = SetOperationContext;
 | |
| sqlParser.SetOperationContext = SetOperationContext;
 | |
| SetOperationContext.prototype.queryTerm = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(QueryTermContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(QueryTermContext, i);
 | |
|     }
 | |
| };
 | |
| SetOperationContext.prototype.INTERSECT = function () {
 | |
|     return this.getToken(sqlParser.INTERSECT, 0);
 | |
| };
 | |
| SetOperationContext.prototype.UNION = function () {
 | |
|     return this.getToken(sqlParser.UNION, 0);
 | |
| };
 | |
| SetOperationContext.prototype.EXCEPT = function () {
 | |
|     return this.getToken(sqlParser.EXCEPT, 0);
 | |
| };
 | |
| SetOperationContext.prototype.SETMINUS = function () {
 | |
|     return this.getToken(sqlParser.SETMINUS, 0);
 | |
| };
 | |
| SetOperationContext.prototype.setQuantifier = function () {
 | |
|     return this.getTypedRuleContext(SetQuantifierContext, 0);
 | |
| };
 | |
| SetOperationContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSetOperation(this);
 | |
|     }
 | |
| };
 | |
| SetOperationContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSetOperation(this);
 | |
|     }
 | |
| };
 | |
| SetOperationContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSetOperation(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.prototype.queryTerm = function (_p) {
 | |
|     if (_p === undefined) {
 | |
|         _p = 0;
 | |
|     }
 | |
|     var _parentctx = this._ctx;
 | |
|     var _parentState = this.state;
 | |
|     var localctx = new QueryTermContext(this, this._ctx, _parentState);
 | |
|     var _prevctx = localctx;
 | |
|     var _startState = 70;
 | |
|     this.enterRecursionRule(localctx, 70, sqlParser.RULE_queryTerm, _p);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         localctx = new QueryTermDefaultContext(this, localctx);
 | |
|         this._ctx = localctx;
 | |
|         _prevctx = localctx;
 | |
|         this.state = 1379;
 | |
|         this.queryPrimary();
 | |
|         this._ctx.stop = this._input.LT(-1);
 | |
|         this.state = 1404;
 | |
|         this._errHandler.sync(this);
 | |
|         var _alt = this._interp.adaptivePredict(this._input, 165, 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 = 1402;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 164, this._ctx);
 | |
|                 switch (la_) {
 | |
|                     case 1:
 | |
|                         localctx = new SetOperationContext(this, new QueryTermContext(this, _parentctx, _parentState));
 | |
|                         localctx.left = _prevctx;
 | |
|                         this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_queryTerm);
 | |
|                         this.state = 1381;
 | |
|                         if (!(this.precpred(this._ctx, 3))) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)");
 | |
|                         }
 | |
|                         this.state = 1382;
 | |
|                         if (!(this.legacy_setops_precedence_enbled)) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "this.legacy_setops_precedence_enbled");
 | |
|                         }
 | |
|                         this.state = 1383;
 | |
|                         localctx.operator = this._input.LT(1);
 | |
|                         _la = this._input.LA(1);
 | |
|                         if (!(((((_la - 108)) & ~0x1f) == 0 && ((1 << (_la - 108)) & ((1 << (sqlParser.UNION - 108)) | (1 << (sqlParser.EXCEPT - 108)) | (1 << (sqlParser.SETMINUS - 108)) | (1 << (sqlParser.INTERSECT - 108)))) !== 0))) {
 | |
|                             localctx.operator = this._errHandler.recoverInline(this);
 | |
|                         }
 | |
|                         else {
 | |
|                             this._errHandler.reportMatch(this);
 | |
|                             this.consume();
 | |
|                         }
 | |
|                         this.state = 1385;
 | |
|                         this._errHandler.sync(this);
 | |
|                         _la = this._input.LA(1);
 | |
|                         if (_la === sqlParser.ALL || _la === sqlParser.DISTINCT) {
 | |
|                             this.state = 1384;
 | |
|                             this.setQuantifier();
 | |
|                         }
 | |
|                         this.state = 1387;
 | |
|                         localctx.right = this.queryTerm(4);
 | |
|                         break;
 | |
|                     case 2:
 | |
|                         localctx = new SetOperationContext(this, new QueryTermContext(this, _parentctx, _parentState));
 | |
|                         localctx.left = _prevctx;
 | |
|                         this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_queryTerm);
 | |
|                         this.state = 1388;
 | |
|                         if (!(this.precpred(this._ctx, 2))) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)");
 | |
|                         }
 | |
|                         this.state = 1389;
 | |
|                         if (!(!this.legacy_setops_precedence_enbled)) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "!this.legacy_setops_precedence_enbled");
 | |
|                         }
 | |
|                         this.state = 1390;
 | |
|                         localctx.operator = this.match(sqlParser.INTERSECT);
 | |
|                         this.state = 1392;
 | |
|                         this._errHandler.sync(this);
 | |
|                         _la = this._input.LA(1);
 | |
|                         if (_la === sqlParser.ALL || _la === sqlParser.DISTINCT) {
 | |
|                             this.state = 1391;
 | |
|                             this.setQuantifier();
 | |
|                         }
 | |
|                         this.state = 1394;
 | |
|                         localctx.right = this.queryTerm(3);
 | |
|                         break;
 | |
|                     case 3:
 | |
|                         localctx = new SetOperationContext(this, new QueryTermContext(this, _parentctx, _parentState));
 | |
|                         localctx.left = _prevctx;
 | |
|                         this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_queryTerm);
 | |
|                         this.state = 1395;
 | |
|                         if (!(this.precpred(this._ctx, 1))) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)");
 | |
|                         }
 | |
|                         this.state = 1396;
 | |
|                         if (!(!this.legacy_setops_precedence_enbled)) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "!this.legacy_setops_precedence_enbled");
 | |
|                         }
 | |
|                         this.state = 1397;
 | |
|                         localctx.operator = this._input.LT(1);
 | |
|                         _la = this._input.LA(1);
 | |
|                         if (!(((((_la - 108)) & ~0x1f) == 0 && ((1 << (_la - 108)) & ((1 << (sqlParser.UNION - 108)) | (1 << (sqlParser.EXCEPT - 108)) | (1 << (sqlParser.SETMINUS - 108)))) !== 0))) {
 | |
|                             localctx.operator = this._errHandler.recoverInline(this);
 | |
|                         }
 | |
|                         else {
 | |
|                             this._errHandler.reportMatch(this);
 | |
|                             this.consume();
 | |
|                         }
 | |
|                         this.state = 1399;
 | |
|                         this._errHandler.sync(this);
 | |
|                         _la = this._input.LA(1);
 | |
|                         if (_la === sqlParser.ALL || _la === sqlParser.DISTINCT) {
 | |
|                             this.state = 1398;
 | |
|                             this.setQuantifier();
 | |
|                         }
 | |
|                         this.state = 1401;
 | |
|                         localctx.right = this.queryTerm(2);
 | |
|                         break;
 | |
|                 }
 | |
|             }
 | |
|             this.state = 1406;
 | |
|             this._errHandler.sync(this);
 | |
|             _alt = this._interp.adaptivePredict(this._input, 165, 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 QueryPrimaryContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_queryPrimary;
 | |
|     return this;
 | |
| }
 | |
| QueryPrimaryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| QueryPrimaryContext.prototype.constructor = QueryPrimaryContext;
 | |
| QueryPrimaryContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function SubqueryContext(parser, ctx) {
 | |
|     QueryPrimaryContext.call(this, parser);
 | |
|     QueryPrimaryContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SubqueryContext.prototype = Object.create(QueryPrimaryContext.prototype);
 | |
| SubqueryContext.prototype.constructor = SubqueryContext;
 | |
| sqlParser.SubqueryContext = SubqueryContext;
 | |
| SubqueryContext.prototype.queryNoWith = function () {
 | |
|     return this.getTypedRuleContext(QueryNoWithContext, 0);
 | |
| };
 | |
| SubqueryContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSubquery(this);
 | |
|     }
 | |
| };
 | |
| SubqueryContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSubquery(this);
 | |
|     }
 | |
| };
 | |
| SubqueryContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSubquery(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function QueryPrimaryDefaultContext(parser, ctx) {
 | |
|     QueryPrimaryContext.call(this, parser);
 | |
|     QueryPrimaryContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| QueryPrimaryDefaultContext.prototype = Object.create(QueryPrimaryContext.prototype);
 | |
| QueryPrimaryDefaultContext.prototype.constructor = QueryPrimaryDefaultContext;
 | |
| sqlParser.QueryPrimaryDefaultContext = QueryPrimaryDefaultContext;
 | |
| QueryPrimaryDefaultContext.prototype.querySpecification = function () {
 | |
|     return this.getTypedRuleContext(QuerySpecificationContext, 0);
 | |
| };
 | |
| QueryPrimaryDefaultContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterQueryPrimaryDefault(this);
 | |
|     }
 | |
| };
 | |
| QueryPrimaryDefaultContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitQueryPrimaryDefault(this);
 | |
|     }
 | |
| };
 | |
| QueryPrimaryDefaultContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitQueryPrimaryDefault(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function InlineTableDefault1Context(parser, ctx) {
 | |
|     QueryPrimaryContext.call(this, parser);
 | |
|     QueryPrimaryContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| InlineTableDefault1Context.prototype = Object.create(QueryPrimaryContext.prototype);
 | |
| InlineTableDefault1Context.prototype.constructor = InlineTableDefault1Context;
 | |
| sqlParser.InlineTableDefault1Context = InlineTableDefault1Context;
 | |
| InlineTableDefault1Context.prototype.inlineTable = function () {
 | |
|     return this.getTypedRuleContext(InlineTableContext, 0);
 | |
| };
 | |
| InlineTableDefault1Context.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterInlineTableDefault1(this);
 | |
|     }
 | |
| };
 | |
| InlineTableDefault1Context.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitInlineTableDefault1(this);
 | |
|     }
 | |
| };
 | |
| InlineTableDefault1Context.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitInlineTableDefault1(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function TableContext(parser, ctx) {
 | |
|     QueryPrimaryContext.call(this, parser);
 | |
|     QueryPrimaryContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| TableContext.prototype = Object.create(QueryPrimaryContext.prototype);
 | |
| TableContext.prototype.constructor = TableContext;
 | |
| sqlParser.TableContext = TableContext;
 | |
| TableContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| TableContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| TableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterTable(this);
 | |
|     }
 | |
| };
 | |
| TableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitTable(this);
 | |
|     }
 | |
| };
 | |
| TableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.QueryPrimaryContext = QueryPrimaryContext;
 | |
| sqlParser.prototype.queryPrimary = function () {
 | |
|     var localctx = new QueryPrimaryContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 72, sqlParser.RULE_queryPrimary);
 | |
|     try {
 | |
|         this.state = 1415;
 | |
|         this._errHandler.sync(this);
 | |
|         switch (this._input.LA(1)) {
 | |
|             case sqlParser.SELECT:
 | |
|             case sqlParser.FROM:
 | |
|             case sqlParser.MAP:
 | |
|             case sqlParser.REDUCE:
 | |
|                 localctx = new QueryPrimaryDefaultContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1407;
 | |
|                 this.querySpecification();
 | |
|                 break;
 | |
|             case sqlParser.TABLE:
 | |
|                 localctx = new TableContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1408;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 1409;
 | |
|                 this.tableIdentifier();
 | |
|                 break;
 | |
|             case sqlParser.VALUES:
 | |
|                 localctx = new InlineTableDefault1Context(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 1410;
 | |
|                 this.inlineTable();
 | |
|                 break;
 | |
|             case sqlParser.T__0:
 | |
|                 localctx = new SubqueryContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 1411;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 1412;
 | |
|                 this.queryNoWith();
 | |
|                 this.state = 1413;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             default:
 | |
|                 throw new antlr4.error.NoViableAltException(this);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function SortItemContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_sortItem;
 | |
|     this.ordering = null; // Token
 | |
|     this.nullOrder = null; // Token
 | |
|     return this;
 | |
| }
 | |
| SortItemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| SortItemContext.prototype.constructor = SortItemContext;
 | |
| SortItemContext.prototype.expression = function () {
 | |
|     return this.getTypedRuleContext(ExpressionContext, 0);
 | |
| };
 | |
| SortItemContext.prototype.NULLS = function () {
 | |
|     return this.getToken(sqlParser.NULLS, 0);
 | |
| };
 | |
| SortItemContext.prototype.ASC = function () {
 | |
|     return this.getToken(sqlParser.ASC, 0);
 | |
| };
 | |
| SortItemContext.prototype.DESC = function () {
 | |
|     return this.getToken(sqlParser.DESC, 0);
 | |
| };
 | |
| SortItemContext.prototype.LAST = function () {
 | |
|     return this.getToken(sqlParser.LAST, 0);
 | |
| };
 | |
| SortItemContext.prototype.FIRST = function () {
 | |
|     return this.getToken(sqlParser.FIRST, 0);
 | |
| };
 | |
| SortItemContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSortItem(this);
 | |
|     }
 | |
| };
 | |
| SortItemContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSortItem(this);
 | |
|     }
 | |
| };
 | |
| SortItemContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSortItem(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.SortItemContext = SortItemContext;
 | |
| sqlParser.prototype.sortItem = function () {
 | |
|     var localctx = new SortItemContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 74, sqlParser.RULE_sortItem);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1417;
 | |
|         this.expression();
 | |
|         this.state = 1419;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.ASC || _la === sqlParser.DESC) {
 | |
|             this.state = 1418;
 | |
|             localctx.ordering = this._input.LT(1);
 | |
|             _la = this._input.LA(1);
 | |
|             if (!(_la === sqlParser.ASC || _la === sqlParser.DESC)) {
 | |
|                 localctx.ordering = this._errHandler.recoverInline(this);
 | |
|             }
 | |
|             else {
 | |
|                 this._errHandler.reportMatch(this);
 | |
|                 this.consume();
 | |
|             }
 | |
|         }
 | |
|         this.state = 1423;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.NULLS) {
 | |
|             this.state = 1421;
 | |
|             this.match(sqlParser.NULLS);
 | |
|             this.state = 1422;
 | |
|             localctx.nullOrder = this._input.LT(1);
 | |
|             _la = this._input.LA(1);
 | |
|             if (!(_la === sqlParser.FIRST || _la === sqlParser.LAST)) {
 | |
|                 localctx.nullOrder = this._errHandler.recoverInline(this);
 | |
|             }
 | |
|             else {
 | |
|                 this._errHandler.reportMatch(this);
 | |
|                 this.consume();
 | |
|             }
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function QuerySpecificationContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_querySpecification;
 | |
|     this.kind = null; // Token
 | |
|     this.inRowFormat = null; // RowFormatContext
 | |
|     this.recordWriter = null; // Token
 | |
|     this.script = null; // Token
 | |
|     this.outRowFormat = null; // RowFormatContext
 | |
|     this.recordReader = null; // Token
 | |
|     this.where = null; // BooleanExpressionContext
 | |
|     this._hint = null; // HintContext
 | |
|     this.hints = []; // of HintContexts
 | |
|     this.having = null; // BooleanExpressionContext
 | |
|     return this;
 | |
| }
 | |
| QuerySpecificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| QuerySpecificationContext.prototype.constructor = QuerySpecificationContext;
 | |
| QuerySpecificationContext.prototype.USING = function () {
 | |
|     return this.getToken(sqlParser.USING, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.STRING = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.STRING);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.STRING, i);
 | |
|     }
 | |
| };
 | |
| QuerySpecificationContext.prototype.RECORDWRITER = function () {
 | |
|     return this.getToken(sqlParser.RECORDWRITER, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.RECORDREADER = function () {
 | |
|     return this.getToken(sqlParser.RECORDREADER, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.fromClause = function () {
 | |
|     return this.getTypedRuleContext(FromClauseContext, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.WHERE = function () {
 | |
|     return this.getToken(sqlParser.WHERE, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.SELECT = function () {
 | |
|     return this.getToken(sqlParser.SELECT, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.namedExpressionSeq = function () {
 | |
|     return this.getTypedRuleContext(NamedExpressionSeqContext, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.rowFormat = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(RowFormatContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(RowFormatContext, i);
 | |
|     }
 | |
| };
 | |
| QuerySpecificationContext.prototype.booleanExpression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(BooleanExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(BooleanExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| QuerySpecificationContext.prototype.TRANSFORM = function () {
 | |
|     return this.getToken(sqlParser.TRANSFORM, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.MAP = function () {
 | |
|     return this.getToken(sqlParser.MAP, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.REDUCE = function () {
 | |
|     return this.getToken(sqlParser.REDUCE, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.identifierSeq = function () {
 | |
|     return this.getTypedRuleContext(IdentifierSeqContext, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.colTypeList = function () {
 | |
|     return this.getTypedRuleContext(ColTypeListContext, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.lateralView = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(LateralViewContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(LateralViewContext, i);
 | |
|     }
 | |
| };
 | |
| QuerySpecificationContext.prototype.aggregation = function () {
 | |
|     return this.getTypedRuleContext(AggregationContext, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.HAVING = function () {
 | |
|     return this.getToken(sqlParser.HAVING, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.windows = function () {
 | |
|     return this.getTypedRuleContext(WindowsContext, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.setQuantifier = function () {
 | |
|     return this.getTypedRuleContext(SetQuantifierContext, 0);
 | |
| };
 | |
| QuerySpecificationContext.prototype.hint = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(HintContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(HintContext, i);
 | |
|     }
 | |
| };
 | |
| QuerySpecificationContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterQuerySpecification(this);
 | |
|     }
 | |
| };
 | |
| QuerySpecificationContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitQuerySpecification(this);
 | |
|     }
 | |
| };
 | |
| QuerySpecificationContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitQuerySpecification(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.QuerySpecificationContext = QuerySpecificationContext;
 | |
| sqlParser.prototype.querySpecification = function () {
 | |
|     var localctx = new QuerySpecificationContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 76, sqlParser.RULE_querySpecification);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 1518;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 190, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1435;
 | |
|                 this._errHandler.sync(this);
 | |
|                 switch (this._input.LA(1)) {
 | |
|                     case sqlParser.SELECT:
 | |
|                         this.state = 1425;
 | |
|                         this.match(sqlParser.SELECT);
 | |
|                         this.state = 1426;
 | |
|                         localctx.kind = this.match(sqlParser.TRANSFORM);
 | |
|                         this.state = 1427;
 | |
|                         this.match(sqlParser.T__0);
 | |
|                         this.state = 1428;
 | |
|                         this.namedExpressionSeq();
 | |
|                         this.state = 1429;
 | |
|                         this.match(sqlParser.T__1);
 | |
|                         break;
 | |
|                     case sqlParser.MAP:
 | |
|                         this.state = 1431;
 | |
|                         localctx.kind = this.match(sqlParser.MAP);
 | |
|                         this.state = 1432;
 | |
|                         this.namedExpressionSeq();
 | |
|                         break;
 | |
|                     case sqlParser.REDUCE:
 | |
|                         this.state = 1433;
 | |
|                         localctx.kind = this.match(sqlParser.REDUCE);
 | |
|                         this.state = 1434;
 | |
|                         this.namedExpressionSeq();
 | |
|                         break;
 | |
|                     default:
 | |
|                         throw new antlr4.error.NoViableAltException(this);
 | |
|                 }
 | |
|                 this.state = 1438;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.ROW) {
 | |
|                     this.state = 1437;
 | |
|                     localctx.inRowFormat = this.rowFormat();
 | |
|                 }
 | |
|                 this.state = 1442;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.RECORDWRITER) {
 | |
|                     this.state = 1440;
 | |
|                     this.match(sqlParser.RECORDWRITER);
 | |
|                     this.state = 1441;
 | |
|                     localctx.recordWriter = this.match(sqlParser.STRING);
 | |
|                 }
 | |
|                 this.state = 1444;
 | |
|                 this.match(sqlParser.USING);
 | |
|                 this.state = 1445;
 | |
|                 localctx.script = this.match(sqlParser.STRING);
 | |
|                 this.state = 1458;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 174, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1446;
 | |
|                     this.match(sqlParser.AS);
 | |
|                     this.state = 1456;
 | |
|                     this._errHandler.sync(this);
 | |
|                     var la_ = this._interp.adaptivePredict(this._input, 173, this._ctx);
 | |
|                     switch (la_) {
 | |
|                         case 1:
 | |
|                             this.state = 1447;
 | |
|                             this.identifierSeq();
 | |
|                             break;
 | |
|                         case 2:
 | |
|                             this.state = 1448;
 | |
|                             this.colTypeList();
 | |
|                             break;
 | |
|                         case 3:
 | |
|                             this.state = 1449;
 | |
|                             this.match(sqlParser.T__0);
 | |
|                             this.state = 1452;
 | |
|                             this._errHandler.sync(this);
 | |
|                             var la_ = this._interp.adaptivePredict(this._input, 172, this._ctx);
 | |
|                             switch (la_) {
 | |
|                                 case 1:
 | |
|                                     this.state = 1450;
 | |
|                                     this.identifierSeq();
 | |
|                                     break;
 | |
|                                 case 2:
 | |
|                                     this.state = 1451;
 | |
|                                     this.colTypeList();
 | |
|                                     break;
 | |
|                             }
 | |
|                             this.state = 1454;
 | |
|                             this.match(sqlParser.T__1);
 | |
|                             break;
 | |
|                     }
 | |
|                 }
 | |
|                 this.state = 1461;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 175, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1460;
 | |
|                     localctx.outRowFormat = this.rowFormat();
 | |
|                 }
 | |
|                 this.state = 1465;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 176, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1463;
 | |
|                     this.match(sqlParser.RECORDREADER);
 | |
|                     this.state = 1464;
 | |
|                     localctx.recordReader = this.match(sqlParser.STRING);
 | |
|                 }
 | |
|                 this.state = 1468;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 177, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1467;
 | |
|                     this.fromClause();
 | |
|                 }
 | |
|                 this.state = 1472;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 178, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1470;
 | |
|                     this.match(sqlParser.WHERE);
 | |
|                     this.state = 1471;
 | |
|                     localctx.where = this.booleanExpression(0);
 | |
|                 }
 | |
|                 break;
 | |
|             case 2:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1496;
 | |
|                 this._errHandler.sync(this);
 | |
|                 switch (this._input.LA(1)) {
 | |
|                     case sqlParser.SELECT:
 | |
|                         this.state = 1474;
 | |
|                         localctx.kind = this.match(sqlParser.SELECT);
 | |
|                         this.state = 1478;
 | |
|                         this._errHandler.sync(this);
 | |
|                         _la = this._input.LA(1);
 | |
|                         while (_la === sqlParser.T__4) {
 | |
|                             this.state = 1475;
 | |
|                             localctx._hint = this.hint();
 | |
|                             localctx.hints.push(localctx._hint);
 | |
|                             this.state = 1480;
 | |
|                             this._errHandler.sync(this);
 | |
|                             _la = this._input.LA(1);
 | |
|                         }
 | |
|                         this.state = 1482;
 | |
|                         this._errHandler.sync(this);
 | |
|                         var la_ = this._interp.adaptivePredict(this._input, 180, this._ctx);
 | |
|                         if (la_ === 1) {
 | |
|                             this.state = 1481;
 | |
|                             this.setQuantifier();
 | |
|                         }
 | |
|                         this.state = 1484;
 | |
|                         this.namedExpressionSeq();
 | |
|                         this.state = 1486;
 | |
|                         this._errHandler.sync(this);
 | |
|                         var la_ = this._interp.adaptivePredict(this._input, 181, this._ctx);
 | |
|                         if (la_ === 1) {
 | |
|                             this.state = 1485;
 | |
|                             this.fromClause();
 | |
|                         }
 | |
|                         break;
 | |
|                     case sqlParser.FROM:
 | |
|                         this.state = 1488;
 | |
|                         this.fromClause();
 | |
|                         this.state = 1494;
 | |
|                         this._errHandler.sync(this);
 | |
|                         var la_ = this._interp.adaptivePredict(this._input, 183, this._ctx);
 | |
|                         if (la_ === 1) {
 | |
|                             this.state = 1489;
 | |
|                             localctx.kind = this.match(sqlParser.SELECT);
 | |
|                             this.state = 1491;
 | |
|                             this._errHandler.sync(this);
 | |
|                             var la_ = this._interp.adaptivePredict(this._input, 182, this._ctx);
 | |
|                             if (la_ === 1) {
 | |
|                                 this.state = 1490;
 | |
|                                 this.setQuantifier();
 | |
|                             }
 | |
|                             this.state = 1493;
 | |
|                             this.namedExpressionSeq();
 | |
|                         }
 | |
|                         break;
 | |
|                     default:
 | |
|                         throw new antlr4.error.NoViableAltException(this);
 | |
|                 }
 | |
|                 this.state = 1501;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var _alt = this._interp.adaptivePredict(this._input, 185, this._ctx);
 | |
|                 while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|                     if (_alt === 1) {
 | |
|                         this.state = 1498;
 | |
|                         this.lateralView();
 | |
|                     }
 | |
|                     this.state = 1503;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _alt = this._interp.adaptivePredict(this._input, 185, this._ctx);
 | |
|                 }
 | |
|                 this.state = 1506;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 186, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1504;
 | |
|                     this.match(sqlParser.WHERE);
 | |
|                     this.state = 1505;
 | |
|                     localctx.where = this.booleanExpression(0);
 | |
|                 }
 | |
|                 this.state = 1509;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 187, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1508;
 | |
|                     this.aggregation();
 | |
|                 }
 | |
|                 this.state = 1513;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 188, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1511;
 | |
|                     this.match(sqlParser.HAVING);
 | |
|                     this.state = 1512;
 | |
|                     localctx.having = this.booleanExpression(0);
 | |
|                 }
 | |
|                 this.state = 1516;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 189, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1515;
 | |
|                     this.windows();
 | |
|                 }
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function HintContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_hint;
 | |
|     this._hintStatement = null; // HintStatementContext
 | |
|     this.hintStatements = []; // of HintStatementContexts
 | |
|     return this;
 | |
| }
 | |
| HintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| HintContext.prototype.constructor = HintContext;
 | |
| HintContext.prototype.hintStatement = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(HintStatementContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(HintStatementContext, i);
 | |
|     }
 | |
| };
 | |
| HintContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterHint(this);
 | |
|     }
 | |
| };
 | |
| HintContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitHint(this);
 | |
|     }
 | |
| };
 | |
| HintContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitHint(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.HintContext = HintContext;
 | |
| sqlParser.prototype.hint = function () {
 | |
|     var localctx = new HintContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 78, sqlParser.RULE_hint);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1520;
 | |
|         this.match(sqlParser.T__4);
 | |
|         this.state = 1521;
 | |
|         localctx._hintStatement = this.hintStatement();
 | |
|         localctx.hintStatements.push(localctx._hintStatement);
 | |
|         this.state = 1528;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__3) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.RIGHT - 64)) | (1 << (sqlParser.FULL - 64)) | (1 << (sqlParser.NATURAL - 64)) | (1 << (sqlParser.ON - 64)) | (1 << (sqlParser.PIVOT - 64)) | (1 << (sqlParser.LATERAL - 64)) | (1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)) | (1 << (sqlParser.CAST - 96)) | (1 << (sqlParser.SHOW - 96)) | (1 << (sqlParser.TABLES - 96)) | (1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.MACRO - 128)) | (1 << (sqlParser.IGNORE - 128)) | (1 << (sqlParser.BOTH - 128)) | (1 << (sqlParser.LEADING - 128)) | (1 << (sqlParser.TRAILING - 128)) | (1 << (sqlParser.IF - 128)) | (1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)) | (1 << (sqlParser.OF - 128)) | (1 << (sqlParser.SORT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.CLUSTER - 160)) | (1 << (sqlParser.DISTRIBUTE - 160)) | (1 << (sqlParser.OVERWRITE - 160)) | (1 << (sqlParser.TRANSFORM - 160)) | (1 << (sqlParser.REDUCE - 160)) | (1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIES - 160)) | (1 << (sqlParser.RECORDREADER - 160)) | (1 << (sqlParser.RECORDWRITER - 160)) | (1 << (sqlParser.DELIMITED - 160)) | (1 << (sqlParser.FIELDS - 160)) | (1 << (sqlParser.TERMINATED - 160)) | (1 << (sqlParser.COLLECTION - 160)) | (1 << (sqlParser.ITEMS - 160)) | (1 << (sqlParser.KEYS - 160)) | (1 << (sqlParser.ESCAPED - 160)) | (1 << (sqlParser.LINES - 160)) | (1 << (sqlParser.SEPARATED - 160)) | (1 << (sqlParser.FUNCTION - 160)) | (1 << (sqlParser.EXTENDED - 160)) | (1 << (sqlParser.REFRESH - 160)) | (1 << (sqlParser.CLEAR - 160)) | (1 << (sqlParser.CACHE - 160)) | (1 << (sqlParser.UNCACHE - 160)) | (1 << (sqlParser.LAZY - 160)) | (1 << (sqlParser.FORMATTED - 160)) | (1 << (sqlParser.GLOBAL - 160)) | (1 << (sqlParser.TEMPORARY - 160)) | (1 << (sqlParser.OPTIONS - 160)) | (1 << (sqlParser.UNSET - 160)) | (1 << (sqlParser.TBLPROPERTIES - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (sqlParser.DBPROPERTIES - 192)) | (1 << (sqlParser.BUCKETS - 192)) | (1 << (sqlParser.SKEWED - 192)) | (1 << (sqlParser.STORED - 192)) | (1 << (sqlParser.DIRECTORIES - 192)) | (1 << (sqlParser.LOCATION - 192)) | (1 << (sqlParser.EXCHANGE - 192)) | (1 << (sqlParser.ARCHIVE - 192)) | (1 << (sqlParser.UNARCHIVE - 192)) | (1 << (sqlParser.FILEFORMAT - 192)) | (1 << (sqlParser.TOUCH - 192)) | (1 << (sqlParser.COMPACT - 192)) | (1 << (sqlParser.CONCATENATE - 192)) | (1 << (sqlParser.CHANGE - 192)) | (1 << (sqlParser.CASCADE - 192)) | (1 << (sqlParser.RESTRICT - 192)) | (1 << (sqlParser.CLUSTERED - 192)) | (1 << (sqlParser.SORTED - 192)) | (1 << (sqlParser.PURGE - 192)) | (1 << (sqlParser.INPUTFORMAT - 192)) | (1 << (sqlParser.OUTPUTFORMAT - 192)) | (1 << (sqlParser.DATABASE - 192)) | (1 << (sqlParser.DATABASES - 192)) | (1 << (sqlParser.DFS - 192)) | (1 << (sqlParser.TRUNCATE - 192)) | (1 << (sqlParser.ANALYZE - 192)) | (1 << (sqlParser.COMPUTE - 192)) | (1 << (sqlParser.LIST - 192)) | (1 << (sqlParser.STATISTICS - 192)) | (1 << (sqlParser.PARTITIONED - 192)) | (1 << (sqlParser.EXTERNAL - 192)) | (1 << (sqlParser.DEFINED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (sqlParser.REVOKE - 224)) | (1 << (sqlParser.GRANT - 224)) | (1 << (sqlParser.LOCK - 224)) | (1 << (sqlParser.UNLOCK - 224)) | (1 << (sqlParser.MSCK - 224)) | (1 << (sqlParser.REPAIR - 224)) | (1 << (sqlParser.RECOVER - 224)) | (1 << (sqlParser.EXPORT - 224)) | (1 << (sqlParser.IMPORT - 224)) | (1 << (sqlParser.LOAD - 224)) | (1 << (sqlParser.ROLE - 224)) | (1 << (sqlParser.ROLES - 224)) | (1 << (sqlParser.COMPACTIONS - 224)) | (1 << (sqlParser.PRINCIPALS - 224)) | (1 << (sqlParser.TRANSACTIONS - 224)) | (1 << (sqlParser.INDEX - 224)) | (1 << (sqlParser.INDEXES - 224)) | (1 << (sqlParser.LOCKS - 224)) | (1 << (sqlParser.OPTION - 224)) | (1 << (sqlParser.ANTI - 224)) | (1 << (sqlParser.LOCAL - 224)) | (1 << (sqlParser.INPATH - 224)))) !== 0) || _la === sqlParser.IDENTIFIER || _la === sqlParser.BACKQUOTED_IDENTIFIER) {
 | |
|             this.state = 1523;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|             if (_la === sqlParser.T__3) {
 | |
|                 this.state = 1522;
 | |
|                 this.match(sqlParser.T__3);
 | |
|             }
 | |
|             this.state = 1525;
 | |
|             localctx._hintStatement = this.hintStatement();
 | |
|             localctx.hintStatements.push(localctx._hintStatement);
 | |
|             this.state = 1530;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|         }
 | |
|         this.state = 1531;
 | |
|         this.match(sqlParser.T__5);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function HintStatementContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_hintStatement;
 | |
|     this.hintName = null; // IdentifierContext
 | |
|     this._primaryExpression = null; // PrimaryExpressionContext
 | |
|     this.parameters = []; // of PrimaryExpressionContexts
 | |
|     return this;
 | |
| }
 | |
| HintStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| HintStatementContext.prototype.constructor = HintStatementContext;
 | |
| HintStatementContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| HintStatementContext.prototype.primaryExpression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(PrimaryExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(PrimaryExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| HintStatementContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterHintStatement(this);
 | |
|     }
 | |
| };
 | |
| HintStatementContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitHintStatement(this);
 | |
|     }
 | |
| };
 | |
| HintStatementContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitHintStatement(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.HintStatementContext = HintStatementContext;
 | |
| sqlParser.prototype.hintStatement = function () {
 | |
|     var localctx = new HintStatementContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 80, sqlParser.RULE_hintStatement);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 1546;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 194, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1533;
 | |
|                 localctx.hintName = this.identifier();
 | |
|                 break;
 | |
|             case 2:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1534;
 | |
|                 localctx.hintName = this.identifier();
 | |
|                 this.state = 1535;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 1536;
 | |
|                 localctx._primaryExpression = this.primaryExpression(0);
 | |
|                 localctx.parameters.push(localctx._primaryExpression);
 | |
|                 this.state = 1541;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 while (_la === sqlParser.T__3) {
 | |
|                     this.state = 1537;
 | |
|                     this.match(sqlParser.T__3);
 | |
|                     this.state = 1538;
 | |
|                     localctx._primaryExpression = this.primaryExpression(0);
 | |
|                     localctx.parameters.push(localctx._primaryExpression);
 | |
|                     this.state = 1543;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 }
 | |
|                 this.state = 1544;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function FromClauseContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_fromClause;
 | |
|     return this;
 | |
| }
 | |
| FromClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| FromClauseContext.prototype.constructor = FromClauseContext;
 | |
| FromClauseContext.prototype.FROM = function () {
 | |
|     return this.getToken(sqlParser.FROM, 0);
 | |
| };
 | |
| FromClauseContext.prototype.relation = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(RelationContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(RelationContext, i);
 | |
|     }
 | |
| };
 | |
| FromClauseContext.prototype.lateralView = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(LateralViewContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(LateralViewContext, i);
 | |
|     }
 | |
| };
 | |
| FromClauseContext.prototype.pivotClause = function () {
 | |
|     return this.getTypedRuleContext(PivotClauseContext, 0);
 | |
| };
 | |
| FromClauseContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterFromClause(this);
 | |
|     }
 | |
| };
 | |
| FromClauseContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitFromClause(this);
 | |
|     }
 | |
| };
 | |
| FromClauseContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitFromClause(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.FromClauseContext = FromClauseContext;
 | |
| sqlParser.prototype.fromClause = function () {
 | |
|     var localctx = new FromClauseContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 82, sqlParser.RULE_fromClause);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1548;
 | |
|         this.match(sqlParser.FROM);
 | |
|         this.state = 1549;
 | |
|         this.relation();
 | |
|         this.state = 1554;
 | |
|         this._errHandler.sync(this);
 | |
|         var _alt = this._interp.adaptivePredict(this._input, 195, this._ctx);
 | |
|         while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|             if (_alt === 1) {
 | |
|                 this.state = 1550;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 1551;
 | |
|                 this.relation();
 | |
|             }
 | |
|             this.state = 1556;
 | |
|             this._errHandler.sync(this);
 | |
|             _alt = this._interp.adaptivePredict(this._input, 195, this._ctx);
 | |
|         }
 | |
|         this.state = 1560;
 | |
|         this._errHandler.sync(this);
 | |
|         var _alt = this._interp.adaptivePredict(this._input, 196, this._ctx);
 | |
|         while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|             if (_alt === 1) {
 | |
|                 this.state = 1557;
 | |
|                 this.lateralView();
 | |
|             }
 | |
|             this.state = 1562;
 | |
|             this._errHandler.sync(this);
 | |
|             _alt = this._interp.adaptivePredict(this._input, 196, this._ctx);
 | |
|         }
 | |
|         this.state = 1564;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 197, this._ctx);
 | |
|         if (la_ === 1) {
 | |
|             this.state = 1563;
 | |
|             this.pivotClause();
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function AggregationContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_aggregation;
 | |
|     this._expression = null; // ExpressionContext
 | |
|     this.groupingExpressions = []; // of ExpressionContexts
 | |
|     this.kind = null; // Token
 | |
|     return this;
 | |
| }
 | |
| AggregationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| AggregationContext.prototype.constructor = AggregationContext;
 | |
| AggregationContext.prototype.GROUP = function () {
 | |
|     return this.getToken(sqlParser.GROUP, 0);
 | |
| };
 | |
| AggregationContext.prototype.BY = function () {
 | |
|     return this.getToken(sqlParser.BY, 0);
 | |
| };
 | |
| AggregationContext.prototype.expression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| AggregationContext.prototype.WITH = function () {
 | |
|     return this.getToken(sqlParser.WITH, 0);
 | |
| };
 | |
| AggregationContext.prototype.SETS = function () {
 | |
|     return this.getToken(sqlParser.SETS, 0);
 | |
| };
 | |
| AggregationContext.prototype.groupingSet = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(GroupingSetContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(GroupingSetContext, i);
 | |
|     }
 | |
| };
 | |
| AggregationContext.prototype.ROLLUP = function () {
 | |
|     return this.getToken(sqlParser.ROLLUP, 0);
 | |
| };
 | |
| AggregationContext.prototype.CUBE = function () {
 | |
|     return this.getToken(sqlParser.CUBE, 0);
 | |
| };
 | |
| AggregationContext.prototype.GROUPING = function () {
 | |
|     return this.getToken(sqlParser.GROUPING, 0);
 | |
| };
 | |
| AggregationContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterAggregation(this);
 | |
|     }
 | |
| };
 | |
| AggregationContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitAggregation(this);
 | |
|     }
 | |
| };
 | |
| AggregationContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitAggregation(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.AggregationContext = AggregationContext;
 | |
| sqlParser.prototype.aggregation = function () {
 | |
|     var localctx = new AggregationContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 84, sqlParser.RULE_aggregation);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 1610;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 202, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1566;
 | |
|                 this.match(sqlParser.GROUP);
 | |
|                 this.state = 1567;
 | |
|                 this.match(sqlParser.BY);
 | |
|                 this.state = 1568;
 | |
|                 localctx._expression = this.expression();
 | |
|                 localctx.groupingExpressions.push(localctx._expression);
 | |
|                 this.state = 1573;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var _alt = this._interp.adaptivePredict(this._input, 198, this._ctx);
 | |
|                 while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|                     if (_alt === 1) {
 | |
|                         this.state = 1569;
 | |
|                         this.match(sqlParser.T__3);
 | |
|                         this.state = 1570;
 | |
|                         localctx._expression = this.expression();
 | |
|                         localctx.groupingExpressions.push(localctx._expression);
 | |
|                     }
 | |
|                     this.state = 1575;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _alt = this._interp.adaptivePredict(this._input, 198, this._ctx);
 | |
|                 }
 | |
|                 this.state = 1593;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 200, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1576;
 | |
|                     this.match(sqlParser.WITH);
 | |
|                     this.state = 1577;
 | |
|                     localctx.kind = this.match(sqlParser.ROLLUP);
 | |
|                 }
 | |
|                 else if (la_ === 2) {
 | |
|                     this.state = 1578;
 | |
|                     this.match(sqlParser.WITH);
 | |
|                     this.state = 1579;
 | |
|                     localctx.kind = this.match(sqlParser.CUBE);
 | |
|                 }
 | |
|                 else if (la_ === 3) {
 | |
|                     this.state = 1580;
 | |
|                     localctx.kind = this.match(sqlParser.GROUPING);
 | |
|                     this.state = 1581;
 | |
|                     this.match(sqlParser.SETS);
 | |
|                     this.state = 1582;
 | |
|                     this.match(sqlParser.T__0);
 | |
|                     this.state = 1583;
 | |
|                     this.groupingSet();
 | |
|                     this.state = 1588;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                     while (_la === sqlParser.T__3) {
 | |
|                         this.state = 1584;
 | |
|                         this.match(sqlParser.T__3);
 | |
|                         this.state = 1585;
 | |
|                         this.groupingSet();
 | |
|                         this.state = 1590;
 | |
|                         this._errHandler.sync(this);
 | |
|                         _la = this._input.LA(1);
 | |
|                     }
 | |
|                     this.state = 1591;
 | |
|                     this.match(sqlParser.T__1);
 | |
|                 }
 | |
|                 break;
 | |
|             case 2:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1595;
 | |
|                 this.match(sqlParser.GROUP);
 | |
|                 this.state = 1596;
 | |
|                 this.match(sqlParser.BY);
 | |
|                 this.state = 1597;
 | |
|                 localctx.kind = this.match(sqlParser.GROUPING);
 | |
|                 this.state = 1598;
 | |
|                 this.match(sqlParser.SETS);
 | |
|                 this.state = 1599;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 1600;
 | |
|                 this.groupingSet();
 | |
|                 this.state = 1605;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 while (_la === sqlParser.T__3) {
 | |
|                     this.state = 1601;
 | |
|                     this.match(sqlParser.T__3);
 | |
|                     this.state = 1602;
 | |
|                     this.groupingSet();
 | |
|                     this.state = 1607;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 }
 | |
|                 this.state = 1608;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function GroupingSetContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_groupingSet;
 | |
|     return this;
 | |
| }
 | |
| GroupingSetContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| GroupingSetContext.prototype.constructor = GroupingSetContext;
 | |
| GroupingSetContext.prototype.expression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| GroupingSetContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterGroupingSet(this);
 | |
|     }
 | |
| };
 | |
| GroupingSetContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitGroupingSet(this);
 | |
|     }
 | |
| };
 | |
| GroupingSetContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitGroupingSet(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.GroupingSetContext = GroupingSetContext;
 | |
| sqlParser.prototype.groupingSet = function () {
 | |
|     var localctx = new GroupingSetContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 86, sqlParser.RULE_groupingSet);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 1625;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 205, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1612;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 1621;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.RIGHT - 64)) | (1 << (sqlParser.FULL - 64)) | (1 << (sqlParser.NATURAL - 64)) | (1 << (sqlParser.ON - 64)) | (1 << (sqlParser.PIVOT - 64)) | (1 << (sqlParser.LATERAL - 64)) | (1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)) | (1 << (sqlParser.CAST - 96)) | (1 << (sqlParser.SHOW - 96)) | (1 << (sqlParser.TABLES - 96)) | (1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.MACRO - 128)) | (1 << (sqlParser.IGNORE - 128)) | (1 << (sqlParser.BOTH - 128)) | (1 << (sqlParser.LEADING - 128)) | (1 << (sqlParser.TRAILING - 128)) | (1 << (sqlParser.IF - 128)) | (1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (1 << (sqlParser.ASTERISK - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.TILDE - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)) | (1 << (sqlParser.OF - 128)) | (1 << (sqlParser.SORT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.CLUSTER - 160)) | (1 << (sqlParser.DISTRIBUTE - 160)) | (1 << (sqlParser.OVERWRITE - 160)) | (1 << (sqlParser.TRANSFORM - 160)) | (1 << (sqlParser.REDUCE - 160)) | (1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIES - 160)) | (1 << (sqlParser.RECORDREADER - 160)) | (1 << (sqlParser.RECORDWRITER - 160)) | (1 << (sqlParser.DELIMITED - 160)) | (1 << (sqlParser.FIELDS - 160)) | (1 << (sqlParser.TERMINATED - 160)) | (1 << (sqlParser.COLLECTION - 160)) | (1 << (sqlParser.ITEMS - 160)) | (1 << (sqlParser.KEYS - 160)) | (1 << (sqlParser.ESCAPED - 160)) | (1 << (sqlParser.LINES - 160)) | (1 << (sqlParser.SEPARATED - 160)) | (1 << (sqlParser.FUNCTION - 160)) | (1 << (sqlParser.EXTENDED - 160)) | (1 << (sqlParser.REFRESH - 160)) | (1 << (sqlParser.CLEAR - 160)) | (1 << (sqlParser.CACHE - 160)) | (1 << (sqlParser.UNCACHE - 160)) | (1 << (sqlParser.LAZY - 160)) | (1 << (sqlParser.FORMATTED - 160)) | (1 << (sqlParser.GLOBAL - 160)) | (1 << (sqlParser.TEMPORARY - 160)) | (1 << (sqlParser.OPTIONS - 160)) | (1 << (sqlParser.UNSET - 160)) | (1 << (sqlParser.TBLPROPERTIES - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (sqlParser.DBPROPERTIES - 192)) | (1 << (sqlParser.BUCKETS - 192)) | (1 << (sqlParser.SKEWED - 192)) | (1 << (sqlParser.STORED - 192)) | (1 << (sqlParser.DIRECTORIES - 192)) | (1 << (sqlParser.LOCATION - 192)) | (1 << (sqlParser.EXCHANGE - 192)) | (1 << (sqlParser.ARCHIVE - 192)) | (1 << (sqlParser.UNARCHIVE - 192)) | (1 << (sqlParser.FILEFORMAT - 192)) | (1 << (sqlParser.TOUCH - 192)) | (1 << (sqlParser.COMPACT - 192)) | (1 << (sqlParser.CONCATENATE - 192)) | (1 << (sqlParser.CHANGE - 192)) | (1 << (sqlParser.CASCADE - 192)) | (1 << (sqlParser.RESTRICT - 192)) | (1 << (sqlParser.CLUSTERED - 192)) | (1 << (sqlParser.SORTED - 192)) | (1 << (sqlParser.PURGE - 192)) | (1 << (sqlParser.INPUTFORMAT - 192)) | (1 << (sqlParser.OUTPUTFORMAT - 192)) | (1 << (sqlParser.DATABASE - 192)) | (1 << (sqlParser.DATABASES - 192)) | (1 << (sqlParser.DFS - 192)) | (1 << (sqlParser.TRUNCATE - 192)) | (1 << (sqlParser.ANALYZE - 192)) | (1 << (sqlParser.COMPUTE - 192)) | (1 << (sqlParser.LIST - 192)) | (1 << (sqlParser.STATISTICS - 192)) | (1 << (sqlParser.PARTITIONED - 192)) | (1 << (sqlParser.EXTERNAL - 192)) | (1 << (sqlParser.DEFINED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (sqlParser.REVOKE - 224)) | (1 << (sqlParser.GRANT - 224)) | (1 << (sqlParser.LOCK - 224)) | (1 << (sqlParser.UNLOCK - 224)) | (1 << (sqlParser.MSCK - 224)) | (1 << (sqlParser.REPAIR - 224)) | (1 << (sqlParser.RECOVER - 224)) | (1 << (sqlParser.EXPORT - 224)) | (1 << (sqlParser.IMPORT - 224)) | (1 << (sqlParser.LOAD - 224)) | (1 << (sqlParser.ROLE - 224)) | (1 << (sqlParser.ROLES - 224)) | (1 << (sqlParser.COMPACTIONS - 224)) | (1 << (sqlParser.PRINCIPALS - 224)) | (1 << (sqlParser.TRANSACTIONS - 224)) | (1 << (sqlParser.INDEX - 224)) | (1 << (sqlParser.INDEXES - 224)) | (1 << (sqlParser.LOCKS - 224)) | (1 << (sqlParser.OPTION - 224)) | (1 << (sqlParser.ANTI - 224)) | (1 << (sqlParser.LOCAL - 224)) | (1 << (sqlParser.INPATH - 224)))) !== 0) || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (sqlParser.STRING - 259)) | (1 << (sqlParser.BIGINT_LITERAL - 259)) | (1 << (sqlParser.SMALLINT_LITERAL - 259)) | (1 << (sqlParser.TINYINT_LITERAL - 259)) | (1 << (sqlParser.INTEGER_VALUE - 259)) | (1 << (sqlParser.DECIMAL_VALUE - 259)) | (1 << (sqlParser.DOUBLE_LITERAL - 259)) | (1 << (sqlParser.BIGDECIMAL_LITERAL - 259)) | (1 << (sqlParser.IDENTIFIER - 259)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 259)))) !== 0)) {
 | |
|                     this.state = 1613;
 | |
|                     this.expression();
 | |
|                     this.state = 1618;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                     while (_la === sqlParser.T__3) {
 | |
|                         this.state = 1614;
 | |
|                         this.match(sqlParser.T__3);
 | |
|                         this.state = 1615;
 | |
|                         this.expression();
 | |
|                         this.state = 1620;
 | |
|                         this._errHandler.sync(this);
 | |
|                         _la = this._input.LA(1);
 | |
|                     }
 | |
|                 }
 | |
|                 this.state = 1623;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 2:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1624;
 | |
|                 this.expression();
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function PivotClauseContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_pivotClause;
 | |
|     this.aggregates = null; // NamedExpressionSeqContext
 | |
|     this._pivotValue = null; // PivotValueContext
 | |
|     this.pivotValues = []; // of PivotValueContexts
 | |
|     return this;
 | |
| }
 | |
| PivotClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| PivotClauseContext.prototype.constructor = PivotClauseContext;
 | |
| PivotClauseContext.prototype.PIVOT = function () {
 | |
|     return this.getToken(sqlParser.PIVOT, 0);
 | |
| };
 | |
| PivotClauseContext.prototype.FOR = function () {
 | |
|     return this.getToken(sqlParser.FOR, 0);
 | |
| };
 | |
| PivotClauseContext.prototype.pivotColumn = function () {
 | |
|     return this.getTypedRuleContext(PivotColumnContext, 0);
 | |
| };
 | |
| PivotClauseContext.prototype.IN = function () {
 | |
|     return this.getToken(sqlParser.IN, 0);
 | |
| };
 | |
| PivotClauseContext.prototype.namedExpressionSeq = function () {
 | |
|     return this.getTypedRuleContext(NamedExpressionSeqContext, 0);
 | |
| };
 | |
| PivotClauseContext.prototype.pivotValue = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(PivotValueContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(PivotValueContext, i);
 | |
|     }
 | |
| };
 | |
| PivotClauseContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPivotClause(this);
 | |
|     }
 | |
| };
 | |
| PivotClauseContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPivotClause(this);
 | |
|     }
 | |
| };
 | |
| PivotClauseContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPivotClause(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.PivotClauseContext = PivotClauseContext;
 | |
| sqlParser.prototype.pivotClause = function () {
 | |
|     var localctx = new PivotClauseContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 88, sqlParser.RULE_pivotClause);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1627;
 | |
|         this.match(sqlParser.PIVOT);
 | |
|         this.state = 1628;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 1629;
 | |
|         localctx.aggregates = this.namedExpressionSeq();
 | |
|         this.state = 1630;
 | |
|         this.match(sqlParser.FOR);
 | |
|         this.state = 1631;
 | |
|         this.pivotColumn();
 | |
|         this.state = 1632;
 | |
|         this.match(sqlParser.IN);
 | |
|         this.state = 1633;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 1634;
 | |
|         localctx._pivotValue = this.pivotValue();
 | |
|         localctx.pivotValues.push(localctx._pivotValue);
 | |
|         this.state = 1639;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while (_la === sqlParser.T__3) {
 | |
|             this.state = 1635;
 | |
|             this.match(sqlParser.T__3);
 | |
|             this.state = 1636;
 | |
|             localctx._pivotValue = this.pivotValue();
 | |
|             localctx.pivotValues.push(localctx._pivotValue);
 | |
|             this.state = 1641;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|         }
 | |
|         this.state = 1642;
 | |
|         this.match(sqlParser.T__1);
 | |
|         this.state = 1643;
 | |
|         this.match(sqlParser.T__1);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function PivotColumnContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_pivotColumn;
 | |
|     this._identifier = null; // IdentifierContext
 | |
|     this.identifiers = []; // of IdentifierContexts
 | |
|     return this;
 | |
| }
 | |
| PivotColumnContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| PivotColumnContext.prototype.constructor = PivotColumnContext;
 | |
| PivotColumnContext.prototype.identifier = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(IdentifierContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(IdentifierContext, i);
 | |
|     }
 | |
| };
 | |
| PivotColumnContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPivotColumn(this);
 | |
|     }
 | |
| };
 | |
| PivotColumnContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPivotColumn(this);
 | |
|     }
 | |
| };
 | |
| PivotColumnContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPivotColumn(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.PivotColumnContext = PivotColumnContext;
 | |
| sqlParser.prototype.pivotColumn = function () {
 | |
|     var localctx = new PivotColumnContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 90, sqlParser.RULE_pivotColumn);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 1657;
 | |
|         this._errHandler.sync(this);
 | |
|         switch (this._input.LA(1)) {
 | |
|             case sqlParser.SELECT:
 | |
|             case sqlParser.FROM:
 | |
|             case sqlParser.ADD:
 | |
|             case sqlParser.AS:
 | |
|             case sqlParser.ALL:
 | |
|             case sqlParser.ANY:
 | |
|             case sqlParser.DISTINCT:
 | |
|             case sqlParser.WHERE:
 | |
|             case sqlParser.GROUP:
 | |
|             case sqlParser.BY:
 | |
|             case sqlParser.GROUPING:
 | |
|             case sqlParser.SETS:
 | |
|             case sqlParser.CUBE:
 | |
|             case sqlParser.ROLLUP:
 | |
|             case sqlParser.ORDER:
 | |
|             case sqlParser.HAVING:
 | |
|             case sqlParser.LIMIT:
 | |
|             case sqlParser.AT:
 | |
|             case sqlParser.OR:
 | |
|             case sqlParser.AND:
 | |
|             case sqlParser.IN:
 | |
|             case sqlParser.NOT:
 | |
|             case sqlParser.NO:
 | |
|             case sqlParser.EXISTS:
 | |
|             case sqlParser.BETWEEN:
 | |
|             case sqlParser.LIKE:
 | |
|             case sqlParser.RLIKE:
 | |
|             case sqlParser.IS:
 | |
|             case sqlParser.NULL:
 | |
|             case sqlParser.TRUE:
 | |
|             case sqlParser.FALSE:
 | |
|             case sqlParser.NULLS:
 | |
|             case sqlParser.ASC:
 | |
|             case sqlParser.DESC:
 | |
|             case sqlParser.FOR:
 | |
|             case sqlParser.INTERVAL:
 | |
|             case sqlParser.CASE:
 | |
|             case sqlParser.WHEN:
 | |
|             case sqlParser.THEN:
 | |
|             case sqlParser.ELSE:
 | |
|             case sqlParser.END:
 | |
|             case sqlParser.JOIN:
 | |
|             case sqlParser.CROSS:
 | |
|             case sqlParser.OUTER:
 | |
|             case sqlParser.INNER:
 | |
|             case sqlParser.LEFT:
 | |
|             case sqlParser.SEMI:
 | |
|             case sqlParser.RIGHT:
 | |
|             case sqlParser.FULL:
 | |
|             case sqlParser.NATURAL:
 | |
|             case sqlParser.ON:
 | |
|             case sqlParser.PIVOT:
 | |
|             case sqlParser.LATERAL:
 | |
|             case sqlParser.WINDOW:
 | |
|             case sqlParser.OVER:
 | |
|             case sqlParser.PARTITION:
 | |
|             case sqlParser.RANGE:
 | |
|             case sqlParser.ROWS:
 | |
|             case sqlParser.UNBOUNDED:
 | |
|             case sqlParser.PRECEDING:
 | |
|             case sqlParser.FOLLOWING:
 | |
|             case sqlParser.CURRENT:
 | |
|             case sqlParser.FIRST:
 | |
|             case sqlParser.AFTER:
 | |
|             case sqlParser.LAST:
 | |
|             case sqlParser.ROW:
 | |
|             case sqlParser.WITH:
 | |
|             case sqlParser.CREATE:
 | |
|             case sqlParser.TABLE:
 | |
|             case sqlParser.DIRECTORY:
 | |
|             case sqlParser.VIEW:
 | |
|             case sqlParser.REPLACE:
 | |
|             case sqlParser.INSERT:
 | |
|             case sqlParser.DELETE:
 | |
|             case sqlParser.INTO:
 | |
|             case sqlParser.DESCRIBE:
 | |
|             case sqlParser.EXPLAIN:
 | |
|             case sqlParser.FORMAT:
 | |
|             case sqlParser.LOGICAL:
 | |
|             case sqlParser.CODEGEN:
 | |
|             case sqlParser.COST:
 | |
|             case sqlParser.CAST:
 | |
|             case sqlParser.SHOW:
 | |
|             case sqlParser.TABLES:
 | |
|             case sqlParser.COLUMNS:
 | |
|             case sqlParser.COLUMN:
 | |
|             case sqlParser.USE:
 | |
|             case sqlParser.PARTITIONS:
 | |
|             case sqlParser.FUNCTIONS:
 | |
|             case sqlParser.DROP:
 | |
|             case sqlParser.UNION:
 | |
|             case sqlParser.EXCEPT:
 | |
|             case sqlParser.SETMINUS:
 | |
|             case sqlParser.INTERSECT:
 | |
|             case sqlParser.TO:
 | |
|             case sqlParser.TABLESAMPLE:
 | |
|             case sqlParser.STRATIFY:
 | |
|             case sqlParser.ALTER:
 | |
|             case sqlParser.RENAME:
 | |
|             case sqlParser.ARRAY:
 | |
|             case sqlParser.MAP:
 | |
|             case sqlParser.STRUCT:
 | |
|             case sqlParser.COMMENT:
 | |
|             case sqlParser.SET:
 | |
|             case sqlParser.RESET:
 | |
|             case sqlParser.DATA:
 | |
|             case sqlParser.START:
 | |
|             case sqlParser.TRANSACTION:
 | |
|             case sqlParser.COMMIT:
 | |
|             case sqlParser.ROLLBACK:
 | |
|             case sqlParser.MACRO:
 | |
|             case sqlParser.IGNORE:
 | |
|             case sqlParser.BOTH:
 | |
|             case sqlParser.LEADING:
 | |
|             case sqlParser.TRAILING:
 | |
|             case sqlParser.IF:
 | |
|             case sqlParser.POSITION:
 | |
|             case sqlParser.EXTRACT:
 | |
|             case sqlParser.DIV:
 | |
|             case sqlParser.PERCENTLIT:
 | |
|             case sqlParser.BUCKET:
 | |
|             case sqlParser.OUT:
 | |
|             case sqlParser.OF:
 | |
|             case sqlParser.SORT:
 | |
|             case sqlParser.CLUSTER:
 | |
|             case sqlParser.DISTRIBUTE:
 | |
|             case sqlParser.OVERWRITE:
 | |
|             case sqlParser.TRANSFORM:
 | |
|             case sqlParser.REDUCE:
 | |
|             case sqlParser.SERDE:
 | |
|             case sqlParser.SERDEPROPERTIES:
 | |
|             case sqlParser.RECORDREADER:
 | |
|             case sqlParser.RECORDWRITER:
 | |
|             case sqlParser.DELIMITED:
 | |
|             case sqlParser.FIELDS:
 | |
|             case sqlParser.TERMINATED:
 | |
|             case sqlParser.COLLECTION:
 | |
|             case sqlParser.ITEMS:
 | |
|             case sqlParser.KEYS:
 | |
|             case sqlParser.ESCAPED:
 | |
|             case sqlParser.LINES:
 | |
|             case sqlParser.SEPARATED:
 | |
|             case sqlParser.FUNCTION:
 | |
|             case sqlParser.EXTENDED:
 | |
|             case sqlParser.REFRESH:
 | |
|             case sqlParser.CLEAR:
 | |
|             case sqlParser.CACHE:
 | |
|             case sqlParser.UNCACHE:
 | |
|             case sqlParser.LAZY:
 | |
|             case sqlParser.FORMATTED:
 | |
|             case sqlParser.GLOBAL:
 | |
|             case sqlParser.TEMPORARY:
 | |
|             case sqlParser.OPTIONS:
 | |
|             case sqlParser.UNSET:
 | |
|             case sqlParser.TBLPROPERTIES:
 | |
|             case sqlParser.DBPROPERTIES:
 | |
|             case sqlParser.BUCKETS:
 | |
|             case sqlParser.SKEWED:
 | |
|             case sqlParser.STORED:
 | |
|             case sqlParser.DIRECTORIES:
 | |
|             case sqlParser.LOCATION:
 | |
|             case sqlParser.EXCHANGE:
 | |
|             case sqlParser.ARCHIVE:
 | |
|             case sqlParser.UNARCHIVE:
 | |
|             case sqlParser.FILEFORMAT:
 | |
|             case sqlParser.TOUCH:
 | |
|             case sqlParser.COMPACT:
 | |
|             case sqlParser.CONCATENATE:
 | |
|             case sqlParser.CHANGE:
 | |
|             case sqlParser.CASCADE:
 | |
|             case sqlParser.RESTRICT:
 | |
|             case sqlParser.CLUSTERED:
 | |
|             case sqlParser.SORTED:
 | |
|             case sqlParser.PURGE:
 | |
|             case sqlParser.INPUTFORMAT:
 | |
|             case sqlParser.OUTPUTFORMAT:
 | |
|             case sqlParser.DATABASE:
 | |
|             case sqlParser.DATABASES:
 | |
|             case sqlParser.DFS:
 | |
|             case sqlParser.TRUNCATE:
 | |
|             case sqlParser.ANALYZE:
 | |
|             case sqlParser.COMPUTE:
 | |
|             case sqlParser.LIST:
 | |
|             case sqlParser.STATISTICS:
 | |
|             case sqlParser.PARTITIONED:
 | |
|             case sqlParser.EXTERNAL:
 | |
|             case sqlParser.DEFINED:
 | |
|             case sqlParser.REVOKE:
 | |
|             case sqlParser.GRANT:
 | |
|             case sqlParser.LOCK:
 | |
|             case sqlParser.UNLOCK:
 | |
|             case sqlParser.MSCK:
 | |
|             case sqlParser.REPAIR:
 | |
|             case sqlParser.RECOVER:
 | |
|             case sqlParser.EXPORT:
 | |
|             case sqlParser.IMPORT:
 | |
|             case sqlParser.LOAD:
 | |
|             case sqlParser.ROLE:
 | |
|             case sqlParser.ROLES:
 | |
|             case sqlParser.COMPACTIONS:
 | |
|             case sqlParser.PRINCIPALS:
 | |
|             case sqlParser.TRANSACTIONS:
 | |
|             case sqlParser.INDEX:
 | |
|             case sqlParser.INDEXES:
 | |
|             case sqlParser.LOCKS:
 | |
|             case sqlParser.OPTION:
 | |
|             case sqlParser.ANTI:
 | |
|             case sqlParser.LOCAL:
 | |
|             case sqlParser.INPATH:
 | |
|             case sqlParser.IDENTIFIER:
 | |
|             case sqlParser.BACKQUOTED_IDENTIFIER:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1645;
 | |
|                 localctx._identifier = this.identifier();
 | |
|                 localctx.identifiers.push(localctx._identifier);
 | |
|                 break;
 | |
|             case sqlParser.T__0:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1646;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 1647;
 | |
|                 localctx._identifier = this.identifier();
 | |
|                 localctx.identifiers.push(localctx._identifier);
 | |
|                 this.state = 1652;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 while (_la === sqlParser.T__3) {
 | |
|                     this.state = 1648;
 | |
|                     this.match(sqlParser.T__3);
 | |
|                     this.state = 1649;
 | |
|                     localctx._identifier = this.identifier();
 | |
|                     localctx.identifiers.push(localctx._identifier);
 | |
|                     this.state = 1654;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 }
 | |
|                 this.state = 1655;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             default:
 | |
|                 throw new antlr4.error.NoViableAltException(this);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function PivotValueContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_pivotValue;
 | |
|     return this;
 | |
| }
 | |
| PivotValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| PivotValueContext.prototype.constructor = PivotValueContext;
 | |
| PivotValueContext.prototype.expression = function () {
 | |
|     return this.getTypedRuleContext(ExpressionContext, 0);
 | |
| };
 | |
| PivotValueContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| PivotValueContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| PivotValueContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPivotValue(this);
 | |
|     }
 | |
| };
 | |
| PivotValueContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPivotValue(this);
 | |
|     }
 | |
| };
 | |
| PivotValueContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPivotValue(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.PivotValueContext = PivotValueContext;
 | |
| sqlParser.prototype.pivotValue = function () {
 | |
|     var localctx = new PivotValueContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 92, sqlParser.RULE_pivotValue);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1659;
 | |
|         this.expression();
 | |
|         this.state = 1664;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (((((_la - 17)) & ~0x1f) == 0 && ((1 << (_la - 17)) & ((1 << (sqlParser.SELECT - 17)) | (1 << (sqlParser.FROM - 17)) | (1 << (sqlParser.ADD - 17)) | (1 << (sqlParser.AS - 17)) | (1 << (sqlParser.ALL - 17)) | (1 << (sqlParser.ANY - 17)) | (1 << (sqlParser.DISTINCT - 17)) | (1 << (sqlParser.WHERE - 17)) | (1 << (sqlParser.GROUP - 17)) | (1 << (sqlParser.BY - 17)) | (1 << (sqlParser.GROUPING - 17)) | (1 << (sqlParser.SETS - 17)) | (1 << (sqlParser.CUBE - 17)) | (1 << (sqlParser.ROLLUP - 17)) | (1 << (sqlParser.ORDER - 17)) | (1 << (sqlParser.HAVING - 17)) | (1 << (sqlParser.LIMIT - 17)) | (1 << (sqlParser.AT - 17)) | (1 << (sqlParser.OR - 17)) | (1 << (sqlParser.AND - 17)) | (1 << (sqlParser.IN - 17)) | (1 << (sqlParser.NOT - 17)) | (1 << (sqlParser.NO - 17)) | (1 << (sqlParser.EXISTS - 17)) | (1 << (sqlParser.BETWEEN - 17)) | (1 << (sqlParser.LIKE - 17)) | (1 << (sqlParser.RLIKE - 17)) | (1 << (sqlParser.IS - 17)) | (1 << (sqlParser.NULL - 17)) | (1 << (sqlParser.TRUE - 17)) | (1 << (sqlParser.FALSE - 17)) | (1 << (sqlParser.NULLS - 17)))) !== 0) || ((((_la - 49)) & ~0x1f) == 0 && ((1 << (_la - 49)) & ((1 << (sqlParser.ASC - 49)) | (1 << (sqlParser.DESC - 49)) | (1 << (sqlParser.FOR - 49)) | (1 << (sqlParser.INTERVAL - 49)) | (1 << (sqlParser.CASE - 49)) | (1 << (sqlParser.WHEN - 49)) | (1 << (sqlParser.THEN - 49)) | (1 << (sqlParser.ELSE - 49)) | (1 << (sqlParser.END - 49)) | (1 << (sqlParser.JOIN - 49)) | (1 << (sqlParser.CROSS - 49)) | (1 << (sqlParser.OUTER - 49)) | (1 << (sqlParser.INNER - 49)) | (1 << (sqlParser.LEFT - 49)) | (1 << (sqlParser.SEMI - 49)) | (1 << (sqlParser.RIGHT - 49)) | (1 << (sqlParser.FULL - 49)) | (1 << (sqlParser.NATURAL - 49)) | (1 << (sqlParser.ON - 49)) | (1 << (sqlParser.PIVOT - 49)) | (1 << (sqlParser.LATERAL - 49)) | (1 << (sqlParser.WINDOW - 49)) | (1 << (sqlParser.OVER - 49)) | (1 << (sqlParser.PARTITION - 49)) | (1 << (sqlParser.RANGE - 49)) | (1 << (sqlParser.ROWS - 49)) | (1 << (sqlParser.UNBOUNDED - 49)) | (1 << (sqlParser.PRECEDING - 49)) | (1 << (sqlParser.FOLLOWING - 49)) | (1 << (sqlParser.CURRENT - 49)) | (1 << (sqlParser.FIRST - 49)) | (1 << (sqlParser.AFTER - 49)))) !== 0) || ((((_la - 81)) & ~0x1f) == 0 && ((1 << (_la - 81)) & ((1 << (sqlParser.LAST - 81)) | (1 << (sqlParser.ROW - 81)) | (1 << (sqlParser.WITH - 81)) | (1 << (sqlParser.CREATE - 81)) | (1 << (sqlParser.TABLE - 81)) | (1 << (sqlParser.DIRECTORY - 81)) | (1 << (sqlParser.VIEW - 81)) | (1 << (sqlParser.REPLACE - 81)) | (1 << (sqlParser.INSERT - 81)) | (1 << (sqlParser.DELETE - 81)) | (1 << (sqlParser.INTO - 81)) | (1 << (sqlParser.DESCRIBE - 81)) | (1 << (sqlParser.EXPLAIN - 81)) | (1 << (sqlParser.FORMAT - 81)) | (1 << (sqlParser.LOGICAL - 81)) | (1 << (sqlParser.CODEGEN - 81)) | (1 << (sqlParser.COST - 81)) | (1 << (sqlParser.CAST - 81)) | (1 << (sqlParser.SHOW - 81)) | (1 << (sqlParser.TABLES - 81)) | (1 << (sqlParser.COLUMNS - 81)) | (1 << (sqlParser.COLUMN - 81)) | (1 << (sqlParser.USE - 81)) | (1 << (sqlParser.PARTITIONS - 81)) | (1 << (sqlParser.FUNCTIONS - 81)) | (1 << (sqlParser.DROP - 81)) | (1 << (sqlParser.UNION - 81)) | (1 << (sqlParser.EXCEPT - 81)) | (1 << (sqlParser.SETMINUS - 81)) | (1 << (sqlParser.INTERSECT - 81)) | (1 << (sqlParser.TO - 81)))) !== 0) || ((((_la - 113)) & ~0x1f) == 0 && ((1 << (_la - 113)) & ((1 << (sqlParser.TABLESAMPLE - 113)) | (1 << (sqlParser.STRATIFY - 113)) | (1 << (sqlParser.ALTER - 113)) | (1 << (sqlParser.RENAME - 113)) | (1 << (sqlParser.ARRAY - 113)) | (1 << (sqlParser.MAP - 113)) | (1 << (sqlParser.STRUCT - 113)) | (1 << (sqlParser.COMMENT - 113)) | (1 << (sqlParser.SET - 113)) | (1 << (sqlParser.RESET - 113)) | (1 << (sqlParser.DATA - 113)) | (1 << (sqlParser.START - 113)) | (1 << (sqlParser.TRANSACTION - 113)) | (1 << (sqlParser.COMMIT - 113)) | (1 << (sqlParser.ROLLBACK - 113)) | (1 << (sqlParser.MACRO - 113)) | (1 << (sqlParser.IGNORE - 113)) | (1 << (sqlParser.BOTH - 113)) | (1 << (sqlParser.LEADING - 113)) | (1 << (sqlParser.TRAILING - 113)) | (1 << (sqlParser.IF - 113)) | (1 << (sqlParser.POSITION - 113)) | (1 << (sqlParser.EXTRACT - 113)))) !== 0) || ((((_la - 149)) & ~0x1f) == 0 && ((1 << (_la - 149)) & ((1 << (sqlParser.DIV - 149)) | (1 << (sqlParser.PERCENTLIT - 149)) | (1 << (sqlParser.BUCKET - 149)) | (1 << (sqlParser.OUT - 149)) | (1 << (sqlParser.OF - 149)) | (1 << (sqlParser.SORT - 149)) | (1 << (sqlParser.CLUSTER - 149)) | (1 << (sqlParser.DISTRIBUTE - 149)) | (1 << (sqlParser.OVERWRITE - 149)) | (1 << (sqlParser.TRANSFORM - 149)) | (1 << (sqlParser.REDUCE - 149)) | (1 << (sqlParser.SERDE - 149)) | (1 << (sqlParser.SERDEPROPERTIES - 149)) | (1 << (sqlParser.RECORDREADER - 149)) | (1 << (sqlParser.RECORDWRITER - 149)) | (1 << (sqlParser.DELIMITED - 149)) | (1 << (sqlParser.FIELDS - 149)) | (1 << (sqlParser.TERMINATED - 149)) | (1 << (sqlParser.COLLECTION - 149)) | (1 << (sqlParser.ITEMS - 149)) | (1 << (sqlParser.KEYS - 149)) | (1 << (sqlParser.ESCAPED - 149)) | (1 << (sqlParser.LINES - 149)) | (1 << (sqlParser.SEPARATED - 149)) | (1 << (sqlParser.FUNCTION - 149)) | (1 << (sqlParser.EXTENDED - 149)))) !== 0) || ((((_la - 181)) & ~0x1f) == 0 && ((1 << (_la - 181)) & ((1 << (sqlParser.REFRESH - 181)) | (1 << (sqlParser.CLEAR - 181)) | (1 << (sqlParser.CACHE - 181)) | (1 << (sqlParser.UNCACHE - 181)) | (1 << (sqlParser.LAZY - 181)) | (1 << (sqlParser.FORMATTED - 181)) | (1 << (sqlParser.GLOBAL - 181)) | (1 << (sqlParser.TEMPORARY - 181)) | (1 << (sqlParser.OPTIONS - 181)) | (1 << (sqlParser.UNSET - 181)) | (1 << (sqlParser.TBLPROPERTIES - 181)) | (1 << (sqlParser.DBPROPERTIES - 181)) | (1 << (sqlParser.BUCKETS - 181)) | (1 << (sqlParser.SKEWED - 181)) | (1 << (sqlParser.STORED - 181)) | (1 << (sqlParser.DIRECTORIES - 181)) | (1 << (sqlParser.LOCATION - 181)) | (1 << (sqlParser.EXCHANGE - 181)) | (1 << (sqlParser.ARCHIVE - 181)) | (1 << (sqlParser.UNARCHIVE - 181)) | (1 << (sqlParser.FILEFORMAT - 181)) | (1 << (sqlParser.TOUCH - 181)) | (1 << (sqlParser.COMPACT - 181)) | (1 << (sqlParser.CONCATENATE - 181)) | (1 << (sqlParser.CHANGE - 181)) | (1 << (sqlParser.CASCADE - 181)) | (1 << (sqlParser.RESTRICT - 181)) | (1 << (sqlParser.CLUSTERED - 181)) | (1 << (sqlParser.SORTED - 181)) | (1 << (sqlParser.PURGE - 181)) | (1 << (sqlParser.INPUTFORMAT - 181)) | (1 << (sqlParser.OUTPUTFORMAT - 181)))) !== 0) || ((((_la - 213)) & ~0x1f) == 0 && ((1 << (_la - 213)) & ((1 << (sqlParser.DATABASE - 213)) | (1 << (sqlParser.DATABASES - 213)) | (1 << (sqlParser.DFS - 213)) | (1 << (sqlParser.TRUNCATE - 213)) | (1 << (sqlParser.ANALYZE - 213)) | (1 << (sqlParser.COMPUTE - 213)) | (1 << (sqlParser.LIST - 213)) | (1 << (sqlParser.STATISTICS - 213)) | (1 << (sqlParser.PARTITIONED - 213)) | (1 << (sqlParser.EXTERNAL - 213)) | (1 << (sqlParser.DEFINED - 213)) | (1 << (sqlParser.REVOKE - 213)) | (1 << (sqlParser.GRANT - 213)) | (1 << (sqlParser.LOCK - 213)) | (1 << (sqlParser.UNLOCK - 213)) | (1 << (sqlParser.MSCK - 213)) | (1 << (sqlParser.REPAIR - 213)) | (1 << (sqlParser.RECOVER - 213)) | (1 << (sqlParser.EXPORT - 213)) | (1 << (sqlParser.IMPORT - 213)) | (1 << (sqlParser.LOAD - 213)) | (1 << (sqlParser.ROLE - 213)) | (1 << (sqlParser.ROLES - 213)) | (1 << (sqlParser.COMPACTIONS - 213)) | (1 << (sqlParser.PRINCIPALS - 213)) | (1 << (sqlParser.TRANSACTIONS - 213)) | (1 << (sqlParser.INDEX - 213)) | (1 << (sqlParser.INDEXES - 213)) | (1 << (sqlParser.LOCKS - 213)) | (1 << (sqlParser.OPTION - 213)) | (1 << (sqlParser.ANTI - 213)) | (1 << (sqlParser.LOCAL - 213)))) !== 0) || ((((_la - 245)) & ~0x1f) == 0 && ((1 << (_la - 245)) & ((1 << (sqlParser.INPATH - 245)) | (1 << (sqlParser.IDENTIFIER - 245)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 245)))) !== 0)) {
 | |
|             this.state = 1661;
 | |
|             this._errHandler.sync(this);
 | |
|             var la_ = this._interp.adaptivePredict(this._input, 209, this._ctx);
 | |
|             if (la_ === 1) {
 | |
|                 this.state = 1660;
 | |
|                 this.match(sqlParser.AS);
 | |
|             }
 | |
|             this.state = 1663;
 | |
|             this.identifier();
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function LateralViewContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_lateralView;
 | |
|     this.tblName = null; // IdentifierContext
 | |
|     this._identifier = null; // IdentifierContext
 | |
|     this.colName = []; // of IdentifierContexts
 | |
|     return this;
 | |
| }
 | |
| LateralViewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| LateralViewContext.prototype.constructor = LateralViewContext;
 | |
| LateralViewContext.prototype.LATERAL = function () {
 | |
|     return this.getToken(sqlParser.LATERAL, 0);
 | |
| };
 | |
| LateralViewContext.prototype.VIEW = function () {
 | |
|     return this.getToken(sqlParser.VIEW, 0);
 | |
| };
 | |
| LateralViewContext.prototype.qualifiedName = function () {
 | |
|     return this.getTypedRuleContext(QualifiedNameContext, 0);
 | |
| };
 | |
| LateralViewContext.prototype.identifier = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(IdentifierContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(IdentifierContext, i);
 | |
|     }
 | |
| };
 | |
| LateralViewContext.prototype.OUTER = function () {
 | |
|     return this.getToken(sqlParser.OUTER, 0);
 | |
| };
 | |
| LateralViewContext.prototype.expression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| LateralViewContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| LateralViewContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterLateralView(this);
 | |
|     }
 | |
| };
 | |
| LateralViewContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitLateralView(this);
 | |
|     }
 | |
| };
 | |
| LateralViewContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitLateralView(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.LateralViewContext = LateralViewContext;
 | |
| sqlParser.prototype.lateralView = function () {
 | |
|     var localctx = new LateralViewContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 94, sqlParser.RULE_lateralView);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1666;
 | |
|         this.match(sqlParser.LATERAL);
 | |
|         this.state = 1667;
 | |
|         this.match(sqlParser.VIEW);
 | |
|         this.state = 1669;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 211, this._ctx);
 | |
|         if (la_ === 1) {
 | |
|             this.state = 1668;
 | |
|             this.match(sqlParser.OUTER);
 | |
|         }
 | |
|         this.state = 1671;
 | |
|         this.qualifiedName();
 | |
|         this.state = 1672;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 1681;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.RIGHT - 64)) | (1 << (sqlParser.FULL - 64)) | (1 << (sqlParser.NATURAL - 64)) | (1 << (sqlParser.ON - 64)) | (1 << (sqlParser.PIVOT - 64)) | (1 << (sqlParser.LATERAL - 64)) | (1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)) | (1 << (sqlParser.CAST - 96)) | (1 << (sqlParser.SHOW - 96)) | (1 << (sqlParser.TABLES - 96)) | (1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.MACRO - 128)) | (1 << (sqlParser.IGNORE - 128)) | (1 << (sqlParser.BOTH - 128)) | (1 << (sqlParser.LEADING - 128)) | (1 << (sqlParser.TRAILING - 128)) | (1 << (sqlParser.IF - 128)) | (1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (1 << (sqlParser.ASTERISK - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.TILDE - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)) | (1 << (sqlParser.OF - 128)) | (1 << (sqlParser.SORT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.CLUSTER - 160)) | (1 << (sqlParser.DISTRIBUTE - 160)) | (1 << (sqlParser.OVERWRITE - 160)) | (1 << (sqlParser.TRANSFORM - 160)) | (1 << (sqlParser.REDUCE - 160)) | (1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIES - 160)) | (1 << (sqlParser.RECORDREADER - 160)) | (1 << (sqlParser.RECORDWRITER - 160)) | (1 << (sqlParser.DELIMITED - 160)) | (1 << (sqlParser.FIELDS - 160)) | (1 << (sqlParser.TERMINATED - 160)) | (1 << (sqlParser.COLLECTION - 160)) | (1 << (sqlParser.ITEMS - 160)) | (1 << (sqlParser.KEYS - 160)) | (1 << (sqlParser.ESCAPED - 160)) | (1 << (sqlParser.LINES - 160)) | (1 << (sqlParser.SEPARATED - 160)) | (1 << (sqlParser.FUNCTION - 160)) | (1 << (sqlParser.EXTENDED - 160)) | (1 << (sqlParser.REFRESH - 160)) | (1 << (sqlParser.CLEAR - 160)) | (1 << (sqlParser.CACHE - 160)) | (1 << (sqlParser.UNCACHE - 160)) | (1 << (sqlParser.LAZY - 160)) | (1 << (sqlParser.FORMATTED - 160)) | (1 << (sqlParser.GLOBAL - 160)) | (1 << (sqlParser.TEMPORARY - 160)) | (1 << (sqlParser.OPTIONS - 160)) | (1 << (sqlParser.UNSET - 160)) | (1 << (sqlParser.TBLPROPERTIES - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (sqlParser.DBPROPERTIES - 192)) | (1 << (sqlParser.BUCKETS - 192)) | (1 << (sqlParser.SKEWED - 192)) | (1 << (sqlParser.STORED - 192)) | (1 << (sqlParser.DIRECTORIES - 192)) | (1 << (sqlParser.LOCATION - 192)) | (1 << (sqlParser.EXCHANGE - 192)) | (1 << (sqlParser.ARCHIVE - 192)) | (1 << (sqlParser.UNARCHIVE - 192)) | (1 << (sqlParser.FILEFORMAT - 192)) | (1 << (sqlParser.TOUCH - 192)) | (1 << (sqlParser.COMPACT - 192)) | (1 << (sqlParser.CONCATENATE - 192)) | (1 << (sqlParser.CHANGE - 192)) | (1 << (sqlParser.CASCADE - 192)) | (1 << (sqlParser.RESTRICT - 192)) | (1 << (sqlParser.CLUSTERED - 192)) | (1 << (sqlParser.SORTED - 192)) | (1 << (sqlParser.PURGE - 192)) | (1 << (sqlParser.INPUTFORMAT - 192)) | (1 << (sqlParser.OUTPUTFORMAT - 192)) | (1 << (sqlParser.DATABASE - 192)) | (1 << (sqlParser.DATABASES - 192)) | (1 << (sqlParser.DFS - 192)) | (1 << (sqlParser.TRUNCATE - 192)) | (1 << (sqlParser.ANALYZE - 192)) | (1 << (sqlParser.COMPUTE - 192)) | (1 << (sqlParser.LIST - 192)) | (1 << (sqlParser.STATISTICS - 192)) | (1 << (sqlParser.PARTITIONED - 192)) | (1 << (sqlParser.EXTERNAL - 192)) | (1 << (sqlParser.DEFINED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (sqlParser.REVOKE - 224)) | (1 << (sqlParser.GRANT - 224)) | (1 << (sqlParser.LOCK - 224)) | (1 << (sqlParser.UNLOCK - 224)) | (1 << (sqlParser.MSCK - 224)) | (1 << (sqlParser.REPAIR - 224)) | (1 << (sqlParser.RECOVER - 224)) | (1 << (sqlParser.EXPORT - 224)) | (1 << (sqlParser.IMPORT - 224)) | (1 << (sqlParser.LOAD - 224)) | (1 << (sqlParser.ROLE - 224)) | (1 << (sqlParser.ROLES - 224)) | (1 << (sqlParser.COMPACTIONS - 224)) | (1 << (sqlParser.PRINCIPALS - 224)) | (1 << (sqlParser.TRANSACTIONS - 224)) | (1 << (sqlParser.INDEX - 224)) | (1 << (sqlParser.INDEXES - 224)) | (1 << (sqlParser.LOCKS - 224)) | (1 << (sqlParser.OPTION - 224)) | (1 << (sqlParser.ANTI - 224)) | (1 << (sqlParser.LOCAL - 224)) | (1 << (sqlParser.INPATH - 224)))) !== 0) || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (sqlParser.STRING - 259)) | (1 << (sqlParser.BIGINT_LITERAL - 259)) | (1 << (sqlParser.SMALLINT_LITERAL - 259)) | (1 << (sqlParser.TINYINT_LITERAL - 259)) | (1 << (sqlParser.INTEGER_VALUE - 259)) | (1 << (sqlParser.DECIMAL_VALUE - 259)) | (1 << (sqlParser.DOUBLE_LITERAL - 259)) | (1 << (sqlParser.BIGDECIMAL_LITERAL - 259)) | (1 << (sqlParser.IDENTIFIER - 259)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 259)))) !== 0)) {
 | |
|             this.state = 1673;
 | |
|             this.expression();
 | |
|             this.state = 1678;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|             while (_la === sqlParser.T__3) {
 | |
|                 this.state = 1674;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 1675;
 | |
|                 this.expression();
 | |
|                 this.state = 1680;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|             }
 | |
|         }
 | |
|         this.state = 1683;
 | |
|         this.match(sqlParser.T__1);
 | |
|         this.state = 1684;
 | |
|         localctx.tblName = this.identifier();
 | |
|         this.state = 1696;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 216, this._ctx);
 | |
|         if (la_ === 1) {
 | |
|             this.state = 1686;
 | |
|             this._errHandler.sync(this);
 | |
|             var la_ = this._interp.adaptivePredict(this._input, 214, this._ctx);
 | |
|             if (la_ === 1) {
 | |
|                 this.state = 1685;
 | |
|                 this.match(sqlParser.AS);
 | |
|             }
 | |
|             this.state = 1688;
 | |
|             localctx._identifier = this.identifier();
 | |
|             localctx.colName.push(localctx._identifier);
 | |
|             this.state = 1693;
 | |
|             this._errHandler.sync(this);
 | |
|             var _alt = this._interp.adaptivePredict(this._input, 215, this._ctx);
 | |
|             while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|                 if (_alt === 1) {
 | |
|                     this.state = 1689;
 | |
|                     this.match(sqlParser.T__3);
 | |
|                     this.state = 1690;
 | |
|                     localctx._identifier = this.identifier();
 | |
|                     localctx.colName.push(localctx._identifier);
 | |
|                 }
 | |
|                 this.state = 1695;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _alt = this._interp.adaptivePredict(this._input, 215, 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 SetQuantifierContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_setQuantifier;
 | |
|     return this;
 | |
| }
 | |
| SetQuantifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| SetQuantifierContext.prototype.constructor = SetQuantifierContext;
 | |
| SetQuantifierContext.prototype.DISTINCT = function () {
 | |
|     return this.getToken(sqlParser.DISTINCT, 0);
 | |
| };
 | |
| SetQuantifierContext.prototype.ALL = function () {
 | |
|     return this.getToken(sqlParser.ALL, 0);
 | |
| };
 | |
| SetQuantifierContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSetQuantifier(this);
 | |
|     }
 | |
| };
 | |
| SetQuantifierContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSetQuantifier(this);
 | |
|     }
 | |
| };
 | |
| SetQuantifierContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSetQuantifier(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.SetQuantifierContext = SetQuantifierContext;
 | |
| sqlParser.prototype.setQuantifier = function () {
 | |
|     var localctx = new SetQuantifierContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 96, sqlParser.RULE_setQuantifier);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1698;
 | |
|         _la = this._input.LA(1);
 | |
|         if (!(_la === sqlParser.ALL || _la === sqlParser.DISTINCT)) {
 | |
|             this._errHandler.recoverInline(this);
 | |
|         }
 | |
|         else {
 | |
|             this._errHandler.reportMatch(this);
 | |
|             this.consume();
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function RelationContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_relation;
 | |
|     return this;
 | |
| }
 | |
| RelationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| RelationContext.prototype.constructor = RelationContext;
 | |
| RelationContext.prototype.relationPrimary = function () {
 | |
|     return this.getTypedRuleContext(RelationPrimaryContext, 0);
 | |
| };
 | |
| RelationContext.prototype.joinRelation = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(JoinRelationContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(JoinRelationContext, i);
 | |
|     }
 | |
| };
 | |
| RelationContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterRelation(this);
 | |
|     }
 | |
| };
 | |
| RelationContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitRelation(this);
 | |
|     }
 | |
| };
 | |
| RelationContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitRelation(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.RelationContext = RelationContext;
 | |
| sqlParser.prototype.relation = function () {
 | |
|     var localctx = new RelationContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 98, sqlParser.RULE_relation);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1700;
 | |
|         this.relationPrimary();
 | |
|         this.state = 1704;
 | |
|         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 = 1701;
 | |
|                 this.joinRelation();
 | |
|             }
 | |
|             this.state = 1706;
 | |
|             this._errHandler.sync(this);
 | |
|             _alt = this._interp.adaptivePredict(this._input, 217, 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 JoinRelationContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_joinRelation;
 | |
|     this.right = null; // RelationPrimaryContext
 | |
|     return this;
 | |
| }
 | |
| JoinRelationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| JoinRelationContext.prototype.constructor = JoinRelationContext;
 | |
| JoinRelationContext.prototype.JOIN = function () {
 | |
|     return this.getToken(sqlParser.JOIN, 0);
 | |
| };
 | |
| JoinRelationContext.prototype.relationPrimary = function () {
 | |
|     return this.getTypedRuleContext(RelationPrimaryContext, 0);
 | |
| };
 | |
| JoinRelationContext.prototype.joinType = function () {
 | |
|     return this.getTypedRuleContext(JoinTypeContext, 0);
 | |
| };
 | |
| JoinRelationContext.prototype.joinCriteria = function () {
 | |
|     return this.getTypedRuleContext(JoinCriteriaContext, 0);
 | |
| };
 | |
| JoinRelationContext.prototype.NATURAL = function () {
 | |
|     return this.getToken(sqlParser.NATURAL, 0);
 | |
| };
 | |
| JoinRelationContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterJoinRelation(this);
 | |
|     }
 | |
| };
 | |
| JoinRelationContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitJoinRelation(this);
 | |
|     }
 | |
| };
 | |
| JoinRelationContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitJoinRelation(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.JoinRelationContext = JoinRelationContext;
 | |
| sqlParser.prototype.joinRelation = function () {
 | |
|     var localctx = new JoinRelationContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 100, sqlParser.RULE_joinRelation);
 | |
|     try {
 | |
|         this.state = 1718;
 | |
|         this._errHandler.sync(this);
 | |
|         switch (this._input.LA(1)) {
 | |
|             case sqlParser.JOIN:
 | |
|             case sqlParser.CROSS:
 | |
|             case sqlParser.INNER:
 | |
|             case sqlParser.LEFT:
 | |
|             case sqlParser.RIGHT:
 | |
|             case sqlParser.FULL:
 | |
|             case sqlParser.ANTI:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1707;
 | |
|                 this.joinType();
 | |
|                 this.state = 1708;
 | |
|                 this.match(sqlParser.JOIN);
 | |
|                 this.state = 1709;
 | |
|                 localctx.right = this.relationPrimary();
 | |
|                 this.state = 1711;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 218, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1710;
 | |
|                     this.joinCriteria();
 | |
|                 }
 | |
|                 break;
 | |
|             case sqlParser.NATURAL:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1713;
 | |
|                 this.match(sqlParser.NATURAL);
 | |
|                 this.state = 1714;
 | |
|                 this.joinType();
 | |
|                 this.state = 1715;
 | |
|                 this.match(sqlParser.JOIN);
 | |
|                 this.state = 1716;
 | |
|                 localctx.right = this.relationPrimary();
 | |
|                 break;
 | |
|             default:
 | |
|                 throw new antlr4.error.NoViableAltException(this);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function JoinTypeContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_joinType;
 | |
|     return this;
 | |
| }
 | |
| JoinTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| JoinTypeContext.prototype.constructor = JoinTypeContext;
 | |
| JoinTypeContext.prototype.INNER = function () {
 | |
|     return this.getToken(sqlParser.INNER, 0);
 | |
| };
 | |
| JoinTypeContext.prototype.CROSS = function () {
 | |
|     return this.getToken(sqlParser.CROSS, 0);
 | |
| };
 | |
| JoinTypeContext.prototype.LEFT = function () {
 | |
|     return this.getToken(sqlParser.LEFT, 0);
 | |
| };
 | |
| JoinTypeContext.prototype.OUTER = function () {
 | |
|     return this.getToken(sqlParser.OUTER, 0);
 | |
| };
 | |
| JoinTypeContext.prototype.SEMI = function () {
 | |
|     return this.getToken(sqlParser.SEMI, 0);
 | |
| };
 | |
| JoinTypeContext.prototype.RIGHT = function () {
 | |
|     return this.getToken(sqlParser.RIGHT, 0);
 | |
| };
 | |
| JoinTypeContext.prototype.FULL = function () {
 | |
|     return this.getToken(sqlParser.FULL, 0);
 | |
| };
 | |
| JoinTypeContext.prototype.ANTI = function () {
 | |
|     return this.getToken(sqlParser.ANTI, 0);
 | |
| };
 | |
| JoinTypeContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterJoinType(this);
 | |
|     }
 | |
| };
 | |
| JoinTypeContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitJoinType(this);
 | |
|     }
 | |
| };
 | |
| JoinTypeContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitJoinType(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.JoinTypeContext = JoinTypeContext;
 | |
| sqlParser.prototype.joinType = function () {
 | |
|     var localctx = new JoinTypeContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 102, sqlParser.RULE_joinType);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 1742;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 225, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1721;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.INNER) {
 | |
|                     this.state = 1720;
 | |
|                     this.match(sqlParser.INNER);
 | |
|                 }
 | |
|                 break;
 | |
|             case 2:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1723;
 | |
|                 this.match(sqlParser.CROSS);
 | |
|                 break;
 | |
|             case 3:
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 1724;
 | |
|                 this.match(sqlParser.LEFT);
 | |
|                 this.state = 1726;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.OUTER) {
 | |
|                     this.state = 1725;
 | |
|                     this.match(sqlParser.OUTER);
 | |
|                 }
 | |
|                 break;
 | |
|             case 4:
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 1728;
 | |
|                 this.match(sqlParser.LEFT);
 | |
|                 this.state = 1729;
 | |
|                 this.match(sqlParser.SEMI);
 | |
|                 break;
 | |
|             case 5:
 | |
|                 this.enterOuterAlt(localctx, 5);
 | |
|                 this.state = 1730;
 | |
|                 this.match(sqlParser.RIGHT);
 | |
|                 this.state = 1732;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.OUTER) {
 | |
|                     this.state = 1731;
 | |
|                     this.match(sqlParser.OUTER);
 | |
|                 }
 | |
|                 break;
 | |
|             case 6:
 | |
|                 this.enterOuterAlt(localctx, 6);
 | |
|                 this.state = 1734;
 | |
|                 this.match(sqlParser.FULL);
 | |
|                 this.state = 1736;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.OUTER) {
 | |
|                     this.state = 1735;
 | |
|                     this.match(sqlParser.OUTER);
 | |
|                 }
 | |
|                 break;
 | |
|             case 7:
 | |
|                 this.enterOuterAlt(localctx, 7);
 | |
|                 this.state = 1739;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.LEFT) {
 | |
|                     this.state = 1738;
 | |
|                     this.match(sqlParser.LEFT);
 | |
|                 }
 | |
|                 this.state = 1741;
 | |
|                 this.match(sqlParser.ANTI);
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function JoinCriteriaContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_joinCriteria;
 | |
|     return this;
 | |
| }
 | |
| JoinCriteriaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| JoinCriteriaContext.prototype.constructor = JoinCriteriaContext;
 | |
| JoinCriteriaContext.prototype.ON = function () {
 | |
|     return this.getToken(sqlParser.ON, 0);
 | |
| };
 | |
| JoinCriteriaContext.prototype.booleanExpression = function () {
 | |
|     return this.getTypedRuleContext(BooleanExpressionContext, 0);
 | |
| };
 | |
| JoinCriteriaContext.prototype.USING = function () {
 | |
|     return this.getToken(sqlParser.USING, 0);
 | |
| };
 | |
| JoinCriteriaContext.prototype.identifierList = function () {
 | |
|     return this.getTypedRuleContext(IdentifierListContext, 0);
 | |
| };
 | |
| JoinCriteriaContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterJoinCriteria(this);
 | |
|     }
 | |
| };
 | |
| JoinCriteriaContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitJoinCriteria(this);
 | |
|     }
 | |
| };
 | |
| JoinCriteriaContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitJoinCriteria(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.JoinCriteriaContext = JoinCriteriaContext;
 | |
| sqlParser.prototype.joinCriteria = function () {
 | |
|     var localctx = new JoinCriteriaContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 104, sqlParser.RULE_joinCriteria);
 | |
|     try {
 | |
|         this.state = 1748;
 | |
|         this._errHandler.sync(this);
 | |
|         switch (this._input.LA(1)) {
 | |
|             case sqlParser.ON:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1744;
 | |
|                 this.match(sqlParser.ON);
 | |
|                 this.state = 1745;
 | |
|                 this.booleanExpression(0);
 | |
|                 break;
 | |
|             case sqlParser.USING:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1746;
 | |
|                 this.match(sqlParser.USING);
 | |
|                 this.state = 1747;
 | |
|                 this.identifierList();
 | |
|                 break;
 | |
|             default:
 | |
|                 throw new antlr4.error.NoViableAltException(this);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function SampleContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_sample;
 | |
|     return this;
 | |
| }
 | |
| SampleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| SampleContext.prototype.constructor = SampleContext;
 | |
| SampleContext.prototype.TABLESAMPLE = function () {
 | |
|     return this.getToken(sqlParser.TABLESAMPLE, 0);
 | |
| };
 | |
| SampleContext.prototype.sampleMethod = function () {
 | |
|     return this.getTypedRuleContext(SampleMethodContext, 0);
 | |
| };
 | |
| SampleContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSample(this);
 | |
|     }
 | |
| };
 | |
| SampleContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSample(this);
 | |
|     }
 | |
| };
 | |
| SampleContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSample(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.SampleContext = SampleContext;
 | |
| sqlParser.prototype.sample = function () {
 | |
|     var localctx = new SampleContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 106, sqlParser.RULE_sample);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1750;
 | |
|         this.match(sqlParser.TABLESAMPLE);
 | |
|         this.state = 1751;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 1753;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.RIGHT - 64)) | (1 << (sqlParser.FULL - 64)) | (1 << (sqlParser.NATURAL - 64)) | (1 << (sqlParser.ON - 64)) | (1 << (sqlParser.PIVOT - 64)) | (1 << (sqlParser.LATERAL - 64)) | (1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)) | (1 << (sqlParser.CAST - 96)) | (1 << (sqlParser.SHOW - 96)) | (1 << (sqlParser.TABLES - 96)) | (1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.MACRO - 128)) | (1 << (sqlParser.IGNORE - 128)) | (1 << (sqlParser.BOTH - 128)) | (1 << (sqlParser.LEADING - 128)) | (1 << (sqlParser.TRAILING - 128)) | (1 << (sqlParser.IF - 128)) | (1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (1 << (sqlParser.ASTERISK - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.TILDE - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)) | (1 << (sqlParser.OF - 128)) | (1 << (sqlParser.SORT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.CLUSTER - 160)) | (1 << (sqlParser.DISTRIBUTE - 160)) | (1 << (sqlParser.OVERWRITE - 160)) | (1 << (sqlParser.TRANSFORM - 160)) | (1 << (sqlParser.REDUCE - 160)) | (1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIES - 160)) | (1 << (sqlParser.RECORDREADER - 160)) | (1 << (sqlParser.RECORDWRITER - 160)) | (1 << (sqlParser.DELIMITED - 160)) | (1 << (sqlParser.FIELDS - 160)) | (1 << (sqlParser.TERMINATED - 160)) | (1 << (sqlParser.COLLECTION - 160)) | (1 << (sqlParser.ITEMS - 160)) | (1 << (sqlParser.KEYS - 160)) | (1 << (sqlParser.ESCAPED - 160)) | (1 << (sqlParser.LINES - 160)) | (1 << (sqlParser.SEPARATED - 160)) | (1 << (sqlParser.FUNCTION - 160)) | (1 << (sqlParser.EXTENDED - 160)) | (1 << (sqlParser.REFRESH - 160)) | (1 << (sqlParser.CLEAR - 160)) | (1 << (sqlParser.CACHE - 160)) | (1 << (sqlParser.UNCACHE - 160)) | (1 << (sqlParser.LAZY - 160)) | (1 << (sqlParser.FORMATTED - 160)) | (1 << (sqlParser.GLOBAL - 160)) | (1 << (sqlParser.TEMPORARY - 160)) | (1 << (sqlParser.OPTIONS - 160)) | (1 << (sqlParser.UNSET - 160)) | (1 << (sqlParser.TBLPROPERTIES - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (sqlParser.DBPROPERTIES - 192)) | (1 << (sqlParser.BUCKETS - 192)) | (1 << (sqlParser.SKEWED - 192)) | (1 << (sqlParser.STORED - 192)) | (1 << (sqlParser.DIRECTORIES - 192)) | (1 << (sqlParser.LOCATION - 192)) | (1 << (sqlParser.EXCHANGE - 192)) | (1 << (sqlParser.ARCHIVE - 192)) | (1 << (sqlParser.UNARCHIVE - 192)) | (1 << (sqlParser.FILEFORMAT - 192)) | (1 << (sqlParser.TOUCH - 192)) | (1 << (sqlParser.COMPACT - 192)) | (1 << (sqlParser.CONCATENATE - 192)) | (1 << (sqlParser.CHANGE - 192)) | (1 << (sqlParser.CASCADE - 192)) | (1 << (sqlParser.RESTRICT - 192)) | (1 << (sqlParser.CLUSTERED - 192)) | (1 << (sqlParser.SORTED - 192)) | (1 << (sqlParser.PURGE - 192)) | (1 << (sqlParser.INPUTFORMAT - 192)) | (1 << (sqlParser.OUTPUTFORMAT - 192)) | (1 << (sqlParser.DATABASE - 192)) | (1 << (sqlParser.DATABASES - 192)) | (1 << (sqlParser.DFS - 192)) | (1 << (sqlParser.TRUNCATE - 192)) | (1 << (sqlParser.ANALYZE - 192)) | (1 << (sqlParser.COMPUTE - 192)) | (1 << (sqlParser.LIST - 192)) | (1 << (sqlParser.STATISTICS - 192)) | (1 << (sqlParser.PARTITIONED - 192)) | (1 << (sqlParser.EXTERNAL - 192)) | (1 << (sqlParser.DEFINED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (sqlParser.REVOKE - 224)) | (1 << (sqlParser.GRANT - 224)) | (1 << (sqlParser.LOCK - 224)) | (1 << (sqlParser.UNLOCK - 224)) | (1 << (sqlParser.MSCK - 224)) | (1 << (sqlParser.REPAIR - 224)) | (1 << (sqlParser.RECOVER - 224)) | (1 << (sqlParser.EXPORT - 224)) | (1 << (sqlParser.IMPORT - 224)) | (1 << (sqlParser.LOAD - 224)) | (1 << (sqlParser.ROLE - 224)) | (1 << (sqlParser.ROLES - 224)) | (1 << (sqlParser.COMPACTIONS - 224)) | (1 << (sqlParser.PRINCIPALS - 224)) | (1 << (sqlParser.TRANSACTIONS - 224)) | (1 << (sqlParser.INDEX - 224)) | (1 << (sqlParser.INDEXES - 224)) | (1 << (sqlParser.LOCKS - 224)) | (1 << (sqlParser.OPTION - 224)) | (1 << (sqlParser.ANTI - 224)) | (1 << (sqlParser.LOCAL - 224)) | (1 << (sqlParser.INPATH - 224)))) !== 0) || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (sqlParser.STRING - 259)) | (1 << (sqlParser.BIGINT_LITERAL - 259)) | (1 << (sqlParser.SMALLINT_LITERAL - 259)) | (1 << (sqlParser.TINYINT_LITERAL - 259)) | (1 << (sqlParser.INTEGER_VALUE - 259)) | (1 << (sqlParser.DECIMAL_VALUE - 259)) | (1 << (sqlParser.DOUBLE_LITERAL - 259)) | (1 << (sqlParser.BIGDECIMAL_LITERAL - 259)) | (1 << (sqlParser.IDENTIFIER - 259)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 259)))) !== 0)) {
 | |
|             this.state = 1752;
 | |
|             this.sampleMethod();
 | |
|         }
 | |
|         this.state = 1755;
 | |
|         this.match(sqlParser.T__1);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function SampleMethodContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_sampleMethod;
 | |
|     return this;
 | |
| }
 | |
| SampleMethodContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| SampleMethodContext.prototype.constructor = SampleMethodContext;
 | |
| SampleMethodContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function SampleByRowsContext(parser, ctx) {
 | |
|     SampleMethodContext.call(this, parser);
 | |
|     SampleMethodContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SampleByRowsContext.prototype = Object.create(SampleMethodContext.prototype);
 | |
| SampleByRowsContext.prototype.constructor = SampleByRowsContext;
 | |
| sqlParser.SampleByRowsContext = SampleByRowsContext;
 | |
| SampleByRowsContext.prototype.expression = function () {
 | |
|     return this.getTypedRuleContext(ExpressionContext, 0);
 | |
| };
 | |
| SampleByRowsContext.prototype.ROWS = function () {
 | |
|     return this.getToken(sqlParser.ROWS, 0);
 | |
| };
 | |
| SampleByRowsContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSampleByRows(this);
 | |
|     }
 | |
| };
 | |
| SampleByRowsContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSampleByRows(this);
 | |
|     }
 | |
| };
 | |
| SampleByRowsContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSampleByRows(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function SampleByPercentileContext(parser, ctx) {
 | |
|     SampleMethodContext.call(this, parser);
 | |
|     this.negativeSign = null; // Token;
 | |
|     this.percentage = null; // Token;
 | |
|     SampleMethodContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SampleByPercentileContext.prototype = Object.create(SampleMethodContext.prototype);
 | |
| SampleByPercentileContext.prototype.constructor = SampleByPercentileContext;
 | |
| sqlParser.SampleByPercentileContext = SampleByPercentileContext;
 | |
| SampleByPercentileContext.prototype.PERCENTLIT = function () {
 | |
|     return this.getToken(sqlParser.PERCENTLIT, 0);
 | |
| };
 | |
| SampleByPercentileContext.prototype.INTEGER_VALUE = function () {
 | |
|     return this.getToken(sqlParser.INTEGER_VALUE, 0);
 | |
| };
 | |
| SampleByPercentileContext.prototype.DECIMAL_VALUE = function () {
 | |
|     return this.getToken(sqlParser.DECIMAL_VALUE, 0);
 | |
| };
 | |
| SampleByPercentileContext.prototype.MINUS = function () {
 | |
|     return this.getToken(sqlParser.MINUS, 0);
 | |
| };
 | |
| SampleByPercentileContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSampleByPercentile(this);
 | |
|     }
 | |
| };
 | |
| SampleByPercentileContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSampleByPercentile(this);
 | |
|     }
 | |
| };
 | |
| SampleByPercentileContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSampleByPercentile(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function SampleByBucketContext(parser, ctx) {
 | |
|     SampleMethodContext.call(this, parser);
 | |
|     this.sampleType = null; // Token;
 | |
|     this.numerator = null; // Token;
 | |
|     this.denominator = null; // Token;
 | |
|     SampleMethodContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SampleByBucketContext.prototype = Object.create(SampleMethodContext.prototype);
 | |
| SampleByBucketContext.prototype.constructor = SampleByBucketContext;
 | |
| sqlParser.SampleByBucketContext = SampleByBucketContext;
 | |
| SampleByBucketContext.prototype.OUT = function () {
 | |
|     return this.getToken(sqlParser.OUT, 0);
 | |
| };
 | |
| SampleByBucketContext.prototype.OF = function () {
 | |
|     return this.getToken(sqlParser.OF, 0);
 | |
| };
 | |
| SampleByBucketContext.prototype.BUCKET = function () {
 | |
|     return this.getToken(sqlParser.BUCKET, 0);
 | |
| };
 | |
| SampleByBucketContext.prototype.INTEGER_VALUE = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.INTEGER_VALUE);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.INTEGER_VALUE, i);
 | |
|     }
 | |
| };
 | |
| SampleByBucketContext.prototype.ON = function () {
 | |
|     return this.getToken(sqlParser.ON, 0);
 | |
| };
 | |
| SampleByBucketContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| SampleByBucketContext.prototype.qualifiedName = function () {
 | |
|     return this.getTypedRuleContext(QualifiedNameContext, 0);
 | |
| };
 | |
| SampleByBucketContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSampleByBucket(this);
 | |
|     }
 | |
| };
 | |
| SampleByBucketContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSampleByBucket(this);
 | |
|     }
 | |
| };
 | |
| SampleByBucketContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSampleByBucket(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function SampleByBytesContext(parser, ctx) {
 | |
|     SampleMethodContext.call(this, parser);
 | |
|     this.bytes = null; // ExpressionContext;
 | |
|     SampleMethodContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SampleByBytesContext.prototype = Object.create(SampleMethodContext.prototype);
 | |
| SampleByBytesContext.prototype.constructor = SampleByBytesContext;
 | |
| sqlParser.SampleByBytesContext = SampleByBytesContext;
 | |
| SampleByBytesContext.prototype.expression = function () {
 | |
|     return this.getTypedRuleContext(ExpressionContext, 0);
 | |
| };
 | |
| SampleByBytesContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSampleByBytes(this);
 | |
|     }
 | |
| };
 | |
| SampleByBytesContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSampleByBytes(this);
 | |
|     }
 | |
| };
 | |
| SampleByBytesContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSampleByBytes(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.SampleMethodContext = SampleMethodContext;
 | |
| sqlParser.prototype.sampleMethod = function () {
 | |
|     var localctx = new SampleMethodContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 108, sqlParser.RULE_sampleMethod);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 1781;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 231, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 localctx = new SampleByPercentileContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1758;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.MINUS) {
 | |
|                     this.state = 1757;
 | |
|                     localctx.negativeSign = this.match(sqlParser.MINUS);
 | |
|                 }
 | |
|                 this.state = 1760;
 | |
|                 localctx.percentage = this._input.LT(1);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(_la === sqlParser.INTEGER_VALUE || _la === sqlParser.DECIMAL_VALUE)) {
 | |
|                     localctx.percentage = this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 this.state = 1761;
 | |
|                 this.match(sqlParser.PERCENTLIT);
 | |
|                 break;
 | |
|             case 2:
 | |
|                 localctx = new SampleByRowsContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1762;
 | |
|                 this.expression();
 | |
|                 this.state = 1763;
 | |
|                 this.match(sqlParser.ROWS);
 | |
|                 break;
 | |
|             case 3:
 | |
|                 localctx = new SampleByBucketContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 1765;
 | |
|                 localctx.sampleType = this.match(sqlParser.BUCKET);
 | |
|                 this.state = 1766;
 | |
|                 localctx.numerator = this.match(sqlParser.INTEGER_VALUE);
 | |
|                 this.state = 1767;
 | |
|                 this.match(sqlParser.OUT);
 | |
|                 this.state = 1768;
 | |
|                 this.match(sqlParser.OF);
 | |
|                 this.state = 1769;
 | |
|                 localctx.denominator = this.match(sqlParser.INTEGER_VALUE);
 | |
|                 this.state = 1778;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.ON) {
 | |
|                     this.state = 1770;
 | |
|                     this.match(sqlParser.ON);
 | |
|                     this.state = 1776;
 | |
|                     this._errHandler.sync(this);
 | |
|                     var la_ = this._interp.adaptivePredict(this._input, 229, this._ctx);
 | |
|                     switch (la_) {
 | |
|                         case 1:
 | |
|                             this.state = 1771;
 | |
|                             this.identifier();
 | |
|                             break;
 | |
|                         case 2:
 | |
|                             this.state = 1772;
 | |
|                             this.qualifiedName();
 | |
|                             this.state = 1773;
 | |
|                             this.match(sqlParser.T__0);
 | |
|                             this.state = 1774;
 | |
|                             this.match(sqlParser.T__1);
 | |
|                             break;
 | |
|                     }
 | |
|                 }
 | |
|                 break;
 | |
|             case 4:
 | |
|                 localctx = new SampleByBytesContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 1780;
 | |
|                 localctx.bytes = this.expression();
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function IdentifierListContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_identifierList;
 | |
|     return this;
 | |
| }
 | |
| IdentifierListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| IdentifierListContext.prototype.constructor = IdentifierListContext;
 | |
| IdentifierListContext.prototype.identifierSeq = function () {
 | |
|     return this.getTypedRuleContext(IdentifierSeqContext, 0);
 | |
| };
 | |
| IdentifierListContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterIdentifierList(this);
 | |
|     }
 | |
| };
 | |
| IdentifierListContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitIdentifierList(this);
 | |
|     }
 | |
| };
 | |
| IdentifierListContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitIdentifierList(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.IdentifierListContext = IdentifierListContext;
 | |
| sqlParser.prototype.identifierList = function () {
 | |
|     var localctx = new IdentifierListContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 110, sqlParser.RULE_identifierList);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1783;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 1784;
 | |
|         this.identifierSeq();
 | |
|         this.state = 1785;
 | |
|         this.match(sqlParser.T__1);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function IdentifierSeqContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_identifierSeq;
 | |
|     return this;
 | |
| }
 | |
| IdentifierSeqContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| IdentifierSeqContext.prototype.constructor = IdentifierSeqContext;
 | |
| IdentifierSeqContext.prototype.identifier = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(IdentifierContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(IdentifierContext, i);
 | |
|     }
 | |
| };
 | |
| IdentifierSeqContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterIdentifierSeq(this);
 | |
|     }
 | |
| };
 | |
| IdentifierSeqContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitIdentifierSeq(this);
 | |
|     }
 | |
| };
 | |
| IdentifierSeqContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitIdentifierSeq(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.IdentifierSeqContext = IdentifierSeqContext;
 | |
| sqlParser.prototype.identifierSeq = function () {
 | |
|     var localctx = new IdentifierSeqContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 112, sqlParser.RULE_identifierSeq);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1787;
 | |
|         this.identifier();
 | |
|         this.state = 1792;
 | |
|         this._errHandler.sync(this);
 | |
|         var _alt = this._interp.adaptivePredict(this._input, 232, this._ctx);
 | |
|         while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|             if (_alt === 1) {
 | |
|                 this.state = 1788;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 1789;
 | |
|                 this.identifier();
 | |
|             }
 | |
|             this.state = 1794;
 | |
|             this._errHandler.sync(this);
 | |
|             _alt = this._interp.adaptivePredict(this._input, 232, 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 OrderedIdentifierListContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_orderedIdentifierList;
 | |
|     return this;
 | |
| }
 | |
| OrderedIdentifierListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| OrderedIdentifierListContext.prototype.constructor = OrderedIdentifierListContext;
 | |
| OrderedIdentifierListContext.prototype.orderedIdentifier = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(OrderedIdentifierContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(OrderedIdentifierContext, i);
 | |
|     }
 | |
| };
 | |
| OrderedIdentifierListContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterOrderedIdentifierList(this);
 | |
|     }
 | |
| };
 | |
| OrderedIdentifierListContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitOrderedIdentifierList(this);
 | |
|     }
 | |
| };
 | |
| OrderedIdentifierListContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitOrderedIdentifierList(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.OrderedIdentifierListContext = OrderedIdentifierListContext;
 | |
| sqlParser.prototype.orderedIdentifierList = function () {
 | |
|     var localctx = new OrderedIdentifierListContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 114, sqlParser.RULE_orderedIdentifierList);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1795;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 1796;
 | |
|         this.orderedIdentifier();
 | |
|         this.state = 1801;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while (_la === sqlParser.T__3) {
 | |
|             this.state = 1797;
 | |
|             this.match(sqlParser.T__3);
 | |
|             this.state = 1798;
 | |
|             this.orderedIdentifier();
 | |
|             this.state = 1803;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|         }
 | |
|         this.state = 1804;
 | |
|         this.match(sqlParser.T__1);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function OrderedIdentifierContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_orderedIdentifier;
 | |
|     this.ordering = null; // Token
 | |
|     return this;
 | |
| }
 | |
| OrderedIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| OrderedIdentifierContext.prototype.constructor = OrderedIdentifierContext;
 | |
| OrderedIdentifierContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| OrderedIdentifierContext.prototype.ASC = function () {
 | |
|     return this.getToken(sqlParser.ASC, 0);
 | |
| };
 | |
| OrderedIdentifierContext.prototype.DESC = function () {
 | |
|     return this.getToken(sqlParser.DESC, 0);
 | |
| };
 | |
| OrderedIdentifierContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterOrderedIdentifier(this);
 | |
|     }
 | |
| };
 | |
| OrderedIdentifierContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitOrderedIdentifier(this);
 | |
|     }
 | |
| };
 | |
| OrderedIdentifierContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitOrderedIdentifier(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.OrderedIdentifierContext = OrderedIdentifierContext;
 | |
| sqlParser.prototype.orderedIdentifier = function () {
 | |
|     var localctx = new OrderedIdentifierContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 116, sqlParser.RULE_orderedIdentifier);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1806;
 | |
|         this.identifier();
 | |
|         this.state = 1808;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.ASC || _la === sqlParser.DESC) {
 | |
|             this.state = 1807;
 | |
|             localctx.ordering = this._input.LT(1);
 | |
|             _la = this._input.LA(1);
 | |
|             if (!(_la === sqlParser.ASC || _la === sqlParser.DESC)) {
 | |
|                 localctx.ordering = this._errHandler.recoverInline(this);
 | |
|             }
 | |
|             else {
 | |
|                 this._errHandler.reportMatch(this);
 | |
|                 this.consume();
 | |
|             }
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function IdentifierCommentListContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_identifierCommentList;
 | |
|     return this;
 | |
| }
 | |
| IdentifierCommentListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| IdentifierCommentListContext.prototype.constructor = IdentifierCommentListContext;
 | |
| IdentifierCommentListContext.prototype.identifierComment = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(IdentifierCommentContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(IdentifierCommentContext, i);
 | |
|     }
 | |
| };
 | |
| IdentifierCommentListContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterIdentifierCommentList(this);
 | |
|     }
 | |
| };
 | |
| IdentifierCommentListContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitIdentifierCommentList(this);
 | |
|     }
 | |
| };
 | |
| IdentifierCommentListContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitIdentifierCommentList(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.IdentifierCommentListContext = IdentifierCommentListContext;
 | |
| sqlParser.prototype.identifierCommentList = function () {
 | |
|     var localctx = new IdentifierCommentListContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 118, sqlParser.RULE_identifierCommentList);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1810;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 1811;
 | |
|         this.identifierComment();
 | |
|         this.state = 1816;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while (_la === sqlParser.T__3) {
 | |
|             this.state = 1812;
 | |
|             this.match(sqlParser.T__3);
 | |
|             this.state = 1813;
 | |
|             this.identifierComment();
 | |
|             this.state = 1818;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|         }
 | |
|         this.state = 1819;
 | |
|         this.match(sqlParser.T__1);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function IdentifierCommentContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_identifierComment;
 | |
|     return this;
 | |
| }
 | |
| IdentifierCommentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| IdentifierCommentContext.prototype.constructor = IdentifierCommentContext;
 | |
| IdentifierCommentContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| IdentifierCommentContext.prototype.COMMENT = function () {
 | |
|     return this.getToken(sqlParser.COMMENT, 0);
 | |
| };
 | |
| IdentifierCommentContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| IdentifierCommentContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterIdentifierComment(this);
 | |
|     }
 | |
| };
 | |
| IdentifierCommentContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitIdentifierComment(this);
 | |
|     }
 | |
| };
 | |
| IdentifierCommentContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitIdentifierComment(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.IdentifierCommentContext = IdentifierCommentContext;
 | |
| sqlParser.prototype.identifierComment = function () {
 | |
|     var localctx = new IdentifierCommentContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 120, sqlParser.RULE_identifierComment);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1821;
 | |
|         this.identifier();
 | |
|         this.state = 1824;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.COMMENT) {
 | |
|             this.state = 1822;
 | |
|             this.match(sqlParser.COMMENT);
 | |
|             this.state = 1823;
 | |
|             this.match(sqlParser.STRING);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function RelationPrimaryContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_relationPrimary;
 | |
|     return this;
 | |
| }
 | |
| RelationPrimaryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| RelationPrimaryContext.prototype.constructor = RelationPrimaryContext;
 | |
| RelationPrimaryContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function TableValuedFunctionContext(parser, ctx) {
 | |
|     RelationPrimaryContext.call(this, parser);
 | |
|     RelationPrimaryContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| TableValuedFunctionContext.prototype = Object.create(RelationPrimaryContext.prototype);
 | |
| TableValuedFunctionContext.prototype.constructor = TableValuedFunctionContext;
 | |
| sqlParser.TableValuedFunctionContext = TableValuedFunctionContext;
 | |
| TableValuedFunctionContext.prototype.functionTable = function () {
 | |
|     return this.getTypedRuleContext(FunctionTableContext, 0);
 | |
| };
 | |
| TableValuedFunctionContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterTableValuedFunction(this);
 | |
|     }
 | |
| };
 | |
| TableValuedFunctionContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitTableValuedFunction(this);
 | |
|     }
 | |
| };
 | |
| TableValuedFunctionContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitTableValuedFunction(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function InlineTableDefault2Context(parser, ctx) {
 | |
|     RelationPrimaryContext.call(this, parser);
 | |
|     RelationPrimaryContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| InlineTableDefault2Context.prototype = Object.create(RelationPrimaryContext.prototype);
 | |
| InlineTableDefault2Context.prototype.constructor = InlineTableDefault2Context;
 | |
| sqlParser.InlineTableDefault2Context = InlineTableDefault2Context;
 | |
| InlineTableDefault2Context.prototype.inlineTable = function () {
 | |
|     return this.getTypedRuleContext(InlineTableContext, 0);
 | |
| };
 | |
| InlineTableDefault2Context.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterInlineTableDefault2(this);
 | |
|     }
 | |
| };
 | |
| InlineTableDefault2Context.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitInlineTableDefault2(this);
 | |
|     }
 | |
| };
 | |
| InlineTableDefault2Context.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitInlineTableDefault2(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function AliasedRelationContext(parser, ctx) {
 | |
|     RelationPrimaryContext.call(this, parser);
 | |
|     RelationPrimaryContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| AliasedRelationContext.prototype = Object.create(RelationPrimaryContext.prototype);
 | |
| AliasedRelationContext.prototype.constructor = AliasedRelationContext;
 | |
| sqlParser.AliasedRelationContext = AliasedRelationContext;
 | |
| AliasedRelationContext.prototype.relation = function () {
 | |
|     return this.getTypedRuleContext(RelationContext, 0);
 | |
| };
 | |
| AliasedRelationContext.prototype.tableAlias = function () {
 | |
|     return this.getTypedRuleContext(TableAliasContext, 0);
 | |
| };
 | |
| AliasedRelationContext.prototype.sample = function () {
 | |
|     return this.getTypedRuleContext(SampleContext, 0);
 | |
| };
 | |
| AliasedRelationContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterAliasedRelation(this);
 | |
|     }
 | |
| };
 | |
| AliasedRelationContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitAliasedRelation(this);
 | |
|     }
 | |
| };
 | |
| AliasedRelationContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitAliasedRelation(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function AliasedQueryContext(parser, ctx) {
 | |
|     RelationPrimaryContext.call(this, parser);
 | |
|     RelationPrimaryContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| AliasedQueryContext.prototype = Object.create(RelationPrimaryContext.prototype);
 | |
| AliasedQueryContext.prototype.constructor = AliasedQueryContext;
 | |
| sqlParser.AliasedQueryContext = AliasedQueryContext;
 | |
| AliasedQueryContext.prototype.queryNoWith = function () {
 | |
|     return this.getTypedRuleContext(QueryNoWithContext, 0);
 | |
| };
 | |
| AliasedQueryContext.prototype.tableAlias = function () {
 | |
|     return this.getTypedRuleContext(TableAliasContext, 0);
 | |
| };
 | |
| AliasedQueryContext.prototype.sample = function () {
 | |
|     return this.getTypedRuleContext(SampleContext, 0);
 | |
| };
 | |
| AliasedQueryContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterAliasedQuery(this);
 | |
|     }
 | |
| };
 | |
| AliasedQueryContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitAliasedQuery(this);
 | |
|     }
 | |
| };
 | |
| AliasedQueryContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitAliasedQuery(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function TableNameContext(parser, ctx) {
 | |
|     RelationPrimaryContext.call(this, parser);
 | |
|     RelationPrimaryContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| TableNameContext.prototype = Object.create(RelationPrimaryContext.prototype);
 | |
| TableNameContext.prototype.constructor = TableNameContext;
 | |
| sqlParser.TableNameContext = TableNameContext;
 | |
| TableNameContext.prototype.tableIdentifier = function () {
 | |
|     return this.getTypedRuleContext(TableIdentifierContext, 0);
 | |
| };
 | |
| TableNameContext.prototype.tableAlias = function () {
 | |
|     return this.getTypedRuleContext(TableAliasContext, 0);
 | |
| };
 | |
| TableNameContext.prototype.sample = function () {
 | |
|     return this.getTypedRuleContext(SampleContext, 0);
 | |
| };
 | |
| TableNameContext.prototype.matchRecognize = function () {
 | |
|     return this.getTypedRuleContext(MatchRecognizeContext, 0);
 | |
| };
 | |
| TableNameContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterTableName(this);
 | |
|     }
 | |
| };
 | |
| TableNameContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitTableName(this);
 | |
|     }
 | |
| };
 | |
| TableNameContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitTableName(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.RelationPrimaryContext = RelationPrimaryContext;
 | |
| sqlParser.prototype.relationPrimary = function () {
 | |
|     var localctx = new RelationPrimaryContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 122, sqlParser.RULE_relationPrimary);
 | |
|     try {
 | |
|         this.state = 1851;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 240, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 localctx = new TableNameContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1826;
 | |
|                 this.tableIdentifier();
 | |
|                 this.state = 1829;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 237, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1827;
 | |
|                     this.sample();
 | |
|                 }
 | |
|                 else if (la_ === 2) {
 | |
|                     this.state = 1828;
 | |
|                     this.matchRecognize();
 | |
|                 }
 | |
|                 this.state = 1831;
 | |
|                 this.tableAlias();
 | |
|                 break;
 | |
|             case 2:
 | |
|                 localctx = new AliasedQueryContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1833;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 1834;
 | |
|                 this.queryNoWith();
 | |
|                 this.state = 1835;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 this.state = 1837;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 238, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1836;
 | |
|                     this.sample();
 | |
|                 }
 | |
|                 this.state = 1839;
 | |
|                 this.tableAlias();
 | |
|                 break;
 | |
|             case 3:
 | |
|                 localctx = new AliasedRelationContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 1841;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 1842;
 | |
|                 this.relation();
 | |
|                 this.state = 1843;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 this.state = 1845;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 239, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 1844;
 | |
|                     this.sample();
 | |
|                 }
 | |
|                 this.state = 1847;
 | |
|                 this.tableAlias();
 | |
|                 break;
 | |
|             case 4:
 | |
|                 localctx = new InlineTableDefault2Context(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 1849;
 | |
|                 this.inlineTable();
 | |
|                 break;
 | |
|             case 5:
 | |
|                 localctx = new TableValuedFunctionContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 5);
 | |
|                 this.state = 1850;
 | |
|                 this.functionTable();
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function MatchRecognizeContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_matchRecognize;
 | |
|     return this;
 | |
| }
 | |
| MatchRecognizeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| MatchRecognizeContext.prototype.constructor = MatchRecognizeContext;
 | |
| MatchRecognizeContext.prototype.MATCH_RECOGNIZE = function () {
 | |
|     return this.getToken(sqlParser.MATCH_RECOGNIZE, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.PATTERN = function () {
 | |
|     return this.getToken(sqlParser.PATTERN, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.pattern1 = function () {
 | |
|     return this.getTypedRuleContext(Pattern1Context, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.DEFINE = function () {
 | |
|     return this.getToken(sqlParser.DEFINE, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.variable = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(VariableContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(VariableContext, i);
 | |
|     }
 | |
| };
 | |
| MatchRecognizeContext.prototype.AS = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.AS);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.AS, i);
 | |
|     }
 | |
| };
 | |
| MatchRecognizeContext.prototype.condition1 = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(Condition1Context);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(Condition1Context, i);
 | |
|     }
 | |
| };
 | |
| MatchRecognizeContext.prototype.PARTITION = function () {
 | |
|     return this.getToken(sqlParser.PARTITION, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.BY = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.BY);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.BY, i);
 | |
|     }
 | |
| };
 | |
| MatchRecognizeContext.prototype.expression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| MatchRecognizeContext.prototype.ORDER = function () {
 | |
|     return this.getToken(sqlParser.ORDER, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.sortItem = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(SortItemContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(SortItemContext, i);
 | |
|     }
 | |
| };
 | |
| MatchRecognizeContext.prototype.MEASURES = function () {
 | |
|     return this.getToken(sqlParser.MEASURES, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.measureColumn = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(MeasureColumnContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(MeasureColumnContext, i);
 | |
|     }
 | |
| };
 | |
| MatchRecognizeContext.prototype.ONE = function () {
 | |
|     return this.getToken(sqlParser.ONE, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.ROW = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.ROW);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.ROW, i);
 | |
|     }
 | |
| };
 | |
| MatchRecognizeContext.prototype.PER = function () {
 | |
|     return this.getToken(sqlParser.PER, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.MATCH = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.MATCH);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.MATCH, i);
 | |
|     }
 | |
| };
 | |
| MatchRecognizeContext.prototype.AFTER = function () {
 | |
|     return this.getToken(sqlParser.AFTER, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.WITHIN = function () {
 | |
|     return this.getToken(sqlParser.WITHIN, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.interval = function () {
 | |
|     return this.getTypedRuleContext(IntervalContext, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.SKIP1 = function () {
 | |
|     return this.getToken(sqlParser.SKIP1, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.TO = function () {
 | |
|     return this.getToken(sqlParser.TO, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.NEXT = function () {
 | |
|     return this.getToken(sqlParser.NEXT, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.PAST = function () {
 | |
|     return this.getToken(sqlParser.PAST, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.LAST = function () {
 | |
|     return this.getToken(sqlParser.LAST, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.FIRST = function () {
 | |
|     return this.getToken(sqlParser.FIRST, 0);
 | |
| };
 | |
| MatchRecognizeContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterMatchRecognize(this);
 | |
|     }
 | |
| };
 | |
| MatchRecognizeContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitMatchRecognize(this);
 | |
|     }
 | |
| };
 | |
| MatchRecognizeContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitMatchRecognize(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.MatchRecognizeContext = MatchRecognizeContext;
 | |
| sqlParser.prototype.matchRecognize = function () {
 | |
|     var localctx = new MatchRecognizeContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 124, sqlParser.RULE_matchRecognize);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1853;
 | |
|         this.match(sqlParser.MATCH_RECOGNIZE);
 | |
|         this.state = 1854;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 1865;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.PARTITION) {
 | |
|             this.state = 1855;
 | |
|             this.match(sqlParser.PARTITION);
 | |
|             this.state = 1856;
 | |
|             this.match(sqlParser.BY);
 | |
|             this.state = 1857;
 | |
|             this.expression();
 | |
|             this.state = 1862;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|             while (_la === sqlParser.T__3) {
 | |
|                 this.state = 1858;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 1859;
 | |
|                 this.expression();
 | |
|                 this.state = 1864;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|             }
 | |
|         }
 | |
|         this.state = 1877;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.ORDER) {
 | |
|             this.state = 1867;
 | |
|             this.match(sqlParser.ORDER);
 | |
|             this.state = 1868;
 | |
|             this.match(sqlParser.BY);
 | |
|             this.state = 1869;
 | |
|             this.sortItem();
 | |
|             this.state = 1874;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|             while (_la === sqlParser.T__3) {
 | |
|                 this.state = 1870;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 1871;
 | |
|                 this.sortItem();
 | |
|                 this.state = 1876;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|             }
 | |
|         }
 | |
|         this.state = 1888;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.MEASURES) {
 | |
|             this.state = 1879;
 | |
|             this.match(sqlParser.MEASURES);
 | |
|             this.state = 1880;
 | |
|             this.measureColumn();
 | |
|             this.state = 1885;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|             while (_la === sqlParser.T__3) {
 | |
|                 this.state = 1881;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 1882;
 | |
|                 this.measureColumn();
 | |
|                 this.state = 1887;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|             }
 | |
|         }
 | |
|         this.state = 1894;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.ONE) {
 | |
|             this.state = 1890;
 | |
|             this.match(sqlParser.ONE);
 | |
|             this.state = 1891;
 | |
|             this.match(sqlParser.ROW);
 | |
|             this.state = 1892;
 | |
|             this.match(sqlParser.PER);
 | |
|             this.state = 1893;
 | |
|             this.match(sqlParser.MATCH);
 | |
|         }
 | |
|         this.state = 1919;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.AFTER) {
 | |
|             this.state = 1896;
 | |
|             this.match(sqlParser.AFTER);
 | |
|             this.state = 1897;
 | |
|             this.match(sqlParser.MATCH);
 | |
|             this.state = 1917;
 | |
|             this._errHandler.sync(this);
 | |
|             var la_ = this._interp.adaptivePredict(this._input, 248, this._ctx);
 | |
|             switch (la_) {
 | |
|                 case 1:
 | |
|                     this.state = 1898;
 | |
|                     this.match(sqlParser.SKIP1);
 | |
|                     this.state = 1899;
 | |
|                     this.match(sqlParser.TO);
 | |
|                     this.state = 1900;
 | |
|                     this.match(sqlParser.NEXT);
 | |
|                     this.state = 1901;
 | |
|                     this.match(sqlParser.ROW);
 | |
|                     break;
 | |
|                 case 2:
 | |
|                     this.state = 1902;
 | |
|                     this.match(sqlParser.SKIP1);
 | |
|                     this.state = 1903;
 | |
|                     this.match(sqlParser.PAST);
 | |
|                     this.state = 1904;
 | |
|                     this.match(sqlParser.LAST);
 | |
|                     this.state = 1905;
 | |
|                     this.match(sqlParser.ROW);
 | |
|                     break;
 | |
|                 case 3:
 | |
|                     this.state = 1906;
 | |
|                     this.match(sqlParser.SKIP1);
 | |
|                     this.state = 1907;
 | |
|                     this.match(sqlParser.TO);
 | |
|                     this.state = 1908;
 | |
|                     this.match(sqlParser.FIRST);
 | |
|                     this.state = 1909;
 | |
|                     this.variable();
 | |
|                     break;
 | |
|                 case 4:
 | |
|                     this.state = 1910;
 | |
|                     this.match(sqlParser.SKIP1);
 | |
|                     this.state = 1911;
 | |
|                     this.match(sqlParser.TO);
 | |
|                     this.state = 1912;
 | |
|                     this.match(sqlParser.LAST);
 | |
|                     this.state = 1913;
 | |
|                     this.variable();
 | |
|                     break;
 | |
|                 case 5:
 | |
|                     this.state = 1914;
 | |
|                     this.match(sqlParser.SKIP1);
 | |
|                     this.state = 1915;
 | |
|                     this.match(sqlParser.TO);
 | |
|                     this.state = 1916;
 | |
|                     this.variable();
 | |
|                     break;
 | |
|             }
 | |
|         }
 | |
|         this.state = 1921;
 | |
|         this.match(sqlParser.PATTERN);
 | |
|         this.state = 1922;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 1923;
 | |
|         this.pattern1();
 | |
|         this.state = 1924;
 | |
|         this.match(sqlParser.T__1);
 | |
|         this.state = 1927;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.WITHIN) {
 | |
|             this.state = 1925;
 | |
|             this.match(sqlParser.WITHIN);
 | |
|             this.state = 1926;
 | |
|             this.interval();
 | |
|         }
 | |
|         this.state = 1929;
 | |
|         this.match(sqlParser.DEFINE);
 | |
|         this.state = 1930;
 | |
|         this.variable();
 | |
|         this.state = 1931;
 | |
|         this.match(sqlParser.AS);
 | |
|         this.state = 1932;
 | |
|         this.condition1();
 | |
|         this.state = 1940;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while (_la === sqlParser.T__3) {
 | |
|             this.state = 1933;
 | |
|             this.match(sqlParser.T__3);
 | |
|             this.state = 1934;
 | |
|             this.variable();
 | |
|             this.state = 1935;
 | |
|             this.match(sqlParser.AS);
 | |
|             this.state = 1936;
 | |
|             this.condition1();
 | |
|             this.state = 1942;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|         }
 | |
|         this.state = 1943;
 | |
|         this.match(sqlParser.T__1);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function MeasureColumnContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_measureColumn;
 | |
|     return this;
 | |
| }
 | |
| MeasureColumnContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| MeasureColumnContext.prototype.constructor = MeasureColumnContext;
 | |
| MeasureColumnContext.prototype.expression = function () {
 | |
|     return this.getTypedRuleContext(ExpressionContext, 0);
 | |
| };
 | |
| MeasureColumnContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| MeasureColumnContext.prototype.strictIdentifier = function () {
 | |
|     return this.getTypedRuleContext(StrictIdentifierContext, 0);
 | |
| };
 | |
| MeasureColumnContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterMeasureColumn(this);
 | |
|     }
 | |
| };
 | |
| MeasureColumnContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitMeasureColumn(this);
 | |
|     }
 | |
| };
 | |
| MeasureColumnContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitMeasureColumn(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.MeasureColumnContext = MeasureColumnContext;
 | |
| sqlParser.prototype.measureColumn = function () {
 | |
|     var localctx = new MeasureColumnContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 126, sqlParser.RULE_measureColumn);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1945;
 | |
|         this.expression();
 | |
|         this.state = 1946;
 | |
|         this.match(sqlParser.AS);
 | |
|         this.state = 1947;
 | |
|         this.strictIdentifier();
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function Condition1Context(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_condition1;
 | |
|     return this;
 | |
| }
 | |
| Condition1Context.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| Condition1Context.prototype.constructor = Condition1Context;
 | |
| Condition1Context.prototype.expression = function () {
 | |
|     return this.getTypedRuleContext(ExpressionContext, 0);
 | |
| };
 | |
| Condition1Context.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterCondition1(this);
 | |
|     }
 | |
| };
 | |
| Condition1Context.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitCondition1(this);
 | |
|     }
 | |
| };
 | |
| Condition1Context.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitCondition1(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.Condition1Context = Condition1Context;
 | |
| sqlParser.prototype.condition1 = function () {
 | |
|     var localctx = new Condition1Context(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 128, sqlParser.RULE_condition1);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1949;
 | |
|         this.expression();
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function VariableContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_variable;
 | |
|     return this;
 | |
| }
 | |
| VariableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| VariableContext.prototype.constructor = VariableContext;
 | |
| VariableContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| VariableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterVariable(this);
 | |
|     }
 | |
| };
 | |
| VariableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitVariable(this);
 | |
|     }
 | |
| };
 | |
| VariableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitVariable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.VariableContext = VariableContext;
 | |
| sqlParser.prototype.variable = function () {
 | |
|     var localctx = new VariableContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 130, sqlParser.RULE_variable);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1951;
 | |
|         this.identifier();
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function Pattern1Context(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_pattern1;
 | |
|     return this;
 | |
| }
 | |
| Pattern1Context.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| Pattern1Context.prototype.constructor = Pattern1Context;
 | |
| Pattern1Context.prototype.patternTerm = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(PatternTermContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(PatternTermContext, i);
 | |
|     }
 | |
| };
 | |
| Pattern1Context.prototype.PIPE = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.PIPE);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.PIPE, i);
 | |
|     }
 | |
| };
 | |
| Pattern1Context.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPattern1(this);
 | |
|     }
 | |
| };
 | |
| Pattern1Context.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPattern1(this);
 | |
|     }
 | |
| };
 | |
| Pattern1Context.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPattern1(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.Pattern1Context = Pattern1Context;
 | |
| sqlParser.prototype.pattern1 = function () {
 | |
|     var localctx = new Pattern1Context(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 132, sqlParser.RULE_pattern1);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1953;
 | |
|         this.patternTerm();
 | |
|         this.state = 1958;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while (_la === sqlParser.PIPE) {
 | |
|             this.state = 1954;
 | |
|             this.match(sqlParser.PIPE);
 | |
|             this.state = 1955;
 | |
|             this.patternTerm();
 | |
|             this.state = 1960;
 | |
|             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 PatternTermContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_patternTerm;
 | |
|     return this;
 | |
| }
 | |
| PatternTermContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| PatternTermContext.prototype.constructor = PatternTermContext;
 | |
| PatternTermContext.prototype.patternFactor = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(PatternFactorContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(PatternFactorContext, i);
 | |
|     }
 | |
| };
 | |
| PatternTermContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPatternTerm(this);
 | |
|     }
 | |
| };
 | |
| PatternTermContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPatternTerm(this);
 | |
|     }
 | |
| };
 | |
| PatternTermContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPatternTerm(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.PatternTermContext = PatternTermContext;
 | |
| sqlParser.prototype.patternTerm = function () {
 | |
|     var localctx = new PatternTermContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 134, sqlParser.RULE_patternTerm);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1961;
 | |
|         this.patternFactor();
 | |
|         this.state = 1965;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while (((((_la - 17)) & ~0x1f) == 0 && ((1 << (_la - 17)) & ((1 << (sqlParser.SELECT - 17)) | (1 << (sqlParser.FROM - 17)) | (1 << (sqlParser.ADD - 17)) | (1 << (sqlParser.AS - 17)) | (1 << (sqlParser.ALL - 17)) | (1 << (sqlParser.ANY - 17)) | (1 << (sqlParser.DISTINCT - 17)) | (1 << (sqlParser.WHERE - 17)) | (1 << (sqlParser.GROUP - 17)) | (1 << (sqlParser.BY - 17)) | (1 << (sqlParser.GROUPING - 17)) | (1 << (sqlParser.SETS - 17)) | (1 << (sqlParser.CUBE - 17)) | (1 << (sqlParser.ROLLUP - 17)) | (1 << (sqlParser.ORDER - 17)) | (1 << (sqlParser.HAVING - 17)) | (1 << (sqlParser.LIMIT - 17)) | (1 << (sqlParser.AT - 17)) | (1 << (sqlParser.OR - 17)) | (1 << (sqlParser.AND - 17)) | (1 << (sqlParser.IN - 17)) | (1 << (sqlParser.NOT - 17)) | (1 << (sqlParser.NO - 17)) | (1 << (sqlParser.EXISTS - 17)) | (1 << (sqlParser.BETWEEN - 17)) | (1 << (sqlParser.LIKE - 17)) | (1 << (sqlParser.RLIKE - 17)) | (1 << (sqlParser.IS - 17)) | (1 << (sqlParser.NULL - 17)) | (1 << (sqlParser.TRUE - 17)) | (1 << (sqlParser.FALSE - 17)) | (1 << (sqlParser.NULLS - 17)))) !== 0) || ((((_la - 49)) & ~0x1f) == 0 && ((1 << (_la - 49)) & ((1 << (sqlParser.ASC - 49)) | (1 << (sqlParser.DESC - 49)) | (1 << (sqlParser.FOR - 49)) | (1 << (sqlParser.INTERVAL - 49)) | (1 << (sqlParser.CASE - 49)) | (1 << (sqlParser.WHEN - 49)) | (1 << (sqlParser.THEN - 49)) | (1 << (sqlParser.ELSE - 49)) | (1 << (sqlParser.END - 49)) | (1 << (sqlParser.JOIN - 49)) | (1 << (sqlParser.CROSS - 49)) | (1 << (sqlParser.OUTER - 49)) | (1 << (sqlParser.INNER - 49)) | (1 << (sqlParser.LEFT - 49)) | (1 << (sqlParser.SEMI - 49)) | (1 << (sqlParser.RIGHT - 49)) | (1 << (sqlParser.FULL - 49)) | (1 << (sqlParser.NATURAL - 49)) | (1 << (sqlParser.ON - 49)) | (1 << (sqlParser.PIVOT - 49)) | (1 << (sqlParser.LATERAL - 49)) | (1 << (sqlParser.WINDOW - 49)) | (1 << (sqlParser.OVER - 49)) | (1 << (sqlParser.PARTITION - 49)) | (1 << (sqlParser.RANGE - 49)) | (1 << (sqlParser.ROWS - 49)) | (1 << (sqlParser.UNBOUNDED - 49)) | (1 << (sqlParser.PRECEDING - 49)) | (1 << (sqlParser.FOLLOWING - 49)) | (1 << (sqlParser.CURRENT - 49)) | (1 << (sqlParser.FIRST - 49)) | (1 << (sqlParser.AFTER - 49)))) !== 0) || ((((_la - 81)) & ~0x1f) == 0 && ((1 << (_la - 81)) & ((1 << (sqlParser.LAST - 81)) | (1 << (sqlParser.ROW - 81)) | (1 << (sqlParser.WITH - 81)) | (1 << (sqlParser.CREATE - 81)) | (1 << (sqlParser.TABLE - 81)) | (1 << (sqlParser.DIRECTORY - 81)) | (1 << (sqlParser.VIEW - 81)) | (1 << (sqlParser.REPLACE - 81)) | (1 << (sqlParser.INSERT - 81)) | (1 << (sqlParser.DELETE - 81)) | (1 << (sqlParser.INTO - 81)) | (1 << (sqlParser.DESCRIBE - 81)) | (1 << (sqlParser.EXPLAIN - 81)) | (1 << (sqlParser.FORMAT - 81)) | (1 << (sqlParser.LOGICAL - 81)) | (1 << (sqlParser.CODEGEN - 81)) | (1 << (sqlParser.COST - 81)) | (1 << (sqlParser.CAST - 81)) | (1 << (sqlParser.SHOW - 81)) | (1 << (sqlParser.TABLES - 81)) | (1 << (sqlParser.COLUMNS - 81)) | (1 << (sqlParser.COLUMN - 81)) | (1 << (sqlParser.USE - 81)) | (1 << (sqlParser.PARTITIONS - 81)) | (1 << (sqlParser.FUNCTIONS - 81)) | (1 << (sqlParser.DROP - 81)) | (1 << (sqlParser.UNION - 81)) | (1 << (sqlParser.EXCEPT - 81)) | (1 << (sqlParser.SETMINUS - 81)) | (1 << (sqlParser.INTERSECT - 81)) | (1 << (sqlParser.TO - 81)))) !== 0) || ((((_la - 113)) & ~0x1f) == 0 && ((1 << (_la - 113)) & ((1 << (sqlParser.TABLESAMPLE - 113)) | (1 << (sqlParser.STRATIFY - 113)) | (1 << (sqlParser.ALTER - 113)) | (1 << (sqlParser.RENAME - 113)) | (1 << (sqlParser.ARRAY - 113)) | (1 << (sqlParser.MAP - 113)) | (1 << (sqlParser.STRUCT - 113)) | (1 << (sqlParser.COMMENT - 113)) | (1 << (sqlParser.SET - 113)) | (1 << (sqlParser.RESET - 113)) | (1 << (sqlParser.DATA - 113)) | (1 << (sqlParser.START - 113)) | (1 << (sqlParser.TRANSACTION - 113)) | (1 << (sqlParser.COMMIT - 113)) | (1 << (sqlParser.ROLLBACK - 113)) | (1 << (sqlParser.MACRO - 113)) | (1 << (sqlParser.IGNORE - 113)) | (1 << (sqlParser.BOTH - 113)) | (1 << (sqlParser.LEADING - 113)) | (1 << (sqlParser.TRAILING - 113)) | (1 << (sqlParser.IF - 113)) | (1 << (sqlParser.POSITION - 113)) | (1 << (sqlParser.EXTRACT - 113)))) !== 0) || ((((_la - 149)) & ~0x1f) == 0 && ((1 << (_la - 149)) & ((1 << (sqlParser.DIV - 149)) | (1 << (sqlParser.PERCENTLIT - 149)) | (1 << (sqlParser.BUCKET - 149)) | (1 << (sqlParser.OUT - 149)) | (1 << (sqlParser.OF - 149)) | (1 << (sqlParser.SORT - 149)) | (1 << (sqlParser.CLUSTER - 149)) | (1 << (sqlParser.DISTRIBUTE - 149)) | (1 << (sqlParser.OVERWRITE - 149)) | (1 << (sqlParser.TRANSFORM - 149)) | (1 << (sqlParser.REDUCE - 149)) | (1 << (sqlParser.SERDE - 149)) | (1 << (sqlParser.SERDEPROPERTIES - 149)) | (1 << (sqlParser.RECORDREADER - 149)) | (1 << (sqlParser.RECORDWRITER - 149)) | (1 << (sqlParser.DELIMITED - 149)) | (1 << (sqlParser.FIELDS - 149)) | (1 << (sqlParser.TERMINATED - 149)) | (1 << (sqlParser.COLLECTION - 149)) | (1 << (sqlParser.ITEMS - 149)) | (1 << (sqlParser.KEYS - 149)) | (1 << (sqlParser.ESCAPED - 149)) | (1 << (sqlParser.LINES - 149)) | (1 << (sqlParser.SEPARATED - 149)) | (1 << (sqlParser.FUNCTION - 149)) | (1 << (sqlParser.EXTENDED - 149)))) !== 0) || ((((_la - 181)) & ~0x1f) == 0 && ((1 << (_la - 181)) & ((1 << (sqlParser.REFRESH - 181)) | (1 << (sqlParser.CLEAR - 181)) | (1 << (sqlParser.CACHE - 181)) | (1 << (sqlParser.UNCACHE - 181)) | (1 << (sqlParser.LAZY - 181)) | (1 << (sqlParser.FORMATTED - 181)) | (1 << (sqlParser.GLOBAL - 181)) | (1 << (sqlParser.TEMPORARY - 181)) | (1 << (sqlParser.OPTIONS - 181)) | (1 << (sqlParser.UNSET - 181)) | (1 << (sqlParser.TBLPROPERTIES - 181)) | (1 << (sqlParser.DBPROPERTIES - 181)) | (1 << (sqlParser.BUCKETS - 181)) | (1 << (sqlParser.SKEWED - 181)) | (1 << (sqlParser.STORED - 181)) | (1 << (sqlParser.DIRECTORIES - 181)) | (1 << (sqlParser.LOCATION - 181)) | (1 << (sqlParser.EXCHANGE - 181)) | (1 << (sqlParser.ARCHIVE - 181)) | (1 << (sqlParser.UNARCHIVE - 181)) | (1 << (sqlParser.FILEFORMAT - 181)) | (1 << (sqlParser.TOUCH - 181)) | (1 << (sqlParser.COMPACT - 181)) | (1 << (sqlParser.CONCATENATE - 181)) | (1 << (sqlParser.CHANGE - 181)) | (1 << (sqlParser.CASCADE - 181)) | (1 << (sqlParser.RESTRICT - 181)) | (1 << (sqlParser.CLUSTERED - 181)) | (1 << (sqlParser.SORTED - 181)) | (1 << (sqlParser.PURGE - 181)) | (1 << (sqlParser.INPUTFORMAT - 181)) | (1 << (sqlParser.OUTPUTFORMAT - 181)))) !== 0) || ((((_la - 213)) & ~0x1f) == 0 && ((1 << (_la - 213)) & ((1 << (sqlParser.DATABASE - 213)) | (1 << (sqlParser.DATABASES - 213)) | (1 << (sqlParser.DFS - 213)) | (1 << (sqlParser.TRUNCATE - 213)) | (1 << (sqlParser.ANALYZE - 213)) | (1 << (sqlParser.COMPUTE - 213)) | (1 << (sqlParser.LIST - 213)) | (1 << (sqlParser.STATISTICS - 213)) | (1 << (sqlParser.PARTITIONED - 213)) | (1 << (sqlParser.EXTERNAL - 213)) | (1 << (sqlParser.DEFINED - 213)) | (1 << (sqlParser.REVOKE - 213)) | (1 << (sqlParser.GRANT - 213)) | (1 << (sqlParser.LOCK - 213)) | (1 << (sqlParser.UNLOCK - 213)) | (1 << (sqlParser.MSCK - 213)) | (1 << (sqlParser.REPAIR - 213)) | (1 << (sqlParser.RECOVER - 213)) | (1 << (sqlParser.EXPORT - 213)) | (1 << (sqlParser.IMPORT - 213)) | (1 << (sqlParser.LOAD - 213)) | (1 << (sqlParser.ROLE - 213)) | (1 << (sqlParser.ROLES - 213)) | (1 << (sqlParser.COMPACTIONS - 213)) | (1 << (sqlParser.PRINCIPALS - 213)) | (1 << (sqlParser.TRANSACTIONS - 213)) | (1 << (sqlParser.INDEX - 213)) | (1 << (sqlParser.INDEXES - 213)) | (1 << (sqlParser.LOCKS - 213)) | (1 << (sqlParser.OPTION - 213)) | (1 << (sqlParser.ANTI - 213)) | (1 << (sqlParser.LOCAL - 213)))) !== 0) || ((((_la - 245)) & ~0x1f) == 0 && ((1 << (_la - 245)) & ((1 << (sqlParser.INPATH - 245)) | (1 << (sqlParser.IDENTIFIER - 245)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 245)))) !== 0)) {
 | |
|             this.state = 1962;
 | |
|             this.patternFactor();
 | |
|             this.state = 1967;
 | |
|             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 PatternFactorContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_patternFactor;
 | |
|     return this;
 | |
| }
 | |
| PatternFactorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| PatternFactorContext.prototype.constructor = PatternFactorContext;
 | |
| PatternFactorContext.prototype.variable = function () {
 | |
|     return this.getTypedRuleContext(VariableContext, 0);
 | |
| };
 | |
| PatternFactorContext.prototype.patternQuantifier = function () {
 | |
|     return this.getTypedRuleContext(PatternQuantifierContext, 0);
 | |
| };
 | |
| PatternFactorContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPatternFactor(this);
 | |
|     }
 | |
| };
 | |
| PatternFactorContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPatternFactor(this);
 | |
|     }
 | |
| };
 | |
| PatternFactorContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPatternFactor(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.PatternFactorContext = PatternFactorContext;
 | |
| sqlParser.prototype.patternFactor = function () {
 | |
|     var localctx = new PatternFactorContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 136, sqlParser.RULE_patternFactor);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1968;
 | |
|         this.variable();
 | |
|         this.state = 1970;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__6) | (1 << sqlParser.T__7) | (1 << sqlParser.T__8) | (1 << sqlParser.T__9) | (1 << sqlParser.T__10))) !== 0) || _la === sqlParser.PLUS || _la === sqlParser.ASTERISK) {
 | |
|             this.state = 1969;
 | |
|             this.patternQuantifier();
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function PatternQuantifierContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_patternQuantifier;
 | |
|     return this;
 | |
| }
 | |
| PatternQuantifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| PatternQuantifierContext.prototype.constructor = PatternQuantifierContext;
 | |
| PatternQuantifierContext.prototype.ASTERISK = function () {
 | |
|     return this.getToken(sqlParser.ASTERISK, 0);
 | |
| };
 | |
| PatternQuantifierContext.prototype.PLUS = function () {
 | |
|     return this.getToken(sqlParser.PLUS, 0);
 | |
| };
 | |
| PatternQuantifierContext.prototype.minRepeat = function () {
 | |
|     return this.getTypedRuleContext(MinRepeatContext, 0);
 | |
| };
 | |
| PatternQuantifierContext.prototype.maxRepeat = function () {
 | |
|     return this.getTypedRuleContext(MaxRepeatContext, 0);
 | |
| };
 | |
| PatternQuantifierContext.prototype.repeat = function () {
 | |
|     return this.getTypedRuleContext(RepeatContext, 0);
 | |
| };
 | |
| PatternQuantifierContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPatternQuantifier(this);
 | |
|     }
 | |
| };
 | |
| PatternQuantifierContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPatternQuantifier(this);
 | |
|     }
 | |
| };
 | |
| PatternQuantifierContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPatternQuantifier(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.PatternQuantifierContext = PatternQuantifierContext;
 | |
| sqlParser.prototype.patternQuantifier = function () {
 | |
|     var localctx = new PatternQuantifierContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 138, sqlParser.RULE_patternQuantifier);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 1994;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 258, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 1972;
 | |
|                 this.match(sqlParser.ASTERISK);
 | |
|                 break;
 | |
|             case 2:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 1973;
 | |
|                 this.match(sqlParser.T__6);
 | |
|                 break;
 | |
|             case 3:
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 1974;
 | |
|                 this.match(sqlParser.PLUS);
 | |
|                 break;
 | |
|             case 4:
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 1975;
 | |
|                 this.match(sqlParser.T__7);
 | |
|                 break;
 | |
|             case 5:
 | |
|                 this.enterOuterAlt(localctx, 5);
 | |
|                 this.state = 1976;
 | |
|                 this.match(sqlParser.T__8);
 | |
|                 break;
 | |
|             case 6:
 | |
|                 this.enterOuterAlt(localctx, 6);
 | |
|                 this.state = 1977;
 | |
|                 this.match(sqlParser.T__9);
 | |
|                 break;
 | |
|             case 7:
 | |
|                 this.enterOuterAlt(localctx, 7);
 | |
|                 this.state = 1978;
 | |
|                 this.match(sqlParser.T__10);
 | |
|                 this.state = 1980;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.INTEGER_VALUE) {
 | |
|                     this.state = 1979;
 | |
|                     this.minRepeat();
 | |
|                 }
 | |
|                 this.state = 1982;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 1984;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.INTEGER_VALUE) {
 | |
|                     this.state = 1983;
 | |
|                     this.maxRepeat();
 | |
|                 }
 | |
|                 this.state = 1986;
 | |
|                 this.match(sqlParser.T__11);
 | |
|                 this.state = 1988;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.T__8) {
 | |
|                     this.state = 1987;
 | |
|                     this.match(sqlParser.T__8);
 | |
|                 }
 | |
|                 break;
 | |
|             case 8:
 | |
|                 this.enterOuterAlt(localctx, 8);
 | |
|                 this.state = 1990;
 | |
|                 this.match(sqlParser.T__10);
 | |
|                 this.state = 1991;
 | |
|                 this.repeat();
 | |
|                 this.state = 1992;
 | |
|                 this.match(sqlParser.T__11);
 | |
|                 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 MinRepeatContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_minRepeat;
 | |
|     return this;
 | |
| }
 | |
| MinRepeatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| MinRepeatContext.prototype.constructor = MinRepeatContext;
 | |
| MinRepeatContext.prototype.INTEGER_VALUE = function () {
 | |
|     return this.getToken(sqlParser.INTEGER_VALUE, 0);
 | |
| };
 | |
| MinRepeatContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterMinRepeat(this);
 | |
|     }
 | |
| };
 | |
| MinRepeatContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitMinRepeat(this);
 | |
|     }
 | |
| };
 | |
| MinRepeatContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitMinRepeat(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.MinRepeatContext = MinRepeatContext;
 | |
| sqlParser.prototype.minRepeat = function () {
 | |
|     var localctx = new MinRepeatContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 140, sqlParser.RULE_minRepeat);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1996;
 | |
|         this.match(sqlParser.INTEGER_VALUE);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function MaxRepeatContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_maxRepeat;
 | |
|     return this;
 | |
| }
 | |
| MaxRepeatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| MaxRepeatContext.prototype.constructor = MaxRepeatContext;
 | |
| MaxRepeatContext.prototype.INTEGER_VALUE = function () {
 | |
|     return this.getToken(sqlParser.INTEGER_VALUE, 0);
 | |
| };
 | |
| MaxRepeatContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterMaxRepeat(this);
 | |
|     }
 | |
| };
 | |
| MaxRepeatContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitMaxRepeat(this);
 | |
|     }
 | |
| };
 | |
| MaxRepeatContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitMaxRepeat(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.MaxRepeatContext = MaxRepeatContext;
 | |
| sqlParser.prototype.maxRepeat = function () {
 | |
|     var localctx = new MaxRepeatContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 142, sqlParser.RULE_maxRepeat);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 1998;
 | |
|         this.match(sqlParser.INTEGER_VALUE);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function RepeatContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_repeat;
 | |
|     return this;
 | |
| }
 | |
| RepeatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| RepeatContext.prototype.constructor = RepeatContext;
 | |
| RepeatContext.prototype.INTEGER_VALUE = function () {
 | |
|     return this.getToken(sqlParser.INTEGER_VALUE, 0);
 | |
| };
 | |
| RepeatContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterRepeat(this);
 | |
|     }
 | |
| };
 | |
| RepeatContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitRepeat(this);
 | |
|     }
 | |
| };
 | |
| RepeatContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitRepeat(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.RepeatContext = RepeatContext;
 | |
| sqlParser.prototype.repeat = function () {
 | |
|     var localctx = new RepeatContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 144, sqlParser.RULE_repeat);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2000;
 | |
|         this.match(sqlParser.INTEGER_VALUE);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function InlineTableContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_inlineTable;
 | |
|     return this;
 | |
| }
 | |
| InlineTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| InlineTableContext.prototype.constructor = InlineTableContext;
 | |
| InlineTableContext.prototype.VALUES = function () {
 | |
|     return this.getToken(sqlParser.VALUES, 0);
 | |
| };
 | |
| InlineTableContext.prototype.expression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| InlineTableContext.prototype.tableAlias = function () {
 | |
|     return this.getTypedRuleContext(TableAliasContext, 0);
 | |
| };
 | |
| InlineTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterInlineTable(this);
 | |
|     }
 | |
| };
 | |
| InlineTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitInlineTable(this);
 | |
|     }
 | |
| };
 | |
| InlineTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitInlineTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.InlineTableContext = InlineTableContext;
 | |
| sqlParser.prototype.inlineTable = function () {
 | |
|     var localctx = new InlineTableContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 146, sqlParser.RULE_inlineTable);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2002;
 | |
|         this.match(sqlParser.VALUES);
 | |
|         this.state = 2003;
 | |
|         this.expression();
 | |
|         this.state = 2008;
 | |
|         this._errHandler.sync(this);
 | |
|         var _alt = this._interp.adaptivePredict(this._input, 259, this._ctx);
 | |
|         while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|             if (_alt === 1) {
 | |
|                 this.state = 2004;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 2005;
 | |
|                 this.expression();
 | |
|             }
 | |
|             this.state = 2010;
 | |
|             this._errHandler.sync(this);
 | |
|             _alt = this._interp.adaptivePredict(this._input, 259, this._ctx);
 | |
|         }
 | |
|         this.state = 2011;
 | |
|         this.tableAlias();
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function FunctionTableContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_functionTable;
 | |
|     return this;
 | |
| }
 | |
| FunctionTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| FunctionTableContext.prototype.constructor = FunctionTableContext;
 | |
| FunctionTableContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| FunctionTableContext.prototype.tableAlias = function () {
 | |
|     return this.getTypedRuleContext(TableAliasContext, 0);
 | |
| };
 | |
| FunctionTableContext.prototype.expression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| FunctionTableContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterFunctionTable(this);
 | |
|     }
 | |
| };
 | |
| FunctionTableContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitFunctionTable(this);
 | |
|     }
 | |
| };
 | |
| FunctionTableContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitFunctionTable(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.FunctionTableContext = FunctionTableContext;
 | |
| sqlParser.prototype.functionTable = function () {
 | |
|     var localctx = new FunctionTableContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 148, sqlParser.RULE_functionTable);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2013;
 | |
|         this.identifier();
 | |
|         this.state = 2014;
 | |
|         this.match(sqlParser.T__0);
 | |
|         this.state = 2023;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.RIGHT - 64)) | (1 << (sqlParser.FULL - 64)) | (1 << (sqlParser.NATURAL - 64)) | (1 << (sqlParser.ON - 64)) | (1 << (sqlParser.PIVOT - 64)) | (1 << (sqlParser.LATERAL - 64)) | (1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)) | (1 << (sqlParser.CAST - 96)) | (1 << (sqlParser.SHOW - 96)) | (1 << (sqlParser.TABLES - 96)) | (1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.MACRO - 128)) | (1 << (sqlParser.IGNORE - 128)) | (1 << (sqlParser.BOTH - 128)) | (1 << (sqlParser.LEADING - 128)) | (1 << (sqlParser.TRAILING - 128)) | (1 << (sqlParser.IF - 128)) | (1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (1 << (sqlParser.ASTERISK - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.TILDE - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)) | (1 << (sqlParser.OF - 128)) | (1 << (sqlParser.SORT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.CLUSTER - 160)) | (1 << (sqlParser.DISTRIBUTE - 160)) | (1 << (sqlParser.OVERWRITE - 160)) | (1 << (sqlParser.TRANSFORM - 160)) | (1 << (sqlParser.REDUCE - 160)) | (1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIES - 160)) | (1 << (sqlParser.RECORDREADER - 160)) | (1 << (sqlParser.RECORDWRITER - 160)) | (1 << (sqlParser.DELIMITED - 160)) | (1 << (sqlParser.FIELDS - 160)) | (1 << (sqlParser.TERMINATED - 160)) | (1 << (sqlParser.COLLECTION - 160)) | (1 << (sqlParser.ITEMS - 160)) | (1 << (sqlParser.KEYS - 160)) | (1 << (sqlParser.ESCAPED - 160)) | (1 << (sqlParser.LINES - 160)) | (1 << (sqlParser.SEPARATED - 160)) | (1 << (sqlParser.FUNCTION - 160)) | (1 << (sqlParser.EXTENDED - 160)) | (1 << (sqlParser.REFRESH - 160)) | (1 << (sqlParser.CLEAR - 160)) | (1 << (sqlParser.CACHE - 160)) | (1 << (sqlParser.UNCACHE - 160)) | (1 << (sqlParser.LAZY - 160)) | (1 << (sqlParser.FORMATTED - 160)) | (1 << (sqlParser.GLOBAL - 160)) | (1 << (sqlParser.TEMPORARY - 160)) | (1 << (sqlParser.OPTIONS - 160)) | (1 << (sqlParser.UNSET - 160)) | (1 << (sqlParser.TBLPROPERTIES - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (sqlParser.DBPROPERTIES - 192)) | (1 << (sqlParser.BUCKETS - 192)) | (1 << (sqlParser.SKEWED - 192)) | (1 << (sqlParser.STORED - 192)) | (1 << (sqlParser.DIRECTORIES - 192)) | (1 << (sqlParser.LOCATION - 192)) | (1 << (sqlParser.EXCHANGE - 192)) | (1 << (sqlParser.ARCHIVE - 192)) | (1 << (sqlParser.UNARCHIVE - 192)) | (1 << (sqlParser.FILEFORMAT - 192)) | (1 << (sqlParser.TOUCH - 192)) | (1 << (sqlParser.COMPACT - 192)) | (1 << (sqlParser.CONCATENATE - 192)) | (1 << (sqlParser.CHANGE - 192)) | (1 << (sqlParser.CASCADE - 192)) | (1 << (sqlParser.RESTRICT - 192)) | (1 << (sqlParser.CLUSTERED - 192)) | (1 << (sqlParser.SORTED - 192)) | (1 << (sqlParser.PURGE - 192)) | (1 << (sqlParser.INPUTFORMAT - 192)) | (1 << (sqlParser.OUTPUTFORMAT - 192)) | (1 << (sqlParser.DATABASE - 192)) | (1 << (sqlParser.DATABASES - 192)) | (1 << (sqlParser.DFS - 192)) | (1 << (sqlParser.TRUNCATE - 192)) | (1 << (sqlParser.ANALYZE - 192)) | (1 << (sqlParser.COMPUTE - 192)) | (1 << (sqlParser.LIST - 192)) | (1 << (sqlParser.STATISTICS - 192)) | (1 << (sqlParser.PARTITIONED - 192)) | (1 << (sqlParser.EXTERNAL - 192)) | (1 << (sqlParser.DEFINED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (sqlParser.REVOKE - 224)) | (1 << (sqlParser.GRANT - 224)) | (1 << (sqlParser.LOCK - 224)) | (1 << (sqlParser.UNLOCK - 224)) | (1 << (sqlParser.MSCK - 224)) | (1 << (sqlParser.REPAIR - 224)) | (1 << (sqlParser.RECOVER - 224)) | (1 << (sqlParser.EXPORT - 224)) | (1 << (sqlParser.IMPORT - 224)) | (1 << (sqlParser.LOAD - 224)) | (1 << (sqlParser.ROLE - 224)) | (1 << (sqlParser.ROLES - 224)) | (1 << (sqlParser.COMPACTIONS - 224)) | (1 << (sqlParser.PRINCIPALS - 224)) | (1 << (sqlParser.TRANSACTIONS - 224)) | (1 << (sqlParser.INDEX - 224)) | (1 << (sqlParser.INDEXES - 224)) | (1 << (sqlParser.LOCKS - 224)) | (1 << (sqlParser.OPTION - 224)) | (1 << (sqlParser.ANTI - 224)) | (1 << (sqlParser.LOCAL - 224)) | (1 << (sqlParser.INPATH - 224)))) !== 0) || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (sqlParser.STRING - 259)) | (1 << (sqlParser.BIGINT_LITERAL - 259)) | (1 << (sqlParser.SMALLINT_LITERAL - 259)) | (1 << (sqlParser.TINYINT_LITERAL - 259)) | (1 << (sqlParser.INTEGER_VALUE - 259)) | (1 << (sqlParser.DECIMAL_VALUE - 259)) | (1 << (sqlParser.DOUBLE_LITERAL - 259)) | (1 << (sqlParser.BIGDECIMAL_LITERAL - 259)) | (1 << (sqlParser.IDENTIFIER - 259)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 259)))) !== 0)) {
 | |
|             this.state = 2015;
 | |
|             this.expression();
 | |
|             this.state = 2020;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|             while (_la === sqlParser.T__3) {
 | |
|                 this.state = 2016;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 2017;
 | |
|                 this.expression();
 | |
|                 this.state = 2022;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|             }
 | |
|         }
 | |
|         this.state = 2025;
 | |
|         this.match(sqlParser.T__1);
 | |
|         this.state = 2026;
 | |
|         this.tableAlias();
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function TableAliasContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_tableAlias;
 | |
|     return this;
 | |
| }
 | |
| TableAliasContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| TableAliasContext.prototype.constructor = TableAliasContext;
 | |
| TableAliasContext.prototype.strictIdentifier = function () {
 | |
|     return this.getTypedRuleContext(StrictIdentifierContext, 0);
 | |
| };
 | |
| TableAliasContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| TableAliasContext.prototype.identifierList = function () {
 | |
|     return this.getTypedRuleContext(IdentifierListContext, 0);
 | |
| };
 | |
| TableAliasContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterTableAlias(this);
 | |
|     }
 | |
| };
 | |
| TableAliasContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitTableAlias(this);
 | |
|     }
 | |
| };
 | |
| TableAliasContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitTableAlias(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.TableAliasContext = TableAliasContext;
 | |
| sqlParser.prototype.tableAlias = function () {
 | |
|     var localctx = new TableAliasContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 150, sqlParser.RULE_tableAlias);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2035;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 264, this._ctx);
 | |
|         if (la_ === 1) {
 | |
|             this.state = 2029;
 | |
|             this._errHandler.sync(this);
 | |
|             var la_ = this._interp.adaptivePredict(this._input, 262, this._ctx);
 | |
|             if (la_ === 1) {
 | |
|                 this.state = 2028;
 | |
|                 this.match(sqlParser.AS);
 | |
|             }
 | |
|             this.state = 2031;
 | |
|             this.strictIdentifier();
 | |
|             this.state = 2033;
 | |
|             this._errHandler.sync(this);
 | |
|             var la_ = this._interp.adaptivePredict(this._input, 263, this._ctx);
 | |
|             if (la_ === 1) {
 | |
|                 this.state = 2032;
 | |
|                 this.identifierList();
 | |
|             }
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function RowFormatContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_rowFormat;
 | |
|     return this;
 | |
| }
 | |
| RowFormatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| RowFormatContext.prototype.constructor = RowFormatContext;
 | |
| RowFormatContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function RowFormatSerdeContext(parser, ctx) {
 | |
|     RowFormatContext.call(this, parser);
 | |
|     this.name = null; // Token;
 | |
|     this.props = null; // TablePropertyListContext;
 | |
|     RowFormatContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| RowFormatSerdeContext.prototype = Object.create(RowFormatContext.prototype);
 | |
| RowFormatSerdeContext.prototype.constructor = RowFormatSerdeContext;
 | |
| sqlParser.RowFormatSerdeContext = RowFormatSerdeContext;
 | |
| RowFormatSerdeContext.prototype.ROW = function () {
 | |
|     return this.getToken(sqlParser.ROW, 0);
 | |
| };
 | |
| RowFormatSerdeContext.prototype.FORMAT = function () {
 | |
|     return this.getToken(sqlParser.FORMAT, 0);
 | |
| };
 | |
| RowFormatSerdeContext.prototype.SERDE = function () {
 | |
|     return this.getToken(sqlParser.SERDE, 0);
 | |
| };
 | |
| RowFormatSerdeContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| RowFormatSerdeContext.prototype.WITH = function () {
 | |
|     return this.getToken(sqlParser.WITH, 0);
 | |
| };
 | |
| RowFormatSerdeContext.prototype.SERDEPROPERTIES = function () {
 | |
|     return this.getToken(sqlParser.SERDEPROPERTIES, 0);
 | |
| };
 | |
| RowFormatSerdeContext.prototype.tablePropertyList = function () {
 | |
|     return this.getTypedRuleContext(TablePropertyListContext, 0);
 | |
| };
 | |
| RowFormatSerdeContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterRowFormatSerde(this);
 | |
|     }
 | |
| };
 | |
| RowFormatSerdeContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitRowFormatSerde(this);
 | |
|     }
 | |
| };
 | |
| RowFormatSerdeContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitRowFormatSerde(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function RowFormatDelimitedContext(parser, ctx) {
 | |
|     RowFormatContext.call(this, parser);
 | |
|     this.fieldsTerminatedBy = null; // Token;
 | |
|     this.escapedBy = null; // Token;
 | |
|     this.collectionItemsTerminatedBy = null; // Token;
 | |
|     this.keysTerminatedBy = null; // Token;
 | |
|     this.linesSeparatedBy = null; // Token;
 | |
|     this.nullDefinedAs = null; // Token;
 | |
|     RowFormatContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| RowFormatDelimitedContext.prototype = Object.create(RowFormatContext.prototype);
 | |
| RowFormatDelimitedContext.prototype.constructor = RowFormatDelimitedContext;
 | |
| sqlParser.RowFormatDelimitedContext = RowFormatDelimitedContext;
 | |
| RowFormatDelimitedContext.prototype.ROW = function () {
 | |
|     return this.getToken(sqlParser.ROW, 0);
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.FORMAT = function () {
 | |
|     return this.getToken(sqlParser.FORMAT, 0);
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.DELIMITED = function () {
 | |
|     return this.getToken(sqlParser.DELIMITED, 0);
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.FIELDS = function () {
 | |
|     return this.getToken(sqlParser.FIELDS, 0);
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.TERMINATED = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.TERMINATED);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.TERMINATED, i);
 | |
|     }
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.BY = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.BY);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.BY, i);
 | |
|     }
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.COLLECTION = function () {
 | |
|     return this.getToken(sqlParser.COLLECTION, 0);
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.ITEMS = function () {
 | |
|     return this.getToken(sqlParser.ITEMS, 0);
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.MAP = function () {
 | |
|     return this.getToken(sqlParser.MAP, 0);
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.KEYS = function () {
 | |
|     return this.getToken(sqlParser.KEYS, 0);
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.LINES = function () {
 | |
|     return this.getToken(sqlParser.LINES, 0);
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.NULL = function () {
 | |
|     return this.getToken(sqlParser.NULL, 0);
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.DEFINED = function () {
 | |
|     return this.getToken(sqlParser.DEFINED, 0);
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.STRING = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.STRING);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.STRING, i);
 | |
|     }
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.ESCAPED = function () {
 | |
|     return this.getToken(sqlParser.ESCAPED, 0);
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterRowFormatDelimited(this);
 | |
|     }
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitRowFormatDelimited(this);
 | |
|     }
 | |
| };
 | |
| RowFormatDelimitedContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitRowFormatDelimited(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.RowFormatContext = RowFormatContext;
 | |
| sqlParser.prototype.rowFormat = function () {
 | |
|     var localctx = new RowFormatContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 152, sqlParser.RULE_rowFormat);
 | |
|     try {
 | |
|         this.state = 2086;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 272, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 localctx = new RowFormatSerdeContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 2037;
 | |
|                 this.match(sqlParser.ROW);
 | |
|                 this.state = 2038;
 | |
|                 this.match(sqlParser.FORMAT);
 | |
|                 this.state = 2039;
 | |
|                 this.match(sqlParser.SERDE);
 | |
|                 this.state = 2040;
 | |
|                 localctx.name = this.match(sqlParser.STRING);
 | |
|                 this.state = 2044;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 265, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 2041;
 | |
|                     this.match(sqlParser.WITH);
 | |
|                     this.state = 2042;
 | |
|                     this.match(sqlParser.SERDEPROPERTIES);
 | |
|                     this.state = 2043;
 | |
|                     localctx.props = this.tablePropertyList();
 | |
|                 }
 | |
|                 break;
 | |
|             case 2:
 | |
|                 localctx = new RowFormatDelimitedContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 2046;
 | |
|                 this.match(sqlParser.ROW);
 | |
|                 this.state = 2047;
 | |
|                 this.match(sqlParser.FORMAT);
 | |
|                 this.state = 2048;
 | |
|                 this.match(sqlParser.DELIMITED);
 | |
|                 this.state = 2058;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 267, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 2049;
 | |
|                     this.match(sqlParser.FIELDS);
 | |
|                     this.state = 2050;
 | |
|                     this.match(sqlParser.TERMINATED);
 | |
|                     this.state = 2051;
 | |
|                     this.match(sqlParser.BY);
 | |
|                     this.state = 2052;
 | |
|                     localctx.fieldsTerminatedBy = this.match(sqlParser.STRING);
 | |
|                     this.state = 2056;
 | |
|                     this._errHandler.sync(this);
 | |
|                     var la_ = this._interp.adaptivePredict(this._input, 266, this._ctx);
 | |
|                     if (la_ === 1) {
 | |
|                         this.state = 2053;
 | |
|                         this.match(sqlParser.ESCAPED);
 | |
|                         this.state = 2054;
 | |
|                         this.match(sqlParser.BY);
 | |
|                         this.state = 2055;
 | |
|                         localctx.escapedBy = this.match(sqlParser.STRING);
 | |
|                     }
 | |
|                 }
 | |
|                 this.state = 2065;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 268, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 2060;
 | |
|                     this.match(sqlParser.COLLECTION);
 | |
|                     this.state = 2061;
 | |
|                     this.match(sqlParser.ITEMS);
 | |
|                     this.state = 2062;
 | |
|                     this.match(sqlParser.TERMINATED);
 | |
|                     this.state = 2063;
 | |
|                     this.match(sqlParser.BY);
 | |
|                     this.state = 2064;
 | |
|                     localctx.collectionItemsTerminatedBy = this.match(sqlParser.STRING);
 | |
|                 }
 | |
|                 this.state = 2072;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 269, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 2067;
 | |
|                     this.match(sqlParser.MAP);
 | |
|                     this.state = 2068;
 | |
|                     this.match(sqlParser.KEYS);
 | |
|                     this.state = 2069;
 | |
|                     this.match(sqlParser.TERMINATED);
 | |
|                     this.state = 2070;
 | |
|                     this.match(sqlParser.BY);
 | |
|                     this.state = 2071;
 | |
|                     localctx.keysTerminatedBy = this.match(sqlParser.STRING);
 | |
|                 }
 | |
|                 this.state = 2078;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 270, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 2074;
 | |
|                     this.match(sqlParser.LINES);
 | |
|                     this.state = 2075;
 | |
|                     this.match(sqlParser.TERMINATED);
 | |
|                     this.state = 2076;
 | |
|                     this.match(sqlParser.BY);
 | |
|                     this.state = 2077;
 | |
|                     localctx.linesSeparatedBy = this.match(sqlParser.STRING);
 | |
|                 }
 | |
|                 this.state = 2084;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 271, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 2080;
 | |
|                     this.match(sqlParser.NULL);
 | |
|                     this.state = 2081;
 | |
|                     this.match(sqlParser.DEFINED);
 | |
|                     this.state = 2082;
 | |
|                     this.match(sqlParser.AS);
 | |
|                     this.state = 2083;
 | |
|                     localctx.nullDefinedAs = this.match(sqlParser.STRING);
 | |
|                 }
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function TableIdentifierContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_tableIdentifier;
 | |
|     this.db = null; // IdentifierContext
 | |
|     this.table = null; // IdentifierContext
 | |
|     return this;
 | |
| }
 | |
| TableIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| TableIdentifierContext.prototype.constructor = TableIdentifierContext;
 | |
| TableIdentifierContext.prototype.identifier = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(IdentifierContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(IdentifierContext, i);
 | |
|     }
 | |
| };
 | |
| TableIdentifierContext.prototype.LATERAL = function () {
 | |
|     return this.getToken(sqlParser.LATERAL, 0);
 | |
| };
 | |
| TableIdentifierContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| TableIdentifierContext.prototype.functionIdentifier = function () {
 | |
|     return this.getTypedRuleContext(FunctionIdentifierContext, 0);
 | |
| };
 | |
| TableIdentifierContext.prototype.expression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| TableIdentifierContext.prototype.UNNEST = function () {
 | |
|     return this.getToken(sqlParser.UNNEST, 0);
 | |
| };
 | |
| TableIdentifierContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterTableIdentifier(this);
 | |
|     }
 | |
| };
 | |
| TableIdentifierContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitTableIdentifier(this);
 | |
|     }
 | |
| };
 | |
| TableIdentifierContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitTableIdentifier(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.TableIdentifierContext = TableIdentifierContext;
 | |
| sqlParser.prototype.tableIdentifier = function () {
 | |
|     var localctx = new TableIdentifierContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 154, sqlParser.RULE_tableIdentifier);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 2115;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 275, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 2091;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 273, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 2088;
 | |
|                     localctx.db = this.identifier();
 | |
|                     this.state = 2089;
 | |
|                     this.match(sqlParser.T__2);
 | |
|                 }
 | |
|                 this.state = 2093;
 | |
|                 localctx.table = this.identifier();
 | |
|                 break;
 | |
|             case 2:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 2094;
 | |
|                 this.match(sqlParser.LATERAL);
 | |
|                 this.state = 2095;
 | |
|                 this.match(sqlParser.TABLE);
 | |
|                 this.state = 2096;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2097;
 | |
|                 this.functionIdentifier();
 | |
|                 this.state = 2098;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2099;
 | |
|                 this.expression();
 | |
|                 this.state = 2104;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 while (_la === sqlParser.T__3) {
 | |
|                     this.state = 2100;
 | |
|                     this.match(sqlParser.T__3);
 | |
|                     this.state = 2101;
 | |
|                     this.expression();
 | |
|                     this.state = 2106;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 }
 | |
|                 this.state = 2107;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 this.state = 2108;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 3:
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 2110;
 | |
|                 this.match(sqlParser.UNNEST);
 | |
|                 this.state = 2111;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2112;
 | |
|                 this.expression();
 | |
|                 this.state = 2113;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function FunctionIdentifierContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_functionIdentifier;
 | |
|     this.db = null; // IdentifierContext
 | |
|     this.j_function = null; // IdentifierContext
 | |
|     return this;
 | |
| }
 | |
| FunctionIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| FunctionIdentifierContext.prototype.constructor = FunctionIdentifierContext;
 | |
| FunctionIdentifierContext.prototype.identifier = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(IdentifierContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(IdentifierContext, i);
 | |
|     }
 | |
| };
 | |
| FunctionIdentifierContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterFunctionIdentifier(this);
 | |
|     }
 | |
| };
 | |
| FunctionIdentifierContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitFunctionIdentifier(this);
 | |
|     }
 | |
| };
 | |
| FunctionIdentifierContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitFunctionIdentifier(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.FunctionIdentifierContext = FunctionIdentifierContext;
 | |
| sqlParser.prototype.functionIdentifier = function () {
 | |
|     var localctx = new FunctionIdentifierContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 156, sqlParser.RULE_functionIdentifier);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2120;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 276, this._ctx);
 | |
|         if (la_ === 1) {
 | |
|             this.state = 2117;
 | |
|             localctx.db = this.identifier();
 | |
|             this.state = 2118;
 | |
|             this.match(sqlParser.T__2);
 | |
|         }
 | |
|         this.state = 2122;
 | |
|         localctx.j_function = this.identifier();
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function NamedExpressionContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_namedExpression;
 | |
|     return this;
 | |
| }
 | |
| NamedExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| NamedExpressionContext.prototype.constructor = NamedExpressionContext;
 | |
| NamedExpressionContext.prototype.expression = function () {
 | |
|     return this.getTypedRuleContext(ExpressionContext, 0);
 | |
| };
 | |
| NamedExpressionContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| NamedExpressionContext.prototype.identifierList = function () {
 | |
|     return this.getTypedRuleContext(IdentifierListContext, 0);
 | |
| };
 | |
| NamedExpressionContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| NamedExpressionContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterNamedExpression(this);
 | |
|     }
 | |
| };
 | |
| NamedExpressionContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitNamedExpression(this);
 | |
|     }
 | |
| };
 | |
| NamedExpressionContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitNamedExpression(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.NamedExpressionContext = NamedExpressionContext;
 | |
| sqlParser.prototype.namedExpression = function () {
 | |
|     var localctx = new NamedExpressionContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 158, sqlParser.RULE_namedExpression);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2124;
 | |
|         this.expression();
 | |
|         this.state = 2132;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 279, this._ctx);
 | |
|         if (la_ === 1) {
 | |
|             this.state = 2126;
 | |
|             this._errHandler.sync(this);
 | |
|             var la_ = this._interp.adaptivePredict(this._input, 277, this._ctx);
 | |
|             if (la_ === 1) {
 | |
|                 this.state = 2125;
 | |
|                 this.match(sqlParser.AS);
 | |
|             }
 | |
|             this.state = 2130;
 | |
|             this._errHandler.sync(this);
 | |
|             switch (this._input.LA(1)) {
 | |
|                 case sqlParser.SELECT:
 | |
|                 case sqlParser.FROM:
 | |
|                 case sqlParser.ADD:
 | |
|                 case sqlParser.AS:
 | |
|                 case sqlParser.ALL:
 | |
|                 case sqlParser.ANY:
 | |
|                 case sqlParser.DISTINCT:
 | |
|                 case sqlParser.WHERE:
 | |
|                 case sqlParser.GROUP:
 | |
|                 case sqlParser.BY:
 | |
|                 case sqlParser.GROUPING:
 | |
|                 case sqlParser.SETS:
 | |
|                 case sqlParser.CUBE:
 | |
|                 case sqlParser.ROLLUP:
 | |
|                 case sqlParser.ORDER:
 | |
|                 case sqlParser.HAVING:
 | |
|                 case sqlParser.LIMIT:
 | |
|                 case sqlParser.AT:
 | |
|                 case sqlParser.OR:
 | |
|                 case sqlParser.AND:
 | |
|                 case sqlParser.IN:
 | |
|                 case sqlParser.NOT:
 | |
|                 case sqlParser.NO:
 | |
|                 case sqlParser.EXISTS:
 | |
|                 case sqlParser.BETWEEN:
 | |
|                 case sqlParser.LIKE:
 | |
|                 case sqlParser.RLIKE:
 | |
|                 case sqlParser.IS:
 | |
|                 case sqlParser.NULL:
 | |
|                 case sqlParser.TRUE:
 | |
|                 case sqlParser.FALSE:
 | |
|                 case sqlParser.NULLS:
 | |
|                 case sqlParser.ASC:
 | |
|                 case sqlParser.DESC:
 | |
|                 case sqlParser.FOR:
 | |
|                 case sqlParser.INTERVAL:
 | |
|                 case sqlParser.CASE:
 | |
|                 case sqlParser.WHEN:
 | |
|                 case sqlParser.THEN:
 | |
|                 case sqlParser.ELSE:
 | |
|                 case sqlParser.END:
 | |
|                 case sqlParser.JOIN:
 | |
|                 case sqlParser.CROSS:
 | |
|                 case sqlParser.OUTER:
 | |
|                 case sqlParser.INNER:
 | |
|                 case sqlParser.LEFT:
 | |
|                 case sqlParser.SEMI:
 | |
|                 case sqlParser.RIGHT:
 | |
|                 case sqlParser.FULL:
 | |
|                 case sqlParser.NATURAL:
 | |
|                 case sqlParser.ON:
 | |
|                 case sqlParser.PIVOT:
 | |
|                 case sqlParser.LATERAL:
 | |
|                 case sqlParser.WINDOW:
 | |
|                 case sqlParser.OVER:
 | |
|                 case sqlParser.PARTITION:
 | |
|                 case sqlParser.RANGE:
 | |
|                 case sqlParser.ROWS:
 | |
|                 case sqlParser.UNBOUNDED:
 | |
|                 case sqlParser.PRECEDING:
 | |
|                 case sqlParser.FOLLOWING:
 | |
|                 case sqlParser.CURRENT:
 | |
|                 case sqlParser.FIRST:
 | |
|                 case sqlParser.AFTER:
 | |
|                 case sqlParser.LAST:
 | |
|                 case sqlParser.ROW:
 | |
|                 case sqlParser.WITH:
 | |
|                 case sqlParser.CREATE:
 | |
|                 case sqlParser.TABLE:
 | |
|                 case sqlParser.DIRECTORY:
 | |
|                 case sqlParser.VIEW:
 | |
|                 case sqlParser.REPLACE:
 | |
|                 case sqlParser.INSERT:
 | |
|                 case sqlParser.DELETE:
 | |
|                 case sqlParser.INTO:
 | |
|                 case sqlParser.DESCRIBE:
 | |
|                 case sqlParser.EXPLAIN:
 | |
|                 case sqlParser.FORMAT:
 | |
|                 case sqlParser.LOGICAL:
 | |
|                 case sqlParser.CODEGEN:
 | |
|                 case sqlParser.COST:
 | |
|                 case sqlParser.CAST:
 | |
|                 case sqlParser.SHOW:
 | |
|                 case sqlParser.TABLES:
 | |
|                 case sqlParser.COLUMNS:
 | |
|                 case sqlParser.COLUMN:
 | |
|                 case sqlParser.USE:
 | |
|                 case sqlParser.PARTITIONS:
 | |
|                 case sqlParser.FUNCTIONS:
 | |
|                 case sqlParser.DROP:
 | |
|                 case sqlParser.UNION:
 | |
|                 case sqlParser.EXCEPT:
 | |
|                 case sqlParser.SETMINUS:
 | |
|                 case sqlParser.INTERSECT:
 | |
|                 case sqlParser.TO:
 | |
|                 case sqlParser.TABLESAMPLE:
 | |
|                 case sqlParser.STRATIFY:
 | |
|                 case sqlParser.ALTER:
 | |
|                 case sqlParser.RENAME:
 | |
|                 case sqlParser.ARRAY:
 | |
|                 case sqlParser.MAP:
 | |
|                 case sqlParser.STRUCT:
 | |
|                 case sqlParser.COMMENT:
 | |
|                 case sqlParser.SET:
 | |
|                 case sqlParser.RESET:
 | |
|                 case sqlParser.DATA:
 | |
|                 case sqlParser.START:
 | |
|                 case sqlParser.TRANSACTION:
 | |
|                 case sqlParser.COMMIT:
 | |
|                 case sqlParser.ROLLBACK:
 | |
|                 case sqlParser.MACRO:
 | |
|                 case sqlParser.IGNORE:
 | |
|                 case sqlParser.BOTH:
 | |
|                 case sqlParser.LEADING:
 | |
|                 case sqlParser.TRAILING:
 | |
|                 case sqlParser.IF:
 | |
|                 case sqlParser.POSITION:
 | |
|                 case sqlParser.EXTRACT:
 | |
|                 case sqlParser.DIV:
 | |
|                 case sqlParser.PERCENTLIT:
 | |
|                 case sqlParser.BUCKET:
 | |
|                 case sqlParser.OUT:
 | |
|                 case sqlParser.OF:
 | |
|                 case sqlParser.SORT:
 | |
|                 case sqlParser.CLUSTER:
 | |
|                 case sqlParser.DISTRIBUTE:
 | |
|                 case sqlParser.OVERWRITE:
 | |
|                 case sqlParser.TRANSFORM:
 | |
|                 case sqlParser.REDUCE:
 | |
|                 case sqlParser.SERDE:
 | |
|                 case sqlParser.SERDEPROPERTIES:
 | |
|                 case sqlParser.RECORDREADER:
 | |
|                 case sqlParser.RECORDWRITER:
 | |
|                 case sqlParser.DELIMITED:
 | |
|                 case sqlParser.FIELDS:
 | |
|                 case sqlParser.TERMINATED:
 | |
|                 case sqlParser.COLLECTION:
 | |
|                 case sqlParser.ITEMS:
 | |
|                 case sqlParser.KEYS:
 | |
|                 case sqlParser.ESCAPED:
 | |
|                 case sqlParser.LINES:
 | |
|                 case sqlParser.SEPARATED:
 | |
|                 case sqlParser.FUNCTION:
 | |
|                 case sqlParser.EXTENDED:
 | |
|                 case sqlParser.REFRESH:
 | |
|                 case sqlParser.CLEAR:
 | |
|                 case sqlParser.CACHE:
 | |
|                 case sqlParser.UNCACHE:
 | |
|                 case sqlParser.LAZY:
 | |
|                 case sqlParser.FORMATTED:
 | |
|                 case sqlParser.GLOBAL:
 | |
|                 case sqlParser.TEMPORARY:
 | |
|                 case sqlParser.OPTIONS:
 | |
|                 case sqlParser.UNSET:
 | |
|                 case sqlParser.TBLPROPERTIES:
 | |
|                 case sqlParser.DBPROPERTIES:
 | |
|                 case sqlParser.BUCKETS:
 | |
|                 case sqlParser.SKEWED:
 | |
|                 case sqlParser.STORED:
 | |
|                 case sqlParser.DIRECTORIES:
 | |
|                 case sqlParser.LOCATION:
 | |
|                 case sqlParser.EXCHANGE:
 | |
|                 case sqlParser.ARCHIVE:
 | |
|                 case sqlParser.UNARCHIVE:
 | |
|                 case sqlParser.FILEFORMAT:
 | |
|                 case sqlParser.TOUCH:
 | |
|                 case sqlParser.COMPACT:
 | |
|                 case sqlParser.CONCATENATE:
 | |
|                 case sqlParser.CHANGE:
 | |
|                 case sqlParser.CASCADE:
 | |
|                 case sqlParser.RESTRICT:
 | |
|                 case sqlParser.CLUSTERED:
 | |
|                 case sqlParser.SORTED:
 | |
|                 case sqlParser.PURGE:
 | |
|                 case sqlParser.INPUTFORMAT:
 | |
|                 case sqlParser.OUTPUTFORMAT:
 | |
|                 case sqlParser.DATABASE:
 | |
|                 case sqlParser.DATABASES:
 | |
|                 case sqlParser.DFS:
 | |
|                 case sqlParser.TRUNCATE:
 | |
|                 case sqlParser.ANALYZE:
 | |
|                 case sqlParser.COMPUTE:
 | |
|                 case sqlParser.LIST:
 | |
|                 case sqlParser.STATISTICS:
 | |
|                 case sqlParser.PARTITIONED:
 | |
|                 case sqlParser.EXTERNAL:
 | |
|                 case sqlParser.DEFINED:
 | |
|                 case sqlParser.REVOKE:
 | |
|                 case sqlParser.GRANT:
 | |
|                 case sqlParser.LOCK:
 | |
|                 case sqlParser.UNLOCK:
 | |
|                 case sqlParser.MSCK:
 | |
|                 case sqlParser.REPAIR:
 | |
|                 case sqlParser.RECOVER:
 | |
|                 case sqlParser.EXPORT:
 | |
|                 case sqlParser.IMPORT:
 | |
|                 case sqlParser.LOAD:
 | |
|                 case sqlParser.ROLE:
 | |
|                 case sqlParser.ROLES:
 | |
|                 case sqlParser.COMPACTIONS:
 | |
|                 case sqlParser.PRINCIPALS:
 | |
|                 case sqlParser.TRANSACTIONS:
 | |
|                 case sqlParser.INDEX:
 | |
|                 case sqlParser.INDEXES:
 | |
|                 case sqlParser.LOCKS:
 | |
|                 case sqlParser.OPTION:
 | |
|                 case sqlParser.ANTI:
 | |
|                 case sqlParser.LOCAL:
 | |
|                 case sqlParser.INPATH:
 | |
|                 case sqlParser.IDENTIFIER:
 | |
|                 case sqlParser.BACKQUOTED_IDENTIFIER:
 | |
|                     this.state = 2128;
 | |
|                     this.identifier();
 | |
|                     break;
 | |
|                 case sqlParser.T__0:
 | |
|                     this.state = 2129;
 | |
|                     this.identifierList();
 | |
|                     break;
 | |
|                 default:
 | |
|                     throw new antlr4.error.NoViableAltException(this);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function NamedExpressionSeqContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_namedExpressionSeq;
 | |
|     return this;
 | |
| }
 | |
| NamedExpressionSeqContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| NamedExpressionSeqContext.prototype.constructor = NamedExpressionSeqContext;
 | |
| NamedExpressionSeqContext.prototype.namedExpression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(NamedExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(NamedExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| NamedExpressionSeqContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterNamedExpressionSeq(this);
 | |
|     }
 | |
| };
 | |
| NamedExpressionSeqContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitNamedExpressionSeq(this);
 | |
|     }
 | |
| };
 | |
| NamedExpressionSeqContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitNamedExpressionSeq(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.NamedExpressionSeqContext = NamedExpressionSeqContext;
 | |
| sqlParser.prototype.namedExpressionSeq = function () {
 | |
|     var localctx = new NamedExpressionSeqContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 160, sqlParser.RULE_namedExpressionSeq);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2134;
 | |
|         this.namedExpression();
 | |
|         this.state = 2139;
 | |
|         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 = 2135;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 2136;
 | |
|                 this.namedExpression();
 | |
|             }
 | |
|             this.state = 2141;
 | |
|             this._errHandler.sync(this);
 | |
|             _alt = this._interp.adaptivePredict(this._input, 280, 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 ExpressionContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_expression;
 | |
|     return this;
 | |
| }
 | |
| ExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| ExpressionContext.prototype.constructor = ExpressionContext;
 | |
| ExpressionContext.prototype.booleanExpression = function () {
 | |
|     return this.getTypedRuleContext(BooleanExpressionContext, 0);
 | |
| };
 | |
| ExpressionContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterExpression(this);
 | |
|     }
 | |
| };
 | |
| ExpressionContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitExpression(this);
 | |
|     }
 | |
| };
 | |
| ExpressionContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitExpression(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.ExpressionContext = ExpressionContext;
 | |
| sqlParser.prototype.expression = function () {
 | |
|     var localctx = new ExpressionContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 162, sqlParser.RULE_expression);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2142;
 | |
|         this.booleanExpression(0);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function BooleanExpressionContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_booleanExpression;
 | |
|     return this;
 | |
| }
 | |
| BooleanExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| BooleanExpressionContext.prototype.constructor = BooleanExpressionContext;
 | |
| BooleanExpressionContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function LogicalNotContext(parser, ctx) {
 | |
|     BooleanExpressionContext.call(this, parser);
 | |
|     BooleanExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| LogicalNotContext.prototype = Object.create(BooleanExpressionContext.prototype);
 | |
| LogicalNotContext.prototype.constructor = LogicalNotContext;
 | |
| sqlParser.LogicalNotContext = LogicalNotContext;
 | |
| LogicalNotContext.prototype.NOT = function () {
 | |
|     return this.getToken(sqlParser.NOT, 0);
 | |
| };
 | |
| LogicalNotContext.prototype.booleanExpression = function () {
 | |
|     return this.getTypedRuleContext(BooleanExpressionContext, 0);
 | |
| };
 | |
| LogicalNotContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterLogicalNot(this);
 | |
|     }
 | |
| };
 | |
| LogicalNotContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitLogicalNot(this);
 | |
|     }
 | |
| };
 | |
| LogicalNotContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitLogicalNot(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function PredicatedContext(parser, ctx) {
 | |
|     BooleanExpressionContext.call(this, parser);
 | |
|     BooleanExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| PredicatedContext.prototype = Object.create(BooleanExpressionContext.prototype);
 | |
| PredicatedContext.prototype.constructor = PredicatedContext;
 | |
| sqlParser.PredicatedContext = PredicatedContext;
 | |
| PredicatedContext.prototype.valueExpression = function () {
 | |
|     return this.getTypedRuleContext(ValueExpressionContext, 0);
 | |
| };
 | |
| PredicatedContext.prototype.predicate = function () {
 | |
|     return this.getTypedRuleContext(PredicateContext, 0);
 | |
| };
 | |
| PredicatedContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPredicated(this);
 | |
|     }
 | |
| };
 | |
| PredicatedContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPredicated(this);
 | |
|     }
 | |
| };
 | |
| PredicatedContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPredicated(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ExistsContext(parser, ctx) {
 | |
|     BooleanExpressionContext.call(this, parser);
 | |
|     BooleanExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ExistsContext.prototype = Object.create(BooleanExpressionContext.prototype);
 | |
| ExistsContext.prototype.constructor = ExistsContext;
 | |
| sqlParser.ExistsContext = ExistsContext;
 | |
| ExistsContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| ExistsContext.prototype.query = function () {
 | |
|     return this.getTypedRuleContext(QueryContext, 0);
 | |
| };
 | |
| ExistsContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterExists(this);
 | |
|     }
 | |
| };
 | |
| ExistsContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitExists(this);
 | |
|     }
 | |
| };
 | |
| ExistsContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitExists(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function LogicalBinaryContext(parser, ctx) {
 | |
|     BooleanExpressionContext.call(this, parser);
 | |
|     this.left = null; // BooleanExpressionContext;
 | |
|     this.operator = null; // Token;
 | |
|     this.right = null; // BooleanExpressionContext;
 | |
|     BooleanExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| LogicalBinaryContext.prototype = Object.create(BooleanExpressionContext.prototype);
 | |
| LogicalBinaryContext.prototype.constructor = LogicalBinaryContext;
 | |
| sqlParser.LogicalBinaryContext = LogicalBinaryContext;
 | |
| LogicalBinaryContext.prototype.booleanExpression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(BooleanExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(BooleanExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| LogicalBinaryContext.prototype.AND = function () {
 | |
|     return this.getToken(sqlParser.AND, 0);
 | |
| };
 | |
| LogicalBinaryContext.prototype.OR = function () {
 | |
|     return this.getToken(sqlParser.OR, 0);
 | |
| };
 | |
| LogicalBinaryContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterLogicalBinary(this);
 | |
|     }
 | |
| };
 | |
| LogicalBinaryContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitLogicalBinary(this);
 | |
|     }
 | |
| };
 | |
| LogicalBinaryContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitLogicalBinary(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.prototype.booleanExpression = function (_p) {
 | |
|     if (_p === undefined) {
 | |
|         _p = 0;
 | |
|     }
 | |
|     var _parentctx = this._ctx;
 | |
|     var _parentState = this.state;
 | |
|     var localctx = new BooleanExpressionContext(this, this._ctx, _parentState);
 | |
|     var _prevctx = localctx;
 | |
|     var _startState = 164;
 | |
|     this.enterRecursionRule(localctx, 164, sqlParser.RULE_booleanExpression, _p);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2156;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 282, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 localctx = new LogicalNotContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2145;
 | |
|                 this.match(sqlParser.NOT);
 | |
|                 this.state = 2146;
 | |
|                 this.booleanExpression(5);
 | |
|                 break;
 | |
|             case 2:
 | |
|                 localctx = new ExistsContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2147;
 | |
|                 this.match(sqlParser.EXISTS);
 | |
|                 this.state = 2148;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2149;
 | |
|                 this.query();
 | |
|                 this.state = 2150;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 3:
 | |
|                 localctx = new PredicatedContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2152;
 | |
|                 this.valueExpression(0);
 | |
|                 this.state = 2154;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 281, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 2153;
 | |
|                     this.predicate();
 | |
|                 }
 | |
|                 break;
 | |
|         }
 | |
|         this._ctx.stop = this._input.LT(-1);
 | |
|         this.state = 2166;
 | |
|         this._errHandler.sync(this);
 | |
|         var _alt = this._interp.adaptivePredict(this._input, 284, 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 = 2164;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 283, this._ctx);
 | |
|                 switch (la_) {
 | |
|                     case 1:
 | |
|                         localctx = new LogicalBinaryContext(this, new BooleanExpressionContext(this, _parentctx, _parentState));
 | |
|                         localctx.left = _prevctx;
 | |
|                         this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_booleanExpression);
 | |
|                         this.state = 2158;
 | |
|                         if (!(this.precpred(this._ctx, 2))) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)");
 | |
|                         }
 | |
|                         this.state = 2159;
 | |
|                         localctx.operator = this.match(sqlParser.AND);
 | |
|                         this.state = 2160;
 | |
|                         localctx.right = this.booleanExpression(3);
 | |
|                         break;
 | |
|                     case 2:
 | |
|                         localctx = new LogicalBinaryContext(this, new BooleanExpressionContext(this, _parentctx, _parentState));
 | |
|                         localctx.left = _prevctx;
 | |
|                         this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_booleanExpression);
 | |
|                         this.state = 2161;
 | |
|                         if (!(this.precpred(this._ctx, 1))) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)");
 | |
|                         }
 | |
|                         this.state = 2162;
 | |
|                         localctx.operator = this.match(sqlParser.OR);
 | |
|                         this.state = 2163;
 | |
|                         localctx.right = this.booleanExpression(2);
 | |
|                         break;
 | |
|                 }
 | |
|             }
 | |
|             this.state = 2168;
 | |
|             this._errHandler.sync(this);
 | |
|             _alt = this._interp.adaptivePredict(this._input, 284, 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;
 | |
|     this.kind = null; // Token
 | |
|     this.lower = null; // ValueExpressionContext
 | |
|     this.upper = null; // ValueExpressionContext
 | |
|     this.pattern = null; // ValueExpressionContext
 | |
|     this.right = null; // ValueExpressionContext
 | |
|     return this;
 | |
| }
 | |
| PredicateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| PredicateContext.prototype.constructor = PredicateContext;
 | |
| PredicateContext.prototype.AND = function () {
 | |
|     return this.getToken(sqlParser.AND, 0);
 | |
| };
 | |
| PredicateContext.prototype.BETWEEN = function () {
 | |
|     return this.getToken(sqlParser.BETWEEN, 0);
 | |
| };
 | |
| PredicateContext.prototype.valueExpression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ValueExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ValueExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| PredicateContext.prototype.NOT = function () {
 | |
|     return this.getToken(sqlParser.NOT, 0);
 | |
| };
 | |
| PredicateContext.prototype.expression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| PredicateContext.prototype.IN = function () {
 | |
|     return this.getToken(sqlParser.IN, 0);
 | |
| };
 | |
| PredicateContext.prototype.query = function () {
 | |
|     return this.getTypedRuleContext(QueryContext, 0);
 | |
| };
 | |
| PredicateContext.prototype.RLIKE = function () {
 | |
|     return this.getToken(sqlParser.RLIKE, 0);
 | |
| };
 | |
| PredicateContext.prototype.LIKE = function () {
 | |
|     return this.getToken(sqlParser.LIKE, 0);
 | |
| };
 | |
| PredicateContext.prototype.IS = function () {
 | |
|     return this.getToken(sqlParser.IS, 0);
 | |
| };
 | |
| PredicateContext.prototype.NULL = function () {
 | |
|     return this.getToken(sqlParser.NULL, 0);
 | |
| };
 | |
| PredicateContext.prototype.FROM = function () {
 | |
|     return this.getToken(sqlParser.FROM, 0);
 | |
| };
 | |
| PredicateContext.prototype.DISTINCT = function () {
 | |
|     return this.getToken(sqlParser.DISTINCT, 0);
 | |
| };
 | |
| PredicateContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPredicate(this);
 | |
|     }
 | |
| };
 | |
| PredicateContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPredicate(this);
 | |
|     }
 | |
| };
 | |
| PredicateContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPredicate(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.PredicateContext = PredicateContext;
 | |
| sqlParser.prototype.predicate = function () {
 | |
|     var localctx = new PredicateContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 166, sqlParser.RULE_predicate);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 2217;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 292, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 2170;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.NOT) {
 | |
|                     this.state = 2169;
 | |
|                     this.match(sqlParser.NOT);
 | |
|                 }
 | |
|                 this.state = 2172;
 | |
|                 localctx.kind = this.match(sqlParser.BETWEEN);
 | |
|                 this.state = 2173;
 | |
|                 localctx.lower = this.valueExpression(0);
 | |
|                 this.state = 2174;
 | |
|                 this.match(sqlParser.AND);
 | |
|                 this.state = 2175;
 | |
|                 localctx.upper = this.valueExpression(0);
 | |
|                 break;
 | |
|             case 2:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 2178;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.NOT) {
 | |
|                     this.state = 2177;
 | |
|                     this.match(sqlParser.NOT);
 | |
|                 }
 | |
|                 this.state = 2180;
 | |
|                 localctx.kind = this.match(sqlParser.IN);
 | |
|                 this.state = 2181;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2182;
 | |
|                 this.expression();
 | |
|                 this.state = 2187;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 while (_la === sqlParser.T__3) {
 | |
|                     this.state = 2183;
 | |
|                     this.match(sqlParser.T__3);
 | |
|                     this.state = 2184;
 | |
|                     this.expression();
 | |
|                     this.state = 2189;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 }
 | |
|                 this.state = 2190;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 3:
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 2193;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.NOT) {
 | |
|                     this.state = 2192;
 | |
|                     this.match(sqlParser.NOT);
 | |
|                 }
 | |
|                 this.state = 2195;
 | |
|                 localctx.kind = this.match(sqlParser.IN);
 | |
|                 this.state = 2196;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2197;
 | |
|                 this.query();
 | |
|                 this.state = 2198;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 4:
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 2201;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.NOT) {
 | |
|                     this.state = 2200;
 | |
|                     this.match(sqlParser.NOT);
 | |
|                 }
 | |
|                 this.state = 2203;
 | |
|                 localctx.kind = this._input.LT(1);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(_la === sqlParser.LIKE || _la === sqlParser.RLIKE)) {
 | |
|                     localctx.kind = this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 this.state = 2204;
 | |
|                 localctx.pattern = this.valueExpression(0);
 | |
|                 break;
 | |
|             case 5:
 | |
|                 this.enterOuterAlt(localctx, 5);
 | |
|                 this.state = 2205;
 | |
|                 this.match(sqlParser.IS);
 | |
|                 this.state = 2207;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.NOT) {
 | |
|                     this.state = 2206;
 | |
|                     this.match(sqlParser.NOT);
 | |
|                 }
 | |
|                 this.state = 2209;
 | |
|                 localctx.kind = this.match(sqlParser.NULL);
 | |
|                 break;
 | |
|             case 6:
 | |
|                 this.enterOuterAlt(localctx, 6);
 | |
|                 this.state = 2210;
 | |
|                 this.match(sqlParser.IS);
 | |
|                 this.state = 2212;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.NOT) {
 | |
|                     this.state = 2211;
 | |
|                     this.match(sqlParser.NOT);
 | |
|                 }
 | |
|                 this.state = 2214;
 | |
|                 localctx.kind = this.match(sqlParser.DISTINCT);
 | |
|                 this.state = 2215;
 | |
|                 this.match(sqlParser.FROM);
 | |
|                 this.state = 2216;
 | |
|                 localctx.right = this.valueExpression(0);
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function ValueExpressionContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_valueExpression;
 | |
|     return this;
 | |
| }
 | |
| ValueExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| ValueExpressionContext.prototype.constructor = ValueExpressionContext;
 | |
| ValueExpressionContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function ValueExpressionDefaultContext(parser, ctx) {
 | |
|     ValueExpressionContext.call(this, parser);
 | |
|     ValueExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ValueExpressionDefaultContext.prototype = Object.create(ValueExpressionContext.prototype);
 | |
| ValueExpressionDefaultContext.prototype.constructor = ValueExpressionDefaultContext;
 | |
| sqlParser.ValueExpressionDefaultContext = ValueExpressionDefaultContext;
 | |
| ValueExpressionDefaultContext.prototype.primaryExpression = function () {
 | |
|     return this.getTypedRuleContext(PrimaryExpressionContext, 0);
 | |
| };
 | |
| ValueExpressionDefaultContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterValueExpressionDefault(this);
 | |
|     }
 | |
| };
 | |
| ValueExpressionDefaultContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitValueExpressionDefault(this);
 | |
|     }
 | |
| };
 | |
| ValueExpressionDefaultContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitValueExpressionDefault(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ComparisonContext(parser, ctx) {
 | |
|     ValueExpressionContext.call(this, parser);
 | |
|     this.left = null; // ValueExpressionContext;
 | |
|     this.right = null; // ValueExpressionContext;
 | |
|     ValueExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ComparisonContext.prototype = Object.create(ValueExpressionContext.prototype);
 | |
| ComparisonContext.prototype.constructor = ComparisonContext;
 | |
| sqlParser.ComparisonContext = ComparisonContext;
 | |
| ComparisonContext.prototype.comparisonOperator = function () {
 | |
|     return this.getTypedRuleContext(ComparisonOperatorContext, 0);
 | |
| };
 | |
| ComparisonContext.prototype.valueExpression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ValueExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ValueExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| ComparisonContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterComparison(this);
 | |
|     }
 | |
| };
 | |
| ComparisonContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitComparison(this);
 | |
|     }
 | |
| };
 | |
| ComparisonContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitComparison(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ArithmeticBinaryContext(parser, ctx) {
 | |
|     ValueExpressionContext.call(this, parser);
 | |
|     this.left = null; // ValueExpressionContext;
 | |
|     this.operator = null; // Token;
 | |
|     this.right = null; // ValueExpressionContext;
 | |
|     ValueExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ArithmeticBinaryContext.prototype = Object.create(ValueExpressionContext.prototype);
 | |
| ArithmeticBinaryContext.prototype.constructor = ArithmeticBinaryContext;
 | |
| sqlParser.ArithmeticBinaryContext = ArithmeticBinaryContext;
 | |
| ArithmeticBinaryContext.prototype.valueExpression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ValueExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ValueExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| ArithmeticBinaryContext.prototype.ASTERISK = function () {
 | |
|     return this.getToken(sqlParser.ASTERISK, 0);
 | |
| };
 | |
| ArithmeticBinaryContext.prototype.SLASH = function () {
 | |
|     return this.getToken(sqlParser.SLASH, 0);
 | |
| };
 | |
| ArithmeticBinaryContext.prototype.PERCENT = function () {
 | |
|     return this.getToken(sqlParser.PERCENT, 0);
 | |
| };
 | |
| ArithmeticBinaryContext.prototype.DIV = function () {
 | |
|     return this.getToken(sqlParser.DIV, 0);
 | |
| };
 | |
| ArithmeticBinaryContext.prototype.PLUS = function () {
 | |
|     return this.getToken(sqlParser.PLUS, 0);
 | |
| };
 | |
| ArithmeticBinaryContext.prototype.MINUS = function () {
 | |
|     return this.getToken(sqlParser.MINUS, 0);
 | |
| };
 | |
| ArithmeticBinaryContext.prototype.CONCAT_PIPE = function () {
 | |
|     return this.getToken(sqlParser.CONCAT_PIPE, 0);
 | |
| };
 | |
| ArithmeticBinaryContext.prototype.AMPERSAND = function () {
 | |
|     return this.getToken(sqlParser.AMPERSAND, 0);
 | |
| };
 | |
| ArithmeticBinaryContext.prototype.HAT = function () {
 | |
|     return this.getToken(sqlParser.HAT, 0);
 | |
| };
 | |
| ArithmeticBinaryContext.prototype.PIPE = function () {
 | |
|     return this.getToken(sqlParser.PIPE, 0);
 | |
| };
 | |
| ArithmeticBinaryContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterArithmeticBinary(this);
 | |
|     }
 | |
| };
 | |
| ArithmeticBinaryContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitArithmeticBinary(this);
 | |
|     }
 | |
| };
 | |
| ArithmeticBinaryContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitArithmeticBinary(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ArithmeticUnaryContext(parser, ctx) {
 | |
|     ValueExpressionContext.call(this, parser);
 | |
|     this.operator = null; // Token;
 | |
|     ValueExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ArithmeticUnaryContext.prototype = Object.create(ValueExpressionContext.prototype);
 | |
| ArithmeticUnaryContext.prototype.constructor = ArithmeticUnaryContext;
 | |
| sqlParser.ArithmeticUnaryContext = ArithmeticUnaryContext;
 | |
| ArithmeticUnaryContext.prototype.valueExpression = function () {
 | |
|     return this.getTypedRuleContext(ValueExpressionContext, 0);
 | |
| };
 | |
| ArithmeticUnaryContext.prototype.MINUS = function () {
 | |
|     return this.getToken(sqlParser.MINUS, 0);
 | |
| };
 | |
| ArithmeticUnaryContext.prototype.PLUS = function () {
 | |
|     return this.getToken(sqlParser.PLUS, 0);
 | |
| };
 | |
| ArithmeticUnaryContext.prototype.TILDE = function () {
 | |
|     return this.getToken(sqlParser.TILDE, 0);
 | |
| };
 | |
| ArithmeticUnaryContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterArithmeticUnary(this);
 | |
|     }
 | |
| };
 | |
| ArithmeticUnaryContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitArithmeticUnary(this);
 | |
|     }
 | |
| };
 | |
| ArithmeticUnaryContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitArithmeticUnary(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.prototype.valueExpression = function (_p) {
 | |
|     if (_p === undefined) {
 | |
|         _p = 0;
 | |
|     }
 | |
|     var _parentctx = this._ctx;
 | |
|     var _parentState = this.state;
 | |
|     var localctx = new ValueExpressionContext(this, this._ctx, _parentState);
 | |
|     var _prevctx = localctx;
 | |
|     var _startState = 168;
 | |
|     this.enterRecursionRule(localctx, 168, sqlParser.RULE_valueExpression, _p);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2223;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 293, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 localctx = new ValueExpressionDefaultContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2220;
 | |
|                 this.primaryExpression(0);
 | |
|                 break;
 | |
|             case 2:
 | |
|                 localctx = new ArithmeticUnaryContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2221;
 | |
|                 localctx.operator = this._input.LT(1);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(((((_la - 144)) & ~0x1f) == 0 && ((1 << (_la - 144)) & ((1 << (sqlParser.PLUS - 144)) | (1 << (sqlParser.MINUS - 144)) | (1 << (sqlParser.TILDE - 144)))) !== 0))) {
 | |
|                     localctx.operator = this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 this.state = 2222;
 | |
|                 this.valueExpression(7);
 | |
|                 break;
 | |
|         }
 | |
|         this._ctx.stop = this._input.LT(-1);
 | |
|         this.state = 2246;
 | |
|         this._errHandler.sync(this);
 | |
|         var _alt = this._interp.adaptivePredict(this._input, 295, 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 = 2244;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 294, this._ctx);
 | |
|                 switch (la_) {
 | |
|                     case 1:
 | |
|                         localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState));
 | |
|                         localctx.left = _prevctx;
 | |
|                         this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression);
 | |
|                         this.state = 2225;
 | |
|                         if (!(this.precpred(this._ctx, 6))) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 6)");
 | |
|                         }
 | |
|                         this.state = 2226;
 | |
|                         localctx.operator = this._input.LT(1);
 | |
|                         _la = this._input.LA(1);
 | |
|                         if (!(((((_la - 146)) & ~0x1f) == 0 && ((1 << (_la - 146)) & ((1 << (sqlParser.ASTERISK - 146)) | (1 << (sqlParser.SLASH - 146)) | (1 << (sqlParser.PERCENT - 146)) | (1 << (sqlParser.DIV - 146)))) !== 0))) {
 | |
|                             localctx.operator = this._errHandler.recoverInline(this);
 | |
|                         }
 | |
|                         else {
 | |
|                             this._errHandler.reportMatch(this);
 | |
|                             this.consume();
 | |
|                         }
 | |
|                         this.state = 2227;
 | |
|                         localctx.right = this.valueExpression(7);
 | |
|                         break;
 | |
|                     case 2:
 | |
|                         localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState));
 | |
|                         localctx.left = _prevctx;
 | |
|                         this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression);
 | |
|                         this.state = 2228;
 | |
|                         if (!(this.precpred(this._ctx, 5))) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)");
 | |
|                         }
 | |
|                         this.state = 2229;
 | |
|                         localctx.operator = this._input.LT(1);
 | |
|                         _la = this._input.LA(1);
 | |
|                         if (!(((((_la - 144)) & ~0x1f) == 0 && ((1 << (_la - 144)) & ((1 << (sqlParser.PLUS - 144)) | (1 << (sqlParser.MINUS - 144)) | (1 << (sqlParser.CONCAT_PIPE - 144)))) !== 0))) {
 | |
|                             localctx.operator = this._errHandler.recoverInline(this);
 | |
|                         }
 | |
|                         else {
 | |
|                             this._errHandler.reportMatch(this);
 | |
|                             this.consume();
 | |
|                         }
 | |
|                         this.state = 2230;
 | |
|                         localctx.right = this.valueExpression(6);
 | |
|                         break;
 | |
|                     case 3:
 | |
|                         localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState));
 | |
|                         localctx.left = _prevctx;
 | |
|                         this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression);
 | |
|                         this.state = 2231;
 | |
|                         if (!(this.precpred(this._ctx, 4))) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 4)");
 | |
|                         }
 | |
|                         this.state = 2232;
 | |
|                         localctx.operator = this.match(sqlParser.AMPERSAND);
 | |
|                         this.state = 2233;
 | |
|                         localctx.right = this.valueExpression(5);
 | |
|                         break;
 | |
|                     case 4:
 | |
|                         localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState));
 | |
|                         localctx.left = _prevctx;
 | |
|                         this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression);
 | |
|                         this.state = 2234;
 | |
|                         if (!(this.precpred(this._ctx, 3))) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)");
 | |
|                         }
 | |
|                         this.state = 2235;
 | |
|                         localctx.operator = this.match(sqlParser.HAT);
 | |
|                         this.state = 2236;
 | |
|                         localctx.right = this.valueExpression(4);
 | |
|                         break;
 | |
|                     case 5:
 | |
|                         localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState));
 | |
|                         localctx.left = _prevctx;
 | |
|                         this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression);
 | |
|                         this.state = 2237;
 | |
|                         if (!(this.precpred(this._ctx, 2))) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)");
 | |
|                         }
 | |
|                         this.state = 2238;
 | |
|                         localctx.operator = this.match(sqlParser.PIPE);
 | |
|                         this.state = 2239;
 | |
|                         localctx.right = this.valueExpression(3);
 | |
|                         break;
 | |
|                     case 6:
 | |
|                         localctx = new ComparisonContext(this, new ValueExpressionContext(this, _parentctx, _parentState));
 | |
|                         localctx.left = _prevctx;
 | |
|                         this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression);
 | |
|                         this.state = 2240;
 | |
|                         if (!(this.precpred(this._ctx, 1))) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)");
 | |
|                         }
 | |
|                         this.state = 2241;
 | |
|                         this.comparisonOperator();
 | |
|                         this.state = 2242;
 | |
|                         localctx.right = this.valueExpression(2);
 | |
|                         break;
 | |
|                 }
 | |
|             }
 | |
|             this.state = 2248;
 | |
|             this._errHandler.sync(this);
 | |
|             _alt = this._interp.adaptivePredict(this._input, 295, 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 PrimaryExpressionContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_primaryExpression;
 | |
|     return this;
 | |
| }
 | |
| PrimaryExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| PrimaryExpressionContext.prototype.constructor = PrimaryExpressionContext;
 | |
| PrimaryExpressionContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function StructContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     this._namedExpression = null; // NamedExpressionContext;
 | |
|     this.argument = []; // of NamedExpressionContexts;
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| StructContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| StructContext.prototype.constructor = StructContext;
 | |
| sqlParser.StructContext = StructContext;
 | |
| StructContext.prototype.STRUCT = function () {
 | |
|     return this.getToken(sqlParser.STRUCT, 0);
 | |
| };
 | |
| StructContext.prototype.namedExpression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(NamedExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(NamedExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| StructContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterStruct(this);
 | |
|     }
 | |
| };
 | |
| StructContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitStruct(this);
 | |
|     }
 | |
| };
 | |
| StructContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitStruct(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function DereferenceContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     this.base = null; // PrimaryExpressionContext;
 | |
|     this.fieldName = null; // IdentifierContext;
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| DereferenceContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| DereferenceContext.prototype.constructor = DereferenceContext;
 | |
| sqlParser.DereferenceContext = DereferenceContext;
 | |
| DereferenceContext.prototype.primaryExpression = function () {
 | |
|     return this.getTypedRuleContext(PrimaryExpressionContext, 0);
 | |
| };
 | |
| DereferenceContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| DereferenceContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterDereference(this);
 | |
|     }
 | |
| };
 | |
| DereferenceContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitDereference(this);
 | |
|     }
 | |
| };
 | |
| DereferenceContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitDereference(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function SimpleCaseContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     this.value = null; // ExpressionContext;
 | |
|     this.elseExpression = null; // ExpressionContext;
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SimpleCaseContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| SimpleCaseContext.prototype.constructor = SimpleCaseContext;
 | |
| sqlParser.SimpleCaseContext = SimpleCaseContext;
 | |
| SimpleCaseContext.prototype.CASE = function () {
 | |
|     return this.getToken(sqlParser.CASE, 0);
 | |
| };
 | |
| SimpleCaseContext.prototype.END = function () {
 | |
|     return this.getToken(sqlParser.END, 0);
 | |
| };
 | |
| SimpleCaseContext.prototype.expression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| SimpleCaseContext.prototype.whenClause = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(WhenClauseContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(WhenClauseContext, i);
 | |
|     }
 | |
| };
 | |
| SimpleCaseContext.prototype.ELSE = function () {
 | |
|     return this.getToken(sqlParser.ELSE, 0);
 | |
| };
 | |
| SimpleCaseContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSimpleCase(this);
 | |
|     }
 | |
| };
 | |
| SimpleCaseContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSimpleCase(this);
 | |
|     }
 | |
| };
 | |
| SimpleCaseContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSimpleCase(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ColumnReferenceContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ColumnReferenceContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| ColumnReferenceContext.prototype.constructor = ColumnReferenceContext;
 | |
| sqlParser.ColumnReferenceContext = ColumnReferenceContext;
 | |
| ColumnReferenceContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| ColumnReferenceContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterColumnReference(this);
 | |
|     }
 | |
| };
 | |
| ColumnReferenceContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitColumnReference(this);
 | |
|     }
 | |
| };
 | |
| ColumnReferenceContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitColumnReference(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function RowConstructorContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| RowConstructorContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| RowConstructorContext.prototype.constructor = RowConstructorContext;
 | |
| sqlParser.RowConstructorContext = RowConstructorContext;
 | |
| RowConstructorContext.prototype.namedExpression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(NamedExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(NamedExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| RowConstructorContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterRowConstructor(this);
 | |
|     }
 | |
| };
 | |
| RowConstructorContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitRowConstructor(this);
 | |
|     }
 | |
| };
 | |
| RowConstructorContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitRowConstructor(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function LastContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| LastContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| LastContext.prototype.constructor = LastContext;
 | |
| sqlParser.LastContext = LastContext;
 | |
| LastContext.prototype.LAST = function () {
 | |
|     return this.getToken(sqlParser.LAST, 0);
 | |
| };
 | |
| LastContext.prototype.expression = function () {
 | |
|     return this.getTypedRuleContext(ExpressionContext, 0);
 | |
| };
 | |
| LastContext.prototype.IGNORE = function () {
 | |
|     return this.getToken(sqlParser.IGNORE, 0);
 | |
| };
 | |
| LastContext.prototype.NULLS = function () {
 | |
|     return this.getToken(sqlParser.NULLS, 0);
 | |
| };
 | |
| LastContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterLast(this);
 | |
|     }
 | |
| };
 | |
| LastContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitLast(this);
 | |
|     }
 | |
| };
 | |
| LastContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitLast(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function StarContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| StarContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| StarContext.prototype.constructor = StarContext;
 | |
| sqlParser.StarContext = StarContext;
 | |
| StarContext.prototype.ASTERISK = function () {
 | |
|     return this.getToken(sqlParser.ASTERISK, 0);
 | |
| };
 | |
| StarContext.prototype.qualifiedName = function () {
 | |
|     return this.getTypedRuleContext(QualifiedNameContext, 0);
 | |
| };
 | |
| StarContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterStar(this);
 | |
|     }
 | |
| };
 | |
| StarContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitStar(this);
 | |
|     }
 | |
| };
 | |
| StarContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitStar(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function SubscriptContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     this.value = null; // PrimaryExpressionContext;
 | |
|     this.index = null; // ValueExpressionContext;
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SubscriptContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| SubscriptContext.prototype.constructor = SubscriptContext;
 | |
| sqlParser.SubscriptContext = SubscriptContext;
 | |
| SubscriptContext.prototype.primaryExpression = function () {
 | |
|     return this.getTypedRuleContext(PrimaryExpressionContext, 0);
 | |
| };
 | |
| SubscriptContext.prototype.valueExpression = function () {
 | |
|     return this.getTypedRuleContext(ValueExpressionContext, 0);
 | |
| };
 | |
| SubscriptContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSubscript(this);
 | |
|     }
 | |
| };
 | |
| SubscriptContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSubscript(this);
 | |
|     }
 | |
| };
 | |
| SubscriptContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSubscript(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function SubqueryExpressionContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SubqueryExpressionContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| SubqueryExpressionContext.prototype.constructor = SubqueryExpressionContext;
 | |
| sqlParser.SubqueryExpressionContext = SubqueryExpressionContext;
 | |
| SubqueryExpressionContext.prototype.query = function () {
 | |
|     return this.getTypedRuleContext(QueryContext, 0);
 | |
| };
 | |
| SubqueryExpressionContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSubqueryExpression(this);
 | |
|     }
 | |
| };
 | |
| SubqueryExpressionContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSubqueryExpression(this);
 | |
|     }
 | |
| };
 | |
| SubqueryExpressionContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSubqueryExpression(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function CastContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| CastContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| CastContext.prototype.constructor = CastContext;
 | |
| sqlParser.CastContext = CastContext;
 | |
| CastContext.prototype.CAST = function () {
 | |
|     return this.getToken(sqlParser.CAST, 0);
 | |
| };
 | |
| CastContext.prototype.expression = function () {
 | |
|     return this.getTypedRuleContext(ExpressionContext, 0);
 | |
| };
 | |
| CastContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| CastContext.prototype.dataType = function () {
 | |
|     return this.getTypedRuleContext(DataTypeContext, 0);
 | |
| };
 | |
| CastContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterCast(this);
 | |
|     }
 | |
| };
 | |
| CastContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitCast(this);
 | |
|     }
 | |
| };
 | |
| CastContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitCast(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ConstantDefaultContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ConstantDefaultContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| ConstantDefaultContext.prototype.constructor = ConstantDefaultContext;
 | |
| sqlParser.ConstantDefaultContext = ConstantDefaultContext;
 | |
| ConstantDefaultContext.prototype.constant = function () {
 | |
|     return this.getTypedRuleContext(ConstantContext, 0);
 | |
| };
 | |
| ConstantDefaultContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterConstantDefault(this);
 | |
|     }
 | |
| };
 | |
| ConstantDefaultContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitConstantDefault(this);
 | |
|     }
 | |
| };
 | |
| ConstantDefaultContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitConstantDefault(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function LambdaContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| LambdaContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| LambdaContext.prototype.constructor = LambdaContext;
 | |
| sqlParser.LambdaContext = LambdaContext;
 | |
| LambdaContext.prototype.IDENTIFIER = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.IDENTIFIER);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.IDENTIFIER, i);
 | |
|     }
 | |
| };
 | |
| LambdaContext.prototype.expression = function () {
 | |
|     return this.getTypedRuleContext(ExpressionContext, 0);
 | |
| };
 | |
| LambdaContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterLambda(this);
 | |
|     }
 | |
| };
 | |
| LambdaContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitLambda(this);
 | |
|     }
 | |
| };
 | |
| LambdaContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitLambda(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ParenthesizedExpressionContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ParenthesizedExpressionContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| ParenthesizedExpressionContext.prototype.constructor = ParenthesizedExpressionContext;
 | |
| sqlParser.ParenthesizedExpressionContext = ParenthesizedExpressionContext;
 | |
| ParenthesizedExpressionContext.prototype.expression = function () {
 | |
|     return this.getTypedRuleContext(ExpressionContext, 0);
 | |
| };
 | |
| ParenthesizedExpressionContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterParenthesizedExpression(this);
 | |
|     }
 | |
| };
 | |
| ParenthesizedExpressionContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitParenthesizedExpression(this);
 | |
|     }
 | |
| };
 | |
| ParenthesizedExpressionContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitParenthesizedExpression(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function ExtractContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     this.field = null; // IdentifierContext;
 | |
|     this.source = null; // ValueExpressionContext;
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ExtractContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| ExtractContext.prototype.constructor = ExtractContext;
 | |
| sqlParser.ExtractContext = ExtractContext;
 | |
| ExtractContext.prototype.EXTRACT = function () {
 | |
|     return this.getToken(sqlParser.EXTRACT, 0);
 | |
| };
 | |
| ExtractContext.prototype.FROM = function () {
 | |
|     return this.getToken(sqlParser.FROM, 0);
 | |
| };
 | |
| ExtractContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| ExtractContext.prototype.valueExpression = function () {
 | |
|     return this.getTypedRuleContext(ValueExpressionContext, 0);
 | |
| };
 | |
| ExtractContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterExtract(this);
 | |
|     }
 | |
| };
 | |
| ExtractContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitExtract(this);
 | |
|     }
 | |
| };
 | |
| ExtractContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitExtract(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function FunctionCallContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     this._expression = null; // ExpressionContext;
 | |
|     this.argument = []; // of ExpressionContexts;
 | |
|     this.trimOption = null; // Token;
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| FunctionCallContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| FunctionCallContext.prototype.constructor = FunctionCallContext;
 | |
| sqlParser.FunctionCallContext = FunctionCallContext;
 | |
| FunctionCallContext.prototype.qualifiedName = function () {
 | |
|     return this.getTypedRuleContext(QualifiedNameContext, 0);
 | |
| };
 | |
| FunctionCallContext.prototype.OVER = function () {
 | |
|     return this.getToken(sqlParser.OVER, 0);
 | |
| };
 | |
| FunctionCallContext.prototype.windowSpec = function () {
 | |
|     return this.getTypedRuleContext(WindowSpecContext, 0);
 | |
| };
 | |
| FunctionCallContext.prototype.expression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| FunctionCallContext.prototype.setQuantifier = function () {
 | |
|     return this.getTypedRuleContext(SetQuantifierContext, 0);
 | |
| };
 | |
| FunctionCallContext.prototype.FROM = function () {
 | |
|     return this.getToken(sqlParser.FROM, 0);
 | |
| };
 | |
| FunctionCallContext.prototype.BOTH = function () {
 | |
|     return this.getToken(sqlParser.BOTH, 0);
 | |
| };
 | |
| FunctionCallContext.prototype.LEADING = function () {
 | |
|     return this.getToken(sqlParser.LEADING, 0);
 | |
| };
 | |
| FunctionCallContext.prototype.TRAILING = function () {
 | |
|     return this.getToken(sqlParser.TRAILING, 0);
 | |
| };
 | |
| FunctionCallContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterFunctionCall(this);
 | |
|     }
 | |
| };
 | |
| FunctionCallContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitFunctionCall(this);
 | |
|     }
 | |
| };
 | |
| FunctionCallContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitFunctionCall(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function SearchedCaseContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     this.elseExpression = null; // ExpressionContext;
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SearchedCaseContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| SearchedCaseContext.prototype.constructor = SearchedCaseContext;
 | |
| sqlParser.SearchedCaseContext = SearchedCaseContext;
 | |
| SearchedCaseContext.prototype.CASE = function () {
 | |
|     return this.getToken(sqlParser.CASE, 0);
 | |
| };
 | |
| SearchedCaseContext.prototype.END = function () {
 | |
|     return this.getToken(sqlParser.END, 0);
 | |
| };
 | |
| SearchedCaseContext.prototype.whenClause = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(WhenClauseContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(WhenClauseContext, i);
 | |
|     }
 | |
| };
 | |
| SearchedCaseContext.prototype.ELSE = function () {
 | |
|     return this.getToken(sqlParser.ELSE, 0);
 | |
| };
 | |
| SearchedCaseContext.prototype.expression = function () {
 | |
|     return this.getTypedRuleContext(ExpressionContext, 0);
 | |
| };
 | |
| SearchedCaseContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSearchedCase(this);
 | |
|     }
 | |
| };
 | |
| SearchedCaseContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSearchedCase(this);
 | |
|     }
 | |
| };
 | |
| SearchedCaseContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSearchedCase(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function PositionContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     this.substr = null; // ValueExpressionContext;
 | |
|     this.str = null; // ValueExpressionContext;
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| PositionContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| PositionContext.prototype.constructor = PositionContext;
 | |
| sqlParser.PositionContext = PositionContext;
 | |
| PositionContext.prototype.POSITION = function () {
 | |
|     return this.getToken(sqlParser.POSITION, 0);
 | |
| };
 | |
| PositionContext.prototype.IN = function () {
 | |
|     return this.getToken(sqlParser.IN, 0);
 | |
| };
 | |
| PositionContext.prototype.valueExpression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ValueExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ValueExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| PositionContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPosition(this);
 | |
|     }
 | |
| };
 | |
| PositionContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPosition(this);
 | |
|     }
 | |
| };
 | |
| PositionContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPosition(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function FirstContext(parser, ctx) {
 | |
|     PrimaryExpressionContext.call(this, parser);
 | |
|     PrimaryExpressionContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| FirstContext.prototype = Object.create(PrimaryExpressionContext.prototype);
 | |
| FirstContext.prototype.constructor = FirstContext;
 | |
| sqlParser.FirstContext = FirstContext;
 | |
| FirstContext.prototype.FIRST = function () {
 | |
|     return this.getToken(sqlParser.FIRST, 0);
 | |
| };
 | |
| FirstContext.prototype.expression = function () {
 | |
|     return this.getTypedRuleContext(ExpressionContext, 0);
 | |
| };
 | |
| FirstContext.prototype.IGNORE = function () {
 | |
|     return this.getToken(sqlParser.IGNORE, 0);
 | |
| };
 | |
| FirstContext.prototype.NULLS = function () {
 | |
|     return this.getToken(sqlParser.NULLS, 0);
 | |
| };
 | |
| FirstContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterFirst(this);
 | |
|     }
 | |
| };
 | |
| FirstContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitFirst(this);
 | |
|     }
 | |
| };
 | |
| FirstContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitFirst(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.prototype.primaryExpression = function (_p) {
 | |
|     if (_p === undefined) {
 | |
|         _p = 0;
 | |
|     }
 | |
|     var _parentctx = this._ctx;
 | |
|     var _parentState = this.state;
 | |
|     var localctx = new PrimaryExpressionContext(this, this._ctx, _parentState);
 | |
|     var _prevctx = localctx;
 | |
|     var _startState = 170;
 | |
|     this.enterRecursionRule(localctx, 170, sqlParser.RULE_primaryExpression, _p);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2394;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 310, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 localctx = new SearchedCaseContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2250;
 | |
|                 this.match(sqlParser.CASE);
 | |
|                 this.state = 2252;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 do {
 | |
|                     this.state = 2251;
 | |
|                     this.whenClause();
 | |
|                     this.state = 2254;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 } while (_la === sqlParser.WHEN);
 | |
|                 this.state = 2258;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.ELSE) {
 | |
|                     this.state = 2256;
 | |
|                     this.match(sqlParser.ELSE);
 | |
|                     this.state = 2257;
 | |
|                     localctx.elseExpression = this.expression();
 | |
|                 }
 | |
|                 this.state = 2260;
 | |
|                 this.match(sqlParser.END);
 | |
|                 break;
 | |
|             case 2:
 | |
|                 localctx = new SimpleCaseContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2262;
 | |
|                 this.match(sqlParser.CASE);
 | |
|                 this.state = 2263;
 | |
|                 localctx.value = this.expression();
 | |
|                 this.state = 2265;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 do {
 | |
|                     this.state = 2264;
 | |
|                     this.whenClause();
 | |
|                     this.state = 2267;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 } while (_la === sqlParser.WHEN);
 | |
|                 this.state = 2271;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.ELSE) {
 | |
|                     this.state = 2269;
 | |
|                     this.match(sqlParser.ELSE);
 | |
|                     this.state = 2270;
 | |
|                     localctx.elseExpression = this.expression();
 | |
|                 }
 | |
|                 this.state = 2273;
 | |
|                 this.match(sqlParser.END);
 | |
|                 break;
 | |
|             case 3:
 | |
|                 localctx = new CastContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2275;
 | |
|                 this.match(sqlParser.CAST);
 | |
|                 this.state = 2276;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2277;
 | |
|                 this.expression();
 | |
|                 this.state = 2278;
 | |
|                 this.match(sqlParser.AS);
 | |
|                 this.state = 2279;
 | |
|                 this.dataType();
 | |
|                 this.state = 2280;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 4:
 | |
|                 localctx = new StructContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2282;
 | |
|                 this.match(sqlParser.STRUCT);
 | |
|                 this.state = 2283;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2292;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.RIGHT - 64)) | (1 << (sqlParser.FULL - 64)) | (1 << (sqlParser.NATURAL - 64)) | (1 << (sqlParser.ON - 64)) | (1 << (sqlParser.PIVOT - 64)) | (1 << (sqlParser.LATERAL - 64)) | (1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)) | (1 << (sqlParser.CAST - 96)) | (1 << (sqlParser.SHOW - 96)) | (1 << (sqlParser.TABLES - 96)) | (1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.MACRO - 128)) | (1 << (sqlParser.IGNORE - 128)) | (1 << (sqlParser.BOTH - 128)) | (1 << (sqlParser.LEADING - 128)) | (1 << (sqlParser.TRAILING - 128)) | (1 << (sqlParser.IF - 128)) | (1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (1 << (sqlParser.ASTERISK - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.TILDE - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)) | (1 << (sqlParser.OF - 128)) | (1 << (sqlParser.SORT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.CLUSTER - 160)) | (1 << (sqlParser.DISTRIBUTE - 160)) | (1 << (sqlParser.OVERWRITE - 160)) | (1 << (sqlParser.TRANSFORM - 160)) | (1 << (sqlParser.REDUCE - 160)) | (1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIES - 160)) | (1 << (sqlParser.RECORDREADER - 160)) | (1 << (sqlParser.RECORDWRITER - 160)) | (1 << (sqlParser.DELIMITED - 160)) | (1 << (sqlParser.FIELDS - 160)) | (1 << (sqlParser.TERMINATED - 160)) | (1 << (sqlParser.COLLECTION - 160)) | (1 << (sqlParser.ITEMS - 160)) | (1 << (sqlParser.KEYS - 160)) | (1 << (sqlParser.ESCAPED - 160)) | (1 << (sqlParser.LINES - 160)) | (1 << (sqlParser.SEPARATED - 160)) | (1 << (sqlParser.FUNCTION - 160)) | (1 << (sqlParser.EXTENDED - 160)) | (1 << (sqlParser.REFRESH - 160)) | (1 << (sqlParser.CLEAR - 160)) | (1 << (sqlParser.CACHE - 160)) | (1 << (sqlParser.UNCACHE - 160)) | (1 << (sqlParser.LAZY - 160)) | (1 << (sqlParser.FORMATTED - 160)) | (1 << (sqlParser.GLOBAL - 160)) | (1 << (sqlParser.TEMPORARY - 160)) | (1 << (sqlParser.OPTIONS - 160)) | (1 << (sqlParser.UNSET - 160)) | (1 << (sqlParser.TBLPROPERTIES - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (sqlParser.DBPROPERTIES - 192)) | (1 << (sqlParser.BUCKETS - 192)) | (1 << (sqlParser.SKEWED - 192)) | (1 << (sqlParser.STORED - 192)) | (1 << (sqlParser.DIRECTORIES - 192)) | (1 << (sqlParser.LOCATION - 192)) | (1 << (sqlParser.EXCHANGE - 192)) | (1 << (sqlParser.ARCHIVE - 192)) | (1 << (sqlParser.UNARCHIVE - 192)) | (1 << (sqlParser.FILEFORMAT - 192)) | (1 << (sqlParser.TOUCH - 192)) | (1 << (sqlParser.COMPACT - 192)) | (1 << (sqlParser.CONCATENATE - 192)) | (1 << (sqlParser.CHANGE - 192)) | (1 << (sqlParser.CASCADE - 192)) | (1 << (sqlParser.RESTRICT - 192)) | (1 << (sqlParser.CLUSTERED - 192)) | (1 << (sqlParser.SORTED - 192)) | (1 << (sqlParser.PURGE - 192)) | (1 << (sqlParser.INPUTFORMAT - 192)) | (1 << (sqlParser.OUTPUTFORMAT - 192)) | (1 << (sqlParser.DATABASE - 192)) | (1 << (sqlParser.DATABASES - 192)) | (1 << (sqlParser.DFS - 192)) | (1 << (sqlParser.TRUNCATE - 192)) | (1 << (sqlParser.ANALYZE - 192)) | (1 << (sqlParser.COMPUTE - 192)) | (1 << (sqlParser.LIST - 192)) | (1 << (sqlParser.STATISTICS - 192)) | (1 << (sqlParser.PARTITIONED - 192)) | (1 << (sqlParser.EXTERNAL - 192)) | (1 << (sqlParser.DEFINED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (sqlParser.REVOKE - 224)) | (1 << (sqlParser.GRANT - 224)) | (1 << (sqlParser.LOCK - 224)) | (1 << (sqlParser.UNLOCK - 224)) | (1 << (sqlParser.MSCK - 224)) | (1 << (sqlParser.REPAIR - 224)) | (1 << (sqlParser.RECOVER - 224)) | (1 << (sqlParser.EXPORT - 224)) | (1 << (sqlParser.IMPORT - 224)) | (1 << (sqlParser.LOAD - 224)) | (1 << (sqlParser.ROLE - 224)) | (1 << (sqlParser.ROLES - 224)) | (1 << (sqlParser.COMPACTIONS - 224)) | (1 << (sqlParser.PRINCIPALS - 224)) | (1 << (sqlParser.TRANSACTIONS - 224)) | (1 << (sqlParser.INDEX - 224)) | (1 << (sqlParser.INDEXES - 224)) | (1 << (sqlParser.LOCKS - 224)) | (1 << (sqlParser.OPTION - 224)) | (1 << (sqlParser.ANTI - 224)) | (1 << (sqlParser.LOCAL - 224)) | (1 << (sqlParser.INPATH - 224)))) !== 0) || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (sqlParser.STRING - 259)) | (1 << (sqlParser.BIGINT_LITERAL - 259)) | (1 << (sqlParser.SMALLINT_LITERAL - 259)) | (1 << (sqlParser.TINYINT_LITERAL - 259)) | (1 << (sqlParser.INTEGER_VALUE - 259)) | (1 << (sqlParser.DECIMAL_VALUE - 259)) | (1 << (sqlParser.DOUBLE_LITERAL - 259)) | (1 << (sqlParser.BIGDECIMAL_LITERAL - 259)) | (1 << (sqlParser.IDENTIFIER - 259)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 259)))) !== 0)) {
 | |
|                     this.state = 2284;
 | |
|                     localctx._namedExpression = this.namedExpression();
 | |
|                     localctx.argument.push(localctx._namedExpression);
 | |
|                     this.state = 2289;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                     while (_la === sqlParser.T__3) {
 | |
|                         this.state = 2285;
 | |
|                         this.match(sqlParser.T__3);
 | |
|                         this.state = 2286;
 | |
|                         localctx._namedExpression = this.namedExpression();
 | |
|                         localctx.argument.push(localctx._namedExpression);
 | |
|                         this.state = 2291;
 | |
|                         this._errHandler.sync(this);
 | |
|                         _la = this._input.LA(1);
 | |
|                     }
 | |
|                 }
 | |
|                 this.state = 2294;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 5:
 | |
|                 localctx = new FirstContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2295;
 | |
|                 this.match(sqlParser.FIRST);
 | |
|                 this.state = 2296;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2297;
 | |
|                 this.expression();
 | |
|                 this.state = 2300;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.IGNORE) {
 | |
|                     this.state = 2298;
 | |
|                     this.match(sqlParser.IGNORE);
 | |
|                     this.state = 2299;
 | |
|                     this.match(sqlParser.NULLS);
 | |
|                 }
 | |
|                 this.state = 2302;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 6:
 | |
|                 localctx = new LastContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2304;
 | |
|                 this.match(sqlParser.LAST);
 | |
|                 this.state = 2305;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2306;
 | |
|                 this.expression();
 | |
|                 this.state = 2309;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.IGNORE) {
 | |
|                     this.state = 2307;
 | |
|                     this.match(sqlParser.IGNORE);
 | |
|                     this.state = 2308;
 | |
|                     this.match(sqlParser.NULLS);
 | |
|                 }
 | |
|                 this.state = 2311;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 7:
 | |
|                 localctx = new PositionContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2313;
 | |
|                 this.match(sqlParser.POSITION);
 | |
|                 this.state = 2314;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2315;
 | |
|                 localctx.substr = this.valueExpression(0);
 | |
|                 this.state = 2316;
 | |
|                 this.match(sqlParser.IN);
 | |
|                 this.state = 2317;
 | |
|                 localctx.str = this.valueExpression(0);
 | |
|                 this.state = 2318;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 8:
 | |
|                 localctx = new ConstantDefaultContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2320;
 | |
|                 this.constant();
 | |
|                 break;
 | |
|             case 9:
 | |
|                 localctx = new StarContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2321;
 | |
|                 this.match(sqlParser.ASTERISK);
 | |
|                 break;
 | |
|             case 10:
 | |
|                 localctx = new StarContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2322;
 | |
|                 this.qualifiedName();
 | |
|                 this.state = 2323;
 | |
|                 this.match(sqlParser.T__2);
 | |
|                 this.state = 2324;
 | |
|                 this.match(sqlParser.ASTERISK);
 | |
|                 break;
 | |
|             case 11:
 | |
|                 localctx = new RowConstructorContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2326;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2327;
 | |
|                 this.namedExpression();
 | |
|                 this.state = 2330;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 do {
 | |
|                     this.state = 2328;
 | |
|                     this.match(sqlParser.T__3);
 | |
|                     this.state = 2329;
 | |
|                     this.namedExpression();
 | |
|                     this.state = 2332;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 } while (_la === sqlParser.T__3);
 | |
|                 this.state = 2334;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 12:
 | |
|                 localctx = new SubqueryExpressionContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2336;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2337;
 | |
|                 this.query();
 | |
|                 this.state = 2338;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 13:
 | |
|                 localctx = new FunctionCallContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2340;
 | |
|                 this.qualifiedName();
 | |
|                 this.state = 2341;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2353;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if ((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)) | (1 << (sqlParser.LEFT - 32)) | (1 << (sqlParser.SEMI - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.RIGHT - 64)) | (1 << (sqlParser.FULL - 64)) | (1 << (sqlParser.NATURAL - 64)) | (1 << (sqlParser.ON - 64)) | (1 << (sqlParser.PIVOT - 64)) | (1 << (sqlParser.LATERAL - 64)) | (1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)) | (1 << (sqlParser.EXPLAIN - 64)) | (1 << (sqlParser.FORMAT - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)) | (1 << (sqlParser.CAST - 96)) | (1 << (sqlParser.SHOW - 96)) | (1 << (sqlParser.TABLES - 96)) | (1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)) | (1 << (sqlParser.COMMIT - 96)) | (1 << (sqlParser.ROLLBACK - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.MACRO - 128)) | (1 << (sqlParser.IGNORE - 128)) | (1 << (sqlParser.BOTH - 128)) | (1 << (sqlParser.LEADING - 128)) | (1 << (sqlParser.TRAILING - 128)) | (1 << (sqlParser.IF - 128)) | (1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (1 << (sqlParser.ASTERISK - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.TILDE - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)) | (1 << (sqlParser.OF - 128)) | (1 << (sqlParser.SORT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.CLUSTER - 160)) | (1 << (sqlParser.DISTRIBUTE - 160)) | (1 << (sqlParser.OVERWRITE - 160)) | (1 << (sqlParser.TRANSFORM - 160)) | (1 << (sqlParser.REDUCE - 160)) | (1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIES - 160)) | (1 << (sqlParser.RECORDREADER - 160)) | (1 << (sqlParser.RECORDWRITER - 160)) | (1 << (sqlParser.DELIMITED - 160)) | (1 << (sqlParser.FIELDS - 160)) | (1 << (sqlParser.TERMINATED - 160)) | (1 << (sqlParser.COLLECTION - 160)) | (1 << (sqlParser.ITEMS - 160)) | (1 << (sqlParser.KEYS - 160)) | (1 << (sqlParser.ESCAPED - 160)) | (1 << (sqlParser.LINES - 160)) | (1 << (sqlParser.SEPARATED - 160)) | (1 << (sqlParser.FUNCTION - 160)) | (1 << (sqlParser.EXTENDED - 160)) | (1 << (sqlParser.REFRESH - 160)) | (1 << (sqlParser.CLEAR - 160)) | (1 << (sqlParser.CACHE - 160)) | (1 << (sqlParser.UNCACHE - 160)) | (1 << (sqlParser.LAZY - 160)) | (1 << (sqlParser.FORMATTED - 160)) | (1 << (sqlParser.GLOBAL - 160)) | (1 << (sqlParser.TEMPORARY - 160)) | (1 << (sqlParser.OPTIONS - 160)) | (1 << (sqlParser.UNSET - 160)) | (1 << (sqlParser.TBLPROPERTIES - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (sqlParser.DBPROPERTIES - 192)) | (1 << (sqlParser.BUCKETS - 192)) | (1 << (sqlParser.SKEWED - 192)) | (1 << (sqlParser.STORED - 192)) | (1 << (sqlParser.DIRECTORIES - 192)) | (1 << (sqlParser.LOCATION - 192)) | (1 << (sqlParser.EXCHANGE - 192)) | (1 << (sqlParser.ARCHIVE - 192)) | (1 << (sqlParser.UNARCHIVE - 192)) | (1 << (sqlParser.FILEFORMAT - 192)) | (1 << (sqlParser.TOUCH - 192)) | (1 << (sqlParser.COMPACT - 192)) | (1 << (sqlParser.CONCATENATE - 192)) | (1 << (sqlParser.CHANGE - 192)) | (1 << (sqlParser.CASCADE - 192)) | (1 << (sqlParser.RESTRICT - 192)) | (1 << (sqlParser.CLUSTERED - 192)) | (1 << (sqlParser.SORTED - 192)) | (1 << (sqlParser.PURGE - 192)) | (1 << (sqlParser.INPUTFORMAT - 192)) | (1 << (sqlParser.OUTPUTFORMAT - 192)) | (1 << (sqlParser.DATABASE - 192)) | (1 << (sqlParser.DATABASES - 192)) | (1 << (sqlParser.DFS - 192)) | (1 << (sqlParser.TRUNCATE - 192)) | (1 << (sqlParser.ANALYZE - 192)) | (1 << (sqlParser.COMPUTE - 192)) | (1 << (sqlParser.LIST - 192)) | (1 << (sqlParser.STATISTICS - 192)) | (1 << (sqlParser.PARTITIONED - 192)) | (1 << (sqlParser.EXTERNAL - 192)) | (1 << (sqlParser.DEFINED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (sqlParser.REVOKE - 224)) | (1 << (sqlParser.GRANT - 224)) | (1 << (sqlParser.LOCK - 224)) | (1 << (sqlParser.UNLOCK - 224)) | (1 << (sqlParser.MSCK - 224)) | (1 << (sqlParser.REPAIR - 224)) | (1 << (sqlParser.RECOVER - 224)) | (1 << (sqlParser.EXPORT - 224)) | (1 << (sqlParser.IMPORT - 224)) | (1 << (sqlParser.LOAD - 224)) | (1 << (sqlParser.ROLE - 224)) | (1 << (sqlParser.ROLES - 224)) | (1 << (sqlParser.COMPACTIONS - 224)) | (1 << (sqlParser.PRINCIPALS - 224)) | (1 << (sqlParser.TRANSACTIONS - 224)) | (1 << (sqlParser.INDEX - 224)) | (1 << (sqlParser.INDEXES - 224)) | (1 << (sqlParser.LOCKS - 224)) | (1 << (sqlParser.OPTION - 224)) | (1 << (sqlParser.ANTI - 224)) | (1 << (sqlParser.LOCAL - 224)) | (1 << (sqlParser.INPATH - 224)))) !== 0) || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (sqlParser.STRING - 259)) | (1 << (sqlParser.BIGINT_LITERAL - 259)) | (1 << (sqlParser.SMALLINT_LITERAL - 259)) | (1 << (sqlParser.TINYINT_LITERAL - 259)) | (1 << (sqlParser.INTEGER_VALUE - 259)) | (1 << (sqlParser.DECIMAL_VALUE - 259)) | (1 << (sqlParser.DOUBLE_LITERAL - 259)) | (1 << (sqlParser.BIGDECIMAL_LITERAL - 259)) | (1 << (sqlParser.IDENTIFIER - 259)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 259)))) !== 0)) {
 | |
|                     this.state = 2343;
 | |
|                     this._errHandler.sync(this);
 | |
|                     var la_ = this._interp.adaptivePredict(this._input, 305, this._ctx);
 | |
|                     if (la_ === 1) {
 | |
|                         this.state = 2342;
 | |
|                         this.setQuantifier();
 | |
|                     }
 | |
|                     this.state = 2345;
 | |
|                     localctx._expression = this.expression();
 | |
|                     localctx.argument.push(localctx._expression);
 | |
|                     this.state = 2350;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                     while (_la === sqlParser.T__3) {
 | |
|                         this.state = 2346;
 | |
|                         this.match(sqlParser.T__3);
 | |
|                         this.state = 2347;
 | |
|                         localctx._expression = this.expression();
 | |
|                         localctx.argument.push(localctx._expression);
 | |
|                         this.state = 2352;
 | |
|                         this._errHandler.sync(this);
 | |
|                         _la = this._input.LA(1);
 | |
|                     }
 | |
|                 }
 | |
|                 this.state = 2355;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 this.state = 2358;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 308, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 2356;
 | |
|                     this.match(sqlParser.OVER);
 | |
|                     this.state = 2357;
 | |
|                     this.windowSpec();
 | |
|                 }
 | |
|                 break;
 | |
|             case 14:
 | |
|                 localctx = new FunctionCallContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2360;
 | |
|                 this.qualifiedName();
 | |
|                 this.state = 2361;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2362;
 | |
|                 localctx.trimOption = this._input.LT(1);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(((((_la - 130)) & ~0x1f) == 0 && ((1 << (_la - 130)) & ((1 << (sqlParser.BOTH - 130)) | (1 << (sqlParser.LEADING - 130)) | (1 << (sqlParser.TRAILING - 130)))) !== 0))) {
 | |
|                     localctx.trimOption = this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 this.state = 2363;
 | |
|                 localctx._expression = this.expression();
 | |
|                 localctx.argument.push(localctx._expression);
 | |
|                 this.state = 2364;
 | |
|                 this.match(sqlParser.FROM);
 | |
|                 this.state = 2365;
 | |
|                 localctx._expression = this.expression();
 | |
|                 localctx.argument.push(localctx._expression);
 | |
|                 this.state = 2366;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 15:
 | |
|                 localctx = new LambdaContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2368;
 | |
|                 this.match(sqlParser.IDENTIFIER);
 | |
|                 this.state = 2369;
 | |
|                 this.match(sqlParser.T__12);
 | |
|                 this.state = 2370;
 | |
|                 this.expression();
 | |
|                 break;
 | |
|             case 16:
 | |
|                 localctx = new LambdaContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2371;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2372;
 | |
|                 this.match(sqlParser.IDENTIFIER);
 | |
|                 this.state = 2375;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 do {
 | |
|                     this.state = 2373;
 | |
|                     this.match(sqlParser.T__3);
 | |
|                     this.state = 2374;
 | |
|                     this.match(sqlParser.IDENTIFIER);
 | |
|                     this.state = 2377;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 } while (_la === sqlParser.T__3);
 | |
|                 this.state = 2379;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 this.state = 2380;
 | |
|                 this.match(sqlParser.T__12);
 | |
|                 this.state = 2381;
 | |
|                 this.expression();
 | |
|                 break;
 | |
|             case 17:
 | |
|                 localctx = new ColumnReferenceContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2382;
 | |
|                 this.identifier();
 | |
|                 break;
 | |
|             case 18:
 | |
|                 localctx = new ParenthesizedExpressionContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2383;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2384;
 | |
|                 this.expression();
 | |
|                 this.state = 2385;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             case 19:
 | |
|                 localctx = new ExtractContext(this, localctx);
 | |
|                 this._ctx = localctx;
 | |
|                 _prevctx = localctx;
 | |
|                 this.state = 2387;
 | |
|                 this.match(sqlParser.EXTRACT);
 | |
|                 this.state = 2388;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2389;
 | |
|                 localctx.field = this.identifier();
 | |
|                 this.state = 2390;
 | |
|                 this.match(sqlParser.FROM);
 | |
|                 this.state = 2391;
 | |
|                 localctx.source = this.valueExpression(0);
 | |
|                 this.state = 2392;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|         }
 | |
|         this._ctx.stop = this._input.LT(-1);
 | |
|         this.state = 2406;
 | |
|         this._errHandler.sync(this);
 | |
|         var _alt = this._interp.adaptivePredict(this._input, 312, 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 = 2404;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 311, this._ctx);
 | |
|                 switch (la_) {
 | |
|                     case 1:
 | |
|                         localctx = new SubscriptContext(this, new PrimaryExpressionContext(this, _parentctx, _parentState));
 | |
|                         localctx.value = _prevctx;
 | |
|                         this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_primaryExpression);
 | |
|                         this.state = 2396;
 | |
|                         if (!(this.precpred(this._ctx, 5))) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)");
 | |
|                         }
 | |
|                         this.state = 2397;
 | |
|                         this.match(sqlParser.T__13);
 | |
|                         this.state = 2398;
 | |
|                         localctx.index = this.valueExpression(0);
 | |
|                         this.state = 2399;
 | |
|                         this.match(sqlParser.T__14);
 | |
|                         break;
 | |
|                     case 2:
 | |
|                         localctx = new DereferenceContext(this, new PrimaryExpressionContext(this, _parentctx, _parentState));
 | |
|                         localctx.base = _prevctx;
 | |
|                         this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_primaryExpression);
 | |
|                         this.state = 2401;
 | |
|                         if (!(this.precpred(this._ctx, 3))) {
 | |
|                             throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)");
 | |
|                         }
 | |
|                         this.state = 2402;
 | |
|                         this.match(sqlParser.T__2);
 | |
|                         this.state = 2403;
 | |
|                         localctx.fieldName = this.identifier();
 | |
|                         break;
 | |
|                 }
 | |
|             }
 | |
|             this.state = 2408;
 | |
|             this._errHandler.sync(this);
 | |
|             _alt = this._interp.adaptivePredict(this._input, 312, 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 ConstantContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_constant;
 | |
|     return this;
 | |
| }
 | |
| ConstantContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| ConstantContext.prototype.constructor = ConstantContext;
 | |
| ConstantContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function NullLiteralContext(parser, ctx) {
 | |
|     ConstantContext.call(this, parser);
 | |
|     ConstantContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| NullLiteralContext.prototype = Object.create(ConstantContext.prototype);
 | |
| NullLiteralContext.prototype.constructor = NullLiteralContext;
 | |
| sqlParser.NullLiteralContext = NullLiteralContext;
 | |
| NullLiteralContext.prototype.NULL = function () {
 | |
|     return this.getToken(sqlParser.NULL, 0);
 | |
| };
 | |
| NullLiteralContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterNullLiteral(this);
 | |
|     }
 | |
| };
 | |
| NullLiteralContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitNullLiteral(this);
 | |
|     }
 | |
| };
 | |
| NullLiteralContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitNullLiteral(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function StringLiteralContext(parser, ctx) {
 | |
|     ConstantContext.call(this, parser);
 | |
|     ConstantContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| StringLiteralContext.prototype = Object.create(ConstantContext.prototype);
 | |
| StringLiteralContext.prototype.constructor = StringLiteralContext;
 | |
| sqlParser.StringLiteralContext = StringLiteralContext;
 | |
| StringLiteralContext.prototype.STRING = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.STRING);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.STRING, i);
 | |
|     }
 | |
| };
 | |
| StringLiteralContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterStringLiteral(this);
 | |
|     }
 | |
| };
 | |
| StringLiteralContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitStringLiteral(this);
 | |
|     }
 | |
| };
 | |
| StringLiteralContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitStringLiteral(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function TypeConstructorContext(parser, ctx) {
 | |
|     ConstantContext.call(this, parser);
 | |
|     ConstantContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| TypeConstructorContext.prototype = Object.create(ConstantContext.prototype);
 | |
| TypeConstructorContext.prototype.constructor = TypeConstructorContext;
 | |
| sqlParser.TypeConstructorContext = TypeConstructorContext;
 | |
| TypeConstructorContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| TypeConstructorContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| TypeConstructorContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterTypeConstructor(this);
 | |
|     }
 | |
| };
 | |
| TypeConstructorContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitTypeConstructor(this);
 | |
|     }
 | |
| };
 | |
| TypeConstructorContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitTypeConstructor(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function IntervalLiteralContext(parser, ctx) {
 | |
|     ConstantContext.call(this, parser);
 | |
|     ConstantContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| IntervalLiteralContext.prototype = Object.create(ConstantContext.prototype);
 | |
| IntervalLiteralContext.prototype.constructor = IntervalLiteralContext;
 | |
| sqlParser.IntervalLiteralContext = IntervalLiteralContext;
 | |
| IntervalLiteralContext.prototype.interval = function () {
 | |
|     return this.getTypedRuleContext(IntervalContext, 0);
 | |
| };
 | |
| IntervalLiteralContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterIntervalLiteral(this);
 | |
|     }
 | |
| };
 | |
| IntervalLiteralContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitIntervalLiteral(this);
 | |
|     }
 | |
| };
 | |
| IntervalLiteralContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitIntervalLiteral(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function NumericLiteralContext(parser, ctx) {
 | |
|     ConstantContext.call(this, parser);
 | |
|     ConstantContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| NumericLiteralContext.prototype = Object.create(ConstantContext.prototype);
 | |
| NumericLiteralContext.prototype.constructor = NumericLiteralContext;
 | |
| sqlParser.NumericLiteralContext = NumericLiteralContext;
 | |
| NumericLiteralContext.prototype.number = function () {
 | |
|     return this.getTypedRuleContext(NumberContext, 0);
 | |
| };
 | |
| NumericLiteralContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterNumericLiteral(this);
 | |
|     }
 | |
| };
 | |
| NumericLiteralContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitNumericLiteral(this);
 | |
|     }
 | |
| };
 | |
| NumericLiteralContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitNumericLiteral(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function BooleanLiteralContext(parser, ctx) {
 | |
|     ConstantContext.call(this, parser);
 | |
|     ConstantContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| BooleanLiteralContext.prototype = Object.create(ConstantContext.prototype);
 | |
| BooleanLiteralContext.prototype.constructor = BooleanLiteralContext;
 | |
| sqlParser.BooleanLiteralContext = BooleanLiteralContext;
 | |
| BooleanLiteralContext.prototype.booleanValue = function () {
 | |
|     return this.getTypedRuleContext(BooleanValueContext, 0);
 | |
| };
 | |
| BooleanLiteralContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterBooleanLiteral(this);
 | |
|     }
 | |
| };
 | |
| BooleanLiteralContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitBooleanLiteral(this);
 | |
|     }
 | |
| };
 | |
| BooleanLiteralContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitBooleanLiteral(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.ConstantContext = ConstantContext;
 | |
| sqlParser.prototype.constant = function () {
 | |
|     var localctx = new ConstantContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 172, sqlParser.RULE_constant);
 | |
|     try {
 | |
|         this.state = 2421;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 314, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 localctx = new NullLiteralContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 2409;
 | |
|                 this.match(sqlParser.NULL);
 | |
|                 break;
 | |
|             case 2:
 | |
|                 localctx = new IntervalLiteralContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 2410;
 | |
|                 this.interval();
 | |
|                 break;
 | |
|             case 3:
 | |
|                 localctx = new TypeConstructorContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 2411;
 | |
|                 this.identifier();
 | |
|                 this.state = 2412;
 | |
|                 this.match(sqlParser.STRING);
 | |
|                 break;
 | |
|             case 4:
 | |
|                 localctx = new NumericLiteralContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 2414;
 | |
|                 this.number();
 | |
|                 break;
 | |
|             case 5:
 | |
|                 localctx = new BooleanLiteralContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 5);
 | |
|                 this.state = 2415;
 | |
|                 this.booleanValue();
 | |
|                 break;
 | |
|             case 6:
 | |
|                 localctx = new StringLiteralContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 6);
 | |
|                 this.state = 2417;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var _alt = 1;
 | |
|                 do {
 | |
|                     switch (_alt) {
 | |
|                         case 1:
 | |
|                             this.state = 2416;
 | |
|                             this.match(sqlParser.STRING);
 | |
|                             break;
 | |
|                         default:
 | |
|                             throw new antlr4.error.NoViableAltException(this);
 | |
|                     }
 | |
|                     this.state = 2419;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _alt = this._interp.adaptivePredict(this._input, 313, this._ctx);
 | |
|                 } while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER);
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function ComparisonOperatorContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_comparisonOperator;
 | |
|     return this;
 | |
| }
 | |
| ComparisonOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| ComparisonOperatorContext.prototype.constructor = ComparisonOperatorContext;
 | |
| ComparisonOperatorContext.prototype.EQ = function () {
 | |
|     return this.getToken(sqlParser.EQ, 0);
 | |
| };
 | |
| ComparisonOperatorContext.prototype.NEQ = function () {
 | |
|     return this.getToken(sqlParser.NEQ, 0);
 | |
| };
 | |
| ComparisonOperatorContext.prototype.NEQJ = function () {
 | |
|     return this.getToken(sqlParser.NEQJ, 0);
 | |
| };
 | |
| ComparisonOperatorContext.prototype.LT = function () {
 | |
|     return this.getToken(sqlParser.LT, 0);
 | |
| };
 | |
| ComparisonOperatorContext.prototype.LTE = function () {
 | |
|     return this.getToken(sqlParser.LTE, 0);
 | |
| };
 | |
| ComparisonOperatorContext.prototype.GT = function () {
 | |
|     return this.getToken(sqlParser.GT, 0);
 | |
| };
 | |
| ComparisonOperatorContext.prototype.GTE = function () {
 | |
|     return this.getToken(sqlParser.GTE, 0);
 | |
| };
 | |
| ComparisonOperatorContext.prototype.NSEQ = function () {
 | |
|     return this.getToken(sqlParser.NSEQ, 0);
 | |
| };
 | |
| ComparisonOperatorContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterComparisonOperator(this);
 | |
|     }
 | |
| };
 | |
| ComparisonOperatorContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitComparisonOperator(this);
 | |
|     }
 | |
| };
 | |
| ComparisonOperatorContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitComparisonOperator(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.ComparisonOperatorContext = ComparisonOperatorContext;
 | |
| sqlParser.prototype.comparisonOperator = function () {
 | |
|     var localctx = new ComparisonOperatorContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 174, sqlParser.RULE_comparisonOperator);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2423;
 | |
|         _la = this._input.LA(1);
 | |
|         if (!(((((_la - 136)) & ~0x1f) == 0 && ((1 << (_la - 136)) & ((1 << (sqlParser.EQ - 136)) | (1 << (sqlParser.NSEQ - 136)) | (1 << (sqlParser.NEQ - 136)) | (1 << (sqlParser.NEQJ - 136)) | (1 << (sqlParser.LT - 136)) | (1 << (sqlParser.LTE - 136)) | (1 << (sqlParser.GT - 136)) | (1 << (sqlParser.GTE - 136)))) !== 0))) {
 | |
|             this._errHandler.recoverInline(this);
 | |
|         }
 | |
|         else {
 | |
|             this._errHandler.reportMatch(this);
 | |
|             this.consume();
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function ArithmeticOperatorContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_arithmeticOperator;
 | |
|     return this;
 | |
| }
 | |
| ArithmeticOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| ArithmeticOperatorContext.prototype.constructor = ArithmeticOperatorContext;
 | |
| ArithmeticOperatorContext.prototype.PLUS = function () {
 | |
|     return this.getToken(sqlParser.PLUS, 0);
 | |
| };
 | |
| ArithmeticOperatorContext.prototype.MINUS = function () {
 | |
|     return this.getToken(sqlParser.MINUS, 0);
 | |
| };
 | |
| ArithmeticOperatorContext.prototype.ASTERISK = function () {
 | |
|     return this.getToken(sqlParser.ASTERISK, 0);
 | |
| };
 | |
| ArithmeticOperatorContext.prototype.SLASH = function () {
 | |
|     return this.getToken(sqlParser.SLASH, 0);
 | |
| };
 | |
| ArithmeticOperatorContext.prototype.PERCENT = function () {
 | |
|     return this.getToken(sqlParser.PERCENT, 0);
 | |
| };
 | |
| ArithmeticOperatorContext.prototype.DIV = function () {
 | |
|     return this.getToken(sqlParser.DIV, 0);
 | |
| };
 | |
| ArithmeticOperatorContext.prototype.TILDE = function () {
 | |
|     return this.getToken(sqlParser.TILDE, 0);
 | |
| };
 | |
| ArithmeticOperatorContext.prototype.AMPERSAND = function () {
 | |
|     return this.getToken(sqlParser.AMPERSAND, 0);
 | |
| };
 | |
| ArithmeticOperatorContext.prototype.PIPE = function () {
 | |
|     return this.getToken(sqlParser.PIPE, 0);
 | |
| };
 | |
| ArithmeticOperatorContext.prototype.CONCAT_PIPE = function () {
 | |
|     return this.getToken(sqlParser.CONCAT_PIPE, 0);
 | |
| };
 | |
| ArithmeticOperatorContext.prototype.HAT = function () {
 | |
|     return this.getToken(sqlParser.HAT, 0);
 | |
| };
 | |
| ArithmeticOperatorContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterArithmeticOperator(this);
 | |
|     }
 | |
| };
 | |
| ArithmeticOperatorContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitArithmeticOperator(this);
 | |
|     }
 | |
| };
 | |
| ArithmeticOperatorContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitArithmeticOperator(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.ArithmeticOperatorContext = ArithmeticOperatorContext;
 | |
| sqlParser.prototype.arithmeticOperator = function () {
 | |
|     var localctx = new ArithmeticOperatorContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 176, sqlParser.RULE_arithmeticOperator);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2425;
 | |
|         _la = this._input.LA(1);
 | |
|         if (!(((((_la - 144)) & ~0x1f) == 0 && ((1 << (_la - 144)) & ((1 << (sqlParser.PLUS - 144)) | (1 << (sqlParser.MINUS - 144)) | (1 << (sqlParser.ASTERISK - 144)) | (1 << (sqlParser.SLASH - 144)) | (1 << (sqlParser.PERCENT - 144)) | (1 << (sqlParser.DIV - 144)) | (1 << (sqlParser.TILDE - 144)) | (1 << (sqlParser.AMPERSAND - 144)) | (1 << (sqlParser.PIPE - 144)) | (1 << (sqlParser.CONCAT_PIPE - 144)) | (1 << (sqlParser.HAT - 144)))) !== 0))) {
 | |
|             this._errHandler.recoverInline(this);
 | |
|         }
 | |
|         else {
 | |
|             this._errHandler.reportMatch(this);
 | |
|             this.consume();
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function PredicateOperatorContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_predicateOperator;
 | |
|     return this;
 | |
| }
 | |
| PredicateOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| PredicateOperatorContext.prototype.constructor = PredicateOperatorContext;
 | |
| PredicateOperatorContext.prototype.OR = function () {
 | |
|     return this.getToken(sqlParser.OR, 0);
 | |
| };
 | |
| PredicateOperatorContext.prototype.AND = function () {
 | |
|     return this.getToken(sqlParser.AND, 0);
 | |
| };
 | |
| PredicateOperatorContext.prototype.IN = function () {
 | |
|     return this.getToken(sqlParser.IN, 0);
 | |
| };
 | |
| PredicateOperatorContext.prototype.NOT = function () {
 | |
|     return this.getToken(sqlParser.NOT, 0);
 | |
| };
 | |
| PredicateOperatorContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPredicateOperator(this);
 | |
|     }
 | |
| };
 | |
| PredicateOperatorContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPredicateOperator(this);
 | |
|     }
 | |
| };
 | |
| PredicateOperatorContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPredicateOperator(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.PredicateOperatorContext = PredicateOperatorContext;
 | |
| sqlParser.prototype.predicateOperator = function () {
 | |
|     var localctx = new PredicateOperatorContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 178, sqlParser.RULE_predicateOperator);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2427;
 | |
|         _la = this._input.LA(1);
 | |
|         if (!(((((_la - 35)) & ~0x1f) == 0 && ((1 << (_la - 35)) & ((1 << (sqlParser.OR - 35)) | (1 << (sqlParser.AND - 35)) | (1 << (sqlParser.IN - 35)) | (1 << (sqlParser.NOT - 35)))) !== 0))) {
 | |
|             this._errHandler.recoverInline(this);
 | |
|         }
 | |
|         else {
 | |
|             this._errHandler.reportMatch(this);
 | |
|             this.consume();
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function BooleanValueContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_booleanValue;
 | |
|     return this;
 | |
| }
 | |
| BooleanValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| BooleanValueContext.prototype.constructor = BooleanValueContext;
 | |
| BooleanValueContext.prototype.TRUE = function () {
 | |
|     return this.getToken(sqlParser.TRUE, 0);
 | |
| };
 | |
| BooleanValueContext.prototype.FALSE = function () {
 | |
|     return this.getToken(sqlParser.FALSE, 0);
 | |
| };
 | |
| BooleanValueContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterBooleanValue(this);
 | |
|     }
 | |
| };
 | |
| BooleanValueContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitBooleanValue(this);
 | |
|     }
 | |
| };
 | |
| BooleanValueContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitBooleanValue(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.BooleanValueContext = BooleanValueContext;
 | |
| sqlParser.prototype.booleanValue = function () {
 | |
|     var localctx = new BooleanValueContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 180, sqlParser.RULE_booleanValue);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2429;
 | |
|         _la = this._input.LA(1);
 | |
|         if (!(_la === sqlParser.TRUE || _la === sqlParser.FALSE)) {
 | |
|             this._errHandler.recoverInline(this);
 | |
|         }
 | |
|         else {
 | |
|             this._errHandler.reportMatch(this);
 | |
|             this.consume();
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function IntervalContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_interval;
 | |
|     return this;
 | |
| }
 | |
| IntervalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| IntervalContext.prototype.constructor = IntervalContext;
 | |
| IntervalContext.prototype.INTERVAL = function () {
 | |
|     return this.getToken(sqlParser.INTERVAL, 0);
 | |
| };
 | |
| IntervalContext.prototype.intervalField = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(IntervalFieldContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(IntervalFieldContext, i);
 | |
|     }
 | |
| };
 | |
| IntervalContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterInterval(this);
 | |
|     }
 | |
| };
 | |
| IntervalContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitInterval(this);
 | |
|     }
 | |
| };
 | |
| IntervalContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitInterval(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.IntervalContext = IntervalContext;
 | |
| sqlParser.prototype.interval = function () {
 | |
|     var localctx = new IntervalContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 182, sqlParser.RULE_interval);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2431;
 | |
|         this.match(sqlParser.INTERVAL);
 | |
|         this.state = 2435;
 | |
|         this._errHandler.sync(this);
 | |
|         var _alt = this._interp.adaptivePredict(this._input, 315, this._ctx);
 | |
|         while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|             if (_alt === 1) {
 | |
|                 this.state = 2432;
 | |
|                 this.intervalField();
 | |
|             }
 | |
|             this.state = 2437;
 | |
|             this._errHandler.sync(this);
 | |
|             _alt = this._interp.adaptivePredict(this._input, 315, 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 IntervalFieldContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_intervalField;
 | |
|     this.value = null; // IntervalValueContext
 | |
|     this.unit = null; // IdentifierContext
 | |
|     this.to = null; // IdentifierContext
 | |
|     return this;
 | |
| }
 | |
| IntervalFieldContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| IntervalFieldContext.prototype.constructor = IntervalFieldContext;
 | |
| IntervalFieldContext.prototype.intervalValue = function () {
 | |
|     return this.getTypedRuleContext(IntervalValueContext, 0);
 | |
| };
 | |
| IntervalFieldContext.prototype.identifier = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(IdentifierContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(IdentifierContext, i);
 | |
|     }
 | |
| };
 | |
| IntervalFieldContext.prototype.TO = function () {
 | |
|     return this.getToken(sqlParser.TO, 0);
 | |
| };
 | |
| IntervalFieldContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterIntervalField(this);
 | |
|     }
 | |
| };
 | |
| IntervalFieldContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitIntervalField(this);
 | |
|     }
 | |
| };
 | |
| IntervalFieldContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitIntervalField(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.IntervalFieldContext = IntervalFieldContext;
 | |
| sqlParser.prototype.intervalField = function () {
 | |
|     var localctx = new IntervalFieldContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 184, sqlParser.RULE_intervalField);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2438;
 | |
|         localctx.value = this.intervalValue();
 | |
|         this.state = 2439;
 | |
|         localctx.unit = this.identifier();
 | |
|         this.state = 2442;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 316, this._ctx);
 | |
|         if (la_ === 1) {
 | |
|             this.state = 2440;
 | |
|             this.match(sqlParser.TO);
 | |
|             this.state = 2441;
 | |
|             localctx.to = this.identifier();
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function IntervalValueContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_intervalValue;
 | |
|     return this;
 | |
| }
 | |
| IntervalValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| IntervalValueContext.prototype.constructor = IntervalValueContext;
 | |
| IntervalValueContext.prototype.INTEGER_VALUE = function () {
 | |
|     return this.getToken(sqlParser.INTEGER_VALUE, 0);
 | |
| };
 | |
| IntervalValueContext.prototype.DECIMAL_VALUE = function () {
 | |
|     return this.getToken(sqlParser.DECIMAL_VALUE, 0);
 | |
| };
 | |
| IntervalValueContext.prototype.PLUS = function () {
 | |
|     return this.getToken(sqlParser.PLUS, 0);
 | |
| };
 | |
| IntervalValueContext.prototype.MINUS = function () {
 | |
|     return this.getToken(sqlParser.MINUS, 0);
 | |
| };
 | |
| IntervalValueContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| IntervalValueContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterIntervalValue(this);
 | |
|     }
 | |
| };
 | |
| IntervalValueContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitIntervalValue(this);
 | |
|     }
 | |
| };
 | |
| IntervalValueContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitIntervalValue(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.IntervalValueContext = IntervalValueContext;
 | |
| sqlParser.prototype.intervalValue = function () {
 | |
|     var localctx = new IntervalValueContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 186, sqlParser.RULE_intervalValue);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 2449;
 | |
|         this._errHandler.sync(this);
 | |
|         switch (this._input.LA(1)) {
 | |
|             case sqlParser.PLUS:
 | |
|             case sqlParser.MINUS:
 | |
|             case sqlParser.INTEGER_VALUE:
 | |
|             case sqlParser.DECIMAL_VALUE:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 2445;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.PLUS || _la === sqlParser.MINUS) {
 | |
|                     this.state = 2444;
 | |
|                     _la = this._input.LA(1);
 | |
|                     if (!(_la === sqlParser.PLUS || _la === sqlParser.MINUS)) {
 | |
|                         this._errHandler.recoverInline(this);
 | |
|                     }
 | |
|                     else {
 | |
|                         this._errHandler.reportMatch(this);
 | |
|                         this.consume();
 | |
|                     }
 | |
|                 }
 | |
|                 this.state = 2447;
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(_la === sqlParser.INTEGER_VALUE || _la === sqlParser.DECIMAL_VALUE)) {
 | |
|                     this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 break;
 | |
|             case sqlParser.STRING:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 2448;
 | |
|                 this.match(sqlParser.STRING);
 | |
|                 break;
 | |
|             default:
 | |
|                 throw new antlr4.error.NoViableAltException(this);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function ColPositionContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_colPosition;
 | |
|     return this;
 | |
| }
 | |
| ColPositionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| ColPositionContext.prototype.constructor = ColPositionContext;
 | |
| ColPositionContext.prototype.FIRST = function () {
 | |
|     return this.getToken(sqlParser.FIRST, 0);
 | |
| };
 | |
| ColPositionContext.prototype.AFTER = function () {
 | |
|     return this.getToken(sqlParser.AFTER, 0);
 | |
| };
 | |
| ColPositionContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| ColPositionContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterColPosition(this);
 | |
|     }
 | |
| };
 | |
| ColPositionContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitColPosition(this);
 | |
|     }
 | |
| };
 | |
| ColPositionContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitColPosition(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.ColPositionContext = ColPositionContext;
 | |
| sqlParser.prototype.colPosition = function () {
 | |
|     var localctx = new ColPositionContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 188, sqlParser.RULE_colPosition);
 | |
|     try {
 | |
|         this.state = 2454;
 | |
|         this._errHandler.sync(this);
 | |
|         switch (this._input.LA(1)) {
 | |
|             case sqlParser.FIRST:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 2451;
 | |
|                 this.match(sqlParser.FIRST);
 | |
|                 break;
 | |
|             case sqlParser.AFTER:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 2452;
 | |
|                 this.match(sqlParser.AFTER);
 | |
|                 this.state = 2453;
 | |
|                 this.identifier();
 | |
|                 break;
 | |
|             default:
 | |
|                 throw new antlr4.error.NoViableAltException(this);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function DataTypeContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_dataType;
 | |
|     return this;
 | |
| }
 | |
| DataTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| DataTypeContext.prototype.constructor = DataTypeContext;
 | |
| DataTypeContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function ComplexDataTypeContext(parser, ctx) {
 | |
|     DataTypeContext.call(this, parser);
 | |
|     this.complex = null; // Token;
 | |
|     DataTypeContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| ComplexDataTypeContext.prototype = Object.create(DataTypeContext.prototype);
 | |
| ComplexDataTypeContext.prototype.constructor = ComplexDataTypeContext;
 | |
| sqlParser.ComplexDataTypeContext = ComplexDataTypeContext;
 | |
| ComplexDataTypeContext.prototype.dataType = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(DataTypeContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(DataTypeContext, i);
 | |
|     }
 | |
| };
 | |
| ComplexDataTypeContext.prototype.ARRAY = function () {
 | |
|     return this.getToken(sqlParser.ARRAY, 0);
 | |
| };
 | |
| ComplexDataTypeContext.prototype.MAP = function () {
 | |
|     return this.getToken(sqlParser.MAP, 0);
 | |
| };
 | |
| ComplexDataTypeContext.prototype.STRUCT = function () {
 | |
|     return this.getToken(sqlParser.STRUCT, 0);
 | |
| };
 | |
| ComplexDataTypeContext.prototype.NEQ = function () {
 | |
|     return this.getToken(sqlParser.NEQ, 0);
 | |
| };
 | |
| ComplexDataTypeContext.prototype.complexColTypeList = function () {
 | |
|     return this.getTypedRuleContext(ComplexColTypeListContext, 0);
 | |
| };
 | |
| ComplexDataTypeContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterComplexDataType(this);
 | |
|     }
 | |
| };
 | |
| ComplexDataTypeContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitComplexDataType(this);
 | |
|     }
 | |
| };
 | |
| ComplexDataTypeContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitComplexDataType(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function PrimitiveDataTypeContext(parser, ctx) {
 | |
|     DataTypeContext.call(this, parser);
 | |
|     DataTypeContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| PrimitiveDataTypeContext.prototype = Object.create(DataTypeContext.prototype);
 | |
| PrimitiveDataTypeContext.prototype.constructor = PrimitiveDataTypeContext;
 | |
| sqlParser.PrimitiveDataTypeContext = PrimitiveDataTypeContext;
 | |
| PrimitiveDataTypeContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| PrimitiveDataTypeContext.prototype.INTEGER_VALUE = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.INTEGER_VALUE);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.INTEGER_VALUE, i);
 | |
|     }
 | |
| };
 | |
| PrimitiveDataTypeContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterPrimitiveDataType(this);
 | |
|     }
 | |
| };
 | |
| PrimitiveDataTypeContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitPrimitiveDataType(this);
 | |
|     }
 | |
| };
 | |
| PrimitiveDataTypeContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitPrimitiveDataType(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.DataTypeContext = DataTypeContext;
 | |
| sqlParser.prototype.dataType = function () {
 | |
|     var localctx = new DataTypeContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 190, sqlParser.RULE_dataType);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 2490;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 324, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 localctx = new ComplexDataTypeContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 2456;
 | |
|                 localctx.complex = this.match(sqlParser.ARRAY);
 | |
|                 this.state = 2457;
 | |
|                 this.match(sqlParser.LT);
 | |
|                 this.state = 2458;
 | |
|                 this.dataType();
 | |
|                 this.state = 2459;
 | |
|                 this.match(sqlParser.GT);
 | |
|                 break;
 | |
|             case 2:
 | |
|                 localctx = new ComplexDataTypeContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 2461;
 | |
|                 localctx.complex = this.match(sqlParser.MAP);
 | |
|                 this.state = 2462;
 | |
|                 this.match(sqlParser.LT);
 | |
|                 this.state = 2463;
 | |
|                 this.dataType();
 | |
|                 this.state = 2464;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 2465;
 | |
|                 this.dataType();
 | |
|                 this.state = 2466;
 | |
|                 this.match(sqlParser.GT);
 | |
|                 break;
 | |
|             case 3:
 | |
|                 localctx = new ComplexDataTypeContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 2468;
 | |
|                 localctx.complex = this.match(sqlParser.STRUCT);
 | |
|                 this.state = 2475;
 | |
|                 this._errHandler.sync(this);
 | |
|                 switch (this._input.LA(1)) {
 | |
|                     case sqlParser.LT:
 | |
|                         this.state = 2469;
 | |
|                         this.match(sqlParser.LT);
 | |
|                         this.state = 2471;
 | |
|                         this._errHandler.sync(this);
 | |
|                         _la = this._input.LA(1);
 | |
|                         if (((((_la - 17)) & ~0x1f) == 0 && ((1 << (_la - 17)) & ((1 << (sqlParser.SELECT - 17)) | (1 << (sqlParser.FROM - 17)) | (1 << (sqlParser.ADD - 17)) | (1 << (sqlParser.AS - 17)) | (1 << (sqlParser.ALL - 17)) | (1 << (sqlParser.ANY - 17)) | (1 << (sqlParser.DISTINCT - 17)) | (1 << (sqlParser.WHERE - 17)) | (1 << (sqlParser.GROUP - 17)) | (1 << (sqlParser.BY - 17)) | (1 << (sqlParser.GROUPING - 17)) | (1 << (sqlParser.SETS - 17)) | (1 << (sqlParser.CUBE - 17)) | (1 << (sqlParser.ROLLUP - 17)) | (1 << (sqlParser.ORDER - 17)) | (1 << (sqlParser.HAVING - 17)) | (1 << (sqlParser.LIMIT - 17)) | (1 << (sqlParser.AT - 17)) | (1 << (sqlParser.OR - 17)) | (1 << (sqlParser.AND - 17)) | (1 << (sqlParser.IN - 17)) | (1 << (sqlParser.NOT - 17)) | (1 << (sqlParser.NO - 17)) | (1 << (sqlParser.EXISTS - 17)) | (1 << (sqlParser.BETWEEN - 17)) | (1 << (sqlParser.LIKE - 17)) | (1 << (sqlParser.RLIKE - 17)) | (1 << (sqlParser.IS - 17)) | (1 << (sqlParser.NULL - 17)) | (1 << (sqlParser.TRUE - 17)) | (1 << (sqlParser.FALSE - 17)) | (1 << (sqlParser.NULLS - 17)))) !== 0) || ((((_la - 49)) & ~0x1f) == 0 && ((1 << (_la - 49)) & ((1 << (sqlParser.ASC - 49)) | (1 << (sqlParser.DESC - 49)) | (1 << (sqlParser.FOR - 49)) | (1 << (sqlParser.INTERVAL - 49)) | (1 << (sqlParser.CASE - 49)) | (1 << (sqlParser.WHEN - 49)) | (1 << (sqlParser.THEN - 49)) | (1 << (sqlParser.ELSE - 49)) | (1 << (sqlParser.END - 49)) | (1 << (sqlParser.JOIN - 49)) | (1 << (sqlParser.CROSS - 49)) | (1 << (sqlParser.OUTER - 49)) | (1 << (sqlParser.INNER - 49)) | (1 << (sqlParser.LEFT - 49)) | (1 << (sqlParser.SEMI - 49)) | (1 << (sqlParser.RIGHT - 49)) | (1 << (sqlParser.FULL - 49)) | (1 << (sqlParser.NATURAL - 49)) | (1 << (sqlParser.ON - 49)) | (1 << (sqlParser.PIVOT - 49)) | (1 << (sqlParser.LATERAL - 49)) | (1 << (sqlParser.WINDOW - 49)) | (1 << (sqlParser.OVER - 49)) | (1 << (sqlParser.PARTITION - 49)) | (1 << (sqlParser.RANGE - 49)) | (1 << (sqlParser.ROWS - 49)) | (1 << (sqlParser.UNBOUNDED - 49)) | (1 << (sqlParser.PRECEDING - 49)) | (1 << (sqlParser.FOLLOWING - 49)) | (1 << (sqlParser.CURRENT - 49)) | (1 << (sqlParser.FIRST - 49)) | (1 << (sqlParser.AFTER - 49)))) !== 0) || ((((_la - 81)) & ~0x1f) == 0 && ((1 << (_la - 81)) & ((1 << (sqlParser.LAST - 81)) | (1 << (sqlParser.ROW - 81)) | (1 << (sqlParser.WITH - 81)) | (1 << (sqlParser.CREATE - 81)) | (1 << (sqlParser.TABLE - 81)) | (1 << (sqlParser.DIRECTORY - 81)) | (1 << (sqlParser.VIEW - 81)) | (1 << (sqlParser.REPLACE - 81)) | (1 << (sqlParser.INSERT - 81)) | (1 << (sqlParser.DELETE - 81)) | (1 << (sqlParser.INTO - 81)) | (1 << (sqlParser.DESCRIBE - 81)) | (1 << (sqlParser.EXPLAIN - 81)) | (1 << (sqlParser.FORMAT - 81)) | (1 << (sqlParser.LOGICAL - 81)) | (1 << (sqlParser.CODEGEN - 81)) | (1 << (sqlParser.COST - 81)) | (1 << (sqlParser.CAST - 81)) | (1 << (sqlParser.SHOW - 81)) | (1 << (sqlParser.TABLES - 81)) | (1 << (sqlParser.COLUMNS - 81)) | (1 << (sqlParser.COLUMN - 81)) | (1 << (sqlParser.USE - 81)) | (1 << (sqlParser.PARTITIONS - 81)) | (1 << (sqlParser.FUNCTIONS - 81)) | (1 << (sqlParser.DROP - 81)) | (1 << (sqlParser.UNION - 81)) | (1 << (sqlParser.EXCEPT - 81)) | (1 << (sqlParser.SETMINUS - 81)) | (1 << (sqlParser.INTERSECT - 81)) | (1 << (sqlParser.TO - 81)))) !== 0) || ((((_la - 113)) & ~0x1f) == 0 && ((1 << (_la - 113)) & ((1 << (sqlParser.TABLESAMPLE - 113)) | (1 << (sqlParser.STRATIFY - 113)) | (1 << (sqlParser.ALTER - 113)) | (1 << (sqlParser.RENAME - 113)) | (1 << (sqlParser.ARRAY - 113)) | (1 << (sqlParser.MAP - 113)) | (1 << (sqlParser.STRUCT - 113)) | (1 << (sqlParser.COMMENT - 113)) | (1 << (sqlParser.SET - 113)) | (1 << (sqlParser.RESET - 113)) | (1 << (sqlParser.DATA - 113)) | (1 << (sqlParser.START - 113)) | (1 << (sqlParser.TRANSACTION - 113)) | (1 << (sqlParser.COMMIT - 113)) | (1 << (sqlParser.ROLLBACK - 113)) | (1 << (sqlParser.MACRO - 113)) | (1 << (sqlParser.IGNORE - 113)) | (1 << (sqlParser.BOTH - 113)) | (1 << (sqlParser.LEADING - 113)) | (1 << (sqlParser.TRAILING - 113)) | (1 << (sqlParser.IF - 113)) | (1 << (sqlParser.POSITION - 113)) | (1 << (sqlParser.EXTRACT - 113)))) !== 0) || ((((_la - 149)) & ~0x1f) == 0 && ((1 << (_la - 149)) & ((1 << (sqlParser.DIV - 149)) | (1 << (sqlParser.PERCENTLIT - 149)) | (1 << (sqlParser.BUCKET - 149)) | (1 << (sqlParser.OUT - 149)) | (1 << (sqlParser.OF - 149)) | (1 << (sqlParser.SORT - 149)) | (1 << (sqlParser.CLUSTER - 149)) | (1 << (sqlParser.DISTRIBUTE - 149)) | (1 << (sqlParser.OVERWRITE - 149)) | (1 << (sqlParser.TRANSFORM - 149)) | (1 << (sqlParser.REDUCE - 149)) | (1 << (sqlParser.SERDE - 149)) | (1 << (sqlParser.SERDEPROPERTIES - 149)) | (1 << (sqlParser.RECORDREADER - 149)) | (1 << (sqlParser.RECORDWRITER - 149)) | (1 << (sqlParser.DELIMITED - 149)) | (1 << (sqlParser.FIELDS - 149)) | (1 << (sqlParser.TERMINATED - 149)) | (1 << (sqlParser.COLLECTION - 149)) | (1 << (sqlParser.ITEMS - 149)) | (1 << (sqlParser.KEYS - 149)) | (1 << (sqlParser.ESCAPED - 149)) | (1 << (sqlParser.LINES - 149)) | (1 << (sqlParser.SEPARATED - 149)) | (1 << (sqlParser.FUNCTION - 149)) | (1 << (sqlParser.EXTENDED - 149)))) !== 0) || ((((_la - 181)) & ~0x1f) == 0 && ((1 << (_la - 181)) & ((1 << (sqlParser.REFRESH - 181)) | (1 << (sqlParser.CLEAR - 181)) | (1 << (sqlParser.CACHE - 181)) | (1 << (sqlParser.UNCACHE - 181)) | (1 << (sqlParser.LAZY - 181)) | (1 << (sqlParser.FORMATTED - 181)) | (1 << (sqlParser.GLOBAL - 181)) | (1 << (sqlParser.TEMPORARY - 181)) | (1 << (sqlParser.OPTIONS - 181)) | (1 << (sqlParser.UNSET - 181)) | (1 << (sqlParser.TBLPROPERTIES - 181)) | (1 << (sqlParser.DBPROPERTIES - 181)) | (1 << (sqlParser.BUCKETS - 181)) | (1 << (sqlParser.SKEWED - 181)) | (1 << (sqlParser.STORED - 181)) | (1 << (sqlParser.DIRECTORIES - 181)) | (1 << (sqlParser.LOCATION - 181)) | (1 << (sqlParser.EXCHANGE - 181)) | (1 << (sqlParser.ARCHIVE - 181)) | (1 << (sqlParser.UNARCHIVE - 181)) | (1 << (sqlParser.FILEFORMAT - 181)) | (1 << (sqlParser.TOUCH - 181)) | (1 << (sqlParser.COMPACT - 181)) | (1 << (sqlParser.CONCATENATE - 181)) | (1 << (sqlParser.CHANGE - 181)) | (1 << (sqlParser.CASCADE - 181)) | (1 << (sqlParser.RESTRICT - 181)) | (1 << (sqlParser.CLUSTERED - 181)) | (1 << (sqlParser.SORTED - 181)) | (1 << (sqlParser.PURGE - 181)) | (1 << (sqlParser.INPUTFORMAT - 181)) | (1 << (sqlParser.OUTPUTFORMAT - 181)))) !== 0) || ((((_la - 213)) & ~0x1f) == 0 && ((1 << (_la - 213)) & ((1 << (sqlParser.DATABASE - 213)) | (1 << (sqlParser.DATABASES - 213)) | (1 << (sqlParser.DFS - 213)) | (1 << (sqlParser.TRUNCATE - 213)) | (1 << (sqlParser.ANALYZE - 213)) | (1 << (sqlParser.COMPUTE - 213)) | (1 << (sqlParser.LIST - 213)) | (1 << (sqlParser.STATISTICS - 213)) | (1 << (sqlParser.PARTITIONED - 213)) | (1 << (sqlParser.EXTERNAL - 213)) | (1 << (sqlParser.DEFINED - 213)) | (1 << (sqlParser.REVOKE - 213)) | (1 << (sqlParser.GRANT - 213)) | (1 << (sqlParser.LOCK - 213)) | (1 << (sqlParser.UNLOCK - 213)) | (1 << (sqlParser.MSCK - 213)) | (1 << (sqlParser.REPAIR - 213)) | (1 << (sqlParser.RECOVER - 213)) | (1 << (sqlParser.EXPORT - 213)) | (1 << (sqlParser.IMPORT - 213)) | (1 << (sqlParser.LOAD - 213)) | (1 << (sqlParser.ROLE - 213)) | (1 << (sqlParser.ROLES - 213)) | (1 << (sqlParser.COMPACTIONS - 213)) | (1 << (sqlParser.PRINCIPALS - 213)) | (1 << (sqlParser.TRANSACTIONS - 213)) | (1 << (sqlParser.INDEX - 213)) | (1 << (sqlParser.INDEXES - 213)) | (1 << (sqlParser.LOCKS - 213)) | (1 << (sqlParser.OPTION - 213)) | (1 << (sqlParser.ANTI - 213)) | (1 << (sqlParser.LOCAL - 213)))) !== 0) || ((((_la - 245)) & ~0x1f) == 0 && ((1 << (_la - 245)) & ((1 << (sqlParser.INPATH - 245)) | (1 << (sqlParser.IDENTIFIER - 245)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 245)))) !== 0)) {
 | |
|                             this.state = 2470;
 | |
|                             this.complexColTypeList();
 | |
|                         }
 | |
|                         this.state = 2473;
 | |
|                         this.match(sqlParser.GT);
 | |
|                         break;
 | |
|                     case sqlParser.NEQ:
 | |
|                         this.state = 2474;
 | |
|                         this.match(sqlParser.NEQ);
 | |
|                         break;
 | |
|                     default:
 | |
|                         throw new antlr4.error.NoViableAltException(this);
 | |
|                 }
 | |
|                 break;
 | |
|             case 4:
 | |
|                 localctx = new PrimitiveDataTypeContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 2477;
 | |
|                 this.identifier();
 | |
|                 this.state = 2488;
 | |
|                 this._errHandler.sync(this);
 | |
|                 var la_ = this._interp.adaptivePredict(this._input, 323, this._ctx);
 | |
|                 if (la_ === 1) {
 | |
|                     this.state = 2478;
 | |
|                     this.match(sqlParser.T__0);
 | |
|                     this.state = 2479;
 | |
|                     this.match(sqlParser.INTEGER_VALUE);
 | |
|                     this.state = 2484;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                     while (_la === sqlParser.T__3) {
 | |
|                         this.state = 2480;
 | |
|                         this.match(sqlParser.T__3);
 | |
|                         this.state = 2481;
 | |
|                         this.match(sqlParser.INTEGER_VALUE);
 | |
|                         this.state = 2486;
 | |
|                         this._errHandler.sync(this);
 | |
|                         _la = this._input.LA(1);
 | |
|                     }
 | |
|                     this.state = 2487;
 | |
|                     this.match(sqlParser.T__1);
 | |
|                 }
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function ColTypeListContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_colTypeList;
 | |
|     return this;
 | |
| }
 | |
| ColTypeListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| ColTypeListContext.prototype.constructor = ColTypeListContext;
 | |
| ColTypeListContext.prototype.colType = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ColTypeContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ColTypeContext, i);
 | |
|     }
 | |
| };
 | |
| ColTypeListContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterColTypeList(this);
 | |
|     }
 | |
| };
 | |
| ColTypeListContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitColTypeList(this);
 | |
|     }
 | |
| };
 | |
| ColTypeListContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitColTypeList(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.ColTypeListContext = ColTypeListContext;
 | |
| sqlParser.prototype.colTypeList = function () {
 | |
|     var localctx = new ColTypeListContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 192, sqlParser.RULE_colTypeList);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2492;
 | |
|         this.colType();
 | |
|         this.state = 2497;
 | |
|         this._errHandler.sync(this);
 | |
|         var _alt = this._interp.adaptivePredict(this._input, 325, this._ctx);
 | |
|         while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|             if (_alt === 1) {
 | |
|                 this.state = 2493;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 2494;
 | |
|                 this.colType();
 | |
|             }
 | |
|             this.state = 2499;
 | |
|             this._errHandler.sync(this);
 | |
|             _alt = this._interp.adaptivePredict(this._input, 325, 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 ColTypeContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_colType;
 | |
|     return this;
 | |
| }
 | |
| ColTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| ColTypeContext.prototype.constructor = ColTypeContext;
 | |
| ColTypeContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| ColTypeContext.prototype.dataType = function () {
 | |
|     return this.getTypedRuleContext(DataTypeContext, 0);
 | |
| };
 | |
| ColTypeContext.prototype.COMMENT = function () {
 | |
|     return this.getToken(sqlParser.COMMENT, 0);
 | |
| };
 | |
| ColTypeContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| ColTypeContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterColType(this);
 | |
|     }
 | |
| };
 | |
| ColTypeContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitColType(this);
 | |
|     }
 | |
| };
 | |
| ColTypeContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitColType(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.ColTypeContext = ColTypeContext;
 | |
| sqlParser.prototype.colType = function () {
 | |
|     var localctx = new ColTypeContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 194, sqlParser.RULE_colType);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2500;
 | |
|         this.identifier();
 | |
|         this.state = 2501;
 | |
|         this.dataType();
 | |
|         this.state = 2504;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 326, this._ctx);
 | |
|         if (la_ === 1) {
 | |
|             this.state = 2502;
 | |
|             this.match(sqlParser.COMMENT);
 | |
|             this.state = 2503;
 | |
|             this.match(sqlParser.STRING);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function DtColTypeListContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_dtColTypeList;
 | |
|     return this;
 | |
| }
 | |
| DtColTypeListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| DtColTypeListContext.prototype.constructor = DtColTypeListContext;
 | |
| DtColTypeListContext.prototype.dtColType = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(DtColTypeContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(DtColTypeContext, i);
 | |
|     }
 | |
| };
 | |
| DtColTypeListContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterDtColTypeList(this);
 | |
|     }
 | |
| };
 | |
| DtColTypeListContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitDtColTypeList(this);
 | |
|     }
 | |
| };
 | |
| DtColTypeListContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitDtColTypeList(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.DtColTypeListContext = DtColTypeListContext;
 | |
| sqlParser.prototype.dtColTypeList = function () {
 | |
|     var localctx = new DtColTypeListContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 196, sqlParser.RULE_dtColTypeList);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2506;
 | |
|         this.dtColType();
 | |
|         this.state = 2511;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while (_la === sqlParser.T__3) {
 | |
|             this.state = 2507;
 | |
|             this.match(sqlParser.T__3);
 | |
|             this.state = 2508;
 | |
|             this.dtColType();
 | |
|             this.state = 2513;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function DtColTypeContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_dtColType;
 | |
|     return this;
 | |
| }
 | |
| DtColTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| DtColTypeContext.prototype.constructor = DtColTypeContext;
 | |
| DtColTypeContext.prototype.identifier = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(IdentifierContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(IdentifierContext, i);
 | |
|     }
 | |
| };
 | |
| DtColTypeContext.prototype.dataType = function () {
 | |
|     return this.getTypedRuleContext(DataTypeContext, 0);
 | |
| };
 | |
| DtColTypeContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| DtColTypeContext.prototype.COMMENT = function () {
 | |
|     return this.getToken(sqlParser.COMMENT, 0);
 | |
| };
 | |
| DtColTypeContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| DtColTypeContext.prototype.WATERMARK = function () {
 | |
|     return this.getToken(sqlParser.WATERMARK, 0);
 | |
| };
 | |
| DtColTypeContext.prototype.FOR = function () {
 | |
|     return this.getToken(sqlParser.FOR, 0);
 | |
| };
 | |
| DtColTypeContext.prototype.primaryExpression = function () {
 | |
|     return this.getTypedRuleContext(PrimaryExpressionContext, 0);
 | |
| };
 | |
| DtColTypeContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterDtColType(this);
 | |
|     }
 | |
| };
 | |
| DtColTypeContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitDtColType(this);
 | |
|     }
 | |
| };
 | |
| DtColTypeContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitDtColType(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.DtColTypeContext = DtColTypeContext;
 | |
| sqlParser.prototype.dtColType = function () {
 | |
|     var localctx = new DtColTypeContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 198, sqlParser.RULE_dtColType);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 2537;
 | |
|         this._errHandler.sync(this);
 | |
|         switch (this._input.LA(1)) {
 | |
|             case sqlParser.SELECT:
 | |
|             case sqlParser.FROM:
 | |
|             case sqlParser.ADD:
 | |
|             case sqlParser.AS:
 | |
|             case sqlParser.ALL:
 | |
|             case sqlParser.ANY:
 | |
|             case sqlParser.DISTINCT:
 | |
|             case sqlParser.WHERE:
 | |
|             case sqlParser.GROUP:
 | |
|             case sqlParser.BY:
 | |
|             case sqlParser.GROUPING:
 | |
|             case sqlParser.SETS:
 | |
|             case sqlParser.CUBE:
 | |
|             case sqlParser.ROLLUP:
 | |
|             case sqlParser.ORDER:
 | |
|             case sqlParser.HAVING:
 | |
|             case sqlParser.LIMIT:
 | |
|             case sqlParser.AT:
 | |
|             case sqlParser.OR:
 | |
|             case sqlParser.AND:
 | |
|             case sqlParser.IN:
 | |
|             case sqlParser.NOT:
 | |
|             case sqlParser.NO:
 | |
|             case sqlParser.EXISTS:
 | |
|             case sqlParser.BETWEEN:
 | |
|             case sqlParser.LIKE:
 | |
|             case sqlParser.RLIKE:
 | |
|             case sqlParser.IS:
 | |
|             case sqlParser.NULL:
 | |
|             case sqlParser.TRUE:
 | |
|             case sqlParser.FALSE:
 | |
|             case sqlParser.NULLS:
 | |
|             case sqlParser.ASC:
 | |
|             case sqlParser.DESC:
 | |
|             case sqlParser.FOR:
 | |
|             case sqlParser.INTERVAL:
 | |
|             case sqlParser.CASE:
 | |
|             case sqlParser.WHEN:
 | |
|             case sqlParser.THEN:
 | |
|             case sqlParser.ELSE:
 | |
|             case sqlParser.END:
 | |
|             case sqlParser.JOIN:
 | |
|             case sqlParser.CROSS:
 | |
|             case sqlParser.OUTER:
 | |
|             case sqlParser.INNER:
 | |
|             case sqlParser.LEFT:
 | |
|             case sqlParser.SEMI:
 | |
|             case sqlParser.RIGHT:
 | |
|             case sqlParser.FULL:
 | |
|             case sqlParser.NATURAL:
 | |
|             case sqlParser.ON:
 | |
|             case sqlParser.PIVOT:
 | |
|             case sqlParser.LATERAL:
 | |
|             case sqlParser.WINDOW:
 | |
|             case sqlParser.OVER:
 | |
|             case sqlParser.PARTITION:
 | |
|             case sqlParser.RANGE:
 | |
|             case sqlParser.ROWS:
 | |
|             case sqlParser.UNBOUNDED:
 | |
|             case sqlParser.PRECEDING:
 | |
|             case sqlParser.FOLLOWING:
 | |
|             case sqlParser.CURRENT:
 | |
|             case sqlParser.FIRST:
 | |
|             case sqlParser.AFTER:
 | |
|             case sqlParser.LAST:
 | |
|             case sqlParser.ROW:
 | |
|             case sqlParser.WITH:
 | |
|             case sqlParser.CREATE:
 | |
|             case sqlParser.TABLE:
 | |
|             case sqlParser.DIRECTORY:
 | |
|             case sqlParser.VIEW:
 | |
|             case sqlParser.REPLACE:
 | |
|             case sqlParser.INSERT:
 | |
|             case sqlParser.DELETE:
 | |
|             case sqlParser.INTO:
 | |
|             case sqlParser.DESCRIBE:
 | |
|             case sqlParser.EXPLAIN:
 | |
|             case sqlParser.FORMAT:
 | |
|             case sqlParser.LOGICAL:
 | |
|             case sqlParser.CODEGEN:
 | |
|             case sqlParser.COST:
 | |
|             case sqlParser.CAST:
 | |
|             case sqlParser.SHOW:
 | |
|             case sqlParser.TABLES:
 | |
|             case sqlParser.COLUMNS:
 | |
|             case sqlParser.COLUMN:
 | |
|             case sqlParser.USE:
 | |
|             case sqlParser.PARTITIONS:
 | |
|             case sqlParser.FUNCTIONS:
 | |
|             case sqlParser.DROP:
 | |
|             case sqlParser.UNION:
 | |
|             case sqlParser.EXCEPT:
 | |
|             case sqlParser.SETMINUS:
 | |
|             case sqlParser.INTERSECT:
 | |
|             case sqlParser.TO:
 | |
|             case sqlParser.TABLESAMPLE:
 | |
|             case sqlParser.STRATIFY:
 | |
|             case sqlParser.ALTER:
 | |
|             case sqlParser.RENAME:
 | |
|             case sqlParser.ARRAY:
 | |
|             case sqlParser.MAP:
 | |
|             case sqlParser.STRUCT:
 | |
|             case sqlParser.COMMENT:
 | |
|             case sqlParser.SET:
 | |
|             case sqlParser.RESET:
 | |
|             case sqlParser.DATA:
 | |
|             case sqlParser.START:
 | |
|             case sqlParser.TRANSACTION:
 | |
|             case sqlParser.COMMIT:
 | |
|             case sqlParser.ROLLBACK:
 | |
|             case sqlParser.MACRO:
 | |
|             case sqlParser.IGNORE:
 | |
|             case sqlParser.BOTH:
 | |
|             case sqlParser.LEADING:
 | |
|             case sqlParser.TRAILING:
 | |
|             case sqlParser.IF:
 | |
|             case sqlParser.POSITION:
 | |
|             case sqlParser.EXTRACT:
 | |
|             case sqlParser.DIV:
 | |
|             case sqlParser.PERCENTLIT:
 | |
|             case sqlParser.BUCKET:
 | |
|             case sqlParser.OUT:
 | |
|             case sqlParser.OF:
 | |
|             case sqlParser.SORT:
 | |
|             case sqlParser.CLUSTER:
 | |
|             case sqlParser.DISTRIBUTE:
 | |
|             case sqlParser.OVERWRITE:
 | |
|             case sqlParser.TRANSFORM:
 | |
|             case sqlParser.REDUCE:
 | |
|             case sqlParser.SERDE:
 | |
|             case sqlParser.SERDEPROPERTIES:
 | |
|             case sqlParser.RECORDREADER:
 | |
|             case sqlParser.RECORDWRITER:
 | |
|             case sqlParser.DELIMITED:
 | |
|             case sqlParser.FIELDS:
 | |
|             case sqlParser.TERMINATED:
 | |
|             case sqlParser.COLLECTION:
 | |
|             case sqlParser.ITEMS:
 | |
|             case sqlParser.KEYS:
 | |
|             case sqlParser.ESCAPED:
 | |
|             case sqlParser.LINES:
 | |
|             case sqlParser.SEPARATED:
 | |
|             case sqlParser.FUNCTION:
 | |
|             case sqlParser.EXTENDED:
 | |
|             case sqlParser.REFRESH:
 | |
|             case sqlParser.CLEAR:
 | |
|             case sqlParser.CACHE:
 | |
|             case sqlParser.UNCACHE:
 | |
|             case sqlParser.LAZY:
 | |
|             case sqlParser.FORMATTED:
 | |
|             case sqlParser.GLOBAL:
 | |
|             case sqlParser.TEMPORARY:
 | |
|             case sqlParser.OPTIONS:
 | |
|             case sqlParser.UNSET:
 | |
|             case sqlParser.TBLPROPERTIES:
 | |
|             case sqlParser.DBPROPERTIES:
 | |
|             case sqlParser.BUCKETS:
 | |
|             case sqlParser.SKEWED:
 | |
|             case sqlParser.STORED:
 | |
|             case sqlParser.DIRECTORIES:
 | |
|             case sqlParser.LOCATION:
 | |
|             case sqlParser.EXCHANGE:
 | |
|             case sqlParser.ARCHIVE:
 | |
|             case sqlParser.UNARCHIVE:
 | |
|             case sqlParser.FILEFORMAT:
 | |
|             case sqlParser.TOUCH:
 | |
|             case sqlParser.COMPACT:
 | |
|             case sqlParser.CONCATENATE:
 | |
|             case sqlParser.CHANGE:
 | |
|             case sqlParser.CASCADE:
 | |
|             case sqlParser.RESTRICT:
 | |
|             case sqlParser.CLUSTERED:
 | |
|             case sqlParser.SORTED:
 | |
|             case sqlParser.PURGE:
 | |
|             case sqlParser.INPUTFORMAT:
 | |
|             case sqlParser.OUTPUTFORMAT:
 | |
|             case sqlParser.DATABASE:
 | |
|             case sqlParser.DATABASES:
 | |
|             case sqlParser.DFS:
 | |
|             case sqlParser.TRUNCATE:
 | |
|             case sqlParser.ANALYZE:
 | |
|             case sqlParser.COMPUTE:
 | |
|             case sqlParser.LIST:
 | |
|             case sqlParser.STATISTICS:
 | |
|             case sqlParser.PARTITIONED:
 | |
|             case sqlParser.EXTERNAL:
 | |
|             case sqlParser.DEFINED:
 | |
|             case sqlParser.REVOKE:
 | |
|             case sqlParser.GRANT:
 | |
|             case sqlParser.LOCK:
 | |
|             case sqlParser.UNLOCK:
 | |
|             case sqlParser.MSCK:
 | |
|             case sqlParser.REPAIR:
 | |
|             case sqlParser.RECOVER:
 | |
|             case sqlParser.EXPORT:
 | |
|             case sqlParser.IMPORT:
 | |
|             case sqlParser.LOAD:
 | |
|             case sqlParser.ROLE:
 | |
|             case sqlParser.ROLES:
 | |
|             case sqlParser.COMPACTIONS:
 | |
|             case sqlParser.PRINCIPALS:
 | |
|             case sqlParser.TRANSACTIONS:
 | |
|             case sqlParser.INDEX:
 | |
|             case sqlParser.INDEXES:
 | |
|             case sqlParser.LOCKS:
 | |
|             case sqlParser.OPTION:
 | |
|             case sqlParser.ANTI:
 | |
|             case sqlParser.LOCAL:
 | |
|             case sqlParser.INPATH:
 | |
|             case sqlParser.IDENTIFIER:
 | |
|             case sqlParser.BACKQUOTED_IDENTIFIER:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 2514;
 | |
|                 this.identifier();
 | |
|                 this.state = 2519;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 while (_la === sqlParser.T__2) {
 | |
|                     this.state = 2515;
 | |
|                     this.match(sqlParser.T__2);
 | |
|                     this.state = 2516;
 | |
|                     this.identifier();
 | |
|                     this.state = 2521;
 | |
|                     this._errHandler.sync(this);
 | |
|                     _la = this._input.LA(1);
 | |
|                 }
 | |
|                 this.state = 2522;
 | |
|                 this.dataType();
 | |
|                 this.state = 2525;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.AS) {
 | |
|                     this.state = 2523;
 | |
|                     this.match(sqlParser.AS);
 | |
|                     this.state = 2524;
 | |
|                     this.identifier();
 | |
|                 }
 | |
|                 this.state = 2529;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.COMMENT) {
 | |
|                     this.state = 2527;
 | |
|                     this.match(sqlParser.COMMENT);
 | |
|                     this.state = 2528;
 | |
|                     this.match(sqlParser.STRING);
 | |
|                 }
 | |
|                 break;
 | |
|             case sqlParser.WATERMARK:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 2531;
 | |
|                 this.match(sqlParser.WATERMARK);
 | |
|                 this.state = 2532;
 | |
|                 this.match(sqlParser.FOR);
 | |
|                 this.state = 2533;
 | |
|                 this.identifier();
 | |
|                 this.state = 2534;
 | |
|                 this.match(sqlParser.AS);
 | |
|                 this.state = 2535;
 | |
|                 this.primaryExpression(0);
 | |
|                 break;
 | |
|             default:
 | |
|                 throw new antlr4.error.NoViableAltException(this);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function ComplexColTypeListContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_complexColTypeList;
 | |
|     return this;
 | |
| }
 | |
| ComplexColTypeListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| ComplexColTypeListContext.prototype.constructor = ComplexColTypeListContext;
 | |
| ComplexColTypeListContext.prototype.complexColType = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ComplexColTypeContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ComplexColTypeContext, i);
 | |
|     }
 | |
| };
 | |
| ComplexColTypeListContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterComplexColTypeList(this);
 | |
|     }
 | |
| };
 | |
| ComplexColTypeListContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitComplexColTypeList(this);
 | |
|     }
 | |
| };
 | |
| ComplexColTypeListContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitComplexColTypeList(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.ComplexColTypeListContext = ComplexColTypeListContext;
 | |
| sqlParser.prototype.complexColTypeList = function () {
 | |
|     var localctx = new ComplexColTypeListContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 200, sqlParser.RULE_complexColTypeList);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2539;
 | |
|         this.complexColType();
 | |
|         this.state = 2544;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         while (_la === sqlParser.T__3) {
 | |
|             this.state = 2540;
 | |
|             this.match(sqlParser.T__3);
 | |
|             this.state = 2541;
 | |
|             this.complexColType();
 | |
|             this.state = 2546;
 | |
|             this._errHandler.sync(this);
 | |
|             _la = this._input.LA(1);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function ComplexColTypeContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_complexColType;
 | |
|     return this;
 | |
| }
 | |
| ComplexColTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| ComplexColTypeContext.prototype.constructor = ComplexColTypeContext;
 | |
| ComplexColTypeContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| ComplexColTypeContext.prototype.dataType = function () {
 | |
|     return this.getTypedRuleContext(DataTypeContext, 0);
 | |
| };
 | |
| ComplexColTypeContext.prototype.COMMENT = function () {
 | |
|     return this.getToken(sqlParser.COMMENT, 0);
 | |
| };
 | |
| ComplexColTypeContext.prototype.STRING = function () {
 | |
|     return this.getToken(sqlParser.STRING, 0);
 | |
| };
 | |
| ComplexColTypeContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterComplexColType(this);
 | |
|     }
 | |
| };
 | |
| ComplexColTypeContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitComplexColType(this);
 | |
|     }
 | |
| };
 | |
| ComplexColTypeContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitComplexColType(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.ComplexColTypeContext = ComplexColTypeContext;
 | |
| sqlParser.prototype.complexColType = function () {
 | |
|     var localctx = new ComplexColTypeContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 202, sqlParser.RULE_complexColType);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2547;
 | |
|         this.identifier();
 | |
|         this.state = 2548;
 | |
|         this.match(sqlParser.T__15);
 | |
|         this.state = 2549;
 | |
|         this.dataType();
 | |
|         this.state = 2552;
 | |
|         this._errHandler.sync(this);
 | |
|         _la = this._input.LA(1);
 | |
|         if (_la === sqlParser.COMMENT) {
 | |
|             this.state = 2550;
 | |
|             this.match(sqlParser.COMMENT);
 | |
|             this.state = 2551;
 | |
|             this.match(sqlParser.STRING);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function WhenClauseContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_whenClause;
 | |
|     this.condition = null; // ExpressionContext
 | |
|     this.result = null; // ExpressionContext
 | |
|     return this;
 | |
| }
 | |
| WhenClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| WhenClauseContext.prototype.constructor = WhenClauseContext;
 | |
| WhenClauseContext.prototype.WHEN = function () {
 | |
|     return this.getToken(sqlParser.WHEN, 0);
 | |
| };
 | |
| WhenClauseContext.prototype.THEN = function () {
 | |
|     return this.getToken(sqlParser.THEN, 0);
 | |
| };
 | |
| WhenClauseContext.prototype.expression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| WhenClauseContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterWhenClause(this);
 | |
|     }
 | |
| };
 | |
| WhenClauseContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitWhenClause(this);
 | |
|     }
 | |
| };
 | |
| WhenClauseContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitWhenClause(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.WhenClauseContext = WhenClauseContext;
 | |
| sqlParser.prototype.whenClause = function () {
 | |
|     var localctx = new WhenClauseContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 204, sqlParser.RULE_whenClause);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2554;
 | |
|         this.match(sqlParser.WHEN);
 | |
|         this.state = 2555;
 | |
|         localctx.condition = this.expression();
 | |
|         this.state = 2556;
 | |
|         this.match(sqlParser.THEN);
 | |
|         this.state = 2557;
 | |
|         localctx.result = this.expression();
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function WindowsContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_windows;
 | |
|     return this;
 | |
| }
 | |
| WindowsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| WindowsContext.prototype.constructor = WindowsContext;
 | |
| WindowsContext.prototype.WINDOW = function () {
 | |
|     return this.getToken(sqlParser.WINDOW, 0);
 | |
| };
 | |
| WindowsContext.prototype.namedWindow = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(NamedWindowContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(NamedWindowContext, i);
 | |
|     }
 | |
| };
 | |
| WindowsContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterWindows(this);
 | |
|     }
 | |
| };
 | |
| WindowsContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitWindows(this);
 | |
|     }
 | |
| };
 | |
| WindowsContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitWindows(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.WindowsContext = WindowsContext;
 | |
| sqlParser.prototype.windows = function () {
 | |
|     var localctx = new WindowsContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 206, sqlParser.RULE_windows);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2559;
 | |
|         this.match(sqlParser.WINDOW);
 | |
|         this.state = 2560;
 | |
|         this.namedWindow();
 | |
|         this.state = 2565;
 | |
|         this._errHandler.sync(this);
 | |
|         var _alt = this._interp.adaptivePredict(this._input, 334, this._ctx);
 | |
|         while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|             if (_alt === 1) {
 | |
|                 this.state = 2561;
 | |
|                 this.match(sqlParser.T__3);
 | |
|                 this.state = 2562;
 | |
|                 this.namedWindow();
 | |
|             }
 | |
|             this.state = 2567;
 | |
|             this._errHandler.sync(this);
 | |
|             _alt = this._interp.adaptivePredict(this._input, 334, 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 NamedWindowContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_namedWindow;
 | |
|     return this;
 | |
| }
 | |
| NamedWindowContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| NamedWindowContext.prototype.constructor = NamedWindowContext;
 | |
| NamedWindowContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| NamedWindowContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| NamedWindowContext.prototype.windowSpec = function () {
 | |
|     return this.getTypedRuleContext(WindowSpecContext, 0);
 | |
| };
 | |
| NamedWindowContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterNamedWindow(this);
 | |
|     }
 | |
| };
 | |
| NamedWindowContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitNamedWindow(this);
 | |
|     }
 | |
| };
 | |
| NamedWindowContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitNamedWindow(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.NamedWindowContext = NamedWindowContext;
 | |
| sqlParser.prototype.namedWindow = function () {
 | |
|     var localctx = new NamedWindowContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 208, sqlParser.RULE_namedWindow);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2568;
 | |
|         this.identifier();
 | |
|         this.state = 2569;
 | |
|         this.match(sqlParser.AS);
 | |
|         this.state = 2570;
 | |
|         this.windowSpec();
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function WindowSpecContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_windowSpec;
 | |
|     return this;
 | |
| }
 | |
| WindowSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| WindowSpecContext.prototype.constructor = WindowSpecContext;
 | |
| WindowSpecContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function WindowRefContext(parser, ctx) {
 | |
|     WindowSpecContext.call(this, parser);
 | |
|     this.name = null; // IdentifierContext;
 | |
|     WindowSpecContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| WindowRefContext.prototype = Object.create(WindowSpecContext.prototype);
 | |
| WindowRefContext.prototype.constructor = WindowRefContext;
 | |
| sqlParser.WindowRefContext = WindowRefContext;
 | |
| WindowRefContext.prototype.identifier = function () {
 | |
|     return this.getTypedRuleContext(IdentifierContext, 0);
 | |
| };
 | |
| WindowRefContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterWindowRef(this);
 | |
|     }
 | |
| };
 | |
| WindowRefContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitWindowRef(this);
 | |
|     }
 | |
| };
 | |
| WindowRefContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitWindowRef(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function WindowDefContext(parser, ctx) {
 | |
|     WindowSpecContext.call(this, parser);
 | |
|     this._expression = null; // ExpressionContext;
 | |
|     this.partition = []; // of ExpressionContexts;
 | |
|     WindowSpecContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| WindowDefContext.prototype = Object.create(WindowSpecContext.prototype);
 | |
| WindowDefContext.prototype.constructor = WindowDefContext;
 | |
| sqlParser.WindowDefContext = WindowDefContext;
 | |
| WindowDefContext.prototype.CLUSTER = function () {
 | |
|     return this.getToken(sqlParser.CLUSTER, 0);
 | |
| };
 | |
| WindowDefContext.prototype.BY = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTokens(sqlParser.BY);
 | |
|     }
 | |
|     else {
 | |
|         return this.getToken(sqlParser.BY, i);
 | |
|     }
 | |
| };
 | |
| WindowDefContext.prototype.expression = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(ExpressionContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(ExpressionContext, i);
 | |
|     }
 | |
| };
 | |
| WindowDefContext.prototype.windowFrame = function () {
 | |
|     return this.getTypedRuleContext(WindowFrameContext, 0);
 | |
| };
 | |
| WindowDefContext.prototype.sortItem = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(SortItemContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(SortItemContext, i);
 | |
|     }
 | |
| };
 | |
| WindowDefContext.prototype.PARTITION = function () {
 | |
|     return this.getToken(sqlParser.PARTITION, 0);
 | |
| };
 | |
| WindowDefContext.prototype.DISTRIBUTE = function () {
 | |
|     return this.getToken(sqlParser.DISTRIBUTE, 0);
 | |
| };
 | |
| WindowDefContext.prototype.ORDER = function () {
 | |
|     return this.getToken(sqlParser.ORDER, 0);
 | |
| };
 | |
| WindowDefContext.prototype.SORT = function () {
 | |
|     return this.getToken(sqlParser.SORT, 0);
 | |
| };
 | |
| WindowDefContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterWindowDef(this);
 | |
|     }
 | |
| };
 | |
| WindowDefContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitWindowDef(this);
 | |
|     }
 | |
| };
 | |
| WindowDefContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitWindowDef(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.WindowSpecContext = WindowSpecContext;
 | |
| sqlParser.prototype.windowSpec = function () {
 | |
|     var localctx = new WindowSpecContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 210, sqlParser.RULE_windowSpec);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 2614;
 | |
|         this._errHandler.sync(this);
 | |
|         switch (this._input.LA(1)) {
 | |
|             case sqlParser.SELECT:
 | |
|             case sqlParser.FROM:
 | |
|             case sqlParser.ADD:
 | |
|             case sqlParser.AS:
 | |
|             case sqlParser.ALL:
 | |
|             case sqlParser.ANY:
 | |
|             case sqlParser.DISTINCT:
 | |
|             case sqlParser.WHERE:
 | |
|             case sqlParser.GROUP:
 | |
|             case sqlParser.BY:
 | |
|             case sqlParser.GROUPING:
 | |
|             case sqlParser.SETS:
 | |
|             case sqlParser.CUBE:
 | |
|             case sqlParser.ROLLUP:
 | |
|             case sqlParser.ORDER:
 | |
|             case sqlParser.HAVING:
 | |
|             case sqlParser.LIMIT:
 | |
|             case sqlParser.AT:
 | |
|             case sqlParser.OR:
 | |
|             case sqlParser.AND:
 | |
|             case sqlParser.IN:
 | |
|             case sqlParser.NOT:
 | |
|             case sqlParser.NO:
 | |
|             case sqlParser.EXISTS:
 | |
|             case sqlParser.BETWEEN:
 | |
|             case sqlParser.LIKE:
 | |
|             case sqlParser.RLIKE:
 | |
|             case sqlParser.IS:
 | |
|             case sqlParser.NULL:
 | |
|             case sqlParser.TRUE:
 | |
|             case sqlParser.FALSE:
 | |
|             case sqlParser.NULLS:
 | |
|             case sqlParser.ASC:
 | |
|             case sqlParser.DESC:
 | |
|             case sqlParser.FOR:
 | |
|             case sqlParser.INTERVAL:
 | |
|             case sqlParser.CASE:
 | |
|             case sqlParser.WHEN:
 | |
|             case sqlParser.THEN:
 | |
|             case sqlParser.ELSE:
 | |
|             case sqlParser.END:
 | |
|             case sqlParser.JOIN:
 | |
|             case sqlParser.CROSS:
 | |
|             case sqlParser.OUTER:
 | |
|             case sqlParser.INNER:
 | |
|             case sqlParser.LEFT:
 | |
|             case sqlParser.SEMI:
 | |
|             case sqlParser.RIGHT:
 | |
|             case sqlParser.FULL:
 | |
|             case sqlParser.NATURAL:
 | |
|             case sqlParser.ON:
 | |
|             case sqlParser.PIVOT:
 | |
|             case sqlParser.LATERAL:
 | |
|             case sqlParser.WINDOW:
 | |
|             case sqlParser.OVER:
 | |
|             case sqlParser.PARTITION:
 | |
|             case sqlParser.RANGE:
 | |
|             case sqlParser.ROWS:
 | |
|             case sqlParser.UNBOUNDED:
 | |
|             case sqlParser.PRECEDING:
 | |
|             case sqlParser.FOLLOWING:
 | |
|             case sqlParser.CURRENT:
 | |
|             case sqlParser.FIRST:
 | |
|             case sqlParser.AFTER:
 | |
|             case sqlParser.LAST:
 | |
|             case sqlParser.ROW:
 | |
|             case sqlParser.WITH:
 | |
|             case sqlParser.CREATE:
 | |
|             case sqlParser.TABLE:
 | |
|             case sqlParser.DIRECTORY:
 | |
|             case sqlParser.VIEW:
 | |
|             case sqlParser.REPLACE:
 | |
|             case sqlParser.INSERT:
 | |
|             case sqlParser.DELETE:
 | |
|             case sqlParser.INTO:
 | |
|             case sqlParser.DESCRIBE:
 | |
|             case sqlParser.EXPLAIN:
 | |
|             case sqlParser.FORMAT:
 | |
|             case sqlParser.LOGICAL:
 | |
|             case sqlParser.CODEGEN:
 | |
|             case sqlParser.COST:
 | |
|             case sqlParser.CAST:
 | |
|             case sqlParser.SHOW:
 | |
|             case sqlParser.TABLES:
 | |
|             case sqlParser.COLUMNS:
 | |
|             case sqlParser.COLUMN:
 | |
|             case sqlParser.USE:
 | |
|             case sqlParser.PARTITIONS:
 | |
|             case sqlParser.FUNCTIONS:
 | |
|             case sqlParser.DROP:
 | |
|             case sqlParser.UNION:
 | |
|             case sqlParser.EXCEPT:
 | |
|             case sqlParser.SETMINUS:
 | |
|             case sqlParser.INTERSECT:
 | |
|             case sqlParser.TO:
 | |
|             case sqlParser.TABLESAMPLE:
 | |
|             case sqlParser.STRATIFY:
 | |
|             case sqlParser.ALTER:
 | |
|             case sqlParser.RENAME:
 | |
|             case sqlParser.ARRAY:
 | |
|             case sqlParser.MAP:
 | |
|             case sqlParser.STRUCT:
 | |
|             case sqlParser.COMMENT:
 | |
|             case sqlParser.SET:
 | |
|             case sqlParser.RESET:
 | |
|             case sqlParser.DATA:
 | |
|             case sqlParser.START:
 | |
|             case sqlParser.TRANSACTION:
 | |
|             case sqlParser.COMMIT:
 | |
|             case sqlParser.ROLLBACK:
 | |
|             case sqlParser.MACRO:
 | |
|             case sqlParser.IGNORE:
 | |
|             case sqlParser.BOTH:
 | |
|             case sqlParser.LEADING:
 | |
|             case sqlParser.TRAILING:
 | |
|             case sqlParser.IF:
 | |
|             case sqlParser.POSITION:
 | |
|             case sqlParser.EXTRACT:
 | |
|             case sqlParser.DIV:
 | |
|             case sqlParser.PERCENTLIT:
 | |
|             case sqlParser.BUCKET:
 | |
|             case sqlParser.OUT:
 | |
|             case sqlParser.OF:
 | |
|             case sqlParser.SORT:
 | |
|             case sqlParser.CLUSTER:
 | |
|             case sqlParser.DISTRIBUTE:
 | |
|             case sqlParser.OVERWRITE:
 | |
|             case sqlParser.TRANSFORM:
 | |
|             case sqlParser.REDUCE:
 | |
|             case sqlParser.SERDE:
 | |
|             case sqlParser.SERDEPROPERTIES:
 | |
|             case sqlParser.RECORDREADER:
 | |
|             case sqlParser.RECORDWRITER:
 | |
|             case sqlParser.DELIMITED:
 | |
|             case sqlParser.FIELDS:
 | |
|             case sqlParser.TERMINATED:
 | |
|             case sqlParser.COLLECTION:
 | |
|             case sqlParser.ITEMS:
 | |
|             case sqlParser.KEYS:
 | |
|             case sqlParser.ESCAPED:
 | |
|             case sqlParser.LINES:
 | |
|             case sqlParser.SEPARATED:
 | |
|             case sqlParser.FUNCTION:
 | |
|             case sqlParser.EXTENDED:
 | |
|             case sqlParser.REFRESH:
 | |
|             case sqlParser.CLEAR:
 | |
|             case sqlParser.CACHE:
 | |
|             case sqlParser.UNCACHE:
 | |
|             case sqlParser.LAZY:
 | |
|             case sqlParser.FORMATTED:
 | |
|             case sqlParser.GLOBAL:
 | |
|             case sqlParser.TEMPORARY:
 | |
|             case sqlParser.OPTIONS:
 | |
|             case sqlParser.UNSET:
 | |
|             case sqlParser.TBLPROPERTIES:
 | |
|             case sqlParser.DBPROPERTIES:
 | |
|             case sqlParser.BUCKETS:
 | |
|             case sqlParser.SKEWED:
 | |
|             case sqlParser.STORED:
 | |
|             case sqlParser.DIRECTORIES:
 | |
|             case sqlParser.LOCATION:
 | |
|             case sqlParser.EXCHANGE:
 | |
|             case sqlParser.ARCHIVE:
 | |
|             case sqlParser.UNARCHIVE:
 | |
|             case sqlParser.FILEFORMAT:
 | |
|             case sqlParser.TOUCH:
 | |
|             case sqlParser.COMPACT:
 | |
|             case sqlParser.CONCATENATE:
 | |
|             case sqlParser.CHANGE:
 | |
|             case sqlParser.CASCADE:
 | |
|             case sqlParser.RESTRICT:
 | |
|             case sqlParser.CLUSTERED:
 | |
|             case sqlParser.SORTED:
 | |
|             case sqlParser.PURGE:
 | |
|             case sqlParser.INPUTFORMAT:
 | |
|             case sqlParser.OUTPUTFORMAT:
 | |
|             case sqlParser.DATABASE:
 | |
|             case sqlParser.DATABASES:
 | |
|             case sqlParser.DFS:
 | |
|             case sqlParser.TRUNCATE:
 | |
|             case sqlParser.ANALYZE:
 | |
|             case sqlParser.COMPUTE:
 | |
|             case sqlParser.LIST:
 | |
|             case sqlParser.STATISTICS:
 | |
|             case sqlParser.PARTITIONED:
 | |
|             case sqlParser.EXTERNAL:
 | |
|             case sqlParser.DEFINED:
 | |
|             case sqlParser.REVOKE:
 | |
|             case sqlParser.GRANT:
 | |
|             case sqlParser.LOCK:
 | |
|             case sqlParser.UNLOCK:
 | |
|             case sqlParser.MSCK:
 | |
|             case sqlParser.REPAIR:
 | |
|             case sqlParser.RECOVER:
 | |
|             case sqlParser.EXPORT:
 | |
|             case sqlParser.IMPORT:
 | |
|             case sqlParser.LOAD:
 | |
|             case sqlParser.ROLE:
 | |
|             case sqlParser.ROLES:
 | |
|             case sqlParser.COMPACTIONS:
 | |
|             case sqlParser.PRINCIPALS:
 | |
|             case sqlParser.TRANSACTIONS:
 | |
|             case sqlParser.INDEX:
 | |
|             case sqlParser.INDEXES:
 | |
|             case sqlParser.LOCKS:
 | |
|             case sqlParser.OPTION:
 | |
|             case sqlParser.ANTI:
 | |
|             case sqlParser.LOCAL:
 | |
|             case sqlParser.INPATH:
 | |
|             case sqlParser.IDENTIFIER:
 | |
|             case sqlParser.BACKQUOTED_IDENTIFIER:
 | |
|                 localctx = new WindowRefContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 2572;
 | |
|                 localctx.name = this.identifier();
 | |
|                 break;
 | |
|             case sqlParser.T__0:
 | |
|                 localctx = new WindowDefContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 2573;
 | |
|                 this.match(sqlParser.T__0);
 | |
|                 this.state = 2608;
 | |
|                 this._errHandler.sync(this);
 | |
|                 switch (this._input.LA(1)) {
 | |
|                     case sqlParser.CLUSTER:
 | |
|                         this.state = 2574;
 | |
|                         this.match(sqlParser.CLUSTER);
 | |
|                         this.state = 2575;
 | |
|                         this.match(sqlParser.BY);
 | |
|                         this.state = 2576;
 | |
|                         localctx._expression = this.expression();
 | |
|                         localctx.partition.push(localctx._expression);
 | |
|                         this.state = 2581;
 | |
|                         this._errHandler.sync(this);
 | |
|                         _la = this._input.LA(1);
 | |
|                         while (_la === sqlParser.T__3) {
 | |
|                             this.state = 2577;
 | |
|                             this.match(sqlParser.T__3);
 | |
|                             this.state = 2578;
 | |
|                             localctx._expression = this.expression();
 | |
|                             localctx.partition.push(localctx._expression);
 | |
|                             this.state = 2583;
 | |
|                             this._errHandler.sync(this);
 | |
|                             _la = this._input.LA(1);
 | |
|                         }
 | |
|                         break;
 | |
|                     case sqlParser.T__1:
 | |
|                     case sqlParser.ORDER:
 | |
|                     case sqlParser.PARTITION:
 | |
|                     case sqlParser.RANGE:
 | |
|                     case sqlParser.ROWS:
 | |
|                     case sqlParser.SORT:
 | |
|                     case sqlParser.DISTRIBUTE:
 | |
|                         this.state = 2594;
 | |
|                         this._errHandler.sync(this);
 | |
|                         _la = this._input.LA(1);
 | |
|                         if (_la === sqlParser.PARTITION || _la === sqlParser.DISTRIBUTE) {
 | |
|                             this.state = 2584;
 | |
|                             _la = this._input.LA(1);
 | |
|                             if (!(_la === sqlParser.PARTITION || _la === sqlParser.DISTRIBUTE)) {
 | |
|                                 this._errHandler.recoverInline(this);
 | |
|                             }
 | |
|                             else {
 | |
|                                 this._errHandler.reportMatch(this);
 | |
|                                 this.consume();
 | |
|                             }
 | |
|                             this.state = 2585;
 | |
|                             this.match(sqlParser.BY);
 | |
|                             this.state = 2586;
 | |
|                             localctx._expression = this.expression();
 | |
|                             localctx.partition.push(localctx._expression);
 | |
|                             this.state = 2591;
 | |
|                             this._errHandler.sync(this);
 | |
|                             _la = this._input.LA(1);
 | |
|                             while (_la === sqlParser.T__3) {
 | |
|                                 this.state = 2587;
 | |
|                                 this.match(sqlParser.T__3);
 | |
|                                 this.state = 2588;
 | |
|                                 localctx._expression = this.expression();
 | |
|                                 localctx.partition.push(localctx._expression);
 | |
|                                 this.state = 2593;
 | |
|                                 this._errHandler.sync(this);
 | |
|                                 _la = this._input.LA(1);
 | |
|                             }
 | |
|                         }
 | |
|                         this.state = 2606;
 | |
|                         this._errHandler.sync(this);
 | |
|                         _la = this._input.LA(1);
 | |
|                         if (_la === sqlParser.ORDER || _la === sqlParser.SORT) {
 | |
|                             this.state = 2596;
 | |
|                             _la = this._input.LA(1);
 | |
|                             if (!(_la === sqlParser.ORDER || _la === sqlParser.SORT)) {
 | |
|                                 this._errHandler.recoverInline(this);
 | |
|                             }
 | |
|                             else {
 | |
|                                 this._errHandler.reportMatch(this);
 | |
|                                 this.consume();
 | |
|                             }
 | |
|                             this.state = 2597;
 | |
|                             this.match(sqlParser.BY);
 | |
|                             this.state = 2598;
 | |
|                             this.sortItem();
 | |
|                             this.state = 2603;
 | |
|                             this._errHandler.sync(this);
 | |
|                             _la = this._input.LA(1);
 | |
|                             while (_la === sqlParser.T__3) {
 | |
|                                 this.state = 2599;
 | |
|                                 this.match(sqlParser.T__3);
 | |
|                                 this.state = 2600;
 | |
|                                 this.sortItem();
 | |
|                                 this.state = 2605;
 | |
|                                 this._errHandler.sync(this);
 | |
|                                 _la = this._input.LA(1);
 | |
|                             }
 | |
|                         }
 | |
|                         break;
 | |
|                     default:
 | |
|                         throw new antlr4.error.NoViableAltException(this);
 | |
|                 }
 | |
|                 this.state = 2611;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.RANGE || _la === sqlParser.ROWS) {
 | |
|                     this.state = 2610;
 | |
|                     this.windowFrame();
 | |
|                 }
 | |
|                 this.state = 2613;
 | |
|                 this.match(sqlParser.T__1);
 | |
|                 break;
 | |
|             default:
 | |
|                 throw new antlr4.error.NoViableAltException(this);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function WindowFrameContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_windowFrame;
 | |
|     this.frameType = null; // Token
 | |
|     this.start = null; // FrameBoundContext
 | |
|     this.end = null; // FrameBoundContext
 | |
|     return this;
 | |
| }
 | |
| WindowFrameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| WindowFrameContext.prototype.constructor = WindowFrameContext;
 | |
| WindowFrameContext.prototype.RANGE = function () {
 | |
|     return this.getToken(sqlParser.RANGE, 0);
 | |
| };
 | |
| WindowFrameContext.prototype.frameBound = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(FrameBoundContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(FrameBoundContext, i);
 | |
|     }
 | |
| };
 | |
| WindowFrameContext.prototype.ROWS = function () {
 | |
|     return this.getToken(sqlParser.ROWS, 0);
 | |
| };
 | |
| WindowFrameContext.prototype.BETWEEN = function () {
 | |
|     return this.getToken(sqlParser.BETWEEN, 0);
 | |
| };
 | |
| WindowFrameContext.prototype.AND = function () {
 | |
|     return this.getToken(sqlParser.AND, 0);
 | |
| };
 | |
| WindowFrameContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterWindowFrame(this);
 | |
|     }
 | |
| };
 | |
| WindowFrameContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitWindowFrame(this);
 | |
|     }
 | |
| };
 | |
| WindowFrameContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitWindowFrame(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.WindowFrameContext = WindowFrameContext;
 | |
| sqlParser.prototype.windowFrame = function () {
 | |
|     var localctx = new WindowFrameContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 212, sqlParser.RULE_windowFrame);
 | |
|     try {
 | |
|         this.state = 2632;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 343, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 2616;
 | |
|                 localctx.frameType = this.match(sqlParser.RANGE);
 | |
|                 this.state = 2617;
 | |
|                 localctx.start = this.frameBound();
 | |
|                 break;
 | |
|             case 2:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 2618;
 | |
|                 localctx.frameType = this.match(sqlParser.ROWS);
 | |
|                 this.state = 2619;
 | |
|                 localctx.start = this.frameBound();
 | |
|                 break;
 | |
|             case 3:
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 2620;
 | |
|                 localctx.frameType = this.match(sqlParser.RANGE);
 | |
|                 this.state = 2621;
 | |
|                 this.match(sqlParser.BETWEEN);
 | |
|                 this.state = 2622;
 | |
|                 localctx.start = this.frameBound();
 | |
|                 this.state = 2623;
 | |
|                 this.match(sqlParser.AND);
 | |
|                 this.state = 2624;
 | |
|                 localctx.end = this.frameBound();
 | |
|                 break;
 | |
|             case 4:
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 2626;
 | |
|                 localctx.frameType = this.match(sqlParser.ROWS);
 | |
|                 this.state = 2627;
 | |
|                 this.match(sqlParser.BETWEEN);
 | |
|                 this.state = 2628;
 | |
|                 localctx.start = this.frameBound();
 | |
|                 this.state = 2629;
 | |
|                 this.match(sqlParser.AND);
 | |
|                 this.state = 2630;
 | |
|                 localctx.end = this.frameBound();
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function FrameBoundContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_frameBound;
 | |
|     this.boundType = null; // Token
 | |
|     return this;
 | |
| }
 | |
| FrameBoundContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| FrameBoundContext.prototype.constructor = FrameBoundContext;
 | |
| FrameBoundContext.prototype.UNBOUNDED = function () {
 | |
|     return this.getToken(sqlParser.UNBOUNDED, 0);
 | |
| };
 | |
| FrameBoundContext.prototype.PRECEDING = function () {
 | |
|     return this.getToken(sqlParser.PRECEDING, 0);
 | |
| };
 | |
| FrameBoundContext.prototype.FOLLOWING = function () {
 | |
|     return this.getToken(sqlParser.FOLLOWING, 0);
 | |
| };
 | |
| FrameBoundContext.prototype.ROW = function () {
 | |
|     return this.getToken(sqlParser.ROW, 0);
 | |
| };
 | |
| FrameBoundContext.prototype.CURRENT = function () {
 | |
|     return this.getToken(sqlParser.CURRENT, 0);
 | |
| };
 | |
| FrameBoundContext.prototype.expression = function () {
 | |
|     return this.getTypedRuleContext(ExpressionContext, 0);
 | |
| };
 | |
| FrameBoundContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterFrameBound(this);
 | |
|     }
 | |
| };
 | |
| FrameBoundContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitFrameBound(this);
 | |
|     }
 | |
| };
 | |
| FrameBoundContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitFrameBound(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.FrameBoundContext = FrameBoundContext;
 | |
| sqlParser.prototype.frameBound = function () {
 | |
|     var localctx = new FrameBoundContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 214, sqlParser.RULE_frameBound);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 2641;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 344, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 2634;
 | |
|                 this.match(sqlParser.UNBOUNDED);
 | |
|                 this.state = 2635;
 | |
|                 localctx.boundType = this._input.LT(1);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(_la === sqlParser.PRECEDING || _la === sqlParser.FOLLOWING)) {
 | |
|                     localctx.boundType = this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 break;
 | |
|             case 2:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 2636;
 | |
|                 localctx.boundType = this.match(sqlParser.CURRENT);
 | |
|                 this.state = 2637;
 | |
|                 this.match(sqlParser.ROW);
 | |
|                 break;
 | |
|             case 3:
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 2638;
 | |
|                 this.expression();
 | |
|                 this.state = 2639;
 | |
|                 localctx.boundType = this._input.LT(1);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (!(_la === sqlParser.PRECEDING || _la === sqlParser.FOLLOWING)) {
 | |
|                     localctx.boundType = this._errHandler.recoverInline(this);
 | |
|                 }
 | |
|                 else {
 | |
|                     this._errHandler.reportMatch(this);
 | |
|                     this.consume();
 | |
|                 }
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function QualifiedNameContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_qualifiedName;
 | |
|     return this;
 | |
| }
 | |
| QualifiedNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| QualifiedNameContext.prototype.constructor = QualifiedNameContext;
 | |
| QualifiedNameContext.prototype.identifier = function (i) {
 | |
|     if (i === undefined) {
 | |
|         i = null;
 | |
|     }
 | |
|     if (i === null) {
 | |
|         return this.getTypedRuleContexts(IdentifierContext);
 | |
|     }
 | |
|     else {
 | |
|         return this.getTypedRuleContext(IdentifierContext, i);
 | |
|     }
 | |
| };
 | |
| QualifiedNameContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterQualifiedName(this);
 | |
|     }
 | |
| };
 | |
| QualifiedNameContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitQualifiedName(this);
 | |
|     }
 | |
| };
 | |
| QualifiedNameContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitQualifiedName(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.QualifiedNameContext = QualifiedNameContext;
 | |
| sqlParser.prototype.qualifiedName = function () {
 | |
|     var localctx = new QualifiedNameContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 216, sqlParser.RULE_qualifiedName);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2643;
 | |
|         this.identifier();
 | |
|         this.state = 2648;
 | |
|         this._errHandler.sync(this);
 | |
|         var _alt = this._interp.adaptivePredict(this._input, 345, this._ctx);
 | |
|         while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) {
 | |
|             if (_alt === 1) {
 | |
|                 this.state = 2644;
 | |
|                 this.match(sqlParser.T__2);
 | |
|                 this.state = 2645;
 | |
|                 this.identifier();
 | |
|             }
 | |
|             this.state = 2650;
 | |
|             this._errHandler.sync(this);
 | |
|             _alt = this._interp.adaptivePredict(this._input, 345, 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 IdentifierContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_identifier;
 | |
|     return this;
 | |
| }
 | |
| IdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| IdentifierContext.prototype.constructor = IdentifierContext;
 | |
| IdentifierContext.prototype.strictIdentifier = function () {
 | |
|     return this.getTypedRuleContext(StrictIdentifierContext, 0);
 | |
| };
 | |
| IdentifierContext.prototype.ANTI = function () {
 | |
|     return this.getToken(sqlParser.ANTI, 0);
 | |
| };
 | |
| IdentifierContext.prototype.FULL = function () {
 | |
|     return this.getToken(sqlParser.FULL, 0);
 | |
| };
 | |
| IdentifierContext.prototype.INNER = function () {
 | |
|     return this.getToken(sqlParser.INNER, 0);
 | |
| };
 | |
| IdentifierContext.prototype.LEFT = function () {
 | |
|     return this.getToken(sqlParser.LEFT, 0);
 | |
| };
 | |
| IdentifierContext.prototype.SEMI = function () {
 | |
|     return this.getToken(sqlParser.SEMI, 0);
 | |
| };
 | |
| IdentifierContext.prototype.RIGHT = function () {
 | |
|     return this.getToken(sqlParser.RIGHT, 0);
 | |
| };
 | |
| IdentifierContext.prototype.NATURAL = function () {
 | |
|     return this.getToken(sqlParser.NATURAL, 0);
 | |
| };
 | |
| IdentifierContext.prototype.JOIN = function () {
 | |
|     return this.getToken(sqlParser.JOIN, 0);
 | |
| };
 | |
| IdentifierContext.prototype.CROSS = function () {
 | |
|     return this.getToken(sqlParser.CROSS, 0);
 | |
| };
 | |
| IdentifierContext.prototype.ON = function () {
 | |
|     return this.getToken(sqlParser.ON, 0);
 | |
| };
 | |
| IdentifierContext.prototype.UNION = function () {
 | |
|     return this.getToken(sqlParser.UNION, 0);
 | |
| };
 | |
| IdentifierContext.prototype.INTERSECT = function () {
 | |
|     return this.getToken(sqlParser.INTERSECT, 0);
 | |
| };
 | |
| IdentifierContext.prototype.EXCEPT = function () {
 | |
|     return this.getToken(sqlParser.EXCEPT, 0);
 | |
| };
 | |
| IdentifierContext.prototype.SETMINUS = function () {
 | |
|     return this.getToken(sqlParser.SETMINUS, 0);
 | |
| };
 | |
| IdentifierContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterIdentifier(this);
 | |
|     }
 | |
| };
 | |
| IdentifierContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitIdentifier(this);
 | |
|     }
 | |
| };
 | |
| IdentifierContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitIdentifier(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.IdentifierContext = IdentifierContext;
 | |
| sqlParser.prototype.identifier = function () {
 | |
|     var localctx = new IdentifierContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 218, sqlParser.RULE_identifier);
 | |
|     try {
 | |
|         this.state = 2666;
 | |
|         this._errHandler.sync(this);
 | |
|         switch (this._input.LA(1)) {
 | |
|             case sqlParser.SELECT:
 | |
|             case sqlParser.FROM:
 | |
|             case sqlParser.ADD:
 | |
|             case sqlParser.AS:
 | |
|             case sqlParser.ALL:
 | |
|             case sqlParser.ANY:
 | |
|             case sqlParser.DISTINCT:
 | |
|             case sqlParser.WHERE:
 | |
|             case sqlParser.GROUP:
 | |
|             case sqlParser.BY:
 | |
|             case sqlParser.GROUPING:
 | |
|             case sqlParser.SETS:
 | |
|             case sqlParser.CUBE:
 | |
|             case sqlParser.ROLLUP:
 | |
|             case sqlParser.ORDER:
 | |
|             case sqlParser.HAVING:
 | |
|             case sqlParser.LIMIT:
 | |
|             case sqlParser.AT:
 | |
|             case sqlParser.OR:
 | |
|             case sqlParser.AND:
 | |
|             case sqlParser.IN:
 | |
|             case sqlParser.NOT:
 | |
|             case sqlParser.NO:
 | |
|             case sqlParser.EXISTS:
 | |
|             case sqlParser.BETWEEN:
 | |
|             case sqlParser.LIKE:
 | |
|             case sqlParser.RLIKE:
 | |
|             case sqlParser.IS:
 | |
|             case sqlParser.NULL:
 | |
|             case sqlParser.TRUE:
 | |
|             case sqlParser.FALSE:
 | |
|             case sqlParser.NULLS:
 | |
|             case sqlParser.ASC:
 | |
|             case sqlParser.DESC:
 | |
|             case sqlParser.FOR:
 | |
|             case sqlParser.INTERVAL:
 | |
|             case sqlParser.CASE:
 | |
|             case sqlParser.WHEN:
 | |
|             case sqlParser.THEN:
 | |
|             case sqlParser.ELSE:
 | |
|             case sqlParser.END:
 | |
|             case sqlParser.OUTER:
 | |
|             case sqlParser.PIVOT:
 | |
|             case sqlParser.LATERAL:
 | |
|             case sqlParser.WINDOW:
 | |
|             case sqlParser.OVER:
 | |
|             case sqlParser.PARTITION:
 | |
|             case sqlParser.RANGE:
 | |
|             case sqlParser.ROWS:
 | |
|             case sqlParser.UNBOUNDED:
 | |
|             case sqlParser.PRECEDING:
 | |
|             case sqlParser.FOLLOWING:
 | |
|             case sqlParser.CURRENT:
 | |
|             case sqlParser.FIRST:
 | |
|             case sqlParser.AFTER:
 | |
|             case sqlParser.LAST:
 | |
|             case sqlParser.ROW:
 | |
|             case sqlParser.WITH:
 | |
|             case sqlParser.CREATE:
 | |
|             case sqlParser.TABLE:
 | |
|             case sqlParser.DIRECTORY:
 | |
|             case sqlParser.VIEW:
 | |
|             case sqlParser.REPLACE:
 | |
|             case sqlParser.INSERT:
 | |
|             case sqlParser.DELETE:
 | |
|             case sqlParser.INTO:
 | |
|             case sqlParser.DESCRIBE:
 | |
|             case sqlParser.EXPLAIN:
 | |
|             case sqlParser.FORMAT:
 | |
|             case sqlParser.LOGICAL:
 | |
|             case sqlParser.CODEGEN:
 | |
|             case sqlParser.COST:
 | |
|             case sqlParser.CAST:
 | |
|             case sqlParser.SHOW:
 | |
|             case sqlParser.TABLES:
 | |
|             case sqlParser.COLUMNS:
 | |
|             case sqlParser.COLUMN:
 | |
|             case sqlParser.USE:
 | |
|             case sqlParser.PARTITIONS:
 | |
|             case sqlParser.FUNCTIONS:
 | |
|             case sqlParser.DROP:
 | |
|             case sqlParser.TO:
 | |
|             case sqlParser.TABLESAMPLE:
 | |
|             case sqlParser.STRATIFY:
 | |
|             case sqlParser.ALTER:
 | |
|             case sqlParser.RENAME:
 | |
|             case sqlParser.ARRAY:
 | |
|             case sqlParser.MAP:
 | |
|             case sqlParser.STRUCT:
 | |
|             case sqlParser.COMMENT:
 | |
|             case sqlParser.SET:
 | |
|             case sqlParser.RESET:
 | |
|             case sqlParser.DATA:
 | |
|             case sqlParser.START:
 | |
|             case sqlParser.TRANSACTION:
 | |
|             case sqlParser.COMMIT:
 | |
|             case sqlParser.ROLLBACK:
 | |
|             case sqlParser.MACRO:
 | |
|             case sqlParser.IGNORE:
 | |
|             case sqlParser.BOTH:
 | |
|             case sqlParser.LEADING:
 | |
|             case sqlParser.TRAILING:
 | |
|             case sqlParser.IF:
 | |
|             case sqlParser.POSITION:
 | |
|             case sqlParser.EXTRACT:
 | |
|             case sqlParser.DIV:
 | |
|             case sqlParser.PERCENTLIT:
 | |
|             case sqlParser.BUCKET:
 | |
|             case sqlParser.OUT:
 | |
|             case sqlParser.OF:
 | |
|             case sqlParser.SORT:
 | |
|             case sqlParser.CLUSTER:
 | |
|             case sqlParser.DISTRIBUTE:
 | |
|             case sqlParser.OVERWRITE:
 | |
|             case sqlParser.TRANSFORM:
 | |
|             case sqlParser.REDUCE:
 | |
|             case sqlParser.SERDE:
 | |
|             case sqlParser.SERDEPROPERTIES:
 | |
|             case sqlParser.RECORDREADER:
 | |
|             case sqlParser.RECORDWRITER:
 | |
|             case sqlParser.DELIMITED:
 | |
|             case sqlParser.FIELDS:
 | |
|             case sqlParser.TERMINATED:
 | |
|             case sqlParser.COLLECTION:
 | |
|             case sqlParser.ITEMS:
 | |
|             case sqlParser.KEYS:
 | |
|             case sqlParser.ESCAPED:
 | |
|             case sqlParser.LINES:
 | |
|             case sqlParser.SEPARATED:
 | |
|             case sqlParser.FUNCTION:
 | |
|             case sqlParser.EXTENDED:
 | |
|             case sqlParser.REFRESH:
 | |
|             case sqlParser.CLEAR:
 | |
|             case sqlParser.CACHE:
 | |
|             case sqlParser.UNCACHE:
 | |
|             case sqlParser.LAZY:
 | |
|             case sqlParser.FORMATTED:
 | |
|             case sqlParser.GLOBAL:
 | |
|             case sqlParser.TEMPORARY:
 | |
|             case sqlParser.OPTIONS:
 | |
|             case sqlParser.UNSET:
 | |
|             case sqlParser.TBLPROPERTIES:
 | |
|             case sqlParser.DBPROPERTIES:
 | |
|             case sqlParser.BUCKETS:
 | |
|             case sqlParser.SKEWED:
 | |
|             case sqlParser.STORED:
 | |
|             case sqlParser.DIRECTORIES:
 | |
|             case sqlParser.LOCATION:
 | |
|             case sqlParser.EXCHANGE:
 | |
|             case sqlParser.ARCHIVE:
 | |
|             case sqlParser.UNARCHIVE:
 | |
|             case sqlParser.FILEFORMAT:
 | |
|             case sqlParser.TOUCH:
 | |
|             case sqlParser.COMPACT:
 | |
|             case sqlParser.CONCATENATE:
 | |
|             case sqlParser.CHANGE:
 | |
|             case sqlParser.CASCADE:
 | |
|             case sqlParser.RESTRICT:
 | |
|             case sqlParser.CLUSTERED:
 | |
|             case sqlParser.SORTED:
 | |
|             case sqlParser.PURGE:
 | |
|             case sqlParser.INPUTFORMAT:
 | |
|             case sqlParser.OUTPUTFORMAT:
 | |
|             case sqlParser.DATABASE:
 | |
|             case sqlParser.DATABASES:
 | |
|             case sqlParser.DFS:
 | |
|             case sqlParser.TRUNCATE:
 | |
|             case sqlParser.ANALYZE:
 | |
|             case sqlParser.COMPUTE:
 | |
|             case sqlParser.LIST:
 | |
|             case sqlParser.STATISTICS:
 | |
|             case sqlParser.PARTITIONED:
 | |
|             case sqlParser.EXTERNAL:
 | |
|             case sqlParser.DEFINED:
 | |
|             case sqlParser.REVOKE:
 | |
|             case sqlParser.GRANT:
 | |
|             case sqlParser.LOCK:
 | |
|             case sqlParser.UNLOCK:
 | |
|             case sqlParser.MSCK:
 | |
|             case sqlParser.REPAIR:
 | |
|             case sqlParser.RECOVER:
 | |
|             case sqlParser.EXPORT:
 | |
|             case sqlParser.IMPORT:
 | |
|             case sqlParser.LOAD:
 | |
|             case sqlParser.ROLE:
 | |
|             case sqlParser.ROLES:
 | |
|             case sqlParser.COMPACTIONS:
 | |
|             case sqlParser.PRINCIPALS:
 | |
|             case sqlParser.TRANSACTIONS:
 | |
|             case sqlParser.INDEX:
 | |
|             case sqlParser.INDEXES:
 | |
|             case sqlParser.LOCKS:
 | |
|             case sqlParser.OPTION:
 | |
|             case sqlParser.LOCAL:
 | |
|             case sqlParser.INPATH:
 | |
|             case sqlParser.IDENTIFIER:
 | |
|             case sqlParser.BACKQUOTED_IDENTIFIER:
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 2651;
 | |
|                 this.strictIdentifier();
 | |
|                 break;
 | |
|             case sqlParser.ANTI:
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 2652;
 | |
|                 this.match(sqlParser.ANTI);
 | |
|                 break;
 | |
|             case sqlParser.FULL:
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 2653;
 | |
|                 this.match(sqlParser.FULL);
 | |
|                 break;
 | |
|             case sqlParser.INNER:
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 2654;
 | |
|                 this.match(sqlParser.INNER);
 | |
|                 break;
 | |
|             case sqlParser.LEFT:
 | |
|                 this.enterOuterAlt(localctx, 5);
 | |
|                 this.state = 2655;
 | |
|                 this.match(sqlParser.LEFT);
 | |
|                 break;
 | |
|             case sqlParser.SEMI:
 | |
|                 this.enterOuterAlt(localctx, 6);
 | |
|                 this.state = 2656;
 | |
|                 this.match(sqlParser.SEMI);
 | |
|                 break;
 | |
|             case sqlParser.RIGHT:
 | |
|                 this.enterOuterAlt(localctx, 7);
 | |
|                 this.state = 2657;
 | |
|                 this.match(sqlParser.RIGHT);
 | |
|                 break;
 | |
|             case sqlParser.NATURAL:
 | |
|                 this.enterOuterAlt(localctx, 8);
 | |
|                 this.state = 2658;
 | |
|                 this.match(sqlParser.NATURAL);
 | |
|                 break;
 | |
|             case sqlParser.JOIN:
 | |
|                 this.enterOuterAlt(localctx, 9);
 | |
|                 this.state = 2659;
 | |
|                 this.match(sqlParser.JOIN);
 | |
|                 break;
 | |
|             case sqlParser.CROSS:
 | |
|                 this.enterOuterAlt(localctx, 10);
 | |
|                 this.state = 2660;
 | |
|                 this.match(sqlParser.CROSS);
 | |
|                 break;
 | |
|             case sqlParser.ON:
 | |
|                 this.enterOuterAlt(localctx, 11);
 | |
|                 this.state = 2661;
 | |
|                 this.match(sqlParser.ON);
 | |
|                 break;
 | |
|             case sqlParser.UNION:
 | |
|                 this.enterOuterAlt(localctx, 12);
 | |
|                 this.state = 2662;
 | |
|                 this.match(sqlParser.UNION);
 | |
|                 break;
 | |
|             case sqlParser.INTERSECT:
 | |
|                 this.enterOuterAlt(localctx, 13);
 | |
|                 this.state = 2663;
 | |
|                 this.match(sqlParser.INTERSECT);
 | |
|                 break;
 | |
|             case sqlParser.EXCEPT:
 | |
|                 this.enterOuterAlt(localctx, 14);
 | |
|                 this.state = 2664;
 | |
|                 this.match(sqlParser.EXCEPT);
 | |
|                 break;
 | |
|             case sqlParser.SETMINUS:
 | |
|                 this.enterOuterAlt(localctx, 15);
 | |
|                 this.state = 2665;
 | |
|                 this.match(sqlParser.SETMINUS);
 | |
|                 break;
 | |
|             default:
 | |
|                 throw new antlr4.error.NoViableAltException(this);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function StrictIdentifierContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_strictIdentifier;
 | |
|     return this;
 | |
| }
 | |
| StrictIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| StrictIdentifierContext.prototype.constructor = StrictIdentifierContext;
 | |
| StrictIdentifierContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function QuotedIdentifierAlternativeContext(parser, ctx) {
 | |
|     StrictIdentifierContext.call(this, parser);
 | |
|     StrictIdentifierContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| QuotedIdentifierAlternativeContext.prototype = Object.create(StrictIdentifierContext.prototype);
 | |
| QuotedIdentifierAlternativeContext.prototype.constructor = QuotedIdentifierAlternativeContext;
 | |
| sqlParser.QuotedIdentifierAlternativeContext = QuotedIdentifierAlternativeContext;
 | |
| QuotedIdentifierAlternativeContext.prototype.quotedIdentifier = function () {
 | |
|     return this.getTypedRuleContext(QuotedIdentifierContext, 0);
 | |
| };
 | |
| QuotedIdentifierAlternativeContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterQuotedIdentifierAlternative(this);
 | |
|     }
 | |
| };
 | |
| QuotedIdentifierAlternativeContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitQuotedIdentifierAlternative(this);
 | |
|     }
 | |
| };
 | |
| QuotedIdentifierAlternativeContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitQuotedIdentifierAlternative(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function UnquotedIdentifierContext(parser, ctx) {
 | |
|     StrictIdentifierContext.call(this, parser);
 | |
|     StrictIdentifierContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| UnquotedIdentifierContext.prototype = Object.create(StrictIdentifierContext.prototype);
 | |
| UnquotedIdentifierContext.prototype.constructor = UnquotedIdentifierContext;
 | |
| sqlParser.UnquotedIdentifierContext = UnquotedIdentifierContext;
 | |
| UnquotedIdentifierContext.prototype.IDENTIFIER = function () {
 | |
|     return this.getToken(sqlParser.IDENTIFIER, 0);
 | |
| };
 | |
| UnquotedIdentifierContext.prototype.nonReserved = function () {
 | |
|     return this.getTypedRuleContext(NonReservedContext, 0);
 | |
| };
 | |
| UnquotedIdentifierContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterUnquotedIdentifier(this);
 | |
|     }
 | |
| };
 | |
| UnquotedIdentifierContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitUnquotedIdentifier(this);
 | |
|     }
 | |
| };
 | |
| UnquotedIdentifierContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitUnquotedIdentifier(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.StrictIdentifierContext = StrictIdentifierContext;
 | |
| sqlParser.prototype.strictIdentifier = function () {
 | |
|     var localctx = new StrictIdentifierContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 220, sqlParser.RULE_strictIdentifier);
 | |
|     try {
 | |
|         this.state = 2671;
 | |
|         this._errHandler.sync(this);
 | |
|         switch (this._input.LA(1)) {
 | |
|             case sqlParser.IDENTIFIER:
 | |
|                 localctx = new UnquotedIdentifierContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 2668;
 | |
|                 this.match(sqlParser.IDENTIFIER);
 | |
|                 break;
 | |
|             case sqlParser.BACKQUOTED_IDENTIFIER:
 | |
|                 localctx = new QuotedIdentifierAlternativeContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 2669;
 | |
|                 this.quotedIdentifier();
 | |
|                 break;
 | |
|             case sqlParser.SELECT:
 | |
|             case sqlParser.FROM:
 | |
|             case sqlParser.ADD:
 | |
|             case sqlParser.AS:
 | |
|             case sqlParser.ALL:
 | |
|             case sqlParser.ANY:
 | |
|             case sqlParser.DISTINCT:
 | |
|             case sqlParser.WHERE:
 | |
|             case sqlParser.GROUP:
 | |
|             case sqlParser.BY:
 | |
|             case sqlParser.GROUPING:
 | |
|             case sqlParser.SETS:
 | |
|             case sqlParser.CUBE:
 | |
|             case sqlParser.ROLLUP:
 | |
|             case sqlParser.ORDER:
 | |
|             case sqlParser.HAVING:
 | |
|             case sqlParser.LIMIT:
 | |
|             case sqlParser.AT:
 | |
|             case sqlParser.OR:
 | |
|             case sqlParser.AND:
 | |
|             case sqlParser.IN:
 | |
|             case sqlParser.NOT:
 | |
|             case sqlParser.NO:
 | |
|             case sqlParser.EXISTS:
 | |
|             case sqlParser.BETWEEN:
 | |
|             case sqlParser.LIKE:
 | |
|             case sqlParser.RLIKE:
 | |
|             case sqlParser.IS:
 | |
|             case sqlParser.NULL:
 | |
|             case sqlParser.TRUE:
 | |
|             case sqlParser.FALSE:
 | |
|             case sqlParser.NULLS:
 | |
|             case sqlParser.ASC:
 | |
|             case sqlParser.DESC:
 | |
|             case sqlParser.FOR:
 | |
|             case sqlParser.INTERVAL:
 | |
|             case sqlParser.CASE:
 | |
|             case sqlParser.WHEN:
 | |
|             case sqlParser.THEN:
 | |
|             case sqlParser.ELSE:
 | |
|             case sqlParser.END:
 | |
|             case sqlParser.OUTER:
 | |
|             case sqlParser.PIVOT:
 | |
|             case sqlParser.LATERAL:
 | |
|             case sqlParser.WINDOW:
 | |
|             case sqlParser.OVER:
 | |
|             case sqlParser.PARTITION:
 | |
|             case sqlParser.RANGE:
 | |
|             case sqlParser.ROWS:
 | |
|             case sqlParser.UNBOUNDED:
 | |
|             case sqlParser.PRECEDING:
 | |
|             case sqlParser.FOLLOWING:
 | |
|             case sqlParser.CURRENT:
 | |
|             case sqlParser.FIRST:
 | |
|             case sqlParser.AFTER:
 | |
|             case sqlParser.LAST:
 | |
|             case sqlParser.ROW:
 | |
|             case sqlParser.WITH:
 | |
|             case sqlParser.CREATE:
 | |
|             case sqlParser.TABLE:
 | |
|             case sqlParser.DIRECTORY:
 | |
|             case sqlParser.VIEW:
 | |
|             case sqlParser.REPLACE:
 | |
|             case sqlParser.INSERT:
 | |
|             case sqlParser.DELETE:
 | |
|             case sqlParser.INTO:
 | |
|             case sqlParser.DESCRIBE:
 | |
|             case sqlParser.EXPLAIN:
 | |
|             case sqlParser.FORMAT:
 | |
|             case sqlParser.LOGICAL:
 | |
|             case sqlParser.CODEGEN:
 | |
|             case sqlParser.COST:
 | |
|             case sqlParser.CAST:
 | |
|             case sqlParser.SHOW:
 | |
|             case sqlParser.TABLES:
 | |
|             case sqlParser.COLUMNS:
 | |
|             case sqlParser.COLUMN:
 | |
|             case sqlParser.USE:
 | |
|             case sqlParser.PARTITIONS:
 | |
|             case sqlParser.FUNCTIONS:
 | |
|             case sqlParser.DROP:
 | |
|             case sqlParser.TO:
 | |
|             case sqlParser.TABLESAMPLE:
 | |
|             case sqlParser.STRATIFY:
 | |
|             case sqlParser.ALTER:
 | |
|             case sqlParser.RENAME:
 | |
|             case sqlParser.ARRAY:
 | |
|             case sqlParser.MAP:
 | |
|             case sqlParser.STRUCT:
 | |
|             case sqlParser.COMMENT:
 | |
|             case sqlParser.SET:
 | |
|             case sqlParser.RESET:
 | |
|             case sqlParser.DATA:
 | |
|             case sqlParser.START:
 | |
|             case sqlParser.TRANSACTION:
 | |
|             case sqlParser.COMMIT:
 | |
|             case sqlParser.ROLLBACK:
 | |
|             case sqlParser.MACRO:
 | |
|             case sqlParser.IGNORE:
 | |
|             case sqlParser.BOTH:
 | |
|             case sqlParser.LEADING:
 | |
|             case sqlParser.TRAILING:
 | |
|             case sqlParser.IF:
 | |
|             case sqlParser.POSITION:
 | |
|             case sqlParser.EXTRACT:
 | |
|             case sqlParser.DIV:
 | |
|             case sqlParser.PERCENTLIT:
 | |
|             case sqlParser.BUCKET:
 | |
|             case sqlParser.OUT:
 | |
|             case sqlParser.OF:
 | |
|             case sqlParser.SORT:
 | |
|             case sqlParser.CLUSTER:
 | |
|             case sqlParser.DISTRIBUTE:
 | |
|             case sqlParser.OVERWRITE:
 | |
|             case sqlParser.TRANSFORM:
 | |
|             case sqlParser.REDUCE:
 | |
|             case sqlParser.SERDE:
 | |
|             case sqlParser.SERDEPROPERTIES:
 | |
|             case sqlParser.RECORDREADER:
 | |
|             case sqlParser.RECORDWRITER:
 | |
|             case sqlParser.DELIMITED:
 | |
|             case sqlParser.FIELDS:
 | |
|             case sqlParser.TERMINATED:
 | |
|             case sqlParser.COLLECTION:
 | |
|             case sqlParser.ITEMS:
 | |
|             case sqlParser.KEYS:
 | |
|             case sqlParser.ESCAPED:
 | |
|             case sqlParser.LINES:
 | |
|             case sqlParser.SEPARATED:
 | |
|             case sqlParser.FUNCTION:
 | |
|             case sqlParser.EXTENDED:
 | |
|             case sqlParser.REFRESH:
 | |
|             case sqlParser.CLEAR:
 | |
|             case sqlParser.CACHE:
 | |
|             case sqlParser.UNCACHE:
 | |
|             case sqlParser.LAZY:
 | |
|             case sqlParser.FORMATTED:
 | |
|             case sqlParser.GLOBAL:
 | |
|             case sqlParser.TEMPORARY:
 | |
|             case sqlParser.OPTIONS:
 | |
|             case sqlParser.UNSET:
 | |
|             case sqlParser.TBLPROPERTIES:
 | |
|             case sqlParser.DBPROPERTIES:
 | |
|             case sqlParser.BUCKETS:
 | |
|             case sqlParser.SKEWED:
 | |
|             case sqlParser.STORED:
 | |
|             case sqlParser.DIRECTORIES:
 | |
|             case sqlParser.LOCATION:
 | |
|             case sqlParser.EXCHANGE:
 | |
|             case sqlParser.ARCHIVE:
 | |
|             case sqlParser.UNARCHIVE:
 | |
|             case sqlParser.FILEFORMAT:
 | |
|             case sqlParser.TOUCH:
 | |
|             case sqlParser.COMPACT:
 | |
|             case sqlParser.CONCATENATE:
 | |
|             case sqlParser.CHANGE:
 | |
|             case sqlParser.CASCADE:
 | |
|             case sqlParser.RESTRICT:
 | |
|             case sqlParser.CLUSTERED:
 | |
|             case sqlParser.SORTED:
 | |
|             case sqlParser.PURGE:
 | |
|             case sqlParser.INPUTFORMAT:
 | |
|             case sqlParser.OUTPUTFORMAT:
 | |
|             case sqlParser.DATABASE:
 | |
|             case sqlParser.DATABASES:
 | |
|             case sqlParser.DFS:
 | |
|             case sqlParser.TRUNCATE:
 | |
|             case sqlParser.ANALYZE:
 | |
|             case sqlParser.COMPUTE:
 | |
|             case sqlParser.LIST:
 | |
|             case sqlParser.STATISTICS:
 | |
|             case sqlParser.PARTITIONED:
 | |
|             case sqlParser.EXTERNAL:
 | |
|             case sqlParser.DEFINED:
 | |
|             case sqlParser.REVOKE:
 | |
|             case sqlParser.GRANT:
 | |
|             case sqlParser.LOCK:
 | |
|             case sqlParser.UNLOCK:
 | |
|             case sqlParser.MSCK:
 | |
|             case sqlParser.REPAIR:
 | |
|             case sqlParser.RECOVER:
 | |
|             case sqlParser.EXPORT:
 | |
|             case sqlParser.IMPORT:
 | |
|             case sqlParser.LOAD:
 | |
|             case sqlParser.ROLE:
 | |
|             case sqlParser.ROLES:
 | |
|             case sqlParser.COMPACTIONS:
 | |
|             case sqlParser.PRINCIPALS:
 | |
|             case sqlParser.TRANSACTIONS:
 | |
|             case sqlParser.INDEX:
 | |
|             case sqlParser.INDEXES:
 | |
|             case sqlParser.LOCKS:
 | |
|             case sqlParser.OPTION:
 | |
|             case sqlParser.LOCAL:
 | |
|             case sqlParser.INPATH:
 | |
|                 localctx = new UnquotedIdentifierContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 2670;
 | |
|                 this.nonReserved();
 | |
|                 break;
 | |
|             default:
 | |
|                 throw new antlr4.error.NoViableAltException(this);
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function QuotedIdentifierContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_quotedIdentifier;
 | |
|     return this;
 | |
| }
 | |
| QuotedIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| QuotedIdentifierContext.prototype.constructor = QuotedIdentifierContext;
 | |
| QuotedIdentifierContext.prototype.BACKQUOTED_IDENTIFIER = function () {
 | |
|     return this.getToken(sqlParser.BACKQUOTED_IDENTIFIER, 0);
 | |
| };
 | |
| QuotedIdentifierContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterQuotedIdentifier(this);
 | |
|     }
 | |
| };
 | |
| QuotedIdentifierContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitQuotedIdentifier(this);
 | |
|     }
 | |
| };
 | |
| QuotedIdentifierContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitQuotedIdentifier(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.QuotedIdentifierContext = QuotedIdentifierContext;
 | |
| sqlParser.prototype.quotedIdentifier = function () {
 | |
|     var localctx = new QuotedIdentifierContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 222, sqlParser.RULE_quotedIdentifier);
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2673;
 | |
|         this.match(sqlParser.BACKQUOTED_IDENTIFIER);
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function NumberContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_number;
 | |
|     return this;
 | |
| }
 | |
| NumberContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| NumberContext.prototype.constructor = NumberContext;
 | |
| NumberContext.prototype.copyFrom = function (ctx) {
 | |
|     antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx);
 | |
| };
 | |
| function DecimalLiteralContext(parser, ctx) {
 | |
|     NumberContext.call(this, parser);
 | |
|     NumberContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| DecimalLiteralContext.prototype = Object.create(NumberContext.prototype);
 | |
| DecimalLiteralContext.prototype.constructor = DecimalLiteralContext;
 | |
| sqlParser.DecimalLiteralContext = DecimalLiteralContext;
 | |
| DecimalLiteralContext.prototype.DECIMAL_VALUE = function () {
 | |
|     return this.getToken(sqlParser.DECIMAL_VALUE, 0);
 | |
| };
 | |
| DecimalLiteralContext.prototype.MINUS = function () {
 | |
|     return this.getToken(sqlParser.MINUS, 0);
 | |
| };
 | |
| DecimalLiteralContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterDecimalLiteral(this);
 | |
|     }
 | |
| };
 | |
| DecimalLiteralContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitDecimalLiteral(this);
 | |
|     }
 | |
| };
 | |
| DecimalLiteralContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitDecimalLiteral(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function BigIntLiteralContext(parser, ctx) {
 | |
|     NumberContext.call(this, parser);
 | |
|     NumberContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| BigIntLiteralContext.prototype = Object.create(NumberContext.prototype);
 | |
| BigIntLiteralContext.prototype.constructor = BigIntLiteralContext;
 | |
| sqlParser.BigIntLiteralContext = BigIntLiteralContext;
 | |
| BigIntLiteralContext.prototype.BIGINT_LITERAL = function () {
 | |
|     return this.getToken(sqlParser.BIGINT_LITERAL, 0);
 | |
| };
 | |
| BigIntLiteralContext.prototype.MINUS = function () {
 | |
|     return this.getToken(sqlParser.MINUS, 0);
 | |
| };
 | |
| BigIntLiteralContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterBigIntLiteral(this);
 | |
|     }
 | |
| };
 | |
| BigIntLiteralContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitBigIntLiteral(this);
 | |
|     }
 | |
| };
 | |
| BigIntLiteralContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitBigIntLiteral(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function TinyIntLiteralContext(parser, ctx) {
 | |
|     NumberContext.call(this, parser);
 | |
|     NumberContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| TinyIntLiteralContext.prototype = Object.create(NumberContext.prototype);
 | |
| TinyIntLiteralContext.prototype.constructor = TinyIntLiteralContext;
 | |
| sqlParser.TinyIntLiteralContext = TinyIntLiteralContext;
 | |
| TinyIntLiteralContext.prototype.TINYINT_LITERAL = function () {
 | |
|     return this.getToken(sqlParser.TINYINT_LITERAL, 0);
 | |
| };
 | |
| TinyIntLiteralContext.prototype.MINUS = function () {
 | |
|     return this.getToken(sqlParser.MINUS, 0);
 | |
| };
 | |
| TinyIntLiteralContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterTinyIntLiteral(this);
 | |
|     }
 | |
| };
 | |
| TinyIntLiteralContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitTinyIntLiteral(this);
 | |
|     }
 | |
| };
 | |
| TinyIntLiteralContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitTinyIntLiteral(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function BigDecimalLiteralContext(parser, ctx) {
 | |
|     NumberContext.call(this, parser);
 | |
|     NumberContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| BigDecimalLiteralContext.prototype = Object.create(NumberContext.prototype);
 | |
| BigDecimalLiteralContext.prototype.constructor = BigDecimalLiteralContext;
 | |
| sqlParser.BigDecimalLiteralContext = BigDecimalLiteralContext;
 | |
| BigDecimalLiteralContext.prototype.BIGDECIMAL_LITERAL = function () {
 | |
|     return this.getToken(sqlParser.BIGDECIMAL_LITERAL, 0);
 | |
| };
 | |
| BigDecimalLiteralContext.prototype.MINUS = function () {
 | |
|     return this.getToken(sqlParser.MINUS, 0);
 | |
| };
 | |
| BigDecimalLiteralContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterBigDecimalLiteral(this);
 | |
|     }
 | |
| };
 | |
| BigDecimalLiteralContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitBigDecimalLiteral(this);
 | |
|     }
 | |
| };
 | |
| BigDecimalLiteralContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitBigDecimalLiteral(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function DoubleLiteralContext(parser, ctx) {
 | |
|     NumberContext.call(this, parser);
 | |
|     NumberContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| DoubleLiteralContext.prototype = Object.create(NumberContext.prototype);
 | |
| DoubleLiteralContext.prototype.constructor = DoubleLiteralContext;
 | |
| sqlParser.DoubleLiteralContext = DoubleLiteralContext;
 | |
| DoubleLiteralContext.prototype.DOUBLE_LITERAL = function () {
 | |
|     return this.getToken(sqlParser.DOUBLE_LITERAL, 0);
 | |
| };
 | |
| DoubleLiteralContext.prototype.MINUS = function () {
 | |
|     return this.getToken(sqlParser.MINUS, 0);
 | |
| };
 | |
| DoubleLiteralContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterDoubleLiteral(this);
 | |
|     }
 | |
| };
 | |
| DoubleLiteralContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitDoubleLiteral(this);
 | |
|     }
 | |
| };
 | |
| DoubleLiteralContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitDoubleLiteral(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function IntegerLiteralContext(parser, ctx) {
 | |
|     NumberContext.call(this, parser);
 | |
|     NumberContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| IntegerLiteralContext.prototype = Object.create(NumberContext.prototype);
 | |
| IntegerLiteralContext.prototype.constructor = IntegerLiteralContext;
 | |
| sqlParser.IntegerLiteralContext = IntegerLiteralContext;
 | |
| IntegerLiteralContext.prototype.INTEGER_VALUE = function () {
 | |
|     return this.getToken(sqlParser.INTEGER_VALUE, 0);
 | |
| };
 | |
| IntegerLiteralContext.prototype.MINUS = function () {
 | |
|     return this.getToken(sqlParser.MINUS, 0);
 | |
| };
 | |
| IntegerLiteralContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterIntegerLiteral(this);
 | |
|     }
 | |
| };
 | |
| IntegerLiteralContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitIntegerLiteral(this);
 | |
|     }
 | |
| };
 | |
| IntegerLiteralContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitIntegerLiteral(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| function SmallIntLiteralContext(parser, ctx) {
 | |
|     NumberContext.call(this, parser);
 | |
|     NumberContext.prototype.copyFrom.call(this, ctx);
 | |
|     return this;
 | |
| }
 | |
| SmallIntLiteralContext.prototype = Object.create(NumberContext.prototype);
 | |
| SmallIntLiteralContext.prototype.constructor = SmallIntLiteralContext;
 | |
| sqlParser.SmallIntLiteralContext = SmallIntLiteralContext;
 | |
| SmallIntLiteralContext.prototype.SMALLINT_LITERAL = function () {
 | |
|     return this.getToken(sqlParser.SMALLINT_LITERAL, 0);
 | |
| };
 | |
| SmallIntLiteralContext.prototype.MINUS = function () {
 | |
|     return this.getToken(sqlParser.MINUS, 0);
 | |
| };
 | |
| SmallIntLiteralContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterSmallIntLiteral(this);
 | |
|     }
 | |
| };
 | |
| SmallIntLiteralContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitSmallIntLiteral(this);
 | |
|     }
 | |
| };
 | |
| SmallIntLiteralContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitSmallIntLiteral(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.NumberContext = NumberContext;
 | |
| sqlParser.prototype.number = function () {
 | |
|     var localctx = new NumberContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 224, sqlParser.RULE_number);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.state = 2703;
 | |
|         this._errHandler.sync(this);
 | |
|         var la_ = this._interp.adaptivePredict(this._input, 355, this._ctx);
 | |
|         switch (la_) {
 | |
|             case 1:
 | |
|                 localctx = new DecimalLiteralContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 1);
 | |
|                 this.state = 2676;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.MINUS) {
 | |
|                     this.state = 2675;
 | |
|                     this.match(sqlParser.MINUS);
 | |
|                 }
 | |
|                 this.state = 2678;
 | |
|                 this.match(sqlParser.DECIMAL_VALUE);
 | |
|                 break;
 | |
|             case 2:
 | |
|                 localctx = new IntegerLiteralContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 2);
 | |
|                 this.state = 2680;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.MINUS) {
 | |
|                     this.state = 2679;
 | |
|                     this.match(sqlParser.MINUS);
 | |
|                 }
 | |
|                 this.state = 2682;
 | |
|                 this.match(sqlParser.INTEGER_VALUE);
 | |
|                 break;
 | |
|             case 3:
 | |
|                 localctx = new BigIntLiteralContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 3);
 | |
|                 this.state = 2684;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.MINUS) {
 | |
|                     this.state = 2683;
 | |
|                     this.match(sqlParser.MINUS);
 | |
|                 }
 | |
|                 this.state = 2686;
 | |
|                 this.match(sqlParser.BIGINT_LITERAL);
 | |
|                 break;
 | |
|             case 4:
 | |
|                 localctx = new SmallIntLiteralContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 4);
 | |
|                 this.state = 2688;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.MINUS) {
 | |
|                     this.state = 2687;
 | |
|                     this.match(sqlParser.MINUS);
 | |
|                 }
 | |
|                 this.state = 2690;
 | |
|                 this.match(sqlParser.SMALLINT_LITERAL);
 | |
|                 break;
 | |
|             case 5:
 | |
|                 localctx = new TinyIntLiteralContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 5);
 | |
|                 this.state = 2692;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.MINUS) {
 | |
|                     this.state = 2691;
 | |
|                     this.match(sqlParser.MINUS);
 | |
|                 }
 | |
|                 this.state = 2694;
 | |
|                 this.match(sqlParser.TINYINT_LITERAL);
 | |
|                 break;
 | |
|             case 6:
 | |
|                 localctx = new DoubleLiteralContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 6);
 | |
|                 this.state = 2696;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.MINUS) {
 | |
|                     this.state = 2695;
 | |
|                     this.match(sqlParser.MINUS);
 | |
|                 }
 | |
|                 this.state = 2698;
 | |
|                 this.match(sqlParser.DOUBLE_LITERAL);
 | |
|                 break;
 | |
|             case 7:
 | |
|                 localctx = new BigDecimalLiteralContext(this, localctx);
 | |
|                 this.enterOuterAlt(localctx, 7);
 | |
|                 this.state = 2700;
 | |
|                 this._errHandler.sync(this);
 | |
|                 _la = this._input.LA(1);
 | |
|                 if (_la === sqlParser.MINUS) {
 | |
|                     this.state = 2699;
 | |
|                     this.match(sqlParser.MINUS);
 | |
|                 }
 | |
|                 this.state = 2702;
 | |
|                 this.match(sqlParser.BIGDECIMAL_LITERAL);
 | |
|                 break;
 | |
|         }
 | |
|     }
 | |
|     catch (re) {
 | |
|         if (re instanceof antlr4.error.RecognitionException) {
 | |
|             localctx.exception = re;
 | |
|             this._errHandler.reportError(this, re);
 | |
|             this._errHandler.recover(this, re);
 | |
|         }
 | |
|         else {
 | |
|             throw re;
 | |
|         }
 | |
|     }
 | |
|     finally {
 | |
|         this.exitRule();
 | |
|     }
 | |
|     return localctx;
 | |
| };
 | |
| function NonReservedContext(parser, parent, invokingState) {
 | |
|     if (parent === undefined) {
 | |
|         parent = null;
 | |
|     }
 | |
|     if (invokingState === undefined || invokingState === null) {
 | |
|         invokingState = -1;
 | |
|     }
 | |
|     antlr4.ParserRuleContext.call(this, parent, invokingState);
 | |
|     this.parser = parser;
 | |
|     this.ruleIndex = sqlParser.RULE_nonReserved;
 | |
|     return this;
 | |
| }
 | |
| NonReservedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype);
 | |
| NonReservedContext.prototype.constructor = NonReservedContext;
 | |
| NonReservedContext.prototype.SHOW = function () {
 | |
|     return this.getToken(sqlParser.SHOW, 0);
 | |
| };
 | |
| NonReservedContext.prototype.TABLES = function () {
 | |
|     return this.getToken(sqlParser.TABLES, 0);
 | |
| };
 | |
| NonReservedContext.prototype.COLUMNS = function () {
 | |
|     return this.getToken(sqlParser.COLUMNS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.COLUMN = function () {
 | |
|     return this.getToken(sqlParser.COLUMN, 0);
 | |
| };
 | |
| NonReservedContext.prototype.PARTITIONS = function () {
 | |
|     return this.getToken(sqlParser.PARTITIONS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.FUNCTIONS = function () {
 | |
|     return this.getToken(sqlParser.FUNCTIONS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DATABASES = function () {
 | |
|     return this.getToken(sqlParser.DATABASES, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ADD = function () {
 | |
|     return this.getToken(sqlParser.ADD, 0);
 | |
| };
 | |
| NonReservedContext.prototype.OVER = function () {
 | |
|     return this.getToken(sqlParser.OVER, 0);
 | |
| };
 | |
| NonReservedContext.prototype.PARTITION = function () {
 | |
|     return this.getToken(sqlParser.PARTITION, 0);
 | |
| };
 | |
| NonReservedContext.prototype.RANGE = function () {
 | |
|     return this.getToken(sqlParser.RANGE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ROWS = function () {
 | |
|     return this.getToken(sqlParser.ROWS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.PRECEDING = function () {
 | |
|     return this.getToken(sqlParser.PRECEDING, 0);
 | |
| };
 | |
| NonReservedContext.prototype.FOLLOWING = function () {
 | |
|     return this.getToken(sqlParser.FOLLOWING, 0);
 | |
| };
 | |
| NonReservedContext.prototype.CURRENT = function () {
 | |
|     return this.getToken(sqlParser.CURRENT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ROW = function () {
 | |
|     return this.getToken(sqlParser.ROW, 0);
 | |
| };
 | |
| NonReservedContext.prototype.LAST = function () {
 | |
|     return this.getToken(sqlParser.LAST, 0);
 | |
| };
 | |
| NonReservedContext.prototype.FIRST = function () {
 | |
|     return this.getToken(sqlParser.FIRST, 0);
 | |
| };
 | |
| NonReservedContext.prototype.AFTER = function () {
 | |
|     return this.getToken(sqlParser.AFTER, 0);
 | |
| };
 | |
| NonReservedContext.prototype.MAP = function () {
 | |
|     return this.getToken(sqlParser.MAP, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ARRAY = function () {
 | |
|     return this.getToken(sqlParser.ARRAY, 0);
 | |
| };
 | |
| NonReservedContext.prototype.STRUCT = function () {
 | |
|     return this.getToken(sqlParser.STRUCT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.PIVOT = function () {
 | |
|     return this.getToken(sqlParser.PIVOT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.LATERAL = function () {
 | |
|     return this.getToken(sqlParser.LATERAL, 0);
 | |
| };
 | |
| NonReservedContext.prototype.WINDOW = function () {
 | |
|     return this.getToken(sqlParser.WINDOW, 0);
 | |
| };
 | |
| NonReservedContext.prototype.REDUCE = function () {
 | |
|     return this.getToken(sqlParser.REDUCE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.TRANSFORM = function () {
 | |
|     return this.getToken(sqlParser.TRANSFORM, 0);
 | |
| };
 | |
| NonReservedContext.prototype.SERDE = function () {
 | |
|     return this.getToken(sqlParser.SERDE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.SERDEPROPERTIES = function () {
 | |
|     return this.getToken(sqlParser.SERDEPROPERTIES, 0);
 | |
| };
 | |
| NonReservedContext.prototype.RECORDREADER = function () {
 | |
|     return this.getToken(sqlParser.RECORDREADER, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DELIMITED = function () {
 | |
|     return this.getToken(sqlParser.DELIMITED, 0);
 | |
| };
 | |
| NonReservedContext.prototype.FIELDS = function () {
 | |
|     return this.getToken(sqlParser.FIELDS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.TERMINATED = function () {
 | |
|     return this.getToken(sqlParser.TERMINATED, 0);
 | |
| };
 | |
| NonReservedContext.prototype.COLLECTION = function () {
 | |
|     return this.getToken(sqlParser.COLLECTION, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ITEMS = function () {
 | |
|     return this.getToken(sqlParser.ITEMS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.KEYS = function () {
 | |
|     return this.getToken(sqlParser.KEYS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ESCAPED = function () {
 | |
|     return this.getToken(sqlParser.ESCAPED, 0);
 | |
| };
 | |
| NonReservedContext.prototype.LINES = function () {
 | |
|     return this.getToken(sqlParser.LINES, 0);
 | |
| };
 | |
| NonReservedContext.prototype.SEPARATED = function () {
 | |
|     return this.getToken(sqlParser.SEPARATED, 0);
 | |
| };
 | |
| NonReservedContext.prototype.EXTENDED = function () {
 | |
|     return this.getToken(sqlParser.EXTENDED, 0);
 | |
| };
 | |
| NonReservedContext.prototype.REFRESH = function () {
 | |
|     return this.getToken(sqlParser.REFRESH, 0);
 | |
| };
 | |
| NonReservedContext.prototype.CLEAR = function () {
 | |
|     return this.getToken(sqlParser.CLEAR, 0);
 | |
| };
 | |
| NonReservedContext.prototype.CACHE = function () {
 | |
|     return this.getToken(sqlParser.CACHE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.UNCACHE = function () {
 | |
|     return this.getToken(sqlParser.UNCACHE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.LAZY = function () {
 | |
|     return this.getToken(sqlParser.LAZY, 0);
 | |
| };
 | |
| NonReservedContext.prototype.GLOBAL = function () {
 | |
|     return this.getToken(sqlParser.GLOBAL, 0);
 | |
| };
 | |
| NonReservedContext.prototype.TEMPORARY = function () {
 | |
|     return this.getToken(sqlParser.TEMPORARY, 0);
 | |
| };
 | |
| NonReservedContext.prototype.OPTIONS = function () {
 | |
|     return this.getToken(sqlParser.OPTIONS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.GROUPING = function () {
 | |
|     return this.getToken(sqlParser.GROUPING, 0);
 | |
| };
 | |
| NonReservedContext.prototype.CUBE = function () {
 | |
|     return this.getToken(sqlParser.CUBE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ROLLUP = function () {
 | |
|     return this.getToken(sqlParser.ROLLUP, 0);
 | |
| };
 | |
| NonReservedContext.prototype.EXPLAIN = function () {
 | |
|     return this.getToken(sqlParser.EXPLAIN, 0);
 | |
| };
 | |
| NonReservedContext.prototype.FORMAT = function () {
 | |
|     return this.getToken(sqlParser.FORMAT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.LOGICAL = function () {
 | |
|     return this.getToken(sqlParser.LOGICAL, 0);
 | |
| };
 | |
| NonReservedContext.prototype.FORMATTED = function () {
 | |
|     return this.getToken(sqlParser.FORMATTED, 0);
 | |
| };
 | |
| NonReservedContext.prototype.CODEGEN = function () {
 | |
|     return this.getToken(sqlParser.CODEGEN, 0);
 | |
| };
 | |
| NonReservedContext.prototype.COST = function () {
 | |
|     return this.getToken(sqlParser.COST, 0);
 | |
| };
 | |
| NonReservedContext.prototype.TABLESAMPLE = function () {
 | |
|     return this.getToken(sqlParser.TABLESAMPLE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.USE = function () {
 | |
|     return this.getToken(sqlParser.USE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.TO = function () {
 | |
|     return this.getToken(sqlParser.TO, 0);
 | |
| };
 | |
| NonReservedContext.prototype.BUCKET = function () {
 | |
|     return this.getToken(sqlParser.BUCKET, 0);
 | |
| };
 | |
| NonReservedContext.prototype.PERCENTLIT = function () {
 | |
|     return this.getToken(sqlParser.PERCENTLIT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.OUT = function () {
 | |
|     return this.getToken(sqlParser.OUT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.OF = function () {
 | |
|     return this.getToken(sqlParser.OF, 0);
 | |
| };
 | |
| NonReservedContext.prototype.SET = function () {
 | |
|     return this.getToken(sqlParser.SET, 0);
 | |
| };
 | |
| NonReservedContext.prototype.RESET = function () {
 | |
|     return this.getToken(sqlParser.RESET, 0);
 | |
| };
 | |
| NonReservedContext.prototype.VIEW = function () {
 | |
|     return this.getToken(sqlParser.VIEW, 0);
 | |
| };
 | |
| NonReservedContext.prototype.REPLACE = function () {
 | |
|     return this.getToken(sqlParser.REPLACE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.IF = function () {
 | |
|     return this.getToken(sqlParser.IF, 0);
 | |
| };
 | |
| NonReservedContext.prototype.POSITION = function () {
 | |
|     return this.getToken(sqlParser.POSITION, 0);
 | |
| };
 | |
| NonReservedContext.prototype.EXTRACT = function () {
 | |
|     return this.getToken(sqlParser.EXTRACT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.NO = function () {
 | |
|     return this.getToken(sqlParser.NO, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DATA = function () {
 | |
|     return this.getToken(sqlParser.DATA, 0);
 | |
| };
 | |
| NonReservedContext.prototype.START = function () {
 | |
|     return this.getToken(sqlParser.START, 0);
 | |
| };
 | |
| NonReservedContext.prototype.TRANSACTION = function () {
 | |
|     return this.getToken(sqlParser.TRANSACTION, 0);
 | |
| };
 | |
| NonReservedContext.prototype.COMMIT = function () {
 | |
|     return this.getToken(sqlParser.COMMIT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ROLLBACK = function () {
 | |
|     return this.getToken(sqlParser.ROLLBACK, 0);
 | |
| };
 | |
| NonReservedContext.prototype.IGNORE = function () {
 | |
|     return this.getToken(sqlParser.IGNORE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.SORT = function () {
 | |
|     return this.getToken(sqlParser.SORT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.CLUSTER = function () {
 | |
|     return this.getToken(sqlParser.CLUSTER, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DISTRIBUTE = function () {
 | |
|     return this.getToken(sqlParser.DISTRIBUTE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.UNSET = function () {
 | |
|     return this.getToken(sqlParser.UNSET, 0);
 | |
| };
 | |
| NonReservedContext.prototype.TBLPROPERTIES = function () {
 | |
|     return this.getToken(sqlParser.TBLPROPERTIES, 0);
 | |
| };
 | |
| NonReservedContext.prototype.SKEWED = function () {
 | |
|     return this.getToken(sqlParser.SKEWED, 0);
 | |
| };
 | |
| NonReservedContext.prototype.STORED = function () {
 | |
|     return this.getToken(sqlParser.STORED, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DIRECTORIES = function () {
 | |
|     return this.getToken(sqlParser.DIRECTORIES, 0);
 | |
| };
 | |
| NonReservedContext.prototype.LOCATION = function () {
 | |
|     return this.getToken(sqlParser.LOCATION, 0);
 | |
| };
 | |
| NonReservedContext.prototype.EXCHANGE = function () {
 | |
|     return this.getToken(sqlParser.EXCHANGE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ARCHIVE = function () {
 | |
|     return this.getToken(sqlParser.ARCHIVE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.UNARCHIVE = function () {
 | |
|     return this.getToken(sqlParser.UNARCHIVE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.FILEFORMAT = function () {
 | |
|     return this.getToken(sqlParser.FILEFORMAT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.TOUCH = function () {
 | |
|     return this.getToken(sqlParser.TOUCH, 0);
 | |
| };
 | |
| NonReservedContext.prototype.COMPACT = function () {
 | |
|     return this.getToken(sqlParser.COMPACT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.CONCATENATE = function () {
 | |
|     return this.getToken(sqlParser.CONCATENATE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.CHANGE = function () {
 | |
|     return this.getToken(sqlParser.CHANGE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.CASCADE = function () {
 | |
|     return this.getToken(sqlParser.CASCADE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.RESTRICT = function () {
 | |
|     return this.getToken(sqlParser.RESTRICT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.BUCKETS = function () {
 | |
|     return this.getToken(sqlParser.BUCKETS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.CLUSTERED = function () {
 | |
|     return this.getToken(sqlParser.CLUSTERED, 0);
 | |
| };
 | |
| NonReservedContext.prototype.SORTED = function () {
 | |
|     return this.getToken(sqlParser.SORTED, 0);
 | |
| };
 | |
| NonReservedContext.prototype.PURGE = function () {
 | |
|     return this.getToken(sqlParser.PURGE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.INPUTFORMAT = function () {
 | |
|     return this.getToken(sqlParser.INPUTFORMAT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.OUTPUTFORMAT = function () {
 | |
|     return this.getToken(sqlParser.OUTPUTFORMAT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DBPROPERTIES = function () {
 | |
|     return this.getToken(sqlParser.DBPROPERTIES, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DFS = function () {
 | |
|     return this.getToken(sqlParser.DFS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.TRUNCATE = function () {
 | |
|     return this.getToken(sqlParser.TRUNCATE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.COMPUTE = function () {
 | |
|     return this.getToken(sqlParser.COMPUTE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.LIST = function () {
 | |
|     return this.getToken(sqlParser.LIST, 0);
 | |
| };
 | |
| NonReservedContext.prototype.STATISTICS = function () {
 | |
|     return this.getToken(sqlParser.STATISTICS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ANALYZE = function () {
 | |
|     return this.getToken(sqlParser.ANALYZE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.PARTITIONED = function () {
 | |
|     return this.getToken(sqlParser.PARTITIONED, 0);
 | |
| };
 | |
| NonReservedContext.prototype.EXTERNAL = function () {
 | |
|     return this.getToken(sqlParser.EXTERNAL, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DEFINED = function () {
 | |
|     return this.getToken(sqlParser.DEFINED, 0);
 | |
| };
 | |
| NonReservedContext.prototype.RECORDWRITER = function () {
 | |
|     return this.getToken(sqlParser.RECORDWRITER, 0);
 | |
| };
 | |
| NonReservedContext.prototype.REVOKE = function () {
 | |
|     return this.getToken(sqlParser.REVOKE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.GRANT = function () {
 | |
|     return this.getToken(sqlParser.GRANT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.LOCK = function () {
 | |
|     return this.getToken(sqlParser.LOCK, 0);
 | |
| };
 | |
| NonReservedContext.prototype.UNLOCK = function () {
 | |
|     return this.getToken(sqlParser.UNLOCK, 0);
 | |
| };
 | |
| NonReservedContext.prototype.MSCK = function () {
 | |
|     return this.getToken(sqlParser.MSCK, 0);
 | |
| };
 | |
| NonReservedContext.prototype.REPAIR = function () {
 | |
|     return this.getToken(sqlParser.REPAIR, 0);
 | |
| };
 | |
| NonReservedContext.prototype.RECOVER = function () {
 | |
|     return this.getToken(sqlParser.RECOVER, 0);
 | |
| };
 | |
| NonReservedContext.prototype.EXPORT = function () {
 | |
|     return this.getToken(sqlParser.EXPORT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.IMPORT = function () {
 | |
|     return this.getToken(sqlParser.IMPORT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.LOAD = function () {
 | |
|     return this.getToken(sqlParser.LOAD, 0);
 | |
| };
 | |
| NonReservedContext.prototype.COMMENT = function () {
 | |
|     return this.getToken(sqlParser.COMMENT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ROLE = function () {
 | |
|     return this.getToken(sqlParser.ROLE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ROLES = function () {
 | |
|     return this.getToken(sqlParser.ROLES, 0);
 | |
| };
 | |
| NonReservedContext.prototype.COMPACTIONS = function () {
 | |
|     return this.getToken(sqlParser.COMPACTIONS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.PRINCIPALS = function () {
 | |
|     return this.getToken(sqlParser.PRINCIPALS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.TRANSACTIONS = function () {
 | |
|     return this.getToken(sqlParser.TRANSACTIONS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.INDEX = function () {
 | |
|     return this.getToken(sqlParser.INDEX, 0);
 | |
| };
 | |
| NonReservedContext.prototype.INDEXES = function () {
 | |
|     return this.getToken(sqlParser.INDEXES, 0);
 | |
| };
 | |
| NonReservedContext.prototype.LOCKS = function () {
 | |
|     return this.getToken(sqlParser.LOCKS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.OPTION = function () {
 | |
|     return this.getToken(sqlParser.OPTION, 0);
 | |
| };
 | |
| NonReservedContext.prototype.LOCAL = function () {
 | |
|     return this.getToken(sqlParser.LOCAL, 0);
 | |
| };
 | |
| NonReservedContext.prototype.INPATH = function () {
 | |
|     return this.getToken(sqlParser.INPATH, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ASC = function () {
 | |
|     return this.getToken(sqlParser.ASC, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DESC = function () {
 | |
|     return this.getToken(sqlParser.DESC, 0);
 | |
| };
 | |
| NonReservedContext.prototype.LIMIT = function () {
 | |
|     return this.getToken(sqlParser.LIMIT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.RENAME = function () {
 | |
|     return this.getToken(sqlParser.RENAME, 0);
 | |
| };
 | |
| NonReservedContext.prototype.SETS = function () {
 | |
|     return this.getToken(sqlParser.SETS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.AT = function () {
 | |
|     return this.getToken(sqlParser.AT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.NULLS = function () {
 | |
|     return this.getToken(sqlParser.NULLS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.OVERWRITE = function () {
 | |
|     return this.getToken(sqlParser.OVERWRITE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ALL = function () {
 | |
|     return this.getToken(sqlParser.ALL, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ANY = function () {
 | |
|     return this.getToken(sqlParser.ANY, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ALTER = function () {
 | |
|     return this.getToken(sqlParser.ALTER, 0);
 | |
| };
 | |
| NonReservedContext.prototype.AS = function () {
 | |
|     return this.getToken(sqlParser.AS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.BETWEEN = function () {
 | |
|     return this.getToken(sqlParser.BETWEEN, 0);
 | |
| };
 | |
| NonReservedContext.prototype.BY = function () {
 | |
|     return this.getToken(sqlParser.BY, 0);
 | |
| };
 | |
| NonReservedContext.prototype.CREATE = function () {
 | |
|     return this.getToken(sqlParser.CREATE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DELETE = function () {
 | |
|     return this.getToken(sqlParser.DELETE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DESCRIBE = function () {
 | |
|     return this.getToken(sqlParser.DESCRIBE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DROP = function () {
 | |
|     return this.getToken(sqlParser.DROP, 0);
 | |
| };
 | |
| NonReservedContext.prototype.EXISTS = function () {
 | |
|     return this.getToken(sqlParser.EXISTS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.FALSE = function () {
 | |
|     return this.getToken(sqlParser.FALSE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.FOR = function () {
 | |
|     return this.getToken(sqlParser.FOR, 0);
 | |
| };
 | |
| NonReservedContext.prototype.GROUP = function () {
 | |
|     return this.getToken(sqlParser.GROUP, 0);
 | |
| };
 | |
| NonReservedContext.prototype.IN = function () {
 | |
|     return this.getToken(sqlParser.IN, 0);
 | |
| };
 | |
| NonReservedContext.prototype.INSERT = function () {
 | |
|     return this.getToken(sqlParser.INSERT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.INTO = function () {
 | |
|     return this.getToken(sqlParser.INTO, 0);
 | |
| };
 | |
| NonReservedContext.prototype.IS = function () {
 | |
|     return this.getToken(sqlParser.IS, 0);
 | |
| };
 | |
| NonReservedContext.prototype.LIKE = function () {
 | |
|     return this.getToken(sqlParser.LIKE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.NULL = function () {
 | |
|     return this.getToken(sqlParser.NULL, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ORDER = function () {
 | |
|     return this.getToken(sqlParser.ORDER, 0);
 | |
| };
 | |
| NonReservedContext.prototype.OUTER = function () {
 | |
|     return this.getToken(sqlParser.OUTER, 0);
 | |
| };
 | |
| NonReservedContext.prototype.TABLE = function () {
 | |
|     return this.getToken(sqlParser.TABLE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.TRUE = function () {
 | |
|     return this.getToken(sqlParser.TRUE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.WITH = function () {
 | |
|     return this.getToken(sqlParser.WITH, 0);
 | |
| };
 | |
| NonReservedContext.prototype.RLIKE = function () {
 | |
|     return this.getToken(sqlParser.RLIKE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.AND = function () {
 | |
|     return this.getToken(sqlParser.AND, 0);
 | |
| };
 | |
| NonReservedContext.prototype.CASE = function () {
 | |
|     return this.getToken(sqlParser.CASE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.CAST = function () {
 | |
|     return this.getToken(sqlParser.CAST, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DISTINCT = function () {
 | |
|     return this.getToken(sqlParser.DISTINCT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DIV = function () {
 | |
|     return this.getToken(sqlParser.DIV, 0);
 | |
| };
 | |
| NonReservedContext.prototype.ELSE = function () {
 | |
|     return this.getToken(sqlParser.ELSE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.END = function () {
 | |
|     return this.getToken(sqlParser.END, 0);
 | |
| };
 | |
| NonReservedContext.prototype.FUNCTION = function () {
 | |
|     return this.getToken(sqlParser.FUNCTION, 0);
 | |
| };
 | |
| NonReservedContext.prototype.INTERVAL = function () {
 | |
|     return this.getToken(sqlParser.INTERVAL, 0);
 | |
| };
 | |
| NonReservedContext.prototype.MACRO = function () {
 | |
|     return this.getToken(sqlParser.MACRO, 0);
 | |
| };
 | |
| NonReservedContext.prototype.OR = function () {
 | |
|     return this.getToken(sqlParser.OR, 0);
 | |
| };
 | |
| NonReservedContext.prototype.STRATIFY = function () {
 | |
|     return this.getToken(sqlParser.STRATIFY, 0);
 | |
| };
 | |
| NonReservedContext.prototype.THEN = function () {
 | |
|     return this.getToken(sqlParser.THEN, 0);
 | |
| };
 | |
| NonReservedContext.prototype.UNBOUNDED = function () {
 | |
|     return this.getToken(sqlParser.UNBOUNDED, 0);
 | |
| };
 | |
| NonReservedContext.prototype.WHEN = function () {
 | |
|     return this.getToken(sqlParser.WHEN, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DATABASE = function () {
 | |
|     return this.getToken(sqlParser.DATABASE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.SELECT = function () {
 | |
|     return this.getToken(sqlParser.SELECT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.FROM = function () {
 | |
|     return this.getToken(sqlParser.FROM, 0);
 | |
| };
 | |
| NonReservedContext.prototype.WHERE = function () {
 | |
|     return this.getToken(sqlParser.WHERE, 0);
 | |
| };
 | |
| NonReservedContext.prototype.HAVING = function () {
 | |
|     return this.getToken(sqlParser.HAVING, 0);
 | |
| };
 | |
| NonReservedContext.prototype.NOT = function () {
 | |
|     return this.getToken(sqlParser.NOT, 0);
 | |
| };
 | |
| NonReservedContext.prototype.DIRECTORY = function () {
 | |
|     return this.getToken(sqlParser.DIRECTORY, 0);
 | |
| };
 | |
| NonReservedContext.prototype.BOTH = function () {
 | |
|     return this.getToken(sqlParser.BOTH, 0);
 | |
| };
 | |
| NonReservedContext.prototype.LEADING = function () {
 | |
|     return this.getToken(sqlParser.LEADING, 0);
 | |
| };
 | |
| NonReservedContext.prototype.TRAILING = function () {
 | |
|     return this.getToken(sqlParser.TRAILING, 0);
 | |
| };
 | |
| NonReservedContext.prototype.enterRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.enterNonReserved(this);
 | |
|     }
 | |
| };
 | |
| NonReservedContext.prototype.exitRule = function (listener) {
 | |
|     if (listener instanceof sqlListener) {
 | |
|         listener.exitNonReserved(this);
 | |
|     }
 | |
| };
 | |
| NonReservedContext.prototype.accept = function (visitor) {
 | |
|     if (visitor instanceof sqlVisitor) {
 | |
|         return visitor.visitNonReserved(this);
 | |
|     }
 | |
|     else {
 | |
|         return visitor.visitChildren(this);
 | |
|     }
 | |
| };
 | |
| sqlParser.NonReservedContext = NonReservedContext;
 | |
| sqlParser.prototype.nonReserved = function () {
 | |
|     var localctx = new NonReservedContext(this, this._ctx, this.state);
 | |
|     this.enterRule(localctx, 226, sqlParser.RULE_nonReserved);
 | |
|     var _la = 0; // Token type
 | |
|     try {
 | |
|         this.enterOuterAlt(localctx, 1);
 | |
|         this.state = 2705;
 | |
|         _la = this._input.LA(1);
 | |
|         if (!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE) | (1 << sqlParser.ROLLUP) | (1 << sqlParser.ORDER))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.OUTER - 32)))) !== 0) || ((((_la - 68)) & ~0x1f) == 0 && ((1 << (_la - 68)) & ((1 << (sqlParser.PIVOT - 68)) | (1 << (sqlParser.LATERAL - 68)) | (1 << (sqlParser.WINDOW - 68)) | (1 << (sqlParser.OVER - 68)) | (1 << (sqlParser.PARTITION - 68)) | (1 << (sqlParser.RANGE - 68)) | (1 << (sqlParser.ROWS - 68)) | (1 << (sqlParser.UNBOUNDED - 68)) | (1 << (sqlParser.PRECEDING - 68)) | (1 << (sqlParser.FOLLOWING - 68)) | (1 << (sqlParser.CURRENT - 68)) | (1 << (sqlParser.FIRST - 68)) | (1 << (sqlParser.AFTER - 68)) | (1 << (sqlParser.LAST - 68)) | (1 << (sqlParser.ROW - 68)) | (1 << (sqlParser.WITH - 68)) | (1 << (sqlParser.CREATE - 68)) | (1 << (sqlParser.TABLE - 68)) | (1 << (sqlParser.DIRECTORY - 68)) | (1 << (sqlParser.VIEW - 68)) | (1 << (sqlParser.REPLACE - 68)) | (1 << (sqlParser.INSERT - 68)) | (1 << (sqlParser.DELETE - 68)) | (1 << (sqlParser.INTO - 68)) | (1 << (sqlParser.DESCRIBE - 68)) | (1 << (sqlParser.EXPLAIN - 68)) | (1 << (sqlParser.FORMAT - 68)) | (1 << (sqlParser.LOGICAL - 68)) | (1 << (sqlParser.CODEGEN - 68)) | (1 << (sqlParser.COST - 68)) | (1 << (sqlParser.CAST - 68)))) !== 0) || ((((_la - 100)) & ~0x1f) == 0 && ((1 << (_la - 100)) & ((1 << (sqlParser.SHOW - 100)) | (1 << (sqlParser.TABLES - 100)) | (1 << (sqlParser.COLUMNS - 100)) | (1 << (sqlParser.COLUMN - 100)) | (1 << (sqlParser.USE - 100)) | (1 << (sqlParser.PARTITIONS - 100)) | (1 << (sqlParser.FUNCTIONS - 100)) | (1 << (sqlParser.DROP - 100)) | (1 << (sqlParser.TO - 100)) | (1 << (sqlParser.TABLESAMPLE - 100)) | (1 << (sqlParser.STRATIFY - 100)) | (1 << (sqlParser.ALTER - 100)) | (1 << (sqlParser.RENAME - 100)) | (1 << (sqlParser.ARRAY - 100)) | (1 << (sqlParser.MAP - 100)) | (1 << (sqlParser.STRUCT - 100)) | (1 << (sqlParser.COMMENT - 100)) | (1 << (sqlParser.SET - 100)) | (1 << (sqlParser.RESET - 100)) | (1 << (sqlParser.DATA - 100)) | (1 << (sqlParser.START - 100)) | (1 << (sqlParser.TRANSACTION - 100)) | (1 << (sqlParser.COMMIT - 100)) | (1 << (sqlParser.ROLLBACK - 100)) | (1 << (sqlParser.MACRO - 100)) | (1 << (sqlParser.IGNORE - 100)) | (1 << (sqlParser.BOTH - 100)) | (1 << (sqlParser.LEADING - 100)))) !== 0) || ((((_la - 132)) & ~0x1f) == 0 && ((1 << (_la - 132)) & ((1 << (sqlParser.TRAILING - 132)) | (1 << (sqlParser.IF - 132)) | (1 << (sqlParser.POSITION - 132)) | (1 << (sqlParser.EXTRACT - 132)) | (1 << (sqlParser.DIV - 132)) | (1 << (sqlParser.PERCENTLIT - 132)) | (1 << (sqlParser.BUCKET - 132)) | (1 << (sqlParser.OUT - 132)) | (1 << (sqlParser.OF - 132)) | (1 << (sqlParser.SORT - 132)) | (1 << (sqlParser.CLUSTER - 132)) | (1 << (sqlParser.DISTRIBUTE - 132)) | (1 << (sqlParser.OVERWRITE - 132)) | (1 << (sqlParser.TRANSFORM - 132)))) !== 0) || ((((_la - 164)) & ~0x1f) == 0 && ((1 << (_la - 164)) & ((1 << (sqlParser.REDUCE - 164)) | (1 << (sqlParser.SERDE - 164)) | (1 << (sqlParser.SERDEPROPERTIES - 164)) | (1 << (sqlParser.RECORDREADER - 164)) | (1 << (sqlParser.RECORDWRITER - 164)) | (1 << (sqlParser.DELIMITED - 164)) | (1 << (sqlParser.FIELDS - 164)) | (1 << (sqlParser.TERMINATED - 164)) | (1 << (sqlParser.COLLECTION - 164)) | (1 << (sqlParser.ITEMS - 164)) | (1 << (sqlParser.KEYS - 164)) | (1 << (sqlParser.ESCAPED - 164)) | (1 << (sqlParser.LINES - 164)) | (1 << (sqlParser.SEPARATED - 164)) | (1 << (sqlParser.FUNCTION - 164)) | (1 << (sqlParser.EXTENDED - 164)) | (1 << (sqlParser.REFRESH - 164)) | (1 << (sqlParser.CLEAR - 164)) | (1 << (sqlParser.CACHE - 164)) | (1 << (sqlParser.UNCACHE - 164)) | (1 << (sqlParser.LAZY - 164)) | (1 << (sqlParser.FORMATTED - 164)) | (1 << (sqlParser.GLOBAL - 164)) | (1 << (sqlParser.TEMPORARY - 164)) | (1 << (sqlParser.OPTIONS - 164)) | (1 << (sqlParser.UNSET - 164)) | (1 << (sqlParser.TBLPROPERTIES - 164)) | (1 << (sqlParser.DBPROPERTIES - 164)) | (1 << (sqlParser.BUCKETS - 164)) | (1 << (sqlParser.SKEWED - 164)) | (1 << (sqlParser.STORED - 164)))) !== 0) || ((((_la - 196)) & ~0x1f) == 0 && ((1 << (_la - 196)) & ((1 << (sqlParser.DIRECTORIES - 196)) | (1 << (sqlParser.LOCATION - 196)) | (1 << (sqlParser.EXCHANGE - 196)) | (1 << (sqlParser.ARCHIVE - 196)) | (1 << (sqlParser.UNARCHIVE - 196)) | (1 << (sqlParser.FILEFORMAT - 196)) | (1 << (sqlParser.TOUCH - 196)) | (1 << (sqlParser.COMPACT - 196)) | (1 << (sqlParser.CONCATENATE - 196)) | (1 << (sqlParser.CHANGE - 196)) | (1 << (sqlParser.CASCADE - 196)) | (1 << (sqlParser.RESTRICT - 196)) | (1 << (sqlParser.CLUSTERED - 196)) | (1 << (sqlParser.SORTED - 196)) | (1 << (sqlParser.PURGE - 196)) | (1 << (sqlParser.INPUTFORMAT - 196)) | (1 << (sqlParser.OUTPUTFORMAT - 196)) | (1 << (sqlParser.DATABASE - 196)) | (1 << (sqlParser.DATABASES - 196)) | (1 << (sqlParser.DFS - 196)) | (1 << (sqlParser.TRUNCATE - 196)) | (1 << (sqlParser.ANALYZE - 196)) | (1 << (sqlParser.COMPUTE - 196)) | (1 << (sqlParser.LIST - 196)) | (1 << (sqlParser.STATISTICS - 196)) | (1 << (sqlParser.PARTITIONED - 196)) | (1 << (sqlParser.EXTERNAL - 196)) | (1 << (sqlParser.DEFINED - 196)) | (1 << (sqlParser.REVOKE - 196)) | (1 << (sqlParser.GRANT - 196)) | (1 << (sqlParser.LOCK - 196)) | (1 << (sqlParser.UNLOCK - 196)))) !== 0) || ((((_la - 228)) & ~0x1f) == 0 && ((1 << (_la - 228)) & ((1 << (sqlParser.MSCK - 228)) | (1 << (sqlParser.REPAIR - 228)) | (1 << (sqlParser.RECOVER - 228)) | (1 << (sqlParser.EXPORT - 228)) | (1 << (sqlParser.IMPORT - 228)) | (1 << (sqlParser.LOAD - 228)) | (1 << (sqlParser.ROLE - 228)) | (1 << (sqlParser.ROLES - 228)) | (1 << (sqlParser.COMPACTIONS - 228)) | (1 << (sqlParser.PRINCIPALS - 228)) | (1 << (sqlParser.TRANSACTIONS - 228)) | (1 << (sqlParser.INDEX - 228)) | (1 << (sqlParser.INDEXES - 228)) | (1 << (sqlParser.LOCKS - 228)) | (1 << (sqlParser.OPTION - 228)) | (1 << (sqlParser.LOCAL - 228)) | (1 << (sqlParser.INPATH - 228)))) !== 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 35:
 | |
|             return this.queryTerm_sempred(localctx, predIndex);
 | |
|         case 82:
 | |
|             return this.booleanExpression_sempred(localctx, predIndex);
 | |
|         case 84:
 | |
|             return this.valueExpression_sempred(localctx, predIndex);
 | |
|         case 85:
 | |
|             return this.primaryExpression_sempred(localctx, predIndex);
 | |
|         default:
 | |
|             throw "No predicate with index:" + ruleIndex;
 | |
|     }
 | |
| };
 | |
| sqlParser.prototype.queryTerm_sempred = function (localctx, predIndex) {
 | |
|     switch (predIndex) {
 | |
|         case 0:
 | |
|             return this.precpred(this._ctx, 3);
 | |
|         case 1:
 | |
|             return this.legacy_setops_precedence_enbled;
 | |
|         case 2:
 | |
|             return this.precpred(this._ctx, 2);
 | |
|         case 3:
 | |
|             return !this.legacy_setops_precedence_enbled;
 | |
|         case 4:
 | |
|             return this.precpred(this._ctx, 1);
 | |
|         case 5:
 | |
|             return !this.legacy_setops_precedence_enbled;
 | |
|         default:
 | |
|             throw "No predicate with index:" + predIndex;
 | |
|     }
 | |
| };
 | |
| sqlParser.prototype.booleanExpression_sempred = function (localctx, predIndex) {
 | |
|     switch (predIndex) {
 | |
|         case 6:
 | |
|             return this.precpred(this._ctx, 2);
 | |
|         case 7:
 | |
|             return this.precpred(this._ctx, 1);
 | |
|         default:
 | |
|             throw "No predicate with index:" + predIndex;
 | |
|     }
 | |
| };
 | |
| sqlParser.prototype.valueExpression_sempred = function (localctx, predIndex) {
 | |
|     switch (predIndex) {
 | |
|         case 8:
 | |
|             return this.precpred(this._ctx, 6);
 | |
|         case 9:
 | |
|             return this.precpred(this._ctx, 5);
 | |
|         case 10:
 | |
|             return this.precpred(this._ctx, 4);
 | |
|         case 11:
 | |
|             return this.precpred(this._ctx, 3);
 | |
|         case 12:
 | |
|             return this.precpred(this._ctx, 2);
 | |
|         case 13:
 | |
|             return this.precpred(this._ctx, 1);
 | |
|         default:
 | |
|             throw "No predicate with index:" + predIndex;
 | |
|     }
 | |
| };
 | |
| sqlParser.prototype.primaryExpression_sempred = function (localctx, predIndex) {
 | |
|     switch (predIndex) {
 | |
|         case 14:
 | |
|             return this.precpred(this._ctx, 5);
 | |
|         case 15:
 | |
|             return this.precpred(this._ctx, 3);
 | |
|         default:
 | |
|             throw "No predicate with index:" + predIndex;
 | |
|     }
 | |
| };
 | |
| exports.sqlParser = sqlParser;
 |