Created
November 27, 2018 11:56
-
-
Save stevenhao/94d989155bb768a48c23dedd19ada221 to your computer and use it in GitHub Desktop.
Browserified, antlr-generated parser
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Presto Parser | |
// @namespace http://tampermonkey.net/ | |
// @version 0.1 | |
// @description try to take over the world! | |
// @author You | |
// @match https://modeanalytics.com/editor/* | |
// @grant none | |
// ==/UserScript== | |
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ | |
// Generated from SqlBase.g4 by ANTLR 4.7.1 | |
// jshint ignore: start | |
var antlr4 = require('antlr4/index'); | |
var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", | |
"\u0002\u00dd\u07d7\b\u0001\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\u0004", | |
"1\t1\u00042\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u0004", | |
"8\t8\u00049\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\u0004", | |
"F\tF\u0004G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004", | |
"M\tM\u0004N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004", | |
"T\tT\u0004U\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\u0004", | |
"b\tb\u0004c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004", | |
"i\ti\u0004j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004", | |
"p\tp\u0004q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004", | |
"w\tw\u0004x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004", | |
"~\t~\u0004\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004", | |
"\u0082\t\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t", | |
"\u0085\u0004\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004", | |
"\u0089\t\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0004\u008c\t", | |
"\u008c\u0004\u008d\t\u008d\u0004\u008e\t\u008e\u0004\u008f\t\u008f\u0004", | |
"\u0090\t\u0090\u0004\u0091\t\u0091\u0004\u0092\t\u0092\u0004\u0093\t", | |
"\u0093\u0004\u0094\t\u0094\u0004\u0095\t\u0095\u0004\u0096\t\u0096\u0004", | |
"\u0097\t\u0097\u0004\u0098\t\u0098\u0004\u0099\t\u0099\u0004\u009a\t", | |
"\u009a\u0004\u009b\t\u009b\u0004\u009c\t\u009c\u0004\u009d\t\u009d\u0004", | |
"\u009e\t\u009e\u0004\u009f\t\u009f\u0004\u00a0\t\u00a0\u0004\u00a1\t", | |
"\u00a1\u0004\u00a2\t\u00a2\u0004\u00a3\t\u00a3\u0004\u00a4\t\u00a4\u0004", | |
"\u00a5\t\u00a5\u0004\u00a6\t\u00a6\u0004\u00a7\t\u00a7\u0004\u00a8\t", | |
"\u00a8\u0004\u00a9\t\u00a9\u0004\u00aa\t\u00aa\u0004\u00ab\t\u00ab\u0004", | |
"\u00ac\t\u00ac\u0004\u00ad\t\u00ad\u0004\u00ae\t\u00ae\u0004\u00af\t", | |
"\u00af\u0004\u00b0\t\u00b0\u0004\u00b1\t\u00b1\u0004\u00b2\t\u00b2\u0004", | |
"\u00b3\t\u00b3\u0004\u00b4\t\u00b4\u0004\u00b5\t\u00b5\u0004\u00b6\t", | |
"\u00b6\u0004\u00b7\t\u00b7\u0004\u00b8\t\u00b8\u0004\u00b9\t\u00b9\u0004", | |
"\u00ba\t\u00ba\u0004\u00bb\t\u00bb\u0004\u00bc\t\u00bc\u0004\u00bd\t", | |
"\u00bd\u0004\u00be\t\u00be\u0004\u00bf\t\u00bf\u0004\u00c0\t\u00c0\u0004", | |
"\u00c1\t\u00c1\u0004\u00c2\t\u00c2\u0004\u00c3\t\u00c3\u0004\u00c4\t", | |
"\u00c4\u0004\u00c5\t\u00c5\u0004\u00c6\t\u00c6\u0004\u00c7\t\u00c7\u0004", | |
"\u00c8\t\u00c8\u0004\u00c9\t\u00c9\u0004\u00ca\t\u00ca\u0004\u00cb\t", | |
"\u00cb\u0004\u00cc\t\u00cc\u0004\u00cd\t\u00cd\u0004\u00ce\t\u00ce\u0004", | |
"\u00cf\t\u00cf\u0004\u00d0\t\u00d0\u0004\u00d1\t\u00d1\u0004\u00d2\t", | |
"\u00d2\u0004\u00d3\t\u00d3\u0004\u00d4\t\u00d4\u0004\u00d5\t\u00d5\u0004", | |
"\u00d6\t\u00d6\u0004\u00d7\t\u00d7\u0004\u00d8\t\u00d8\u0004\u00d9\t", | |
"\u00d9\u0004\u00da\t\u00da\u0004\u00db\t\u00db\u0004\u00dc\t\u00dc\u0004", | |
"\u00dd\t\u00dd\u0004\u00de\t\u00de\u0004\u00df\t\u00df\u0003\u0002\u0003", | |
"\u0002\u0003\u0003\u0003\u0003\u0003\u0004\u0003\u0004\u0003\u0005\u0003", | |
"\u0005\u0003\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003", | |
"\b\u0003\b\u0003\t\u0003\t\u0003\n\u0003\n\u0003\n\u0003\u000b\u0003", | |
"\u000b\u0003\u000b\u0003\u000b\u0003\f\u0003\f\u0003\f\u0003\f\u0003", | |
"\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\u000e\u0003\u000e\u0003", | |
"\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003", | |
"\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u0010\u0003\u0010\u0003", | |
"\u0010\u0003\u0010\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003", | |
"\u0011\u0003\u0011\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0013\u0003", | |
"\u0013\u0003\u0013\u0003\u0013\u0003\u0014\u0003\u0014\u0003\u0014\u0003", | |
"\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003", | |
"\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0016\u0003\u0016\u0003", | |
"\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003", | |
"\u0017\u0003\u0017\u0003\u0017\u0003\u0018\u0003\u0018\u0003\u0018\u0003", | |
"\u0018\u0003\u0018\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003", | |
"\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u001a\u0003\u001a\u0003", | |
"\u001a\u0003\u001a\u0003\u001a\u0003\u001b\u0003\u001b\u0003\u001b\u0003", | |
"\u001b\u0003\u001b\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003", | |
"\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001d\u0003", | |
"\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003", | |
"\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003", | |
"\u001e\u0003\u001e\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003", | |
"\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003 \u0003 \u0003 \u0003", | |
" \u0003 \u0003 \u0003 \u0003!\u0003!\u0003!\u0003!\u0003!\u0003!\u0003", | |
"!\u0003!\u0003!\u0003!\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003", | |
"\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003#\u0003#\u0003#\u0003", | |
"#\u0003#\u0003#\u0003#\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003", | |
"%\u0003%\u0003%\u0003%\u0003%\u0003&\u0003&\u0003&\u0003&\u0003&\u0003", | |
"&\u0003&\u0003&\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003", | |
"\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003(\u0003(\u0003", | |
"(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003", | |
"(\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003", | |
")\u0003)\u0003)\u0003)\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003", | |
"*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003", | |
"*\u0003*\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003", | |
"+\u0003+\u0003+\u0003+\u0003+\u0003,\u0003,\u0003,\u0003,\u0003,\u0003", | |
"-\u0003-\u0003-\u0003-\u0003-\u0003.\u0003.\u0003.\u0003.\u0003/\u0003", | |
"/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", | |
"0\u00030\u00030\u00030\u00030\u00030\u00030\u00031\u00031\u00031\u0003", | |
"1\u00031\u00032\u00032\u00032\u00032\u00032\u00032\u00032\u00032\u0003", | |
"2\u00033\u00033\u00033\u00033\u00033\u00033\u00033\u00033\u00033\u0003", | |
"4\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u0003", | |
"4\u00034\u00035\u00035\u00035\u00035\u00035\u00036\u00036\u00036\u0003", | |
"6\u00036\u00037\u00037\u00037\u00037\u00038\u00038\u00038\u00038\u0003", | |
"8\u00038\u00038\u00039\u00039\u00039\u00039\u00039\u00039\u00039\u0003", | |
":\u0003:\u0003:\u0003:\u0003:\u0003:\u0003:\u0003:\u0003:\u0003:\u0003", | |
";\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003<\u0003<\u0003", | |
"<\u0003<\u0003<\u0003<\u0003<\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", | |
"=\u0003=\u0003=\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003", | |
">\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003@\u0003@\u0003@\u0003", | |
"@\u0003@\u0003@\u0003@\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003", | |
"B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003", | |
"C\u0003C\u0003C\u0003C\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003", | |
"D\u0003E\u0003E\u0003E\u0003E\u0003E\u0003F\u0003F\u0003F\u0003F\u0003", | |
"F\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003", | |
"G\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003I\u0003I\u0003I\u0003", | |
"I\u0003I\u0003I\u0003I\u0003J\u0003J\u0003J\u0003J\u0003J\u0003J\u0003", | |
"J\u0003J\u0003J\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003L\u0003", | |
"L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003M\u0003M\u0003", | |
"M\u0003M\u0003M\u0003M\u0003M\u0003N\u0003N\u0003N\u0003N\u0003N\u0003", | |
"O\u0003O\u0003O\u0003P\u0003P\u0003P\u0003Q\u0003Q\u0003Q\u0003Q\u0003", | |
"Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003R\u0003R\u0003R\u0003R\u0003", | |
"R\u0003R\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003T\u0003T\u0003", | |
"T\u0003T\u0003T\u0003T\u0003T\u0003U\u0003U\u0003U\u0003U\u0003U\u0003", | |
"U\u0003U\u0003U\u0003U\u0003U\u0003V\u0003V\u0003V\u0003V\u0003V\u0003", | |
"V\u0003V\u0003V\u0003V\u0003W\u0003W\u0003W\u0003W\u0003W\u0003X\u0003", | |
"X\u0003X\u0003Y\u0003Y\u0003Y\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003", | |
"Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003[\u0003[\u0003[\u0003[\u0003[\u0003", | |
"\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003]\u0003]\u0003]\u0003]\u0003", | |
"]\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003_\u0003", | |
"_\u0003_\u0003_\u0003_\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", | |
"a\u0003a\u0003a\u0003a\u0003a\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", | |
"b\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003", | |
"c\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003", | |
"d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003e\u0003e\u0003e\u0003e\u0003", | |
"e\u0003e\u0003e\u0003e\u0003f\u0003f\u0003f\u0003f\u0003g\u0003g\u0003", | |
"g\u0003g\u0003g\u0003g\u0003g\u0003h\u0003h\u0003h\u0003h\u0003h\u0003", | |
"h\u0003i\u0003i\u0003i\u0003i\u0003i\u0003i\u0003i\u0003i\u0003j\u0003", | |
"j\u0003j\u0003j\u0003k\u0003k\u0003k\u0003k\u0003l\u0003l\u0003l\u0003", | |
"l\u0003l\u0003m\u0003m\u0003m\u0003m\u0003m\u0003n\u0003n\u0003n\u0003", | |
"o\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0003", | |
"p\u0003p\u0003p\u0003p\u0003q\u0003q\u0003q\u0003q\u0003q\u0003r\u0003", | |
"r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003s\u0003s\u0003s\u0003s\u0003", | |
"s\u0003s\u0003t\u0003t\u0003t\u0003u\u0003u\u0003u\u0003u\u0003u\u0003", | |
"v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003w\u0003w\u0003w\u0003", | |
"x\u0003x\u0003x\u0003x\u0003x\u0003x\u0003y\u0003y\u0003y\u0003y\u0003", | |
"y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003z\u0003z\u0003z\u0003", | |
"z\u0003z\u0003z\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003", | |
"|\u0003|\u0003|\u0003|\u0003|\u0003}\u0003}\u0003}\u0003}\u0003}\u0003", | |
"}\u0003}\u0003}\u0003}\u0003}\u0003~\u0003~\u0003~\u0003~\u0003~\u0003", | |
"~\u0003~\u0003~\u0003~\u0003~\u0003~\u0003\u007f\u0003\u007f\u0003\u007f", | |
"\u0003\u007f\u0003\u007f\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080", | |
"\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0081", | |
"\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081", | |
"\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0082\u0003\u0082\u0003\u0082", | |
"\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0083", | |
"\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083", | |
"\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0084\u0003\u0084", | |
"\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0084", | |
"\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0085\u0003\u0085\u0003\u0085", | |
"\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0086\u0003\u0086", | |
"\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0087\u0003\u0087", | |
"\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0088\u0003\u0088\u0003\u0088", | |
"\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088", | |
"\u0003\u0088\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089", | |
"\u0003\u0089\u0003\u0089\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a", | |
"\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a", | |
"\u0003\u008a\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b", | |
"\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008c\u0003\u008c\u0003\u008c", | |
"\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008d\u0003\u008d\u0003\u008d", | |
"\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d", | |
"\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008e", | |
"\u0003\u008e\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f", | |
"\u0003\u008f\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090", | |
"\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0091\u0003\u0091", | |
"\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0092", | |
"\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0093\u0003\u0093\u0003\u0093", | |
"\u0003\u0093\u0003\u0093\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094", | |
"\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0095\u0003\u0095\u0003\u0095", | |
"\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0096", | |
"\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096", | |
"\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097", | |
"\u0003\u0097\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098", | |
"\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098", | |
"\u0003\u0098\u0003\u0098\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099", | |
"\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u009a\u0003\u009a", | |
"\u0003\u009a\u0003\u009a\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b", | |
"\u0003\u009b\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c", | |
"\u0003\u009d\u0003\u009d\u0003\u009d\u0003\u009d\u0003\u009d\u0003\u009e", | |
"\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009f", | |
"\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u00a0", | |
"\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0", | |
"\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a1\u0003\u00a1\u0003\u00a1", | |
"\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a2\u0003\u00a2", | |
"\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a3\u0003\u00a3", | |
"\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a4", | |
"\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4", | |
"\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a5", | |
"\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a6\u0003\u00a6", | |
"\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a7\u0003\u00a7\u0003\u00a7", | |
"\u0003\u00a7\u0003\u00a7\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8", | |
"\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8", | |
"\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00aa\u0003\u00aa\u0003\u00aa", | |
"\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa", | |
"\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00ab\u0003\u00ab\u0003\u00ab", | |
"\u0003\u00ab\u0003\u00ab\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac", | |
"\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ad", | |
"\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ae\u0003\u00ae", | |
"\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae", | |
"\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af", | |
"\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00b0\u0003\u00b0", | |
"\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0", | |
"\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b1\u0003\u00b1", | |
"\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b2\u0003\u00b2", | |
"\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b3", | |
"\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b4\u0003\u00b4\u0003\u00b4", | |
"\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b5\u0003\u00b5\u0003\u00b5", | |
"\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5", | |
"\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6", | |
"\u0003\u00b6\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7", | |
"\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b8\u0003\u00b8\u0003\u00b8", | |
"\u0003\u00b8\u0003\u00b8\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9", | |
"\u0003\u00b9\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba", | |
"\u0003\u00ba\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb", | |
"\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bd", | |
"\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00be", | |
"\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00bf\u0003\u00bf", | |
"\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00c0\u0003\u00c0\u0003\u00c1", | |
"\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0005\u00c1\u06c4\n\u00c1\u0003", | |
"\u00c2\u0003\u00c2\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c4\u0003", | |
"\u00c4\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c6\u0003\u00c6\u0003", | |
"\u00c7\u0003\u00c7\u0003\u00c8\u0003\u00c8\u0003\u00c9\u0003\u00c9\u0003", | |
"\u00ca\u0003\u00ca\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cc\u0003", | |
"\u00cc\u0003\u00cc\u0003\u00cc\u0007\u00cc\u06e1\n\u00cc\f\u00cc\u000e", | |
"\u00cc\u06e4\u000b\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cd\u0003\u00cd", | |
"\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0007\u00cd", | |
"\u06ef\n\u00cd\f\u00cd\u000e\u00cd\u06f2\u000b\u00cd\u0003\u00cd\u0003", | |
"\u00cd\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0007\u00ce\u06fa", | |
"\n\u00ce\f\u00ce\u000e\u00ce\u06fd\u000b\u00ce\u0003\u00ce\u0003\u00ce", | |
"\u0003\u00cf\u0006\u00cf\u0702\n\u00cf\r\u00cf\u000e\u00cf\u0703\u0003", | |
"\u00d0\u0006\u00d0\u0707\n\u00d0\r\u00d0\u000e\u00d0\u0708\u0003\u00d0", | |
"\u0003\u00d0\u0007\u00d0\u070d\n\u00d0\f\u00d0\u000e\u00d0\u0710\u000b", | |
"\u00d0\u0003\u00d0\u0003\u00d0\u0006\u00d0\u0714\n\u00d0\r\u00d0\u000e", | |
"\u00d0\u0715\u0005\u00d0\u0718\n\u00d0\u0003\u00d1\u0006\u00d1\u071b", | |
"\n\u00d1\r\u00d1\u000e\u00d1\u071c\u0003\u00d1\u0003\u00d1\u0007\u00d1", | |
"\u0721\n\u00d1\f\u00d1\u000e\u00d1\u0724\u000b\u00d1\u0005\u00d1\u0726", | |
"\n\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0006\u00d1", | |
"\u072c\n\u00d1\r\u00d1\u000e\u00d1\u072d\u0003\u00d1\u0003\u00d1\u0005", | |
"\u00d1\u0732\n\u00d1\u0003\u00d2\u0003\u00d2\u0005\u00d2\u0736\n\u00d2", | |
"\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0007\u00d2\u073b\n\u00d2\f\u00d2", | |
"\u000e\u00d2\u073e\u000b\u00d2\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003", | |
"\u00d3\u0006\u00d3\u0744\n\u00d3\r\u00d3\u000e\u00d3\u0745\u0003\u00d4", | |
"\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0007\u00d4\u074c\n\u00d4\f\u00d4", | |
"\u000e\u00d4\u074f\u000b\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d5\u0003", | |
"\u00d5\u0003\u00d5\u0003\u00d5\u0007\u00d5\u0757\n\u00d5\f\u00d5\u000e", | |
"\u00d5\u075a\u000b\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d6\u0003\u00d6", | |
"\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6", | |
"\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6", | |
"\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6", | |
"\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d7\u0003\u00d7\u0003\u00d7", | |
"\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7", | |
"\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7", | |
"\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7", | |
"\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7", | |
"\u0003\u00d7\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8", | |
"\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8", | |
"\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8", | |
"\u0003\u00d8\u0003\u00d9\u0003\u00d9\u0005\u00d9\u07a5\n\u00d9\u0003", | |
"\u00d9\u0006\u00d9\u07a8\n\u00d9\r\u00d9\u000e\u00d9\u07a9\u0003\u00da", | |
"\u0003\u00da\u0003\u00db\u0003\u00db\u0003\u00dc\u0003\u00dc\u0003\u00dc", | |
"\u0003\u00dc\u0007\u00dc\u07b4\n\u00dc\f\u00dc\u000e\u00dc\u07b7\u000b", | |
"\u00dc\u0003\u00dc\u0005\u00dc\u07ba\n\u00dc\u0003\u00dc\u0005\u00dc", | |
"\u07bd\n\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dd\u0003\u00dd\u0003", | |
"\u00dd\u0003\u00dd\u0007\u00dd\u07c5\n\u00dd\f\u00dd\u000e\u00dd\u07c8", | |
"\u000b\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd", | |
"\u0003\u00de\u0006\u00de\u07d0\n\u00de\r\u00de\u000e\u00de\u07d1\u0003", | |
"\u00de\u0003\u00de\u0003\u00df\u0003\u00df\u0003\u07c6\u0002\u00e0\u0003", | |
"\u0003\u0005\u0004\u0007\u0005\t\u0006\u000b\u0007\r\b\u000f\t\u0011", | |
"\n\u0013\u000b\u0015\f\u0017\r\u0019\u000e\u001b\u000f\u001d\u0010\u001f", | |
"\u0011!\u0012#\u0013%\u0014\'\u0015)\u0016+\u0017-\u0018/\u00191\u001a", | |
"3\u001b5\u001c7\u001d9\u001e;\u001f= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.", | |
"[/]0_1a2c3e4g5i6k7m8o9q:s;u<w=y>{?}@\u007fA\u0081B\u0083C\u0085D\u0087", | |
"E\u0089F\u008bG\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009b", | |
"O\u009dP\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00af", | |
"Y\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3", | |
"c\u00c5d\u00c7e\u00c9f\u00cbg\u00cdh\u00cfi\u00d1j\u00d3k\u00d5l\u00d7", | |
"m\u00d9n\u00dbo\u00ddp\u00dfq\u00e1r\u00e3s\u00e5t\u00e7u\u00e9v\u00eb", | |
"w\u00edx\u00efy\u00f1z\u00f3{\u00f5|\u00f7}\u00f9~\u00fb\u007f\u00fd", | |
"\u0080\u00ff\u0081\u0101\u0082\u0103\u0083\u0105\u0084\u0107\u0085\u0109", | |
"\u0086\u010b\u0087\u010d\u0088\u010f\u0089\u0111\u008a\u0113\u008b\u0115", | |
"\u008c\u0117\u008d\u0119\u008e\u011b\u008f\u011d\u0090\u011f\u0091\u0121", | |
"\u0092\u0123\u0093\u0125\u0094\u0127\u0095\u0129\u0096\u012b\u0097\u012d", | |
"\u0098\u012f\u0099\u0131\u009a\u0133\u009b\u0135\u009c\u0137\u009d\u0139", | |
"\u009e\u013b\u009f\u013d\u00a0\u013f\u00a1\u0141\u00a2\u0143\u00a3\u0145", | |
"\u00a4\u0147\u00a5\u0149\u00a6\u014b\u00a7\u014d\u00a8\u014f\u00a9\u0151", | |
"\u00aa\u0153\u00ab\u0155\u00ac\u0157\u00ad\u0159\u00ae\u015b\u00af\u015d", | |
"\u00b0\u015f\u00b1\u0161\u00b2\u0163\u00b3\u0165\u00b4\u0167\u00b5\u0169", | |
"\u00b6\u016b\u00b7\u016d\u00b8\u016f\u00b9\u0171\u00ba\u0173\u00bb\u0175", | |
"\u00bc\u0177\u00bd\u0179\u00be\u017b\u00bf\u017d\u00c0\u017f\u00c1\u0181", | |
"\u00c2\u0183\u00c3\u0185\u00c4\u0187\u00c5\u0189\u00c6\u018b\u00c7\u018d", | |
"\u00c8\u018f\u00c9\u0191\u00ca\u0193\u00cb\u0195\u00cc\u0197\u00cd\u0199", | |
"\u00ce\u019b\u00cf\u019d\u00d0\u019f\u00d1\u01a1\u00d2\u01a3\u00d3\u01a5", | |
"\u00d4\u01a7\u00d5\u01a9\u00d6\u01ab\u00d7\u01ad\u00d8\u01af\u00d9\u01b1", | |
"\u0002\u01b3\u0002\u01b5\u0002\u01b7\u00da\u01b9\u00db\u01bb\u00dc\u01bd", | |
"\u00dd\u0003\u0002\u000b\u0003\u0002))\u0005\u0002<<BBaa\u0003\u0002", | |
"$$\u0003\u0002bb\u0004\u0002--//\u0003\u00022;\u0003\u0002C\\\u0004", | |
"\u0002\f\f\u000f\u000f\u0005\u0002\u000b\f\u000f\u000f\"\"\u0002\u07f5", | |
"\u0002\u0003\u0003\u0002\u0002\u0002\u0002\u0005\u0003\u0002\u0002\u0002", | |
"\u0002\u0007\u0003\u0002\u0002\u0002\u0002\t\u0003\u0002\u0002\u0002", | |
"\u0002\u000b\u0003\u0002\u0002\u0002\u0002\r\u0003\u0002\u0002\u0002", | |
"\u0002\u000f\u0003\u0002\u0002\u0002\u0002\u0011\u0003\u0002\u0002\u0002", | |
"\u0002\u0013\u0003\u0002\u0002\u0002\u0002\u0015\u0003\u0002\u0002\u0002", | |
"\u0002\u0017\u0003\u0002\u0002\u0002\u0002\u0019\u0003\u0002\u0002\u0002", | |
"\u0002\u001b\u0003\u0002\u0002\u0002\u0002\u001d\u0003\u0002\u0002\u0002", | |
"\u0002\u001f\u0003\u0002\u0002\u0002\u0002!\u0003\u0002\u0002\u0002", | |
"\u0002#\u0003\u0002\u0002\u0002\u0002%\u0003\u0002\u0002\u0002\u0002", | |
"\'\u0003\u0002\u0002\u0002\u0002)\u0003\u0002\u0002\u0002\u0002+\u0003", | |
"\u0002\u0002\u0002\u0002-\u0003\u0002\u0002\u0002\u0002/\u0003\u0002", | |
"\u0002\u0002\u00021\u0003\u0002\u0002\u0002\u00023\u0003\u0002\u0002", | |
"\u0002\u00025\u0003\u0002\u0002\u0002\u00027\u0003\u0002\u0002\u0002", | |
"\u00029\u0003\u0002\u0002\u0002\u0002;\u0003\u0002\u0002\u0002\u0002", | |
"=\u0003\u0002\u0002\u0002\u0002?\u0003\u0002\u0002\u0002\u0002A\u0003", | |
"\u0002\u0002\u0002\u0002C\u0003\u0002\u0002\u0002\u0002E\u0003\u0002", | |
"\u0002\u0002\u0002G\u0003\u0002\u0002\u0002\u0002I\u0003\u0002\u0002", | |
"\u0002\u0002K\u0003\u0002\u0002\u0002\u0002M\u0003\u0002\u0002\u0002", | |
"\u0002O\u0003\u0002\u0002\u0002\u0002Q\u0003\u0002\u0002\u0002\u0002", | |
"S\u0003\u0002\u0002\u0002\u0002U\u0003\u0002\u0002\u0002\u0002W\u0003", | |
"\u0002\u0002\u0002\u0002Y\u0003\u0002\u0002\u0002\u0002[\u0003\u0002", | |
"\u0002\u0002\u0002]\u0003\u0002\u0002\u0002\u0002_\u0003\u0002\u0002", | |
"\u0002\u0002a\u0003\u0002\u0002\u0002\u0002c\u0003\u0002\u0002\u0002", | |
"\u0002e\u0003\u0002\u0002\u0002\u0002g\u0003\u0002\u0002\u0002\u0002", | |
"i\u0003\u0002\u0002\u0002\u0002k\u0003\u0002\u0002\u0002\u0002m\u0003", | |
"\u0002\u0002\u0002\u0002o\u0003\u0002\u0002\u0002\u0002q\u0003\u0002", | |
"\u0002\u0002\u0002s\u0003\u0002\u0002\u0002\u0002u\u0003\u0002\u0002", | |
"\u0002\u0002w\u0003\u0002\u0002\u0002\u0002y\u0003\u0002\u0002\u0002", | |
"\u0002{\u0003\u0002\u0002\u0002\u0002}\u0003\u0002\u0002\u0002\u0002", | |
"\u007f\u0003\u0002\u0002\u0002\u0002\u0081\u0003\u0002\u0002\u0002\u0002", | |
"\u0083\u0003\u0002\u0002\u0002\u0002\u0085\u0003\u0002\u0002\u0002\u0002", | |
"\u0087\u0003\u0002\u0002\u0002\u0002\u0089\u0003\u0002\u0002\u0002\u0002", | |
"\u008b\u0003\u0002\u0002\u0002\u0002\u008d\u0003\u0002\u0002\u0002\u0002", | |
"\u008f\u0003\u0002\u0002\u0002\u0002\u0091\u0003\u0002\u0002\u0002\u0002", | |
"\u0093\u0003\u0002\u0002\u0002\u0002\u0095\u0003\u0002\u0002\u0002\u0002", | |
"\u0097\u0003\u0002\u0002\u0002\u0002\u0099\u0003\u0002\u0002\u0002\u0002", | |
"\u009b\u0003\u0002\u0002\u0002\u0002\u009d\u0003\u0002\u0002\u0002\u0002", | |
"\u009f\u0003\u0002\u0002\u0002\u0002\u00a1\u0003\u0002\u0002\u0002\u0002", | |
"\u00a3\u0003\u0002\u0002\u0002\u0002\u00a5\u0003\u0002\u0002\u0002\u0002", | |
"\u00a7\u0003\u0002\u0002\u0002\u0002\u00a9\u0003\u0002\u0002\u0002\u0002", | |
"\u00ab\u0003\u0002\u0002\u0002\u0002\u00ad\u0003\u0002\u0002\u0002\u0002", | |
"\u00af\u0003\u0002\u0002\u0002\u0002\u00b1\u0003\u0002\u0002\u0002\u0002", | |
"\u00b3\u0003\u0002\u0002\u0002\u0002\u00b5\u0003\u0002\u0002\u0002\u0002", | |
"\u00b7\u0003\u0002\u0002\u0002\u0002\u00b9\u0003\u0002\u0002\u0002\u0002", | |
"\u00bb\u0003\u0002\u0002\u0002\u0002\u00bd\u0003\u0002\u0002\u0002\u0002", | |
"\u00bf\u0003\u0002\u0002\u0002\u0002\u00c1\u0003\u0002\u0002\u0002\u0002", | |
"\u00c3\u0003\u0002\u0002\u0002\u0002\u00c5\u0003\u0002\u0002\u0002\u0002", | |
"\u00c7\u0003\u0002\u0002\u0002\u0002\u00c9\u0003\u0002\u0002\u0002\u0002", | |
"\u00cb\u0003\u0002\u0002\u0002\u0002\u00cd\u0003\u0002\u0002\u0002\u0002", | |
"\u00cf\u0003\u0002\u0002\u0002\u0002\u00d1\u0003\u0002\u0002\u0002\u0002", | |
"\u00d3\u0003\u0002\u0002\u0002\u0002\u00d5\u0003\u0002\u0002\u0002\u0002", | |
"\u00d7\u0003\u0002\u0002\u0002\u0002\u00d9\u0003\u0002\u0002\u0002\u0002", | |
"\u00db\u0003\u0002\u0002\u0002\u0002\u00dd\u0003\u0002\u0002\u0002\u0002", | |
"\u00df\u0003\u0002\u0002\u0002\u0002\u00e1\u0003\u0002\u0002\u0002\u0002", | |
"\u00e3\u0003\u0002\u0002\u0002\u0002\u00e5\u0003\u0002\u0002\u0002\u0002", | |
"\u00e7\u0003\u0002\u0002\u0002\u0002\u00e9\u0003\u0002\u0002\u0002\u0002", | |
"\u00eb\u0003\u0002\u0002\u0002\u0002\u00ed\u0003\u0002\u0002\u0002\u0002", | |
"\u00ef\u0003\u0002\u0002\u0002\u0002\u00f1\u0003\u0002\u0002\u0002\u0002", | |
"\u00f3\u0003\u0002\u0002\u0002\u0002\u00f5\u0003\u0002\u0002\u0002\u0002", | |
"\u00f7\u0003\u0002\u0002\u0002\u0002\u00f9\u0003\u0002\u0002\u0002\u0002", | |
"\u00fb\u0003\u0002\u0002\u0002\u0002\u00fd\u0003\u0002\u0002\u0002\u0002", | |
"\u00ff\u0003\u0002\u0002\u0002\u0002\u0101\u0003\u0002\u0002\u0002\u0002", | |
"\u0103\u0003\u0002\u0002\u0002\u0002\u0105\u0003\u0002\u0002\u0002\u0002", | |
"\u0107\u0003\u0002\u0002\u0002\u0002\u0109\u0003\u0002\u0002\u0002\u0002", | |
"\u010b\u0003\u0002\u0002\u0002\u0002\u010d\u0003\u0002\u0002\u0002\u0002", | |
"\u010f\u0003\u0002\u0002\u0002\u0002\u0111\u0003\u0002\u0002\u0002\u0002", | |
"\u0113\u0003\u0002\u0002\u0002\u0002\u0115\u0003\u0002\u0002\u0002\u0002", | |
"\u0117\u0003\u0002\u0002\u0002\u0002\u0119\u0003\u0002\u0002\u0002\u0002", | |
"\u011b\u0003\u0002\u0002\u0002\u0002\u011d\u0003\u0002\u0002\u0002\u0002", | |
"\u011f\u0003\u0002\u0002\u0002\u0002\u0121\u0003\u0002\u0002\u0002\u0002", | |
"\u0123\u0003\u0002\u0002\u0002\u0002\u0125\u0003\u0002\u0002\u0002\u0002", | |
"\u0127\u0003\u0002\u0002\u0002\u0002\u0129\u0003\u0002\u0002\u0002\u0002", | |
"\u012b\u0003\u0002\u0002\u0002\u0002\u012d\u0003\u0002\u0002\u0002\u0002", | |
"\u012f\u0003\u0002\u0002\u0002\u0002\u0131\u0003\u0002\u0002\u0002\u0002", | |
"\u0133\u0003\u0002\u0002\u0002\u0002\u0135\u0003\u0002\u0002\u0002\u0002", | |
"\u0137\u0003\u0002\u0002\u0002\u0002\u0139\u0003\u0002\u0002\u0002\u0002", | |
"\u013b\u0003\u0002\u0002\u0002\u0002\u013d\u0003\u0002\u0002\u0002\u0002", | |
"\u013f\u0003\u0002\u0002\u0002\u0002\u0141\u0003\u0002\u0002\u0002\u0002", | |
"\u0143\u0003\u0002\u0002\u0002\u0002\u0145\u0003\u0002\u0002\u0002\u0002", | |
"\u0147\u0003\u0002\u0002\u0002\u0002\u0149\u0003\u0002\u0002\u0002\u0002", | |
"\u014b\u0003\u0002\u0002\u0002\u0002\u014d\u0003\u0002\u0002\u0002\u0002", | |
"\u014f\u0003\u0002\u0002\u0002\u0002\u0151\u0003\u0002\u0002\u0002\u0002", | |
"\u0153\u0003\u0002\u0002\u0002\u0002\u0155\u0003\u0002\u0002\u0002\u0002", | |
"\u0157\u0003\u0002\u0002\u0002\u0002\u0159\u0003\u0002\u0002\u0002\u0002", | |
"\u015b\u0003\u0002\u0002\u0002\u0002\u015d\u0003\u0002\u0002\u0002\u0002", | |
"\u015f\u0003\u0002\u0002\u0002\u0002\u0161\u0003\u0002\u0002\u0002\u0002", | |
"\u0163\u0003\u0002\u0002\u0002\u0002\u0165\u0003\u0002\u0002\u0002\u0002", | |
"\u0167\u0003\u0002\u0002\u0002\u0002\u0169\u0003\u0002\u0002\u0002\u0002", | |
"\u016b\u0003\u0002\u0002\u0002\u0002\u016d\u0003\u0002\u0002\u0002\u0002", | |
"\u016f\u0003\u0002\u0002\u0002\u0002\u0171\u0003\u0002\u0002\u0002\u0002", | |
"\u0173\u0003\u0002\u0002\u0002\u0002\u0175\u0003\u0002\u0002\u0002\u0002", | |
"\u0177\u0003\u0002\u0002\u0002\u0002\u0179\u0003\u0002\u0002\u0002\u0002", | |
"\u017b\u0003\u0002\u0002\u0002\u0002\u017d\u0003\u0002\u0002\u0002\u0002", | |
"\u017f\u0003\u0002\u0002\u0002\u0002\u0181\u0003\u0002\u0002\u0002\u0002", | |
"\u0183\u0003\u0002\u0002\u0002\u0002\u0185\u0003\u0002\u0002\u0002\u0002", | |
"\u0187\u0003\u0002\u0002\u0002\u0002\u0189\u0003\u0002\u0002\u0002\u0002", | |
"\u018b\u0003\u0002\u0002\u0002\u0002\u018d\u0003\u0002\u0002\u0002\u0002", | |
"\u018f\u0003\u0002\u0002\u0002\u0002\u0191\u0003\u0002\u0002\u0002\u0002", | |
"\u0193\u0003\u0002\u0002\u0002\u0002\u0195\u0003\u0002\u0002\u0002\u0002", | |
"\u0197\u0003\u0002\u0002\u0002\u0002\u0199\u0003\u0002\u0002\u0002\u0002", | |
"\u019b\u0003\u0002\u0002\u0002\u0002\u019d\u0003\u0002\u0002\u0002\u0002", | |
"\u019f\u0003\u0002\u0002\u0002\u0002\u01a1\u0003\u0002\u0002\u0002\u0002", | |
"\u01a3\u0003\u0002\u0002\u0002\u0002\u01a5\u0003\u0002\u0002\u0002\u0002", | |
"\u01a7\u0003\u0002\u0002\u0002\u0002\u01a9\u0003\u0002\u0002\u0002\u0002", | |
"\u01ab\u0003\u0002\u0002\u0002\u0002\u01ad\u0003\u0002\u0002\u0002\u0002", | |
"\u01af\u0003\u0002\u0002\u0002\u0002\u01b7\u0003\u0002\u0002\u0002\u0002", | |
"\u01b9\u0003\u0002\u0002\u0002\u0002\u01bb\u0003\u0002\u0002\u0002\u0002", | |
"\u01bd\u0003\u0002\u0002\u0002\u0003\u01bf\u0003\u0002\u0002\u0002\u0005", | |
"\u01c1\u0003\u0002\u0002\u0002\u0007\u01c3\u0003\u0002\u0002\u0002\t", | |
"\u01c5\u0003\u0002\u0002\u0002\u000b\u01c7\u0003\u0002\u0002\u0002\r", | |
"\u01c9\u0003\u0002\u0002\u0002\u000f\u01cc\u0003\u0002\u0002\u0002\u0011", | |
"\u01ce\u0003\u0002\u0002\u0002\u0013\u01d0\u0003\u0002\u0002\u0002\u0015", | |
"\u01d3\u0003\u0002\u0002\u0002\u0017\u01d7\u0003\u0002\u0002\u0002\u0019", | |
"\u01db\u0003\u0002\u0002\u0002\u001b\u01e1\u0003\u0002\u0002\u0002\u001d", | |
"\u01e9\u0003\u0002\u0002\u0002\u001f\u01ed\u0003\u0002\u0002\u0002!", | |
"\u01f1\u0003\u0002\u0002\u0002#\u01f7\u0003\u0002\u0002\u0002%\u01fa", | |
"\u0003\u0002\u0002\u0002\'\u01fe\u0003\u0002\u0002\u0002)\u0201\u0003", | |
"\u0002\u0002\u0002+\u020b\u0003\u0002\u0002\u0002-\u0213\u0003\u0002", | |
"\u0002\u0002/\u0216\u0003\u0002\u0002\u00021\u021b\u0003\u0002\u0002", | |
"\u00023\u0223\u0003\u0002\u0002\u00025\u0228\u0003\u0002\u0002\u0002", | |
"7\u022d\u0003\u0002\u0002\u00029\u0236\u0003\u0002\u0002\u0002;\u023d", | |
"\u0003\u0002\u0002\u0002=\u0245\u0003\u0002\u0002\u0002?\u024d\u0003", | |
"\u0002\u0002\u0002A\u0254\u0003\u0002\u0002\u0002C\u025e\u0003\u0002", | |
"\u0002\u0002E\u0269\u0003\u0002\u0002\u0002G\u0270\u0003\u0002\u0002", | |
"\u0002I\u0276\u0003\u0002\u0002\u0002K\u027b\u0003\u0002\u0002\u0002", | |
"M\u0283\u0003\u0002\u0002\u0002O\u0290\u0003\u0002\u0002\u0002Q\u029d", | |
"\u0003\u0002\u0002\u0002S\u02aa\u0003\u0002\u0002\u0002U\u02bc\u0003", | |
"\u0002\u0002\u0002W\u02c9\u0003\u0002\u0002\u0002Y\u02ce\u0003\u0002", | |
"\u0002\u0002[\u02d3\u0003\u0002\u0002\u0002]\u02d7\u0003\u0002\u0002", | |
"\u0002_\u02e2\u0003\u0002\u0002\u0002a\u02e9\u0003\u0002\u0002\u0002", | |
"c\u02ee\u0003\u0002\u0002\u0002e\u02f7\u0003\u0002\u0002\u0002g\u0300", | |
"\u0003\u0002\u0002\u0002i\u030c\u0003\u0002\u0002\u0002k\u0311\u0003", | |
"\u0002\u0002\u0002m\u0316\u0003\u0002\u0002\u0002o\u031a\u0003\u0002", | |
"\u0002\u0002q\u0321\u0003\u0002\u0002\u0002s\u0328\u0003\u0002\u0002", | |
"\u0002u\u0332\u0003\u0002\u0002\u0002w\u033a\u0003\u0002\u0002\u0002", | |
"y\u0341\u0003\u0002\u0002\u0002{\u0349\u0003\u0002\u0002\u0002}\u0351", | |
"\u0003\u0002\u0002\u0002\u007f\u0357\u0003\u0002\u0002\u0002\u0081\u035e", | |
"\u0003\u0002\u0002\u0002\u0083\u0364\u0003\u0002\u0002\u0002\u0085\u036e", | |
"\u0003\u0002\u0002\u0002\u0087\u0372\u0003\u0002\u0002\u0002\u0089\u0379", | |
"\u0003\u0002\u0002\u0002\u008b\u037e\u0003\u0002\u0002\u0002\u008d\u0383", | |
"\u0003\u0002\u0002\u0002\u008f\u038d\u0003\u0002\u0002\u0002\u0091\u0393", | |
"\u0003\u0002\u0002\u0002\u0093\u039a\u0003\u0002\u0002\u0002\u0095\u03a3", | |
"\u0003\u0002\u0002\u0002\u0097\u03a9\u0003\u0002\u0002\u0002\u0099\u03b2", | |
"\u0003\u0002\u0002\u0002\u009b\u03b9\u0003\u0002\u0002\u0002\u009d\u03be", | |
"\u0003\u0002\u0002\u0002\u009f\u03c1\u0003\u0002\u0002\u0002\u00a1\u03c4", | |
"\u0003\u0002\u0002\u0002\u00a3\u03ce\u0003\u0002\u0002\u0002\u00a5\u03d4", | |
"\u0003\u0002\u0002\u0002\u00a7\u03da\u0003\u0002\u0002\u0002\u00a9\u03e1", | |
"\u0003\u0002\u0002\u0002\u00ab\u03eb\u0003\u0002\u0002\u0002\u00ad\u03f4", | |
"\u0003\u0002\u0002\u0002\u00af\u03f9\u0003\u0002\u0002\u0002\u00b1\u03fc", | |
"\u0003\u0002\u0002\u0002\u00b3\u03ff\u0003\u0002\u0002\u0002\u00b5\u0409", | |
"\u0003\u0002\u0002\u0002\u00b7\u040e\u0003\u0002\u0002\u0002\u00b9\u0413", | |
"\u0003\u0002\u0002\u0002\u00bb\u0418\u0003\u0002\u0002\u0002\u00bd\u0420", | |
"\u0003\u0002\u0002\u0002\u00bf\u0425\u0003\u0002\u0002\u0002\u00c1\u042b", | |
"\u0003\u0002\u0002\u0002\u00c3\u0430\u0003\u0002\u0002\u0002\u00c5\u0436", | |
"\u0003\u0002\u0002\u0002\u00c7\u0440\u0003\u0002\u0002\u0002\u00c9\u044f", | |
"\u0003\u0002\u0002\u0002\u00cb\u0457\u0003\u0002\u0002\u0002\u00cd\u045b", | |
"\u0003\u0002\u0002\u0002\u00cf\u0462\u0003\u0002\u0002\u0002\u00d1\u0468", | |
"\u0003\u0002\u0002\u0002\u00d3\u0470\u0003\u0002\u0002\u0002\u00d5\u0474", | |
"\u0003\u0002\u0002\u0002\u00d7\u0478\u0003\u0002\u0002\u0002\u00d9\u047d", | |
"\u0003\u0002\u0002\u0002\u00db\u0482\u0003\u0002\u0002\u0002\u00dd\u0485", | |
"\u0003\u0002\u0002\u0002\u00df\u048f\u0003\u0002\u0002\u0002\u00e1\u0493", | |
"\u0003\u0002\u0002\u0002\u00e3\u0498\u0003\u0002\u0002\u0002\u00e5\u049f", | |
"\u0003\u0002\u0002\u0002\u00e7\u04a5\u0003\u0002\u0002\u0002\u00e9\u04a8", | |
"\u0003\u0002\u0002\u0002\u00eb\u04ad\u0003\u0002\u0002\u0002\u00ed\u04b4", | |
"\u0003\u0002\u0002\u0002\u00ef\u04b7\u0003\u0002\u0002\u0002\u00f1\u04bd", | |
"\u0003\u0002\u0002\u0002\u00f3\u04c8\u0003\u0002\u0002\u0002\u00f5\u04ce", | |
"\u0003\u0002\u0002\u0002\u00f7\u04d5\u0003\u0002\u0002\u0002\u00f9\u04da", | |
"\u0003\u0002\u0002\u0002\u00fb\u04e4\u0003\u0002\u0002\u0002\u00fd\u04ef", | |
"\u0003\u0002\u0002\u0002\u00ff\u04f4\u0003\u0002\u0002\u0002\u0101\u04fd", | |
"\u0003\u0002\u0002\u0002\u0103\u0507\u0003\u0002\u0002\u0002\u0105\u050f", | |
"\u0003\u0002\u0002\u0002\u0107\u051a\u0003\u0002\u0002\u0002\u0109\u0525", | |
"\u0003\u0002\u0002\u0002\u010b\u052c\u0003\u0002\u0002\u0002\u010d\u0532", | |
"\u0003\u0002\u0002\u0002\u010f\u0537\u0003\u0002\u0002\u0002\u0111\u0541", | |
"\u0003\u0002\u0002\u0002\u0113\u0548\u0003\u0002\u0002\u0002\u0115\u0553", | |
"\u0003\u0002\u0002\u0002\u0117\u055b\u0003\u0002\u0002\u0002\u0119\u0561", | |
"\u0003\u0002\u0002\u0002\u011b\u056a\u0003\u0002\u0002\u0002\u011d\u0571", | |
"\u0003\u0002\u0002\u0002\u011f\u0577\u0003\u0002\u0002\u0002\u0121\u0580", | |
"\u0003\u0002\u0002\u0002\u0123\u0587\u0003\u0002\u0002\u0002\u0125\u058b", | |
"\u0003\u0002\u0002\u0002\u0127\u0590\u0003\u0002\u0002\u0002\u0129\u0597", | |
"\u0003\u0002\u0002\u0002\u012b\u059f\u0003\u0002\u0002\u0002\u012d\u05a6", | |
"\u0003\u0002\u0002\u0002\u012f\u05ad\u0003\u0002\u0002\u0002\u0131\u05ba", | |
"\u0003\u0002\u0002\u0002\u0133\u05c2\u0003\u0002\u0002\u0002\u0135\u05c6", | |
"\u0003\u0002\u0002\u0002\u0137\u05cb\u0003\u0002\u0002\u0002\u0139\u05d0", | |
"\u0003\u0002\u0002\u0002\u013b\u05d5\u0003\u0002\u0002\u0002\u013d\u05db", | |
"\u0003\u0002\u0002\u0002\u013f\u05e1\u0003\u0002\u0002\u0002\u0141\u05eb", | |
"\u0003\u0002\u0002\u0002\u0143\u05f2\u0003\u0002\u0002\u0002\u0145\u05f8", | |
"\u0003\u0002\u0002\u0002\u0147\u05ff\u0003\u0002\u0002\u0002\u0149\u060b", | |
"\u0003\u0002\u0002\u0002\u014b\u0610\u0003\u0002\u0002\u0002\u014d\u0615", | |
"\u0003\u0002\u0002\u0002\u014f\u061a\u0003\u0002\u0002\u0002\u0151\u0624", | |
"\u0003\u0002\u0002\u0002\u0153\u0627\u0003\u0002\u0002\u0002\u0155\u0633", | |
"\u0003\u0002\u0002\u0002\u0157\u0638\u0003\u0002\u0002\u0002\u0159\u0641", | |
"\u0003\u0002\u0002\u0002\u015b\u0646\u0003\u0002\u0002\u0002\u015d\u064e", | |
"\u0003\u0002\u0002\u0002\u015f\u0658\u0003\u0002\u0002\u0002\u0161\u0664", | |
"\u0003\u0002\u0002\u0002\u0163\u066a\u0003\u0002\u0002\u0002\u0165\u0671", | |
"\u0003\u0002\u0002\u0002\u0167\u0675\u0003\u0002\u0002\u0002\u0169\u067b", | |
"\u0003\u0002\u0002\u0002\u016b\u0684\u0003\u0002\u0002\u0002\u016d\u068b", | |
"\u0003\u0002\u0002\u0002\u016f\u0693\u0003\u0002\u0002\u0002\u0171\u0698", | |
"\u0003\u0002\u0002\u0002\u0173\u069d\u0003\u0002\u0002\u0002\u0175\u06a3", | |
"\u0003\u0002\u0002\u0002\u0177\u06a8\u0003\u0002\u0002\u0002\u0179\u06ad", | |
"\u0003\u0002\u0002\u0002\u017b\u06b3\u0003\u0002\u0002\u0002\u017d\u06b8", | |
"\u0003\u0002\u0002\u0002\u017f\u06bd\u0003\u0002\u0002\u0002\u0181\u06c3", | |
"\u0003\u0002\u0002\u0002\u0183\u06c5\u0003\u0002\u0002\u0002\u0185\u06c7", | |
"\u0003\u0002\u0002\u0002\u0187\u06ca\u0003\u0002\u0002\u0002\u0189\u06cc", | |
"\u0003\u0002\u0002\u0002\u018b\u06cf\u0003\u0002\u0002\u0002\u018d\u06d1", | |
"\u0003\u0002\u0002\u0002\u018f\u06d3\u0003\u0002\u0002\u0002\u0191\u06d5", | |
"\u0003\u0002\u0002\u0002\u0193\u06d7\u0003\u0002\u0002\u0002\u0195\u06d9", | |
"\u0003\u0002\u0002\u0002\u0197\u06dc\u0003\u0002\u0002\u0002\u0199\u06e7", | |
"\u0003\u0002\u0002\u0002\u019b\u06f5\u0003\u0002\u0002\u0002\u019d\u0701", | |
"\u0003\u0002\u0002\u0002\u019f\u0717\u0003\u0002\u0002\u0002\u01a1\u0731", | |
"\u0003\u0002\u0002\u0002\u01a3\u0735\u0003\u0002\u0002\u0002\u01a5\u073f", | |
"\u0003\u0002\u0002\u0002\u01a7\u0747\u0003\u0002\u0002\u0002\u01a9\u0752", | |
"\u0003\u0002\u0002\u0002\u01ab\u075d\u0003\u0002\u0002\u0002\u01ad\u0774", | |
"\u0003\u0002\u0002\u0002\u01af\u0790\u0003\u0002\u0002\u0002\u01b1\u07a2", | |
"\u0003\u0002\u0002\u0002\u01b3\u07ab\u0003\u0002\u0002\u0002\u01b5\u07ad", | |
"\u0003\u0002\u0002\u0002\u01b7\u07af\u0003\u0002\u0002\u0002\u01b9\u07c0", | |
"\u0003\u0002\u0002\u0002\u01bb\u07cf\u0003\u0002\u0002\u0002\u01bd\u07d5", | |
"\u0003\u0002\u0002\u0002\u01bf\u01c0\u00070\u0002\u0002\u01c0\u0004", | |
"\u0003\u0002\u0002\u0002\u01c1\u01c2\u0007*\u0002\u0002\u01c2\u0006", | |
"\u0003\u0002\u0002\u0002\u01c3\u01c4\u0007+\u0002\u0002\u01c4\b\u0003", | |
"\u0002\u0002\u0002\u01c5\u01c6\u0007.\u0002\u0002\u01c6\n\u0003\u0002", | |
"\u0002\u0002\u01c7\u01c8\u0007A\u0002\u0002\u01c8\f\u0003\u0002\u0002", | |
"\u0002\u01c9\u01ca\u0007/\u0002\u0002\u01ca\u01cb\u0007@\u0002\u0002", | |
"\u01cb\u000e\u0003\u0002\u0002\u0002\u01cc\u01cd\u0007]\u0002\u0002", | |
"\u01cd\u0010\u0003\u0002\u0002\u0002\u01ce\u01cf\u0007_\u0002\u0002", | |
"\u01cf\u0012\u0003\u0002\u0002\u0002\u01d0\u01d1\u0007?\u0002\u0002", | |
"\u01d1\u01d2\u0007@\u0002\u0002\u01d2\u0014\u0003\u0002\u0002\u0002", | |
"\u01d3\u01d4\u0007C\u0002\u0002\u01d4\u01d5\u0007F\u0002\u0002\u01d5", | |
"\u01d6\u0007F\u0002\u0002\u01d6\u0016\u0003\u0002\u0002\u0002\u01d7", | |
"\u01d8\u0007C\u0002\u0002\u01d8\u01d9\u0007N\u0002\u0002\u01d9\u01da", | |
"\u0007N\u0002\u0002\u01da\u0018\u0003\u0002\u0002\u0002\u01db\u01dc", | |
"\u0007C\u0002\u0002\u01dc\u01dd\u0007N\u0002\u0002\u01dd\u01de\u0007", | |
"V\u0002\u0002\u01de\u01df\u0007G\u0002\u0002\u01df\u01e0\u0007T\u0002", | |
"\u0002\u01e0\u001a\u0003\u0002\u0002\u0002\u01e1\u01e2\u0007C\u0002", | |
"\u0002\u01e2\u01e3\u0007P\u0002\u0002\u01e3\u01e4\u0007C\u0002\u0002", | |
"\u01e4\u01e5\u0007N\u0002\u0002\u01e5\u01e6\u0007[\u0002\u0002\u01e6", | |
"\u01e7\u0007\\\u0002\u0002\u01e7\u01e8\u0007G\u0002\u0002\u01e8\u001c", | |
"\u0003\u0002\u0002\u0002\u01e9\u01ea\u0007C\u0002\u0002\u01ea\u01eb", | |
"\u0007P\u0002\u0002\u01eb\u01ec\u0007F\u0002\u0002\u01ec\u001e\u0003", | |
"\u0002\u0002\u0002\u01ed\u01ee\u0007C\u0002\u0002\u01ee\u01ef\u0007", | |
"P\u0002\u0002\u01ef\u01f0\u0007[\u0002\u0002\u01f0 \u0003\u0002\u0002", | |
"\u0002\u01f1\u01f2\u0007C\u0002\u0002\u01f2\u01f3\u0007T\u0002\u0002", | |
"\u01f3\u01f4\u0007T\u0002\u0002\u01f4\u01f5\u0007C\u0002\u0002\u01f5", | |
"\u01f6\u0007[\u0002\u0002\u01f6\"\u0003\u0002\u0002\u0002\u01f7\u01f8", | |
"\u0007C\u0002\u0002\u01f8\u01f9\u0007U\u0002\u0002\u01f9$\u0003\u0002", | |
"\u0002\u0002\u01fa\u01fb\u0007C\u0002\u0002\u01fb\u01fc\u0007U\u0002", | |
"\u0002\u01fc\u01fd\u0007E\u0002\u0002\u01fd&\u0003\u0002\u0002\u0002", | |
"\u01fe\u01ff\u0007C\u0002\u0002\u01ff\u0200\u0007V\u0002\u0002\u0200", | |
"(\u0003\u0002\u0002\u0002\u0201\u0202\u0007D\u0002\u0002\u0202\u0203", | |
"\u0007G\u0002\u0002\u0203\u0204\u0007T\u0002\u0002\u0204\u0205\u0007", | |
"P\u0002\u0002\u0205\u0206\u0007Q\u0002\u0002\u0206\u0207\u0007W\u0002", | |
"\u0002\u0207\u0208\u0007N\u0002\u0002\u0208\u0209\u0007N\u0002\u0002", | |
"\u0209\u020a\u0007K\u0002\u0002\u020a*\u0003\u0002\u0002\u0002\u020b", | |
"\u020c\u0007D\u0002\u0002\u020c\u020d\u0007G\u0002\u0002\u020d\u020e", | |
"\u0007V\u0002\u0002\u020e\u020f\u0007Y\u0002\u0002\u020f\u0210\u0007", | |
"G\u0002\u0002\u0210\u0211\u0007G\u0002\u0002\u0211\u0212\u0007P\u0002", | |
"\u0002\u0212,\u0003\u0002\u0002\u0002\u0213\u0214\u0007D\u0002\u0002", | |
"\u0214\u0215\u0007[\u0002\u0002\u0215.\u0003\u0002\u0002\u0002\u0216", | |
"\u0217\u0007E\u0002\u0002\u0217\u0218\u0007C\u0002\u0002\u0218\u0219", | |
"\u0007N\u0002\u0002\u0219\u021a\u0007N\u0002\u0002\u021a0\u0003\u0002", | |
"\u0002\u0002\u021b\u021c\u0007E\u0002\u0002\u021c\u021d\u0007C\u0002", | |
"\u0002\u021d\u021e\u0007U\u0002\u0002\u021e\u021f\u0007E\u0002\u0002", | |
"\u021f\u0220\u0007C\u0002\u0002\u0220\u0221\u0007F\u0002\u0002\u0221", | |
"\u0222\u0007G\u0002\u0002\u02222\u0003\u0002\u0002\u0002\u0223\u0224", | |
"\u0007E\u0002\u0002\u0224\u0225\u0007C\u0002\u0002\u0225\u0226\u0007", | |
"U\u0002\u0002\u0226\u0227\u0007G\u0002\u0002\u02274\u0003\u0002\u0002", | |
"\u0002\u0228\u0229\u0007E\u0002\u0002\u0229\u022a\u0007C\u0002\u0002", | |
"\u022a\u022b\u0007U\u0002\u0002\u022b\u022c\u0007V\u0002\u0002\u022c", | |
"6\u0003\u0002\u0002\u0002\u022d\u022e\u0007E\u0002\u0002\u022e\u022f", | |
"\u0007C\u0002\u0002\u022f\u0230\u0007V\u0002\u0002\u0230\u0231\u0007", | |
"C\u0002\u0002\u0231\u0232\u0007N\u0002\u0002\u0232\u0233\u0007Q\u0002", | |
"\u0002\u0233\u0234\u0007I\u0002\u0002\u0234\u0235\u0007U\u0002\u0002", | |
"\u02358\u0003\u0002\u0002\u0002\u0236\u0237\u0007E\u0002\u0002\u0237", | |
"\u0238\u0007Q\u0002\u0002\u0238\u0239\u0007N\u0002\u0002\u0239\u023a", | |
"\u0007W\u0002\u0002\u023a\u023b\u0007O\u0002\u0002\u023b\u023c\u0007", | |
"P\u0002\u0002\u023c:\u0003\u0002\u0002\u0002\u023d\u023e\u0007E\u0002", | |
"\u0002\u023e\u023f\u0007Q\u0002\u0002\u023f\u0240\u0007N\u0002\u0002", | |
"\u0240\u0241\u0007W\u0002\u0002\u0241\u0242\u0007O\u0002\u0002\u0242", | |
"\u0243\u0007P\u0002\u0002\u0243\u0244\u0007U\u0002\u0002\u0244<\u0003", | |
"\u0002\u0002\u0002\u0245\u0246\u0007E\u0002\u0002\u0246\u0247\u0007", | |
"Q\u0002\u0002\u0247\u0248\u0007O\u0002\u0002\u0248\u0249\u0007O\u0002", | |
"\u0002\u0249\u024a\u0007G\u0002\u0002\u024a\u024b\u0007P\u0002\u0002", | |
"\u024b\u024c\u0007V\u0002\u0002\u024c>\u0003\u0002\u0002\u0002\u024d", | |
"\u024e\u0007E\u0002\u0002\u024e\u024f\u0007Q\u0002\u0002\u024f\u0250", | |
"\u0007O\u0002\u0002\u0250\u0251\u0007O\u0002\u0002\u0251\u0252\u0007", | |
"K\u0002\u0002\u0252\u0253\u0007V\u0002\u0002\u0253@\u0003\u0002\u0002", | |
"\u0002\u0254\u0255\u0007E\u0002\u0002\u0255\u0256\u0007Q\u0002\u0002", | |
"\u0256\u0257\u0007O\u0002\u0002\u0257\u0258\u0007O\u0002\u0002\u0258", | |
"\u0259\u0007K\u0002\u0002\u0259\u025a\u0007V\u0002\u0002\u025a\u025b", | |
"\u0007V\u0002\u0002\u025b\u025c\u0007G\u0002\u0002\u025c\u025d\u0007", | |
"F\u0002\u0002\u025dB\u0003\u0002\u0002\u0002\u025e\u025f\u0007E\u0002", | |
"\u0002\u025f\u0260\u0007Q\u0002\u0002\u0260\u0261\u0007P\u0002\u0002", | |
"\u0261\u0262\u0007U\u0002\u0002\u0262\u0263\u0007V\u0002\u0002\u0263", | |
"\u0264\u0007T\u0002\u0002\u0264\u0265\u0007C\u0002\u0002\u0265\u0266", | |
"\u0007K\u0002\u0002\u0266\u0267\u0007P\u0002\u0002\u0267\u0268\u0007", | |
"V\u0002\u0002\u0268D\u0003\u0002\u0002\u0002\u0269\u026a\u0007E\u0002", | |
"\u0002\u026a\u026b\u0007T\u0002\u0002\u026b\u026c\u0007G\u0002\u0002", | |
"\u026c\u026d\u0007C\u0002\u0002\u026d\u026e\u0007V\u0002\u0002\u026e", | |
"\u026f\u0007G\u0002\u0002\u026fF\u0003\u0002\u0002\u0002\u0270\u0271", | |
"\u0007E\u0002\u0002\u0271\u0272\u0007T\u0002\u0002\u0272\u0273\u0007", | |
"Q\u0002\u0002\u0273\u0274\u0007U\u0002\u0002\u0274\u0275\u0007U\u0002", | |
"\u0002\u0275H\u0003\u0002\u0002\u0002\u0276\u0277\u0007E\u0002\u0002", | |
"\u0277\u0278\u0007W\u0002\u0002\u0278\u0279\u0007D\u0002\u0002\u0279", | |
"\u027a\u0007G\u0002\u0002\u027aJ\u0003\u0002\u0002\u0002\u027b\u027c", | |
"\u0007E\u0002\u0002\u027c\u027d\u0007W\u0002\u0002\u027d\u027e\u0007", | |
"T\u0002\u0002\u027e\u027f\u0007T\u0002\u0002\u027f\u0280\u0007G\u0002", | |
"\u0002\u0280\u0281\u0007P\u0002\u0002\u0281\u0282\u0007V\u0002\u0002", | |
"\u0282L\u0003\u0002\u0002\u0002\u0283\u0284\u0007E\u0002\u0002\u0284", | |
"\u0285\u0007W\u0002\u0002\u0285\u0286\u0007T\u0002\u0002\u0286\u0287", | |
"\u0007T\u0002\u0002\u0287\u0288\u0007G\u0002\u0002\u0288\u0289\u0007", | |
"P\u0002\u0002\u0289\u028a\u0007V\u0002\u0002\u028a\u028b\u0007a\u0002", | |
"\u0002\u028b\u028c\u0007F\u0002\u0002\u028c\u028d\u0007C\u0002\u0002", | |
"\u028d\u028e\u0007V\u0002\u0002\u028e\u028f\u0007G\u0002\u0002\u028f", | |
"N\u0003\u0002\u0002\u0002\u0290\u0291\u0007E\u0002\u0002\u0291\u0292", | |
"\u0007W\u0002\u0002\u0292\u0293\u0007T\u0002\u0002\u0293\u0294\u0007", | |
"T\u0002\u0002\u0294\u0295\u0007G\u0002\u0002\u0295\u0296\u0007P\u0002", | |
"\u0002\u0296\u0297\u0007V\u0002\u0002\u0297\u0298\u0007a\u0002\u0002", | |
"\u0298\u0299\u0007R\u0002\u0002\u0299\u029a\u0007C\u0002\u0002\u029a", | |
"\u029b\u0007V\u0002\u0002\u029b\u029c\u0007J\u0002\u0002\u029cP\u0003", | |
"\u0002\u0002\u0002\u029d\u029e\u0007E\u0002\u0002\u029e\u029f\u0007", | |
"W\u0002\u0002\u029f\u02a0\u0007T\u0002\u0002\u02a0\u02a1\u0007T\u0002", | |
"\u0002\u02a1\u02a2\u0007G\u0002\u0002\u02a2\u02a3\u0007P\u0002\u0002", | |
"\u02a3\u02a4\u0007V\u0002\u0002\u02a4\u02a5\u0007a\u0002\u0002\u02a5", | |
"\u02a6\u0007V\u0002\u0002\u02a6\u02a7\u0007K\u0002\u0002\u02a7\u02a8", | |
"\u0007O\u0002\u0002\u02a8\u02a9\u0007G\u0002\u0002\u02a9R\u0003\u0002", | |
"\u0002\u0002\u02aa\u02ab\u0007E\u0002\u0002\u02ab\u02ac\u0007W\u0002", | |
"\u0002\u02ac\u02ad\u0007T\u0002\u0002\u02ad\u02ae\u0007T\u0002\u0002", | |
"\u02ae\u02af\u0007G\u0002\u0002\u02af\u02b0\u0007P\u0002\u0002\u02b0", | |
"\u02b1\u0007V\u0002\u0002\u02b1\u02b2\u0007a\u0002\u0002\u02b2\u02b3", | |
"\u0007V\u0002\u0002\u02b3\u02b4\u0007K\u0002\u0002\u02b4\u02b5\u0007", | |
"O\u0002\u0002\u02b5\u02b6\u0007G\u0002\u0002\u02b6\u02b7\u0007U\u0002", | |
"\u0002\u02b7\u02b8\u0007V\u0002\u0002\u02b8\u02b9\u0007C\u0002\u0002", | |
"\u02b9\u02ba\u0007O\u0002\u0002\u02ba\u02bb\u0007R\u0002\u0002\u02bb", | |
"T\u0003\u0002\u0002\u0002\u02bc\u02bd\u0007E\u0002\u0002\u02bd\u02be", | |
"\u0007W\u0002\u0002\u02be\u02bf\u0007T\u0002\u0002\u02bf\u02c0\u0007", | |
"T\u0002\u0002\u02c0\u02c1\u0007G\u0002\u0002\u02c1\u02c2\u0007P\u0002", | |
"\u0002\u02c2\u02c3\u0007V\u0002\u0002\u02c3\u02c4\u0007a\u0002\u0002", | |
"\u02c4\u02c5\u0007W\u0002\u0002\u02c5\u02c6\u0007U\u0002\u0002\u02c6", | |
"\u02c7\u0007G\u0002\u0002\u02c7\u02c8\u0007T\u0002\u0002\u02c8V\u0003", | |
"\u0002\u0002\u0002\u02c9\u02ca\u0007F\u0002\u0002\u02ca\u02cb\u0007", | |
"C\u0002\u0002\u02cb\u02cc\u0007V\u0002\u0002\u02cc\u02cd\u0007C\u0002", | |
"\u0002\u02cdX\u0003\u0002\u0002\u0002\u02ce\u02cf\u0007F\u0002\u0002", | |
"\u02cf\u02d0\u0007C\u0002\u0002\u02d0\u02d1\u0007V\u0002\u0002\u02d1", | |
"\u02d2\u0007G\u0002\u0002\u02d2Z\u0003\u0002\u0002\u0002\u02d3\u02d4", | |
"\u0007F\u0002\u0002\u02d4\u02d5\u0007C\u0002\u0002\u02d5\u02d6\u0007", | |
"[\u0002\u0002\u02d6\\\u0003\u0002\u0002\u0002\u02d7\u02d8\u0007F\u0002", | |
"\u0002\u02d8\u02d9\u0007G\u0002\u0002\u02d9\u02da\u0007C\u0002\u0002", | |
"\u02da\u02db\u0007N\u0002\u0002\u02db\u02dc\u0007N\u0002\u0002\u02dc", | |
"\u02dd\u0007Q\u0002\u0002\u02dd\u02de\u0007E\u0002\u0002\u02de\u02df", | |
"\u0007C\u0002\u0002\u02df\u02e0\u0007V\u0002\u0002\u02e0\u02e1\u0007", | |
"G\u0002\u0002\u02e1^\u0003\u0002\u0002\u0002\u02e2\u02e3\u0007F\u0002", | |
"\u0002\u02e3\u02e4\u0007G\u0002\u0002\u02e4\u02e5\u0007N\u0002\u0002", | |
"\u02e5\u02e6\u0007G\u0002\u0002\u02e6\u02e7\u0007V\u0002\u0002\u02e7", | |
"\u02e8\u0007G\u0002\u0002\u02e8`\u0003\u0002\u0002\u0002\u02e9\u02ea", | |
"\u0007F\u0002\u0002\u02ea\u02eb\u0007G\u0002\u0002\u02eb\u02ec\u0007", | |
"U\u0002\u0002\u02ec\u02ed\u0007E\u0002\u0002\u02edb\u0003\u0002\u0002", | |
"\u0002\u02ee\u02ef\u0007F\u0002\u0002\u02ef\u02f0\u0007G\u0002\u0002", | |
"\u02f0\u02f1\u0007U\u0002\u0002\u02f1\u02f2\u0007E\u0002\u0002\u02f2", | |
"\u02f3\u0007T\u0002\u0002\u02f3\u02f4\u0007K\u0002\u0002\u02f4\u02f5", | |
"\u0007D\u0002\u0002\u02f5\u02f6\u0007G\u0002\u0002\u02f6d\u0003\u0002", | |
"\u0002\u0002\u02f7\u02f8\u0007F\u0002\u0002\u02f8\u02f9\u0007K\u0002", | |
"\u0002\u02f9\u02fa\u0007U\u0002\u0002\u02fa\u02fb\u0007V\u0002\u0002", | |
"\u02fb\u02fc\u0007K\u0002\u0002\u02fc\u02fd\u0007P\u0002\u0002\u02fd", | |
"\u02fe\u0007E\u0002\u0002\u02fe\u02ff\u0007V\u0002\u0002\u02fff\u0003", | |
"\u0002\u0002\u0002\u0300\u0301\u0007F\u0002\u0002\u0301\u0302\u0007", | |
"K\u0002\u0002\u0302\u0303\u0007U\u0002\u0002\u0303\u0304\u0007V\u0002", | |
"\u0002\u0304\u0305\u0007T\u0002\u0002\u0305\u0306\u0007K\u0002\u0002", | |
"\u0306\u0307\u0007D\u0002\u0002\u0307\u0308\u0007W\u0002\u0002\u0308", | |
"\u0309\u0007V\u0002\u0002\u0309\u030a\u0007G\u0002\u0002\u030a\u030b", | |
"\u0007F\u0002\u0002\u030bh\u0003\u0002\u0002\u0002\u030c\u030d\u0007", | |
"F\u0002\u0002\u030d\u030e\u0007T\u0002\u0002\u030e\u030f\u0007Q\u0002", | |
"\u0002\u030f\u0310\u0007R\u0002\u0002\u0310j\u0003\u0002\u0002\u0002", | |
"\u0311\u0312\u0007G\u0002\u0002\u0312\u0313\u0007N\u0002\u0002\u0313", | |
"\u0314\u0007U\u0002\u0002\u0314\u0315\u0007G\u0002\u0002\u0315l\u0003", | |
"\u0002\u0002\u0002\u0316\u0317\u0007G\u0002\u0002\u0317\u0318\u0007", | |
"P\u0002\u0002\u0318\u0319\u0007F\u0002\u0002\u0319n\u0003\u0002\u0002", | |
"\u0002\u031a\u031b\u0007G\u0002\u0002\u031b\u031c\u0007U\u0002\u0002", | |
"\u031c\u031d\u0007E\u0002\u0002\u031d\u031e\u0007C\u0002\u0002\u031e", | |
"\u031f\u0007R\u0002\u0002\u031f\u0320\u0007G\u0002\u0002\u0320p\u0003", | |
"\u0002\u0002\u0002\u0321\u0322\u0007G\u0002\u0002\u0322\u0323\u0007", | |
"Z\u0002\u0002\u0323\u0324\u0007E\u0002\u0002\u0324\u0325\u0007G\u0002", | |
"\u0002\u0325\u0326\u0007R\u0002\u0002\u0326\u0327\u0007V\u0002\u0002", | |
"\u0327r\u0003\u0002\u0002\u0002\u0328\u0329\u0007G\u0002\u0002\u0329", | |
"\u032a\u0007Z\u0002\u0002\u032a\u032b\u0007E\u0002\u0002\u032b\u032c", | |
"\u0007N\u0002\u0002\u032c\u032d\u0007W\u0002\u0002\u032d\u032e\u0007", | |
"F\u0002\u0002\u032e\u032f\u0007K\u0002\u0002\u032f\u0330\u0007P\u0002", | |
"\u0002\u0330\u0331\u0007I\u0002\u0002\u0331t\u0003\u0002\u0002\u0002", | |
"\u0332\u0333\u0007G\u0002\u0002\u0333\u0334\u0007Z\u0002\u0002\u0334", | |
"\u0335\u0007G\u0002\u0002\u0335\u0336\u0007E\u0002\u0002\u0336\u0337", | |
"\u0007W\u0002\u0002\u0337\u0338\u0007V\u0002\u0002\u0338\u0339\u0007", | |
"G\u0002\u0002\u0339v\u0003\u0002\u0002\u0002\u033a\u033b\u0007G\u0002", | |
"\u0002\u033b\u033c\u0007Z\u0002\u0002\u033c\u033d\u0007K\u0002\u0002", | |
"\u033d\u033e\u0007U\u0002\u0002\u033e\u033f\u0007V\u0002\u0002\u033f", | |
"\u0340\u0007U\u0002\u0002\u0340x\u0003\u0002\u0002\u0002\u0341\u0342", | |
"\u0007G\u0002\u0002\u0342\u0343\u0007Z\u0002\u0002\u0343\u0344\u0007", | |
"R\u0002\u0002\u0344\u0345\u0007N\u0002\u0002\u0345\u0346\u0007C\u0002", | |
"\u0002\u0346\u0347\u0007K\u0002\u0002\u0347\u0348\u0007P\u0002\u0002", | |
"\u0348z\u0003\u0002\u0002\u0002\u0349\u034a\u0007G\u0002\u0002\u034a", | |
"\u034b\u0007Z\u0002\u0002\u034b\u034c\u0007V\u0002\u0002\u034c\u034d", | |
"\u0007T\u0002\u0002\u034d\u034e\u0007C\u0002\u0002\u034e\u034f\u0007", | |
"E\u0002\u0002\u034f\u0350\u0007V\u0002\u0002\u0350|\u0003\u0002\u0002", | |
"\u0002\u0351\u0352\u0007H\u0002\u0002\u0352\u0353\u0007C\u0002\u0002", | |
"\u0353\u0354\u0007N\u0002\u0002\u0354\u0355\u0007U\u0002\u0002\u0355", | |
"\u0356\u0007G\u0002\u0002\u0356~\u0003\u0002\u0002\u0002\u0357\u0358", | |
"\u0007H\u0002\u0002\u0358\u0359\u0007K\u0002\u0002\u0359\u035a\u0007", | |
"N\u0002\u0002\u035a\u035b\u0007V\u0002\u0002\u035b\u035c\u0007G\u0002", | |
"\u0002\u035c\u035d\u0007T\u0002\u0002\u035d\u0080\u0003\u0002\u0002", | |
"\u0002\u035e\u035f\u0007H\u0002\u0002\u035f\u0360\u0007K\u0002\u0002", | |
"\u0360\u0361\u0007T\u0002\u0002\u0361\u0362\u0007U\u0002\u0002\u0362", | |
"\u0363\u0007V\u0002\u0002\u0363\u0082\u0003\u0002\u0002\u0002\u0364", | |
"\u0365\u0007H\u0002\u0002\u0365\u0366\u0007Q\u0002\u0002\u0366\u0367", | |
"\u0007N\u0002\u0002\u0367\u0368\u0007N\u0002\u0002\u0368\u0369\u0007", | |
"Q\u0002\u0002\u0369\u036a\u0007Y\u0002\u0002\u036a\u036b\u0007K\u0002", | |
"\u0002\u036b\u036c\u0007P\u0002\u0002\u036c\u036d\u0007I\u0002\u0002", | |
"\u036d\u0084\u0003\u0002\u0002\u0002\u036e\u036f\u0007H\u0002\u0002", | |
"\u036f\u0370\u0007Q\u0002\u0002\u0370\u0371\u0007T\u0002\u0002\u0371", | |
"\u0086\u0003\u0002\u0002\u0002\u0372\u0373\u0007H\u0002\u0002\u0373", | |
"\u0374\u0007Q\u0002\u0002\u0374\u0375\u0007T\u0002\u0002\u0375\u0376", | |
"\u0007O\u0002\u0002\u0376\u0377\u0007C\u0002\u0002\u0377\u0378\u0007", | |
"V\u0002\u0002\u0378\u0088\u0003\u0002\u0002\u0002\u0379\u037a\u0007", | |
"H\u0002\u0002\u037a\u037b\u0007T\u0002\u0002\u037b\u037c\u0007Q\u0002", | |
"\u0002\u037c\u037d\u0007O\u0002\u0002\u037d\u008a\u0003\u0002\u0002", | |
"\u0002\u037e\u037f\u0007H\u0002\u0002\u037f\u0380\u0007W\u0002\u0002", | |
"\u0380\u0381\u0007N\u0002\u0002\u0381\u0382\u0007N\u0002\u0002\u0382", | |
"\u008c\u0003\u0002\u0002\u0002\u0383\u0384\u0007H\u0002\u0002\u0384", | |
"\u0385\u0007W\u0002\u0002\u0385\u0386\u0007P\u0002\u0002\u0386\u0387", | |
"\u0007E\u0002\u0002\u0387\u0388\u0007V\u0002\u0002\u0388\u0389\u0007", | |
"K\u0002\u0002\u0389\u038a\u0007Q\u0002\u0002\u038a\u038b\u0007P\u0002", | |
"\u0002\u038b\u038c\u0007U\u0002\u0002\u038c\u008e\u0003\u0002\u0002", | |
"\u0002\u038d\u038e\u0007I\u0002\u0002\u038e\u038f\u0007T\u0002\u0002", | |
"\u038f\u0390\u0007C\u0002\u0002\u0390\u0391\u0007P\u0002\u0002\u0391", | |
"\u0392\u0007V\u0002\u0002\u0392\u0090\u0003\u0002\u0002\u0002\u0393", | |
"\u0394\u0007I\u0002\u0002\u0394\u0395\u0007T\u0002\u0002\u0395\u0396", | |
"\u0007C\u0002\u0002\u0396\u0397\u0007P\u0002\u0002\u0397\u0398\u0007", | |
"V\u0002\u0002\u0398\u0399\u0007U\u0002\u0002\u0399\u0092\u0003\u0002", | |
"\u0002\u0002\u039a\u039b\u0007I\u0002\u0002\u039b\u039c\u0007T\u0002", | |
"\u0002\u039c\u039d\u0007C\u0002\u0002\u039d\u039e\u0007R\u0002\u0002", | |
"\u039e\u039f\u0007J\u0002\u0002\u039f\u03a0\u0007X\u0002\u0002\u03a0", | |
"\u03a1\u0007K\u0002\u0002\u03a1\u03a2\u0007\\\u0002\u0002\u03a2\u0094", | |
"\u0003\u0002\u0002\u0002\u03a3\u03a4\u0007I\u0002\u0002\u03a4\u03a5", | |
"\u0007T\u0002\u0002\u03a5\u03a6\u0007Q\u0002\u0002\u03a6\u03a7\u0007", | |
"W\u0002\u0002\u03a7\u03a8\u0007R\u0002\u0002\u03a8\u0096\u0003\u0002", | |
"\u0002\u0002\u03a9\u03aa\u0007I\u0002\u0002\u03aa\u03ab\u0007T\u0002", | |
"\u0002\u03ab\u03ac\u0007Q\u0002\u0002\u03ac\u03ad\u0007W\u0002\u0002", | |
"\u03ad\u03ae\u0007R\u0002\u0002\u03ae\u03af\u0007K\u0002\u0002\u03af", | |
"\u03b0\u0007P\u0002\u0002\u03b0\u03b1\u0007I\u0002\u0002\u03b1\u0098", | |
"\u0003\u0002\u0002\u0002\u03b2\u03b3\u0007J\u0002\u0002\u03b3\u03b4", | |
"\u0007C\u0002\u0002\u03b4\u03b5\u0007X\u0002\u0002\u03b5\u03b6\u0007", | |
"K\u0002\u0002\u03b6\u03b7\u0007P\u0002\u0002\u03b7\u03b8\u0007I\u0002", | |
"\u0002\u03b8\u009a\u0003\u0002\u0002\u0002\u03b9\u03ba\u0007J\u0002", | |
"\u0002\u03ba\u03bb\u0007Q\u0002\u0002\u03bb\u03bc\u0007W\u0002\u0002", | |
"\u03bc\u03bd\u0007T\u0002\u0002\u03bd\u009c\u0003\u0002\u0002\u0002", | |
"\u03be\u03bf\u0007K\u0002\u0002\u03bf\u03c0\u0007H\u0002\u0002\u03c0", | |
"\u009e\u0003\u0002\u0002\u0002\u03c1\u03c2\u0007K\u0002\u0002\u03c2", | |
"\u03c3\u0007P\u0002\u0002\u03c3\u00a0\u0003\u0002\u0002\u0002\u03c4", | |
"\u03c5\u0007K\u0002\u0002\u03c5\u03c6\u0007P\u0002\u0002\u03c6\u03c7", | |
"\u0007E\u0002\u0002\u03c7\u03c8\u0007N\u0002\u0002\u03c8\u03c9\u0007", | |
"W\u0002\u0002\u03c9\u03ca\u0007F\u0002\u0002\u03ca\u03cb\u0007K\u0002", | |
"\u0002\u03cb\u03cc\u0007P\u0002\u0002\u03cc\u03cd\u0007I\u0002\u0002", | |
"\u03cd\u00a2\u0003\u0002\u0002\u0002\u03ce\u03cf\u0007K\u0002\u0002", | |
"\u03cf\u03d0\u0007P\u0002\u0002\u03d0\u03d1\u0007P\u0002\u0002\u03d1", | |
"\u03d2\u0007G\u0002\u0002\u03d2\u03d3\u0007T\u0002\u0002\u03d3\u00a4", | |
"\u0003\u0002\u0002\u0002\u03d4\u03d5\u0007K\u0002\u0002\u03d5\u03d6", | |
"\u0007P\u0002\u0002\u03d6\u03d7\u0007R\u0002\u0002\u03d7\u03d8\u0007", | |
"W\u0002\u0002\u03d8\u03d9\u0007V\u0002\u0002\u03d9\u00a6\u0003\u0002", | |
"\u0002\u0002\u03da\u03db\u0007K\u0002\u0002\u03db\u03dc\u0007P\u0002", | |
"\u0002\u03dc\u03dd\u0007U\u0002\u0002\u03dd\u03de\u0007G\u0002\u0002", | |
"\u03de\u03df\u0007T\u0002\u0002\u03df\u03e0\u0007V\u0002\u0002\u03e0", | |
"\u00a8\u0003\u0002\u0002\u0002\u03e1\u03e2\u0007K\u0002\u0002\u03e2", | |
"\u03e3\u0007P\u0002\u0002\u03e3\u03e4\u0007V\u0002\u0002\u03e4\u03e5", | |
"\u0007G\u0002\u0002\u03e5\u03e6\u0007T\u0002\u0002\u03e6\u03e7\u0007", | |
"U\u0002\u0002\u03e7\u03e8\u0007G\u0002\u0002\u03e8\u03e9\u0007E\u0002", | |
"\u0002\u03e9\u03ea\u0007V\u0002\u0002\u03ea\u00aa\u0003\u0002\u0002", | |
"\u0002\u03eb\u03ec\u0007K\u0002\u0002\u03ec\u03ed\u0007P\u0002\u0002", | |
"\u03ed\u03ee\u0007V\u0002\u0002\u03ee\u03ef\u0007G\u0002\u0002\u03ef", | |
"\u03f0\u0007T\u0002\u0002\u03f0\u03f1\u0007X\u0002\u0002\u03f1\u03f2", | |
"\u0007C\u0002\u0002\u03f2\u03f3\u0007N\u0002\u0002\u03f3\u00ac\u0003", | |
"\u0002\u0002\u0002\u03f4\u03f5\u0007K\u0002\u0002\u03f5\u03f6\u0007", | |
"P\u0002\u0002\u03f6\u03f7\u0007V\u0002\u0002\u03f7\u03f8\u0007Q\u0002", | |
"\u0002\u03f8\u00ae\u0003\u0002\u0002\u0002\u03f9\u03fa\u0007K\u0002", | |
"\u0002\u03fa\u03fb\u0007Q\u0002\u0002\u03fb\u00b0\u0003\u0002\u0002", | |
"\u0002\u03fc\u03fd\u0007K\u0002\u0002\u03fd\u03fe\u0007U\u0002\u0002", | |
"\u03fe\u00b2\u0003\u0002\u0002\u0002\u03ff\u0400\u0007K\u0002\u0002", | |
"\u0400\u0401\u0007U\u0002\u0002\u0401\u0402\u0007Q\u0002\u0002\u0402", | |
"\u0403\u0007N\u0002\u0002\u0403\u0404\u0007C\u0002\u0002\u0404\u0405", | |
"\u0007V\u0002\u0002\u0405\u0406\u0007K\u0002\u0002\u0406\u0407\u0007", | |
"Q\u0002\u0002\u0407\u0408\u0007P\u0002\u0002\u0408\u00b4\u0003\u0002", | |
"\u0002\u0002\u0409\u040a\u0007L\u0002\u0002\u040a\u040b\u0007U\u0002", | |
"\u0002\u040b\u040c\u0007Q\u0002\u0002\u040c\u040d\u0007P\u0002\u0002", | |
"\u040d\u00b6\u0003\u0002\u0002\u0002\u040e\u040f\u0007L\u0002\u0002", | |
"\u040f\u0410\u0007Q\u0002\u0002\u0410\u0411\u0007K\u0002\u0002\u0411", | |
"\u0412\u0007P\u0002\u0002\u0412\u00b8\u0003\u0002\u0002\u0002\u0413", | |
"\u0414\u0007N\u0002\u0002\u0414\u0415\u0007C\u0002\u0002\u0415\u0416", | |
"\u0007U\u0002\u0002\u0416\u0417\u0007V\u0002\u0002\u0417\u00ba\u0003", | |
"\u0002\u0002\u0002\u0418\u0419\u0007N\u0002\u0002\u0419\u041a\u0007", | |
"C\u0002\u0002\u041a\u041b\u0007V\u0002\u0002\u041b\u041c\u0007G\u0002", | |
"\u0002\u041c\u041d\u0007T\u0002\u0002\u041d\u041e\u0007C\u0002\u0002", | |
"\u041e\u041f\u0007N\u0002\u0002\u041f\u00bc\u0003\u0002\u0002\u0002", | |
"\u0420\u0421\u0007N\u0002\u0002\u0421\u0422\u0007G\u0002\u0002\u0422", | |
"\u0423\u0007H\u0002\u0002\u0423\u0424\u0007V\u0002\u0002\u0424\u00be", | |
"\u0003\u0002\u0002\u0002\u0425\u0426\u0007N\u0002\u0002\u0426\u0427", | |
"\u0007G\u0002\u0002\u0427\u0428\u0007X\u0002\u0002\u0428\u0429\u0007", | |
"G\u0002\u0002\u0429\u042a\u0007N\u0002\u0002\u042a\u00c0\u0003\u0002", | |
"\u0002\u0002\u042b\u042c\u0007N\u0002\u0002\u042c\u042d\u0007K\u0002", | |
"\u0002\u042d\u042e\u0007M\u0002\u0002\u042e\u042f\u0007G\u0002\u0002", | |
"\u042f\u00c2\u0003\u0002\u0002\u0002\u0430\u0431\u0007N\u0002\u0002", | |
"\u0431\u0432\u0007K\u0002\u0002\u0432\u0433\u0007O\u0002\u0002\u0433", | |
"\u0434\u0007K\u0002\u0002\u0434\u0435\u0007V\u0002\u0002\u0435\u00c4", | |
"\u0003\u0002\u0002\u0002\u0436\u0437\u0007N\u0002\u0002\u0437\u0438", | |
"\u0007Q\u0002\u0002\u0438\u0439\u0007E\u0002\u0002\u0439\u043a\u0007", | |
"C\u0002\u0002\u043a\u043b\u0007N\u0002\u0002\u043b\u043c\u0007V\u0002", | |
"\u0002\u043c\u043d\u0007K\u0002\u0002\u043d\u043e\u0007O\u0002\u0002", | |
"\u043e\u043f\u0007G\u0002\u0002\u043f\u00c6\u0003\u0002\u0002\u0002", | |
"\u0440\u0441\u0007N\u0002\u0002\u0441\u0442\u0007Q\u0002\u0002\u0442", | |
"\u0443\u0007E\u0002\u0002\u0443\u0444\u0007C\u0002\u0002\u0444\u0445", | |
"\u0007N\u0002\u0002\u0445\u0446\u0007V\u0002\u0002\u0446\u0447\u0007", | |
"K\u0002\u0002\u0447\u0448\u0007O\u0002\u0002\u0448\u0449\u0007G\u0002", | |
"\u0002\u0449\u044a\u0007U\u0002\u0002\u044a\u044b\u0007V\u0002\u0002", | |
"\u044b\u044c\u0007C\u0002\u0002\u044c\u044d\u0007O\u0002\u0002\u044d", | |
"\u044e\u0007R\u0002\u0002\u044e\u00c8\u0003\u0002\u0002\u0002\u044f", | |
"\u0450\u0007N\u0002\u0002\u0450\u0451\u0007Q\u0002\u0002\u0451\u0452", | |
"\u0007I\u0002\u0002\u0452\u0453\u0007K\u0002\u0002\u0453\u0454\u0007", | |
"E\u0002\u0002\u0454\u0455\u0007C\u0002\u0002\u0455\u0456\u0007N\u0002", | |
"\u0002\u0456\u00ca\u0003\u0002\u0002\u0002\u0457\u0458\u0007O\u0002", | |
"\u0002\u0458\u0459\u0007C\u0002\u0002\u0459\u045a\u0007R\u0002\u0002", | |
"\u045a\u00cc\u0003\u0002\u0002\u0002\u045b\u045c\u0007O\u0002\u0002", | |
"\u045c\u045d\u0007K\u0002\u0002\u045d\u045e\u0007P\u0002\u0002\u045e", | |
"\u045f\u0007W\u0002\u0002\u045f\u0460\u0007V\u0002\u0002\u0460\u0461", | |
"\u0007G\u0002\u0002\u0461\u00ce\u0003\u0002\u0002\u0002\u0462\u0463", | |
"\u0007O\u0002\u0002\u0463\u0464\u0007Q\u0002\u0002\u0464\u0465\u0007", | |
"P\u0002\u0002\u0465\u0466\u0007V\u0002\u0002\u0466\u0467\u0007J\u0002", | |
"\u0002\u0467\u00d0\u0003\u0002\u0002\u0002\u0468\u0469\u0007P\u0002", | |
"\u0002\u0469\u046a\u0007C\u0002\u0002\u046a\u046b\u0007V\u0002\u0002", | |
"\u046b\u046c\u0007W\u0002\u0002\u046c\u046d\u0007T\u0002\u0002\u046d", | |
"\u046e\u0007C\u0002\u0002\u046e\u046f\u0007N\u0002\u0002\u046f\u00d2", | |
"\u0003\u0002\u0002\u0002\u0470\u0471\u0007P\u0002\u0002\u0471\u0472", | |
"\u0007H\u0002\u0002\u0472\u0473\u0007E\u0002\u0002\u0473\u00d4\u0003", | |
"\u0002\u0002\u0002\u0474\u0475\u0007P\u0002\u0002\u0475\u0476\u0007", | |
"H\u0002\u0002\u0476\u0477\u0007F\u0002\u0002\u0477\u00d6\u0003\u0002", | |
"\u0002\u0002\u0478\u0479\u0007P\u0002\u0002\u0479\u047a\u0007H\u0002", | |
"\u0002\u047a\u047b\u0007M\u0002\u0002\u047b\u047c\u0007E\u0002\u0002", | |
"\u047c\u00d8\u0003\u0002\u0002\u0002\u047d\u047e\u0007P\u0002\u0002", | |
"\u047e\u047f\u0007H\u0002\u0002\u047f\u0480\u0007M\u0002\u0002\u0480", | |
"\u0481\u0007F\u0002\u0002\u0481\u00da\u0003\u0002\u0002\u0002\u0482", | |
"\u0483\u0007P\u0002\u0002\u0483\u0484\u0007Q\u0002\u0002\u0484\u00dc", | |
"\u0003\u0002\u0002\u0002\u0485\u0486\u0007P\u0002\u0002\u0486\u0487", | |
"\u0007Q\u0002\u0002\u0487\u0488\u0007T\u0002\u0002\u0488\u0489\u0007", | |
"O\u0002\u0002\u0489\u048a\u0007C\u0002\u0002\u048a\u048b\u0007N\u0002", | |
"\u0002\u048b\u048c\u0007K\u0002\u0002\u048c\u048d\u0007\\\u0002\u0002", | |
"\u048d\u048e\u0007G\u0002\u0002\u048e\u00de\u0003\u0002\u0002\u0002", | |
"\u048f\u0490\u0007P\u0002\u0002\u0490\u0491\u0007Q\u0002\u0002\u0491", | |
"\u0492\u0007V\u0002\u0002\u0492\u00e0\u0003\u0002\u0002\u0002\u0493", | |
"\u0494\u0007P\u0002\u0002\u0494\u0495\u0007W\u0002\u0002\u0495\u0496", | |
"\u0007N\u0002\u0002\u0496\u0497\u0007N\u0002\u0002\u0497\u00e2\u0003", | |
"\u0002\u0002\u0002\u0498\u0499\u0007P\u0002\u0002\u0499\u049a\u0007", | |
"W\u0002\u0002\u049a\u049b\u0007N\u0002\u0002\u049b\u049c\u0007N\u0002", | |
"\u0002\u049c\u049d\u0007K\u0002\u0002\u049d\u049e\u0007H\u0002\u0002", | |
"\u049e\u00e4\u0003\u0002\u0002\u0002\u049f\u04a0\u0007P\u0002\u0002", | |
"\u04a0\u04a1\u0007W\u0002\u0002\u04a1\u04a2\u0007N\u0002\u0002\u04a2", | |
"\u04a3\u0007N\u0002\u0002\u04a3\u04a4\u0007U\u0002\u0002\u04a4\u00e6", | |
"\u0003\u0002\u0002\u0002\u04a5\u04a6\u0007Q\u0002\u0002\u04a6\u04a7", | |
"\u0007P\u0002\u0002\u04a7\u00e8\u0003\u0002\u0002\u0002\u04a8\u04a9", | |
"\u0007Q\u0002\u0002\u04a9\u04aa\u0007P\u0002\u0002\u04aa\u04ab\u0007", | |
"N\u0002\u0002\u04ab\u04ac\u0007[\u0002\u0002\u04ac\u00ea\u0003\u0002", | |
"\u0002\u0002\u04ad\u04ae\u0007Q\u0002\u0002\u04ae\u04af\u0007R\u0002", | |
"\u0002\u04af\u04b0\u0007V\u0002\u0002\u04b0\u04b1\u0007K\u0002\u0002", | |
"\u04b1\u04b2\u0007Q\u0002\u0002\u04b2\u04b3\u0007P\u0002\u0002\u04b3", | |
"\u00ec\u0003\u0002\u0002\u0002\u04b4\u04b5\u0007Q\u0002\u0002\u04b5", | |
"\u04b6\u0007T\u0002\u0002\u04b6\u00ee\u0003\u0002\u0002\u0002\u04b7", | |
"\u04b8\u0007Q\u0002\u0002\u04b8\u04b9\u0007T\u0002\u0002\u04b9\u04ba", | |
"\u0007F\u0002\u0002\u04ba\u04bb\u0007G\u0002\u0002\u04bb\u04bc\u0007", | |
"T\u0002\u0002\u04bc\u00f0\u0003\u0002\u0002\u0002\u04bd\u04be\u0007", | |
"Q\u0002\u0002\u04be\u04bf\u0007T\u0002\u0002\u04bf\u04c0\u0007F\u0002", | |
"\u0002\u04c0\u04c1\u0007K\u0002\u0002\u04c1\u04c2\u0007P\u0002\u0002", | |
"\u04c2\u04c3\u0007C\u0002\u0002\u04c3\u04c4\u0007N\u0002\u0002\u04c4", | |
"\u04c5\u0007K\u0002\u0002\u04c5\u04c6\u0007V\u0002\u0002\u04c6\u04c7", | |
"\u0007[\u0002\u0002\u04c7\u00f2\u0003\u0002\u0002\u0002\u04c8\u04c9", | |
"\u0007Q\u0002\u0002\u04c9\u04ca\u0007W\u0002\u0002\u04ca\u04cb\u0007", | |
"V\u0002\u0002\u04cb\u04cc\u0007G\u0002\u0002\u04cc\u04cd\u0007T\u0002", | |
"\u0002\u04cd\u00f4\u0003\u0002\u0002\u0002\u04ce\u04cf\u0007Q\u0002", | |
"\u0002\u04cf\u04d0\u0007W\u0002\u0002\u04d0\u04d1\u0007V\u0002\u0002", | |
"\u04d1\u04d2\u0007R\u0002\u0002\u04d2\u04d3\u0007W\u0002\u0002\u04d3", | |
"\u04d4\u0007V\u0002\u0002\u04d4\u00f6\u0003\u0002\u0002\u0002\u04d5", | |
"\u04d6\u0007Q\u0002\u0002\u04d6\u04d7\u0007X\u0002\u0002\u04d7\u04d8", | |
"\u0007G\u0002\u0002\u04d8\u04d9\u0007T\u0002\u0002\u04d9\u00f8\u0003", | |
"\u0002\u0002\u0002\u04da\u04db\u0007R\u0002\u0002\u04db\u04dc\u0007", | |
"C\u0002\u0002\u04dc\u04dd\u0007T\u0002\u0002\u04dd\u04de\u0007V\u0002", | |
"\u0002\u04de\u04df\u0007K\u0002\u0002\u04df\u04e0\u0007V\u0002\u0002", | |
"\u04e0\u04e1\u0007K\u0002\u0002\u04e1\u04e2\u0007Q\u0002\u0002\u04e2", | |
"\u04e3\u0007P\u0002\u0002\u04e3\u00fa\u0003\u0002\u0002\u0002\u04e4", | |
"\u04e5\u0007R\u0002\u0002\u04e5\u04e6\u0007C\u0002\u0002\u04e6\u04e7", | |
"\u0007T\u0002\u0002\u04e7\u04e8\u0007V\u0002\u0002\u04e8\u04e9\u0007", | |
"K\u0002\u0002\u04e9\u04ea\u0007V\u0002\u0002\u04ea\u04eb\u0007K\u0002", | |
"\u0002\u04eb\u04ec\u0007Q\u0002\u0002\u04ec\u04ed\u0007P\u0002\u0002", | |
"\u04ed\u04ee\u0007U\u0002\u0002\u04ee\u00fc\u0003\u0002\u0002\u0002", | |
"\u04ef\u04f0\u0007R\u0002\u0002\u04f0\u04f1\u0007C\u0002\u0002\u04f1", | |
"\u04f2\u0007V\u0002\u0002\u04f2\u04f3\u0007J\u0002\u0002\u04f3\u00fe", | |
"\u0003\u0002\u0002\u0002\u04f4\u04f5\u0007R\u0002\u0002\u04f5\u04f6", | |
"\u0007Q\u0002\u0002\u04f6\u04f7\u0007U\u0002\u0002\u04f7\u04f8\u0007", | |
"K\u0002\u0002\u04f8\u04f9\u0007V\u0002\u0002\u04f9\u04fa\u0007K\u0002", | |
"\u0002\u04fa\u04fb\u0007Q\u0002\u0002\u04fb\u04fc\u0007P\u0002\u0002", | |
"\u04fc\u0100\u0003\u0002\u0002\u0002\u04fd\u04fe\u0007R\u0002\u0002", | |
"\u04fe\u04ff\u0007T\u0002\u0002\u04ff\u0500\u0007G\u0002\u0002\u0500", | |
"\u0501\u0007E\u0002\u0002\u0501\u0502\u0007G\u0002\u0002\u0502\u0503", | |
"\u0007F\u0002\u0002\u0503\u0504\u0007K\u0002\u0002\u0504\u0505\u0007", | |
"P\u0002\u0002\u0505\u0506\u0007I\u0002\u0002\u0506\u0102\u0003\u0002", | |
"\u0002\u0002\u0507\u0508\u0007R\u0002\u0002\u0508\u0509\u0007T\u0002", | |
"\u0002\u0509\u050a\u0007G\u0002\u0002\u050a\u050b\u0007R\u0002\u0002", | |
"\u050b\u050c\u0007C\u0002\u0002\u050c\u050d\u0007T\u0002\u0002\u050d", | |
"\u050e\u0007G\u0002\u0002\u050e\u0104\u0003\u0002\u0002\u0002\u050f", | |
"\u0510\u0007R\u0002\u0002\u0510\u0511\u0007T\u0002\u0002\u0511\u0512", | |
"\u0007K\u0002\u0002\u0512\u0513\u0007X\u0002\u0002\u0513\u0514\u0007", | |
"K\u0002\u0002\u0514\u0515\u0007N\u0002\u0002\u0515\u0516\u0007G\u0002", | |
"\u0002\u0516\u0517\u0007I\u0002\u0002\u0517\u0518\u0007G\u0002\u0002", | |
"\u0518\u0519\u0007U\u0002\u0002\u0519\u0106\u0003\u0002\u0002\u0002", | |
"\u051a\u051b\u0007R\u0002\u0002\u051b\u051c\u0007T\u0002\u0002\u051c", | |
"\u051d\u0007Q\u0002\u0002\u051d\u051e\u0007R\u0002\u0002\u051e\u051f", | |
"\u0007G\u0002\u0002\u051f\u0520\u0007T\u0002\u0002\u0520\u0521\u0007", | |
"V\u0002\u0002\u0521\u0522\u0007K\u0002\u0002\u0522\u0523\u0007G\u0002", | |
"\u0002\u0523\u0524\u0007U\u0002\u0002\u0524\u0108\u0003\u0002\u0002", | |
"\u0002\u0525\u0526\u0007R\u0002\u0002\u0526\u0527\u0007W\u0002\u0002", | |
"\u0527\u0528\u0007D\u0002\u0002\u0528\u0529\u0007N\u0002\u0002\u0529", | |
"\u052a\u0007K\u0002\u0002\u052a\u052b\u0007E\u0002\u0002\u052b\u010a", | |
"\u0003\u0002\u0002\u0002\u052c\u052d\u0007T\u0002\u0002\u052d\u052e", | |
"\u0007C\u0002\u0002\u052e\u052f\u0007P\u0002\u0002\u052f\u0530\u0007", | |
"I\u0002\u0002\u0530\u0531\u0007G\u0002\u0002\u0531\u010c\u0003\u0002", | |
"\u0002\u0002\u0532\u0533\u0007T\u0002\u0002\u0533\u0534\u0007G\u0002", | |
"\u0002\u0534\u0535\u0007C\u0002\u0002\u0535\u0536\u0007F\u0002\u0002", | |
"\u0536\u010e\u0003\u0002\u0002\u0002\u0537\u0538\u0007T\u0002\u0002", | |
"\u0538\u0539\u0007G\u0002\u0002\u0539\u053a\u0007E\u0002\u0002\u053a", | |
"\u053b\u0007W\u0002\u0002\u053b\u053c\u0007T\u0002\u0002\u053c\u053d", | |
"\u0007U\u0002\u0002\u053d\u053e\u0007K\u0002\u0002\u053e\u053f\u0007", | |
"X\u0002\u0002\u053f\u0540\u0007G\u0002\u0002\u0540\u0110\u0003\u0002", | |
"\u0002\u0002\u0541\u0542\u0007T\u0002\u0002\u0542\u0543\u0007G\u0002", | |
"\u0002\u0543\u0544\u0007P\u0002\u0002\u0544\u0545\u0007C\u0002\u0002", | |
"\u0545\u0546\u0007O\u0002\u0002\u0546\u0547\u0007G\u0002\u0002\u0547", | |
"\u0112\u0003\u0002\u0002\u0002\u0548\u0549\u0007T\u0002\u0002\u0549", | |
"\u054a\u0007G\u0002\u0002\u054a\u054b\u0007R\u0002\u0002\u054b\u054c", | |
"\u0007G\u0002\u0002\u054c\u054d\u0007C\u0002\u0002\u054d\u054e\u0007", | |
"V\u0002\u0002\u054e\u054f\u0007C\u0002\u0002\u054f\u0550\u0007D\u0002", | |
"\u0002\u0550\u0551\u0007N\u0002\u0002\u0551\u0552\u0007G\u0002\u0002", | |
"\u0552\u0114\u0003\u0002\u0002\u0002\u0553\u0554\u0007T\u0002\u0002", | |
"\u0554\u0555\u0007G\u0002\u0002\u0555\u0556\u0007R\u0002\u0002\u0556", | |
"\u0557\u0007N\u0002\u0002\u0557\u0558\u0007C\u0002\u0002\u0558\u0559", | |
"\u0007E\u0002\u0002\u0559\u055a\u0007G\u0002\u0002\u055a\u0116\u0003", | |
"\u0002\u0002\u0002\u055b\u055c\u0007T\u0002\u0002\u055c\u055d\u0007", | |
"G\u0002\u0002\u055d\u055e\u0007U\u0002\u0002\u055e\u055f\u0007G\u0002", | |
"\u0002\u055f\u0560\u0007V\u0002\u0002\u0560\u0118\u0003\u0002\u0002", | |
"\u0002\u0561\u0562\u0007T\u0002\u0002\u0562\u0563\u0007G\u0002\u0002", | |
"\u0563\u0564\u0007U\u0002\u0002\u0564\u0565\u0007V\u0002\u0002\u0565", | |
"\u0566\u0007T\u0002\u0002\u0566\u0567\u0007K\u0002\u0002\u0567\u0568", | |
"\u0007E\u0002\u0002\u0568\u0569\u0007V\u0002\u0002\u0569\u011a\u0003", | |
"\u0002\u0002\u0002\u056a\u056b\u0007T\u0002\u0002\u056b\u056c\u0007", | |
"G\u0002\u0002\u056c\u056d\u0007X\u0002\u0002\u056d\u056e\u0007Q\u0002", | |
"\u0002\u056e\u056f\u0007M\u0002\u0002\u056f\u0570\u0007G\u0002\u0002", | |
"\u0570\u011c\u0003\u0002\u0002\u0002\u0571\u0572\u0007T\u0002\u0002", | |
"\u0572\u0573\u0007K\u0002\u0002\u0573\u0574\u0007I\u0002\u0002\u0574", | |
"\u0575\u0007J\u0002\u0002\u0575\u0576\u0007V\u0002\u0002\u0576\u011e", | |
"\u0003\u0002\u0002\u0002\u0577\u0578\u0007T\u0002\u0002\u0578\u0579", | |
"\u0007Q\u0002\u0002\u0579\u057a\u0007N\u0002\u0002\u057a\u057b\u0007", | |
"N\u0002\u0002\u057b\u057c\u0007D\u0002\u0002\u057c\u057d\u0007C\u0002", | |
"\u0002\u057d\u057e\u0007E\u0002\u0002\u057e\u057f\u0007M\u0002\u0002", | |
"\u057f\u0120\u0003\u0002\u0002\u0002\u0580\u0581\u0007T\u0002\u0002", | |
"\u0581\u0582\u0007Q\u0002\u0002\u0582\u0583\u0007N\u0002\u0002\u0583", | |
"\u0584\u0007N\u0002\u0002\u0584\u0585\u0007W\u0002\u0002\u0585\u0586", | |
"\u0007R\u0002\u0002\u0586\u0122\u0003\u0002\u0002\u0002\u0587\u0588", | |
"\u0007T\u0002\u0002\u0588\u0589\u0007Q\u0002\u0002\u0589\u058a\u0007", | |
"Y\u0002\u0002\u058a\u0124\u0003\u0002\u0002\u0002\u058b\u058c\u0007", | |
"T\u0002\u0002\u058c\u058d\u0007Q\u0002\u0002\u058d\u058e\u0007Y\u0002", | |
"\u0002\u058e\u058f\u0007U\u0002\u0002\u058f\u0126\u0003\u0002\u0002", | |
"\u0002\u0590\u0591\u0007U\u0002\u0002\u0591\u0592\u0007E\u0002\u0002", | |
"\u0592\u0593\u0007J\u0002\u0002\u0593\u0594\u0007G\u0002\u0002\u0594", | |
"\u0595\u0007O\u0002\u0002\u0595\u0596\u0007C\u0002\u0002\u0596\u0128", | |
"\u0003\u0002\u0002\u0002\u0597\u0598\u0007U\u0002\u0002\u0598\u0599", | |
"\u0007E\u0002\u0002\u0599\u059a\u0007J\u0002\u0002\u059a\u059b\u0007", | |
"G\u0002\u0002\u059b\u059c\u0007O\u0002\u0002\u059c\u059d\u0007C\u0002", | |
"\u0002\u059d\u059e\u0007U\u0002\u0002\u059e\u012a\u0003\u0002\u0002", | |
"\u0002\u059f\u05a0\u0007U\u0002\u0002\u05a0\u05a1\u0007G\u0002\u0002", | |
"\u05a1\u05a2\u0007E\u0002\u0002\u05a2\u05a3\u0007Q\u0002\u0002\u05a3", | |
"\u05a4\u0007P\u0002\u0002\u05a4\u05a5\u0007F\u0002\u0002\u05a5\u012c", | |
"\u0003\u0002\u0002\u0002\u05a6\u05a7\u0007U\u0002\u0002\u05a7\u05a8", | |
"\u0007G\u0002\u0002\u05a8\u05a9\u0007N\u0002\u0002\u05a9\u05aa\u0007", | |
"G\u0002\u0002\u05aa\u05ab\u0007E\u0002\u0002\u05ab\u05ac\u0007V\u0002", | |
"\u0002\u05ac\u012e\u0003\u0002\u0002\u0002\u05ad\u05ae\u0007U\u0002", | |
"\u0002\u05ae\u05af\u0007G\u0002\u0002\u05af\u05b0\u0007T\u0002\u0002", | |
"\u05b0\u05b1\u0007K\u0002\u0002\u05b1\u05b2\u0007C\u0002\u0002\u05b2", | |
"\u05b3\u0007N\u0002\u0002\u05b3\u05b4\u0007K\u0002\u0002\u05b4\u05b5", | |
"\u0007\\\u0002\u0002\u05b5\u05b6\u0007C\u0002\u0002\u05b6\u05b7\u0007", | |
"D\u0002\u0002\u05b7\u05b8\u0007N\u0002\u0002\u05b8\u05b9\u0007G\u0002", | |
"\u0002\u05b9\u0130\u0003\u0002\u0002\u0002\u05ba\u05bb\u0007U\u0002", | |
"\u0002\u05bb\u05bc\u0007G\u0002\u0002\u05bc\u05bd\u0007U\u0002\u0002", | |
"\u05bd\u05be\u0007U\u0002\u0002\u05be\u05bf\u0007K\u0002\u0002\u05bf", | |
"\u05c0\u0007Q\u0002\u0002\u05c0\u05c1\u0007P\u0002\u0002\u05c1\u0132", | |
"\u0003\u0002\u0002\u0002\u05c2\u05c3\u0007U\u0002\u0002\u05c3\u05c4", | |
"\u0007G\u0002\u0002\u05c4\u05c5\u0007V\u0002\u0002\u05c5\u0134\u0003", | |
"\u0002\u0002\u0002\u05c6\u05c7\u0007U\u0002\u0002\u05c7\u05c8\u0007", | |
"G\u0002\u0002\u05c8\u05c9\u0007V\u0002\u0002\u05c9\u05ca\u0007U\u0002", | |
"\u0002\u05ca\u0136\u0003\u0002\u0002\u0002\u05cb\u05cc\u0007U\u0002", | |
"\u0002\u05cc\u05cd\u0007J\u0002\u0002\u05cd\u05ce\u0007Q\u0002\u0002", | |
"\u05ce\u05cf\u0007Y\u0002\u0002\u05cf\u0138\u0003\u0002\u0002\u0002", | |
"\u05d0\u05d1\u0007U\u0002\u0002\u05d1\u05d2\u0007Q\u0002\u0002\u05d2", | |
"\u05d3\u0007O\u0002\u0002\u05d3\u05d4\u0007G\u0002\u0002\u05d4\u013a", | |
"\u0003\u0002\u0002\u0002\u05d5\u05d6\u0007U\u0002\u0002\u05d6\u05d7", | |
"\u0007V\u0002\u0002\u05d7\u05d8\u0007C\u0002\u0002\u05d8\u05d9\u0007", | |
"T\u0002\u0002\u05d9\u05da\u0007V\u0002\u0002\u05da\u013c\u0003\u0002", | |
"\u0002\u0002\u05db\u05dc\u0007U\u0002\u0002\u05dc\u05dd\u0007V\u0002", | |
"\u0002\u05dd\u05de\u0007C\u0002\u0002\u05de\u05df\u0007V\u0002\u0002", | |
"\u05df\u05e0\u0007U\u0002\u0002\u05e0\u013e\u0003\u0002\u0002\u0002", | |
"\u05e1\u05e2\u0007U\u0002\u0002\u05e2\u05e3\u0007W\u0002\u0002\u05e3", | |
"\u05e4\u0007D\u0002\u0002\u05e4\u05e5\u0007U\u0002\u0002\u05e5\u05e6", | |
"\u0007V\u0002\u0002\u05e6\u05e7\u0007T\u0002\u0002\u05e7\u05e8\u0007", | |
"K\u0002\u0002\u05e8\u05e9\u0007P\u0002\u0002\u05e9\u05ea\u0007I\u0002", | |
"\u0002\u05ea\u0140\u0003\u0002\u0002\u0002\u05eb\u05ec\u0007U\u0002", | |
"\u0002\u05ec\u05ed\u0007[\u0002\u0002\u05ed\u05ee\u0007U\u0002\u0002", | |
"\u05ee\u05ef\u0007V\u0002\u0002\u05ef\u05f0\u0007G\u0002\u0002\u05f0", | |
"\u05f1\u0007O\u0002\u0002\u05f1\u0142\u0003\u0002\u0002\u0002\u05f2", | |
"\u05f3\u0007V\u0002\u0002\u05f3\u05f4\u0007C\u0002\u0002\u05f4\u05f5", | |
"\u0007D\u0002\u0002\u05f5\u05f6\u0007N\u0002\u0002\u05f6\u05f7\u0007", | |
"G\u0002\u0002\u05f7\u0144\u0003\u0002\u0002\u0002\u05f8\u05f9\u0007", | |
"V\u0002\u0002\u05f9\u05fa\u0007C\u0002\u0002\u05fa\u05fb\u0007D\u0002", | |
"\u0002\u05fb\u05fc\u0007N\u0002\u0002\u05fc\u05fd\u0007G\u0002\u0002", | |
"\u05fd\u05fe\u0007U\u0002\u0002\u05fe\u0146\u0003\u0002\u0002\u0002", | |
"\u05ff\u0600\u0007V\u0002\u0002\u0600\u0601\u0007C\u0002\u0002\u0601", | |
"\u0602\u0007D\u0002\u0002\u0602\u0603\u0007N\u0002\u0002\u0603\u0604", | |
"\u0007G\u0002\u0002\u0604\u0605\u0007U\u0002\u0002\u0605\u0606\u0007", | |
"C\u0002\u0002\u0606\u0607\u0007O\u0002\u0002\u0607\u0608\u0007R\u0002", | |
"\u0002\u0608\u0609\u0007N\u0002\u0002\u0609\u060a\u0007G\u0002\u0002", | |
"\u060a\u0148\u0003\u0002\u0002\u0002\u060b\u060c\u0007V\u0002\u0002", | |
"\u060c\u060d\u0007G\u0002\u0002\u060d\u060e\u0007Z\u0002\u0002\u060e", | |
"\u060f\u0007V\u0002\u0002\u060f\u014a\u0003\u0002\u0002\u0002\u0610", | |
"\u0611\u0007V\u0002\u0002\u0611\u0612\u0007J\u0002\u0002\u0612\u0613", | |
"\u0007G\u0002\u0002\u0613\u0614\u0007P\u0002\u0002\u0614\u014c\u0003", | |
"\u0002\u0002\u0002\u0615\u0616\u0007V\u0002\u0002\u0616\u0617\u0007", | |
"K\u0002\u0002\u0617\u0618\u0007O\u0002\u0002\u0618\u0619\u0007G\u0002", | |
"\u0002\u0619\u014e\u0003\u0002\u0002\u0002\u061a\u061b\u0007V\u0002", | |
"\u0002\u061b\u061c\u0007K\u0002\u0002\u061c\u061d\u0007O\u0002\u0002", | |
"\u061d\u061e\u0007G\u0002\u0002\u061e\u061f\u0007U\u0002\u0002\u061f", | |
"\u0620\u0007V\u0002\u0002\u0620\u0621\u0007C\u0002\u0002\u0621\u0622", | |
"\u0007O\u0002\u0002\u0622\u0623\u0007R\u0002\u0002\u0623\u0150\u0003", | |
"\u0002\u0002\u0002\u0624\u0625\u0007V\u0002\u0002\u0625\u0626\u0007", | |
"Q\u0002\u0002\u0626\u0152\u0003\u0002\u0002\u0002\u0627\u0628\u0007", | |
"V\u0002\u0002\u0628\u0629\u0007T\u0002\u0002\u0629\u062a\u0007C\u0002", | |
"\u0002\u062a\u062b\u0007P\u0002\u0002\u062b\u062c\u0007U\u0002\u0002", | |
"\u062c\u062d\u0007C\u0002\u0002\u062d\u062e\u0007E\u0002\u0002\u062e", | |
"\u062f\u0007V\u0002\u0002\u062f\u0630\u0007K\u0002\u0002\u0630\u0631", | |
"\u0007Q\u0002\u0002\u0631\u0632\u0007P\u0002\u0002\u0632\u0154\u0003", | |
"\u0002\u0002\u0002\u0633\u0634\u0007V\u0002\u0002\u0634\u0635\u0007", | |
"T\u0002\u0002\u0635\u0636\u0007W\u0002\u0002\u0636\u0637\u0007G\u0002", | |
"\u0002\u0637\u0156\u0003\u0002\u0002\u0002\u0638\u0639\u0007V\u0002", | |
"\u0002\u0639\u063a\u0007T\u0002\u0002\u063a\u063b\u0007[\u0002\u0002", | |
"\u063b\u063c\u0007a\u0002\u0002\u063c\u063d\u0007E\u0002\u0002\u063d", | |
"\u063e\u0007C\u0002\u0002\u063e\u063f\u0007U\u0002\u0002\u063f\u0640", | |
"\u0007V\u0002\u0002\u0640\u0158\u0003\u0002\u0002\u0002\u0641\u0642", | |
"\u0007V\u0002\u0002\u0642\u0643\u0007[\u0002\u0002\u0643\u0644\u0007", | |
"R\u0002\u0002\u0644\u0645\u0007G\u0002\u0002\u0645\u015a\u0003\u0002", | |
"\u0002\u0002\u0646\u0647\u0007W\u0002\u0002\u0647\u0648\u0007G\u0002", | |
"\u0002\u0648\u0649\u0007U\u0002\u0002\u0649\u064a\u0007E\u0002\u0002", | |
"\u064a\u064b\u0007C\u0002\u0002\u064b\u064c\u0007R\u0002\u0002\u064c", | |
"\u064d\u0007G\u0002\u0002\u064d\u015c\u0003\u0002\u0002\u0002\u064e", | |
"\u064f\u0007W\u0002\u0002\u064f\u0650\u0007P\u0002\u0002\u0650\u0651", | |
"\u0007D\u0002\u0002\u0651\u0652\u0007Q\u0002\u0002\u0652\u0653\u0007", | |
"W\u0002\u0002\u0653\u0654\u0007P\u0002\u0002\u0654\u0655\u0007F\u0002", | |
"\u0002\u0655\u0656\u0007G\u0002\u0002\u0656\u0657\u0007F\u0002\u0002", | |
"\u0657\u015e\u0003\u0002\u0002\u0002\u0658\u0659\u0007W\u0002\u0002", | |
"\u0659\u065a\u0007P\u0002\u0002\u065a\u065b\u0007E\u0002\u0002\u065b", | |
"\u065c\u0007Q\u0002\u0002\u065c\u065d\u0007O\u0002\u0002\u065d\u065e", | |
"\u0007O\u0002\u0002\u065e\u065f\u0007K\u0002\u0002\u065f\u0660\u0007", | |
"V\u0002\u0002\u0660\u0661\u0007V\u0002\u0002\u0661\u0662\u0007G\u0002", | |
"\u0002\u0662\u0663\u0007F\u0002\u0002\u0663\u0160\u0003\u0002\u0002", | |
"\u0002\u0664\u0665\u0007W\u0002\u0002\u0665\u0666\u0007P\u0002\u0002", | |
"\u0666\u0667\u0007K\u0002\u0002\u0667\u0668\u0007Q\u0002\u0002\u0668", | |
"\u0669\u0007P\u0002\u0002\u0669\u0162\u0003\u0002\u0002\u0002\u066a", | |
"\u066b\u0007W\u0002\u0002\u066b\u066c\u0007P\u0002\u0002\u066c\u066d", | |
"\u0007P\u0002\u0002\u066d\u066e\u0007G\u0002\u0002\u066e\u066f\u0007", | |
"U\u0002\u0002\u066f\u0670\u0007V\u0002\u0002\u0670\u0164\u0003\u0002", | |
"\u0002\u0002\u0671\u0672\u0007W\u0002\u0002\u0672\u0673\u0007U\u0002", | |
"\u0002\u0673\u0674\u0007G\u0002\u0002\u0674\u0166\u0003\u0002\u0002", | |
"\u0002\u0675\u0676\u0007W\u0002\u0002\u0676\u0677\u0007U\u0002\u0002", | |
"\u0677\u0678\u0007K\u0002\u0002\u0678\u0679\u0007P\u0002\u0002\u0679", | |
"\u067a\u0007I\u0002\u0002\u067a\u0168\u0003\u0002\u0002\u0002\u067b", | |
"\u067c\u0007X\u0002\u0002\u067c\u067d\u0007C\u0002\u0002\u067d\u067e", | |
"\u0007N\u0002\u0002\u067e\u067f\u0007K\u0002\u0002\u067f\u0680\u0007", | |
"F\u0002\u0002\u0680\u0681\u0007C\u0002\u0002\u0681\u0682\u0007V\u0002", | |
"\u0002\u0682\u0683\u0007G\u0002\u0002\u0683\u016a\u0003\u0002\u0002", | |
"\u0002\u0684\u0685\u0007X\u0002\u0002\u0685\u0686\u0007C\u0002\u0002", | |
"\u0686\u0687\u0007N\u0002\u0002\u0687\u0688\u0007W\u0002\u0002\u0688", | |
"\u0689\u0007G\u0002\u0002\u0689\u068a\u0007U\u0002\u0002\u068a\u016c", | |
"\u0003\u0002\u0002\u0002\u068b\u068c\u0007X\u0002\u0002\u068c\u068d", | |
"\u0007G\u0002\u0002\u068d\u068e\u0007T\u0002\u0002\u068e\u068f\u0007", | |
"D\u0002\u0002\u068f\u0690\u0007Q\u0002\u0002\u0690\u0691\u0007U\u0002", | |
"\u0002\u0691\u0692\u0007G\u0002\u0002\u0692\u016e\u0003\u0002\u0002", | |
"\u0002\u0693\u0694\u0007X\u0002\u0002\u0694\u0695\u0007K\u0002\u0002", | |
"\u0695\u0696\u0007G\u0002\u0002\u0696\u0697\u0007Y\u0002\u0002\u0697", | |
"\u0170\u0003\u0002\u0002\u0002\u0698\u0699\u0007Y\u0002\u0002\u0699", | |
"\u069a\u0007J\u0002\u0002\u069a\u069b\u0007G\u0002\u0002\u069b\u069c", | |
"\u0007P\u0002\u0002\u069c\u0172\u0003\u0002\u0002\u0002\u069d\u069e", | |
"\u0007Y\u0002\u0002\u069e\u069f\u0007J\u0002\u0002\u069f\u06a0\u0007", | |
"G\u0002\u0002\u06a0\u06a1\u0007T\u0002\u0002\u06a1\u06a2\u0007G\u0002", | |
"\u0002\u06a2\u0174\u0003\u0002\u0002\u0002\u06a3\u06a4\u0007Y\u0002", | |
"\u0002\u06a4\u06a5\u0007K\u0002\u0002\u06a5\u06a6\u0007V\u0002\u0002", | |
"\u06a6\u06a7\u0007J\u0002\u0002\u06a7\u0176\u0003\u0002\u0002\u0002", | |
"\u06a8\u06a9\u0007Y\u0002\u0002\u06a9\u06aa\u0007Q\u0002\u0002\u06aa", | |
"\u06ab\u0007T\u0002\u0002\u06ab\u06ac\u0007M\u0002\u0002\u06ac\u0178", | |
"\u0003\u0002\u0002\u0002\u06ad\u06ae\u0007Y\u0002\u0002\u06ae\u06af", | |
"\u0007T\u0002\u0002\u06af\u06b0\u0007K\u0002\u0002\u06b0\u06b1\u0007", | |
"V\u0002\u0002\u06b1\u06b2\u0007G\u0002\u0002\u06b2\u017a\u0003\u0002", | |
"\u0002\u0002\u06b3\u06b4\u0007[\u0002\u0002\u06b4\u06b5\u0007G\u0002", | |
"\u0002\u06b5\u06b6\u0007C\u0002\u0002\u06b6\u06b7\u0007T\u0002\u0002", | |
"\u06b7\u017c\u0003\u0002\u0002\u0002\u06b8\u06b9\u0007\\\u0002\u0002", | |
"\u06b9\u06ba\u0007Q\u0002\u0002\u06ba\u06bb\u0007P\u0002\u0002\u06bb", | |
"\u06bc\u0007G\u0002\u0002\u06bc\u017e\u0003\u0002\u0002\u0002\u06bd", | |
"\u06be\u0007?\u0002\u0002\u06be\u0180\u0003\u0002\u0002\u0002\u06bf", | |
"\u06c0\u0007>\u0002\u0002\u06c0\u06c4\u0007@\u0002\u0002\u06c1\u06c2", | |
"\u0007#\u0002\u0002\u06c2\u06c4\u0007?\u0002\u0002\u06c3\u06bf\u0003", | |
"\u0002\u0002\u0002\u06c3\u06c1\u0003\u0002\u0002\u0002\u06c4\u0182\u0003", | |
"\u0002\u0002\u0002\u06c5\u06c6\u0007>\u0002\u0002\u06c6\u0184\u0003", | |
"\u0002\u0002\u0002\u06c7\u06c8\u0007>\u0002\u0002\u06c8\u06c9\u0007", | |
"?\u0002\u0002\u06c9\u0186\u0003\u0002\u0002\u0002\u06ca\u06cb\u0007", | |
"@\u0002\u0002\u06cb\u0188\u0003\u0002\u0002\u0002\u06cc\u06cd\u0007", | |
"@\u0002\u0002\u06cd\u06ce\u0007?\u0002\u0002\u06ce\u018a\u0003\u0002", | |
"\u0002\u0002\u06cf\u06d0\u0007-\u0002\u0002\u06d0\u018c\u0003\u0002", | |
"\u0002\u0002\u06d1\u06d2\u0007/\u0002\u0002\u06d2\u018e\u0003\u0002", | |
"\u0002\u0002\u06d3\u06d4\u0007,\u0002\u0002\u06d4\u0190\u0003\u0002", | |
"\u0002\u0002\u06d5\u06d6\u00071\u0002\u0002\u06d6\u0192\u0003\u0002", | |
"\u0002\u0002\u06d7\u06d8\u0007\'\u0002\u0002\u06d8\u0194\u0003\u0002", | |
"\u0002\u0002\u06d9\u06da\u0007~\u0002\u0002\u06da\u06db\u0007~\u0002", | |
"\u0002\u06db\u0196\u0003\u0002\u0002\u0002\u06dc\u06e2\u0007)\u0002", | |
"\u0002\u06dd\u06e1\n\u0002\u0002\u0002\u06de\u06df\u0007)\u0002\u0002", | |
"\u06df\u06e1\u0007)\u0002\u0002\u06e0\u06dd\u0003\u0002\u0002\u0002", | |
"\u06e0\u06de\u0003\u0002\u0002\u0002\u06e1\u06e4\u0003\u0002\u0002\u0002", | |
"\u06e2\u06e0\u0003\u0002\u0002\u0002\u06e2\u06e3\u0003\u0002\u0002\u0002", | |
"\u06e3\u06e5\u0003\u0002\u0002\u0002\u06e4\u06e2\u0003\u0002\u0002\u0002", | |
"\u06e5\u06e6\u0007)\u0002\u0002\u06e6\u0198\u0003\u0002\u0002\u0002", | |
"\u06e7\u06e8\u0007W\u0002\u0002\u06e8\u06e9\u0007(\u0002\u0002\u06e9", | |
"\u06ea\u0007)\u0002\u0002\u06ea\u06f0\u0003\u0002\u0002\u0002\u06eb", | |
"\u06ef\n\u0002\u0002\u0002\u06ec\u06ed\u0007)\u0002\u0002\u06ed\u06ef", | |
"\u0007)\u0002\u0002\u06ee\u06eb\u0003\u0002\u0002\u0002\u06ee\u06ec", | |
"\u0003\u0002\u0002\u0002\u06ef\u06f2\u0003\u0002\u0002\u0002\u06f0\u06ee", | |
"\u0003\u0002\u0002\u0002\u06f0\u06f1\u0003\u0002\u0002\u0002\u06f1\u06f3", | |
"\u0003\u0002\u0002\u0002\u06f2\u06f0\u0003\u0002\u0002\u0002\u06f3\u06f4", | |
"\u0007)\u0002\u0002\u06f4\u019a\u0003\u0002\u0002\u0002\u06f5\u06f6", | |
"\u0007Z\u0002\u0002\u06f6\u06f7\u0007)\u0002\u0002\u06f7\u06fb\u0003", | |
"\u0002\u0002\u0002\u06f8\u06fa\n\u0002\u0002\u0002\u06f9\u06f8\u0003", | |
"\u0002\u0002\u0002\u06fa\u06fd\u0003\u0002\u0002\u0002\u06fb\u06f9\u0003", | |
"\u0002\u0002\u0002\u06fb\u06fc\u0003\u0002\u0002\u0002\u06fc\u06fe\u0003", | |
"\u0002\u0002\u0002\u06fd\u06fb\u0003\u0002\u0002\u0002\u06fe\u06ff\u0007", | |
")\u0002\u0002\u06ff\u019c\u0003\u0002\u0002\u0002\u0700\u0702\u0005", | |
"\u01b3\u00da\u0002\u0701\u0700\u0003\u0002\u0002\u0002\u0702\u0703\u0003", | |
"\u0002\u0002\u0002\u0703\u0701\u0003\u0002\u0002\u0002\u0703\u0704\u0003", | |
"\u0002\u0002\u0002\u0704\u019e\u0003\u0002\u0002\u0002\u0705\u0707\u0005", | |
"\u01b3\u00da\u0002\u0706\u0705\u0003\u0002\u0002\u0002\u0707\u0708\u0003", | |
"\u0002\u0002\u0002\u0708\u0706\u0003\u0002\u0002\u0002\u0708\u0709\u0003", | |
"\u0002\u0002\u0002\u0709\u070a\u0003\u0002\u0002\u0002\u070a\u070e\u0007", | |
"0\u0002\u0002\u070b\u070d\u0005\u01b3\u00da\u0002\u070c\u070b\u0003", | |
"\u0002\u0002\u0002\u070d\u0710\u0003\u0002\u0002\u0002\u070e\u070c\u0003", | |
"\u0002\u0002\u0002\u070e\u070f\u0003\u0002\u0002\u0002\u070f\u0718\u0003", | |
"\u0002\u0002\u0002\u0710\u070e\u0003\u0002\u0002\u0002\u0711\u0713\u0007", | |
"0\u0002\u0002\u0712\u0714\u0005\u01b3\u00da\u0002\u0713\u0712\u0003", | |
"\u0002\u0002\u0002\u0714\u0715\u0003\u0002\u0002\u0002\u0715\u0713\u0003", | |
"\u0002\u0002\u0002\u0715\u0716\u0003\u0002\u0002\u0002\u0716\u0718\u0003", | |
"\u0002\u0002\u0002\u0717\u0706\u0003\u0002\u0002\u0002\u0717\u0711\u0003", | |
"\u0002\u0002\u0002\u0718\u01a0\u0003\u0002\u0002\u0002\u0719\u071b\u0005", | |
"\u01b3\u00da\u0002\u071a\u0719\u0003\u0002\u0002\u0002\u071b\u071c\u0003", | |
"\u0002\u0002\u0002\u071c\u071a\u0003\u0002\u0002\u0002\u071c\u071d\u0003", | |
"\u0002\u0002\u0002\u071d\u0725\u0003\u0002\u0002\u0002\u071e\u0722\u0007", | |
"0\u0002\u0002\u071f\u0721\u0005\u01b3\u00da\u0002\u0720\u071f\u0003", | |
"\u0002\u0002\u0002\u0721\u0724\u0003\u0002\u0002\u0002\u0722\u0720\u0003", | |
"\u0002\u0002\u0002\u0722\u0723\u0003\u0002\u0002\u0002\u0723\u0726\u0003", | |
"\u0002\u0002\u0002\u0724\u0722\u0003\u0002\u0002\u0002\u0725\u071e\u0003", | |
"\u0002\u0002\u0002\u0725\u0726\u0003\u0002\u0002\u0002\u0726\u0727\u0003", | |
"\u0002\u0002\u0002\u0727\u0728\u0005\u01b1\u00d9\u0002\u0728\u0732\u0003", | |
"\u0002\u0002\u0002\u0729\u072b\u00070\u0002\u0002\u072a\u072c\u0005", | |
"\u01b3\u00da\u0002\u072b\u072a\u0003\u0002\u0002\u0002\u072c\u072d\u0003", | |
"\u0002\u0002\u0002\u072d\u072b\u0003\u0002\u0002\u0002\u072d\u072e\u0003", | |
"\u0002\u0002\u0002\u072e\u072f\u0003\u0002\u0002\u0002\u072f\u0730\u0005", | |
"\u01b1\u00d9\u0002\u0730\u0732\u0003\u0002\u0002\u0002\u0731\u071a\u0003", | |
"\u0002\u0002\u0002\u0731\u0729\u0003\u0002\u0002\u0002\u0732\u01a2\u0003", | |
"\u0002\u0002\u0002\u0733\u0736\u0005\u01b5\u00db\u0002\u0734\u0736\u0007", | |
"a\u0002\u0002\u0735\u0733\u0003\u0002\u0002\u0002\u0735\u0734\u0003", | |
"\u0002\u0002\u0002\u0736\u073c\u0003\u0002\u0002\u0002\u0737\u073b\u0005", | |
"\u01b5\u00db\u0002\u0738\u073b\u0005\u01b3\u00da\u0002\u0739\u073b\t", | |
"\u0003\u0002\u0002\u073a\u0737\u0003\u0002\u0002\u0002\u073a\u0738\u0003", | |
"\u0002\u0002\u0002\u073a\u0739\u0003\u0002\u0002\u0002\u073b\u073e\u0003", | |
"\u0002\u0002\u0002\u073c\u073a\u0003\u0002\u0002\u0002\u073c\u073d\u0003", | |
"\u0002\u0002\u0002\u073d\u01a4\u0003\u0002\u0002\u0002\u073e\u073c\u0003", | |
"\u0002\u0002\u0002\u073f\u0743\u0005\u01b3\u00da\u0002\u0740\u0744\u0005", | |
"\u01b5\u00db\u0002\u0741\u0744\u0005\u01b3\u00da\u0002\u0742\u0744\t", | |
"\u0003\u0002\u0002\u0743\u0740\u0003\u0002\u0002\u0002\u0743\u0741\u0003", | |
"\u0002\u0002\u0002\u0743\u0742\u0003\u0002\u0002\u0002\u0744\u0745\u0003", | |
"\u0002\u0002\u0002\u0745\u0743\u0003\u0002\u0002\u0002\u0745\u0746\u0003", | |
"\u0002\u0002\u0002\u0746\u01a6\u0003\u0002\u0002\u0002\u0747\u074d\u0007", | |
"$\u0002\u0002\u0748\u074c\n\u0004\u0002\u0002\u0749\u074a\u0007$\u0002", | |
"\u0002\u074a\u074c\u0007$\u0002\u0002\u074b\u0748\u0003\u0002\u0002", | |
"\u0002\u074b\u0749\u0003\u0002\u0002\u0002\u074c\u074f\u0003\u0002\u0002", | |
"\u0002\u074d\u074b\u0003\u0002\u0002\u0002\u074d\u074e\u0003\u0002\u0002", | |
"\u0002\u074e\u0750\u0003\u0002\u0002\u0002\u074f\u074d\u0003\u0002\u0002", | |
"\u0002\u0750\u0751\u0007$\u0002\u0002\u0751\u01a8\u0003\u0002\u0002", | |
"\u0002\u0752\u0758\u0007b\u0002\u0002\u0753\u0757\n\u0005\u0002\u0002", | |
"\u0754\u0755\u0007b\u0002\u0002\u0755\u0757\u0007b\u0002\u0002\u0756", | |
"\u0753\u0003\u0002\u0002\u0002\u0756\u0754\u0003\u0002\u0002\u0002\u0757", | |
"\u075a\u0003\u0002\u0002\u0002\u0758\u0756\u0003\u0002\u0002\u0002\u0758", | |
"\u0759\u0003\u0002\u0002\u0002\u0759\u075b\u0003\u0002\u0002\u0002\u075a", | |
"\u0758\u0003\u0002\u0002\u0002\u075b\u075c\u0007b\u0002\u0002\u075c", | |
"\u01aa\u0003\u0002\u0002\u0002\u075d\u075e\u0007V\u0002\u0002\u075e", | |
"\u075f\u0007K\u0002\u0002\u075f\u0760\u0007O\u0002\u0002\u0760\u0761", | |
"\u0007G\u0002\u0002\u0761\u0762\u0003\u0002\u0002\u0002\u0762\u0763", | |
"\u0005\u01bb\u00de\u0002\u0763\u0764\u0007Y\u0002\u0002\u0764\u0765", | |
"\u0007K\u0002\u0002\u0765\u0766\u0007V\u0002\u0002\u0766\u0767\u0007", | |
"J\u0002\u0002\u0767\u0768\u0003\u0002\u0002\u0002\u0768\u0769\u0005", | |
"\u01bb\u00de\u0002\u0769\u076a\u0007V\u0002\u0002\u076a\u076b\u0007", | |
"K\u0002\u0002\u076b\u076c\u0007O\u0002\u0002\u076c\u076d\u0007G\u0002", | |
"\u0002\u076d\u076e\u0003\u0002\u0002\u0002\u076e\u076f\u0005\u01bb\u00de", | |
"\u0002\u076f\u0770\u0007\\\u0002\u0002\u0770\u0771\u0007Q\u0002\u0002", | |
"\u0771\u0772\u0007P\u0002\u0002\u0772\u0773\u0007G\u0002\u0002\u0773", | |
"\u01ac\u0003\u0002\u0002\u0002\u0774\u0775\u0007V\u0002\u0002\u0775", | |
"\u0776\u0007K\u0002\u0002\u0776\u0777\u0007O\u0002\u0002\u0777\u0778", | |
"\u0007G\u0002\u0002\u0778\u0779\u0007U\u0002\u0002\u0779\u077a\u0007", | |
"V\u0002\u0002\u077a\u077b\u0007C\u0002\u0002\u077b\u077c\u0007O\u0002", | |
"\u0002\u077c\u077d\u0007R\u0002\u0002\u077d\u077e\u0003\u0002\u0002", | |
"\u0002\u077e\u077f\u0005\u01bb\u00de\u0002\u077f\u0780\u0007Y\u0002", | |
"\u0002\u0780\u0781\u0007K\u0002\u0002\u0781\u0782\u0007V\u0002\u0002", | |
"\u0782\u0783\u0007J\u0002\u0002\u0783\u0784\u0003\u0002\u0002\u0002", | |
"\u0784\u0785\u0005\u01bb\u00de\u0002\u0785\u0786\u0007V\u0002\u0002", | |
"\u0786\u0787\u0007K\u0002\u0002\u0787\u0788\u0007O\u0002\u0002\u0788", | |
"\u0789\u0007G\u0002\u0002\u0789\u078a\u0003\u0002\u0002\u0002\u078a", | |
"\u078b\u0005\u01bb\u00de\u0002\u078b\u078c\u0007\\\u0002\u0002\u078c", | |
"\u078d\u0007Q\u0002\u0002\u078d\u078e\u0007P\u0002\u0002\u078e\u078f", | |
"\u0007G\u0002\u0002\u078f\u01ae\u0003\u0002\u0002\u0002\u0790\u0791", | |
"\u0007F\u0002\u0002\u0791\u0792\u0007Q\u0002\u0002\u0792\u0793\u0007", | |
"W\u0002\u0002\u0793\u0794\u0007D\u0002\u0002\u0794\u0795\u0007N\u0002", | |
"\u0002\u0795\u0796\u0007G\u0002\u0002\u0796\u0797\u0003\u0002\u0002", | |
"\u0002\u0797\u0798\u0005\u01bb\u00de\u0002\u0798\u0799\u0007R\u0002", | |
"\u0002\u0799\u079a\u0007T\u0002\u0002\u079a\u079b\u0007G\u0002\u0002", | |
"\u079b\u079c\u0007E\u0002\u0002\u079c\u079d\u0007K\u0002\u0002\u079d", | |
"\u079e\u0007U\u0002\u0002\u079e\u079f\u0007K\u0002\u0002\u079f\u07a0", | |
"\u0007Q\u0002\u0002\u07a0\u07a1\u0007P\u0002\u0002\u07a1\u01b0\u0003", | |
"\u0002\u0002\u0002\u07a2\u07a4\u0007G\u0002\u0002\u07a3\u07a5\t\u0006", | |
"\u0002\u0002\u07a4\u07a3\u0003\u0002\u0002\u0002\u07a4\u07a5\u0003\u0002", | |
"\u0002\u0002\u07a5\u07a7\u0003\u0002\u0002\u0002\u07a6\u07a8\u0005\u01b3", | |
"\u00da\u0002\u07a7\u07a6\u0003\u0002\u0002\u0002\u07a8\u07a9\u0003\u0002", | |
"\u0002\u0002\u07a9\u07a7\u0003\u0002\u0002\u0002\u07a9\u07aa\u0003\u0002", | |
"\u0002\u0002\u07aa\u01b2\u0003\u0002\u0002\u0002\u07ab\u07ac\t\u0007", | |
"\u0002\u0002\u07ac\u01b4\u0003\u0002\u0002\u0002\u07ad\u07ae\t\b\u0002", | |
"\u0002\u07ae\u01b6\u0003\u0002\u0002\u0002\u07af\u07b0\u0007/\u0002", | |
"\u0002\u07b0\u07b1\u0007/\u0002\u0002\u07b1\u07b5\u0003\u0002\u0002", | |
"\u0002\u07b2\u07b4\n\t\u0002\u0002\u07b3\u07b2\u0003\u0002\u0002\u0002", | |
"\u07b4\u07b7\u0003\u0002\u0002\u0002\u07b5\u07b3\u0003\u0002\u0002\u0002", | |
"\u07b5\u07b6\u0003\u0002\u0002\u0002\u07b6\u07b9\u0003\u0002\u0002\u0002", | |
"\u07b7\u07b5\u0003\u0002\u0002\u0002\u07b8\u07ba\u0007\u000f\u0002\u0002", | |
"\u07b9\u07b8\u0003\u0002\u0002\u0002\u07b9\u07ba\u0003\u0002\u0002\u0002", | |
"\u07ba\u07bc\u0003\u0002\u0002\u0002\u07bb\u07bd\u0007\f\u0002\u0002", | |
"\u07bc\u07bb\u0003\u0002\u0002\u0002\u07bc\u07bd\u0003\u0002\u0002\u0002", | |
"\u07bd\u07be\u0003\u0002\u0002\u0002\u07be\u07bf\b\u00dc\u0002\u0002", | |
"\u07bf\u01b8\u0003\u0002\u0002\u0002\u07c0\u07c1\u00071\u0002\u0002", | |
"\u07c1\u07c2\u0007,\u0002\u0002\u07c2\u07c6\u0003\u0002\u0002\u0002", | |
"\u07c3\u07c5\u000b\u0002\u0002\u0002\u07c4\u07c3\u0003\u0002\u0002\u0002", | |
"\u07c5\u07c8\u0003\u0002\u0002\u0002\u07c6\u07c7\u0003\u0002\u0002\u0002", | |
"\u07c6\u07c4\u0003\u0002\u0002\u0002\u07c7\u07c9\u0003\u0002\u0002\u0002", | |
"\u07c8\u07c6\u0003\u0002\u0002\u0002\u07c9\u07ca\u0007,\u0002\u0002", | |
"\u07ca\u07cb\u00071\u0002\u0002\u07cb\u07cc\u0003\u0002\u0002\u0002", | |
"\u07cc\u07cd\b\u00dd\u0002\u0002\u07cd\u01ba\u0003\u0002\u0002\u0002", | |
"\u07ce\u07d0\t\n\u0002\u0002\u07cf\u07ce\u0003\u0002\u0002\u0002\u07d0", | |
"\u07d1\u0003\u0002\u0002\u0002\u07d1\u07cf\u0003\u0002\u0002\u0002\u07d1", | |
"\u07d2\u0003\u0002\u0002\u0002\u07d2\u07d3\u0003\u0002\u0002\u0002\u07d3", | |
"\u07d4\b\u00de\u0002\u0002\u07d4\u01bc\u0003\u0002\u0002\u0002\u07d5", | |
"\u07d6\u000b\u0002\u0002\u0002\u07d6\u01be\u0003\u0002\u0002\u0002#", | |
"\u0002\u06c3\u06e0\u06e2\u06ee\u06f0\u06fb\u0703\u0708\u070e\u0715\u0717", | |
"\u071c\u0722\u0725\u072d\u0731\u0735\u073a\u073c\u0743\u0745\u074b\u074d", | |
"\u0756\u0758\u07a4\u07a9\u07b5\u07b9\u07bc\u07c6\u07d1\u0003\u0002\u0003", | |
"\u0002"].join(""); | |
var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); | |
var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); }); | |
function SqlBaseLexer(input) { | |
antlr4.Lexer.call(this, input); | |
this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache()); | |
return this; | |
} | |
SqlBaseLexer.prototype = Object.create(antlr4.Lexer.prototype); | |
SqlBaseLexer.prototype.constructor = SqlBaseLexer; | |
Object.defineProperty(SqlBaseLexer.prototype, "atn", { | |
get : function() { | |
return atn; | |
} | |
}); | |
SqlBaseLexer.EOF = antlr4.Token.EOF; | |
SqlBaseLexer.T__0 = 1; | |
SqlBaseLexer.T__1 = 2; | |
SqlBaseLexer.T__2 = 3; | |
SqlBaseLexer.T__3 = 4; | |
SqlBaseLexer.T__4 = 5; | |
SqlBaseLexer.T__5 = 6; | |
SqlBaseLexer.T__6 = 7; | |
SqlBaseLexer.T__7 = 8; | |
SqlBaseLexer.T__8 = 9; | |
SqlBaseLexer.ADD = 10; | |
SqlBaseLexer.ALL = 11; | |
SqlBaseLexer.ALTER = 12; | |
SqlBaseLexer.ANALYZE = 13; | |
SqlBaseLexer.AND = 14; | |
SqlBaseLexer.ANY = 15; | |
SqlBaseLexer.ARRAY = 16; | |
SqlBaseLexer.AS = 17; | |
SqlBaseLexer.ASC = 18; | |
SqlBaseLexer.AT = 19; | |
SqlBaseLexer.BERNOULLI = 20; | |
SqlBaseLexer.BETWEEN = 21; | |
SqlBaseLexer.BY = 22; | |
SqlBaseLexer.CALL = 23; | |
SqlBaseLexer.CASCADE = 24; | |
SqlBaseLexer.CASE = 25; | |
SqlBaseLexer.CAST = 26; | |
SqlBaseLexer.CATALOGS = 27; | |
SqlBaseLexer.COLUMN = 28; | |
SqlBaseLexer.COLUMNS = 29; | |
SqlBaseLexer.COMMENT = 30; | |
SqlBaseLexer.COMMIT = 31; | |
SqlBaseLexer.COMMITTED = 32; | |
SqlBaseLexer.CONSTRAINT = 33; | |
SqlBaseLexer.CREATE = 34; | |
SqlBaseLexer.CROSS = 35; | |
SqlBaseLexer.CUBE = 36; | |
SqlBaseLexer.CURRENT = 37; | |
SqlBaseLexer.CURRENT_DATE = 38; | |
SqlBaseLexer.CURRENT_PATH = 39; | |
SqlBaseLexer.CURRENT_TIME = 40; | |
SqlBaseLexer.CURRENT_TIMESTAMP = 41; | |
SqlBaseLexer.CURRENT_USER = 42; | |
SqlBaseLexer.DATA = 43; | |
SqlBaseLexer.DATE = 44; | |
SqlBaseLexer.DAY = 45; | |
SqlBaseLexer.DEALLOCATE = 46; | |
SqlBaseLexer.DELETE = 47; | |
SqlBaseLexer.DESC = 48; | |
SqlBaseLexer.DESCRIBE = 49; | |
SqlBaseLexer.DISTINCT = 50; | |
SqlBaseLexer.DISTRIBUTED = 51; | |
SqlBaseLexer.DROP = 52; | |
SqlBaseLexer.ELSE = 53; | |
SqlBaseLexer.END = 54; | |
SqlBaseLexer.ESCAPE = 55; | |
SqlBaseLexer.EXCEPT = 56; | |
SqlBaseLexer.EXCLUDING = 57; | |
SqlBaseLexer.EXECUTE = 58; | |
SqlBaseLexer.EXISTS = 59; | |
SqlBaseLexer.EXPLAIN = 60; | |
SqlBaseLexer.EXTRACT = 61; | |
SqlBaseLexer.FALSE = 62; | |
SqlBaseLexer.FILTER = 63; | |
SqlBaseLexer.FIRST = 64; | |
SqlBaseLexer.FOLLOWING = 65; | |
SqlBaseLexer.FOR = 66; | |
SqlBaseLexer.FORMAT = 67; | |
SqlBaseLexer.FROM = 68; | |
SqlBaseLexer.FULL = 69; | |
SqlBaseLexer.FUNCTIONS = 70; | |
SqlBaseLexer.GRANT = 71; | |
SqlBaseLexer.GRANTS = 72; | |
SqlBaseLexer.GRAPHVIZ = 73; | |
SqlBaseLexer.GROUP = 74; | |
SqlBaseLexer.GROUPING = 75; | |
SqlBaseLexer.HAVING = 76; | |
SqlBaseLexer.HOUR = 77; | |
SqlBaseLexer.IF = 78; | |
SqlBaseLexer.IN = 79; | |
SqlBaseLexer.INCLUDING = 80; | |
SqlBaseLexer.INNER = 81; | |
SqlBaseLexer.INPUT = 82; | |
SqlBaseLexer.INSERT = 83; | |
SqlBaseLexer.INTERSECT = 84; | |
SqlBaseLexer.INTERVAL = 85; | |
SqlBaseLexer.INTO = 86; | |
SqlBaseLexer.IO = 87; | |
SqlBaseLexer.IS = 88; | |
SqlBaseLexer.ISOLATION = 89; | |
SqlBaseLexer.JSON = 90; | |
SqlBaseLexer.JOIN = 91; | |
SqlBaseLexer.LAST = 92; | |
SqlBaseLexer.LATERAL = 93; | |
SqlBaseLexer.LEFT = 94; | |
SqlBaseLexer.LEVEL = 95; | |
SqlBaseLexer.LIKE = 96; | |
SqlBaseLexer.LIMIT = 97; | |
SqlBaseLexer.LOCALTIME = 98; | |
SqlBaseLexer.LOCALTIMESTAMP = 99; | |
SqlBaseLexer.LOGICAL = 100; | |
SqlBaseLexer.MAP = 101; | |
SqlBaseLexer.MINUTE = 102; | |
SqlBaseLexer.MONTH = 103; | |
SqlBaseLexer.NATURAL = 104; | |
SqlBaseLexer.NFC = 105; | |
SqlBaseLexer.NFD = 106; | |
SqlBaseLexer.NFKC = 107; | |
SqlBaseLexer.NFKD = 108; | |
SqlBaseLexer.NO = 109; | |
SqlBaseLexer.NORMALIZE = 110; | |
SqlBaseLexer.NOT = 111; | |
SqlBaseLexer.NULL = 112; | |
SqlBaseLexer.NULLIF = 113; | |
SqlBaseLexer.NULLS = 114; | |
SqlBaseLexer.ON = 115; | |
SqlBaseLexer.ONLY = 116; | |
SqlBaseLexer.OPTION = 117; | |
SqlBaseLexer.OR = 118; | |
SqlBaseLexer.ORDER = 119; | |
SqlBaseLexer.ORDINALITY = 120; | |
SqlBaseLexer.OUTER = 121; | |
SqlBaseLexer.OUTPUT = 122; | |
SqlBaseLexer.OVER = 123; | |
SqlBaseLexer.PARTITION = 124; | |
SqlBaseLexer.PARTITIONS = 125; | |
SqlBaseLexer.PATH = 126; | |
SqlBaseLexer.POSITION = 127; | |
SqlBaseLexer.PRECEDING = 128; | |
SqlBaseLexer.PREPARE = 129; | |
SqlBaseLexer.PRIVILEGES = 130; | |
SqlBaseLexer.PROPERTIES = 131; | |
SqlBaseLexer.PUBLIC = 132; | |
SqlBaseLexer.RANGE = 133; | |
SqlBaseLexer.READ = 134; | |
SqlBaseLexer.RECURSIVE = 135; | |
SqlBaseLexer.RENAME = 136; | |
SqlBaseLexer.REPEATABLE = 137; | |
SqlBaseLexer.REPLACE = 138; | |
SqlBaseLexer.RESET = 139; | |
SqlBaseLexer.RESTRICT = 140; | |
SqlBaseLexer.REVOKE = 141; | |
SqlBaseLexer.RIGHT = 142; | |
SqlBaseLexer.ROLLBACK = 143; | |
SqlBaseLexer.ROLLUP = 144; | |
SqlBaseLexer.ROW = 145; | |
SqlBaseLexer.ROWS = 146; | |
SqlBaseLexer.SCHEMA = 147; | |
SqlBaseLexer.SCHEMAS = 148; | |
SqlBaseLexer.SECOND = 149; | |
SqlBaseLexer.SELECT = 150; | |
SqlBaseLexer.SERIALIZABLE = 151; | |
SqlBaseLexer.SESSION = 152; | |
SqlBaseLexer.SET = 153; | |
SqlBaseLexer.SETS = 154; | |
SqlBaseLexer.SHOW = 155; | |
SqlBaseLexer.SOME = 156; | |
SqlBaseLexer.START = 157; | |
SqlBaseLexer.STATS = 158; | |
SqlBaseLexer.SUBSTRING = 159; | |
SqlBaseLexer.SYSTEM = 160; | |
SqlBaseLexer.TABLE = 161; | |
SqlBaseLexer.TABLES = 162; | |
SqlBaseLexer.TABLESAMPLE = 163; | |
SqlBaseLexer.TEXT = 164; | |
SqlBaseLexer.THEN = 165; | |
SqlBaseLexer.TIME = 166; | |
SqlBaseLexer.TIMESTAMP = 167; | |
SqlBaseLexer.TO = 168; | |
SqlBaseLexer.TRANSACTION = 169; | |
SqlBaseLexer.TRUE = 170; | |
SqlBaseLexer.TRY_CAST = 171; | |
SqlBaseLexer.TYPE = 172; | |
SqlBaseLexer.UESCAPE = 173; | |
SqlBaseLexer.UNBOUNDED = 174; | |
SqlBaseLexer.UNCOMMITTED = 175; | |
SqlBaseLexer.UNION = 176; | |
SqlBaseLexer.UNNEST = 177; | |
SqlBaseLexer.USE = 178; | |
SqlBaseLexer.USING = 179; | |
SqlBaseLexer.VALIDATE = 180; | |
SqlBaseLexer.VALUES = 181; | |
SqlBaseLexer.VERBOSE = 182; | |
SqlBaseLexer.VIEW = 183; | |
SqlBaseLexer.WHEN = 184; | |
SqlBaseLexer.WHERE = 185; | |
SqlBaseLexer.WITH = 186; | |
SqlBaseLexer.WORK = 187; | |
SqlBaseLexer.WRITE = 188; | |
SqlBaseLexer.YEAR = 189; | |
SqlBaseLexer.ZONE = 190; | |
SqlBaseLexer.EQ = 191; | |
SqlBaseLexer.NEQ = 192; | |
SqlBaseLexer.LT = 193; | |
SqlBaseLexer.LTE = 194; | |
SqlBaseLexer.GT = 195; | |
SqlBaseLexer.GTE = 196; | |
SqlBaseLexer.PLUS = 197; | |
SqlBaseLexer.MINUS = 198; | |
SqlBaseLexer.ASTERISK = 199; | |
SqlBaseLexer.SLASH = 200; | |
SqlBaseLexer.PERCENT = 201; | |
SqlBaseLexer.CONCAT = 202; | |
SqlBaseLexer.STRING = 203; | |
SqlBaseLexer.UNICODE_STRING = 204; | |
SqlBaseLexer.BINARY_LITERAL = 205; | |
SqlBaseLexer.INTEGER_VALUE = 206; | |
SqlBaseLexer.DECIMAL_VALUE = 207; | |
SqlBaseLexer.DOUBLE_VALUE = 208; | |
SqlBaseLexer.IDENTIFIER = 209; | |
SqlBaseLexer.DIGIT_IDENTIFIER = 210; | |
SqlBaseLexer.QUOTED_IDENTIFIER = 211; | |
SqlBaseLexer.BACKQUOTED_IDENTIFIER = 212; | |
SqlBaseLexer.TIME_WITH_TIME_ZONE = 213; | |
SqlBaseLexer.TIMESTAMP_WITH_TIME_ZONE = 214; | |
SqlBaseLexer.DOUBLE_PRECISION = 215; | |
SqlBaseLexer.SIMPLE_COMMENT = 216; | |
SqlBaseLexer.BRACKETED_COMMENT = 217; | |
SqlBaseLexer.WS = 218; | |
SqlBaseLexer.UNRECOGNIZED = 219; | |
SqlBaseLexer.prototype.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; | |
SqlBaseLexer.prototype.modeNames = [ "DEFAULT_MODE" ]; | |
SqlBaseLexer.prototype.literalNames = [ null, "'.'", "'('", "')'", "','", | |
"'?'", "'->'", "'['", "']'", "'=>'", | |
"'ADD'", "'ALL'", "'ALTER'", "'ANALYZE'", | |
"'AND'", "'ANY'", "'ARRAY'", "'AS'", | |
"'ASC'", "'AT'", "'BERNOULLI'", | |
"'BETWEEN'", "'BY'", "'CALL'", "'CASCADE'", | |
"'CASE'", "'CAST'", "'CATALOGS'", | |
"'COLUMN'", "'COLUMNS'", "'COMMENT'", | |
"'COMMIT'", "'COMMITTED'", "'CONSTRAINT'", | |
"'CREATE'", "'CROSS'", "'CUBE'", | |
"'CURRENT'", "'CURRENT_DATE'", "'CURRENT_PATH'", | |
"'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", | |
"'CURRENT_USER'", "'DATA'", "'DATE'", | |
"'DAY'", "'DEALLOCATE'", "'DELETE'", | |
"'DESC'", "'DESCRIBE'", "'DISTINCT'", | |
"'DISTRIBUTED'", "'DROP'", "'ELSE'", | |
"'END'", "'ESCAPE'", "'EXCEPT'", | |
"'EXCLUDING'", "'EXECUTE'", "'EXISTS'", | |
"'EXPLAIN'", "'EXTRACT'", "'FALSE'", | |
"'FILTER'", "'FIRST'", "'FOLLOWING'", | |
"'FOR'", "'FORMAT'", "'FROM'", "'FULL'", | |
"'FUNCTIONS'", "'GRANT'", "'GRANTS'", | |
"'GRAPHVIZ'", "'GROUP'", "'GROUPING'", | |
"'HAVING'", "'HOUR'", "'IF'", "'IN'", | |
"'INCLUDING'", "'INNER'", "'INPUT'", | |
"'INSERT'", "'INTERSECT'", "'INTERVAL'", | |
"'INTO'", "'IO'", "'IS'", "'ISOLATION'", | |
"'JSON'", "'JOIN'", "'LAST'", "'LATERAL'", | |
"'LEFT'", "'LEVEL'", "'LIKE'", "'LIMIT'", | |
"'LOCALTIME'", "'LOCALTIMESTAMP'", | |
"'LOGICAL'", "'MAP'", "'MINUTE'", | |
"'MONTH'", "'NATURAL'", "'NFC'", | |
"'NFD'", "'NFKC'", "'NFKD'", "'NO'", | |
"'NORMALIZE'", "'NOT'", "'NULL'", | |
"'NULLIF'", "'NULLS'", "'ON'", "'ONLY'", | |
"'OPTION'", "'OR'", "'ORDER'", "'ORDINALITY'", | |
"'OUTER'", "'OUTPUT'", "'OVER'", | |
"'PARTITION'", "'PARTITIONS'", "'PATH'", | |
"'POSITION'", "'PRECEDING'", "'PREPARE'", | |
"'PRIVILEGES'", "'PROPERTIES'", | |
"'PUBLIC'", "'RANGE'", "'READ'", | |
"'RECURSIVE'", "'RENAME'", "'REPEATABLE'", | |
"'REPLACE'", "'RESET'", "'RESTRICT'", | |
"'REVOKE'", "'RIGHT'", "'ROLLBACK'", | |
"'ROLLUP'", "'ROW'", "'ROWS'", "'SCHEMA'", | |
"'SCHEMAS'", "'SECOND'", "'SELECT'", | |
"'SERIALIZABLE'", "'SESSION'", "'SET'", | |
"'SETS'", "'SHOW'", "'SOME'", "'START'", | |
"'STATS'", "'SUBSTRING'", "'SYSTEM'", | |
"'TABLE'", "'TABLES'", "'TABLESAMPLE'", | |
"'TEXT'", "'THEN'", "'TIME'", "'TIMESTAMP'", | |
"'TO'", "'TRANSACTION'", "'TRUE'", | |
"'TRY_CAST'", "'TYPE'", "'UESCAPE'", | |
"'UNBOUNDED'", "'UNCOMMITTED'", | |
"'UNION'", "'UNNEST'", "'USE'", | |
"'USING'", "'VALIDATE'", "'VALUES'", | |
"'VERBOSE'", "'VIEW'", "'WHEN'", | |
"'WHERE'", "'WITH'", "'WORK'", "'WRITE'", | |
"'YEAR'", "'ZONE'", "'='", null, | |
"'<'", "'<='", "'>'", "'>='", "'+'", | |
"'-'", "'*'", "'/'", "'%'", "'||'" ]; | |
SqlBaseLexer.prototype.symbolicNames = [ null, null, null, null, null, null, | |
null, null, null, null, "ADD", | |
"ALL", "ALTER", "ANALYZE", "AND", | |
"ANY", "ARRAY", "AS", "ASC", "AT", | |
"BERNOULLI", "BETWEEN", "BY", "CALL", | |
"CASCADE", "CASE", "CAST", "CATALOGS", | |
"COLUMN", "COLUMNS", "COMMENT", | |
"COMMIT", "COMMITTED", "CONSTRAINT", | |
"CREATE", "CROSS", "CUBE", "CURRENT", | |
"CURRENT_DATE", "CURRENT_PATH", | |
"CURRENT_TIME", "CURRENT_TIMESTAMP", | |
"CURRENT_USER", "DATA", "DATE", | |
"DAY", "DEALLOCATE", "DELETE", | |
"DESC", "DESCRIBE", "DISTINCT", | |
"DISTRIBUTED", "DROP", "ELSE", | |
"END", "ESCAPE", "EXCEPT", "EXCLUDING", | |
"EXECUTE", "EXISTS", "EXPLAIN", | |
"EXTRACT", "FALSE", "FILTER", "FIRST", | |
"FOLLOWING", "FOR", "FORMAT", "FROM", | |
"FULL", "FUNCTIONS", "GRANT", "GRANTS", | |
"GRAPHVIZ", "GROUP", "GROUPING", | |
"HAVING", "HOUR", "IF", "IN", "INCLUDING", | |
"INNER", "INPUT", "INSERT", "INTERSECT", | |
"INTERVAL", "INTO", "IO", "IS", | |
"ISOLATION", "JSON", "JOIN", "LAST", | |
"LATERAL", "LEFT", "LEVEL", "LIKE", | |
"LIMIT", "LOCALTIME", "LOCALTIMESTAMP", | |
"LOGICAL", "MAP", "MINUTE", "MONTH", | |
"NATURAL", "NFC", "NFD", "NFKC", | |
"NFKD", "NO", "NORMALIZE", "NOT", | |
"NULL", "NULLIF", "NULLS", "ON", | |
"ONLY", "OPTION", "OR", "ORDER", | |
"ORDINALITY", "OUTER", "OUTPUT", | |
"OVER", "PARTITION", "PARTITIONS", | |
"PATH", "POSITION", "PRECEDING", | |
"PREPARE", "PRIVILEGES", "PROPERTIES", | |
"PUBLIC", "RANGE", "READ", "RECURSIVE", | |
"RENAME", "REPEATABLE", "REPLACE", | |
"RESET", "RESTRICT", "REVOKE", | |
"RIGHT", "ROLLBACK", "ROLLUP", | |
"ROW", "ROWS", "SCHEMA", "SCHEMAS", | |
"SECOND", "SELECT", "SERIALIZABLE", | |
"SESSION", "SET", "SETS", "SHOW", | |
"SOME", "START", "STATS", "SUBSTRING", | |
"SYSTEM", "TABLE", "TABLES", "TABLESAMPLE", | |
"TEXT", "THEN", "TIME", "TIMESTAMP", | |
"TO", "TRANSACTION", "TRUE", "TRY_CAST", | |
"TYPE", "UESCAPE", "UNBOUNDED", | |
"UNCOMMITTED", "UNION", "UNNEST", | |
"USE", "USING", "VALIDATE", "VALUES", | |
"VERBOSE", "VIEW", "WHEN", "WHERE", | |
"WITH", "WORK", "WRITE", "YEAR", | |
"ZONE", "EQ", "NEQ", "LT", "LTE", | |
"GT", "GTE", "PLUS", "MINUS", "ASTERISK", | |
"SLASH", "PERCENT", "CONCAT", "STRING", | |
"UNICODE_STRING", "BINARY_LITERAL", | |
"INTEGER_VALUE", "DECIMAL_VALUE", | |
"DOUBLE_VALUE", "IDENTIFIER", "DIGIT_IDENTIFIER", | |
"QUOTED_IDENTIFIER", "BACKQUOTED_IDENTIFIER", | |
"TIME_WITH_TIME_ZONE", "TIMESTAMP_WITH_TIME_ZONE", | |
"DOUBLE_PRECISION", "SIMPLE_COMMENT", | |
"BRACKETED_COMMENT", "WS", "UNRECOGNIZED" ]; | |
SqlBaseLexer.prototype.ruleNames = [ "T__0", "T__1", "T__2", "T__3", "T__4", | |
"T__5", "T__6", "T__7", "T__8", "ADD", | |
"ALL", "ALTER", "ANALYZE", "AND", "ANY", | |
"ARRAY", "AS", "ASC", "AT", "BERNOULLI", | |
"BETWEEN", "BY", "CALL", "CASCADE", | |
"CASE", "CAST", "CATALOGS", "COLUMN", | |
"COLUMNS", "COMMENT", "COMMIT", "COMMITTED", | |
"CONSTRAINT", "CREATE", "CROSS", "CUBE", | |
"CURRENT", "CURRENT_DATE", "CURRENT_PATH", | |
"CURRENT_TIME", "CURRENT_TIMESTAMP", | |
"CURRENT_USER", "DATA", "DATE", "DAY", | |
"DEALLOCATE", "DELETE", "DESC", "DESCRIBE", | |
"DISTINCT", "DISTRIBUTED", "DROP", | |
"ELSE", "END", "ESCAPE", "EXCEPT", | |
"EXCLUDING", "EXECUTE", "EXISTS", "EXPLAIN", | |
"EXTRACT", "FALSE", "FILTER", "FIRST", | |
"FOLLOWING", "FOR", "FORMAT", "FROM", | |
"FULL", "FUNCTIONS", "GRANT", "GRANTS", | |
"GRAPHVIZ", "GROUP", "GROUPING", "HAVING", | |
"HOUR", "IF", "IN", "INCLUDING", "INNER", | |
"INPUT", "INSERT", "INTERSECT", "INTERVAL", | |
"INTO", "IO", "IS", "ISOLATION", "JSON", | |
"JOIN", "LAST", "LATERAL", "LEFT", | |
"LEVEL", "LIKE", "LIMIT", "LOCALTIME", | |
"LOCALTIMESTAMP", "LOGICAL", "MAP", | |
"MINUTE", "MONTH", "NATURAL", "NFC", | |
"NFD", "NFKC", "NFKD", "NO", "NORMALIZE", | |
"NOT", "NULL", "NULLIF", "NULLS", "ON", | |
"ONLY", "OPTION", "OR", "ORDER", "ORDINALITY", | |
"OUTER", "OUTPUT", "OVER", "PARTITION", | |
"PARTITIONS", "PATH", "POSITION", "PRECEDING", | |
"PREPARE", "PRIVILEGES", "PROPERTIES", | |
"PUBLIC", "RANGE", "READ", "RECURSIVE", | |
"RENAME", "REPEATABLE", "REPLACE", | |
"RESET", "RESTRICT", "REVOKE", "RIGHT", | |
"ROLLBACK", "ROLLUP", "ROW", "ROWS", | |
"SCHEMA", "SCHEMAS", "SECOND", "SELECT", | |
"SERIALIZABLE", "SESSION", "SET", "SETS", | |
"SHOW", "SOME", "START", "STATS", "SUBSTRING", | |
"SYSTEM", "TABLE", "TABLES", "TABLESAMPLE", | |
"TEXT", "THEN", "TIME", "TIMESTAMP", | |
"TO", "TRANSACTION", "TRUE", "TRY_CAST", | |
"TYPE", "UESCAPE", "UNBOUNDED", "UNCOMMITTED", | |
"UNION", "UNNEST", "USE", "USING", | |
"VALIDATE", "VALUES", "VERBOSE", "VIEW", | |
"WHEN", "WHERE", "WITH", "WORK", "WRITE", | |
"YEAR", "ZONE", "EQ", "NEQ", "LT", | |
"LTE", "GT", "GTE", "PLUS", "MINUS", | |
"ASTERISK", "SLASH", "PERCENT", "CONCAT", | |
"STRING", "UNICODE_STRING", "BINARY_LITERAL", | |
"INTEGER_VALUE", "DECIMAL_VALUE", "DOUBLE_VALUE", | |
"IDENTIFIER", "DIGIT_IDENTIFIER", "QUOTED_IDENTIFIER", | |
"BACKQUOTED_IDENTIFIER", "TIME_WITH_TIME_ZONE", | |
"TIMESTAMP_WITH_TIME_ZONE", "DOUBLE_PRECISION", | |
"EXPONENT", "DIGIT", "LETTER", "SIMPLE_COMMENT", | |
"BRACKETED_COMMENT", "WS", "UNRECOGNIZED" ]; | |
SqlBaseLexer.prototype.grammarFileName = "SqlBase.g4"; | |
exports.SqlBaseLexer = SqlBaseLexer; | |
},{"antlr4/index":45}],2:[function(require,module,exports){ | |
// Generated from SqlBase.g4 by ANTLR 4.7.1 | |
// jshint ignore: start | |
var antlr4 = require('antlr4/index'); | |
// This class defines a complete listener for a parse tree produced by SqlBaseParser. | |
function SqlBaseListener() { | |
antlr4.tree.ParseTreeListener.call(this); | |
return this; | |
} | |
SqlBaseListener.prototype = Object.create(antlr4.tree.ParseTreeListener.prototype); | |
SqlBaseListener.prototype.constructor = SqlBaseListener; | |
// Enter a parse tree produced by SqlBaseParser#singleStatement. | |
SqlBaseListener.prototype.enterSingleStatement = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#singleStatement. | |
SqlBaseListener.prototype.exitSingleStatement = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#standaloneExpression. | |
SqlBaseListener.prototype.enterStandaloneExpression = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#standaloneExpression. | |
SqlBaseListener.prototype.exitStandaloneExpression = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#standalonePathSpecification. | |
SqlBaseListener.prototype.enterStandalonePathSpecification = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#standalonePathSpecification. | |
SqlBaseListener.prototype.exitStandalonePathSpecification = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#statementDefault. | |
SqlBaseListener.prototype.enterStatementDefault = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#statementDefault. | |
SqlBaseListener.prototype.exitStatementDefault = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#use. | |
SqlBaseListener.prototype.enterUse = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#use. | |
SqlBaseListener.prototype.exitUse = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#createSchema. | |
SqlBaseListener.prototype.enterCreateSchema = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#createSchema. | |
SqlBaseListener.prototype.exitCreateSchema = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#dropSchema. | |
SqlBaseListener.prototype.enterDropSchema = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#dropSchema. | |
SqlBaseListener.prototype.exitDropSchema = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#renameSchema. | |
SqlBaseListener.prototype.enterRenameSchema = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#renameSchema. | |
SqlBaseListener.prototype.exitRenameSchema = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#createTableAsSelect. | |
SqlBaseListener.prototype.enterCreateTableAsSelect = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#createTableAsSelect. | |
SqlBaseListener.prototype.exitCreateTableAsSelect = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#createTable. | |
SqlBaseListener.prototype.enterCreateTable = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#createTable. | |
SqlBaseListener.prototype.exitCreateTable = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#dropTable. | |
SqlBaseListener.prototype.enterDropTable = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#dropTable. | |
SqlBaseListener.prototype.exitDropTable = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#insertInto. | |
SqlBaseListener.prototype.enterInsertInto = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#insertInto. | |
SqlBaseListener.prototype.exitInsertInto = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#delete. | |
SqlBaseListener.prototype.enterDelete = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#delete. | |
SqlBaseListener.prototype.exitDelete = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#renameTable. | |
SqlBaseListener.prototype.enterRenameTable = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#renameTable. | |
SqlBaseListener.prototype.exitRenameTable = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#renameColumn. | |
SqlBaseListener.prototype.enterRenameColumn = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#renameColumn. | |
SqlBaseListener.prototype.exitRenameColumn = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#dropColumn. | |
SqlBaseListener.prototype.enterDropColumn = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#dropColumn. | |
SqlBaseListener.prototype.exitDropColumn = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#addColumn. | |
SqlBaseListener.prototype.enterAddColumn = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#addColumn. | |
SqlBaseListener.prototype.exitAddColumn = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#createView. | |
SqlBaseListener.prototype.enterCreateView = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#createView. | |
SqlBaseListener.prototype.exitCreateView = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#dropView. | |
SqlBaseListener.prototype.enterDropView = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#dropView. | |
SqlBaseListener.prototype.exitDropView = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#call. | |
SqlBaseListener.prototype.enterCall = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#call. | |
SqlBaseListener.prototype.exitCall = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#grant. | |
SqlBaseListener.prototype.enterGrant = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#grant. | |
SqlBaseListener.prototype.exitGrant = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#revoke. | |
SqlBaseListener.prototype.enterRevoke = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#revoke. | |
SqlBaseListener.prototype.exitRevoke = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#showGrants. | |
SqlBaseListener.prototype.enterShowGrants = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#showGrants. | |
SqlBaseListener.prototype.exitShowGrants = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#explain. | |
SqlBaseListener.prototype.enterExplain = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#explain. | |
SqlBaseListener.prototype.exitExplain = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#showCreateTable. | |
SqlBaseListener.prototype.enterShowCreateTable = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#showCreateTable. | |
SqlBaseListener.prototype.exitShowCreateTable = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#showCreateView. | |
SqlBaseListener.prototype.enterShowCreateView = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#showCreateView. | |
SqlBaseListener.prototype.exitShowCreateView = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#showTables. | |
SqlBaseListener.prototype.enterShowTables = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#showTables. | |
SqlBaseListener.prototype.exitShowTables = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#showSchemas. | |
SqlBaseListener.prototype.enterShowSchemas = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#showSchemas. | |
SqlBaseListener.prototype.exitShowSchemas = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#showCatalogs. | |
SqlBaseListener.prototype.enterShowCatalogs = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#showCatalogs. | |
SqlBaseListener.prototype.exitShowCatalogs = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#showColumns. | |
SqlBaseListener.prototype.enterShowColumns = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#showColumns. | |
SqlBaseListener.prototype.exitShowColumns = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#showStats. | |
SqlBaseListener.prototype.enterShowStats = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#showStats. | |
SqlBaseListener.prototype.exitShowStats = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#showStatsForQuery. | |
SqlBaseListener.prototype.enterShowStatsForQuery = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#showStatsForQuery. | |
SqlBaseListener.prototype.exitShowStatsForQuery = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#showFunctions. | |
SqlBaseListener.prototype.enterShowFunctions = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#showFunctions. | |
SqlBaseListener.prototype.exitShowFunctions = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#showSession. | |
SqlBaseListener.prototype.enterShowSession = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#showSession. | |
SqlBaseListener.prototype.exitShowSession = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#setSession. | |
SqlBaseListener.prototype.enterSetSession = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#setSession. | |
SqlBaseListener.prototype.exitSetSession = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#resetSession. | |
SqlBaseListener.prototype.enterResetSession = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#resetSession. | |
SqlBaseListener.prototype.exitResetSession = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#startTransaction. | |
SqlBaseListener.prototype.enterStartTransaction = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#startTransaction. | |
SqlBaseListener.prototype.exitStartTransaction = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#commit. | |
SqlBaseListener.prototype.enterCommit = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#commit. | |
SqlBaseListener.prototype.exitCommit = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#rollback. | |
SqlBaseListener.prototype.enterRollback = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#rollback. | |
SqlBaseListener.prototype.exitRollback = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#prepare. | |
SqlBaseListener.prototype.enterPrepare = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#prepare. | |
SqlBaseListener.prototype.exitPrepare = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#deallocate. | |
SqlBaseListener.prototype.enterDeallocate = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#deallocate. | |
SqlBaseListener.prototype.exitDeallocate = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#execute. | |
SqlBaseListener.prototype.enterExecute = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#execute. | |
SqlBaseListener.prototype.exitExecute = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#describeInput. | |
SqlBaseListener.prototype.enterDescribeInput = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#describeInput. | |
SqlBaseListener.prototype.exitDescribeInput = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#describeOutput. | |
SqlBaseListener.prototype.enterDescribeOutput = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#describeOutput. | |
SqlBaseListener.prototype.exitDescribeOutput = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#setPath. | |
SqlBaseListener.prototype.enterSetPath = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#setPath. | |
SqlBaseListener.prototype.exitSetPath = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#query. | |
SqlBaseListener.prototype.enterQuery = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#query. | |
SqlBaseListener.prototype.exitQuery = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#renamedwith. | |
SqlBaseListener.prototype.enterRenamedwith = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#renamedwith. | |
SqlBaseListener.prototype.exitRenamedwith = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#tableElement. | |
SqlBaseListener.prototype.enterTableElement = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#tableElement. | |
SqlBaseListener.prototype.exitTableElement = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#columnDefinition. | |
SqlBaseListener.prototype.enterColumnDefinition = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#columnDefinition. | |
SqlBaseListener.prototype.exitColumnDefinition = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#likeClause. | |
SqlBaseListener.prototype.enterLikeClause = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#likeClause. | |
SqlBaseListener.prototype.exitLikeClause = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#properties. | |
SqlBaseListener.prototype.enterProperties = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#properties. | |
SqlBaseListener.prototype.exitProperties = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#property. | |
SqlBaseListener.prototype.enterProperty = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#property. | |
SqlBaseListener.prototype.exitProperty = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#queryNoWith. | |
SqlBaseListener.prototype.enterQueryNoWith = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#queryNoWith. | |
SqlBaseListener.prototype.exitQueryNoWith = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#queryTermDefault. | |
SqlBaseListener.prototype.enterQueryTermDefault = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#queryTermDefault. | |
SqlBaseListener.prototype.exitQueryTermDefault = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#setOperation. | |
SqlBaseListener.prototype.enterSetOperation = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#setOperation. | |
SqlBaseListener.prototype.exitSetOperation = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#queryPrimaryDefault. | |
SqlBaseListener.prototype.enterQueryPrimaryDefault = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#queryPrimaryDefault. | |
SqlBaseListener.prototype.exitQueryPrimaryDefault = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#table. | |
SqlBaseListener.prototype.enterTable = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#table. | |
SqlBaseListener.prototype.exitTable = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#inlineTable. | |
SqlBaseListener.prototype.enterInlineTable = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#inlineTable. | |
SqlBaseListener.prototype.exitInlineTable = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#subquery. | |
SqlBaseListener.prototype.enterSubquery = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#subquery. | |
SqlBaseListener.prototype.exitSubquery = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#sortItem. | |
SqlBaseListener.prototype.enterSortItem = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#sortItem. | |
SqlBaseListener.prototype.exitSortItem = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#querySpecification. | |
SqlBaseListener.prototype.enterQuerySpecification = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#querySpecification. | |
SqlBaseListener.prototype.exitQuerySpecification = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#groupBy. | |
SqlBaseListener.prototype.enterGroupBy = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#groupBy. | |
SqlBaseListener.prototype.exitGroupBy = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#singleGroupingSet. | |
SqlBaseListener.prototype.enterSingleGroupingSet = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#singleGroupingSet. | |
SqlBaseListener.prototype.exitSingleGroupingSet = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#rollup. | |
SqlBaseListener.prototype.enterRollup = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#rollup. | |
SqlBaseListener.prototype.exitRollup = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#cube. | |
SqlBaseListener.prototype.enterCube = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#cube. | |
SqlBaseListener.prototype.exitCube = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#multipleGroupingSets. | |
SqlBaseListener.prototype.enterMultipleGroupingSets = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#multipleGroupingSets. | |
SqlBaseListener.prototype.exitMultipleGroupingSets = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#groupingSet. | |
SqlBaseListener.prototype.enterGroupingSet = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#groupingSet. | |
SqlBaseListener.prototype.exitGroupingSet = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#namedQuery. | |
SqlBaseListener.prototype.enterNamedQuery = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#namedQuery. | |
SqlBaseListener.prototype.exitNamedQuery = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#setQuantifier. | |
SqlBaseListener.prototype.enterSetQuantifier = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#setQuantifier. | |
SqlBaseListener.prototype.exitSetQuantifier = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#selectSingle. | |
SqlBaseListener.prototype.enterSelectSingle = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#selectSingle. | |
SqlBaseListener.prototype.exitSelectSingle = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#selectAll. | |
SqlBaseListener.prototype.enterSelectAll = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#selectAll. | |
SqlBaseListener.prototype.exitSelectAll = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#relationDefault. | |
SqlBaseListener.prototype.enterRelationDefault = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#relationDefault. | |
SqlBaseListener.prototype.exitRelationDefault = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#joinRelation. | |
SqlBaseListener.prototype.enterJoinRelation = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#joinRelation. | |
SqlBaseListener.prototype.exitJoinRelation = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#joinType. | |
SqlBaseListener.prototype.enterJoinType = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#joinType. | |
SqlBaseListener.prototype.exitJoinType = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#joinCriteria. | |
SqlBaseListener.prototype.enterJoinCriteria = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#joinCriteria. | |
SqlBaseListener.prototype.exitJoinCriteria = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#sampledRelation. | |
SqlBaseListener.prototype.enterSampledRelation = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#sampledRelation. | |
SqlBaseListener.prototype.exitSampledRelation = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#sampleType. | |
SqlBaseListener.prototype.enterSampleType = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#sampleType. | |
SqlBaseListener.prototype.exitSampleType = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#aliasedRelation. | |
SqlBaseListener.prototype.enterAliasedRelation = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#aliasedRelation. | |
SqlBaseListener.prototype.exitAliasedRelation = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#columnAliases. | |
SqlBaseListener.prototype.enterColumnAliases = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#columnAliases. | |
SqlBaseListener.prototype.exitColumnAliases = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#tableName. | |
SqlBaseListener.prototype.enterTableName = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#tableName. | |
SqlBaseListener.prototype.exitTableName = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#subqueryRelation. | |
SqlBaseListener.prototype.enterSubqueryRelation = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#subqueryRelation. | |
SqlBaseListener.prototype.exitSubqueryRelation = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#unnest. | |
SqlBaseListener.prototype.enterUnnest = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#unnest. | |
SqlBaseListener.prototype.exitUnnest = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#lateral. | |
SqlBaseListener.prototype.enterLateral = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#lateral. | |
SqlBaseListener.prototype.exitLateral = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#parenthesizedRelation. | |
SqlBaseListener.prototype.enterParenthesizedRelation = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#parenthesizedRelation. | |
SqlBaseListener.prototype.exitParenthesizedRelation = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#expression. | |
SqlBaseListener.prototype.enterExpression = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#expression. | |
SqlBaseListener.prototype.exitExpression = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#logicalNot. | |
SqlBaseListener.prototype.enterLogicalNot = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#logicalNot. | |
SqlBaseListener.prototype.exitLogicalNot = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#predicated. | |
SqlBaseListener.prototype.enterPredicated = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#predicated. | |
SqlBaseListener.prototype.exitPredicated = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#logicalBinary. | |
SqlBaseListener.prototype.enterLogicalBinary = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#logicalBinary. | |
SqlBaseListener.prototype.exitLogicalBinary = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#comparison. | |
SqlBaseListener.prototype.enterComparison = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#comparison. | |
SqlBaseListener.prototype.exitComparison = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#quantifiedComparison. | |
SqlBaseListener.prototype.enterQuantifiedComparison = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#quantifiedComparison. | |
SqlBaseListener.prototype.exitQuantifiedComparison = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#between. | |
SqlBaseListener.prototype.enterBetween = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#between. | |
SqlBaseListener.prototype.exitBetween = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#inList. | |
SqlBaseListener.prototype.enterInList = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#inList. | |
SqlBaseListener.prototype.exitInList = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#inSubquery. | |
SqlBaseListener.prototype.enterInSubquery = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#inSubquery. | |
SqlBaseListener.prototype.exitInSubquery = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#like. | |
SqlBaseListener.prototype.enterLike = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#like. | |
SqlBaseListener.prototype.exitLike = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#nullPredicate. | |
SqlBaseListener.prototype.enterNullPredicate = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#nullPredicate. | |
SqlBaseListener.prototype.exitNullPredicate = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#distinctFrom. | |
SqlBaseListener.prototype.enterDistinctFrom = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#distinctFrom. | |
SqlBaseListener.prototype.exitDistinctFrom = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#valueExpressionDefault. | |
SqlBaseListener.prototype.enterValueExpressionDefault = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#valueExpressionDefault. | |
SqlBaseListener.prototype.exitValueExpressionDefault = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#concatenation. | |
SqlBaseListener.prototype.enterConcatenation = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#concatenation. | |
SqlBaseListener.prototype.exitConcatenation = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#arithmeticBinary. | |
SqlBaseListener.prototype.enterArithmeticBinary = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#arithmeticBinary. | |
SqlBaseListener.prototype.exitArithmeticBinary = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#arithmeticUnary. | |
SqlBaseListener.prototype.enterArithmeticUnary = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#arithmeticUnary. | |
SqlBaseListener.prototype.exitArithmeticUnary = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#atTimeZone. | |
SqlBaseListener.prototype.enterAtTimeZone = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#atTimeZone. | |
SqlBaseListener.prototype.exitAtTimeZone = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#dereference. | |
SqlBaseListener.prototype.enterDereference = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#dereference. | |
SqlBaseListener.prototype.exitDereference = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#typeConstructor. | |
SqlBaseListener.prototype.enterTypeConstructor = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#typeConstructor. | |
SqlBaseListener.prototype.exitTypeConstructor = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#specialDateTimeFunction. | |
SqlBaseListener.prototype.enterSpecialDateTimeFunction = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#specialDateTimeFunction. | |
SqlBaseListener.prototype.exitSpecialDateTimeFunction = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#substring. | |
SqlBaseListener.prototype.enterSubstring = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#substring. | |
SqlBaseListener.prototype.exitSubstring = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#cast. | |
SqlBaseListener.prototype.enterCast = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#cast. | |
SqlBaseListener.prototype.exitCast = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#lambda. | |
SqlBaseListener.prototype.enterLambda = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#lambda. | |
SqlBaseListener.prototype.exitLambda = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#parenthesizedExpression. | |
SqlBaseListener.prototype.enterParenthesizedExpression = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#parenthesizedExpression. | |
SqlBaseListener.prototype.exitParenthesizedExpression = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#parameter. | |
SqlBaseListener.prototype.enterParameter = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#parameter. | |
SqlBaseListener.prototype.exitParameter = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#normalize. | |
SqlBaseListener.prototype.enterNormalize = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#normalize. | |
SqlBaseListener.prototype.exitNormalize = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#intervalLiteral. | |
SqlBaseListener.prototype.enterIntervalLiteral = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#intervalLiteral. | |
SqlBaseListener.prototype.exitIntervalLiteral = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#numericLiteral. | |
SqlBaseListener.prototype.enterNumericLiteral = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#numericLiteral. | |
SqlBaseListener.prototype.exitNumericLiteral = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#booleanLiteral. | |
SqlBaseListener.prototype.enterBooleanLiteral = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#booleanLiteral. | |
SqlBaseListener.prototype.exitBooleanLiteral = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#simpleCase. | |
SqlBaseListener.prototype.enterSimpleCase = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#simpleCase. | |
SqlBaseListener.prototype.exitSimpleCase = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#columnReference. | |
SqlBaseListener.prototype.enterColumnReference = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#columnReference. | |
SqlBaseListener.prototype.exitColumnReference = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#nullLiteral. | |
SqlBaseListener.prototype.enterNullLiteral = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#nullLiteral. | |
SqlBaseListener.prototype.exitNullLiteral = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#rowConstructor. | |
SqlBaseListener.prototype.enterRowConstructor = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#rowConstructor. | |
SqlBaseListener.prototype.exitRowConstructor = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#subscript. | |
SqlBaseListener.prototype.enterSubscript = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#subscript. | |
SqlBaseListener.prototype.exitSubscript = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#currentPath. | |
SqlBaseListener.prototype.enterCurrentPath = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#currentPath. | |
SqlBaseListener.prototype.exitCurrentPath = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#subqueryExpression. | |
SqlBaseListener.prototype.enterSubqueryExpression = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#subqueryExpression. | |
SqlBaseListener.prototype.exitSubqueryExpression = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#binaryLiteral. | |
SqlBaseListener.prototype.enterBinaryLiteral = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#binaryLiteral. | |
SqlBaseListener.prototype.exitBinaryLiteral = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#currentUser. | |
SqlBaseListener.prototype.enterCurrentUser = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#currentUser. | |
SqlBaseListener.prototype.exitCurrentUser = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#extract. | |
SqlBaseListener.prototype.enterExtract = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#extract. | |
SqlBaseListener.prototype.exitExtract = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#stringLiteral. | |
SqlBaseListener.prototype.enterStringLiteral = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#stringLiteral. | |
SqlBaseListener.prototype.exitStringLiteral = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#arrayConstructor. | |
SqlBaseListener.prototype.enterArrayConstructor = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#arrayConstructor. | |
SqlBaseListener.prototype.exitArrayConstructor = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#functionCall. | |
SqlBaseListener.prototype.enterFunctionCall = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#functionCall. | |
SqlBaseListener.prototype.exitFunctionCall = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#exists. | |
SqlBaseListener.prototype.enterExists = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#exists. | |
SqlBaseListener.prototype.exitExists = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#position. | |
SqlBaseListener.prototype.enterPosition = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#position. | |
SqlBaseListener.prototype.exitPosition = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#searchedCase. | |
SqlBaseListener.prototype.enterSearchedCase = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#searchedCase. | |
SqlBaseListener.prototype.exitSearchedCase = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#groupingOperation. | |
SqlBaseListener.prototype.enterGroupingOperation = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#groupingOperation. | |
SqlBaseListener.prototype.exitGroupingOperation = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#basicStringLiteral. | |
SqlBaseListener.prototype.enterBasicStringLiteral = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#basicStringLiteral. | |
SqlBaseListener.prototype.exitBasicStringLiteral = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#unicodeStringLiteral. | |
SqlBaseListener.prototype.enterUnicodeStringLiteral = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#unicodeStringLiteral. | |
SqlBaseListener.prototype.exitUnicodeStringLiteral = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#timeZoneInterval. | |
SqlBaseListener.prototype.enterTimeZoneInterval = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#timeZoneInterval. | |
SqlBaseListener.prototype.exitTimeZoneInterval = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#timeZoneString. | |
SqlBaseListener.prototype.enterTimeZoneString = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#timeZoneString. | |
SqlBaseListener.prototype.exitTimeZoneString = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#comparisonOperator. | |
SqlBaseListener.prototype.enterComparisonOperator = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#comparisonOperator. | |
SqlBaseListener.prototype.exitComparisonOperator = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#comparisonQuantifier. | |
SqlBaseListener.prototype.enterComparisonQuantifier = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#comparisonQuantifier. | |
SqlBaseListener.prototype.exitComparisonQuantifier = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#booleanValue. | |
SqlBaseListener.prototype.enterBooleanValue = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#booleanValue. | |
SqlBaseListener.prototype.exitBooleanValue = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#interval. | |
SqlBaseListener.prototype.enterInterval = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#interval. | |
SqlBaseListener.prototype.exitInterval = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#intervalField. | |
SqlBaseListener.prototype.enterIntervalField = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#intervalField. | |
SqlBaseListener.prototype.exitIntervalField = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#normalForm. | |
SqlBaseListener.prototype.enterNormalForm = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#normalForm. | |
SqlBaseListener.prototype.exitNormalForm = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#type. | |
SqlBaseListener.prototype.enterType = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#type. | |
SqlBaseListener.prototype.exitType = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#typeParameter. | |
SqlBaseListener.prototype.enterTypeParameter = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#typeParameter. | |
SqlBaseListener.prototype.exitTypeParameter = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#baseType. | |
SqlBaseListener.prototype.enterBaseType = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#baseType. | |
SqlBaseListener.prototype.exitBaseType = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#whenClause. | |
SqlBaseListener.prototype.enterWhenClause = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#whenClause. | |
SqlBaseListener.prototype.exitWhenClause = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#filter. | |
SqlBaseListener.prototype.enterFilter = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#filter. | |
SqlBaseListener.prototype.exitFilter = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#over. | |
SqlBaseListener.prototype.enterOver = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#over. | |
SqlBaseListener.prototype.exitOver = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#windowFrame. | |
SqlBaseListener.prototype.enterWindowFrame = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#windowFrame. | |
SqlBaseListener.prototype.exitWindowFrame = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#unboundedFrame. | |
SqlBaseListener.prototype.enterUnboundedFrame = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#unboundedFrame. | |
SqlBaseListener.prototype.exitUnboundedFrame = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#currentRowBound. | |
SqlBaseListener.prototype.enterCurrentRowBound = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#currentRowBound. | |
SqlBaseListener.prototype.exitCurrentRowBound = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#boundedFrame. | |
SqlBaseListener.prototype.enterBoundedFrame = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#boundedFrame. | |
SqlBaseListener.prototype.exitBoundedFrame = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#explainFormat. | |
SqlBaseListener.prototype.enterExplainFormat = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#explainFormat. | |
SqlBaseListener.prototype.exitExplainFormat = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#explainType. | |
SqlBaseListener.prototype.enterExplainType = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#explainType. | |
SqlBaseListener.prototype.exitExplainType = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#isolationLevel. | |
SqlBaseListener.prototype.enterIsolationLevel = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#isolationLevel. | |
SqlBaseListener.prototype.exitIsolationLevel = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#transactionAccessMode. | |
SqlBaseListener.prototype.enterTransactionAccessMode = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#transactionAccessMode. | |
SqlBaseListener.prototype.exitTransactionAccessMode = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#readUncommitted. | |
SqlBaseListener.prototype.enterReadUncommitted = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#readUncommitted. | |
SqlBaseListener.prototype.exitReadUncommitted = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#readCommitted. | |
SqlBaseListener.prototype.enterReadCommitted = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#readCommitted. | |
SqlBaseListener.prototype.exitReadCommitted = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#repeatableRead. | |
SqlBaseListener.prototype.enterRepeatableRead = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#repeatableRead. | |
SqlBaseListener.prototype.exitRepeatableRead = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#serializable. | |
SqlBaseListener.prototype.enterSerializable = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#serializable. | |
SqlBaseListener.prototype.exitSerializable = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#positionalArgument. | |
SqlBaseListener.prototype.enterPositionalArgument = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#positionalArgument. | |
SqlBaseListener.prototype.exitPositionalArgument = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#namedArgument. | |
SqlBaseListener.prototype.enterNamedArgument = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#namedArgument. | |
SqlBaseListener.prototype.exitNamedArgument = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#qualifiedArgument. | |
SqlBaseListener.prototype.enterQualifiedArgument = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#qualifiedArgument. | |
SqlBaseListener.prototype.exitQualifiedArgument = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#unqualifiedArgument. | |
SqlBaseListener.prototype.enterUnqualifiedArgument = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#unqualifiedArgument. | |
SqlBaseListener.prototype.exitUnqualifiedArgument = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#pathSpecification. | |
SqlBaseListener.prototype.enterPathSpecification = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#pathSpecification. | |
SqlBaseListener.prototype.exitPathSpecification = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#privilege. | |
SqlBaseListener.prototype.enterPrivilege = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#privilege. | |
SqlBaseListener.prototype.exitPrivilege = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#qualifiedName. | |
SqlBaseListener.prototype.enterQualifiedName = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#qualifiedName. | |
SqlBaseListener.prototype.exitQualifiedName = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#unquotedIdentifier. | |
SqlBaseListener.prototype.enterUnquotedIdentifier = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#unquotedIdentifier. | |
SqlBaseListener.prototype.exitUnquotedIdentifier = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#quotedIdentifier. | |
SqlBaseListener.prototype.enterQuotedIdentifier = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#quotedIdentifier. | |
SqlBaseListener.prototype.exitQuotedIdentifier = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#backQuotedIdentifier. | |
SqlBaseListener.prototype.enterBackQuotedIdentifier = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#backQuotedIdentifier. | |
SqlBaseListener.prototype.exitBackQuotedIdentifier = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#digitIdentifier. | |
SqlBaseListener.prototype.enterDigitIdentifier = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#digitIdentifier. | |
SqlBaseListener.prototype.exitDigitIdentifier = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#decimalLiteral. | |
SqlBaseListener.prototype.enterDecimalLiteral = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#decimalLiteral. | |
SqlBaseListener.prototype.exitDecimalLiteral = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#doubleLiteral. | |
SqlBaseListener.prototype.enterDoubleLiteral = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#doubleLiteral. | |
SqlBaseListener.prototype.exitDoubleLiteral = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#integerLiteral. | |
SqlBaseListener.prototype.enterIntegerLiteral = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#integerLiteral. | |
SqlBaseListener.prototype.exitIntegerLiteral = function(ctx) { | |
}; | |
// Enter a parse tree produced by SqlBaseParser#nonReserved. | |
SqlBaseListener.prototype.enterNonReserved = function(ctx) { | |
}; | |
// Exit a parse tree produced by SqlBaseParser#nonReserved. | |
SqlBaseListener.prototype.exitNonReserved = function(ctx) { | |
}; | |
exports.SqlBaseListener = SqlBaseListener; | |
},{"antlr4/index":45}],3:[function(require,module,exports){ | |
// Generated from SqlBase.g4 by ANTLR 4.7.1 | |
// jshint ignore: start | |
var antlr4 = require('antlr4/index'); | |
var SqlBaseListener = require('./SqlBaseListener').SqlBaseListener; | |
var grammarFileName = "SqlBase.g4"; | |
var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", | |
"\u0003\u00de\u05d5\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?\u0003", | |
"\u0002\u0003\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003", | |
"\u0004\u0003\u0004\u0003\u0004\u0003\u0005\u0003\u0005\u0003\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u0095\n\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u009a\n\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u00a0\n\u0005", | |
"\u0003\u0005\u0003\u0005\u0005\u0005\u00a4\n\u0005\u0003\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u00b2", | |
"\n\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u00b6\n\u0005\u0003\u0005", | |
"\u0003\u0005\u0005\u0005\u00ba\n\u0005\u0003\u0005\u0003\u0005\u0005", | |
"\u0005\u00be\n\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0005\u0005\u00c6\n\u0005\u0003\u0005\u0003", | |
"\u0005\u0005\u0005\u00ca\n\u0005\u0003\u0005\u0005\u0005\u00cd\n\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005", | |
"\u00d4\n\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003", | |
"\u0005\u0007\u0005\u00db\n\u0005\f\u0005\u000e\u0005\u00de\u000b\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u00e3\n\u0005\u0003", | |
"\u0005\u0003\u0005\u0005\u0005\u00e7\n\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0005\u0005\u00ed\n\u0005\u0003\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u00f4\n\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0005\u0005\u00fd\n\u0005\u0003\u0005\u0003\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003", | |
"\u0005\u0005\u0005\u0120\n\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0005\u0005\u012b\n\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0007\u0005\u0134\n\u0005", | |
"\f\u0005\u000e\u0005\u0137\u000b\u0005\u0005\u0005\u0139\n\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0007", | |
"\u0005\u0141\n\u0005\f\u0005\u000e\u0005\u0144\u000b\u0005\u0003\u0005", | |
"\u0003\u0005\u0005\u0005\u0148\n\u0005\u0003\u0005\u0003\u0005\u0005", | |
"\u0005\u014c\n\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0005\u0005\u0154\n\u0005\u0003\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u015a\n\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0007\u0005\u015f\n\u0005\f\u0005\u000e\u0005", | |
"\u0162\u000b\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u0166\n\u0005", | |
"\u0003\u0005\u0003\u0005\u0005\u0005\u016a\n\u0005\u0003\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003", | |
"\u0005\u0005\u0005\u0174\n\u0005\u0003\u0005\u0005\u0005\u0177\n\u0005", | |
"\u0003\u0005\u0003\u0005\u0005\u0005\u017b\n\u0005\u0003\u0005\u0005", | |
"\u0005\u017e\n\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0007\u0005\u0184\n\u0005\f\u0005\u000e\u0005\u0187\u000b\u0005\u0003", | |
"\u0005\u0003\u0005\u0005\u0005\u018b\n\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005", | |
"\u019a\n\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0005", | |
"\u0005\u01a0\n\u0005\u0005\u0005\u01a2\n\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0005\u0005\u01a8\n\u0005\u0003\u0005\u0003", | |
"\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u01ae\n\u0005\u0005\u0005", | |
"\u01b0\n\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0005", | |
"\u0005\u01b6\n\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0007\u0005\u01dd\n\u0005\f\u0005", | |
"\u000e\u0005\u01e0\u000b\u0005\u0005\u0005\u01e2\n\u0005\u0003\u0005", | |
"\u0003\u0005\u0005\u0005\u01e6\n\u0005\u0003\u0005\u0003\u0005\u0005", | |
"\u0005\u01ea\n\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0007\u0005\u01fa\n", | |
"\u0005\f\u0005\u000e\u0005\u01fd\u000b\u0005\u0005\u0005\u01ff\n\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", | |
"\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u020a\n\u0005\u0003", | |
"\u0006\u0005\u0006\u020d\n\u0006\u0003\u0006\u0003\u0006\u0003\u0007", | |
"\u0003\u0007\u0005\u0007\u0213\n\u0007\u0003\u0007\u0003\u0007\u0003", | |
"\u0007\u0007\u0007\u0218\n\u0007\f\u0007\u000e\u0007\u021b\u000b\u0007", | |
"\u0003\b\u0003\b\u0005\b\u021f\n\b\u0003\t\u0003\t\u0003\t\u0003\t\u0005", | |
"\t\u0225\n\t\u0003\t\u0003\t\u0005\t\u0229\n\t\u0003\n\u0003\n\u0003", | |
"\n\u0003\n\u0005\n\u022f\n\n\u0003\u000b\u0003\u000b\u0003\u000b\u0003", | |
"\u000b\u0007\u000b\u0235\n\u000b\f\u000b\u000e\u000b\u0238\u000b\u000b", | |
"\u0003\u000b\u0003\u000b\u0003\f\u0003\f\u0003\f\u0003\f\u0003\r\u0003", | |
"\r\u0003\r\u0003\r\u0003\r\u0003\r\u0007\r\u0246\n\r\f\r\u000e\r\u0249", | |
"\u000b\r\u0005\r\u024b\n\r\u0003\r\u0003\r\u0005\r\u024f\n\r\u0003\u000e", | |
"\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0005\u000e", | |
"\u0257\n\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0005", | |
"\u000e\u025d\n\u000e\u0003\u000e\u0007\u000e\u0260\n\u000e\f\u000e\u000e", | |
"\u000e\u0263\u000b\u000e\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f", | |
"\u0003\u000f\u0003\u000f\u0003\u000f\u0007\u000f\u026c\n\u000f\f\u000f", | |
"\u000e\u000f\u026f\u000b\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003", | |
"\u000f\u0005\u000f\u0275\n\u000f\u0003\u0010\u0003\u0010\u0005\u0010", | |
"\u0279\n\u0010\u0003\u0010\u0003\u0010\u0005\u0010\u027d\n\u0010\u0003", | |
"\u0011\u0003\u0011\u0005\u0011\u0281\n\u0011\u0003\u0011\u0003\u0011", | |
"\u0003\u0011\u0007\u0011\u0286\n\u0011\f\u0011\u000e\u0011\u0289\u000b", | |
"\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0007\u0011\u028f", | |
"\n\u0011\f\u0011\u000e\u0011\u0292\u000b\u0011\u0005\u0011\u0294\n\u0011", | |
"\u0003\u0011\u0003\u0011\u0005\u0011\u0298\n\u0011\u0003\u0011\u0003", | |
"\u0011\u0003\u0011\u0005\u0011\u029d\n\u0011\u0003\u0011\u0003\u0011", | |
"\u0005\u0011\u02a1\n\u0011\u0003\u0012\u0005\u0012\u02a4\n\u0012\u0003", | |
"\u0012\u0003\u0012\u0003\u0012\u0007\u0012\u02a9\n\u0012\f\u0012\u000e", | |
"\u0012\u02ac\u000b\u0012\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013", | |
"\u0003\u0013\u0003\u0013\u0007\u0013\u02b4\n\u0013\f\u0013\u000e\u0013", | |
"\u02b7\u000b\u0013\u0005\u0013\u02b9\n\u0013\u0003\u0013\u0003\u0013", | |
"\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0007\u0013\u02c1\n", | |
"\u0013\f\u0013\u000e\u0013\u02c4\u000b\u0013\u0005\u0013\u02c6\n\u0013", | |
"\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013", | |
"\u0003\u0013\u0007\u0013\u02cf\n\u0013\f\u0013\u000e\u0013\u02d2\u000b", | |
"\u0013\u0003\u0013\u0003\u0013\u0005\u0013\u02d6\n\u0013\u0003\u0014", | |
"\u0003\u0014\u0003\u0014\u0003\u0014\u0007\u0014\u02dc\n\u0014\f\u0014", | |
"\u000e\u0014\u02df\u000b\u0014\u0005\u0014\u02e1\n\u0014\u0003\u0014", | |
"\u0003\u0014\u0005\u0014\u02e5\n\u0014\u0003\u0015\u0003\u0015\u0005", | |
"\u0015\u02e9\n\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015", | |
"\u0003\u0015\u0003\u0016\u0003\u0016\u0003\u0017\u0003\u0017\u0005\u0017", | |
"\u02f4\n\u0017\u0003\u0017\u0005\u0017\u02f7\n\u0017\u0003\u0017\u0003", | |
"\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0005\u0017\u02fe\n\u0017", | |
"\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018", | |
"\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018", | |
"\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0005\u0018", | |
"\u0311\n\u0018\u0007\u0018\u0313\n\u0018\f\u0018\u000e\u0018\u0316\u000b", | |
"\u0018\u0003\u0019\u0005\u0019\u0319\n\u0019\u0003\u0019\u0003\u0019", | |
"\u0005\u0019\u031d\n\u0019\u0003\u0019\u0003\u0019\u0005\u0019\u0321", | |
"\n\u0019\u0003\u0019\u0003\u0019\u0005\u0019\u0325\n\u0019\u0005\u0019", | |
"\u0327\n\u0019\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003", | |
"\u001a\u0003\u001a\u0003\u001a\u0007\u001a\u0330\n\u001a\f\u001a\u000e", | |
"\u001a\u0333\u000b\u001a\u0003\u001a\u0003\u001a\u0005\u001a\u0337\n", | |
"\u001a\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0003", | |
"\u001b\u0003\u001b\u0005\u001b\u0340\n\u001b\u0003\u001c\u0003\u001c", | |
"\u0003\u001d\u0003\u001d\u0005\u001d\u0346\n\u001d\u0003\u001d\u0003", | |
"\u001d\u0005\u001d\u034a\n\u001d\u0005\u001d\u034c\n\u001d\u0003\u001e", | |
"\u0003\u001e\u0003\u001e\u0003\u001e\u0007\u001e\u0352\n\u001e\f\u001e", | |
"\u000e\u001e\u0355\u000b\u001e\u0003\u001e\u0003\u001e\u0003\u001f\u0003", | |
"\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003", | |
"\u001f\u0003\u001f\u0003\u001f\u0007\u001f\u0363\n\u001f\f\u001f\u000e", | |
"\u001f\u0366\u000b\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0005\u001f", | |
"\u036b\n\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003", | |
"\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0005\u001f\u0376", | |
"\n\u001f\u0003 \u0003 \u0003!\u0003!\u0003!\u0005!\u037d\n!\u0003!\u0003", | |
"!\u0005!\u0381\n!\u0003!\u0003!\u0003!\u0003!\u0003!\u0003!\u0007!\u0389", | |
"\n!\f!\u000e!\u038c\u000b!\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003", | |
"\"\u0003\"\u0003\"\u0003\"\u0003\"\u0005\"\u0398\n\"\u0003\"\u0003\"", | |
"\u0003\"\u0003\"\u0003\"\u0003\"\u0005\"\u03a0\n\"\u0003\"\u0003\"\u0003", | |
"\"\u0003\"\u0003\"\u0007\"\u03a7\n\"\f\"\u000e\"\u03aa\u000b\"\u0003", | |
"\"\u0003\"\u0003\"\u0005\"\u03af\n\"\u0003\"\u0003\"\u0003\"\u0003\"", | |
"\u0003\"\u0003\"\u0005\"\u03b7\n\"\u0003\"\u0003\"\u0003\"\u0003\"\u0005", | |
"\"\u03bd\n\"\u0003\"\u0003\"\u0005\"\u03c1\n\"\u0003\"\u0003\"\u0003", | |
"\"\u0005\"\u03c6\n\"\u0003\"\u0003\"\u0003\"\u0005\"\u03cb\n\"\u0003", | |
"#\u0003#\u0003#\u0003#\u0005#\u03d1\n#\u0003#\u0003#\u0003#\u0003#\u0003", | |
"#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0007#\u03df\n#\f", | |
"#\u000e#\u03e2\u000b#\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003", | |
"$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003", | |
"$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0006$\u03fc\n$\r", | |
"$\u000e$\u03fd\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0007", | |
"$\u0407\n$\f$\u000e$\u040a\u000b$\u0003$\u0003$\u0003$\u0003$\u0003", | |
"$\u0003$\u0003$\u0005$\u0413\n$\u0003$\u0005$\u0416\n$\u0003$\u0003", | |
"$\u0003$\u0005$\u041b\n$\u0003$\u0003$\u0003$\u0007$\u0420\n$\f$\u000e", | |
"$\u0423\u000b$\u0005$\u0425\n$\u0003$\u0003$\u0003$\u0003$\u0003$\u0007", | |
"$\u042c\n$\f$\u000e$\u042f\u000b$\u0005$\u0431\n$\u0003$\u0003$\u0005", | |
"$\u0435\n$\u0003$\u0005$\u0438\n$\u0003$\u0003$\u0003$\u0003$\u0003", | |
"$\u0003$\u0003$\u0003$\u0007$\u0442\n$\f$\u000e$\u0445\u000b$\u0005", | |
"$\u0447\n$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003", | |
"$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0006$\u0458\n$\r$\u000e", | |
"$\u0459\u0003$\u0003$\u0005$\u045e\n$\u0003$\u0003$\u0003$\u0003$\u0006", | |
"$\u0464\n$\r$\u000e$\u0465\u0003$\u0003$\u0005$\u046a\n$\u0003$\u0003", | |
"$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003", | |
"$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0007", | |
"$\u0481\n$\f$\u000e$\u0484\u000b$\u0005$\u0486\n$\u0003$\u0003$\u0003", | |
"$\u0003$\u0003$\u0003$\u0003$\u0005$\u048f\n$\u0003$\u0003$\u0003$\u0003", | |
"$\u0005$\u0495\n$\u0003$\u0003$\u0003$\u0003$\u0005$\u049b\n$\u0003", | |
"$\u0003$\u0003$\u0003$\u0005$\u04a1\n$\u0003$\u0003$\u0003$\u0003$\u0003", | |
"$\u0003$\u0003$\u0003$\u0003$\u0005$\u04ac\n$\u0003$\u0003$\u0003$\u0003", | |
"$\u0003$\u0003$\u0003$\u0005$\u04b5\n$\u0003$\u0003$\u0003$\u0003$\u0003", | |
"$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003", | |
"$\u0003$\u0003$\u0003$\u0007$\u04c9\n$\f$\u000e$\u04cc\u000b$\u0005", | |
"$\u04ce\n$\u0003$\u0005$\u04d1\n$\u0003$\u0003$\u0003$\u0003$\u0003", | |
"$\u0003$\u0003$\u0003$\u0007$\u04db\n$\f$\u000e$\u04de\u000b$\u0003", | |
"%\u0003%\u0003%\u0003%\u0005%\u04e4\n%\u0005%\u04e6\n%\u0003&\u0003", | |
"&\u0003&\u0003&\u0003&\u0003&\u0005&\u04ee\n&\u0003\'\u0003\'\u0003", | |
"(\u0003(\u0003)\u0003)\u0003*\u0003*\u0005*\u04f8\n*\u0003*\u0003*\u0003", | |
"*\u0003*\u0005*\u04fe\n*\u0003+\u0003+\u0003,\u0003,\u0003-\u0003-\u0003", | |
"-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003", | |
"-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0007-\u0519", | |
"\n-\f-\u000e-\u051c\u000b-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003", | |
"-\u0003-\u0007-\u0525\n-\f-\u000e-\u0528\u000b-\u0003-\u0003-\u0005", | |
"-\u052c\n-\u0003-\u0003-\u0003-\u0003-\u0003-\u0005-\u0533\n-\u0003", | |
"-\u0003-\u0007-\u0537\n-\f-\u000e-\u053a\u000b-\u0003.\u0003.\u0005", | |
".\u053e\n.\u0003/\u0003/\u0003/\u0003/\u0005/\u0544\n/\u00030\u0003", | |
"0\u00030\u00030\u00030\u00031\u00031\u00031\u00031\u00031\u00031\u0003", | |
"2\u00032\u00032\u00032\u00032\u00032\u00032\u00072\u0558\n2\f2\u000e", | |
"2\u055b\u000b2\u00052\u055d\n2\u00032\u00032\u00032\u00032\u00032\u0007", | |
"2\u0564\n2\f2\u000e2\u0567\u000b2\u00052\u0569\n2\u00032\u00052\u056c", | |
"\n2\u00032\u00032\u00033\u00033\u00033\u00033\u00033\u00033\u00033\u0003", | |
"3\u00033\u00033\u00033\u00033\u00033\u00033\u00033\u00033\u00053\u0580", | |
"\n3\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u0005", | |
"4\u058b\n4\u00035\u00035\u00035\u00035\u00055\u0591\n5\u00036\u0003", | |
"6\u00036\u00036\u00036\u00056\u0598\n6\u00037\u00037\u00037\u00037\u0003", | |
"7\u00037\u00037\u00057\u05a1\n7\u00038\u00038\u00038\u00038\u00038\u0005", | |
"8\u05a8\n8\u00039\u00039\u00039\u00039\u00039\u00059\u05af\n9\u0003", | |
":\u0003:\u0003:\u0007:\u05b4\n:\f:\u000e:\u05b7\u000b:\u0003;\u0003", | |
";\u0003;\u0003;\u0005;\u05bd\n;\u0003<\u0003<\u0003<\u0007<\u05c2\n", | |
"<\f<\u000e<\u05c5\u000b<\u0003=\u0003=\u0003=\u0003=\u0003=\u0005=\u05cc", | |
"\n=\u0003>\u0003>\u0003>\u0005>\u05d1\n>\u0003?\u0003?\u0003?\u0002", | |
"\b\u001a.@DFX@\u0002\u0004\u0006\b\n\f\u000e\u0010\u0012\u0014\u0016", | |
"\u0018\u001a\u001c\u001e \"$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnp", | |
"rtvxz|\u0002\u0018\u0004\u0002\u001a\u001a\u008e\u008e\u0004\u0002F", | |
"FQQ\u0004\u0002DDuu\u0004\u0002;;RR\u0004\u0002\r\r\u00d0\u00d0\u0004", | |
"\u0002::\u00b2\u00b2\u0004\u0002\u0014\u001422\u0004\u0002BB^^\u0004", | |
"\u0002\r\r44\u0004\u0002\u0016\u0016\u00a2\u00a2\u0003\u0002\u00c7\u00c8", | |
"\u0003\u0002\u00c9\u00cb\u0003\u0002\u00c1\u00c6\u0005\u0002\r\r\u0011", | |
"\u0011\u009e\u009e\u0004\u0002@@\u00ac\u00ac\u0007\u0002//OOhi\u0097", | |
"\u0097\u00bf\u00bf\u0003\u0002kn\u0004\u0002CC\u0082\u0082\u0005\u0002", | |
"KK\\\\\u00a6\u00a6\u0006\u000255YYff\u00b6\u00b6\u0004\u0002vv\u00be", | |
"\u00be-\u0002\f\r\u000f\u000f\u0011\u0012\u0014\u0016\u0019\u001a\u001d", | |
"\"\'\'-/2255;;>>ACEEHKOPRRTTWWYY[\\^_aaccfikostvwzz|\u0082\u0084\u0088", | |
"\u008a\u008f\u0091\u0091\u0093\u0097\u0099\u00a2\u00a4\u00a6\u00a8\u00ab", | |
"\u00ad\u00ae\u00b0\u00b1\u00b4\u00b4\u00b6\u00b6\u00b8\u00b9\u00bd\u00c0", | |
"\u0002\u06be\u0002~\u0003\u0002\u0002\u0002\u0004\u0081\u0003\u0002", | |
"\u0002\u0002\u0006\u0084\u0003\u0002\u0002\u0002\b\u0209\u0003\u0002", | |
"\u0002\u0002\n\u020c\u0003\u0002\u0002\u0002\f\u0210\u0003\u0002\u0002", | |
"\u0002\u000e\u021e\u0003\u0002\u0002\u0002\u0010\u0220\u0003\u0002\u0002", | |
"\u0002\u0012\u022a\u0003\u0002\u0002\u0002\u0014\u0230\u0003\u0002\u0002", | |
"\u0002\u0016\u023b\u0003\u0002\u0002\u0002\u0018\u023f\u0003\u0002\u0002", | |
"\u0002\u001a\u0250\u0003\u0002\u0002\u0002\u001c\u0274\u0003\u0002\u0002", | |
"\u0002\u001e\u0276\u0003\u0002\u0002\u0002 \u027e\u0003\u0002\u0002", | |
"\u0002\"\u02a3\u0003\u0002\u0002\u0002$\u02d5\u0003\u0002\u0002\u0002", | |
"&\u02e4\u0003\u0002\u0002\u0002(\u02e6\u0003\u0002\u0002\u0002*\u02ef", | |
"\u0003\u0002\u0002\u0002,\u02fd\u0003\u0002\u0002\u0002.\u02ff\u0003", | |
"\u0002\u0002\u00020\u0326\u0003\u0002\u0002\u00022\u0336\u0003\u0002", | |
"\u0002\u00024\u0338\u0003\u0002\u0002\u00026\u0341\u0003\u0002\u0002", | |
"\u00028\u0343\u0003\u0002\u0002\u0002:\u034d\u0003\u0002\u0002\u0002", | |
"<\u0375\u0003\u0002\u0002\u0002>\u0377\u0003\u0002\u0002\u0002@\u0380", | |
"\u0003\u0002\u0002\u0002B\u03ca\u0003\u0002\u0002\u0002D\u03d0\u0003", | |
"\u0002\u0002\u0002F\u04d0\u0003\u0002\u0002\u0002H\u04e5\u0003\u0002", | |
"\u0002\u0002J\u04ed\u0003\u0002\u0002\u0002L\u04ef\u0003\u0002\u0002", | |
"\u0002N\u04f1\u0003\u0002\u0002\u0002P\u04f3\u0003\u0002\u0002\u0002", | |
"R\u04f5\u0003\u0002\u0002\u0002T\u04ff\u0003\u0002\u0002\u0002V\u0501", | |
"\u0003\u0002\u0002\u0002X\u0532\u0003\u0002\u0002\u0002Z\u053d\u0003", | |
"\u0002\u0002\u0002\\\u0543\u0003\u0002\u0002\u0002^\u0545\u0003\u0002", | |
"\u0002\u0002`\u054a\u0003\u0002\u0002\u0002b\u0550\u0003\u0002\u0002", | |
"\u0002d\u057f\u0003\u0002\u0002\u0002f\u058a\u0003\u0002\u0002\u0002", | |
"h\u0590\u0003\u0002\u0002\u0002j\u0597\u0003\u0002\u0002\u0002l\u05a0", | |
"\u0003\u0002\u0002\u0002n\u05a7\u0003\u0002\u0002\u0002p\u05ae\u0003", | |
"\u0002\u0002\u0002r\u05b0\u0003\u0002\u0002\u0002t\u05bc\u0003\u0002", | |
"\u0002\u0002v\u05be\u0003\u0002\u0002\u0002x\u05cb\u0003\u0002\u0002", | |
"\u0002z\u05d0\u0003\u0002\u0002\u0002|\u05d2\u0003\u0002\u0002\u0002", | |
"~\u007f\u0005\b\u0005\u0002\u007f\u0080\u0007\u0002\u0002\u0003\u0080", | |
"\u0003\u0003\u0002\u0002\u0002\u0081\u0082\u0005> \u0002\u0082\u0083", | |
"\u0007\u0002\u0002\u0003\u0083\u0005\u0003\u0002\u0002\u0002\u0084\u0085", | |
"\u0005r:\u0002\u0085\u0086\u0007\u0002\u0002\u0003\u0086\u0007\u0003", | |
"\u0002\u0002\u0002\u0087\u020a\u0005\n\u0006\u0002\u0088\u0089\u0007", | |
"\u00b4\u0002\u0002\u0089\u020a\u0005x=\u0002\u008a\u008b\u0007\u00b4", | |
"\u0002\u0002\u008b\u008c\u0005x=\u0002\u008c\u008d\u0007\u0003\u0002", | |
"\u0002\u008d\u008e\u0005x=\u0002\u008e\u020a\u0003\u0002\u0002\u0002", | |
"\u008f\u0090\u0007$\u0002\u0002\u0090\u0094\u0007\u0095\u0002\u0002", | |
"\u0091\u0092\u0007P\u0002\u0002\u0092\u0093\u0007q\u0002\u0002\u0093", | |
"\u0095\u0007=\u0002\u0002\u0094\u0091\u0003\u0002\u0002\u0002\u0094", | |
"\u0095\u0003\u0002\u0002\u0002\u0095\u0096\u0003\u0002\u0002\u0002\u0096", | |
"\u0099\u0005v<\u0002\u0097\u0098\u0007\u00bc\u0002\u0002\u0098\u009a", | |
"\u0005\u0014\u000b\u0002\u0099\u0097\u0003\u0002\u0002\u0002\u0099\u009a", | |
"\u0003\u0002\u0002\u0002\u009a\u020a\u0003\u0002\u0002\u0002\u009b\u009c", | |
"\u00076\u0002\u0002\u009c\u009f\u0007\u0095\u0002\u0002\u009d\u009e", | |
"\u0007P\u0002\u0002\u009e\u00a0\u0007=\u0002\u0002\u009f\u009d\u0003", | |
"\u0002\u0002\u0002\u009f\u00a0\u0003\u0002\u0002\u0002\u00a0\u00a1\u0003", | |
"\u0002\u0002\u0002\u00a1\u00a3\u0005v<\u0002\u00a2\u00a4\t\u0002\u0002", | |
"\u0002\u00a3\u00a2\u0003\u0002\u0002\u0002\u00a3\u00a4\u0003\u0002\u0002", | |
"\u0002\u00a4\u020a\u0003\u0002\u0002\u0002\u00a5\u00a6\u0007\u000e\u0002", | |
"\u0002\u00a6\u00a7\u0007\u0095\u0002\u0002\u00a7\u00a8\u0005v<\u0002", | |
"\u00a8\u00a9\u0007\u008a\u0002\u0002\u00a9\u00aa\u0007\u00aa\u0002\u0002", | |
"\u00aa\u00ab\u0005x=\u0002\u00ab\u020a\u0003\u0002\u0002\u0002\u00ac", | |
"\u00ad\u0007$\u0002\u0002\u00ad\u00b1\u0007\u00a3\u0002\u0002\u00ae", | |
"\u00af\u0007P\u0002\u0002\u00af\u00b0\u0007q\u0002\u0002\u00b0\u00b2", | |
"\u0007=\u0002\u0002\u00b1\u00ae\u0003\u0002\u0002\u0002\u00b1\u00b2", | |
"\u0003\u0002\u0002\u0002\u00b2\u00b3\u0003\u0002\u0002\u0002\u00b3\u00b5", | |
"\u0005v<\u0002\u00b4\u00b6\u0005:\u001e\u0002\u00b5\u00b4\u0003\u0002", | |
"\u0002\u0002\u00b5\u00b6\u0003\u0002\u0002\u0002\u00b6\u00b9\u0003\u0002", | |
"\u0002\u0002\u00b7\u00b8\u0007 \u0002\u0002\u00b8\u00ba\u0005H%\u0002", | |
"\u00b9\u00b7\u0003\u0002\u0002\u0002\u00b9\u00ba\u0003\u0002\u0002\u0002", | |
"\u00ba\u00bd\u0003\u0002\u0002\u0002\u00bb\u00bc\u0007\u00bc\u0002\u0002", | |
"\u00bc\u00be\u0005\u0014\u000b\u0002\u00bd\u00bb\u0003\u0002\u0002\u0002", | |
"\u00bd\u00be\u0003\u0002\u0002\u0002\u00be\u00bf\u0003\u0002\u0002\u0002", | |
"\u00bf\u00c5\u0007\u0013\u0002\u0002\u00c0\u00c6\u0005\n\u0006\u0002", | |
"\u00c1\u00c2\u0007\u0004\u0002\u0002\u00c2\u00c3\u0005\n\u0006\u0002", | |
"\u00c3\u00c4\u0007\u0005\u0002\u0002\u00c4\u00c6\u0003\u0002\u0002\u0002", | |
"\u00c5\u00c0\u0003\u0002\u0002\u0002\u00c5\u00c1\u0003\u0002\u0002\u0002", | |
"\u00c6\u00cc\u0003\u0002\u0002\u0002\u00c7\u00c9\u0007\u00bc\u0002\u0002", | |
"\u00c8\u00ca\u0007o\u0002\u0002\u00c9\u00c8\u0003\u0002\u0002\u0002", | |
"\u00c9\u00ca\u0003\u0002\u0002\u0002\u00ca\u00cb\u0003\u0002\u0002\u0002", | |
"\u00cb\u00cd\u0007-\u0002\u0002\u00cc\u00c7\u0003\u0002\u0002\u0002", | |
"\u00cc\u00cd\u0003\u0002\u0002\u0002\u00cd\u020a\u0003\u0002\u0002\u0002", | |
"\u00ce\u00cf\u0007$\u0002\u0002\u00cf\u00d3\u0007\u00a3\u0002\u0002", | |
"\u00d0\u00d1\u0007P\u0002\u0002\u00d1\u00d2\u0007q\u0002\u0002\u00d2", | |
"\u00d4\u0007=\u0002\u0002\u00d3\u00d0\u0003\u0002\u0002\u0002\u00d3", | |
"\u00d4\u0003\u0002\u0002\u0002\u00d4\u00d5\u0003\u0002\u0002\u0002\u00d5", | |
"\u00d6\u0005v<\u0002\u00d6\u00d7\u0007\u0004\u0002\u0002\u00d7\u00dc", | |
"\u0005\u000e\b\u0002\u00d8\u00d9\u0007\u0006\u0002\u0002\u00d9\u00db", | |
"\u0005\u000e\b\u0002\u00da\u00d8\u0003\u0002\u0002\u0002\u00db\u00de", | |
"\u0003\u0002\u0002\u0002\u00dc\u00da\u0003\u0002\u0002\u0002\u00dc\u00dd", | |
"\u0003\u0002\u0002\u0002\u00dd\u00df\u0003\u0002\u0002\u0002\u00de\u00dc", | |
"\u0003\u0002\u0002\u0002\u00df\u00e2\u0007\u0005\u0002\u0002\u00e0\u00e1", | |
"\u0007 \u0002\u0002\u00e1\u00e3\u0005H%\u0002\u00e2\u00e0\u0003\u0002", | |
"\u0002\u0002\u00e2\u00e3\u0003\u0002\u0002\u0002\u00e3\u00e6\u0003\u0002", | |
"\u0002\u0002\u00e4\u00e5\u0007\u00bc\u0002\u0002\u00e5\u00e7\u0005\u0014", | |
"\u000b\u0002\u00e6\u00e4\u0003\u0002\u0002\u0002\u00e6\u00e7\u0003\u0002", | |
"\u0002\u0002\u00e7\u020a\u0003\u0002\u0002\u0002\u00e8\u00e9\u00076", | |
"\u0002\u0002\u00e9\u00ec\u0007\u00a3\u0002\u0002\u00ea\u00eb\u0007P", | |
"\u0002\u0002\u00eb\u00ed\u0007=\u0002\u0002\u00ec\u00ea\u0003\u0002", | |
"\u0002\u0002\u00ec\u00ed\u0003\u0002\u0002\u0002\u00ed\u00ee\u0003\u0002", | |
"\u0002\u0002\u00ee\u020a\u0005v<\u0002\u00ef\u00f0\u0007U\u0002\u0002", | |
"\u00f0\u00f1\u0007X\u0002\u0002\u00f1\u00f3\u0005v<\u0002\u00f2\u00f4", | |
"\u0005:\u001e\u0002\u00f3\u00f2\u0003\u0002\u0002\u0002\u00f3\u00f4", | |
"\u0003\u0002\u0002\u0002\u00f4\u00f5\u0003\u0002\u0002\u0002\u00f5\u00f6", | |
"\u0005\n\u0006\u0002\u00f6\u020a\u0003\u0002\u0002\u0002\u00f7\u00f8", | |
"\u00071\u0002\u0002\u00f8\u00f9\u0007F\u0002\u0002\u00f9\u00fc\u0005", | |
"v<\u0002\u00fa\u00fb\u0007\u00bb\u0002\u0002\u00fb\u00fd\u0005@!\u0002", | |
"\u00fc\u00fa\u0003\u0002\u0002\u0002\u00fc\u00fd\u0003\u0002\u0002\u0002", | |
"\u00fd\u020a\u0003\u0002\u0002\u0002\u00fe\u00ff\u0007\u000e\u0002\u0002", | |
"\u00ff\u0100\u0007\u00a3\u0002\u0002\u0100\u0101\u0005v<\u0002\u0101", | |
"\u0102\u0007\u008a\u0002\u0002\u0102\u0103\u0007\u00aa\u0002\u0002\u0103", | |
"\u0104\u0005v<\u0002\u0104\u020a\u0003\u0002\u0002\u0002\u0105\u0106", | |
"\u0007\u000e\u0002\u0002\u0106\u0107\u0007\u00a3\u0002\u0002\u0107\u0108", | |
"\u0005v<\u0002\u0108\u0109\u0007\u008a\u0002\u0002\u0109\u010a\u0007", | |
"\u001e\u0002\u0002\u010a\u010b\u0005x=\u0002\u010b\u010c\u0007\u00aa", | |
"\u0002\u0002\u010c\u010d\u0005x=\u0002\u010d\u020a\u0003\u0002\u0002", | |
"\u0002\u010e\u010f\u0007\u000e\u0002\u0002\u010f\u0110\u0007\u00a3\u0002", | |
"\u0002\u0110\u0111\u0005v<\u0002\u0111\u0112\u00076\u0002\u0002\u0112", | |
"\u0113\u0007\u001e\u0002\u0002\u0113\u0114\u0005v<\u0002\u0114\u020a", | |
"\u0003\u0002\u0002\u0002\u0115\u0116\u0007\u000e\u0002\u0002\u0116\u0117", | |
"\u0007\u00a3\u0002\u0002\u0117\u0118\u0005v<\u0002\u0118\u0119\u0007", | |
"\f\u0002\u0002\u0119\u011a\u0007\u001e\u0002\u0002\u011a\u011b\u0005", | |
"\u0010\t\u0002\u011b\u020a\u0003\u0002\u0002\u0002\u011c\u011f\u0007", | |
"$\u0002\u0002\u011d\u011e\u0007x\u0002\u0002\u011e\u0120\u0007\u008c", | |
"\u0002\u0002\u011f\u011d\u0003\u0002\u0002\u0002\u011f\u0120\u0003\u0002", | |
"\u0002\u0002\u0120\u0121\u0003\u0002\u0002\u0002\u0121\u0122\u0007\u00b9", | |
"\u0002\u0002\u0122\u0123\u0005v<\u0002\u0123\u0124\u0007\u0013\u0002", | |
"\u0002\u0124\u0125\u0005\n\u0006\u0002\u0125\u020a\u0003\u0002\u0002", | |
"\u0002\u0126\u0127\u00076\u0002\u0002\u0127\u012a\u0007\u00b9\u0002", | |
"\u0002\u0128\u0129\u0007P\u0002\u0002\u0129\u012b\u0007=\u0002\u0002", | |
"\u012a\u0128\u0003\u0002\u0002\u0002\u012a\u012b\u0003\u0002\u0002\u0002", | |
"\u012b\u012c\u0003\u0002\u0002\u0002\u012c\u020a\u0005v<\u0002\u012d", | |
"\u012e\u0007\u0019\u0002\u0002\u012e\u012f\u0005v<\u0002\u012f\u0138", | |
"\u0007\u0004\u0002\u0002\u0130\u0135\u0005n8\u0002\u0131\u0132\u0007", | |
"\u0006\u0002\u0002\u0132\u0134\u0005n8\u0002\u0133\u0131\u0003\u0002", | |
"\u0002\u0002\u0134\u0137\u0003\u0002\u0002\u0002\u0135\u0133\u0003\u0002", | |
"\u0002\u0002\u0135\u0136\u0003\u0002\u0002\u0002\u0136\u0139\u0003\u0002", | |
"\u0002\u0002\u0137\u0135\u0003\u0002\u0002\u0002\u0138\u0130\u0003\u0002", | |
"\u0002\u0002\u0138\u0139\u0003\u0002\u0002\u0002\u0139\u013a\u0003\u0002", | |
"\u0002\u0002\u013a\u013b\u0007\u0005\u0002\u0002\u013b\u020a\u0003\u0002", | |
"\u0002\u0002\u013c\u0147\u0007I\u0002\u0002\u013d\u0142\u0005t;\u0002", | |
"\u013e\u013f\u0007\u0006\u0002\u0002\u013f\u0141\u0005t;\u0002\u0140", | |
"\u013e\u0003\u0002\u0002\u0002\u0141\u0144\u0003\u0002\u0002\u0002\u0142", | |
"\u0140\u0003\u0002\u0002\u0002\u0142\u0143\u0003\u0002\u0002\u0002\u0143", | |
"\u0148\u0003\u0002\u0002\u0002\u0144\u0142\u0003\u0002\u0002\u0002\u0145", | |
"\u0146\u0007\r\u0002\u0002\u0146\u0148\u0007\u0084\u0002\u0002\u0147", | |
"\u013d\u0003\u0002\u0002\u0002\u0147\u0145\u0003\u0002\u0002\u0002\u0148", | |
"\u0149\u0003\u0002\u0002\u0002\u0149\u014b\u0007u\u0002\u0002\u014a", | |
"\u014c\u0007\u00a3\u0002\u0002\u014b\u014a\u0003\u0002\u0002\u0002\u014b", | |
"\u014c\u0003\u0002\u0002\u0002\u014c\u014d\u0003\u0002\u0002\u0002\u014d", | |
"\u014e\u0005v<\u0002\u014e\u014f\u0007\u00aa\u0002\u0002\u014f\u0153", | |
"\u0005x=\u0002\u0150\u0151\u0007\u00bc\u0002\u0002\u0151\u0152\u0007", | |
"I\u0002\u0002\u0152\u0154\u0007w\u0002\u0002\u0153\u0150\u0003\u0002", | |
"\u0002\u0002\u0153\u0154\u0003\u0002\u0002\u0002\u0154\u020a\u0003\u0002", | |
"\u0002\u0002\u0155\u0159\u0007\u008f\u0002\u0002\u0156\u0157\u0007I", | |
"\u0002\u0002\u0157\u0158\u0007w\u0002\u0002\u0158\u015a\u0007D\u0002", | |
"\u0002\u0159\u0156\u0003\u0002\u0002\u0002\u0159\u015a\u0003\u0002\u0002", | |
"\u0002\u015a\u0165\u0003\u0002\u0002\u0002\u015b\u0160\u0005t;\u0002", | |
"\u015c\u015d\u0007\u0006\u0002\u0002\u015d\u015f\u0005t;\u0002\u015e", | |
"\u015c\u0003\u0002\u0002\u0002\u015f\u0162\u0003\u0002\u0002\u0002\u0160", | |
"\u015e\u0003\u0002\u0002\u0002\u0160\u0161\u0003\u0002\u0002\u0002\u0161", | |
"\u0166\u0003\u0002\u0002\u0002\u0162\u0160\u0003\u0002\u0002\u0002\u0163", | |
"\u0164\u0007\r\u0002\u0002\u0164\u0166\u0007\u0084\u0002\u0002\u0165", | |
"\u015b\u0003\u0002\u0002\u0002\u0165\u0163\u0003\u0002\u0002\u0002\u0166", | |
"\u0167\u0003\u0002\u0002\u0002\u0167\u0169\u0007u\u0002\u0002\u0168", | |
"\u016a\u0007\u00a3\u0002\u0002\u0169\u0168\u0003\u0002\u0002\u0002\u0169", | |
"\u016a\u0003\u0002\u0002\u0002\u016a\u016b\u0003\u0002\u0002\u0002\u016b", | |
"\u016c\u0005v<\u0002\u016c\u016d\u0007F\u0002\u0002\u016d\u016e\u0005", | |
"x=\u0002\u016e\u020a\u0003\u0002\u0002\u0002\u016f\u0170\u0007\u009d", | |
"\u0002\u0002\u0170\u0176\u0007J\u0002\u0002\u0171\u0173\u0007u\u0002", | |
"\u0002\u0172\u0174\u0007\u00a3\u0002\u0002\u0173\u0172\u0003\u0002\u0002", | |
"\u0002\u0173\u0174\u0003\u0002\u0002\u0002\u0174\u0175\u0003\u0002\u0002", | |
"\u0002\u0175\u0177\u0005v<\u0002\u0176\u0171\u0003\u0002\u0002\u0002", | |
"\u0176\u0177\u0003\u0002\u0002\u0002\u0177\u020a\u0003\u0002\u0002\u0002", | |
"\u0178\u017a\u0007>\u0002\u0002\u0179\u017b\u0007\u000f\u0002\u0002", | |
"\u017a\u0179\u0003\u0002\u0002\u0002\u017a\u017b\u0003\u0002\u0002\u0002", | |
"\u017b\u017d\u0003\u0002\u0002\u0002\u017c\u017e\u0007\u00b8\u0002\u0002", | |
"\u017d\u017c\u0003\u0002\u0002\u0002\u017d\u017e\u0003\u0002\u0002\u0002", | |
"\u017e\u018a\u0003\u0002\u0002\u0002\u017f\u0180\u0007\u0004\u0002\u0002", | |
"\u0180\u0185\u0005h5\u0002\u0181\u0182\u0007\u0006\u0002\u0002\u0182", | |
"\u0184\u0005h5\u0002\u0183\u0181\u0003\u0002\u0002\u0002\u0184\u0187", | |
"\u0003\u0002\u0002\u0002\u0185\u0183\u0003\u0002\u0002\u0002\u0185\u0186", | |
"\u0003\u0002\u0002\u0002\u0186\u0188\u0003\u0002\u0002\u0002\u0187\u0185", | |
"\u0003\u0002\u0002\u0002\u0188\u0189\u0007\u0005\u0002\u0002\u0189\u018b", | |
"\u0003\u0002\u0002\u0002\u018a\u017f\u0003\u0002\u0002\u0002\u018a\u018b", | |
"\u0003\u0002\u0002\u0002\u018b\u018c\u0003\u0002\u0002\u0002\u018c\u020a", | |
"\u0005\b\u0005\u0002\u018d\u018e\u0007\u009d\u0002\u0002\u018e\u018f", | |
"\u0007$\u0002\u0002\u018f\u0190\u0007\u00a3\u0002\u0002\u0190\u020a", | |
"\u0005v<\u0002\u0191\u0192\u0007\u009d\u0002\u0002\u0192\u0193\u0007", | |
"$\u0002\u0002\u0193\u0194\u0007\u00b9\u0002\u0002\u0194\u020a\u0005", | |
"v<\u0002\u0195\u0196\u0007\u009d\u0002\u0002\u0196\u0199\u0007\u00a4", | |
"\u0002\u0002\u0197\u0198\t\u0003\u0002\u0002\u0198\u019a\u0005v<\u0002", | |
"\u0199\u0197\u0003\u0002\u0002\u0002\u0199\u019a\u0003\u0002\u0002\u0002", | |
"\u019a\u01a1\u0003\u0002\u0002\u0002\u019b\u019c\u0007b\u0002\u0002", | |
"\u019c\u019f\u0005H%\u0002\u019d\u019e\u00079\u0002\u0002\u019e\u01a0", | |
"\u0005H%\u0002\u019f\u019d\u0003\u0002\u0002\u0002\u019f\u01a0\u0003", | |
"\u0002\u0002\u0002\u01a0\u01a2\u0003\u0002\u0002\u0002\u01a1\u019b\u0003", | |
"\u0002\u0002\u0002\u01a1\u01a2\u0003\u0002\u0002\u0002\u01a2\u020a\u0003", | |
"\u0002\u0002\u0002\u01a3\u01a4\u0007\u009d\u0002\u0002\u01a4\u01a7\u0007", | |
"\u0096\u0002\u0002\u01a5\u01a6\t\u0003\u0002\u0002\u01a6\u01a8\u0005", | |
"x=\u0002\u01a7\u01a5\u0003\u0002\u0002\u0002\u01a7\u01a8\u0003\u0002", | |
"\u0002\u0002\u01a8\u01af\u0003\u0002\u0002\u0002\u01a9\u01aa\u0007b", | |
"\u0002\u0002\u01aa\u01ad\u0005H%\u0002\u01ab\u01ac\u00079\u0002\u0002", | |
"\u01ac\u01ae\u0005H%\u0002\u01ad\u01ab\u0003\u0002\u0002\u0002\u01ad", | |
"\u01ae\u0003\u0002\u0002\u0002\u01ae\u01b0\u0003\u0002\u0002\u0002\u01af", | |
"\u01a9\u0003\u0002\u0002\u0002\u01af\u01b0\u0003\u0002\u0002\u0002\u01b0", | |
"\u020a\u0003\u0002\u0002\u0002\u01b1\u01b2\u0007\u009d\u0002\u0002\u01b2", | |
"\u01b5\u0007\u001d\u0002\u0002\u01b3\u01b4\u0007b\u0002\u0002\u01b4", | |
"\u01b6\u0005H%\u0002\u01b5\u01b3\u0003\u0002\u0002\u0002\u01b5\u01b6", | |
"\u0003\u0002\u0002\u0002\u01b6\u020a\u0003\u0002\u0002\u0002\u01b7\u01b8", | |
"\u0007\u009d\u0002\u0002\u01b8\u01b9\u0007\u001f\u0002\u0002\u01b9\u01ba", | |
"\t\u0003\u0002\u0002\u01ba\u020a\u0005v<\u0002\u01bb\u01bc\u0007\u009d", | |
"\u0002\u0002\u01bc\u01bd\u0007\u00a0\u0002\u0002\u01bd\u01be\t\u0004", | |
"\u0002\u0002\u01be\u020a\u0005v<\u0002\u01bf\u01c0\u0007\u009d\u0002", | |
"\u0002\u01c0\u01c1\u0007\u00a0\u0002\u0002\u01c1\u01c2\u0007D\u0002", | |
"\u0002\u01c2\u01c3\u0007\u0004\u0002\u0002\u01c3\u01c4\u0005 \u0011", | |
"\u0002\u01c4\u01c5\u0007\u0005\u0002\u0002\u01c5\u020a\u0003\u0002\u0002", | |
"\u0002\u01c6\u01c7\u00073\u0002\u0002\u01c7\u020a\u0005v<\u0002\u01c8", | |
"\u01c9\u00072\u0002\u0002\u01c9\u020a\u0005v<\u0002\u01ca\u01cb\u0007", | |
"\u009d\u0002\u0002\u01cb\u020a\u0007H\u0002\u0002\u01cc\u01cd\u0007", | |
"\u009d\u0002\u0002\u01cd\u020a\u0007\u009a\u0002\u0002\u01ce\u01cf\u0007", | |
"\u009b\u0002\u0002\u01cf\u01d0\u0007\u009a\u0002\u0002\u01d0\u01d1\u0005", | |
"v<\u0002\u01d1\u01d2\u0007\u00c1\u0002\u0002\u01d2\u01d3\u0005> \u0002", | |
"\u01d3\u020a\u0003\u0002\u0002\u0002\u01d4\u01d5\u0007\u008d\u0002\u0002", | |
"\u01d5\u01d6\u0007\u009a\u0002\u0002\u01d6\u020a\u0005v<\u0002\u01d7", | |
"\u01d8\u0007\u009f\u0002\u0002\u01d8\u01e1\u0007\u00ab\u0002\u0002\u01d9", | |
"\u01de\u0005j6\u0002\u01da\u01db\u0007\u0006\u0002\u0002\u01db\u01dd", | |
"\u0005j6\u0002\u01dc\u01da\u0003\u0002\u0002\u0002\u01dd\u01e0\u0003", | |
"\u0002\u0002\u0002\u01de\u01dc\u0003\u0002\u0002\u0002\u01de\u01df\u0003", | |
"\u0002\u0002\u0002\u01df\u01e2\u0003\u0002\u0002\u0002\u01e0\u01de\u0003", | |
"\u0002\u0002\u0002\u01e1\u01d9\u0003\u0002\u0002\u0002\u01e1\u01e2\u0003", | |
"\u0002\u0002\u0002\u01e2\u020a\u0003\u0002\u0002\u0002\u01e3\u01e5\u0007", | |
"!\u0002\u0002\u01e4\u01e6\u0007\u00bd\u0002\u0002\u01e5\u01e4\u0003", | |
"\u0002\u0002\u0002\u01e5\u01e6\u0003\u0002\u0002\u0002\u01e6\u020a\u0003", | |
"\u0002\u0002\u0002\u01e7\u01e9\u0007\u0091\u0002\u0002\u01e8\u01ea\u0007", | |
"\u00bd\u0002\u0002\u01e9\u01e8\u0003\u0002\u0002\u0002\u01e9\u01ea\u0003", | |
"\u0002\u0002\u0002\u01ea\u020a\u0003\u0002\u0002\u0002\u01eb\u01ec\u0007", | |
"\u0083\u0002\u0002\u01ec\u01ed\u0005x=\u0002\u01ed\u01ee\u0007F\u0002", | |
"\u0002\u01ee\u01ef\u0005\b\u0005\u0002\u01ef\u020a\u0003\u0002\u0002", | |
"\u0002\u01f0\u01f1\u00070\u0002\u0002\u01f1\u01f2\u0007\u0083\u0002", | |
"\u0002\u01f2\u020a\u0005x=\u0002\u01f3\u01f4\u0007<\u0002\u0002\u01f4", | |
"\u01fe\u0005x=\u0002\u01f5\u01f6\u0007\u00b5\u0002\u0002\u01f6\u01fb", | |
"\u0005> \u0002\u01f7\u01f8\u0007\u0006\u0002\u0002\u01f8\u01fa\u0005", | |
"> \u0002\u01f9\u01f7\u0003\u0002\u0002\u0002\u01fa\u01fd\u0003\u0002", | |
"\u0002\u0002\u01fb\u01f9\u0003\u0002\u0002\u0002\u01fb\u01fc\u0003\u0002", | |
"\u0002\u0002\u01fc\u01ff\u0003\u0002\u0002\u0002\u01fd\u01fb\u0003\u0002", | |
"\u0002\u0002\u01fe\u01f5\u0003\u0002\u0002\u0002\u01fe\u01ff\u0003\u0002", | |
"\u0002\u0002\u01ff\u020a\u0003\u0002\u0002\u0002\u0200\u0201\u00073", | |
"\u0002\u0002\u0201\u0202\u0007T\u0002\u0002\u0202\u020a\u0005x=\u0002", | |
"\u0203\u0204\u00073\u0002\u0002\u0204\u0205\u0007|\u0002\u0002\u0205", | |
"\u020a\u0005x=\u0002\u0206\u0207\u0007\u009b\u0002\u0002\u0207\u0208", | |
"\u0007\u0080\u0002\u0002\u0208\u020a\u0005r:\u0002\u0209\u0087\u0003", | |
"\u0002\u0002\u0002\u0209\u0088\u0003\u0002\u0002\u0002\u0209\u008a\u0003", | |
"\u0002\u0002\u0002\u0209\u008f\u0003\u0002\u0002\u0002\u0209\u009b\u0003", | |
"\u0002\u0002\u0002\u0209\u00a5\u0003\u0002\u0002\u0002\u0209\u00ac\u0003", | |
"\u0002\u0002\u0002\u0209\u00ce\u0003\u0002\u0002\u0002\u0209\u00e8\u0003", | |
"\u0002\u0002\u0002\u0209\u00ef\u0003\u0002\u0002\u0002\u0209\u00f7\u0003", | |
"\u0002\u0002\u0002\u0209\u00fe\u0003\u0002\u0002\u0002\u0209\u0105\u0003", | |
"\u0002\u0002\u0002\u0209\u010e\u0003\u0002\u0002\u0002\u0209\u0115\u0003", | |
"\u0002\u0002\u0002\u0209\u011c\u0003\u0002\u0002\u0002\u0209\u0126\u0003", | |
"\u0002\u0002\u0002\u0209\u012d\u0003\u0002\u0002\u0002\u0209\u013c\u0003", | |
"\u0002\u0002\u0002\u0209\u0155\u0003\u0002\u0002\u0002\u0209\u016f\u0003", | |
"\u0002\u0002\u0002\u0209\u0178\u0003\u0002\u0002\u0002\u0209\u018d\u0003", | |
"\u0002\u0002\u0002\u0209\u0191\u0003\u0002\u0002\u0002\u0209\u0195\u0003", | |
"\u0002\u0002\u0002\u0209\u01a3\u0003\u0002\u0002\u0002\u0209\u01b1\u0003", | |
"\u0002\u0002\u0002\u0209\u01b7\u0003\u0002\u0002\u0002\u0209\u01bb\u0003", | |
"\u0002\u0002\u0002\u0209\u01bf\u0003\u0002\u0002\u0002\u0209\u01c6\u0003", | |
"\u0002\u0002\u0002\u0209\u01c8\u0003\u0002\u0002\u0002\u0209\u01ca\u0003", | |
"\u0002\u0002\u0002\u0209\u01cc\u0003\u0002\u0002\u0002\u0209\u01ce\u0003", | |
"\u0002\u0002\u0002\u0209\u01d4\u0003\u0002\u0002\u0002\u0209\u01d7\u0003", | |
"\u0002\u0002\u0002\u0209\u01e3\u0003\u0002\u0002\u0002\u0209\u01e7\u0003", | |
"\u0002\u0002\u0002\u0209\u01eb\u0003\u0002\u0002\u0002\u0209\u01f0\u0003", | |
"\u0002\u0002\u0002\u0209\u01f3\u0003\u0002\u0002\u0002\u0209\u0200\u0003", | |
"\u0002\u0002\u0002\u0209\u0203\u0003\u0002\u0002\u0002\u0209\u0206\u0003", | |
"\u0002\u0002\u0002\u020a\t\u0003\u0002\u0002\u0002\u020b\u020d\u0005", | |
"\f\u0007\u0002\u020c\u020b\u0003\u0002\u0002\u0002\u020c\u020d\u0003", | |
"\u0002\u0002\u0002\u020d\u020e\u0003\u0002\u0002\u0002\u020e\u020f\u0005", | |
"\u0018\r\u0002\u020f\u000b\u0003\u0002\u0002\u0002\u0210\u0212\u0007", | |
"\u00bc\u0002\u0002\u0211\u0213\u0007\u0089\u0002\u0002\u0212\u0211\u0003", | |
"\u0002\u0002\u0002\u0212\u0213\u0003\u0002\u0002\u0002\u0213\u0214\u0003", | |
"\u0002\u0002\u0002\u0214\u0219\u0005(\u0015\u0002\u0215\u0216\u0007", | |
"\u0006\u0002\u0002\u0216\u0218\u0005(\u0015\u0002\u0217\u0215\u0003", | |
"\u0002\u0002\u0002\u0218\u021b\u0003\u0002\u0002\u0002\u0219\u0217\u0003", | |
"\u0002\u0002\u0002\u0219\u021a\u0003\u0002\u0002\u0002\u021a\r\u0003", | |
"\u0002\u0002\u0002\u021b\u0219\u0003\u0002\u0002\u0002\u021c\u021f\u0005", | |
"\u0010\t\u0002\u021d\u021f\u0005\u0012\n\u0002\u021e\u021c\u0003\u0002", | |
"\u0002\u0002\u021e\u021d\u0003\u0002\u0002\u0002\u021f\u000f\u0003\u0002", | |
"\u0002\u0002\u0220\u0221\u0005x=\u0002\u0221\u0224\u0005X-\u0002\u0222", | |
"\u0223\u0007 \u0002\u0002\u0223\u0225\u0005H%\u0002\u0224\u0222\u0003", | |
"\u0002\u0002\u0002\u0224\u0225\u0003\u0002\u0002\u0002\u0225\u0228\u0003", | |
"\u0002\u0002\u0002\u0226\u0227\u0007\u00bc\u0002\u0002\u0227\u0229\u0005", | |
"\u0014\u000b\u0002\u0228\u0226\u0003\u0002\u0002\u0002\u0228\u0229\u0003", | |
"\u0002\u0002\u0002\u0229\u0011\u0003\u0002\u0002\u0002\u022a\u022b\u0007", | |
"b\u0002\u0002\u022b\u022e\u0005v<\u0002\u022c\u022d\t\u0005\u0002\u0002", | |
"\u022d\u022f\u0007\u0085\u0002\u0002\u022e\u022c\u0003\u0002\u0002\u0002", | |
"\u022e\u022f\u0003\u0002\u0002\u0002\u022f\u0013\u0003\u0002\u0002\u0002", | |
"\u0230\u0231\u0007\u0004\u0002\u0002\u0231\u0236\u0005\u0016\f\u0002", | |
"\u0232\u0233\u0007\u0006\u0002\u0002\u0233\u0235\u0005\u0016\f\u0002", | |
"\u0234\u0232\u0003\u0002\u0002\u0002\u0235\u0238\u0003\u0002\u0002\u0002", | |
"\u0236\u0234\u0003\u0002\u0002\u0002\u0236\u0237\u0003\u0002\u0002\u0002", | |
"\u0237\u0239\u0003\u0002\u0002\u0002\u0238\u0236\u0003\u0002\u0002\u0002", | |
"\u0239\u023a\u0007\u0005\u0002\u0002\u023a\u0015\u0003\u0002\u0002\u0002", | |
"\u023b\u023c\u0005x=\u0002\u023c\u023d\u0007\u00c1\u0002\u0002\u023d", | |
"\u023e\u0005> \u0002\u023e\u0017\u0003\u0002\u0002\u0002\u023f\u024a", | |
"\u0005\u001a\u000e\u0002\u0240\u0241\u0007y\u0002\u0002\u0241\u0242", | |
"\u0007\u0018\u0002\u0002\u0242\u0247\u0005\u001e\u0010\u0002\u0243\u0244", | |
"\u0007\u0006\u0002\u0002\u0244\u0246\u0005\u001e\u0010\u0002\u0245\u0243", | |
"\u0003\u0002\u0002\u0002\u0246\u0249\u0003\u0002\u0002\u0002\u0247\u0245", | |
"\u0003\u0002\u0002\u0002\u0247\u0248\u0003\u0002\u0002\u0002\u0248\u024b", | |
"\u0003\u0002\u0002\u0002\u0249\u0247\u0003\u0002\u0002\u0002\u024a\u0240", | |
"\u0003\u0002\u0002\u0002\u024a\u024b\u0003\u0002\u0002\u0002\u024b\u024e", | |
"\u0003\u0002\u0002\u0002\u024c\u024d\u0007c\u0002\u0002\u024d\u024f", | |
"\t\u0006\u0002\u0002\u024e\u024c\u0003\u0002\u0002\u0002\u024e\u024f", | |
"\u0003\u0002\u0002\u0002\u024f\u0019\u0003\u0002\u0002\u0002\u0250\u0251", | |
"\b\u000e\u0001\u0002\u0251\u0252\u0005\u001c\u000f\u0002\u0252\u0261", | |
"\u0003\u0002\u0002\u0002\u0253\u0254\f\u0004\u0002\u0002\u0254\u0256", | |
"\u0007V\u0002\u0002\u0255\u0257\u0005*\u0016\u0002\u0256\u0255\u0003", | |
"\u0002\u0002\u0002\u0256\u0257\u0003\u0002\u0002\u0002\u0257\u0258\u0003", | |
"\u0002\u0002\u0002\u0258\u0260\u0005\u001a\u000e\u0005\u0259\u025a\f", | |
"\u0003\u0002\u0002\u025a\u025c\t\u0007\u0002\u0002\u025b\u025d\u0005", | |
"*\u0016\u0002\u025c\u025b\u0003\u0002\u0002\u0002\u025c\u025d\u0003", | |
"\u0002\u0002\u0002\u025d\u025e\u0003\u0002\u0002\u0002\u025e\u0260\u0005", | |
"\u001a\u000e\u0004\u025f\u0253\u0003\u0002\u0002\u0002\u025f\u0259\u0003", | |
"\u0002\u0002\u0002\u0260\u0263\u0003\u0002\u0002\u0002\u0261\u025f\u0003", | |
"\u0002\u0002\u0002\u0261\u0262\u0003\u0002\u0002\u0002\u0262\u001b\u0003", | |
"\u0002\u0002\u0002\u0263\u0261\u0003\u0002\u0002\u0002\u0264\u0275\u0005", | |
" \u0011\u0002\u0265\u0266\u0007\u00a3\u0002\u0002\u0266\u0275\u0005", | |
"v<\u0002\u0267\u0268\u0007\u00b7\u0002\u0002\u0268\u026d\u0005> \u0002", | |
"\u0269\u026a\u0007\u0006\u0002\u0002\u026a\u026c\u0005> \u0002\u026b", | |
"\u0269\u0003\u0002\u0002\u0002\u026c\u026f\u0003\u0002\u0002\u0002\u026d", | |
"\u026b\u0003\u0002\u0002\u0002\u026d\u026e\u0003\u0002\u0002\u0002\u026e", | |
"\u0275\u0003\u0002\u0002\u0002\u026f\u026d\u0003\u0002\u0002\u0002\u0270", | |
"\u0271\u0007\u0004\u0002\u0002\u0271\u0272\u0005\u0018\r\u0002\u0272", | |
"\u0273\u0007\u0005\u0002\u0002\u0273\u0275\u0003\u0002\u0002\u0002\u0274", | |
"\u0264\u0003\u0002\u0002\u0002\u0274\u0265\u0003\u0002\u0002\u0002\u0274", | |
"\u0267\u0003\u0002\u0002\u0002\u0274\u0270\u0003\u0002\u0002\u0002\u0275", | |
"\u001d\u0003\u0002\u0002\u0002\u0276\u0278\u0005> \u0002\u0277\u0279", | |
"\t\b\u0002\u0002\u0278\u0277\u0003\u0002\u0002\u0002\u0278\u0279\u0003", | |
"\u0002\u0002\u0002\u0279\u027c\u0003\u0002\u0002\u0002\u027a\u027b\u0007", | |
"t\u0002\u0002\u027b\u027d\t\t\u0002\u0002\u027c\u027a\u0003\u0002\u0002", | |
"\u0002\u027c\u027d\u0003\u0002\u0002\u0002\u027d\u001f\u0003\u0002\u0002", | |
"\u0002\u027e\u0280\u0007\u0098\u0002\u0002\u027f\u0281\u0005*\u0016", | |
"\u0002\u0280\u027f\u0003\u0002\u0002\u0002\u0280\u0281\u0003\u0002\u0002", | |
"\u0002\u0281\u0282\u0003\u0002\u0002\u0002\u0282\u0287\u0005,\u0017", | |
"\u0002\u0283\u0284\u0007\u0006\u0002\u0002\u0284\u0286\u0005,\u0017", | |
"\u0002\u0285\u0283\u0003\u0002\u0002\u0002\u0286\u0289\u0003\u0002\u0002", | |
"\u0002\u0287\u0285\u0003\u0002\u0002\u0002\u0287\u0288\u0003\u0002\u0002", | |
"\u0002\u0288\u0293\u0003\u0002\u0002\u0002\u0289\u0287\u0003\u0002\u0002", | |
"\u0002\u028a\u028b\u0007F\u0002\u0002\u028b\u0290\u0005.\u0018\u0002", | |
"\u028c\u028d\u0007\u0006\u0002\u0002\u028d\u028f\u0005.\u0018\u0002", | |
"\u028e\u028c\u0003\u0002\u0002\u0002\u028f\u0292\u0003\u0002\u0002\u0002", | |
"\u0290\u028e\u0003\u0002\u0002\u0002\u0290\u0291\u0003\u0002\u0002\u0002", | |
"\u0291\u0294\u0003\u0002\u0002\u0002\u0292\u0290\u0003\u0002\u0002\u0002", | |
"\u0293\u028a\u0003\u0002\u0002\u0002\u0293\u0294\u0003\u0002\u0002\u0002", | |
"\u0294\u0297\u0003\u0002\u0002\u0002\u0295\u0296\u0007\u00bb\u0002\u0002", | |
"\u0296\u0298\u0005@!\u0002\u0297\u0295\u0003\u0002\u0002\u0002\u0297", | |
"\u0298\u0003\u0002\u0002\u0002\u0298\u029c\u0003\u0002\u0002\u0002\u0299", | |
"\u029a\u0007L\u0002\u0002\u029a\u029b\u0007\u0018\u0002\u0002\u029b", | |
"\u029d\u0005\"\u0012\u0002\u029c\u0299\u0003\u0002\u0002\u0002\u029c", | |
"\u029d\u0003\u0002\u0002\u0002\u029d\u02a0\u0003\u0002\u0002\u0002\u029e", | |
"\u029f\u0007N\u0002\u0002\u029f\u02a1\u0005@!\u0002\u02a0\u029e\u0003", | |
"\u0002\u0002\u0002\u02a0\u02a1\u0003\u0002\u0002\u0002\u02a1!\u0003", | |
"\u0002\u0002\u0002\u02a2\u02a4\u0005*\u0016\u0002\u02a3\u02a2\u0003", | |
"\u0002\u0002\u0002\u02a3\u02a4\u0003\u0002\u0002\u0002\u02a4\u02a5\u0003", | |
"\u0002\u0002\u0002\u02a5\u02aa\u0005$\u0013\u0002\u02a6\u02a7\u0007", | |
"\u0006\u0002\u0002\u02a7\u02a9\u0005$\u0013\u0002\u02a8\u02a6\u0003", | |
"\u0002\u0002\u0002\u02a9\u02ac\u0003\u0002\u0002\u0002\u02aa\u02a8\u0003", | |
"\u0002\u0002\u0002\u02aa\u02ab\u0003\u0002\u0002\u0002\u02ab#\u0003", | |
"\u0002\u0002\u0002\u02ac\u02aa\u0003\u0002\u0002\u0002\u02ad\u02d6\u0005", | |
"&\u0014\u0002\u02ae\u02af\u0007\u0092\u0002\u0002\u02af\u02b8\u0007", | |
"\u0004\u0002\u0002\u02b0\u02b5\u0005> \u0002\u02b1\u02b2\u0007\u0006", | |
"\u0002\u0002\u02b2\u02b4\u0005> \u0002\u02b3\u02b1\u0003\u0002\u0002", | |
"\u0002\u02b4\u02b7\u0003\u0002\u0002\u0002\u02b5\u02b3\u0003\u0002\u0002", | |
"\u0002\u02b5\u02b6\u0003\u0002\u0002\u0002\u02b6\u02b9\u0003\u0002\u0002", | |
"\u0002\u02b7\u02b5\u0003\u0002\u0002\u0002\u02b8\u02b0\u0003\u0002\u0002", | |
"\u0002\u02b8\u02b9\u0003\u0002\u0002\u0002\u02b9\u02ba\u0003\u0002\u0002", | |
"\u0002\u02ba\u02d6\u0007\u0005\u0002\u0002\u02bb\u02bc\u0007&\u0002", | |
"\u0002\u02bc\u02c5\u0007\u0004\u0002\u0002\u02bd\u02c2\u0005> \u0002", | |
"\u02be\u02bf\u0007\u0006\u0002\u0002\u02bf\u02c1\u0005> \u0002\u02c0", | |
"\u02be\u0003\u0002\u0002\u0002\u02c1\u02c4\u0003\u0002\u0002\u0002\u02c2", | |
"\u02c0\u0003\u0002\u0002\u0002\u02c2\u02c3\u0003\u0002\u0002\u0002\u02c3", | |
"\u02c6\u0003\u0002\u0002\u0002\u02c4\u02c2\u0003\u0002\u0002\u0002\u02c5", | |
"\u02bd\u0003\u0002\u0002\u0002\u02c5\u02c6\u0003\u0002\u0002\u0002\u02c6", | |
"\u02c7\u0003\u0002\u0002\u0002\u02c7\u02d6\u0007\u0005\u0002\u0002\u02c8", | |
"\u02c9\u0007M\u0002\u0002\u02c9\u02ca\u0007\u009c\u0002\u0002\u02ca", | |
"\u02cb\u0007\u0004\u0002\u0002\u02cb\u02d0\u0005&\u0014\u0002\u02cc", | |
"\u02cd\u0007\u0006\u0002\u0002\u02cd\u02cf\u0005&\u0014\u0002\u02ce", | |
"\u02cc\u0003\u0002\u0002\u0002\u02cf\u02d2\u0003\u0002\u0002\u0002\u02d0", | |
"\u02ce\u0003\u0002\u0002\u0002\u02d0\u02d1\u0003\u0002\u0002\u0002\u02d1", | |
"\u02d3\u0003\u0002\u0002\u0002\u02d2\u02d0\u0003\u0002\u0002\u0002\u02d3", | |
"\u02d4\u0007\u0005\u0002\u0002\u02d4\u02d6\u0003\u0002\u0002\u0002\u02d5", | |
"\u02ad\u0003\u0002\u0002\u0002\u02d5\u02ae\u0003\u0002\u0002\u0002\u02d5", | |
"\u02bb\u0003\u0002\u0002\u0002\u02d5\u02c8\u0003\u0002\u0002\u0002\u02d6", | |
"%\u0003\u0002\u0002\u0002\u02d7\u02e0\u0007\u0004\u0002\u0002\u02d8", | |
"\u02dd\u0005> \u0002\u02d9\u02da\u0007\u0006\u0002\u0002\u02da\u02dc", | |
"\u0005> \u0002\u02db\u02d9\u0003\u0002\u0002\u0002\u02dc\u02df\u0003", | |
"\u0002\u0002\u0002\u02dd\u02db\u0003\u0002\u0002\u0002\u02dd\u02de\u0003", | |
"\u0002\u0002\u0002\u02de\u02e1\u0003\u0002\u0002\u0002\u02df\u02dd\u0003", | |
"\u0002\u0002\u0002\u02e0\u02d8\u0003\u0002\u0002\u0002\u02e0\u02e1\u0003", | |
"\u0002\u0002\u0002\u02e1\u02e2\u0003\u0002\u0002\u0002\u02e2\u02e5\u0007", | |
"\u0005\u0002\u0002\u02e3\u02e5\u0005> \u0002\u02e4\u02d7\u0003\u0002", | |
"\u0002\u0002\u02e4\u02e3\u0003\u0002\u0002\u0002\u02e5\'\u0003\u0002", | |
"\u0002\u0002\u02e6\u02e8\u0005x=\u0002\u02e7\u02e9\u0005:\u001e\u0002", | |
"\u02e8\u02e7\u0003\u0002\u0002\u0002\u02e8\u02e9\u0003\u0002\u0002\u0002", | |
"\u02e9\u02ea\u0003\u0002\u0002\u0002\u02ea\u02eb\u0007\u0013\u0002\u0002", | |
"\u02eb\u02ec\u0007\u0004\u0002\u0002\u02ec\u02ed\u0005\n\u0006\u0002", | |
"\u02ed\u02ee\u0007\u0005\u0002\u0002\u02ee)\u0003\u0002\u0002\u0002", | |
"\u02ef\u02f0\t\n\u0002\u0002\u02f0+\u0003\u0002\u0002\u0002\u02f1\u02f6", | |
"\u0005> \u0002\u02f2\u02f4\u0007\u0013\u0002\u0002\u02f3\u02f2\u0003", | |
"\u0002\u0002\u0002\u02f3\u02f4\u0003\u0002\u0002\u0002\u02f4\u02f5\u0003", | |
"\u0002\u0002\u0002\u02f5\u02f7\u0005x=\u0002\u02f6\u02f3\u0003\u0002", | |
"\u0002\u0002\u02f6\u02f7\u0003\u0002\u0002\u0002\u02f7\u02fe\u0003\u0002", | |
"\u0002\u0002\u02f8\u02f9\u0005v<\u0002\u02f9\u02fa\u0007\u0003\u0002", | |
"\u0002\u02fa\u02fb\u0007\u00c9\u0002\u0002\u02fb\u02fe\u0003\u0002\u0002", | |
"\u0002\u02fc\u02fe\u0007\u00c9\u0002\u0002\u02fd\u02f1\u0003\u0002\u0002", | |
"\u0002\u02fd\u02f8\u0003\u0002\u0002\u0002\u02fd\u02fc\u0003\u0002\u0002", | |
"\u0002\u02fe-\u0003\u0002\u0002\u0002\u02ff\u0300\b\u0018\u0001\u0002", | |
"\u0300\u0301\u00054\u001b\u0002\u0301\u0314\u0003\u0002\u0002\u0002", | |
"\u0302\u0310\f\u0004\u0002\u0002\u0303\u0304\u0007%\u0002\u0002\u0304", | |
"\u0305\u0007]\u0002\u0002\u0305\u0311\u00054\u001b\u0002\u0306\u0307", | |
"\u00050\u0019\u0002\u0307\u0308\u0007]\u0002\u0002\u0308\u0309\u0005", | |
".\u0018\u0002\u0309\u030a\u00052\u001a\u0002\u030a\u0311\u0003\u0002", | |
"\u0002\u0002\u030b\u030c\u0007j\u0002\u0002\u030c\u030d\u00050\u0019", | |
"\u0002\u030d\u030e\u0007]\u0002\u0002\u030e\u030f\u00054\u001b\u0002", | |
"\u030f\u0311\u0003\u0002\u0002\u0002\u0310\u0303\u0003\u0002\u0002\u0002", | |
"\u0310\u0306\u0003\u0002\u0002\u0002\u0310\u030b\u0003\u0002\u0002\u0002", | |
"\u0311\u0313\u0003\u0002\u0002\u0002\u0312\u0302\u0003\u0002\u0002\u0002", | |
"\u0313\u0316\u0003\u0002\u0002\u0002\u0314\u0312\u0003\u0002\u0002\u0002", | |
"\u0314\u0315\u0003\u0002\u0002\u0002\u0315/\u0003\u0002\u0002\u0002", | |
"\u0316\u0314\u0003\u0002\u0002\u0002\u0317\u0319\u0007S\u0002\u0002", | |
"\u0318\u0317\u0003\u0002\u0002\u0002\u0318\u0319\u0003\u0002\u0002\u0002", | |
"\u0319\u0327\u0003\u0002\u0002\u0002\u031a\u031c\u0007`\u0002\u0002", | |
"\u031b\u031d\u0007{\u0002\u0002\u031c\u031b\u0003\u0002\u0002\u0002", | |
"\u031c\u031d\u0003\u0002\u0002\u0002\u031d\u0327\u0003\u0002\u0002\u0002", | |
"\u031e\u0320\u0007\u0090\u0002\u0002\u031f\u0321\u0007{\u0002\u0002", | |
"\u0320\u031f\u0003\u0002\u0002\u0002\u0320\u0321\u0003\u0002\u0002\u0002", | |
"\u0321\u0327\u0003\u0002\u0002\u0002\u0322\u0324\u0007G\u0002\u0002", | |
"\u0323\u0325\u0007{\u0002\u0002\u0324\u0323\u0003\u0002\u0002\u0002", | |
"\u0324\u0325\u0003\u0002\u0002\u0002\u0325\u0327\u0003\u0002\u0002\u0002", | |
"\u0326\u0318\u0003\u0002\u0002\u0002\u0326\u031a\u0003\u0002\u0002\u0002", | |
"\u0326\u031e\u0003\u0002\u0002\u0002\u0326\u0322\u0003\u0002\u0002\u0002", | |
"\u03271\u0003\u0002\u0002\u0002\u0328\u0329\u0007u\u0002\u0002\u0329", | |
"\u0337\u0005@!\u0002\u032a\u032b\u0007\u00b5\u0002\u0002\u032b\u032c", | |
"\u0007\u0004\u0002\u0002\u032c\u0331\u0005x=\u0002\u032d\u032e\u0007", | |
"\u0006\u0002\u0002\u032e\u0330\u0005x=\u0002\u032f\u032d\u0003\u0002", | |
"\u0002\u0002\u0330\u0333\u0003\u0002\u0002\u0002\u0331\u032f\u0003\u0002", | |
"\u0002\u0002\u0331\u0332\u0003\u0002\u0002\u0002\u0332\u0334\u0003\u0002", | |
"\u0002\u0002\u0333\u0331\u0003\u0002\u0002\u0002\u0334\u0335\u0007\u0005", | |
"\u0002\u0002\u0335\u0337\u0003\u0002\u0002\u0002\u0336\u0328\u0003\u0002", | |
"\u0002\u0002\u0336\u032a\u0003\u0002\u0002\u0002\u03373\u0003\u0002", | |
"\u0002\u0002\u0338\u033f\u00058\u001d\u0002\u0339\u033a\u0007\u00a5", | |
"\u0002\u0002\u033a\u033b\u00056\u001c\u0002\u033b\u033c\u0007\u0004", | |
"\u0002\u0002\u033c\u033d\u0005> \u0002\u033d\u033e\u0007\u0005\u0002", | |
"\u0002\u033e\u0340\u0003\u0002\u0002\u0002\u033f\u0339\u0003\u0002\u0002", | |
"\u0002\u033f\u0340\u0003\u0002\u0002\u0002\u03405\u0003\u0002\u0002", | |
"\u0002\u0341\u0342\t\u000b\u0002\u0002\u03427\u0003\u0002\u0002\u0002", | |
"\u0343\u034b\u0005<\u001f\u0002\u0344\u0346\u0007\u0013\u0002\u0002", | |
"\u0345\u0344\u0003\u0002\u0002\u0002\u0345\u0346\u0003\u0002\u0002\u0002", | |
"\u0346\u0347\u0003\u0002\u0002\u0002\u0347\u0349\u0005x=\u0002\u0348", | |
"\u034a\u0005:\u001e\u0002\u0349\u0348\u0003\u0002\u0002\u0002\u0349", | |
"\u034a\u0003\u0002\u0002\u0002\u034a\u034c\u0003\u0002\u0002\u0002\u034b", | |
"\u0345\u0003\u0002\u0002\u0002\u034b\u034c\u0003\u0002\u0002\u0002\u034c", | |
"9\u0003\u0002\u0002\u0002\u034d\u034e\u0007\u0004\u0002\u0002\u034e", | |
"\u0353\u0005x=\u0002\u034f\u0350\u0007\u0006\u0002\u0002\u0350\u0352", | |
"\u0005x=\u0002\u0351\u034f\u0003\u0002\u0002\u0002\u0352\u0355\u0003", | |
"\u0002\u0002\u0002\u0353\u0351\u0003\u0002\u0002\u0002\u0353\u0354\u0003", | |
"\u0002\u0002\u0002\u0354\u0356\u0003\u0002\u0002\u0002\u0355\u0353\u0003", | |
"\u0002\u0002\u0002\u0356\u0357\u0007\u0005\u0002\u0002\u0357;\u0003", | |
"\u0002\u0002\u0002\u0358\u0376\u0005v<\u0002\u0359\u035a\u0007\u0004", | |
"\u0002\u0002\u035a\u035b\u0005\n\u0006\u0002\u035b\u035c\u0007\u0005", | |
"\u0002\u0002\u035c\u0376\u0003\u0002\u0002\u0002\u035d\u035e\u0007\u00b3", | |
"\u0002\u0002\u035e\u035f\u0007\u0004\u0002\u0002\u035f\u0364\u0005>", | |
" \u0002\u0360\u0361\u0007\u0006\u0002\u0002\u0361\u0363\u0005> \u0002", | |
"\u0362\u0360\u0003\u0002\u0002\u0002\u0363\u0366\u0003\u0002\u0002\u0002", | |
"\u0364\u0362\u0003\u0002\u0002\u0002\u0364\u0365\u0003\u0002\u0002\u0002", | |
"\u0365\u0367\u0003\u0002\u0002\u0002\u0366\u0364\u0003\u0002\u0002\u0002", | |
"\u0367\u036a\u0007\u0005\u0002\u0002\u0368\u0369\u0007\u00bc\u0002\u0002", | |
"\u0369\u036b\u0007z\u0002\u0002\u036a\u0368\u0003\u0002\u0002\u0002", | |
"\u036a\u036b\u0003\u0002\u0002\u0002\u036b\u0376\u0003\u0002\u0002\u0002", | |
"\u036c\u036d\u0007_\u0002\u0002\u036d\u036e\u0007\u0004\u0002\u0002", | |
"\u036e\u036f\u0005\n\u0006\u0002\u036f\u0370\u0007\u0005\u0002\u0002", | |
"\u0370\u0376\u0003\u0002\u0002\u0002\u0371\u0372\u0007\u0004\u0002\u0002", | |
"\u0372\u0373\u0005.\u0018\u0002\u0373\u0374\u0007\u0005\u0002\u0002", | |
"\u0374\u0376\u0003\u0002\u0002\u0002\u0375\u0358\u0003\u0002\u0002\u0002", | |
"\u0375\u0359\u0003\u0002\u0002\u0002\u0375\u035d\u0003\u0002\u0002\u0002", | |
"\u0375\u036c\u0003\u0002\u0002\u0002\u0375\u0371\u0003\u0002\u0002\u0002", | |
"\u0376=\u0003\u0002\u0002\u0002\u0377\u0378\u0005@!\u0002\u0378?\u0003", | |
"\u0002\u0002\u0002\u0379\u037a\b!\u0001\u0002\u037a\u037c\u0005D#\u0002", | |
"\u037b\u037d\u0005B\"\u0002\u037c\u037b\u0003\u0002\u0002\u0002\u037c", | |
"\u037d\u0003\u0002\u0002\u0002\u037d\u0381\u0003\u0002\u0002\u0002\u037e", | |
"\u037f\u0007q\u0002\u0002\u037f\u0381\u0005@!\u0005\u0380\u0379\u0003", | |
"\u0002\u0002\u0002\u0380\u037e\u0003\u0002\u0002\u0002\u0381\u038a\u0003", | |
"\u0002\u0002\u0002\u0382\u0383\f\u0004\u0002\u0002\u0383\u0384\u0007", | |
"\u0010\u0002\u0002\u0384\u0389\u0005@!\u0005\u0385\u0386\f\u0003\u0002", | |
"\u0002\u0386\u0387\u0007x\u0002\u0002\u0387\u0389\u0005@!\u0004\u0388", | |
"\u0382\u0003\u0002\u0002\u0002\u0388\u0385\u0003\u0002\u0002\u0002\u0389", | |
"\u038c\u0003\u0002\u0002\u0002\u038a\u0388\u0003\u0002\u0002\u0002\u038a", | |
"\u038b\u0003\u0002\u0002\u0002\u038bA\u0003\u0002\u0002\u0002\u038c", | |
"\u038a\u0003\u0002\u0002\u0002\u038d\u038e\u0005L\'\u0002\u038e\u038f", | |
"\u0005D#\u0002\u038f\u03cb\u0003\u0002\u0002\u0002\u0390\u0391\u0005", | |
"L\'\u0002\u0391\u0392\u0005N(\u0002\u0392\u0393\u0007\u0004\u0002\u0002", | |
"\u0393\u0394\u0005\n\u0006\u0002\u0394\u0395\u0007\u0005\u0002\u0002", | |
"\u0395\u03cb\u0003\u0002\u0002\u0002\u0396\u0398\u0007q\u0002\u0002", | |
"\u0397\u0396\u0003\u0002\u0002\u0002\u0397\u0398\u0003\u0002\u0002\u0002", | |
"\u0398\u0399\u0003\u0002\u0002\u0002\u0399\u039a\u0007\u0017\u0002\u0002", | |
"\u039a\u039b\u0005D#\u0002\u039b\u039c\u0007\u0010\u0002\u0002\u039c", | |
"\u039d\u0005D#\u0002\u039d\u03cb\u0003\u0002\u0002\u0002\u039e\u03a0", | |
"\u0007q\u0002\u0002\u039f\u039e\u0003\u0002\u0002\u0002\u039f\u03a0", | |
"\u0003\u0002\u0002\u0002\u03a0\u03a1\u0003\u0002\u0002\u0002\u03a1\u03a2", | |
"\u0007Q\u0002\u0002\u03a2\u03a3\u0007\u0004\u0002\u0002\u03a3\u03a8", | |
"\u0005> \u0002\u03a4\u03a5\u0007\u0006\u0002\u0002\u03a5\u03a7\u0005", | |
"> \u0002\u03a6\u03a4\u0003\u0002\u0002\u0002\u03a7\u03aa\u0003\u0002", | |
"\u0002\u0002\u03a8\u03a6\u0003\u0002\u0002\u0002\u03a8\u03a9\u0003\u0002", | |
"\u0002\u0002\u03a9\u03ab\u0003\u0002\u0002\u0002\u03aa\u03a8\u0003\u0002", | |
"\u0002\u0002\u03ab\u03ac\u0007\u0005\u0002\u0002\u03ac\u03cb\u0003\u0002", | |
"\u0002\u0002\u03ad\u03af\u0007q\u0002\u0002\u03ae\u03ad\u0003\u0002", | |
"\u0002\u0002\u03ae\u03af\u0003\u0002\u0002\u0002\u03af\u03b0\u0003\u0002", | |
"\u0002\u0002\u03b0\u03b1\u0007Q\u0002\u0002\u03b1\u03b2\u0007\u0004", | |
"\u0002\u0002\u03b2\u03b3\u0005\n\u0006\u0002\u03b3\u03b4\u0007\u0005", | |
"\u0002\u0002\u03b4\u03cb\u0003\u0002\u0002\u0002\u03b5\u03b7\u0007q", | |
"\u0002\u0002\u03b6\u03b5\u0003\u0002\u0002\u0002\u03b6\u03b7\u0003\u0002", | |
"\u0002\u0002\u03b7\u03b8\u0003\u0002\u0002\u0002\u03b8\u03b9\u0007b", | |
"\u0002\u0002\u03b9\u03bc\u0005D#\u0002\u03ba\u03bb\u00079\u0002\u0002", | |
"\u03bb\u03bd\u0005D#\u0002\u03bc\u03ba\u0003\u0002\u0002\u0002\u03bc", | |
"\u03bd\u0003\u0002\u0002\u0002\u03bd\u03cb\u0003\u0002\u0002\u0002\u03be", | |
"\u03c0\u0007Z\u0002\u0002\u03bf\u03c1\u0007q\u0002\u0002\u03c0\u03bf", | |
"\u0003\u0002\u0002\u0002\u03c0\u03c1\u0003\u0002\u0002\u0002\u03c1\u03c2", | |
"\u0003\u0002\u0002\u0002\u03c2\u03cb\u0007r\u0002\u0002\u03c3\u03c5", | |
"\u0007Z\u0002\u0002\u03c4\u03c6\u0007q\u0002\u0002\u03c5\u03c4\u0003", | |
"\u0002\u0002\u0002\u03c5\u03c6\u0003\u0002\u0002\u0002\u03c6\u03c7\u0003", | |
"\u0002\u0002\u0002\u03c7\u03c8\u00074\u0002\u0002\u03c8\u03c9\u0007", | |
"F\u0002\u0002\u03c9\u03cb\u0005D#\u0002\u03ca\u038d\u0003\u0002\u0002", | |
"\u0002\u03ca\u0390\u0003\u0002\u0002\u0002\u03ca\u0397\u0003\u0002\u0002", | |
"\u0002\u03ca\u039f\u0003\u0002\u0002\u0002\u03ca\u03ae\u0003\u0002\u0002", | |
"\u0002\u03ca\u03b6\u0003\u0002\u0002\u0002\u03ca\u03be\u0003\u0002\u0002", | |
"\u0002\u03ca\u03c3\u0003\u0002\u0002\u0002\u03cbC\u0003\u0002\u0002", | |
"\u0002\u03cc\u03cd\b#\u0001\u0002\u03cd\u03d1\u0005F$\u0002\u03ce\u03cf", | |
"\t\f\u0002\u0002\u03cf\u03d1\u0005D#\u0006\u03d0\u03cc\u0003\u0002\u0002", | |
"\u0002\u03d0\u03ce\u0003\u0002\u0002\u0002\u03d1\u03e0\u0003\u0002\u0002", | |
"\u0002\u03d2\u03d3\f\u0005\u0002\u0002\u03d3\u03d4\t\r\u0002\u0002\u03d4", | |
"\u03df\u0005D#\u0006\u03d5\u03d6\f\u0004\u0002\u0002\u03d6\u03d7\t\f", | |
"\u0002\u0002\u03d7\u03df\u0005D#\u0005\u03d8\u03d9\f\u0003\u0002\u0002", | |
"\u03d9\u03da\u0007\u00cc\u0002\u0002\u03da\u03df\u0005D#\u0004\u03db", | |
"\u03dc\f\u0007\u0002\u0002\u03dc\u03dd\u0007\u0015\u0002\u0002\u03dd", | |
"\u03df\u0005J&\u0002\u03de\u03d2\u0003\u0002\u0002\u0002\u03de\u03d5", | |
"\u0003\u0002\u0002\u0002\u03de\u03d8\u0003\u0002\u0002\u0002\u03de\u03db", | |
"\u0003\u0002\u0002\u0002\u03df\u03e2\u0003\u0002\u0002\u0002\u03e0\u03de", | |
"\u0003\u0002\u0002\u0002\u03e0\u03e1\u0003\u0002\u0002\u0002\u03e1E", | |
"\u0003\u0002\u0002\u0002\u03e2\u03e0\u0003\u0002\u0002\u0002\u03e3\u03e4", | |
"\b$\u0001\u0002\u03e4\u04d1\u0007r\u0002\u0002\u03e5\u04d1\u0005R*\u0002", | |
"\u03e6\u03e7\u0005x=\u0002\u03e7\u03e8\u0005H%\u0002\u03e8\u04d1\u0003", | |
"\u0002\u0002\u0002\u03e9\u03ea\u0007\u00d9\u0002\u0002\u03ea\u04d1\u0005", | |
"H%\u0002\u03eb\u04d1\u0005z>\u0002\u03ec\u04d1\u0005P)\u0002\u03ed\u04d1", | |
"\u0005H%\u0002\u03ee\u04d1\u0007\u00cf\u0002\u0002\u03ef\u04d1\u0007", | |
"\u0007\u0002\u0002\u03f0\u03f1\u0007\u0081\u0002\u0002\u03f1\u03f2\u0007", | |
"\u0004\u0002\u0002\u03f2\u03f3\u0005D#\u0002\u03f3\u03f4\u0007Q\u0002", | |
"\u0002\u03f4\u03f5\u0005D#\u0002\u03f5\u03f6\u0007\u0005\u0002\u0002", | |
"\u03f6\u04d1\u0003\u0002\u0002\u0002\u03f7\u03f8\u0007\u0004\u0002\u0002", | |
"\u03f8\u03fb\u0005> \u0002\u03f9\u03fa\u0007\u0006\u0002\u0002\u03fa", | |
"\u03fc\u0005> \u0002\u03fb\u03f9\u0003\u0002\u0002\u0002\u03fc\u03fd", | |
"\u0003\u0002\u0002\u0002\u03fd\u03fb\u0003\u0002\u0002\u0002\u03fd\u03fe", | |
"\u0003\u0002\u0002\u0002\u03fe\u03ff\u0003\u0002\u0002\u0002\u03ff\u0400", | |
"\u0007\u0005\u0002\u0002\u0400\u04d1\u0003\u0002\u0002\u0002\u0401\u0402", | |
"\u0007\u0093\u0002\u0002\u0402\u0403\u0007\u0004\u0002\u0002\u0403\u0408", | |
"\u0005> \u0002\u0404\u0405\u0007\u0006\u0002\u0002\u0405\u0407\u0005", | |
"> \u0002\u0406\u0404\u0003\u0002\u0002\u0002\u0407\u040a\u0003\u0002", | |
"\u0002\u0002\u0408\u0406\u0003\u0002\u0002\u0002\u0408\u0409\u0003\u0002", | |
"\u0002\u0002\u0409\u040b\u0003\u0002\u0002\u0002\u040a\u0408\u0003\u0002", | |
"\u0002\u0002\u040b\u040c\u0007\u0005\u0002\u0002\u040c\u04d1\u0003\u0002", | |
"\u0002\u0002\u040d\u040e\u0005v<\u0002\u040e\u040f\u0007\u0004\u0002", | |
"\u0002\u040f\u0410\u0007\u00c9\u0002\u0002\u0410\u0412\u0007\u0005\u0002", | |
"\u0002\u0411\u0413\u0005`1\u0002\u0412\u0411\u0003\u0002\u0002\u0002", | |
"\u0412\u0413\u0003\u0002\u0002\u0002\u0413\u0415\u0003\u0002\u0002\u0002", | |
"\u0414\u0416\u0005b2\u0002\u0415\u0414\u0003\u0002\u0002\u0002\u0415", | |
"\u0416\u0003\u0002\u0002\u0002\u0416\u04d1\u0003\u0002\u0002\u0002\u0417", | |
"\u0418\u0005v<\u0002\u0418\u0424\u0007\u0004\u0002\u0002\u0419\u041b", | |
"\u0005*\u0016\u0002\u041a\u0419\u0003\u0002\u0002\u0002\u041a\u041b", | |
"\u0003\u0002\u0002\u0002\u041b\u041c\u0003\u0002\u0002\u0002\u041c\u0421", | |
"\u0005> \u0002\u041d\u041e\u0007\u0006\u0002\u0002\u041e\u0420\u0005", | |
"> \u0002\u041f\u041d\u0003\u0002\u0002\u0002\u0420\u0423\u0003\u0002", | |
"\u0002\u0002\u0421\u041f\u0003\u0002\u0002\u0002\u0421\u0422\u0003\u0002", | |
"\u0002\u0002\u0422\u0425\u0003\u0002\u0002\u0002\u0423\u0421\u0003\u0002", | |
"\u0002\u0002\u0424\u041a\u0003\u0002\u0002\u0002\u0424\u0425\u0003\u0002", | |
"\u0002\u0002\u0425\u0430\u0003\u0002\u0002\u0002\u0426\u0427\u0007y", | |
"\u0002\u0002\u0427\u0428\u0007\u0018\u0002\u0002\u0428\u042d\u0005\u001e", | |
"\u0010\u0002\u0429\u042a\u0007\u0006\u0002\u0002\u042a\u042c\u0005\u001e", | |
"\u0010\u0002\u042b\u0429\u0003\u0002\u0002\u0002\u042c\u042f\u0003\u0002", | |
"\u0002\u0002\u042d\u042b\u0003\u0002\u0002\u0002\u042d\u042e\u0003\u0002", | |
"\u0002\u0002\u042e\u0431\u0003\u0002\u0002\u0002\u042f\u042d\u0003\u0002", | |
"\u0002\u0002\u0430\u0426\u0003\u0002\u0002\u0002\u0430\u0431\u0003\u0002", | |
"\u0002\u0002\u0431\u0432\u0003\u0002\u0002\u0002\u0432\u0434\u0007\u0005", | |
"\u0002\u0002\u0433\u0435\u0005`1\u0002\u0434\u0433\u0003\u0002\u0002", | |
"\u0002\u0434\u0435\u0003\u0002\u0002\u0002\u0435\u0437\u0003\u0002\u0002", | |
"\u0002\u0436\u0438\u0005b2\u0002\u0437\u0436\u0003\u0002\u0002\u0002", | |
"\u0437\u0438\u0003\u0002\u0002\u0002\u0438\u04d1\u0003\u0002\u0002\u0002", | |
"\u0439\u043a\u0005x=\u0002\u043a\u043b\u0007\b\u0002\u0002\u043b\u043c", | |
"\u0005> \u0002\u043c\u04d1\u0003\u0002\u0002\u0002\u043d\u0446\u0007", | |
"\u0004\u0002\u0002\u043e\u0443\u0005x=\u0002\u043f\u0440\u0007\u0006", | |
"\u0002\u0002\u0440\u0442\u0005x=\u0002\u0441\u043f\u0003\u0002\u0002", | |
"\u0002\u0442\u0445\u0003\u0002\u0002\u0002\u0443\u0441\u0003\u0002\u0002", | |
"\u0002\u0443\u0444\u0003\u0002\u0002\u0002\u0444\u0447\u0003\u0002\u0002", | |
"\u0002\u0445\u0443\u0003\u0002\u0002\u0002\u0446\u043e\u0003\u0002\u0002", | |
"\u0002\u0446\u0447\u0003\u0002\u0002\u0002\u0447\u0448\u0003\u0002\u0002", | |
"\u0002\u0448\u0449\u0007\u0005\u0002\u0002\u0449\u044a\u0007\b\u0002", | |
"\u0002\u044a\u04d1\u0005> \u0002\u044b\u044c\u0007\u0004\u0002\u0002", | |
"\u044c\u044d\u0005\n\u0006\u0002\u044d\u044e\u0007\u0005\u0002\u0002", | |
"\u044e\u04d1\u0003\u0002\u0002\u0002\u044f\u0450\u0007=\u0002\u0002", | |
"\u0450\u0451\u0007\u0004\u0002\u0002\u0451\u0452\u0005\n\u0006\u0002", | |
"\u0452\u0453\u0007\u0005\u0002\u0002\u0453\u04d1\u0003\u0002\u0002\u0002", | |
"\u0454\u0455\u0007\u001b\u0002\u0002\u0455\u0457\u0005D#\u0002\u0456", | |
"\u0458\u0005^0\u0002\u0457\u0456\u0003\u0002\u0002\u0002\u0458\u0459", | |
"\u0003\u0002\u0002\u0002\u0459\u0457\u0003\u0002\u0002\u0002\u0459\u045a", | |
"\u0003\u0002\u0002\u0002\u045a\u045d\u0003\u0002\u0002\u0002\u045b\u045c", | |
"\u00077\u0002\u0002\u045c\u045e\u0005> \u0002\u045d\u045b\u0003\u0002", | |
"\u0002\u0002\u045d\u045e\u0003\u0002\u0002\u0002\u045e\u045f\u0003\u0002", | |
"\u0002\u0002\u045f\u0460\u00078\u0002\u0002\u0460\u04d1\u0003\u0002", | |
"\u0002\u0002\u0461\u0463\u0007\u001b\u0002\u0002\u0462\u0464\u0005^", | |
"0\u0002\u0463\u0462\u0003\u0002\u0002\u0002\u0464\u0465\u0003\u0002", | |
"\u0002\u0002\u0465\u0463\u0003\u0002\u0002\u0002\u0465\u0466\u0003\u0002", | |
"\u0002\u0002\u0466\u0469\u0003\u0002\u0002\u0002\u0467\u0468\u00077", | |
"\u0002\u0002\u0468\u046a\u0005> \u0002\u0469\u0467\u0003\u0002\u0002", | |
"\u0002\u0469\u046a\u0003\u0002\u0002\u0002\u046a\u046b\u0003\u0002\u0002", | |
"\u0002\u046b\u046c\u00078\u0002\u0002\u046c\u04d1\u0003\u0002\u0002", | |
"\u0002\u046d\u046e\u0007\u001c\u0002\u0002\u046e\u046f\u0007\u0004\u0002", | |
"\u0002\u046f\u0470\u0005> \u0002\u0470\u0471\u0007\u0013\u0002\u0002", | |
"\u0471\u0472\u0005X-\u0002\u0472\u0473\u0007\u0005\u0002\u0002\u0473", | |
"\u04d1\u0003\u0002\u0002\u0002\u0474\u0475\u0007\u00ad\u0002\u0002\u0475", | |
"\u0476\u0007\u0004\u0002\u0002\u0476\u0477\u0005> \u0002\u0477\u0478", | |
"\u0007\u0013\u0002\u0002\u0478\u0479\u0005X-\u0002\u0479\u047a\u0007", | |
"\u0005\u0002\u0002\u047a\u04d1\u0003\u0002\u0002\u0002\u047b\u047c\u0007", | |
"\u0012\u0002\u0002\u047c\u0485\u0007\t\u0002\u0002\u047d\u0482\u0005", | |
"> \u0002\u047e\u047f\u0007\u0006\u0002\u0002\u047f\u0481\u0005> \u0002", | |
"\u0480\u047e\u0003\u0002\u0002\u0002\u0481\u0484\u0003\u0002\u0002\u0002", | |
"\u0482\u0480\u0003\u0002\u0002\u0002\u0482\u0483\u0003\u0002\u0002\u0002", | |
"\u0483\u0486\u0003\u0002\u0002\u0002\u0484\u0482\u0003\u0002\u0002\u0002", | |
"\u0485\u047d\u0003\u0002\u0002\u0002\u0485\u0486\u0003\u0002\u0002\u0002", | |
"\u0486\u0487\u0003\u0002\u0002\u0002\u0487\u04d1\u0007\n\u0002\u0002", | |
"\u0488\u04d1\u0005x=\u0002\u0489\u04d1\u0007(\u0002\u0002\u048a\u048e", | |
"\u0007*\u0002\u0002\u048b\u048c\u0007\u0004\u0002\u0002\u048c\u048d", | |
"\u0007\u00d0\u0002\u0002\u048d\u048f\u0007\u0005\u0002\u0002\u048e\u048b", | |
"\u0003\u0002\u0002\u0002\u048e\u048f\u0003\u0002\u0002\u0002\u048f\u04d1", | |
"\u0003\u0002\u0002\u0002\u0490\u0494\u0007+\u0002\u0002\u0491\u0492", | |
"\u0007\u0004\u0002\u0002\u0492\u0493\u0007\u00d0\u0002\u0002\u0493\u0495", | |
"\u0007\u0005\u0002\u0002\u0494\u0491\u0003\u0002\u0002\u0002\u0494\u0495", | |
"\u0003\u0002\u0002\u0002\u0495\u04d1\u0003\u0002\u0002\u0002\u0496\u049a", | |
"\u0007d\u0002\u0002\u0497\u0498\u0007\u0004\u0002\u0002\u0498\u0499", | |
"\u0007\u00d0\u0002\u0002\u0499\u049b\u0007\u0005\u0002\u0002\u049a\u0497", | |
"\u0003\u0002\u0002\u0002\u049a\u049b\u0003\u0002\u0002\u0002\u049b\u04d1", | |
"\u0003\u0002\u0002\u0002\u049c\u04a0\u0007e\u0002\u0002\u049d\u049e", | |
"\u0007\u0004\u0002\u0002\u049e\u049f\u0007\u00d0\u0002\u0002\u049f\u04a1", | |
"\u0007\u0005\u0002\u0002\u04a0\u049d\u0003\u0002\u0002\u0002\u04a0\u04a1", | |
"\u0003\u0002\u0002\u0002\u04a1\u04d1\u0003\u0002\u0002\u0002\u04a2\u04d1", | |
"\u0007,\u0002\u0002\u04a3\u04d1\u0007)\u0002\u0002\u04a4\u04a5\u0007", | |
"\u00a1\u0002\u0002\u04a5\u04a6\u0007\u0004\u0002\u0002\u04a6\u04a7\u0005", | |
"D#\u0002\u04a7\u04a8\u0007F\u0002\u0002\u04a8\u04ab\u0005D#\u0002\u04a9", | |
"\u04aa\u0007D\u0002\u0002\u04aa\u04ac\u0005D#\u0002\u04ab\u04a9\u0003", | |
"\u0002\u0002\u0002\u04ab\u04ac\u0003\u0002\u0002\u0002\u04ac\u04ad\u0003", | |
"\u0002\u0002\u0002\u04ad\u04ae\u0007\u0005\u0002\u0002\u04ae\u04d1\u0003", | |
"\u0002\u0002\u0002\u04af\u04b0\u0007p\u0002\u0002\u04b0\u04b1\u0007", | |
"\u0004\u0002\u0002\u04b1\u04b4\u0005D#\u0002\u04b2\u04b3\u0007\u0006", | |
"\u0002\u0002\u04b3\u04b5\u0005V,\u0002\u04b4\u04b2\u0003\u0002\u0002", | |
"\u0002\u04b4\u04b5\u0003\u0002\u0002\u0002\u04b5\u04b6\u0003\u0002\u0002", | |
"\u0002\u04b6\u04b7\u0007\u0005\u0002\u0002\u04b7\u04d1\u0003\u0002\u0002", | |
"\u0002\u04b8\u04b9\u0007?\u0002\u0002\u04b9\u04ba\u0007\u0004\u0002", | |
"\u0002\u04ba\u04bb\u0005x=\u0002\u04bb\u04bc\u0007F\u0002\u0002\u04bc", | |
"\u04bd\u0005D#\u0002\u04bd\u04be\u0007\u0005\u0002\u0002\u04be\u04d1", | |
"\u0003\u0002\u0002\u0002\u04bf\u04c0\u0007\u0004\u0002\u0002\u04c0\u04c1", | |
"\u0005> \u0002\u04c1\u04c2\u0007\u0005\u0002\u0002\u04c2\u04d1\u0003", | |
"\u0002\u0002\u0002\u04c3\u04c4\u0007M\u0002\u0002\u04c4\u04cd\u0007", | |
"\u0004\u0002\u0002\u04c5\u04ca\u0005v<\u0002\u04c6\u04c7\u0007\u0006", | |
"\u0002\u0002\u04c7\u04c9\u0005v<\u0002\u04c8\u04c6\u0003\u0002\u0002", | |
"\u0002\u04c9\u04cc\u0003\u0002\u0002\u0002\u04ca\u04c8\u0003\u0002\u0002", | |
"\u0002\u04ca\u04cb\u0003\u0002\u0002\u0002\u04cb\u04ce\u0003\u0002\u0002", | |
"\u0002\u04cc\u04ca\u0003\u0002\u0002\u0002\u04cd\u04c5\u0003\u0002\u0002", | |
"\u0002\u04cd\u04ce\u0003\u0002\u0002\u0002\u04ce\u04cf\u0003\u0002\u0002", | |
"\u0002\u04cf\u04d1\u0007\u0005\u0002\u0002\u04d0\u03e3\u0003\u0002\u0002", | |
"\u0002\u04d0\u03e5\u0003\u0002\u0002\u0002\u04d0\u03e6\u0003\u0002\u0002", | |
"\u0002\u04d0\u03e9\u0003\u0002\u0002\u0002\u04d0\u03eb\u0003\u0002\u0002", | |
"\u0002\u04d0\u03ec\u0003\u0002\u0002\u0002\u04d0\u03ed\u0003\u0002\u0002", | |
"\u0002\u04d0\u03ee\u0003\u0002\u0002\u0002\u04d0\u03ef\u0003\u0002\u0002", | |
"\u0002\u04d0\u03f0\u0003\u0002\u0002\u0002\u04d0\u03f7\u0003\u0002\u0002", | |
"\u0002\u04d0\u0401\u0003\u0002\u0002\u0002\u04d0\u040d\u0003\u0002\u0002", | |
"\u0002\u04d0\u0417\u0003\u0002\u0002\u0002\u04d0\u0439\u0003\u0002\u0002", | |
"\u0002\u04d0\u043d\u0003\u0002\u0002\u0002\u04d0\u044b\u0003\u0002\u0002", | |
"\u0002\u04d0\u044f\u0003\u0002\u0002\u0002\u04d0\u0454\u0003\u0002\u0002", | |
"\u0002\u04d0\u0461\u0003\u0002\u0002\u0002\u04d0\u046d\u0003\u0002\u0002", | |
"\u0002\u04d0\u0474\u0003\u0002\u0002\u0002\u04d0\u047b\u0003\u0002\u0002", | |
"\u0002\u04d0\u0488\u0003\u0002\u0002\u0002\u04d0\u0489\u0003\u0002\u0002", | |
"\u0002\u04d0\u048a\u0003\u0002\u0002\u0002\u04d0\u0490\u0003\u0002\u0002", | |
"\u0002\u04d0\u0496\u0003\u0002\u0002\u0002\u04d0\u049c\u0003\u0002\u0002", | |
"\u0002\u04d0\u04a2\u0003\u0002\u0002\u0002\u04d0\u04a3\u0003\u0002\u0002", | |
"\u0002\u04d0\u04a4\u0003\u0002\u0002\u0002\u04d0\u04af\u0003\u0002\u0002", | |
"\u0002\u04d0\u04b8\u0003\u0002\u0002\u0002\u04d0\u04bf\u0003\u0002\u0002", | |
"\u0002\u04d0\u04c3\u0003\u0002\u0002\u0002\u04d1\u04dc\u0003\u0002\u0002", | |
"\u0002\u04d2\u04d3\f\u0011\u0002\u0002\u04d3\u04d4\u0007\t\u0002\u0002", | |
"\u04d4\u04d5\u0005D#\u0002\u04d5\u04d6\u0007\n\u0002\u0002\u04d6\u04db", | |
"\u0003\u0002\u0002\u0002\u04d7\u04d8\f\u000f\u0002\u0002\u04d8\u04d9", | |
"\u0007\u0003\u0002\u0002\u04d9\u04db\u0005x=\u0002\u04da\u04d2\u0003", | |
"\u0002\u0002\u0002\u04da\u04d7\u0003\u0002\u0002\u0002\u04db\u04de\u0003", | |
"\u0002\u0002\u0002\u04dc\u04da\u0003\u0002\u0002\u0002\u04dc\u04dd\u0003", | |
"\u0002\u0002\u0002\u04ddG\u0003\u0002\u0002\u0002\u04de\u04dc\u0003", | |
"\u0002\u0002\u0002\u04df\u04e6\u0007\u00cd\u0002\u0002\u04e0\u04e3\u0007", | |
"\u00ce\u0002\u0002\u04e1\u04e2\u0007\u00af\u0002\u0002\u04e2\u04e4\u0007", | |
"\u00cd\u0002\u0002\u04e3\u04e1\u0003\u0002\u0002\u0002\u04e3\u04e4\u0003", | |
"\u0002\u0002\u0002\u04e4\u04e6\u0003\u0002\u0002\u0002\u04e5\u04df\u0003", | |
"\u0002\u0002\u0002\u04e5\u04e0\u0003\u0002\u0002\u0002\u04e6I\u0003", | |
"\u0002\u0002\u0002\u04e7\u04e8\u0007\u00a8\u0002\u0002\u04e8\u04e9\u0007", | |
"\u00c0\u0002\u0002\u04e9\u04ee\u0005R*\u0002\u04ea\u04eb\u0007\u00a8", | |
"\u0002\u0002\u04eb\u04ec\u0007\u00c0\u0002\u0002\u04ec\u04ee\u0005H", | |
"%\u0002\u04ed\u04e7\u0003\u0002\u0002\u0002\u04ed\u04ea\u0003\u0002", | |
"\u0002\u0002\u04eeK\u0003\u0002\u0002\u0002\u04ef\u04f0\t\u000e\u0002", | |
"\u0002\u04f0M\u0003\u0002\u0002\u0002\u04f1\u04f2\t\u000f\u0002\u0002", | |
"\u04f2O\u0003\u0002\u0002\u0002\u04f3\u04f4\t\u0010\u0002\u0002\u04f4", | |
"Q\u0003\u0002\u0002\u0002\u04f5\u04f7\u0007W\u0002\u0002\u04f6\u04f8", | |
"\t\f\u0002\u0002\u04f7\u04f6\u0003\u0002\u0002\u0002\u04f7\u04f8\u0003", | |
"\u0002\u0002\u0002\u04f8\u04f9\u0003\u0002\u0002\u0002\u04f9\u04fa\u0005", | |
"H%\u0002\u04fa\u04fd\u0005T+\u0002\u04fb\u04fc\u0007\u00aa\u0002\u0002", | |
"\u04fc\u04fe\u0005T+\u0002\u04fd\u04fb\u0003\u0002\u0002\u0002\u04fd", | |
"\u04fe\u0003\u0002\u0002\u0002\u04feS\u0003\u0002\u0002\u0002\u04ff", | |
"\u0500\t\u0011\u0002\u0002\u0500U\u0003\u0002\u0002\u0002\u0501\u0502", | |
"\t\u0012\u0002\u0002\u0502W\u0003\u0002\u0002\u0002\u0503\u0504\b-\u0001", | |
"\u0002\u0504\u0505\u0007\u0012\u0002\u0002\u0505\u0506\u0007\u00c3\u0002", | |
"\u0002\u0506\u0507\u0005X-\u0002\u0507\u0508\u0007\u00c5\u0002\u0002", | |
"\u0508\u0533\u0003\u0002\u0002\u0002\u0509\u050a\u0007g\u0002\u0002", | |
"\u050a\u050b\u0007\u00c3\u0002\u0002\u050b\u050c\u0005X-\u0002\u050c", | |
"\u050d\u0007\u0006\u0002\u0002\u050d\u050e\u0005X-\u0002\u050e\u050f", | |
"\u0007\u00c5\u0002\u0002\u050f\u0533\u0003\u0002\u0002\u0002\u0510\u0511", | |
"\u0007\u0093\u0002\u0002\u0511\u0512\u0007\u0004\u0002\u0002\u0512\u0513", | |
"\u0005x=\u0002\u0513\u051a\u0005X-\u0002\u0514\u0515\u0007\u0006\u0002", | |
"\u0002\u0515\u0516\u0005x=\u0002\u0516\u0517\u0005X-\u0002\u0517\u0519", | |
"\u0003\u0002\u0002\u0002\u0518\u0514\u0003\u0002\u0002\u0002\u0519\u051c", | |
"\u0003\u0002\u0002\u0002\u051a\u0518\u0003\u0002\u0002\u0002\u051a\u051b", | |
"\u0003\u0002\u0002\u0002\u051b\u051d\u0003\u0002\u0002\u0002\u051c\u051a", | |
"\u0003\u0002\u0002\u0002\u051d\u051e\u0007\u0005\u0002\u0002\u051e\u0533", | |
"\u0003\u0002\u0002\u0002\u051f\u052b\u0005\\/\u0002\u0520\u0521\u0007", | |
"\u0004\u0002\u0002\u0521\u0526\u0005Z.\u0002\u0522\u0523\u0007\u0006", | |
"\u0002\u0002\u0523\u0525\u0005Z.\u0002\u0524\u0522\u0003\u0002\u0002", | |
"\u0002\u0525\u0528\u0003\u0002\u0002\u0002\u0526\u0524\u0003\u0002\u0002", | |
"\u0002\u0526\u0527\u0003\u0002\u0002\u0002\u0527\u0529\u0003\u0002\u0002", | |
"\u0002\u0528\u0526\u0003\u0002\u0002\u0002\u0529\u052a\u0007\u0005\u0002", | |
"\u0002\u052a\u052c\u0003\u0002\u0002\u0002\u052b\u0520\u0003\u0002\u0002", | |
"\u0002\u052b\u052c\u0003\u0002\u0002\u0002\u052c\u0533\u0003\u0002\u0002", | |
"\u0002\u052d\u052e\u0007W\u0002\u0002\u052e\u052f\u0005T+\u0002\u052f", | |
"\u0530\u0007\u00aa\u0002\u0002\u0530\u0531\u0005T+\u0002\u0531\u0533", | |
"\u0003\u0002\u0002\u0002\u0532\u0503\u0003\u0002\u0002\u0002\u0532\u0509", | |
"\u0003\u0002\u0002\u0002\u0532\u0510\u0003\u0002\u0002\u0002\u0532\u051f", | |
"\u0003\u0002\u0002\u0002\u0532\u052d\u0003\u0002\u0002\u0002\u0533\u0538", | |
"\u0003\u0002\u0002\u0002\u0534\u0535\f\b\u0002\u0002\u0535\u0537\u0007", | |
"\u0012\u0002\u0002\u0536\u0534\u0003\u0002\u0002\u0002\u0537\u053a\u0003", | |
"\u0002\u0002\u0002\u0538\u0536\u0003\u0002\u0002\u0002\u0538\u0539\u0003", | |
"\u0002\u0002\u0002\u0539Y\u0003\u0002\u0002\u0002\u053a\u0538\u0003", | |
"\u0002\u0002\u0002\u053b\u053e\u0007\u00d0\u0002\u0002\u053c\u053e\u0005", | |
"X-\u0002\u053d\u053b\u0003\u0002\u0002\u0002\u053d\u053c\u0003\u0002", | |
"\u0002\u0002\u053e[\u0003\u0002\u0002\u0002\u053f\u0544\u0007\u00d7", | |
"\u0002\u0002\u0540\u0544\u0007\u00d8\u0002\u0002\u0541\u0544\u0007\u00d9", | |
"\u0002\u0002\u0542\u0544\u0005x=\u0002\u0543\u053f\u0003\u0002\u0002", | |
"\u0002\u0543\u0540\u0003\u0002\u0002\u0002\u0543\u0541\u0003\u0002\u0002", | |
"\u0002\u0543\u0542\u0003\u0002\u0002\u0002\u0544]\u0003\u0002\u0002", | |
"\u0002\u0545\u0546\u0007\u00ba\u0002\u0002\u0546\u0547\u0005> \u0002", | |
"\u0547\u0548\u0007\u00a7\u0002\u0002\u0548\u0549\u0005> \u0002\u0549", | |
"_\u0003\u0002\u0002\u0002\u054a\u054b\u0007A\u0002\u0002\u054b\u054c", | |
"\u0007\u0004\u0002\u0002\u054c\u054d\u0007\u00bb\u0002\u0002\u054d\u054e", | |
"\u0005@!\u0002\u054e\u054f\u0007\u0005\u0002\u0002\u054fa\u0003\u0002", | |
"\u0002\u0002\u0550\u0551\u0007}\u0002\u0002\u0551\u055c\u0007\u0004", | |
"\u0002\u0002\u0552\u0553\u0007~\u0002\u0002\u0553\u0554\u0007\u0018", | |
"\u0002\u0002\u0554\u0559\u0005> \u0002\u0555\u0556\u0007\u0006\u0002", | |
"\u0002\u0556\u0558\u0005> \u0002\u0557\u0555\u0003\u0002\u0002\u0002", | |
"\u0558\u055b\u0003\u0002\u0002\u0002\u0559\u0557\u0003\u0002\u0002\u0002", | |
"\u0559\u055a\u0003\u0002\u0002\u0002\u055a\u055d\u0003\u0002\u0002\u0002", | |
"\u055b\u0559\u0003\u0002\u0002\u0002\u055c\u0552\u0003\u0002\u0002\u0002", | |
"\u055c\u055d\u0003\u0002\u0002\u0002\u055d\u0568\u0003\u0002\u0002\u0002", | |
"\u055e\u055f\u0007y\u0002\u0002\u055f\u0560\u0007\u0018\u0002\u0002", | |
"\u0560\u0565\u0005\u001e\u0010\u0002\u0561\u0562\u0007\u0006\u0002\u0002", | |
"\u0562\u0564\u0005\u001e\u0010\u0002\u0563\u0561\u0003\u0002\u0002\u0002", | |
"\u0564\u0567\u0003\u0002\u0002\u0002\u0565\u0563\u0003\u0002\u0002\u0002", | |
"\u0565\u0566\u0003\u0002\u0002\u0002\u0566\u0569\u0003\u0002\u0002\u0002", | |
"\u0567\u0565\u0003\u0002\u0002\u0002\u0568\u055e\u0003\u0002\u0002\u0002", | |
"\u0568\u0569\u0003\u0002\u0002\u0002\u0569\u056b\u0003\u0002\u0002\u0002", | |
"\u056a\u056c\u0005d3\u0002\u056b\u056a\u0003\u0002\u0002\u0002\u056b", | |
"\u056c\u0003\u0002\u0002\u0002\u056c\u056d\u0003\u0002\u0002\u0002\u056d", | |
"\u056e\u0007\u0005\u0002\u0002\u056ec\u0003\u0002\u0002\u0002\u056f", | |
"\u0570\u0007\u0087\u0002\u0002\u0570\u0580\u0005f4\u0002\u0571\u0572", | |
"\u0007\u0094\u0002\u0002\u0572\u0580\u0005f4\u0002\u0573\u0574\u0007", | |
"\u0087\u0002\u0002\u0574\u0575\u0007\u0017\u0002\u0002\u0575\u0576\u0005", | |
"f4\u0002\u0576\u0577\u0007\u0010\u0002\u0002\u0577\u0578\u0005f4\u0002", | |
"\u0578\u0580\u0003\u0002\u0002\u0002\u0579\u057a\u0007\u0094\u0002\u0002", | |
"\u057a\u057b\u0007\u0017\u0002\u0002\u057b\u057c\u0005f4\u0002\u057c", | |
"\u057d\u0007\u0010\u0002\u0002\u057d\u057e\u0005f4\u0002\u057e\u0580", | |
"\u0003\u0002\u0002\u0002\u057f\u056f\u0003\u0002\u0002\u0002\u057f\u0571", | |
"\u0003\u0002\u0002\u0002\u057f\u0573\u0003\u0002\u0002\u0002\u057f\u0579", | |
"\u0003\u0002\u0002\u0002\u0580e\u0003\u0002\u0002\u0002\u0581\u0582", | |
"\u0007\u00b0\u0002\u0002\u0582\u058b\u0007\u0082\u0002\u0002\u0583\u0584", | |
"\u0007\u00b0\u0002\u0002\u0584\u058b\u0007C\u0002\u0002\u0585\u0586", | |
"\u0007\'\u0002\u0002\u0586\u058b\u0007\u0093\u0002\u0002\u0587\u0588", | |
"\u0005> \u0002\u0588\u0589\t\u0013\u0002\u0002\u0589\u058b\u0003\u0002", | |
"\u0002\u0002\u058a\u0581\u0003\u0002\u0002\u0002\u058a\u0583\u0003\u0002", | |
"\u0002\u0002\u058a\u0585\u0003\u0002\u0002\u0002\u058a\u0587\u0003\u0002", | |
"\u0002\u0002\u058bg\u0003\u0002\u0002\u0002\u058c\u058d\u0007E\u0002", | |
"\u0002\u058d\u0591\t\u0014\u0002\u0002\u058e\u058f\u0007\u00ae\u0002", | |
"\u0002\u058f\u0591\t\u0015\u0002\u0002\u0590\u058c\u0003\u0002\u0002", | |
"\u0002\u0590\u058e\u0003\u0002\u0002\u0002\u0591i\u0003\u0002\u0002", | |
"\u0002\u0592\u0593\u0007[\u0002\u0002\u0593\u0594\u0007a\u0002\u0002", | |
"\u0594\u0598\u0005l7\u0002\u0595\u0596\u0007\u0088\u0002\u0002\u0596", | |
"\u0598\t\u0016\u0002\u0002\u0597\u0592\u0003\u0002\u0002\u0002\u0597", | |
"\u0595\u0003\u0002\u0002\u0002\u0598k\u0003\u0002\u0002\u0002\u0599", | |
"\u059a\u0007\u0088\u0002\u0002\u059a\u05a1\u0007\u00b1\u0002\u0002\u059b", | |
"\u059c\u0007\u0088\u0002\u0002\u059c\u05a1\u0007\"\u0002\u0002\u059d", | |
"\u059e\u0007\u008b\u0002\u0002\u059e\u05a1\u0007\u0088\u0002\u0002\u059f", | |
"\u05a1\u0007\u0099\u0002\u0002\u05a0\u0599\u0003\u0002\u0002\u0002\u05a0", | |
"\u059b\u0003\u0002\u0002\u0002\u05a0\u059d\u0003\u0002\u0002\u0002\u05a0", | |
"\u059f\u0003\u0002\u0002\u0002\u05a1m\u0003\u0002\u0002\u0002\u05a2", | |
"\u05a8\u0005> \u0002\u05a3\u05a4\u0005x=\u0002\u05a4\u05a5\u0007\u000b", | |
"\u0002\u0002\u05a5\u05a6\u0005> \u0002\u05a6\u05a8\u0003\u0002\u0002", | |
"\u0002\u05a7\u05a2\u0003\u0002\u0002\u0002\u05a7\u05a3\u0003\u0002\u0002", | |
"\u0002\u05a8o\u0003\u0002\u0002\u0002\u05a9\u05aa\u0005x=\u0002\u05aa", | |
"\u05ab\u0007\u0003\u0002\u0002\u05ab\u05ac\u0005x=\u0002\u05ac\u05af", | |
"\u0003\u0002\u0002\u0002\u05ad\u05af\u0005x=\u0002\u05ae\u05a9\u0003", | |
"\u0002\u0002\u0002\u05ae\u05ad\u0003\u0002\u0002\u0002\u05afq\u0003", | |
"\u0002\u0002\u0002\u05b0\u05b5\u0005p9\u0002\u05b1\u05b2\u0007\u0006", | |
"\u0002\u0002\u05b2\u05b4\u0005p9\u0002\u05b3\u05b1\u0003\u0002\u0002", | |
"\u0002\u05b4\u05b7\u0003\u0002\u0002\u0002\u05b5\u05b3\u0003\u0002\u0002", | |
"\u0002\u05b5\u05b6\u0003\u0002\u0002\u0002\u05b6s\u0003\u0002\u0002", | |
"\u0002\u05b7\u05b5\u0003\u0002\u0002\u0002\u05b8\u05bd\u0007\u0098\u0002", | |
"\u0002\u05b9\u05bd\u00071\u0002\u0002\u05ba\u05bd\u0007U\u0002\u0002", | |
"\u05bb\u05bd\u0005x=\u0002\u05bc\u05b8\u0003\u0002\u0002\u0002\u05bc", | |
"\u05b9\u0003\u0002\u0002\u0002\u05bc\u05ba\u0003\u0002\u0002\u0002\u05bc", | |
"\u05bb\u0003\u0002\u0002\u0002\u05bdu\u0003\u0002\u0002\u0002\u05be", | |
"\u05c3\u0005x=\u0002\u05bf\u05c0\u0007\u0003\u0002\u0002\u05c0\u05c2", | |
"\u0005x=\u0002\u05c1\u05bf\u0003\u0002\u0002\u0002\u05c2\u05c5\u0003", | |
"\u0002\u0002\u0002\u05c3\u05c1\u0003\u0002\u0002\u0002\u05c3\u05c4\u0003", | |
"\u0002\u0002\u0002\u05c4w\u0003\u0002\u0002\u0002\u05c5\u05c3\u0003", | |
"\u0002\u0002\u0002\u05c6\u05cc\u0007\u00d3\u0002\u0002\u05c7\u05cc\u0007", | |
"\u00d5\u0002\u0002\u05c8\u05cc\u0005|?\u0002\u05c9\u05cc\u0007\u00d6", | |
"\u0002\u0002\u05ca\u05cc\u0007\u00d4\u0002\u0002\u05cb\u05c6\u0003\u0002", | |
"\u0002\u0002\u05cb\u05c7\u0003\u0002\u0002\u0002\u05cb\u05c8\u0003\u0002", | |
"\u0002\u0002\u05cb\u05c9\u0003\u0002\u0002\u0002\u05cb\u05ca\u0003\u0002", | |
"\u0002\u0002\u05ccy\u0003\u0002\u0002\u0002\u05cd\u05d1\u0007\u00d1", | |
"\u0002\u0002\u05ce\u05d1\u0007\u00d2\u0002\u0002\u05cf\u05d1\u0007\u00d0", | |
"\u0002\u0002\u05d0\u05cd\u0003\u0002\u0002\u0002\u05d0\u05ce\u0003\u0002", | |
"\u0002\u0002\u05d0\u05cf\u0003\u0002\u0002\u0002\u05d1{\u0003\u0002", | |
"\u0002\u0002\u05d2\u05d3\t\u0017\u0002\u0002\u05d3}\u0003\u0002\u0002", | |
"\u0002\u00b9\u0094\u0099\u009f\u00a3\u00b1\u00b5\u00b9\u00bd\u00c5\u00c9", | |
"\u00cc\u00d3\u00dc\u00e2\u00e6\u00ec\u00f3\u00fc\u011f\u012a\u0135\u0138", | |
"\u0142\u0147\u014b\u0153\u0159\u0160\u0165\u0169\u0173\u0176\u017a\u017d", | |
"\u0185\u018a\u0199\u019f\u01a1\u01a7\u01ad\u01af\u01b5\u01de\u01e1\u01e5", | |
"\u01e9\u01fb\u01fe\u0209\u020c\u0212\u0219\u021e\u0224\u0228\u022e\u0236", | |
"\u0247\u024a\u024e\u0256\u025c\u025f\u0261\u026d\u0274\u0278\u027c\u0280", | |
"\u0287\u0290\u0293\u0297\u029c\u02a0\u02a3\u02aa\u02b5\u02b8\u02c2\u02c5", | |
"\u02d0\u02d5\u02dd\u02e0\u02e4\u02e8\u02f3\u02f6\u02fd\u0310\u0314\u0318", | |
"\u031c\u0320\u0324\u0326\u0331\u0336\u033f\u0345\u0349\u034b\u0353\u0364", | |
"\u036a\u0375\u037c\u0380\u0388\u038a\u0397\u039f\u03a8\u03ae\u03b6\u03bc", | |
"\u03c0\u03c5\u03ca\u03d0\u03de\u03e0\u03fd\u0408\u0412\u0415\u041a\u0421", | |
"\u0424\u042d\u0430\u0434\u0437\u0443\u0446\u0459\u045d\u0465\u0469\u0482", | |
"\u0485\u048e\u0494\u049a\u04a0\u04ab\u04b4\u04ca\u04cd\u04d0\u04da\u04dc", | |
"\u04e3\u04e5\u04ed\u04f7\u04fd\u051a\u0526\u052b\u0532\u0538\u053d\u0543", | |
"\u0559\u055c\u0565\u0568\u056b\u057f\u058a\u0590\u0597\u05a0\u05a7\u05ae", | |
"\u05b5\u05bc\u05c3\u05cb\u05d0"].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, "'.'", "'('", "')'", "','", "'?'", "'->'", "'['", | |
"']'", "'=>'", "'ADD'", "'ALL'", "'ALTER'", "'ANALYZE'", | |
"'AND'", "'ANY'", "'ARRAY'", "'AS'", "'ASC'", "'AT'", | |
"'BERNOULLI'", "'BETWEEN'", "'BY'", "'CALL'", "'CASCADE'", | |
"'CASE'", "'CAST'", "'CATALOGS'", "'COLUMN'", "'COLUMNS'", | |
"'COMMENT'", "'COMMIT'", "'COMMITTED'", "'CONSTRAINT'", | |
"'CREATE'", "'CROSS'", "'CUBE'", "'CURRENT'", "'CURRENT_DATE'", | |
"'CURRENT_PATH'", "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", | |
"'CURRENT_USER'", "'DATA'", "'DATE'", "'DAY'", "'DEALLOCATE'", | |
"'DELETE'", "'DESC'", "'DESCRIBE'", "'DISTINCT'", "'DISTRIBUTED'", | |
"'DROP'", "'ELSE'", "'END'", "'ESCAPE'", "'EXCEPT'", | |
"'EXCLUDING'", "'EXECUTE'", "'EXISTS'", "'EXPLAIN'", | |
"'EXTRACT'", "'FALSE'", "'FILTER'", "'FIRST'", "'FOLLOWING'", | |
"'FOR'", "'FORMAT'", "'FROM'", "'FULL'", "'FUNCTIONS'", | |
"'GRANT'", "'GRANTS'", "'GRAPHVIZ'", "'GROUP'", "'GROUPING'", | |
"'HAVING'", "'HOUR'", "'IF'", "'IN'", "'INCLUDING'", | |
"'INNER'", "'INPUT'", "'INSERT'", "'INTERSECT'", "'INTERVAL'", | |
"'INTO'", "'IO'", "'IS'", "'ISOLATION'", "'JSON'", | |
"'JOIN'", "'LAST'", "'LATERAL'", "'LEFT'", "'LEVEL'", | |
"'LIKE'", "'LIMIT'", "'LOCALTIME'", "'LOCALTIMESTAMP'", | |
"'LOGICAL'", "'MAP'", "'MINUTE'", "'MONTH'", "'NATURAL'", | |
"'NFC'", "'NFD'", "'NFKC'", "'NFKD'", "'NO'", "'NORMALIZE'", | |
"'NOT'", "'NULL'", "'NULLIF'", "'NULLS'", "'ON'", "'ONLY'", | |
"'OPTION'", "'OR'", "'ORDER'", "'ORDINALITY'", "'OUTER'", | |
"'OUTPUT'", "'OVER'", "'PARTITION'", "'PARTITIONS'", | |
"'PATH'", "'POSITION'", "'PRECEDING'", "'PREPARE'", | |
"'PRIVILEGES'", "'PROPERTIES'", "'PUBLIC'", "'RANGE'", | |
"'READ'", "'RECURSIVE'", "'RENAME'", "'REPEATABLE'", | |
"'REPLACE'", "'RESET'", "'RESTRICT'", "'REVOKE'", "'RIGHT'", | |
"'ROLLBACK'", "'ROLLUP'", "'ROW'", "'ROWS'", "'SCHEMA'", | |
"'SCHEMAS'", "'SECOND'", "'SELECT'", "'SERIALIZABLE'", | |
"'SESSION'", "'SET'", "'SETS'", "'SHOW'", "'SOME'", | |
"'START'", "'STATS'", "'SUBSTRING'", "'SYSTEM'", "'TABLE'", | |
"'TABLES'", "'TABLESAMPLE'", "'TEXT'", "'THEN'", "'TIME'", | |
"'TIMESTAMP'", "'TO'", "'TRANSACTION'", "'TRUE'", "'TRY_CAST'", | |
"'TYPE'", "'UESCAPE'", "'UNBOUNDED'", "'UNCOMMITTED'", | |
"'UNION'", "'UNNEST'", "'USE'", "'USING'", "'VALIDATE'", | |
"'VALUES'", "'VERBOSE'", "'VIEW'", "'WHEN'", "'WHERE'", | |
"'WITH'", "'WORK'", "'WRITE'", "'YEAR'", "'ZONE'", | |
"'='", null, "'<'", "'<='", "'>'", "'>='", "'+'", "'-'", | |
"'*'", "'/'", "'%'", "'||'" ]; | |
var symbolicNames = [ null, null, null, null, null, null, null, null, null, | |
null, "ADD", "ALL", "ALTER", "ANALYZE", "AND", "ANY", | |
"ARRAY", "AS", "ASC", "AT", "BERNOULLI", "BETWEEN", | |
"BY", "CALL", "CASCADE", "CASE", "CAST", "CATALOGS", | |
"COLUMN", "COLUMNS", "COMMENT", "COMMIT", "COMMITTED", | |
"CONSTRAINT", "CREATE", "CROSS", "CUBE", "CURRENT", | |
"CURRENT_DATE", "CURRENT_PATH", "CURRENT_TIME", "CURRENT_TIMESTAMP", | |
"CURRENT_USER", "DATA", "DATE", "DAY", "DEALLOCATE", | |
"DELETE", "DESC", "DESCRIBE", "DISTINCT", "DISTRIBUTED", | |
"DROP", "ELSE", "END", "ESCAPE", "EXCEPT", "EXCLUDING", | |
"EXECUTE", "EXISTS", "EXPLAIN", "EXTRACT", "FALSE", | |
"FILTER", "FIRST", "FOLLOWING", "FOR", "FORMAT", "FROM", | |
"FULL", "FUNCTIONS", "GRANT", "GRANTS", "GRAPHVIZ", | |
"GROUP", "GROUPING", "HAVING", "HOUR", "IF", "IN", | |
"INCLUDING", "INNER", "INPUT", "INSERT", "INTERSECT", | |
"INTERVAL", "INTO", "IO", "IS", "ISOLATION", "JSON", | |
"JOIN", "LAST", "LATERAL", "LEFT", "LEVEL", "LIKE", | |
"LIMIT", "LOCALTIME", "LOCALTIMESTAMP", "LOGICAL", | |
"MAP", "MINUTE", "MONTH", "NATURAL", "NFC", "NFD", | |
"NFKC", "NFKD", "NO", "NORMALIZE", "NOT", "NULL", | |
"NULLIF", "NULLS", "ON", "ONLY", "OPTION", "OR", "ORDER", | |
"ORDINALITY", "OUTER", "OUTPUT", "OVER", "PARTITION", | |
"PARTITIONS", "PATH", "POSITION", "PRECEDING", "PREPARE", | |
"PRIVILEGES", "PROPERTIES", "PUBLIC", "RANGE", "READ", | |
"RECURSIVE", "RENAME", "REPEATABLE", "REPLACE", "RESET", | |
"RESTRICT", "REVOKE", "RIGHT", "ROLLBACK", "ROLLUP", | |
"ROW", "ROWS", "SCHEMA", "SCHEMAS", "SECOND", "SELECT", | |
"SERIALIZABLE", "SESSION", "SET", "SETS", "SHOW", | |
"SOME", "START", "STATS", "SUBSTRING", "SYSTEM", "TABLE", | |
"TABLES", "TABLESAMPLE", "TEXT", "THEN", "TIME", "TIMESTAMP", | |
"TO", "TRANSACTION", "TRUE", "TRY_CAST", "TYPE", "UESCAPE", | |
"UNBOUNDED", "UNCOMMITTED", "UNION", "UNNEST", "USE", | |
"USING", "VALIDATE", "VALUES", "VERBOSE", "VIEW", | |
"WHEN", "WHERE", "WITH", "WORK", "WRITE", "YEAR", | |
"ZONE", "EQ", "NEQ", "LT", "LTE", "GT", "GTE", "PLUS", | |
"MINUS", "ASTERISK", "SLASH", "PERCENT", "CONCAT", | |
"STRING", "UNICODE_STRING", "BINARY_LITERAL", "INTEGER_VALUE", | |
"DECIMAL_VALUE", "DOUBLE_VALUE", "IDENTIFIER", "DIGIT_IDENTIFIER", | |
"QUOTED_IDENTIFIER", "BACKQUOTED_IDENTIFIER", "TIME_WITH_TIME_ZONE", | |
"TIMESTAMP_WITH_TIME_ZONE", "DOUBLE_PRECISION", "SIMPLE_COMMENT", | |
"BRACKETED_COMMENT", "WS", "UNRECOGNIZED", "DELIMITER" ]; | |
var ruleNames = [ "singleStatement", "standaloneExpression", "standalonePathSpecification", | |
"statement", "query", "renamedwith", "tableElement", | |
"columnDefinition", "likeClause", "properties", "property", | |
"queryNoWith", "queryTerm", "queryPrimary", "sortItem", | |
"querySpecification", "groupBy", "groupingElement", "groupingSet", | |
"namedQuery", "setQuantifier", "selectItem", "relation", | |
"joinType", "joinCriteria", "sampledRelation", "sampleType", | |
"aliasedRelation", "columnAliases", "relationPrimary", | |
"expression", "booleanExpression", "predicate", "valueExpression", | |
"primaryExpression", "string", "timeZoneSpecifier", "comparisonOperator", | |
"comparisonQuantifier", "booleanValue", "interval", "intervalField", | |
"normalForm", "type", "typeParameter", "baseType", "whenClause", | |
"filter", "over", "windowFrame", "frameBound", "explainOption", | |
"transactionMode", "levelOfIsolation", "callArgument", | |
"pathElement", "pathSpecification", "privilege", "qualifiedName", | |
"identifier", "number", "nonReserved" ]; | |
function SqlBaseParser (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; | |
} | |
SqlBaseParser.prototype = Object.create(antlr4.Parser.prototype); | |
SqlBaseParser.prototype.constructor = SqlBaseParser; | |
Object.defineProperty(SqlBaseParser.prototype, "atn", { | |
get : function() { | |
return atn; | |
} | |
}); | |
SqlBaseParser.EOF = antlr4.Token.EOF; | |
SqlBaseParser.T__0 = 1; | |
SqlBaseParser.T__1 = 2; | |
SqlBaseParser.T__2 = 3; | |
SqlBaseParser.T__3 = 4; | |
SqlBaseParser.T__4 = 5; | |
SqlBaseParser.T__5 = 6; | |
SqlBaseParser.T__6 = 7; | |
SqlBaseParser.T__7 = 8; | |
SqlBaseParser.T__8 = 9; | |
SqlBaseParser.ADD = 10; | |
SqlBaseParser.ALL = 11; | |
SqlBaseParser.ALTER = 12; | |
SqlBaseParser.ANALYZE = 13; | |
SqlBaseParser.AND = 14; | |
SqlBaseParser.ANY = 15; | |
SqlBaseParser.ARRAY = 16; | |
SqlBaseParser.AS = 17; | |
SqlBaseParser.ASC = 18; | |
SqlBaseParser.AT = 19; | |
SqlBaseParser.BERNOULLI = 20; | |
SqlBaseParser.BETWEEN = 21; | |
SqlBaseParser.BY = 22; | |
SqlBaseParser.CALL = 23; | |
SqlBaseParser.CASCADE = 24; | |
SqlBaseParser.CASE = 25; | |
SqlBaseParser.CAST = 26; | |
SqlBaseParser.CATALOGS = 27; | |
SqlBaseParser.COLUMN = 28; | |
SqlBaseParser.COLUMNS = 29; | |
SqlBaseParser.COMMENT = 30; | |
SqlBaseParser.COMMIT = 31; | |
SqlBaseParser.COMMITTED = 32; | |
SqlBaseParser.CONSTRAINT = 33; | |
SqlBaseParser.CREATE = 34; | |
SqlBaseParser.CROSS = 35; | |
SqlBaseParser.CUBE = 36; | |
SqlBaseParser.CURRENT = 37; | |
SqlBaseParser.CURRENT_DATE = 38; | |
SqlBaseParser.CURRENT_PATH = 39; | |
SqlBaseParser.CURRENT_TIME = 40; | |
SqlBaseParser.CURRENT_TIMESTAMP = 41; | |
SqlBaseParser.CURRENT_USER = 42; | |
SqlBaseParser.DATA = 43; | |
SqlBaseParser.DATE = 44; | |
SqlBaseParser.DAY = 45; | |
SqlBaseParser.DEALLOCATE = 46; | |
SqlBaseParser.DELETE = 47; | |
SqlBaseParser.DESC = 48; | |
SqlBaseParser.DESCRIBE = 49; | |
SqlBaseParser.DISTINCT = 50; | |
SqlBaseParser.DISTRIBUTED = 51; | |
SqlBaseParser.DROP = 52; | |
SqlBaseParser.ELSE = 53; | |
SqlBaseParser.END = 54; | |
SqlBaseParser.ESCAPE = 55; | |
SqlBaseParser.EXCEPT = 56; | |
SqlBaseParser.EXCLUDING = 57; | |
SqlBaseParser.EXECUTE = 58; | |
SqlBaseParser.EXISTS = 59; | |
SqlBaseParser.EXPLAIN = 60; | |
SqlBaseParser.EXTRACT = 61; | |
SqlBaseParser.FALSE = 62; | |
SqlBaseParser.FILTER = 63; | |
SqlBaseParser.FIRST = 64; | |
SqlBaseParser.FOLLOWING = 65; | |
SqlBaseParser.FOR = 66; | |
SqlBaseParser.FORMAT = 67; | |
SqlBaseParser.FROM = 68; | |
SqlBaseParser.FULL = 69; | |
SqlBaseParser.FUNCTIONS = 70; | |
SqlBaseParser.GRANT = 71; | |
SqlBaseParser.GRANTS = 72; | |
SqlBaseParser.GRAPHVIZ = 73; | |
SqlBaseParser.GROUP = 74; | |
SqlBaseParser.GROUPING = 75; | |
SqlBaseParser.HAVING = 76; | |
SqlBaseParser.HOUR = 77; | |
SqlBaseParser.IF = 78; | |
SqlBaseParser.IN = 79; | |
SqlBaseParser.INCLUDING = 80; | |
SqlBaseParser.INNER = 81; | |
SqlBaseParser.INPUT = 82; | |
SqlBaseParser.INSERT = 83; | |
SqlBaseParser.INTERSECT = 84; | |
SqlBaseParser.INTERVAL = 85; | |
SqlBaseParser.INTO = 86; | |
SqlBaseParser.IO = 87; | |
SqlBaseParser.IS = 88; | |
SqlBaseParser.ISOLATION = 89; | |
SqlBaseParser.JSON = 90; | |
SqlBaseParser.JOIN = 91; | |
SqlBaseParser.LAST = 92; | |
SqlBaseParser.LATERAL = 93; | |
SqlBaseParser.LEFT = 94; | |
SqlBaseParser.LEVEL = 95; | |
SqlBaseParser.LIKE = 96; | |
SqlBaseParser.LIMIT = 97; | |
SqlBaseParser.LOCALTIME = 98; | |
SqlBaseParser.LOCALTIMESTAMP = 99; | |
SqlBaseParser.LOGICAL = 100; | |
SqlBaseParser.MAP = 101; | |
SqlBaseParser.MINUTE = 102; | |
SqlBaseParser.MONTH = 103; | |
SqlBaseParser.NATURAL = 104; | |
SqlBaseParser.NFC = 105; | |
SqlBaseParser.NFD = 106; | |
SqlBaseParser.NFKC = 107; | |
SqlBaseParser.NFKD = 108; | |
SqlBaseParser.NO = 109; | |
SqlBaseParser.NORMALIZE = 110; | |
SqlBaseParser.NOT = 111; | |
SqlBaseParser.NULL = 112; | |
SqlBaseParser.NULLIF = 113; | |
SqlBaseParser.NULLS = 114; | |
SqlBaseParser.ON = 115; | |
SqlBaseParser.ONLY = 116; | |
SqlBaseParser.OPTION = 117; | |
SqlBaseParser.OR = 118; | |
SqlBaseParser.ORDER = 119; | |
SqlBaseParser.ORDINALITY = 120; | |
SqlBaseParser.OUTER = 121; | |
SqlBaseParser.OUTPUT = 122; | |
SqlBaseParser.OVER = 123; | |
SqlBaseParser.PARTITION = 124; | |
SqlBaseParser.PARTITIONS = 125; | |
SqlBaseParser.PATH = 126; | |
SqlBaseParser.POSITION = 127; | |
SqlBaseParser.PRECEDING = 128; | |
SqlBaseParser.PREPARE = 129; | |
SqlBaseParser.PRIVILEGES = 130; | |
SqlBaseParser.PROPERTIES = 131; | |
SqlBaseParser.PUBLIC = 132; | |
SqlBaseParser.RANGE = 133; | |
SqlBaseParser.READ = 134; | |
SqlBaseParser.RECURSIVE = 135; | |
SqlBaseParser.RENAME = 136; | |
SqlBaseParser.REPEATABLE = 137; | |
SqlBaseParser.REPLACE = 138; | |
SqlBaseParser.RESET = 139; | |
SqlBaseParser.RESTRICT = 140; | |
SqlBaseParser.REVOKE = 141; | |
SqlBaseParser.RIGHT = 142; | |
SqlBaseParser.ROLLBACK = 143; | |
SqlBaseParser.ROLLUP = 144; | |
SqlBaseParser.ROW = 145; | |
SqlBaseParser.ROWS = 146; | |
SqlBaseParser.SCHEMA = 147; | |
SqlBaseParser.SCHEMAS = 148; | |
SqlBaseParser.SECOND = 149; | |
SqlBaseParser.SELECT = 150; | |
SqlBaseParser.SERIALIZABLE = 151; | |
SqlBaseParser.SESSION = 152; | |
SqlBaseParser.SET = 153; | |
SqlBaseParser.SETS = 154; | |
SqlBaseParser.SHOW = 155; | |
SqlBaseParser.SOME = 156; | |
SqlBaseParser.START = 157; | |
SqlBaseParser.STATS = 158; | |
SqlBaseParser.SUBSTRING = 159; | |
SqlBaseParser.SYSTEM = 160; | |
SqlBaseParser.TABLE = 161; | |
SqlBaseParser.TABLES = 162; | |
SqlBaseParser.TABLESAMPLE = 163; | |
SqlBaseParser.TEXT = 164; | |
SqlBaseParser.THEN = 165; | |
SqlBaseParser.TIME = 166; | |
SqlBaseParser.TIMESTAMP = 167; | |
SqlBaseParser.TO = 168; | |
SqlBaseParser.TRANSACTION = 169; | |
SqlBaseParser.TRUE = 170; | |
SqlBaseParser.TRY_CAST = 171; | |
SqlBaseParser.TYPE = 172; | |
SqlBaseParser.UESCAPE = 173; | |
SqlBaseParser.UNBOUNDED = 174; | |
SqlBaseParser.UNCOMMITTED = 175; | |
SqlBaseParser.UNION = 176; | |
SqlBaseParser.UNNEST = 177; | |
SqlBaseParser.USE = 178; | |
SqlBaseParser.USING = 179; | |
SqlBaseParser.VALIDATE = 180; | |
SqlBaseParser.VALUES = 181; | |
SqlBaseParser.VERBOSE = 182; | |
SqlBaseParser.VIEW = 183; | |
SqlBaseParser.WHEN = 184; | |
SqlBaseParser.WHERE = 185; | |
SqlBaseParser.WITH = 186; | |
SqlBaseParser.WORK = 187; | |
SqlBaseParser.WRITE = 188; | |
SqlBaseParser.YEAR = 189; | |
SqlBaseParser.ZONE = 190; | |
SqlBaseParser.EQ = 191; | |
SqlBaseParser.NEQ = 192; | |
SqlBaseParser.LT = 193; | |
SqlBaseParser.LTE = 194; | |
SqlBaseParser.GT = 195; | |
SqlBaseParser.GTE = 196; | |
SqlBaseParser.PLUS = 197; | |
SqlBaseParser.MINUS = 198; | |
SqlBaseParser.ASTERISK = 199; | |
SqlBaseParser.SLASH = 200; | |
SqlBaseParser.PERCENT = 201; | |
SqlBaseParser.CONCAT = 202; | |
SqlBaseParser.STRING = 203; | |
SqlBaseParser.UNICODE_STRING = 204; | |
SqlBaseParser.BINARY_LITERAL = 205; | |
SqlBaseParser.INTEGER_VALUE = 206; | |
SqlBaseParser.DECIMAL_VALUE = 207; | |
SqlBaseParser.DOUBLE_VALUE = 208; | |
SqlBaseParser.IDENTIFIER = 209; | |
SqlBaseParser.DIGIT_IDENTIFIER = 210; | |
SqlBaseParser.QUOTED_IDENTIFIER = 211; | |
SqlBaseParser.BACKQUOTED_IDENTIFIER = 212; | |
SqlBaseParser.TIME_WITH_TIME_ZONE = 213; | |
SqlBaseParser.TIMESTAMP_WITH_TIME_ZONE = 214; | |
SqlBaseParser.DOUBLE_PRECISION = 215; | |
SqlBaseParser.SIMPLE_COMMENT = 216; | |
SqlBaseParser.BRACKETED_COMMENT = 217; | |
SqlBaseParser.WS = 218; | |
SqlBaseParser.UNRECOGNIZED = 219; | |
SqlBaseParser.DELIMITER = 220; | |
SqlBaseParser.RULE_singleStatement = 0; | |
SqlBaseParser.RULE_standaloneExpression = 1; | |
SqlBaseParser.RULE_standalonePathSpecification = 2; | |
SqlBaseParser.RULE_statement = 3; | |
SqlBaseParser.RULE_query = 4; | |
SqlBaseParser.RULE_renamedwith = 5; | |
SqlBaseParser.RULE_tableElement = 6; | |
SqlBaseParser.RULE_columnDefinition = 7; | |
SqlBaseParser.RULE_likeClause = 8; | |
SqlBaseParser.RULE_properties = 9; | |
SqlBaseParser.RULE_property = 10; | |
SqlBaseParser.RULE_queryNoWith = 11; | |
SqlBaseParser.RULE_queryTerm = 12; | |
SqlBaseParser.RULE_queryPrimary = 13; | |
SqlBaseParser.RULE_sortItem = 14; | |
SqlBaseParser.RULE_querySpecification = 15; | |
SqlBaseParser.RULE_groupBy = 16; | |
SqlBaseParser.RULE_groupingElement = 17; | |
SqlBaseParser.RULE_groupingSet = 18; | |
SqlBaseParser.RULE_namedQuery = 19; | |
SqlBaseParser.RULE_setQuantifier = 20; | |
SqlBaseParser.RULE_selectItem = 21; | |
SqlBaseParser.RULE_relation = 22; | |
SqlBaseParser.RULE_joinType = 23; | |
SqlBaseParser.RULE_joinCriteria = 24; | |
SqlBaseParser.RULE_sampledRelation = 25; | |
SqlBaseParser.RULE_sampleType = 26; | |
SqlBaseParser.RULE_aliasedRelation = 27; | |
SqlBaseParser.RULE_columnAliases = 28; | |
SqlBaseParser.RULE_relationPrimary = 29; | |
SqlBaseParser.RULE_expression = 30; | |
SqlBaseParser.RULE_booleanExpression = 31; | |
SqlBaseParser.RULE_predicate = 32; | |
SqlBaseParser.RULE_valueExpression = 33; | |
SqlBaseParser.RULE_primaryExpression = 34; | |
SqlBaseParser.RULE_string = 35; | |
SqlBaseParser.RULE_timeZoneSpecifier = 36; | |
SqlBaseParser.RULE_comparisonOperator = 37; | |
SqlBaseParser.RULE_comparisonQuantifier = 38; | |
SqlBaseParser.RULE_booleanValue = 39; | |
SqlBaseParser.RULE_interval = 40; | |
SqlBaseParser.RULE_intervalField = 41; | |
SqlBaseParser.RULE_normalForm = 42; | |
SqlBaseParser.RULE_type = 43; | |
SqlBaseParser.RULE_typeParameter = 44; | |
SqlBaseParser.RULE_baseType = 45; | |
SqlBaseParser.RULE_whenClause = 46; | |
SqlBaseParser.RULE_filter = 47; | |
SqlBaseParser.RULE_over = 48; | |
SqlBaseParser.RULE_windowFrame = 49; | |
SqlBaseParser.RULE_frameBound = 50; | |
SqlBaseParser.RULE_explainOption = 51; | |
SqlBaseParser.RULE_transactionMode = 52; | |
SqlBaseParser.RULE_levelOfIsolation = 53; | |
SqlBaseParser.RULE_callArgument = 54; | |
SqlBaseParser.RULE_pathElement = 55; | |
SqlBaseParser.RULE_pathSpecification = 56; | |
SqlBaseParser.RULE_privilege = 57; | |
SqlBaseParser.RULE_qualifiedName = 58; | |
SqlBaseParser.RULE_identifier = 59; | |
SqlBaseParser.RULE_number = 60; | |
SqlBaseParser.RULE_nonReserved = 61; | |
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 = SqlBaseParser.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(SqlBaseParser.EOF, 0); | |
}; | |
SingleStatementContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSingleStatement(this); | |
} | |
}; | |
SingleStatementContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSingleStatement(this); | |
} | |
}; | |
SqlBaseParser.SingleStatementContext = SingleStatementContext; | |
SqlBaseParser.prototype.singleStatement = function() { | |
var localctx = new SingleStatementContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 0, SqlBaseParser.RULE_singleStatement); | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 124; | |
this.statement(); | |
this.state = 125; | |
this.match(SqlBaseParser.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 StandaloneExpressionContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_standaloneExpression; | |
return this; | |
} | |
StandaloneExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
StandaloneExpressionContext.prototype.constructor = StandaloneExpressionContext; | |
StandaloneExpressionContext.prototype.expression = function() { | |
return this.getTypedRuleContext(ExpressionContext,0); | |
}; | |
StandaloneExpressionContext.prototype.EOF = function() { | |
return this.getToken(SqlBaseParser.EOF, 0); | |
}; | |
StandaloneExpressionContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterStandaloneExpression(this); | |
} | |
}; | |
StandaloneExpressionContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitStandaloneExpression(this); | |
} | |
}; | |
SqlBaseParser.StandaloneExpressionContext = StandaloneExpressionContext; | |
SqlBaseParser.prototype.standaloneExpression = function() { | |
var localctx = new StandaloneExpressionContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 2, SqlBaseParser.RULE_standaloneExpression); | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 127; | |
this.expression(); | |
this.state = 128; | |
this.match(SqlBaseParser.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 StandalonePathSpecificationContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_standalonePathSpecification; | |
return this; | |
} | |
StandalonePathSpecificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
StandalonePathSpecificationContext.prototype.constructor = StandalonePathSpecificationContext; | |
StandalonePathSpecificationContext.prototype.pathSpecification = function() { | |
return this.getTypedRuleContext(PathSpecificationContext,0); | |
}; | |
StandalonePathSpecificationContext.prototype.EOF = function() { | |
return this.getToken(SqlBaseParser.EOF, 0); | |
}; | |
StandalonePathSpecificationContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterStandalonePathSpecification(this); | |
} | |
}; | |
StandalonePathSpecificationContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitStandalonePathSpecification(this); | |
} | |
}; | |
SqlBaseParser.StandalonePathSpecificationContext = StandalonePathSpecificationContext; | |
SqlBaseParser.prototype.standalonePathSpecification = function() { | |
var localctx = new StandalonePathSpecificationContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 4, SqlBaseParser.RULE_standalonePathSpecification); | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 130; | |
this.pathSpecification(); | |
this.state = 131; | |
this.match(SqlBaseParser.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 = SqlBaseParser.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; | |
SqlBaseParser.ExplainContext = ExplainContext; | |
ExplainContext.prototype.EXPLAIN = function() { | |
return this.getToken(SqlBaseParser.EXPLAIN, 0); | |
}; | |
ExplainContext.prototype.statement = function() { | |
return this.getTypedRuleContext(StatementContext,0); | |
}; | |
ExplainContext.prototype.ANALYZE = function() { | |
return this.getToken(SqlBaseParser.ANALYZE, 0); | |
}; | |
ExplainContext.prototype.VERBOSE = function() { | |
return this.getToken(SqlBaseParser.VERBOSE, 0); | |
}; | |
ExplainContext.prototype.explainOption = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(ExplainOptionContext); | |
} else { | |
return this.getTypedRuleContext(ExplainOptionContext,i); | |
} | |
}; | |
ExplainContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterExplain(this); | |
} | |
}; | |
ExplainContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitExplain(this); | |
} | |
}; | |
function PrepareContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
PrepareContext.prototype = Object.create(StatementContext.prototype); | |
PrepareContext.prototype.constructor = PrepareContext; | |
SqlBaseParser.PrepareContext = PrepareContext; | |
PrepareContext.prototype.PREPARE = function() { | |
return this.getToken(SqlBaseParser.PREPARE, 0); | |
}; | |
PrepareContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
PrepareContext.prototype.FROM = function() { | |
return this.getToken(SqlBaseParser.FROM, 0); | |
}; | |
PrepareContext.prototype.statement = function() { | |
return this.getTypedRuleContext(StatementContext,0); | |
}; | |
PrepareContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterPrepare(this); | |
} | |
}; | |
PrepareContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitPrepare(this); | |
} | |
}; | |
function CreateTableContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
CreateTableContext.prototype = Object.create(StatementContext.prototype); | |
CreateTableContext.prototype.constructor = CreateTableContext; | |
SqlBaseParser.CreateTableContext = CreateTableContext; | |
CreateTableContext.prototype.CREATE = function() { | |
return this.getToken(SqlBaseParser.CREATE, 0); | |
}; | |
CreateTableContext.prototype.TABLE = function() { | |
return this.getToken(SqlBaseParser.TABLE, 0); | |
}; | |
CreateTableContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
CreateTableContext.prototype.tableElement = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(TableElementContext); | |
} else { | |
return this.getTypedRuleContext(TableElementContext,i); | |
} | |
}; | |
CreateTableContext.prototype.IF = function() { | |
return this.getToken(SqlBaseParser.IF, 0); | |
}; | |
CreateTableContext.prototype.NOT = function() { | |
return this.getToken(SqlBaseParser.NOT, 0); | |
}; | |
CreateTableContext.prototype.EXISTS = function() { | |
return this.getToken(SqlBaseParser.EXISTS, 0); | |
}; | |
CreateTableContext.prototype.COMMENT = function() { | |
return this.getToken(SqlBaseParser.COMMENT, 0); | |
}; | |
CreateTableContext.prototype.string = function() { | |
return this.getTypedRuleContext(StringContext,0); | |
}; | |
CreateTableContext.prototype.WITH = function() { | |
return this.getToken(SqlBaseParser.WITH, 0); | |
}; | |
CreateTableContext.prototype.properties = function() { | |
return this.getTypedRuleContext(PropertiesContext,0); | |
}; | |
CreateTableContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterCreateTable(this); | |
} | |
}; | |
CreateTableContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitCreateTable(this); | |
} | |
}; | |
function StartTransactionContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
StartTransactionContext.prototype = Object.create(StatementContext.prototype); | |
StartTransactionContext.prototype.constructor = StartTransactionContext; | |
SqlBaseParser.StartTransactionContext = StartTransactionContext; | |
StartTransactionContext.prototype.START = function() { | |
return this.getToken(SqlBaseParser.START, 0); | |
}; | |
StartTransactionContext.prototype.TRANSACTION = function() { | |
return this.getToken(SqlBaseParser.TRANSACTION, 0); | |
}; | |
StartTransactionContext.prototype.transactionMode = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(TransactionModeContext); | |
} else { | |
return this.getTypedRuleContext(TransactionModeContext,i); | |
} | |
}; | |
StartTransactionContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterStartTransaction(this); | |
} | |
}; | |
StartTransactionContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitStartTransaction(this); | |
} | |
}; | |
function CreateTableAsSelectContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
CreateTableAsSelectContext.prototype = Object.create(StatementContext.prototype); | |
CreateTableAsSelectContext.prototype.constructor = CreateTableAsSelectContext; | |
SqlBaseParser.CreateTableAsSelectContext = CreateTableAsSelectContext; | |
CreateTableAsSelectContext.prototype.CREATE = function() { | |
return this.getToken(SqlBaseParser.CREATE, 0); | |
}; | |
CreateTableAsSelectContext.prototype.TABLE = function() { | |
return this.getToken(SqlBaseParser.TABLE, 0); | |
}; | |
CreateTableAsSelectContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
CreateTableAsSelectContext.prototype.AS = function() { | |
return this.getToken(SqlBaseParser.AS, 0); | |
}; | |
CreateTableAsSelectContext.prototype.query = function() { | |
return this.getTypedRuleContext(QueryContext,0); | |
}; | |
CreateTableAsSelectContext.prototype.IF = function() { | |
return this.getToken(SqlBaseParser.IF, 0); | |
}; | |
CreateTableAsSelectContext.prototype.NOT = function() { | |
return this.getToken(SqlBaseParser.NOT, 0); | |
}; | |
CreateTableAsSelectContext.prototype.EXISTS = function() { | |
return this.getToken(SqlBaseParser.EXISTS, 0); | |
}; | |
CreateTableAsSelectContext.prototype.columnAliases = function() { | |
return this.getTypedRuleContext(ColumnAliasesContext,0); | |
}; | |
CreateTableAsSelectContext.prototype.COMMENT = function() { | |
return this.getToken(SqlBaseParser.COMMENT, 0); | |
}; | |
CreateTableAsSelectContext.prototype.string = function() { | |
return this.getTypedRuleContext(StringContext,0); | |
}; | |
CreateTableAsSelectContext.prototype.WITH = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTokens(SqlBaseParser.WITH); | |
} else { | |
return this.getToken(SqlBaseParser.WITH, i); | |
} | |
}; | |
CreateTableAsSelectContext.prototype.properties = function() { | |
return this.getTypedRuleContext(PropertiesContext,0); | |
}; | |
CreateTableAsSelectContext.prototype.DATA = function() { | |
return this.getToken(SqlBaseParser.DATA, 0); | |
}; | |
CreateTableAsSelectContext.prototype.NO = function() { | |
return this.getToken(SqlBaseParser.NO, 0); | |
}; | |
CreateTableAsSelectContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterCreateTableAsSelect(this); | |
} | |
}; | |
CreateTableAsSelectContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitCreateTableAsSelect(this); | |
} | |
}; | |
function UseContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
this.schema = null; // IdentifierContext; | |
this.catalog = null; // IdentifierContext; | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
UseContext.prototype = Object.create(StatementContext.prototype); | |
UseContext.prototype.constructor = UseContext; | |
SqlBaseParser.UseContext = UseContext; | |
UseContext.prototype.USE = function() { | |
return this.getToken(SqlBaseParser.USE, 0); | |
}; | |
UseContext.prototype.identifier = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(IdentifierContext); | |
} else { | |
return this.getTypedRuleContext(IdentifierContext,i); | |
} | |
}; | |
UseContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterUse(this); | |
} | |
}; | |
UseContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitUse(this); | |
} | |
}; | |
function ShowStatsContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ShowStatsContext.prototype = Object.create(StatementContext.prototype); | |
ShowStatsContext.prototype.constructor = ShowStatsContext; | |
SqlBaseParser.ShowStatsContext = ShowStatsContext; | |
ShowStatsContext.prototype.SHOW = function() { | |
return this.getToken(SqlBaseParser.SHOW, 0); | |
}; | |
ShowStatsContext.prototype.STATS = function() { | |
return this.getToken(SqlBaseParser.STATS, 0); | |
}; | |
ShowStatsContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
ShowStatsContext.prototype.FOR = function() { | |
return this.getToken(SqlBaseParser.FOR, 0); | |
}; | |
ShowStatsContext.prototype.ON = function() { | |
return this.getToken(SqlBaseParser.ON, 0); | |
}; | |
ShowStatsContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterShowStats(this); | |
} | |
}; | |
ShowStatsContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitShowStats(this); | |
} | |
}; | |
function DeallocateContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
DeallocateContext.prototype = Object.create(StatementContext.prototype); | |
DeallocateContext.prototype.constructor = DeallocateContext; | |
SqlBaseParser.DeallocateContext = DeallocateContext; | |
DeallocateContext.prototype.DEALLOCATE = function() { | |
return this.getToken(SqlBaseParser.DEALLOCATE, 0); | |
}; | |
DeallocateContext.prototype.PREPARE = function() { | |
return this.getToken(SqlBaseParser.PREPARE, 0); | |
}; | |
DeallocateContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
DeallocateContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterDeallocate(this); | |
} | |
}; | |
DeallocateContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitDeallocate(this); | |
} | |
}; | |
function RenameTableContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
this.from = null; // QualifiedNameContext; | |
this.to = null; // QualifiedNameContext; | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
RenameTableContext.prototype = Object.create(StatementContext.prototype); | |
RenameTableContext.prototype.constructor = RenameTableContext; | |
SqlBaseParser.RenameTableContext = RenameTableContext; | |
RenameTableContext.prototype.ALTER = function() { | |
return this.getToken(SqlBaseParser.ALTER, 0); | |
}; | |
RenameTableContext.prototype.TABLE = function() { | |
return this.getToken(SqlBaseParser.TABLE, 0); | |
}; | |
RenameTableContext.prototype.RENAME = function() { | |
return this.getToken(SqlBaseParser.RENAME, 0); | |
}; | |
RenameTableContext.prototype.TO = function() { | |
return this.getToken(SqlBaseParser.TO, 0); | |
}; | |
RenameTableContext.prototype.qualifiedName = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(QualifiedNameContext); | |
} else { | |
return this.getTypedRuleContext(QualifiedNameContext,i); | |
} | |
}; | |
RenameTableContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterRenameTable(this); | |
} | |
}; | |
RenameTableContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitRenameTable(this); | |
} | |
}; | |
function CommitContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
CommitContext.prototype = Object.create(StatementContext.prototype); | |
CommitContext.prototype.constructor = CommitContext; | |
SqlBaseParser.CommitContext = CommitContext; | |
CommitContext.prototype.COMMIT = function() { | |
return this.getToken(SqlBaseParser.COMMIT, 0); | |
}; | |
CommitContext.prototype.WORK = function() { | |
return this.getToken(SqlBaseParser.WORK, 0); | |
}; | |
CommitContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterCommit(this); | |
} | |
}; | |
CommitContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitCommit(this); | |
} | |
}; | |
function RevokeContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
this.grantee = null; // IdentifierContext; | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
RevokeContext.prototype = Object.create(StatementContext.prototype); | |
RevokeContext.prototype.constructor = RevokeContext; | |
SqlBaseParser.RevokeContext = RevokeContext; | |
RevokeContext.prototype.REVOKE = function() { | |
return this.getToken(SqlBaseParser.REVOKE, 0); | |
}; | |
RevokeContext.prototype.ON = function() { | |
return this.getToken(SqlBaseParser.ON, 0); | |
}; | |
RevokeContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
RevokeContext.prototype.FROM = function() { | |
return this.getToken(SqlBaseParser.FROM, 0); | |
}; | |
RevokeContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
RevokeContext.prototype.privilege = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(PrivilegeContext); | |
} else { | |
return this.getTypedRuleContext(PrivilegeContext,i); | |
} | |
}; | |
RevokeContext.prototype.ALL = function() { | |
return this.getToken(SqlBaseParser.ALL, 0); | |
}; | |
RevokeContext.prototype.PRIVILEGES = function() { | |
return this.getToken(SqlBaseParser.PRIVILEGES, 0); | |
}; | |
RevokeContext.prototype.GRANT = function() { | |
return this.getToken(SqlBaseParser.GRANT, 0); | |
}; | |
RevokeContext.prototype.OPTION = function() { | |
return this.getToken(SqlBaseParser.OPTION, 0); | |
}; | |
RevokeContext.prototype.FOR = function() { | |
return this.getToken(SqlBaseParser.FOR, 0); | |
}; | |
RevokeContext.prototype.TABLE = function() { | |
return this.getToken(SqlBaseParser.TABLE, 0); | |
}; | |
RevokeContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterRevoke(this); | |
} | |
}; | |
RevokeContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitRevoke(this); | |
} | |
}; | |
function DropColumnContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
this.tableName = null; // QualifiedNameContext; | |
this.column = null; // QualifiedNameContext; | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
DropColumnContext.prototype = Object.create(StatementContext.prototype); | |
DropColumnContext.prototype.constructor = DropColumnContext; | |
SqlBaseParser.DropColumnContext = DropColumnContext; | |
DropColumnContext.prototype.ALTER = function() { | |
return this.getToken(SqlBaseParser.ALTER, 0); | |
}; | |
DropColumnContext.prototype.TABLE = function() { | |
return this.getToken(SqlBaseParser.TABLE, 0); | |
}; | |
DropColumnContext.prototype.DROP = function() { | |
return this.getToken(SqlBaseParser.DROP, 0); | |
}; | |
DropColumnContext.prototype.COLUMN = function() { | |
return this.getToken(SqlBaseParser.COLUMN, 0); | |
}; | |
DropColumnContext.prototype.qualifiedName = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(QualifiedNameContext); | |
} else { | |
return this.getTypedRuleContext(QualifiedNameContext,i); | |
} | |
}; | |
DropColumnContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterDropColumn(this); | |
} | |
}; | |
DropColumnContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitDropColumn(this); | |
} | |
}; | |
function DropViewContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
DropViewContext.prototype = Object.create(StatementContext.prototype); | |
DropViewContext.prototype.constructor = DropViewContext; | |
SqlBaseParser.DropViewContext = DropViewContext; | |
DropViewContext.prototype.DROP = function() { | |
return this.getToken(SqlBaseParser.DROP, 0); | |
}; | |
DropViewContext.prototype.VIEW = function() { | |
return this.getToken(SqlBaseParser.VIEW, 0); | |
}; | |
DropViewContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
DropViewContext.prototype.IF = function() { | |
return this.getToken(SqlBaseParser.IF, 0); | |
}; | |
DropViewContext.prototype.EXISTS = function() { | |
return this.getToken(SqlBaseParser.EXISTS, 0); | |
}; | |
DropViewContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterDropView(this); | |
} | |
}; | |
DropViewContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitDropView(this); | |
} | |
}; | |
function DeleteContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
DeleteContext.prototype = Object.create(StatementContext.prototype); | |
DeleteContext.prototype.constructor = DeleteContext; | |
SqlBaseParser.DeleteContext = DeleteContext; | |
DeleteContext.prototype.DELETE = function() { | |
return this.getToken(SqlBaseParser.DELETE, 0); | |
}; | |
DeleteContext.prototype.FROM = function() { | |
return this.getToken(SqlBaseParser.FROM, 0); | |
}; | |
DeleteContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
DeleteContext.prototype.WHERE = function() { | |
return this.getToken(SqlBaseParser.WHERE, 0); | |
}; | |
DeleteContext.prototype.booleanExpression = function() { | |
return this.getTypedRuleContext(BooleanExpressionContext,0); | |
}; | |
DeleteContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterDelete(this); | |
} | |
}; | |
DeleteContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitDelete(this); | |
} | |
}; | |
function ShowTablesContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
this.pattern = null; // StringContext; | |
this.escape = null; // StringContext; | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ShowTablesContext.prototype = Object.create(StatementContext.prototype); | |
ShowTablesContext.prototype.constructor = ShowTablesContext; | |
SqlBaseParser.ShowTablesContext = ShowTablesContext; | |
ShowTablesContext.prototype.SHOW = function() { | |
return this.getToken(SqlBaseParser.SHOW, 0); | |
}; | |
ShowTablesContext.prototype.TABLES = function() { | |
return this.getToken(SqlBaseParser.TABLES, 0); | |
}; | |
ShowTablesContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
ShowTablesContext.prototype.LIKE = function() { | |
return this.getToken(SqlBaseParser.LIKE, 0); | |
}; | |
ShowTablesContext.prototype.FROM = function() { | |
return this.getToken(SqlBaseParser.FROM, 0); | |
}; | |
ShowTablesContext.prototype.IN = function() { | |
return this.getToken(SqlBaseParser.IN, 0); | |
}; | |
ShowTablesContext.prototype.string = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(StringContext); | |
} else { | |
return this.getTypedRuleContext(StringContext,i); | |
} | |
}; | |
ShowTablesContext.prototype.ESCAPE = function() { | |
return this.getToken(SqlBaseParser.ESCAPE, 0); | |
}; | |
ShowTablesContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterShowTables(this); | |
} | |
}; | |
ShowTablesContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitShowTables(this); | |
} | |
}; | |
function DescribeInputContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
DescribeInputContext.prototype = Object.create(StatementContext.prototype); | |
DescribeInputContext.prototype.constructor = DescribeInputContext; | |
SqlBaseParser.DescribeInputContext = DescribeInputContext; | |
DescribeInputContext.prototype.DESCRIBE = function() { | |
return this.getToken(SqlBaseParser.DESCRIBE, 0); | |
}; | |
DescribeInputContext.prototype.INPUT = function() { | |
return this.getToken(SqlBaseParser.INPUT, 0); | |
}; | |
DescribeInputContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
DescribeInputContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterDescribeInput(this); | |
} | |
}; | |
DescribeInputContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitDescribeInput(this); | |
} | |
}; | |
function ShowStatsForQueryContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ShowStatsForQueryContext.prototype = Object.create(StatementContext.prototype); | |
ShowStatsForQueryContext.prototype.constructor = ShowStatsForQueryContext; | |
SqlBaseParser.ShowStatsForQueryContext = ShowStatsForQueryContext; | |
ShowStatsForQueryContext.prototype.SHOW = function() { | |
return this.getToken(SqlBaseParser.SHOW, 0); | |
}; | |
ShowStatsForQueryContext.prototype.STATS = function() { | |
return this.getToken(SqlBaseParser.STATS, 0); | |
}; | |
ShowStatsForQueryContext.prototype.FOR = function() { | |
return this.getToken(SqlBaseParser.FOR, 0); | |
}; | |
ShowStatsForQueryContext.prototype.querySpecification = function() { | |
return this.getTypedRuleContext(QuerySpecificationContext,0); | |
}; | |
ShowStatsForQueryContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterShowStatsForQuery(this); | |
} | |
}; | |
ShowStatsForQueryContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitShowStatsForQuery(this); | |
} | |
}; | |
function ShowCatalogsContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
this.pattern = null; // StringContext; | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ShowCatalogsContext.prototype = Object.create(StatementContext.prototype); | |
ShowCatalogsContext.prototype.constructor = ShowCatalogsContext; | |
SqlBaseParser.ShowCatalogsContext = ShowCatalogsContext; | |
ShowCatalogsContext.prototype.SHOW = function() { | |
return this.getToken(SqlBaseParser.SHOW, 0); | |
}; | |
ShowCatalogsContext.prototype.CATALOGS = function() { | |
return this.getToken(SqlBaseParser.CATALOGS, 0); | |
}; | |
ShowCatalogsContext.prototype.LIKE = function() { | |
return this.getToken(SqlBaseParser.LIKE, 0); | |
}; | |
ShowCatalogsContext.prototype.string = function() { | |
return this.getTypedRuleContext(StringContext,0); | |
}; | |
ShowCatalogsContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterShowCatalogs(this); | |
} | |
}; | |
ShowCatalogsContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitShowCatalogs(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; | |
SqlBaseParser.StatementDefaultContext = StatementDefaultContext; | |
StatementDefaultContext.prototype.query = function() { | |
return this.getTypedRuleContext(QueryContext,0); | |
}; | |
StatementDefaultContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterStatementDefault(this); | |
} | |
}; | |
StatementDefaultContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitStatementDefault(this); | |
} | |
}; | |
function RenameColumnContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
this.tableName = null; // QualifiedNameContext; | |
this.from = null; // IdentifierContext; | |
this.to = null; // IdentifierContext; | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
RenameColumnContext.prototype = Object.create(StatementContext.prototype); | |
RenameColumnContext.prototype.constructor = RenameColumnContext; | |
SqlBaseParser.RenameColumnContext = RenameColumnContext; | |
RenameColumnContext.prototype.ALTER = function() { | |
return this.getToken(SqlBaseParser.ALTER, 0); | |
}; | |
RenameColumnContext.prototype.TABLE = function() { | |
return this.getToken(SqlBaseParser.TABLE, 0); | |
}; | |
RenameColumnContext.prototype.RENAME = function() { | |
return this.getToken(SqlBaseParser.RENAME, 0); | |
}; | |
RenameColumnContext.prototype.COLUMN = function() { | |
return this.getToken(SqlBaseParser.COLUMN, 0); | |
}; | |
RenameColumnContext.prototype.TO = function() { | |
return this.getToken(SqlBaseParser.TO, 0); | |
}; | |
RenameColumnContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
RenameColumnContext.prototype.identifier = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(IdentifierContext); | |
} else { | |
return this.getTypedRuleContext(IdentifierContext,i); | |
} | |
}; | |
RenameColumnContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterRenameColumn(this); | |
} | |
}; | |
RenameColumnContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitRenameColumn(this); | |
} | |
}; | |
function SetSessionContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
SetSessionContext.prototype = Object.create(StatementContext.prototype); | |
SetSessionContext.prototype.constructor = SetSessionContext; | |
SqlBaseParser.SetSessionContext = SetSessionContext; | |
SetSessionContext.prototype.SET = function() { | |
return this.getToken(SqlBaseParser.SET, 0); | |
}; | |
SetSessionContext.prototype.SESSION = function() { | |
return this.getToken(SqlBaseParser.SESSION, 0); | |
}; | |
SetSessionContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
SetSessionContext.prototype.EQ = function() { | |
return this.getToken(SqlBaseParser.EQ, 0); | |
}; | |
SetSessionContext.prototype.expression = function() { | |
return this.getTypedRuleContext(ExpressionContext,0); | |
}; | |
SetSessionContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSetSession(this); | |
} | |
}; | |
SetSessionContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSetSession(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; | |
SqlBaseParser.CreateViewContext = CreateViewContext; | |
CreateViewContext.prototype.CREATE = function() { | |
return this.getToken(SqlBaseParser.CREATE, 0); | |
}; | |
CreateViewContext.prototype.VIEW = function() { | |
return this.getToken(SqlBaseParser.VIEW, 0); | |
}; | |
CreateViewContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
CreateViewContext.prototype.AS = function() { | |
return this.getToken(SqlBaseParser.AS, 0); | |
}; | |
CreateViewContext.prototype.query = function() { | |
return this.getTypedRuleContext(QueryContext,0); | |
}; | |
CreateViewContext.prototype.OR = function() { | |
return this.getToken(SqlBaseParser.OR, 0); | |
}; | |
CreateViewContext.prototype.REPLACE = function() { | |
return this.getToken(SqlBaseParser.REPLACE, 0); | |
}; | |
CreateViewContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterCreateView(this); | |
} | |
}; | |
CreateViewContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitCreateView(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; | |
SqlBaseParser.ShowCreateTableContext = ShowCreateTableContext; | |
ShowCreateTableContext.prototype.SHOW = function() { | |
return this.getToken(SqlBaseParser.SHOW, 0); | |
}; | |
ShowCreateTableContext.prototype.CREATE = function() { | |
return this.getToken(SqlBaseParser.CREATE, 0); | |
}; | |
ShowCreateTableContext.prototype.TABLE = function() { | |
return this.getToken(SqlBaseParser.TABLE, 0); | |
}; | |
ShowCreateTableContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
ShowCreateTableContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterShowCreateTable(this); | |
} | |
}; | |
ShowCreateTableContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitShowCreateTable(this); | |
} | |
}; | |
function ShowSchemasContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
this.pattern = null; // StringContext; | |
this.escape = null; // StringContext; | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ShowSchemasContext.prototype = Object.create(StatementContext.prototype); | |
ShowSchemasContext.prototype.constructor = ShowSchemasContext; | |
SqlBaseParser.ShowSchemasContext = ShowSchemasContext; | |
ShowSchemasContext.prototype.SHOW = function() { | |
return this.getToken(SqlBaseParser.SHOW, 0); | |
}; | |
ShowSchemasContext.prototype.SCHEMAS = function() { | |
return this.getToken(SqlBaseParser.SCHEMAS, 0); | |
}; | |
ShowSchemasContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
ShowSchemasContext.prototype.LIKE = function() { | |
return this.getToken(SqlBaseParser.LIKE, 0); | |
}; | |
ShowSchemasContext.prototype.FROM = function() { | |
return this.getToken(SqlBaseParser.FROM, 0); | |
}; | |
ShowSchemasContext.prototype.IN = function() { | |
return this.getToken(SqlBaseParser.IN, 0); | |
}; | |
ShowSchemasContext.prototype.string = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(StringContext); | |
} else { | |
return this.getTypedRuleContext(StringContext,i); | |
} | |
}; | |
ShowSchemasContext.prototype.ESCAPE = function() { | |
return this.getToken(SqlBaseParser.ESCAPE, 0); | |
}; | |
ShowSchemasContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterShowSchemas(this); | |
} | |
}; | |
ShowSchemasContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitShowSchemas(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; | |
SqlBaseParser.DropTableContext = DropTableContext; | |
DropTableContext.prototype.DROP = function() { | |
return this.getToken(SqlBaseParser.DROP, 0); | |
}; | |
DropTableContext.prototype.TABLE = function() { | |
return this.getToken(SqlBaseParser.TABLE, 0); | |
}; | |
DropTableContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
DropTableContext.prototype.IF = function() { | |
return this.getToken(SqlBaseParser.IF, 0); | |
}; | |
DropTableContext.prototype.EXISTS = function() { | |
return this.getToken(SqlBaseParser.EXISTS, 0); | |
}; | |
DropTableContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterDropTable(this); | |
} | |
}; | |
DropTableContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitDropTable(this); | |
} | |
}; | |
function ShowColumnsContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ShowColumnsContext.prototype = Object.create(StatementContext.prototype); | |
ShowColumnsContext.prototype.constructor = ShowColumnsContext; | |
SqlBaseParser.ShowColumnsContext = ShowColumnsContext; | |
ShowColumnsContext.prototype.SHOW = function() { | |
return this.getToken(SqlBaseParser.SHOW, 0); | |
}; | |
ShowColumnsContext.prototype.COLUMNS = function() { | |
return this.getToken(SqlBaseParser.COLUMNS, 0); | |
}; | |
ShowColumnsContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
ShowColumnsContext.prototype.FROM = function() { | |
return this.getToken(SqlBaseParser.FROM, 0); | |
}; | |
ShowColumnsContext.prototype.IN = function() { | |
return this.getToken(SqlBaseParser.IN, 0); | |
}; | |
ShowColumnsContext.prototype.DESCRIBE = function() { | |
return this.getToken(SqlBaseParser.DESCRIBE, 0); | |
}; | |
ShowColumnsContext.prototype.DESC = function() { | |
return this.getToken(SqlBaseParser.DESC, 0); | |
}; | |
ShowColumnsContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterShowColumns(this); | |
} | |
}; | |
ShowColumnsContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitShowColumns(this); | |
} | |
}; | |
function RollbackContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
RollbackContext.prototype = Object.create(StatementContext.prototype); | |
RollbackContext.prototype.constructor = RollbackContext; | |
SqlBaseParser.RollbackContext = RollbackContext; | |
RollbackContext.prototype.ROLLBACK = function() { | |
return this.getToken(SqlBaseParser.ROLLBACK, 0); | |
}; | |
RollbackContext.prototype.WORK = function() { | |
return this.getToken(SqlBaseParser.WORK, 0); | |
}; | |
RollbackContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterRollback(this); | |
} | |
}; | |
RollbackContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitRollback(this); | |
} | |
}; | |
function AddColumnContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
this.tableName = null; // QualifiedNameContext; | |
this.column = null; // ColumnDefinitionContext; | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
AddColumnContext.prototype = Object.create(StatementContext.prototype); | |
AddColumnContext.prototype.constructor = AddColumnContext; | |
SqlBaseParser.AddColumnContext = AddColumnContext; | |
AddColumnContext.prototype.ALTER = function() { | |
return this.getToken(SqlBaseParser.ALTER, 0); | |
}; | |
AddColumnContext.prototype.TABLE = function() { | |
return this.getToken(SqlBaseParser.TABLE, 0); | |
}; | |
AddColumnContext.prototype.ADD = function() { | |
return this.getToken(SqlBaseParser.ADD, 0); | |
}; | |
AddColumnContext.prototype.COLUMN = function() { | |
return this.getToken(SqlBaseParser.COLUMN, 0); | |
}; | |
AddColumnContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
AddColumnContext.prototype.columnDefinition = function() { | |
return this.getTypedRuleContext(ColumnDefinitionContext,0); | |
}; | |
AddColumnContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterAddColumn(this); | |
} | |
}; | |
AddColumnContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitAddColumn(this); | |
} | |
}; | |
function ResetSessionContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ResetSessionContext.prototype = Object.create(StatementContext.prototype); | |
ResetSessionContext.prototype.constructor = ResetSessionContext; | |
SqlBaseParser.ResetSessionContext = ResetSessionContext; | |
ResetSessionContext.prototype.RESET = function() { | |
return this.getToken(SqlBaseParser.RESET, 0); | |
}; | |
ResetSessionContext.prototype.SESSION = function() { | |
return this.getToken(SqlBaseParser.SESSION, 0); | |
}; | |
ResetSessionContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
ResetSessionContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterResetSession(this); | |
} | |
}; | |
ResetSessionContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitResetSession(this); | |
} | |
}; | |
function InsertIntoContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
InsertIntoContext.prototype = Object.create(StatementContext.prototype); | |
InsertIntoContext.prototype.constructor = InsertIntoContext; | |
SqlBaseParser.InsertIntoContext = InsertIntoContext; | |
InsertIntoContext.prototype.INSERT = function() { | |
return this.getToken(SqlBaseParser.INSERT, 0); | |
}; | |
InsertIntoContext.prototype.INTO = function() { | |
return this.getToken(SqlBaseParser.INTO, 0); | |
}; | |
InsertIntoContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
InsertIntoContext.prototype.query = function() { | |
return this.getTypedRuleContext(QueryContext,0); | |
}; | |
InsertIntoContext.prototype.columnAliases = function() { | |
return this.getTypedRuleContext(ColumnAliasesContext,0); | |
}; | |
InsertIntoContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterInsertInto(this); | |
} | |
}; | |
InsertIntoContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitInsertInto(this); | |
} | |
}; | |
function SetPathContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
SetPathContext.prototype = Object.create(StatementContext.prototype); | |
SetPathContext.prototype.constructor = SetPathContext; | |
SqlBaseParser.SetPathContext = SetPathContext; | |
SetPathContext.prototype.SET = function() { | |
return this.getToken(SqlBaseParser.SET, 0); | |
}; | |
SetPathContext.prototype.PATH = function() { | |
return this.getToken(SqlBaseParser.PATH, 0); | |
}; | |
SetPathContext.prototype.pathSpecification = function() { | |
return this.getTypedRuleContext(PathSpecificationContext,0); | |
}; | |
SetPathContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSetPath(this); | |
} | |
}; | |
SetPathContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSetPath(this); | |
} | |
}; | |
function ShowSessionContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ShowSessionContext.prototype = Object.create(StatementContext.prototype); | |
ShowSessionContext.prototype.constructor = ShowSessionContext; | |
SqlBaseParser.ShowSessionContext = ShowSessionContext; | |
ShowSessionContext.prototype.SHOW = function() { | |
return this.getToken(SqlBaseParser.SHOW, 0); | |
}; | |
ShowSessionContext.prototype.SESSION = function() { | |
return this.getToken(SqlBaseParser.SESSION, 0); | |
}; | |
ShowSessionContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterShowSession(this); | |
} | |
}; | |
ShowSessionContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitShowSession(this); | |
} | |
}; | |
function CreateSchemaContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
CreateSchemaContext.prototype = Object.create(StatementContext.prototype); | |
CreateSchemaContext.prototype.constructor = CreateSchemaContext; | |
SqlBaseParser.CreateSchemaContext = CreateSchemaContext; | |
CreateSchemaContext.prototype.CREATE = function() { | |
return this.getToken(SqlBaseParser.CREATE, 0); | |
}; | |
CreateSchemaContext.prototype.SCHEMA = function() { | |
return this.getToken(SqlBaseParser.SCHEMA, 0); | |
}; | |
CreateSchemaContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
CreateSchemaContext.prototype.IF = function() { | |
return this.getToken(SqlBaseParser.IF, 0); | |
}; | |
CreateSchemaContext.prototype.NOT = function() { | |
return this.getToken(SqlBaseParser.NOT, 0); | |
}; | |
CreateSchemaContext.prototype.EXISTS = function() { | |
return this.getToken(SqlBaseParser.EXISTS, 0); | |
}; | |
CreateSchemaContext.prototype.WITH = function() { | |
return this.getToken(SqlBaseParser.WITH, 0); | |
}; | |
CreateSchemaContext.prototype.properties = function() { | |
return this.getTypedRuleContext(PropertiesContext,0); | |
}; | |
CreateSchemaContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterCreateSchema(this); | |
} | |
}; | |
CreateSchemaContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitCreateSchema(this); | |
} | |
}; | |
function ExecuteContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ExecuteContext.prototype = Object.create(StatementContext.prototype); | |
ExecuteContext.prototype.constructor = ExecuteContext; | |
SqlBaseParser.ExecuteContext = ExecuteContext; | |
ExecuteContext.prototype.EXECUTE = function() { | |
return this.getToken(SqlBaseParser.EXECUTE, 0); | |
}; | |
ExecuteContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
ExecuteContext.prototype.USING = function() { | |
return this.getToken(SqlBaseParser.USING, 0); | |
}; | |
ExecuteContext.prototype.expression = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(ExpressionContext); | |
} else { | |
return this.getTypedRuleContext(ExpressionContext,i); | |
} | |
}; | |
ExecuteContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterExecute(this); | |
} | |
}; | |
ExecuteContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitExecute(this); | |
} | |
}; | |
function CallContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
CallContext.prototype = Object.create(StatementContext.prototype); | |
CallContext.prototype.constructor = CallContext; | |
SqlBaseParser.CallContext = CallContext; | |
CallContext.prototype.CALL = function() { | |
return this.getToken(SqlBaseParser.CALL, 0); | |
}; | |
CallContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
CallContext.prototype.callArgument = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(CallArgumentContext); | |
} else { | |
return this.getTypedRuleContext(CallArgumentContext,i); | |
} | |
}; | |
CallContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterCall(this); | |
} | |
}; | |
CallContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitCall(this); | |
} | |
}; | |
function RenameSchemaContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
RenameSchemaContext.prototype = Object.create(StatementContext.prototype); | |
RenameSchemaContext.prototype.constructor = RenameSchemaContext; | |
SqlBaseParser.RenameSchemaContext = RenameSchemaContext; | |
RenameSchemaContext.prototype.ALTER = function() { | |
return this.getToken(SqlBaseParser.ALTER, 0); | |
}; | |
RenameSchemaContext.prototype.SCHEMA = function() { | |
return this.getToken(SqlBaseParser.SCHEMA, 0); | |
}; | |
RenameSchemaContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
RenameSchemaContext.prototype.RENAME = function() { | |
return this.getToken(SqlBaseParser.RENAME, 0); | |
}; | |
RenameSchemaContext.prototype.TO = function() { | |
return this.getToken(SqlBaseParser.TO, 0); | |
}; | |
RenameSchemaContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
RenameSchemaContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterRenameSchema(this); | |
} | |
}; | |
RenameSchemaContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitRenameSchema(this); | |
} | |
}; | |
function ShowGrantsContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ShowGrantsContext.prototype = Object.create(StatementContext.prototype); | |
ShowGrantsContext.prototype.constructor = ShowGrantsContext; | |
SqlBaseParser.ShowGrantsContext = ShowGrantsContext; | |
ShowGrantsContext.prototype.SHOW = function() { | |
return this.getToken(SqlBaseParser.SHOW, 0); | |
}; | |
ShowGrantsContext.prototype.GRANTS = function() { | |
return this.getToken(SqlBaseParser.GRANTS, 0); | |
}; | |
ShowGrantsContext.prototype.ON = function() { | |
return this.getToken(SqlBaseParser.ON, 0); | |
}; | |
ShowGrantsContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
ShowGrantsContext.prototype.TABLE = function() { | |
return this.getToken(SqlBaseParser.TABLE, 0); | |
}; | |
ShowGrantsContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterShowGrants(this); | |
} | |
}; | |
ShowGrantsContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitShowGrants(this); | |
} | |
}; | |
function ShowFunctionsContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ShowFunctionsContext.prototype = Object.create(StatementContext.prototype); | |
ShowFunctionsContext.prototype.constructor = ShowFunctionsContext; | |
SqlBaseParser.ShowFunctionsContext = ShowFunctionsContext; | |
ShowFunctionsContext.prototype.SHOW = function() { | |
return this.getToken(SqlBaseParser.SHOW, 0); | |
}; | |
ShowFunctionsContext.prototype.FUNCTIONS = function() { | |
return this.getToken(SqlBaseParser.FUNCTIONS, 0); | |
}; | |
ShowFunctionsContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterShowFunctions(this); | |
} | |
}; | |
ShowFunctionsContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitShowFunctions(this); | |
} | |
}; | |
function DescribeOutputContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
DescribeOutputContext.prototype = Object.create(StatementContext.prototype); | |
DescribeOutputContext.prototype.constructor = DescribeOutputContext; | |
SqlBaseParser.DescribeOutputContext = DescribeOutputContext; | |
DescribeOutputContext.prototype.DESCRIBE = function() { | |
return this.getToken(SqlBaseParser.DESCRIBE, 0); | |
}; | |
DescribeOutputContext.prototype.OUTPUT = function() { | |
return this.getToken(SqlBaseParser.OUTPUT, 0); | |
}; | |
DescribeOutputContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
DescribeOutputContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterDescribeOutput(this); | |
} | |
}; | |
DescribeOutputContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitDescribeOutput(this); | |
} | |
}; | |
function DropSchemaContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
DropSchemaContext.prototype = Object.create(StatementContext.prototype); | |
DropSchemaContext.prototype.constructor = DropSchemaContext; | |
SqlBaseParser.DropSchemaContext = DropSchemaContext; | |
DropSchemaContext.prototype.DROP = function() { | |
return this.getToken(SqlBaseParser.DROP, 0); | |
}; | |
DropSchemaContext.prototype.SCHEMA = function() { | |
return this.getToken(SqlBaseParser.SCHEMA, 0); | |
}; | |
DropSchemaContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
DropSchemaContext.prototype.IF = function() { | |
return this.getToken(SqlBaseParser.IF, 0); | |
}; | |
DropSchemaContext.prototype.EXISTS = function() { | |
return this.getToken(SqlBaseParser.EXISTS, 0); | |
}; | |
DropSchemaContext.prototype.CASCADE = function() { | |
return this.getToken(SqlBaseParser.CASCADE, 0); | |
}; | |
DropSchemaContext.prototype.RESTRICT = function() { | |
return this.getToken(SqlBaseParser.RESTRICT, 0); | |
}; | |
DropSchemaContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterDropSchema(this); | |
} | |
}; | |
DropSchemaContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitDropSchema(this); | |
} | |
}; | |
function GrantContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
this.grantee = null; // IdentifierContext; | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
GrantContext.prototype = Object.create(StatementContext.prototype); | |
GrantContext.prototype.constructor = GrantContext; | |
SqlBaseParser.GrantContext = GrantContext; | |
GrantContext.prototype.GRANT = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTokens(SqlBaseParser.GRANT); | |
} else { | |
return this.getToken(SqlBaseParser.GRANT, i); | |
} | |
}; | |
GrantContext.prototype.ON = function() { | |
return this.getToken(SqlBaseParser.ON, 0); | |
}; | |
GrantContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
GrantContext.prototype.TO = function() { | |
return this.getToken(SqlBaseParser.TO, 0); | |
}; | |
GrantContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
GrantContext.prototype.privilege = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(PrivilegeContext); | |
} else { | |
return this.getTypedRuleContext(PrivilegeContext,i); | |
} | |
}; | |
GrantContext.prototype.ALL = function() { | |
return this.getToken(SqlBaseParser.ALL, 0); | |
}; | |
GrantContext.prototype.PRIVILEGES = function() { | |
return this.getToken(SqlBaseParser.PRIVILEGES, 0); | |
}; | |
GrantContext.prototype.TABLE = function() { | |
return this.getToken(SqlBaseParser.TABLE, 0); | |
}; | |
GrantContext.prototype.WITH = function() { | |
return this.getToken(SqlBaseParser.WITH, 0); | |
}; | |
GrantContext.prototype.OPTION = function() { | |
return this.getToken(SqlBaseParser.OPTION, 0); | |
}; | |
GrantContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterGrant(this); | |
} | |
}; | |
GrantContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitGrant(this); | |
} | |
}; | |
function ShowCreateViewContext(parser, ctx) { | |
StatementContext.call(this, parser); | |
StatementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ShowCreateViewContext.prototype = Object.create(StatementContext.prototype); | |
ShowCreateViewContext.prototype.constructor = ShowCreateViewContext; | |
SqlBaseParser.ShowCreateViewContext = ShowCreateViewContext; | |
ShowCreateViewContext.prototype.SHOW = function() { | |
return this.getToken(SqlBaseParser.SHOW, 0); | |
}; | |
ShowCreateViewContext.prototype.CREATE = function() { | |
return this.getToken(SqlBaseParser.CREATE, 0); | |
}; | |
ShowCreateViewContext.prototype.VIEW = function() { | |
return this.getToken(SqlBaseParser.VIEW, 0); | |
}; | |
ShowCreateViewContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
ShowCreateViewContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterShowCreateView(this); | |
} | |
}; | |
ShowCreateViewContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitShowCreateView(this); | |
} | |
}; | |
SqlBaseParser.StatementContext = StatementContext; | |
SqlBaseParser.prototype.statement = function() { | |
var localctx = new StatementContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 6, SqlBaseParser.RULE_statement); | |
var _la = 0; // Token type | |
try { | |
this.state = 519; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,49,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new StatementDefaultContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 133; | |
this.query(); | |
break; | |
case 2: | |
localctx = new UseContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 134; | |
this.match(SqlBaseParser.USE); | |
this.state = 135; | |
localctx.schema = this.identifier(); | |
break; | |
case 3: | |
localctx = new UseContext(this, localctx); | |
this.enterOuterAlt(localctx, 3); | |
this.state = 136; | |
this.match(SqlBaseParser.USE); | |
this.state = 137; | |
localctx.catalog = this.identifier(); | |
this.state = 138; | |
this.match(SqlBaseParser.T__0); | |
this.state = 139; | |
localctx.schema = this.identifier(); | |
break; | |
case 4: | |
localctx = new CreateSchemaContext(this, localctx); | |
this.enterOuterAlt(localctx, 4); | |
this.state = 141; | |
this.match(SqlBaseParser.CREATE); | |
this.state = 142; | |
this.match(SqlBaseParser.SCHEMA); | |
this.state = 146; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,0,this._ctx); | |
if(la_===1) { | |
this.state = 143; | |
this.match(SqlBaseParser.IF); | |
this.state = 144; | |
this.match(SqlBaseParser.NOT); | |
this.state = 145; | |
this.match(SqlBaseParser.EXISTS); | |
} | |
this.state = 148; | |
this.qualifiedName(); | |
this.state = 151; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.WITH) { | |
this.state = 149; | |
this.match(SqlBaseParser.WITH); | |
this.state = 150; | |
this.properties(); | |
} | |
break; | |
case 5: | |
localctx = new DropSchemaContext(this, localctx); | |
this.enterOuterAlt(localctx, 5); | |
this.state = 153; | |
this.match(SqlBaseParser.DROP); | |
this.state = 154; | |
this.match(SqlBaseParser.SCHEMA); | |
this.state = 157; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,2,this._ctx); | |
if(la_===1) { | |
this.state = 155; | |
this.match(SqlBaseParser.IF); | |
this.state = 156; | |
this.match(SqlBaseParser.EXISTS); | |
} | |
this.state = 159; | |
this.qualifiedName(); | |
this.state = 161; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.CASCADE || _la===SqlBaseParser.RESTRICT) { | |
this.state = 160; | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.CASCADE || _la===SqlBaseParser.RESTRICT)) { | |
this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
} | |
break; | |
case 6: | |
localctx = new RenameSchemaContext(this, localctx); | |
this.enterOuterAlt(localctx, 6); | |
this.state = 163; | |
this.match(SqlBaseParser.ALTER); | |
this.state = 164; | |
this.match(SqlBaseParser.SCHEMA); | |
this.state = 165; | |
this.qualifiedName(); | |
this.state = 166; | |
this.match(SqlBaseParser.RENAME); | |
this.state = 167; | |
this.match(SqlBaseParser.TO); | |
this.state = 168; | |
this.identifier(); | |
break; | |
case 7: | |
localctx = new CreateTableAsSelectContext(this, localctx); | |
this.enterOuterAlt(localctx, 7); | |
this.state = 170; | |
this.match(SqlBaseParser.CREATE); | |
this.state = 171; | |
this.match(SqlBaseParser.TABLE); | |
this.state = 175; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,4,this._ctx); | |
if(la_===1) { | |
this.state = 172; | |
this.match(SqlBaseParser.IF); | |
this.state = 173; | |
this.match(SqlBaseParser.NOT); | |
this.state = 174; | |
this.match(SqlBaseParser.EXISTS); | |
} | |
this.state = 177; | |
this.qualifiedName(); | |
this.state = 179; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.T__1) { | |
this.state = 178; | |
this.columnAliases(); | |
} | |
this.state = 183; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.COMMENT) { | |
this.state = 181; | |
this.match(SqlBaseParser.COMMENT); | |
this.state = 182; | |
this.string(); | |
} | |
this.state = 187; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.WITH) { | |
this.state = 185; | |
this.match(SqlBaseParser.WITH); | |
this.state = 186; | |
this.properties(); | |
} | |
this.state = 189; | |
this.match(SqlBaseParser.AS); | |
this.state = 195; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,8,this._ctx); | |
switch(la_) { | |
case 1: | |
this.state = 190; | |
this.query(); | |
break; | |
case 2: | |
this.state = 191; | |
this.match(SqlBaseParser.T__1); | |
this.state = 192; | |
this.query(); | |
this.state = 193; | |
this.match(SqlBaseParser.T__2); | |
break; | |
} | |
this.state = 202; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.WITH) { | |
this.state = 197; | |
this.match(SqlBaseParser.WITH); | |
this.state = 199; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.NO) { | |
this.state = 198; | |
this.match(SqlBaseParser.NO); | |
} | |
this.state = 201; | |
this.match(SqlBaseParser.DATA); | |
} | |
break; | |
case 8: | |
localctx = new CreateTableContext(this, localctx); | |
this.enterOuterAlt(localctx, 8); | |
this.state = 204; | |
this.match(SqlBaseParser.CREATE); | |
this.state = 205; | |
this.match(SqlBaseParser.TABLE); | |
this.state = 209; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,11,this._ctx); | |
if(la_===1) { | |
this.state = 206; | |
this.match(SqlBaseParser.IF); | |
this.state = 207; | |
this.match(SqlBaseParser.NOT); | |
this.state = 208; | |
this.match(SqlBaseParser.EXISTS); | |
} | |
this.state = 211; | |
this.qualifiedName(); | |
this.state = 212; | |
this.match(SqlBaseParser.T__1); | |
this.state = 213; | |
this.tableElement(); | |
this.state = 218; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 214; | |
this.match(SqlBaseParser.T__3); | |
this.state = 215; | |
this.tableElement(); | |
this.state = 220; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
this.state = 221; | |
this.match(SqlBaseParser.T__2); | |
this.state = 224; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.COMMENT) { | |
this.state = 222; | |
this.match(SqlBaseParser.COMMENT); | |
this.state = 223; | |
this.string(); | |
} | |
this.state = 228; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.WITH) { | |
this.state = 226; | |
this.match(SqlBaseParser.WITH); | |
this.state = 227; | |
this.properties(); | |
} | |
break; | |
case 9: | |
localctx = new DropTableContext(this, localctx); | |
this.enterOuterAlt(localctx, 9); | |
this.state = 230; | |
this.match(SqlBaseParser.DROP); | |
this.state = 231; | |
this.match(SqlBaseParser.TABLE); | |
this.state = 234; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,15,this._ctx); | |
if(la_===1) { | |
this.state = 232; | |
this.match(SqlBaseParser.IF); | |
this.state = 233; | |
this.match(SqlBaseParser.EXISTS); | |
} | |
this.state = 236; | |
this.qualifiedName(); | |
break; | |
case 10: | |
localctx = new InsertIntoContext(this, localctx); | |
this.enterOuterAlt(localctx, 10); | |
this.state = 237; | |
this.match(SqlBaseParser.INSERT); | |
this.state = 238; | |
this.match(SqlBaseParser.INTO); | |
this.state = 239; | |
this.qualifiedName(); | |
this.state = 241; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,16,this._ctx); | |
if(la_===1) { | |
this.state = 240; | |
this.columnAliases(); | |
} | |
this.state = 243; | |
this.query(); | |
break; | |
case 11: | |
localctx = new DeleteContext(this, localctx); | |
this.enterOuterAlt(localctx, 11); | |
this.state = 245; | |
this.match(SqlBaseParser.DELETE); | |
this.state = 246; | |
this.match(SqlBaseParser.FROM); | |
this.state = 247; | |
this.qualifiedName(); | |
this.state = 250; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.WHERE) { | |
this.state = 248; | |
this.match(SqlBaseParser.WHERE); | |
this.state = 249; | |
this.booleanExpression(0); | |
} | |
break; | |
case 12: | |
localctx = new RenameTableContext(this, localctx); | |
this.enterOuterAlt(localctx, 12); | |
this.state = 252; | |
this.match(SqlBaseParser.ALTER); | |
this.state = 253; | |
this.match(SqlBaseParser.TABLE); | |
this.state = 254; | |
localctx.from = this.qualifiedName(); | |
this.state = 255; | |
this.match(SqlBaseParser.RENAME); | |
this.state = 256; | |
this.match(SqlBaseParser.TO); | |
this.state = 257; | |
localctx.to = this.qualifiedName(); | |
break; | |
case 13: | |
localctx = new RenameColumnContext(this, localctx); | |
this.enterOuterAlt(localctx, 13); | |
this.state = 259; | |
this.match(SqlBaseParser.ALTER); | |
this.state = 260; | |
this.match(SqlBaseParser.TABLE); | |
this.state = 261; | |
localctx.tableName = this.qualifiedName(); | |
this.state = 262; | |
this.match(SqlBaseParser.RENAME); | |
this.state = 263; | |
this.match(SqlBaseParser.COLUMN); | |
this.state = 264; | |
localctx.from = this.identifier(); | |
this.state = 265; | |
this.match(SqlBaseParser.TO); | |
this.state = 266; | |
localctx.to = this.identifier(); | |
break; | |
case 14: | |
localctx = new DropColumnContext(this, localctx); | |
this.enterOuterAlt(localctx, 14); | |
this.state = 268; | |
this.match(SqlBaseParser.ALTER); | |
this.state = 269; | |
this.match(SqlBaseParser.TABLE); | |
this.state = 270; | |
localctx.tableName = this.qualifiedName(); | |
this.state = 271; | |
this.match(SqlBaseParser.DROP); | |
this.state = 272; | |
this.match(SqlBaseParser.COLUMN); | |
this.state = 273; | |
localctx.column = this.qualifiedName(); | |
break; | |
case 15: | |
localctx = new AddColumnContext(this, localctx); | |
this.enterOuterAlt(localctx, 15); | |
this.state = 275; | |
this.match(SqlBaseParser.ALTER); | |
this.state = 276; | |
this.match(SqlBaseParser.TABLE); | |
this.state = 277; | |
localctx.tableName = this.qualifiedName(); | |
this.state = 278; | |
this.match(SqlBaseParser.ADD); | |
this.state = 279; | |
this.match(SqlBaseParser.COLUMN); | |
this.state = 280; | |
localctx.column = this.columnDefinition(); | |
break; | |
case 16: | |
localctx = new CreateViewContext(this, localctx); | |
this.enterOuterAlt(localctx, 16); | |
this.state = 282; | |
this.match(SqlBaseParser.CREATE); | |
this.state = 285; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.OR) { | |
this.state = 283; | |
this.match(SqlBaseParser.OR); | |
this.state = 284; | |
this.match(SqlBaseParser.REPLACE); | |
} | |
this.state = 287; | |
this.match(SqlBaseParser.VIEW); | |
this.state = 288; | |
this.qualifiedName(); | |
this.state = 289; | |
this.match(SqlBaseParser.AS); | |
this.state = 290; | |
this.query(); | |
break; | |
case 17: | |
localctx = new DropViewContext(this, localctx); | |
this.enterOuterAlt(localctx, 17); | |
this.state = 292; | |
this.match(SqlBaseParser.DROP); | |
this.state = 293; | |
this.match(SqlBaseParser.VIEW); | |
this.state = 296; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,19,this._ctx); | |
if(la_===1) { | |
this.state = 294; | |
this.match(SqlBaseParser.IF); | |
this.state = 295; | |
this.match(SqlBaseParser.EXISTS); | |
} | |
this.state = 298; | |
this.qualifiedName(); | |
break; | |
case 18: | |
localctx = new CallContext(this, localctx); | |
this.enterOuterAlt(localctx, 18); | |
this.state = 299; | |
this.match(SqlBaseParser.CALL); | |
this.state = 300; | |
this.qualifiedName(); | |
this.state = 301; | |
this.match(SqlBaseParser.T__1); | |
this.state = 310; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SqlBaseParser.T__1) | (1 << SqlBaseParser.T__4) | (1 << SqlBaseParser.ADD) | (1 << SqlBaseParser.ALL) | (1 << SqlBaseParser.ANALYZE) | (1 << SqlBaseParser.ANY) | (1 << SqlBaseParser.ARRAY) | (1 << SqlBaseParser.ASC) | (1 << SqlBaseParser.AT) | (1 << SqlBaseParser.BERNOULLI) | (1 << SqlBaseParser.CALL) | (1 << SqlBaseParser.CASCADE) | (1 << SqlBaseParser.CASE) | (1 << SqlBaseParser.CAST) | (1 << SqlBaseParser.CATALOGS) | (1 << SqlBaseParser.COLUMN) | (1 << SqlBaseParser.COLUMNS) | (1 << SqlBaseParser.COMMENT) | (1 << SqlBaseParser.COMMIT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlBaseParser.COMMITTED - 32)) | (1 << (SqlBaseParser.CURRENT - 32)) | (1 << (SqlBaseParser.CURRENT_DATE - 32)) | (1 << (SqlBaseParser.CURRENT_PATH - 32)) | (1 << (SqlBaseParser.CURRENT_TIME - 32)) | (1 << (SqlBaseParser.CURRENT_TIMESTAMP - 32)) | (1 << (SqlBaseParser.CURRENT_USER - 32)) | (1 << (SqlBaseParser.DATA - 32)) | (1 << (SqlBaseParser.DATE - 32)) | (1 << (SqlBaseParser.DAY - 32)) | (1 << (SqlBaseParser.DESC - 32)) | (1 << (SqlBaseParser.DISTRIBUTED - 32)) | (1 << (SqlBaseParser.EXCLUDING - 32)) | (1 << (SqlBaseParser.EXISTS - 32)) | (1 << (SqlBaseParser.EXPLAIN - 32)) | (1 << (SqlBaseParser.EXTRACT - 32)) | (1 << (SqlBaseParser.FALSE - 32)) | (1 << (SqlBaseParser.FILTER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (SqlBaseParser.FIRST - 64)) | (1 << (SqlBaseParser.FOLLOWING - 64)) | (1 << (SqlBaseParser.FORMAT - 64)) | (1 << (SqlBaseParser.FUNCTIONS - 64)) | (1 << (SqlBaseParser.GRANT - 64)) | (1 << (SqlBaseParser.GRANTS - 64)) | (1 << (SqlBaseParser.GRAPHVIZ - 64)) | (1 << (SqlBaseParser.GROUPING - 64)) | (1 << (SqlBaseParser.HOUR - 64)) | (1 << (SqlBaseParser.IF - 64)) | (1 << (SqlBaseParser.INCLUDING - 64)) | (1 << (SqlBaseParser.INPUT - 64)) | (1 << (SqlBaseParser.INTERVAL - 64)) | (1 << (SqlBaseParser.IO - 64)) | (1 << (SqlBaseParser.ISOLATION - 64)) | (1 << (SqlBaseParser.JSON - 64)) | (1 << (SqlBaseParser.LAST - 64)) | (1 << (SqlBaseParser.LATERAL - 64)) | (1 << (SqlBaseParser.LEVEL - 64)))) !== 0) || ((((_la - 97)) & ~0x1f) == 0 && ((1 << (_la - 97)) & ((1 << (SqlBaseParser.LIMIT - 97)) | (1 << (SqlBaseParser.LOCALTIME - 97)) | (1 << (SqlBaseParser.LOCALTIMESTAMP - 97)) | (1 << (SqlBaseParser.LOGICAL - 97)) | (1 << (SqlBaseParser.MAP - 97)) | (1 << (SqlBaseParser.MINUTE - 97)) | (1 << (SqlBaseParser.MONTH - 97)) | (1 << (SqlBaseParser.NFC - 97)) | (1 << (SqlBaseParser.NFD - 97)) | (1 << (SqlBaseParser.NFKC - 97)) | (1 << (SqlBaseParser.NFKD - 97)) | (1 << (SqlBaseParser.NO - 97)) | (1 << (SqlBaseParser.NORMALIZE - 97)) | (1 << (SqlBaseParser.NOT - 97)) | (1 << (SqlBaseParser.NULL - 97)) | (1 << (SqlBaseParser.NULLIF - 97)) | (1 << (SqlBaseParser.NULLS - 97)) | (1 << (SqlBaseParser.ONLY - 97)) | (1 << (SqlBaseParser.OPTION - 97)) | (1 << (SqlBaseParser.ORDINALITY - 97)) | (1 << (SqlBaseParser.OUTPUT - 97)) | (1 << (SqlBaseParser.OVER - 97)) | (1 << (SqlBaseParser.PARTITION - 97)) | (1 << (SqlBaseParser.PARTITIONS - 97)) | (1 << (SqlBaseParser.PATH - 97)) | (1 << (SqlBaseParser.POSITION - 97)) | (1 << (SqlBaseParser.PRECEDING - 97)))) !== 0) || ((((_la - 130)) & ~0x1f) == 0 && ((1 << (_la - 130)) & ((1 << (SqlBaseParser.PRIVILEGES - 130)) | (1 << (SqlBaseParser.PROPERTIES - 130)) | (1 << (SqlBaseParser.PUBLIC - 130)) | (1 << (SqlBaseParser.RANGE - 130)) | (1 << (SqlBaseParser.READ - 130)) | (1 << (SqlBaseParser.RENAME - 130)) | (1 << (SqlBaseParser.REPEATABLE - 130)) | (1 << (SqlBaseParser.REPLACE - 130)) | (1 << (SqlBaseParser.RESET - 130)) | (1 << (SqlBaseParser.RESTRICT - 130)) | (1 << (SqlBaseParser.REVOKE - 130)) | (1 << (SqlBaseParser.ROLLBACK - 130)) | (1 << (SqlBaseParser.ROW - 130)) | (1 << (SqlBaseParser.ROWS - 130)) | (1 << (SqlBaseParser.SCHEMA - 130)) | (1 << (SqlBaseParser.SCHEMAS - 130)) | (1 << (SqlBaseParser.SECOND - 130)) | (1 << (SqlBaseParser.SERIALIZABLE - 130)) | (1 << (SqlBaseParser.SESSION - 130)) | (1 << (SqlBaseParser.SET - 130)) | (1 << (SqlBaseParser.SETS - 130)) | (1 << (SqlBaseParser.SHOW - 130)) | (1 << (SqlBaseParser.SOME - 130)) | (1 << (SqlBaseParser.START - 130)) | (1 << (SqlBaseParser.STATS - 130)) | (1 << (SqlBaseParser.SUBSTRING - 130)) | (1 << (SqlBaseParser.SYSTEM - 130)))) !== 0) || ((((_la - 162)) & ~0x1f) == 0 && ((1 << (_la - 162)) & ((1 << (SqlBaseParser.TABLES - 162)) | (1 << (SqlBaseParser.TABLESAMPLE - 162)) | (1 << (SqlBaseParser.TEXT - 162)) | (1 << (SqlBaseParser.TIME - 162)) | (1 << (SqlBaseParser.TIMESTAMP - 162)) | (1 << (SqlBaseParser.TO - 162)) | (1 << (SqlBaseParser.TRANSACTION - 162)) | (1 << (SqlBaseParser.TRUE - 162)) | (1 << (SqlBaseParser.TRY_CAST - 162)) | (1 << (SqlBaseParser.TYPE - 162)) | (1 << (SqlBaseParser.UNBOUNDED - 162)) | (1 << (SqlBaseParser.UNCOMMITTED - 162)) | (1 << (SqlBaseParser.USE - 162)) | (1 << (SqlBaseParser.VALIDATE - 162)) | (1 << (SqlBaseParser.VERBOSE - 162)) | (1 << (SqlBaseParser.VIEW - 162)) | (1 << (SqlBaseParser.WORK - 162)) | (1 << (SqlBaseParser.WRITE - 162)) | (1 << (SqlBaseParser.YEAR - 162)) | (1 << (SqlBaseParser.ZONE - 162)))) !== 0) || ((((_la - 197)) & ~0x1f) == 0 && ((1 << (_la - 197)) & ((1 << (SqlBaseParser.PLUS - 197)) | (1 << (SqlBaseParser.MINUS - 197)) | (1 << (SqlBaseParser.STRING - 197)) | (1 << (SqlBaseParser.UNICODE_STRING - 197)) | (1 << (SqlBaseParser.BINARY_LITERAL - 197)) | (1 << (SqlBaseParser.INTEGER_VALUE - 197)) | (1 << (SqlBaseParser.DECIMAL_VALUE - 197)) | (1 << (SqlBaseParser.DOUBLE_VALUE - 197)) | (1 << (SqlBaseParser.IDENTIFIER - 197)) | (1 << (SqlBaseParser.DIGIT_IDENTIFIER - 197)) | (1 << (SqlBaseParser.QUOTED_IDENTIFIER - 197)) | (1 << (SqlBaseParser.BACKQUOTED_IDENTIFIER - 197)) | (1 << (SqlBaseParser.DOUBLE_PRECISION - 197)))) !== 0)) { | |
this.state = 302; | |
this.callArgument(); | |
this.state = 307; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 303; | |
this.match(SqlBaseParser.T__3); | |
this.state = 304; | |
this.callArgument(); | |
this.state = 309; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
} | |
this.state = 312; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 19: | |
localctx = new GrantContext(this, localctx); | |
this.enterOuterAlt(localctx, 19); | |
this.state = 314; | |
this.match(SqlBaseParser.GRANT); | |
this.state = 325; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,23,this._ctx); | |
switch(la_) { | |
case 1: | |
this.state = 315; | |
this.privilege(); | |
this.state = 320; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 316; | |
this.match(SqlBaseParser.T__3); | |
this.state = 317; | |
this.privilege(); | |
this.state = 322; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
break; | |
case 2: | |
this.state = 323; | |
this.match(SqlBaseParser.ALL); | |
this.state = 324; | |
this.match(SqlBaseParser.PRIVILEGES); | |
break; | |
} | |
this.state = 327; | |
this.match(SqlBaseParser.ON); | |
this.state = 329; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.TABLE) { | |
this.state = 328; | |
this.match(SqlBaseParser.TABLE); | |
} | |
this.state = 331; | |
this.qualifiedName(); | |
this.state = 332; | |
this.match(SqlBaseParser.TO); | |
this.state = 333; | |
localctx.grantee = this.identifier(); | |
this.state = 337; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.WITH) { | |
this.state = 334; | |
this.match(SqlBaseParser.WITH); | |
this.state = 335; | |
this.match(SqlBaseParser.GRANT); | |
this.state = 336; | |
this.match(SqlBaseParser.OPTION); | |
} | |
break; | |
case 20: | |
localctx = new RevokeContext(this, localctx); | |
this.enterOuterAlt(localctx, 20); | |
this.state = 339; | |
this.match(SqlBaseParser.REVOKE); | |
this.state = 343; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,26,this._ctx); | |
if(la_===1) { | |
this.state = 340; | |
this.match(SqlBaseParser.GRANT); | |
this.state = 341; | |
this.match(SqlBaseParser.OPTION); | |
this.state = 342; | |
this.match(SqlBaseParser.FOR); | |
} | |
this.state = 355; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,28,this._ctx); | |
switch(la_) { | |
case 1: | |
this.state = 345; | |
this.privilege(); | |
this.state = 350; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 346; | |
this.match(SqlBaseParser.T__3); | |
this.state = 347; | |
this.privilege(); | |
this.state = 352; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
break; | |
case 2: | |
this.state = 353; | |
this.match(SqlBaseParser.ALL); | |
this.state = 354; | |
this.match(SqlBaseParser.PRIVILEGES); | |
break; | |
} | |
this.state = 357; | |
this.match(SqlBaseParser.ON); | |
this.state = 359; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.TABLE) { | |
this.state = 358; | |
this.match(SqlBaseParser.TABLE); | |
} | |
this.state = 361; | |
this.qualifiedName(); | |
this.state = 362; | |
this.match(SqlBaseParser.FROM); | |
this.state = 363; | |
localctx.grantee = this.identifier(); | |
break; | |
case 21: | |
localctx = new ShowGrantsContext(this, localctx); | |
this.enterOuterAlt(localctx, 21); | |
this.state = 365; | |
this.match(SqlBaseParser.SHOW); | |
this.state = 366; | |
this.match(SqlBaseParser.GRANTS); | |
this.state = 372; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.ON) { | |
this.state = 367; | |
this.match(SqlBaseParser.ON); | |
this.state = 369; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.TABLE) { | |
this.state = 368; | |
this.match(SqlBaseParser.TABLE); | |
} | |
this.state = 371; | |
this.qualifiedName(); | |
} | |
break; | |
case 22: | |
localctx = new ExplainContext(this, localctx); | |
this.enterOuterAlt(localctx, 22); | |
this.state = 374; | |
this.match(SqlBaseParser.EXPLAIN); | |
this.state = 376; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.ANALYZE) { | |
this.state = 375; | |
this.match(SqlBaseParser.ANALYZE); | |
} | |
this.state = 379; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.VERBOSE) { | |
this.state = 378; | |
this.match(SqlBaseParser.VERBOSE); | |
} | |
this.state = 392; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,35,this._ctx); | |
if(la_===1) { | |
this.state = 381; | |
this.match(SqlBaseParser.T__1); | |
this.state = 382; | |
this.explainOption(); | |
this.state = 387; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 383; | |
this.match(SqlBaseParser.T__3); | |
this.state = 384; | |
this.explainOption(); | |
this.state = 389; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
this.state = 390; | |
this.match(SqlBaseParser.T__2); | |
} | |
this.state = 394; | |
this.statement(); | |
break; | |
case 23: | |
localctx = new ShowCreateTableContext(this, localctx); | |
this.enterOuterAlt(localctx, 23); | |
this.state = 395; | |
this.match(SqlBaseParser.SHOW); | |
this.state = 396; | |
this.match(SqlBaseParser.CREATE); | |
this.state = 397; | |
this.match(SqlBaseParser.TABLE); | |
this.state = 398; | |
this.qualifiedName(); | |
break; | |
case 24: | |
localctx = new ShowCreateViewContext(this, localctx); | |
this.enterOuterAlt(localctx, 24); | |
this.state = 399; | |
this.match(SqlBaseParser.SHOW); | |
this.state = 400; | |
this.match(SqlBaseParser.CREATE); | |
this.state = 401; | |
this.match(SqlBaseParser.VIEW); | |
this.state = 402; | |
this.qualifiedName(); | |
break; | |
case 25: | |
localctx = new ShowTablesContext(this, localctx); | |
this.enterOuterAlt(localctx, 25); | |
this.state = 403; | |
this.match(SqlBaseParser.SHOW); | |
this.state = 404; | |
this.match(SqlBaseParser.TABLES); | |
this.state = 407; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.FROM || _la===SqlBaseParser.IN) { | |
this.state = 405; | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.FROM || _la===SqlBaseParser.IN)) { | |
this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
this.state = 406; | |
this.qualifiedName(); | |
} | |
this.state = 415; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.LIKE) { | |
this.state = 409; | |
this.match(SqlBaseParser.LIKE); | |
this.state = 410; | |
localctx.pattern = this.string(); | |
this.state = 413; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.ESCAPE) { | |
this.state = 411; | |
this.match(SqlBaseParser.ESCAPE); | |
this.state = 412; | |
localctx.escape = this.string(); | |
} | |
} | |
break; | |
case 26: | |
localctx = new ShowSchemasContext(this, localctx); | |
this.enterOuterAlt(localctx, 26); | |
this.state = 417; | |
this.match(SqlBaseParser.SHOW); | |
this.state = 418; | |
this.match(SqlBaseParser.SCHEMAS); | |
this.state = 421; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.FROM || _la===SqlBaseParser.IN) { | |
this.state = 419; | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.FROM || _la===SqlBaseParser.IN)) { | |
this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
this.state = 420; | |
this.identifier(); | |
} | |
this.state = 429; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.LIKE) { | |
this.state = 423; | |
this.match(SqlBaseParser.LIKE); | |
this.state = 424; | |
localctx.pattern = this.string(); | |
this.state = 427; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.ESCAPE) { | |
this.state = 425; | |
this.match(SqlBaseParser.ESCAPE); | |
this.state = 426; | |
localctx.escape = this.string(); | |
} | |
} | |
break; | |
case 27: | |
localctx = new ShowCatalogsContext(this, localctx); | |
this.enterOuterAlt(localctx, 27); | |
this.state = 431; | |
this.match(SqlBaseParser.SHOW); | |
this.state = 432; | |
this.match(SqlBaseParser.CATALOGS); | |
this.state = 435; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.LIKE) { | |
this.state = 433; | |
this.match(SqlBaseParser.LIKE); | |
this.state = 434; | |
localctx.pattern = this.string(); | |
} | |
break; | |
case 28: | |
localctx = new ShowColumnsContext(this, localctx); | |
this.enterOuterAlt(localctx, 28); | |
this.state = 437; | |
this.match(SqlBaseParser.SHOW); | |
this.state = 438; | |
this.match(SqlBaseParser.COLUMNS); | |
this.state = 439; | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.FROM || _la===SqlBaseParser.IN)) { | |
this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
this.state = 440; | |
this.qualifiedName(); | |
break; | |
case 29: | |
localctx = new ShowStatsContext(this, localctx); | |
this.enterOuterAlt(localctx, 29); | |
this.state = 441; | |
this.match(SqlBaseParser.SHOW); | |
this.state = 442; | |
this.match(SqlBaseParser.STATS); | |
this.state = 443; | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.FOR || _la===SqlBaseParser.ON)) { | |
this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
this.state = 444; | |
this.qualifiedName(); | |
break; | |
case 30: | |
localctx = new ShowStatsForQueryContext(this, localctx); | |
this.enterOuterAlt(localctx, 30); | |
this.state = 445; | |
this.match(SqlBaseParser.SHOW); | |
this.state = 446; | |
this.match(SqlBaseParser.STATS); | |
this.state = 447; | |
this.match(SqlBaseParser.FOR); | |
this.state = 448; | |
this.match(SqlBaseParser.T__1); | |
this.state = 449; | |
this.querySpecification(); | |
this.state = 450; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 31: | |
localctx = new ShowColumnsContext(this, localctx); | |
this.enterOuterAlt(localctx, 31); | |
this.state = 452; | |
this.match(SqlBaseParser.DESCRIBE); | |
this.state = 453; | |
this.qualifiedName(); | |
break; | |
case 32: | |
localctx = new ShowColumnsContext(this, localctx); | |
this.enterOuterAlt(localctx, 32); | |
this.state = 454; | |
this.match(SqlBaseParser.DESC); | |
this.state = 455; | |
this.qualifiedName(); | |
break; | |
case 33: | |
localctx = new ShowFunctionsContext(this, localctx); | |
this.enterOuterAlt(localctx, 33); | |
this.state = 456; | |
this.match(SqlBaseParser.SHOW); | |
this.state = 457; | |
this.match(SqlBaseParser.FUNCTIONS); | |
break; | |
case 34: | |
localctx = new ShowSessionContext(this, localctx); | |
this.enterOuterAlt(localctx, 34); | |
this.state = 458; | |
this.match(SqlBaseParser.SHOW); | |
this.state = 459; | |
this.match(SqlBaseParser.SESSION); | |
break; | |
case 35: | |
localctx = new SetSessionContext(this, localctx); | |
this.enterOuterAlt(localctx, 35); | |
this.state = 460; | |
this.match(SqlBaseParser.SET); | |
this.state = 461; | |
this.match(SqlBaseParser.SESSION); | |
this.state = 462; | |
this.qualifiedName(); | |
this.state = 463; | |
this.match(SqlBaseParser.EQ); | |
this.state = 464; | |
this.expression(); | |
break; | |
case 36: | |
localctx = new ResetSessionContext(this, localctx); | |
this.enterOuterAlt(localctx, 36); | |
this.state = 466; | |
this.match(SqlBaseParser.RESET); | |
this.state = 467; | |
this.match(SqlBaseParser.SESSION); | |
this.state = 468; | |
this.qualifiedName(); | |
break; | |
case 37: | |
localctx = new StartTransactionContext(this, localctx); | |
this.enterOuterAlt(localctx, 37); | |
this.state = 469; | |
this.match(SqlBaseParser.START); | |
this.state = 470; | |
this.match(SqlBaseParser.TRANSACTION); | |
this.state = 479; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.ISOLATION || _la===SqlBaseParser.READ) { | |
this.state = 471; | |
this.transactionMode(); | |
this.state = 476; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 472; | |
this.match(SqlBaseParser.T__3); | |
this.state = 473; | |
this.transactionMode(); | |
this.state = 478; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
} | |
break; | |
case 38: | |
localctx = new CommitContext(this, localctx); | |
this.enterOuterAlt(localctx, 38); | |
this.state = 481; | |
this.match(SqlBaseParser.COMMIT); | |
this.state = 483; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.WORK) { | |
this.state = 482; | |
this.match(SqlBaseParser.WORK); | |
} | |
break; | |
case 39: | |
localctx = new RollbackContext(this, localctx); | |
this.enterOuterAlt(localctx, 39); | |
this.state = 485; | |
this.match(SqlBaseParser.ROLLBACK); | |
this.state = 487; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.WORK) { | |
this.state = 486; | |
this.match(SqlBaseParser.WORK); | |
} | |
break; | |
case 40: | |
localctx = new PrepareContext(this, localctx); | |
this.enterOuterAlt(localctx, 40); | |
this.state = 489; | |
this.match(SqlBaseParser.PREPARE); | |
this.state = 490; | |
this.identifier(); | |
this.state = 491; | |
this.match(SqlBaseParser.FROM); | |
this.state = 492; | |
this.statement(); | |
break; | |
case 41: | |
localctx = new DeallocateContext(this, localctx); | |
this.enterOuterAlt(localctx, 41); | |
this.state = 494; | |
this.match(SqlBaseParser.DEALLOCATE); | |
this.state = 495; | |
this.match(SqlBaseParser.PREPARE); | |
this.state = 496; | |
this.identifier(); | |
break; | |
case 42: | |
localctx = new ExecuteContext(this, localctx); | |
this.enterOuterAlt(localctx, 42); | |
this.state = 497; | |
this.match(SqlBaseParser.EXECUTE); | |
this.state = 498; | |
this.identifier(); | |
this.state = 508; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.USING) { | |
this.state = 499; | |
this.match(SqlBaseParser.USING); | |
this.state = 500; | |
this.expression(); | |
this.state = 505; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 501; | |
this.match(SqlBaseParser.T__3); | |
this.state = 502; | |
this.expression(); | |
this.state = 507; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
} | |
break; | |
case 43: | |
localctx = new DescribeInputContext(this, localctx); | |
this.enterOuterAlt(localctx, 43); | |
this.state = 510; | |
this.match(SqlBaseParser.DESCRIBE); | |
this.state = 511; | |
this.match(SqlBaseParser.INPUT); | |
this.state = 512; | |
this.identifier(); | |
break; | |
case 44: | |
localctx = new DescribeOutputContext(this, localctx); | |
this.enterOuterAlt(localctx, 44); | |
this.state = 513; | |
this.match(SqlBaseParser.DESCRIBE); | |
this.state = 514; | |
this.match(SqlBaseParser.OUTPUT); | |
this.state = 515; | |
this.identifier(); | |
break; | |
case 45: | |
localctx = new SetPathContext(this, localctx); | |
this.enterOuterAlt(localctx, 45); | |
this.state = 516; | |
this.match(SqlBaseParser.SET); | |
this.state = 517; | |
this.match(SqlBaseParser.PATH); | |
this.state = 518; | |
this.pathSpecification(); | |
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 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 = SqlBaseParser.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.renamedwith = function() { | |
return this.getTypedRuleContext(RenamedwithContext,0); | |
}; | |
QueryContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterQuery(this); | |
} | |
}; | |
QueryContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitQuery(this); | |
} | |
}; | |
SqlBaseParser.QueryContext = QueryContext; | |
SqlBaseParser.prototype.query = function() { | |
var localctx = new QueryContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 8, SqlBaseParser.RULE_query); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 522; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.WITH) { | |
this.state = 521; | |
this.renamedwith(); | |
} | |
this.state = 524; | |
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 RenamedwithContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_renamedwith; | |
return this; | |
} | |
RenamedwithContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
RenamedwithContext.prototype.constructor = RenamedwithContext; | |
RenamedwithContext.prototype.WITH = function() { | |
return this.getToken(SqlBaseParser.WITH, 0); | |
}; | |
RenamedwithContext.prototype.namedQuery = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(NamedQueryContext); | |
} else { | |
return this.getTypedRuleContext(NamedQueryContext,i); | |
} | |
}; | |
RenamedwithContext.prototype.RECURSIVE = function() { | |
return this.getToken(SqlBaseParser.RECURSIVE, 0); | |
}; | |
RenamedwithContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterRenamedwith(this); | |
} | |
}; | |
RenamedwithContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitRenamedwith(this); | |
} | |
}; | |
SqlBaseParser.RenamedwithContext = RenamedwithContext; | |
SqlBaseParser.prototype.renamedwith = function() { | |
var localctx = new RenamedwithContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 10, SqlBaseParser.RULE_renamedwith); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 526; | |
this.match(SqlBaseParser.WITH); | |
this.state = 528; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.RECURSIVE) { | |
this.state = 527; | |
this.match(SqlBaseParser.RECURSIVE); | |
} | |
this.state = 530; | |
this.namedQuery(); | |
this.state = 535; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 531; | |
this.match(SqlBaseParser.T__3); | |
this.state = 532; | |
this.namedQuery(); | |
this.state = 537; | |
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 TableElementContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_tableElement; | |
return this; | |
} | |
TableElementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
TableElementContext.prototype.constructor = TableElementContext; | |
TableElementContext.prototype.columnDefinition = function() { | |
return this.getTypedRuleContext(ColumnDefinitionContext,0); | |
}; | |
TableElementContext.prototype.likeClause = function() { | |
return this.getTypedRuleContext(LikeClauseContext,0); | |
}; | |
TableElementContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterTableElement(this); | |
} | |
}; | |
TableElementContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitTableElement(this); | |
} | |
}; | |
SqlBaseParser.TableElementContext = TableElementContext; | |
SqlBaseParser.prototype.tableElement = function() { | |
var localctx = new TableElementContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 12, SqlBaseParser.RULE_tableElement); | |
try { | |
this.state = 540; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.ADD: | |
case SqlBaseParser.ALL: | |
case SqlBaseParser.ANALYZE: | |
case SqlBaseParser.ANY: | |
case SqlBaseParser.ARRAY: | |
case SqlBaseParser.ASC: | |
case SqlBaseParser.AT: | |
case SqlBaseParser.BERNOULLI: | |
case SqlBaseParser.CALL: | |
case SqlBaseParser.CASCADE: | |
case SqlBaseParser.CATALOGS: | |
case SqlBaseParser.COLUMN: | |
case SqlBaseParser.COLUMNS: | |
case SqlBaseParser.COMMENT: | |
case SqlBaseParser.COMMIT: | |
case SqlBaseParser.COMMITTED: | |
case SqlBaseParser.CURRENT: | |
case SqlBaseParser.DATA: | |
case SqlBaseParser.DATE: | |
case SqlBaseParser.DAY: | |
case SqlBaseParser.DESC: | |
case SqlBaseParser.DISTRIBUTED: | |
case SqlBaseParser.EXCLUDING: | |
case SqlBaseParser.EXPLAIN: | |
case SqlBaseParser.FILTER: | |
case SqlBaseParser.FIRST: | |
case SqlBaseParser.FOLLOWING: | |
case SqlBaseParser.FORMAT: | |
case SqlBaseParser.FUNCTIONS: | |
case SqlBaseParser.GRANT: | |
case SqlBaseParser.GRANTS: | |
case SqlBaseParser.GRAPHVIZ: | |
case SqlBaseParser.HOUR: | |
case SqlBaseParser.IF: | |
case SqlBaseParser.INCLUDING: | |
case SqlBaseParser.INPUT: | |
case SqlBaseParser.INTERVAL: | |
case SqlBaseParser.IO: | |
case SqlBaseParser.ISOLATION: | |
case SqlBaseParser.JSON: | |
case SqlBaseParser.LAST: | |
case SqlBaseParser.LATERAL: | |
case SqlBaseParser.LEVEL: | |
case SqlBaseParser.LIMIT: | |
case SqlBaseParser.LOGICAL: | |
case SqlBaseParser.MAP: | |
case SqlBaseParser.MINUTE: | |
case SqlBaseParser.MONTH: | |
case SqlBaseParser.NFC: | |
case SqlBaseParser.NFD: | |
case SqlBaseParser.NFKC: | |
case SqlBaseParser.NFKD: | |
case SqlBaseParser.NO: | |
case SqlBaseParser.NULLIF: | |
case SqlBaseParser.NULLS: | |
case SqlBaseParser.ONLY: | |
case SqlBaseParser.OPTION: | |
case SqlBaseParser.ORDINALITY: | |
case SqlBaseParser.OUTPUT: | |
case SqlBaseParser.OVER: | |
case SqlBaseParser.PARTITION: | |
case SqlBaseParser.PARTITIONS: | |
case SqlBaseParser.PATH: | |
case SqlBaseParser.POSITION: | |
case SqlBaseParser.PRECEDING: | |
case SqlBaseParser.PRIVILEGES: | |
case SqlBaseParser.PROPERTIES: | |
case SqlBaseParser.PUBLIC: | |
case SqlBaseParser.RANGE: | |
case SqlBaseParser.READ: | |
case SqlBaseParser.RENAME: | |
case SqlBaseParser.REPEATABLE: | |
case SqlBaseParser.REPLACE: | |
case SqlBaseParser.RESET: | |
case SqlBaseParser.RESTRICT: | |
case SqlBaseParser.REVOKE: | |
case SqlBaseParser.ROLLBACK: | |
case SqlBaseParser.ROW: | |
case SqlBaseParser.ROWS: | |
case SqlBaseParser.SCHEMA: | |
case SqlBaseParser.SCHEMAS: | |
case SqlBaseParser.SECOND: | |
case SqlBaseParser.SERIALIZABLE: | |
case SqlBaseParser.SESSION: | |
case SqlBaseParser.SET: | |
case SqlBaseParser.SETS: | |
case SqlBaseParser.SHOW: | |
case SqlBaseParser.SOME: | |
case SqlBaseParser.START: | |
case SqlBaseParser.STATS: | |
case SqlBaseParser.SUBSTRING: | |
case SqlBaseParser.SYSTEM: | |
case SqlBaseParser.TABLES: | |
case SqlBaseParser.TABLESAMPLE: | |
case SqlBaseParser.TEXT: | |
case SqlBaseParser.TIME: | |
case SqlBaseParser.TIMESTAMP: | |
case SqlBaseParser.TO: | |
case SqlBaseParser.TRANSACTION: | |
case SqlBaseParser.TRY_CAST: | |
case SqlBaseParser.TYPE: | |
case SqlBaseParser.UNBOUNDED: | |
case SqlBaseParser.UNCOMMITTED: | |
case SqlBaseParser.USE: | |
case SqlBaseParser.VALIDATE: | |
case SqlBaseParser.VERBOSE: | |
case SqlBaseParser.VIEW: | |
case SqlBaseParser.WORK: | |
case SqlBaseParser.WRITE: | |
case SqlBaseParser.YEAR: | |
case SqlBaseParser.ZONE: | |
case SqlBaseParser.IDENTIFIER: | |
case SqlBaseParser.DIGIT_IDENTIFIER: | |
case SqlBaseParser.QUOTED_IDENTIFIER: | |
case SqlBaseParser.BACKQUOTED_IDENTIFIER: | |
this.enterOuterAlt(localctx, 1); | |
this.state = 538; | |
this.columnDefinition(); | |
break; | |
case SqlBaseParser.LIKE: | |
this.enterOuterAlt(localctx, 2); | |
this.state = 539; | |
this.likeClause(); | |
break; | |
default: | |
throw new antlr4.error.NoViableAltException(this); | |
} | |
} catch (re) { | |
if(re instanceof antlr4.error.RecognitionException) { | |
localctx.exception = re; | |
this._errHandler.reportError(this, re); | |
this._errHandler.recover(this, re); | |
} else { | |
throw re; | |
} | |
} finally { | |
this.exitRule(); | |
} | |
return localctx; | |
}; | |
function ColumnDefinitionContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_columnDefinition; | |
return this; | |
} | |
ColumnDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
ColumnDefinitionContext.prototype.constructor = ColumnDefinitionContext; | |
ColumnDefinitionContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
ColumnDefinitionContext.prototype.type = function() { | |
return this.getTypedRuleContext(TypeContext,0); | |
}; | |
ColumnDefinitionContext.prototype.COMMENT = function() { | |
return this.getToken(SqlBaseParser.COMMENT, 0); | |
}; | |
ColumnDefinitionContext.prototype.string = function() { | |
return this.getTypedRuleContext(StringContext,0); | |
}; | |
ColumnDefinitionContext.prototype.WITH = function() { | |
return this.getToken(SqlBaseParser.WITH, 0); | |
}; | |
ColumnDefinitionContext.prototype.properties = function() { | |
return this.getTypedRuleContext(PropertiesContext,0); | |
}; | |
ColumnDefinitionContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterColumnDefinition(this); | |
} | |
}; | |
ColumnDefinitionContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitColumnDefinition(this); | |
} | |
}; | |
SqlBaseParser.ColumnDefinitionContext = ColumnDefinitionContext; | |
SqlBaseParser.prototype.columnDefinition = function() { | |
var localctx = new ColumnDefinitionContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 14, SqlBaseParser.RULE_columnDefinition); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 542; | |
this.identifier(); | |
this.state = 543; | |
this.type(0); | |
this.state = 546; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.COMMENT) { | |
this.state = 544; | |
this.match(SqlBaseParser.COMMENT); | |
this.state = 545; | |
this.string(); | |
} | |
this.state = 550; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.WITH) { | |
this.state = 548; | |
this.match(SqlBaseParser.WITH); | |
this.state = 549; | |
this.properties(); | |
} | |
} catch (re) { | |
if(re instanceof antlr4.error.RecognitionException) { | |
localctx.exception = re; | |
this._errHandler.reportError(this, re); | |
this._errHandler.recover(this, re); | |
} else { | |
throw re; | |
} | |
} finally { | |
this.exitRule(); | |
} | |
return localctx; | |
}; | |
function LikeClauseContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_likeClause; | |
this.optionType = null; // Token | |
return this; | |
} | |
LikeClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
LikeClauseContext.prototype.constructor = LikeClauseContext; | |
LikeClauseContext.prototype.LIKE = function() { | |
return this.getToken(SqlBaseParser.LIKE, 0); | |
}; | |
LikeClauseContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
LikeClauseContext.prototype.PROPERTIES = function() { | |
return this.getToken(SqlBaseParser.PROPERTIES, 0); | |
}; | |
LikeClauseContext.prototype.INCLUDING = function() { | |
return this.getToken(SqlBaseParser.INCLUDING, 0); | |
}; | |
LikeClauseContext.prototype.EXCLUDING = function() { | |
return this.getToken(SqlBaseParser.EXCLUDING, 0); | |
}; | |
LikeClauseContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterLikeClause(this); | |
} | |
}; | |
LikeClauseContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitLikeClause(this); | |
} | |
}; | |
SqlBaseParser.LikeClauseContext = LikeClauseContext; | |
SqlBaseParser.prototype.likeClause = function() { | |
var localctx = new LikeClauseContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 16, SqlBaseParser.RULE_likeClause); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 552; | |
this.match(SqlBaseParser.LIKE); | |
this.state = 553; | |
this.qualifiedName(); | |
this.state = 556; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.EXCLUDING || _la===SqlBaseParser.INCLUDING) { | |
this.state = 554; | |
localctx.optionType = this._input.LT(1); | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.EXCLUDING || _la===SqlBaseParser.INCLUDING)) { | |
localctx.optionType = this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
this.state = 555; | |
this.match(SqlBaseParser.PROPERTIES); | |
} | |
} catch (re) { | |
if(re instanceof antlr4.error.RecognitionException) { | |
localctx.exception = re; | |
this._errHandler.reportError(this, re); | |
this._errHandler.recover(this, re); | |
} else { | |
throw re; | |
} | |
} finally { | |
this.exitRule(); | |
} | |
return localctx; | |
}; | |
function PropertiesContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_properties; | |
return this; | |
} | |
PropertiesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
PropertiesContext.prototype.constructor = PropertiesContext; | |
PropertiesContext.prototype.property = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(PropertyContext); | |
} else { | |
return this.getTypedRuleContext(PropertyContext,i); | |
} | |
}; | |
PropertiesContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterProperties(this); | |
} | |
}; | |
PropertiesContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitProperties(this); | |
} | |
}; | |
SqlBaseParser.PropertiesContext = PropertiesContext; | |
SqlBaseParser.prototype.properties = function() { | |
var localctx = new PropertiesContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 18, SqlBaseParser.RULE_properties); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 558; | |
this.match(SqlBaseParser.T__1); | |
this.state = 559; | |
this.property(); | |
this.state = 564; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 560; | |
this.match(SqlBaseParser.T__3); | |
this.state = 561; | |
this.property(); | |
this.state = 566; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
this.state = 567; | |
this.match(SqlBaseParser.T__2); | |
} catch (re) { | |
if(re instanceof antlr4.error.RecognitionException) { | |
localctx.exception = re; | |
this._errHandler.reportError(this, re); | |
this._errHandler.recover(this, re); | |
} else { | |
throw re; | |
} | |
} finally { | |
this.exitRule(); | |
} | |
return localctx; | |
}; | |
function PropertyContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_property; | |
return this; | |
} | |
PropertyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
PropertyContext.prototype.constructor = PropertyContext; | |
PropertyContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
PropertyContext.prototype.EQ = function() { | |
return this.getToken(SqlBaseParser.EQ, 0); | |
}; | |
PropertyContext.prototype.expression = function() { | |
return this.getTypedRuleContext(ExpressionContext,0); | |
}; | |
PropertyContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterProperty(this); | |
} | |
}; | |
PropertyContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitProperty(this); | |
} | |
}; | |
SqlBaseParser.PropertyContext = PropertyContext; | |
SqlBaseParser.prototype.property = function() { | |
var localctx = new PropertyContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 20, SqlBaseParser.RULE_property); | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 569; | |
this.identifier(); | |
this.state = 570; | |
this.match(SqlBaseParser.EQ); | |
this.state = 571; | |
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 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 = SqlBaseParser.RULE_queryNoWith; | |
this.limit = null; // Token | |
return this; | |
} | |
QueryNoWithContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
QueryNoWithContext.prototype.constructor = QueryNoWithContext; | |
QueryNoWithContext.prototype.queryTerm = function() { | |
return this.getTypedRuleContext(QueryTermContext,0); | |
}; | |
QueryNoWithContext.prototype.ORDER = function() { | |
return this.getToken(SqlBaseParser.ORDER, 0); | |
}; | |
QueryNoWithContext.prototype.BY = function() { | |
return this.getToken(SqlBaseParser.BY, 0); | |
}; | |
QueryNoWithContext.prototype.sortItem = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(SortItemContext); | |
} else { | |
return this.getTypedRuleContext(SortItemContext,i); | |
} | |
}; | |
QueryNoWithContext.prototype.LIMIT = function() { | |
return this.getToken(SqlBaseParser.LIMIT, 0); | |
}; | |
QueryNoWithContext.prototype.INTEGER_VALUE = function() { | |
return this.getToken(SqlBaseParser.INTEGER_VALUE, 0); | |
}; | |
QueryNoWithContext.prototype.ALL = function() { | |
return this.getToken(SqlBaseParser.ALL, 0); | |
}; | |
QueryNoWithContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterQueryNoWith(this); | |
} | |
}; | |
QueryNoWithContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitQueryNoWith(this); | |
} | |
}; | |
SqlBaseParser.QueryNoWithContext = QueryNoWithContext; | |
SqlBaseParser.prototype.queryNoWith = function() { | |
var localctx = new QueryNoWithContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 22, SqlBaseParser.RULE_queryNoWith); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 573; | |
this.queryTerm(0); | |
this.state = 584; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.ORDER) { | |
this.state = 574; | |
this.match(SqlBaseParser.ORDER); | |
this.state = 575; | |
this.match(SqlBaseParser.BY); | |
this.state = 576; | |
this.sortItem(); | |
this.state = 581; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 577; | |
this.match(SqlBaseParser.T__3); | |
this.state = 578; | |
this.sortItem(); | |
this.state = 583; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
} | |
this.state = 588; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.LIMIT) { | |
this.state = 586; | |
this.match(SqlBaseParser.LIMIT); | |
this.state = 587; | |
localctx.limit = this._input.LT(1); | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.ALL || _la===SqlBaseParser.INTEGER_VALUE)) { | |
localctx.limit = 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 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 = SqlBaseParser.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; | |
SqlBaseParser.QueryTermDefaultContext = QueryTermDefaultContext; | |
QueryTermDefaultContext.prototype.queryPrimary = function() { | |
return this.getTypedRuleContext(QueryPrimaryContext,0); | |
}; | |
QueryTermDefaultContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterQueryTermDefault(this); | |
} | |
}; | |
QueryTermDefaultContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitQueryTermDefault(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; | |
SqlBaseParser.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(SqlBaseParser.INTERSECT, 0); | |
}; | |
SetOperationContext.prototype.setQuantifier = function() { | |
return this.getTypedRuleContext(SetQuantifierContext,0); | |
}; | |
SetOperationContext.prototype.UNION = function() { | |
return this.getToken(SqlBaseParser.UNION, 0); | |
}; | |
SetOperationContext.prototype.EXCEPT = function() { | |
return this.getToken(SqlBaseParser.EXCEPT, 0); | |
}; | |
SetOperationContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSetOperation(this); | |
} | |
}; | |
SetOperationContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSetOperation(this); | |
} | |
}; | |
SqlBaseParser.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 = 24; | |
this.enterRecursionRule(localctx, 24, SqlBaseParser.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 = 591; | |
this.queryPrimary(); | |
this._ctx.stop = this._input.LT(-1); | |
this.state = 607; | |
this._errHandler.sync(this); | |
var _alt = this._interp.adaptivePredict(this._input,64,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 = 605; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,63,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new SetOperationContext(this, new QueryTermContext(this, _parentctx, _parentState)); | |
localctx.left = _prevctx; | |
this.pushNewRecursionContext(localctx, _startState, SqlBaseParser.RULE_queryTerm); | |
this.state = 593; | |
if (!( this.precpred(this._ctx, 2))) { | |
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); | |
} | |
this.state = 594; | |
localctx.operator = this.match(SqlBaseParser.INTERSECT); | |
this.state = 596; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.ALL || _la===SqlBaseParser.DISTINCT) { | |
this.state = 595; | |
this.setQuantifier(); | |
} | |
this.state = 598; | |
localctx.right = this.queryTerm(3); | |
break; | |
case 2: | |
localctx = new SetOperationContext(this, new QueryTermContext(this, _parentctx, _parentState)); | |
localctx.left = _prevctx; | |
this.pushNewRecursionContext(localctx, _startState, SqlBaseParser.RULE_queryTerm); | |
this.state = 599; | |
if (!( this.precpred(this._ctx, 1))) { | |
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); | |
} | |
this.state = 600; | |
localctx.operator = this._input.LT(1); | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.EXCEPT || _la===SqlBaseParser.UNION)) { | |
localctx.operator = this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
this.state = 602; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.ALL || _la===SqlBaseParser.DISTINCT) { | |
this.state = 601; | |
this.setQuantifier(); | |
} | |
this.state = 604; | |
localctx.right = this.queryTerm(2); | |
break; | |
} | |
} | |
this.state = 609; | |
this._errHandler.sync(this); | |
_alt = this._interp.adaptivePredict(this._input,64,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 = SqlBaseParser.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; | |
SqlBaseParser.SubqueryContext = SubqueryContext; | |
SubqueryContext.prototype.queryNoWith = function() { | |
return this.getTypedRuleContext(QueryNoWithContext,0); | |
}; | |
SubqueryContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSubquery(this); | |
} | |
}; | |
SubqueryContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSubquery(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; | |
SqlBaseParser.QueryPrimaryDefaultContext = QueryPrimaryDefaultContext; | |
QueryPrimaryDefaultContext.prototype.querySpecification = function() { | |
return this.getTypedRuleContext(QuerySpecificationContext,0); | |
}; | |
QueryPrimaryDefaultContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterQueryPrimaryDefault(this); | |
} | |
}; | |
QueryPrimaryDefaultContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitQueryPrimaryDefault(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; | |
SqlBaseParser.TableContext = TableContext; | |
TableContext.prototype.TABLE = function() { | |
return this.getToken(SqlBaseParser.TABLE, 0); | |
}; | |
TableContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
TableContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterTable(this); | |
} | |
}; | |
TableContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitTable(this); | |
} | |
}; | |
function InlineTableContext(parser, ctx) { | |
QueryPrimaryContext.call(this, parser); | |
QueryPrimaryContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
InlineTableContext.prototype = Object.create(QueryPrimaryContext.prototype); | |
InlineTableContext.prototype.constructor = InlineTableContext; | |
SqlBaseParser.InlineTableContext = InlineTableContext; | |
InlineTableContext.prototype.VALUES = function() { | |
return this.getToken(SqlBaseParser.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.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterInlineTable(this); | |
} | |
}; | |
InlineTableContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitInlineTable(this); | |
} | |
}; | |
SqlBaseParser.QueryPrimaryContext = QueryPrimaryContext; | |
SqlBaseParser.prototype.queryPrimary = function() { | |
var localctx = new QueryPrimaryContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 26, SqlBaseParser.RULE_queryPrimary); | |
try { | |
this.state = 626; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.SELECT: | |
localctx = new QueryPrimaryDefaultContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 610; | |
this.querySpecification(); | |
break; | |
case SqlBaseParser.TABLE: | |
localctx = new TableContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 611; | |
this.match(SqlBaseParser.TABLE); | |
this.state = 612; | |
this.qualifiedName(); | |
break; | |
case SqlBaseParser.VALUES: | |
localctx = new InlineTableContext(this, localctx); | |
this.enterOuterAlt(localctx, 3); | |
this.state = 613; | |
this.match(SqlBaseParser.VALUES); | |
this.state = 614; | |
this.expression(); | |
this.state = 619; | |
this._errHandler.sync(this); | |
var _alt = this._interp.adaptivePredict(this._input,65,this._ctx) | |
while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { | |
if(_alt===1) { | |
this.state = 615; | |
this.match(SqlBaseParser.T__3); | |
this.state = 616; | |
this.expression(); | |
} | |
this.state = 621; | |
this._errHandler.sync(this); | |
_alt = this._interp.adaptivePredict(this._input,65,this._ctx); | |
} | |
break; | |
case SqlBaseParser.T__1: | |
localctx = new SubqueryContext(this, localctx); | |
this.enterOuterAlt(localctx, 4); | |
this.state = 622; | |
this.match(SqlBaseParser.T__1); | |
this.state = 623; | |
this.queryNoWith(); | |
this.state = 624; | |
this.match(SqlBaseParser.T__2); | |
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 = SqlBaseParser.RULE_sortItem; | |
this.ordering = null; // Token | |
this.nullOrdering = 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(SqlBaseParser.NULLS, 0); | |
}; | |
SortItemContext.prototype.ASC = function() { | |
return this.getToken(SqlBaseParser.ASC, 0); | |
}; | |
SortItemContext.prototype.DESC = function() { | |
return this.getToken(SqlBaseParser.DESC, 0); | |
}; | |
SortItemContext.prototype.FIRST = function() { | |
return this.getToken(SqlBaseParser.FIRST, 0); | |
}; | |
SortItemContext.prototype.LAST = function() { | |
return this.getToken(SqlBaseParser.LAST, 0); | |
}; | |
SortItemContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSortItem(this); | |
} | |
}; | |
SortItemContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSortItem(this); | |
} | |
}; | |
SqlBaseParser.SortItemContext = SortItemContext; | |
SqlBaseParser.prototype.sortItem = function() { | |
var localctx = new SortItemContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 28, SqlBaseParser.RULE_sortItem); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 628; | |
this.expression(); | |
this.state = 630; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.ASC || _la===SqlBaseParser.DESC) { | |
this.state = 629; | |
localctx.ordering = this._input.LT(1); | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.ASC || _la===SqlBaseParser.DESC)) { | |
localctx.ordering = this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
} | |
this.state = 634; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.NULLS) { | |
this.state = 632; | |
this.match(SqlBaseParser.NULLS); | |
this.state = 633; | |
localctx.nullOrdering = this._input.LT(1); | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.FIRST || _la===SqlBaseParser.LAST)) { | |
localctx.nullOrdering = 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 = SqlBaseParser.RULE_querySpecification; | |
this.where = null; // BooleanExpressionContext | |
this.having = null; // BooleanExpressionContext | |
return this; | |
} | |
QuerySpecificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
QuerySpecificationContext.prototype.constructor = QuerySpecificationContext; | |
QuerySpecificationContext.prototype.SELECT = function() { | |
return this.getToken(SqlBaseParser.SELECT, 0); | |
}; | |
QuerySpecificationContext.prototype.selectItem = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(SelectItemContext); | |
} else { | |
return this.getTypedRuleContext(SelectItemContext,i); | |
} | |
}; | |
QuerySpecificationContext.prototype.setQuantifier = function() { | |
return this.getTypedRuleContext(SetQuantifierContext,0); | |
}; | |
QuerySpecificationContext.prototype.FROM = function() { | |
return this.getToken(SqlBaseParser.FROM, 0); | |
}; | |
QuerySpecificationContext.prototype.relation = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(RelationContext); | |
} else { | |
return this.getTypedRuleContext(RelationContext,i); | |
} | |
}; | |
QuerySpecificationContext.prototype.WHERE = function() { | |
return this.getToken(SqlBaseParser.WHERE, 0); | |
}; | |
QuerySpecificationContext.prototype.GROUP = function() { | |
return this.getToken(SqlBaseParser.GROUP, 0); | |
}; | |
QuerySpecificationContext.prototype.BY = function() { | |
return this.getToken(SqlBaseParser.BY, 0); | |
}; | |
QuerySpecificationContext.prototype.groupBy = function() { | |
return this.getTypedRuleContext(GroupByContext,0); | |
}; | |
QuerySpecificationContext.prototype.HAVING = function() { | |
return this.getToken(SqlBaseParser.HAVING, 0); | |
}; | |
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.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterQuerySpecification(this); | |
} | |
}; | |
QuerySpecificationContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitQuerySpecification(this); | |
} | |
}; | |
SqlBaseParser.QuerySpecificationContext = QuerySpecificationContext; | |
SqlBaseParser.prototype.querySpecification = function() { | |
var localctx = new QuerySpecificationContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 30, SqlBaseParser.RULE_querySpecification); | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 636; | |
this.match(SqlBaseParser.SELECT); | |
this.state = 638; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,69,this._ctx); | |
if(la_===1) { | |
this.state = 637; | |
this.setQuantifier(); | |
} | |
this.state = 640; | |
this.selectItem(); | |
this.state = 645; | |
this._errHandler.sync(this); | |
var _alt = this._interp.adaptivePredict(this._input,70,this._ctx) | |
while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { | |
if(_alt===1) { | |
this.state = 641; | |
this.match(SqlBaseParser.T__3); | |
this.state = 642; | |
this.selectItem(); | |
} | |
this.state = 647; | |
this._errHandler.sync(this); | |
_alt = this._interp.adaptivePredict(this._input,70,this._ctx); | |
} | |
this.state = 657; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,72,this._ctx); | |
if(la_===1) { | |
this.state = 648; | |
this.match(SqlBaseParser.FROM); | |
this.state = 649; | |
this.relation(0); | |
this.state = 654; | |
this._errHandler.sync(this); | |
var _alt = this._interp.adaptivePredict(this._input,71,this._ctx) | |
while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { | |
if(_alt===1) { | |
this.state = 650; | |
this.match(SqlBaseParser.T__3); | |
this.state = 651; | |
this.relation(0); | |
} | |
this.state = 656; | |
this._errHandler.sync(this); | |
_alt = this._interp.adaptivePredict(this._input,71,this._ctx); | |
} | |
} | |
this.state = 661; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,73,this._ctx); | |
if(la_===1) { | |
this.state = 659; | |
this.match(SqlBaseParser.WHERE); | |
this.state = 660; | |
localctx.where = this.booleanExpression(0); | |
} | |
this.state = 666; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,74,this._ctx); | |
if(la_===1) { | |
this.state = 663; | |
this.match(SqlBaseParser.GROUP); | |
this.state = 664; | |
this.match(SqlBaseParser.BY); | |
this.state = 665; | |
this.groupBy(); | |
} | |
this.state = 670; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,75,this._ctx); | |
if(la_===1) { | |
this.state = 668; | |
this.match(SqlBaseParser.HAVING); | |
this.state = 669; | |
localctx.having = 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 GroupByContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_groupBy; | |
return this; | |
} | |
GroupByContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
GroupByContext.prototype.constructor = GroupByContext; | |
GroupByContext.prototype.groupingElement = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(GroupingElementContext); | |
} else { | |
return this.getTypedRuleContext(GroupingElementContext,i); | |
} | |
}; | |
GroupByContext.prototype.setQuantifier = function() { | |
return this.getTypedRuleContext(SetQuantifierContext,0); | |
}; | |
GroupByContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterGroupBy(this); | |
} | |
}; | |
GroupByContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitGroupBy(this); | |
} | |
}; | |
SqlBaseParser.GroupByContext = GroupByContext; | |
SqlBaseParser.prototype.groupBy = function() { | |
var localctx = new GroupByContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 32, SqlBaseParser.RULE_groupBy); | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 673; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,76,this._ctx); | |
if(la_===1) { | |
this.state = 672; | |
this.setQuantifier(); | |
} | |
this.state = 675; | |
this.groupingElement(); | |
this.state = 680; | |
this._errHandler.sync(this); | |
var _alt = this._interp.adaptivePredict(this._input,77,this._ctx) | |
while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { | |
if(_alt===1) { | |
this.state = 676; | |
this.match(SqlBaseParser.T__3); | |
this.state = 677; | |
this.groupingElement(); | |
} | |
this.state = 682; | |
this._errHandler.sync(this); | |
_alt = this._interp.adaptivePredict(this._input,77,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 GroupingElementContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_groupingElement; | |
return this; | |
} | |
GroupingElementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
GroupingElementContext.prototype.constructor = GroupingElementContext; | |
GroupingElementContext.prototype.copyFrom = function(ctx) { | |
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); | |
}; | |
function MultipleGroupingSetsContext(parser, ctx) { | |
GroupingElementContext.call(this, parser); | |
GroupingElementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
MultipleGroupingSetsContext.prototype = Object.create(GroupingElementContext.prototype); | |
MultipleGroupingSetsContext.prototype.constructor = MultipleGroupingSetsContext; | |
SqlBaseParser.MultipleGroupingSetsContext = MultipleGroupingSetsContext; | |
MultipleGroupingSetsContext.prototype.GROUPING = function() { | |
return this.getToken(SqlBaseParser.GROUPING, 0); | |
}; | |
MultipleGroupingSetsContext.prototype.SETS = function() { | |
return this.getToken(SqlBaseParser.SETS, 0); | |
}; | |
MultipleGroupingSetsContext.prototype.groupingSet = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(GroupingSetContext); | |
} else { | |
return this.getTypedRuleContext(GroupingSetContext,i); | |
} | |
}; | |
MultipleGroupingSetsContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterMultipleGroupingSets(this); | |
} | |
}; | |
MultipleGroupingSetsContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitMultipleGroupingSets(this); | |
} | |
}; | |
function SingleGroupingSetContext(parser, ctx) { | |
GroupingElementContext.call(this, parser); | |
GroupingElementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
SingleGroupingSetContext.prototype = Object.create(GroupingElementContext.prototype); | |
SingleGroupingSetContext.prototype.constructor = SingleGroupingSetContext; | |
SqlBaseParser.SingleGroupingSetContext = SingleGroupingSetContext; | |
SingleGroupingSetContext.prototype.groupingSet = function() { | |
return this.getTypedRuleContext(GroupingSetContext,0); | |
}; | |
SingleGroupingSetContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSingleGroupingSet(this); | |
} | |
}; | |
SingleGroupingSetContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSingleGroupingSet(this); | |
} | |
}; | |
function CubeContext(parser, ctx) { | |
GroupingElementContext.call(this, parser); | |
GroupingElementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
CubeContext.prototype = Object.create(GroupingElementContext.prototype); | |
CubeContext.prototype.constructor = CubeContext; | |
SqlBaseParser.CubeContext = CubeContext; | |
CubeContext.prototype.CUBE = function() { | |
return this.getToken(SqlBaseParser.CUBE, 0); | |
}; | |
CubeContext.prototype.expression = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(ExpressionContext); | |
} else { | |
return this.getTypedRuleContext(ExpressionContext,i); | |
} | |
}; | |
CubeContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterCube(this); | |
} | |
}; | |
CubeContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitCube(this); | |
} | |
}; | |
function RollupContext(parser, ctx) { | |
GroupingElementContext.call(this, parser); | |
GroupingElementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
RollupContext.prototype = Object.create(GroupingElementContext.prototype); | |
RollupContext.prototype.constructor = RollupContext; | |
SqlBaseParser.RollupContext = RollupContext; | |
RollupContext.prototype.ROLLUP = function() { | |
return this.getToken(SqlBaseParser.ROLLUP, 0); | |
}; | |
RollupContext.prototype.expression = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(ExpressionContext); | |
} else { | |
return this.getTypedRuleContext(ExpressionContext,i); | |
} | |
}; | |
RollupContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterRollup(this); | |
} | |
}; | |
RollupContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitRollup(this); | |
} | |
}; | |
SqlBaseParser.GroupingElementContext = GroupingElementContext; | |
SqlBaseParser.prototype.groupingElement = function() { | |
var localctx = new GroupingElementContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 34, SqlBaseParser.RULE_groupingElement); | |
var _la = 0; // Token type | |
try { | |
this.state = 723; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,83,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new SingleGroupingSetContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 683; | |
this.groupingSet(); | |
break; | |
case 2: | |
localctx = new RollupContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 684; | |
this.match(SqlBaseParser.ROLLUP); | |
this.state = 685; | |
this.match(SqlBaseParser.T__1); | |
this.state = 694; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SqlBaseParser.T__1) | (1 << SqlBaseParser.T__4) | (1 << SqlBaseParser.ADD) | (1 << SqlBaseParser.ALL) | (1 << SqlBaseParser.ANALYZE) | (1 << SqlBaseParser.ANY) | (1 << SqlBaseParser.ARRAY) | (1 << SqlBaseParser.ASC) | (1 << SqlBaseParser.AT) | (1 << SqlBaseParser.BERNOULLI) | (1 << SqlBaseParser.CALL) | (1 << SqlBaseParser.CASCADE) | (1 << SqlBaseParser.CASE) | (1 << SqlBaseParser.CAST) | (1 << SqlBaseParser.CATALOGS) | (1 << SqlBaseParser.COLUMN) | (1 << SqlBaseParser.COLUMNS) | (1 << SqlBaseParser.COMMENT) | (1 << SqlBaseParser.COMMIT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlBaseParser.COMMITTED - 32)) | (1 << (SqlBaseParser.CURRENT - 32)) | (1 << (SqlBaseParser.CURRENT_DATE - 32)) | (1 << (SqlBaseParser.CURRENT_PATH - 32)) | (1 << (SqlBaseParser.CURRENT_TIME - 32)) | (1 << (SqlBaseParser.CURRENT_TIMESTAMP - 32)) | (1 << (SqlBaseParser.CURRENT_USER - 32)) | (1 << (SqlBaseParser.DATA - 32)) | (1 << (SqlBaseParser.DATE - 32)) | (1 << (SqlBaseParser.DAY - 32)) | (1 << (SqlBaseParser.DESC - 32)) | (1 << (SqlBaseParser.DISTRIBUTED - 32)) | (1 << (SqlBaseParser.EXCLUDING - 32)) | (1 << (SqlBaseParser.EXISTS - 32)) | (1 << (SqlBaseParser.EXPLAIN - 32)) | (1 << (SqlBaseParser.EXTRACT - 32)) | (1 << (SqlBaseParser.FALSE - 32)) | (1 << (SqlBaseParser.FILTER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (SqlBaseParser.FIRST - 64)) | (1 << (SqlBaseParser.FOLLOWING - 64)) | (1 << (SqlBaseParser.FORMAT - 64)) | (1 << (SqlBaseParser.FUNCTIONS - 64)) | (1 << (SqlBaseParser.GRANT - 64)) | (1 << (SqlBaseParser.GRANTS - 64)) | (1 << (SqlBaseParser.GRAPHVIZ - 64)) | (1 << (SqlBaseParser.GROUPING - 64)) | (1 << (SqlBaseParser.HOUR - 64)) | (1 << (SqlBaseParser.IF - 64)) | (1 << (SqlBaseParser.INCLUDING - 64)) | (1 << (SqlBaseParser.INPUT - 64)) | (1 << (SqlBaseParser.INTERVAL - 64)) | (1 << (SqlBaseParser.IO - 64)) | (1 << (SqlBaseParser.ISOLATION - 64)) | (1 << (SqlBaseParser.JSON - 64)) | (1 << (SqlBaseParser.LAST - 64)) | (1 << (SqlBaseParser.LATERAL - 64)) | (1 << (SqlBaseParser.LEVEL - 64)))) !== 0) || ((((_la - 97)) & ~0x1f) == 0 && ((1 << (_la - 97)) & ((1 << (SqlBaseParser.LIMIT - 97)) | (1 << (SqlBaseParser.LOCALTIME - 97)) | (1 << (SqlBaseParser.LOCALTIMESTAMP - 97)) | (1 << (SqlBaseParser.LOGICAL - 97)) | (1 << (SqlBaseParser.MAP - 97)) | (1 << (SqlBaseParser.MINUTE - 97)) | (1 << (SqlBaseParser.MONTH - 97)) | (1 << (SqlBaseParser.NFC - 97)) | (1 << (SqlBaseParser.NFD - 97)) | (1 << (SqlBaseParser.NFKC - 97)) | (1 << (SqlBaseParser.NFKD - 97)) | (1 << (SqlBaseParser.NO - 97)) | (1 << (SqlBaseParser.NORMALIZE - 97)) | (1 << (SqlBaseParser.NOT - 97)) | (1 << (SqlBaseParser.NULL - 97)) | (1 << (SqlBaseParser.NULLIF - 97)) | (1 << (SqlBaseParser.NULLS - 97)) | (1 << (SqlBaseParser.ONLY - 97)) | (1 << (SqlBaseParser.OPTION - 97)) | (1 << (SqlBaseParser.ORDINALITY - 97)) | (1 << (SqlBaseParser.OUTPUT - 97)) | (1 << (SqlBaseParser.OVER - 97)) | (1 << (SqlBaseParser.PARTITION - 97)) | (1 << (SqlBaseParser.PARTITIONS - 97)) | (1 << (SqlBaseParser.PATH - 97)) | (1 << (SqlBaseParser.POSITION - 97)) | (1 << (SqlBaseParser.PRECEDING - 97)))) !== 0) || ((((_la - 130)) & ~0x1f) == 0 && ((1 << (_la - 130)) & ((1 << (SqlBaseParser.PRIVILEGES - 130)) | (1 << (SqlBaseParser.PROPERTIES - 130)) | (1 << (SqlBaseParser.PUBLIC - 130)) | (1 << (SqlBaseParser.RANGE - 130)) | (1 << (SqlBaseParser.READ - 130)) | (1 << (SqlBaseParser.RENAME - 130)) | (1 << (SqlBaseParser.REPEATABLE - 130)) | (1 << (SqlBaseParser.REPLACE - 130)) | (1 << (SqlBaseParser.RESET - 130)) | (1 << (SqlBaseParser.RESTRICT - 130)) | (1 << (SqlBaseParser.REVOKE - 130)) | (1 << (SqlBaseParser.ROLLBACK - 130)) | (1 << (SqlBaseParser.ROW - 130)) | (1 << (SqlBaseParser.ROWS - 130)) | (1 << (SqlBaseParser.SCHEMA - 130)) | (1 << (SqlBaseParser.SCHEMAS - 130)) | (1 << (SqlBaseParser.SECOND - 130)) | (1 << (SqlBaseParser.SERIALIZABLE - 130)) | (1 << (SqlBaseParser.SESSION - 130)) | (1 << (SqlBaseParser.SET - 130)) | (1 << (SqlBaseParser.SETS - 130)) | (1 << (SqlBaseParser.SHOW - 130)) | (1 << (SqlBaseParser.SOME - 130)) | (1 << (SqlBaseParser.START - 130)) | (1 << (SqlBaseParser.STATS - 130)) | (1 << (SqlBaseParser.SUBSTRING - 130)) | (1 << (SqlBaseParser.SYSTEM - 130)))) !== 0) || ((((_la - 162)) & ~0x1f) == 0 && ((1 << (_la - 162)) & ((1 << (SqlBaseParser.TABLES - 162)) | (1 << (SqlBaseParser.TABLESAMPLE - 162)) | (1 << (SqlBaseParser.TEXT - 162)) | (1 << (SqlBaseParser.TIME - 162)) | (1 << (SqlBaseParser.TIMESTAMP - 162)) | (1 << (SqlBaseParser.TO - 162)) | (1 << (SqlBaseParser.TRANSACTION - 162)) | (1 << (SqlBaseParser.TRUE - 162)) | (1 << (SqlBaseParser.TRY_CAST - 162)) | (1 << (SqlBaseParser.TYPE - 162)) | (1 << (SqlBaseParser.UNBOUNDED - 162)) | (1 << (SqlBaseParser.UNCOMMITTED - 162)) | (1 << (SqlBaseParser.USE - 162)) | (1 << (SqlBaseParser.VALIDATE - 162)) | (1 << (SqlBaseParser.VERBOSE - 162)) | (1 << (SqlBaseParser.VIEW - 162)) | (1 << (SqlBaseParser.WORK - 162)) | (1 << (SqlBaseParser.WRITE - 162)) | (1 << (SqlBaseParser.YEAR - 162)) | (1 << (SqlBaseParser.ZONE - 162)))) !== 0) || ((((_la - 197)) & ~0x1f) == 0 && ((1 << (_la - 197)) & ((1 << (SqlBaseParser.PLUS - 197)) | (1 << (SqlBaseParser.MINUS - 197)) | (1 << (SqlBaseParser.STRING - 197)) | (1 << (SqlBaseParser.UNICODE_STRING - 197)) | (1 << (SqlBaseParser.BINARY_LITERAL - 197)) | (1 << (SqlBaseParser.INTEGER_VALUE - 197)) | (1 << (SqlBaseParser.DECIMAL_VALUE - 197)) | (1 << (SqlBaseParser.DOUBLE_VALUE - 197)) | (1 << (SqlBaseParser.IDENTIFIER - 197)) | (1 << (SqlBaseParser.DIGIT_IDENTIFIER - 197)) | (1 << (SqlBaseParser.QUOTED_IDENTIFIER - 197)) | (1 << (SqlBaseParser.BACKQUOTED_IDENTIFIER - 197)) | (1 << (SqlBaseParser.DOUBLE_PRECISION - 197)))) !== 0)) { | |
this.state = 686; | |
this.expression(); | |
this.state = 691; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 687; | |
this.match(SqlBaseParser.T__3); | |
this.state = 688; | |
this.expression(); | |
this.state = 693; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
} | |
this.state = 696; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 3: | |
localctx = new CubeContext(this, localctx); | |
this.enterOuterAlt(localctx, 3); | |
this.state = 697; | |
this.match(SqlBaseParser.CUBE); | |
this.state = 698; | |
this.match(SqlBaseParser.T__1); | |
this.state = 707; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SqlBaseParser.T__1) | (1 << SqlBaseParser.T__4) | (1 << SqlBaseParser.ADD) | (1 << SqlBaseParser.ALL) | (1 << SqlBaseParser.ANALYZE) | (1 << SqlBaseParser.ANY) | (1 << SqlBaseParser.ARRAY) | (1 << SqlBaseParser.ASC) | (1 << SqlBaseParser.AT) | (1 << SqlBaseParser.BERNOULLI) | (1 << SqlBaseParser.CALL) | (1 << SqlBaseParser.CASCADE) | (1 << SqlBaseParser.CASE) | (1 << SqlBaseParser.CAST) | (1 << SqlBaseParser.CATALOGS) | (1 << SqlBaseParser.COLUMN) | (1 << SqlBaseParser.COLUMNS) | (1 << SqlBaseParser.COMMENT) | (1 << SqlBaseParser.COMMIT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlBaseParser.COMMITTED - 32)) | (1 << (SqlBaseParser.CURRENT - 32)) | (1 << (SqlBaseParser.CURRENT_DATE - 32)) | (1 << (SqlBaseParser.CURRENT_PATH - 32)) | (1 << (SqlBaseParser.CURRENT_TIME - 32)) | (1 << (SqlBaseParser.CURRENT_TIMESTAMP - 32)) | (1 << (SqlBaseParser.CURRENT_USER - 32)) | (1 << (SqlBaseParser.DATA - 32)) | (1 << (SqlBaseParser.DATE - 32)) | (1 << (SqlBaseParser.DAY - 32)) | (1 << (SqlBaseParser.DESC - 32)) | (1 << (SqlBaseParser.DISTRIBUTED - 32)) | (1 << (SqlBaseParser.EXCLUDING - 32)) | (1 << (SqlBaseParser.EXISTS - 32)) | (1 << (SqlBaseParser.EXPLAIN - 32)) | (1 << (SqlBaseParser.EXTRACT - 32)) | (1 << (SqlBaseParser.FALSE - 32)) | (1 << (SqlBaseParser.FILTER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (SqlBaseParser.FIRST - 64)) | (1 << (SqlBaseParser.FOLLOWING - 64)) | (1 << (SqlBaseParser.FORMAT - 64)) | (1 << (SqlBaseParser.FUNCTIONS - 64)) | (1 << (SqlBaseParser.GRANT - 64)) | (1 << (SqlBaseParser.GRANTS - 64)) | (1 << (SqlBaseParser.GRAPHVIZ - 64)) | (1 << (SqlBaseParser.GROUPING - 64)) | (1 << (SqlBaseParser.HOUR - 64)) | (1 << (SqlBaseParser.IF - 64)) | (1 << (SqlBaseParser.INCLUDING - 64)) | (1 << (SqlBaseParser.INPUT - 64)) | (1 << (SqlBaseParser.INTERVAL - 64)) | (1 << (SqlBaseParser.IO - 64)) | (1 << (SqlBaseParser.ISOLATION - 64)) | (1 << (SqlBaseParser.JSON - 64)) | (1 << (SqlBaseParser.LAST - 64)) | (1 << (SqlBaseParser.LATERAL - 64)) | (1 << (SqlBaseParser.LEVEL - 64)))) !== 0) || ((((_la - 97)) & ~0x1f) == 0 && ((1 << (_la - 97)) & ((1 << (SqlBaseParser.LIMIT - 97)) | (1 << (SqlBaseParser.LOCALTIME - 97)) | (1 << (SqlBaseParser.LOCALTIMESTAMP - 97)) | (1 << (SqlBaseParser.LOGICAL - 97)) | (1 << (SqlBaseParser.MAP - 97)) | (1 << (SqlBaseParser.MINUTE - 97)) | (1 << (SqlBaseParser.MONTH - 97)) | (1 << (SqlBaseParser.NFC - 97)) | (1 << (SqlBaseParser.NFD - 97)) | (1 << (SqlBaseParser.NFKC - 97)) | (1 << (SqlBaseParser.NFKD - 97)) | (1 << (SqlBaseParser.NO - 97)) | (1 << (SqlBaseParser.NORMALIZE - 97)) | (1 << (SqlBaseParser.NOT - 97)) | (1 << (SqlBaseParser.NULL - 97)) | (1 << (SqlBaseParser.NULLIF - 97)) | (1 << (SqlBaseParser.NULLS - 97)) | (1 << (SqlBaseParser.ONLY - 97)) | (1 << (SqlBaseParser.OPTION - 97)) | (1 << (SqlBaseParser.ORDINALITY - 97)) | (1 << (SqlBaseParser.OUTPUT - 97)) | (1 << (SqlBaseParser.OVER - 97)) | (1 << (SqlBaseParser.PARTITION - 97)) | (1 << (SqlBaseParser.PARTITIONS - 97)) | (1 << (SqlBaseParser.PATH - 97)) | (1 << (SqlBaseParser.POSITION - 97)) | (1 << (SqlBaseParser.PRECEDING - 97)))) !== 0) || ((((_la - 130)) & ~0x1f) == 0 && ((1 << (_la - 130)) & ((1 << (SqlBaseParser.PRIVILEGES - 130)) | (1 << (SqlBaseParser.PROPERTIES - 130)) | (1 << (SqlBaseParser.PUBLIC - 130)) | (1 << (SqlBaseParser.RANGE - 130)) | (1 << (SqlBaseParser.READ - 130)) | (1 << (SqlBaseParser.RENAME - 130)) | (1 << (SqlBaseParser.REPEATABLE - 130)) | (1 << (SqlBaseParser.REPLACE - 130)) | (1 << (SqlBaseParser.RESET - 130)) | (1 << (SqlBaseParser.RESTRICT - 130)) | (1 << (SqlBaseParser.REVOKE - 130)) | (1 << (SqlBaseParser.ROLLBACK - 130)) | (1 << (SqlBaseParser.ROW - 130)) | (1 << (SqlBaseParser.ROWS - 130)) | (1 << (SqlBaseParser.SCHEMA - 130)) | (1 << (SqlBaseParser.SCHEMAS - 130)) | (1 << (SqlBaseParser.SECOND - 130)) | (1 << (SqlBaseParser.SERIALIZABLE - 130)) | (1 << (SqlBaseParser.SESSION - 130)) | (1 << (SqlBaseParser.SET - 130)) | (1 << (SqlBaseParser.SETS - 130)) | (1 << (SqlBaseParser.SHOW - 130)) | (1 << (SqlBaseParser.SOME - 130)) | (1 << (SqlBaseParser.START - 130)) | (1 << (SqlBaseParser.STATS - 130)) | (1 << (SqlBaseParser.SUBSTRING - 130)) | (1 << (SqlBaseParser.SYSTEM - 130)))) !== 0) || ((((_la - 162)) & ~0x1f) == 0 && ((1 << (_la - 162)) & ((1 << (SqlBaseParser.TABLES - 162)) | (1 << (SqlBaseParser.TABLESAMPLE - 162)) | (1 << (SqlBaseParser.TEXT - 162)) | (1 << (SqlBaseParser.TIME - 162)) | (1 << (SqlBaseParser.TIMESTAMP - 162)) | (1 << (SqlBaseParser.TO - 162)) | (1 << (SqlBaseParser.TRANSACTION - 162)) | (1 << (SqlBaseParser.TRUE - 162)) | (1 << (SqlBaseParser.TRY_CAST - 162)) | (1 << (SqlBaseParser.TYPE - 162)) | (1 << (SqlBaseParser.UNBOUNDED - 162)) | (1 << (SqlBaseParser.UNCOMMITTED - 162)) | (1 << (SqlBaseParser.USE - 162)) | (1 << (SqlBaseParser.VALIDATE - 162)) | (1 << (SqlBaseParser.VERBOSE - 162)) | (1 << (SqlBaseParser.VIEW - 162)) | (1 << (SqlBaseParser.WORK - 162)) | (1 << (SqlBaseParser.WRITE - 162)) | (1 << (SqlBaseParser.YEAR - 162)) | (1 << (SqlBaseParser.ZONE - 162)))) !== 0) || ((((_la - 197)) & ~0x1f) == 0 && ((1 << (_la - 197)) & ((1 << (SqlBaseParser.PLUS - 197)) | (1 << (SqlBaseParser.MINUS - 197)) | (1 << (SqlBaseParser.STRING - 197)) | (1 << (SqlBaseParser.UNICODE_STRING - 197)) | (1 << (SqlBaseParser.BINARY_LITERAL - 197)) | (1 << (SqlBaseParser.INTEGER_VALUE - 197)) | (1 << (SqlBaseParser.DECIMAL_VALUE - 197)) | (1 << (SqlBaseParser.DOUBLE_VALUE - 197)) | (1 << (SqlBaseParser.IDENTIFIER - 197)) | (1 << (SqlBaseParser.DIGIT_IDENTIFIER - 197)) | (1 << (SqlBaseParser.QUOTED_IDENTIFIER - 197)) | (1 << (SqlBaseParser.BACKQUOTED_IDENTIFIER - 197)) | (1 << (SqlBaseParser.DOUBLE_PRECISION - 197)))) !== 0)) { | |
this.state = 699; | |
this.expression(); | |
this.state = 704; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 700; | |
this.match(SqlBaseParser.T__3); | |
this.state = 701; | |
this.expression(); | |
this.state = 706; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
} | |
this.state = 709; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 4: | |
localctx = new MultipleGroupingSetsContext(this, localctx); | |
this.enterOuterAlt(localctx, 4); | |
this.state = 710; | |
this.match(SqlBaseParser.GROUPING); | |
this.state = 711; | |
this.match(SqlBaseParser.SETS); | |
this.state = 712; | |
this.match(SqlBaseParser.T__1); | |
this.state = 713; | |
this.groupingSet(); | |
this.state = 718; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 714; | |
this.match(SqlBaseParser.T__3); | |
this.state = 715; | |
this.groupingSet(); | |
this.state = 720; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
this.state = 721; | |
this.match(SqlBaseParser.T__2); | |
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 = SqlBaseParser.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 SqlBaseListener ) { | |
listener.enterGroupingSet(this); | |
} | |
}; | |
GroupingSetContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitGroupingSet(this); | |
} | |
}; | |
SqlBaseParser.GroupingSetContext = GroupingSetContext; | |
SqlBaseParser.prototype.groupingSet = function() { | |
var localctx = new GroupingSetContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 36, SqlBaseParser.RULE_groupingSet); | |
var _la = 0; // Token type | |
try { | |
this.state = 738; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,86,this._ctx); | |
switch(la_) { | |
case 1: | |
this.enterOuterAlt(localctx, 1); | |
this.state = 725; | |
this.match(SqlBaseParser.T__1); | |
this.state = 734; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SqlBaseParser.T__1) | (1 << SqlBaseParser.T__4) | (1 << SqlBaseParser.ADD) | (1 << SqlBaseParser.ALL) | (1 << SqlBaseParser.ANALYZE) | (1 << SqlBaseParser.ANY) | (1 << SqlBaseParser.ARRAY) | (1 << SqlBaseParser.ASC) | (1 << SqlBaseParser.AT) | (1 << SqlBaseParser.BERNOULLI) | (1 << SqlBaseParser.CALL) | (1 << SqlBaseParser.CASCADE) | (1 << SqlBaseParser.CASE) | (1 << SqlBaseParser.CAST) | (1 << SqlBaseParser.CATALOGS) | (1 << SqlBaseParser.COLUMN) | (1 << SqlBaseParser.COLUMNS) | (1 << SqlBaseParser.COMMENT) | (1 << SqlBaseParser.COMMIT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlBaseParser.COMMITTED - 32)) | (1 << (SqlBaseParser.CURRENT - 32)) | (1 << (SqlBaseParser.CURRENT_DATE - 32)) | (1 << (SqlBaseParser.CURRENT_PATH - 32)) | (1 << (SqlBaseParser.CURRENT_TIME - 32)) | (1 << (SqlBaseParser.CURRENT_TIMESTAMP - 32)) | (1 << (SqlBaseParser.CURRENT_USER - 32)) | (1 << (SqlBaseParser.DATA - 32)) | (1 << (SqlBaseParser.DATE - 32)) | (1 << (SqlBaseParser.DAY - 32)) | (1 << (SqlBaseParser.DESC - 32)) | (1 << (SqlBaseParser.DISTRIBUTED - 32)) | (1 << (SqlBaseParser.EXCLUDING - 32)) | (1 << (SqlBaseParser.EXISTS - 32)) | (1 << (SqlBaseParser.EXPLAIN - 32)) | (1 << (SqlBaseParser.EXTRACT - 32)) | (1 << (SqlBaseParser.FALSE - 32)) | (1 << (SqlBaseParser.FILTER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (SqlBaseParser.FIRST - 64)) | (1 << (SqlBaseParser.FOLLOWING - 64)) | (1 << (SqlBaseParser.FORMAT - 64)) | (1 << (SqlBaseParser.FUNCTIONS - 64)) | (1 << (SqlBaseParser.GRANT - 64)) | (1 << (SqlBaseParser.GRANTS - 64)) | (1 << (SqlBaseParser.GRAPHVIZ - 64)) | (1 << (SqlBaseParser.GROUPING - 64)) | (1 << (SqlBaseParser.HOUR - 64)) | (1 << (SqlBaseParser.IF - 64)) | (1 << (SqlBaseParser.INCLUDING - 64)) | (1 << (SqlBaseParser.INPUT - 64)) | (1 << (SqlBaseParser.INTERVAL - 64)) | (1 << (SqlBaseParser.IO - 64)) | (1 << (SqlBaseParser.ISOLATION - 64)) | (1 << (SqlBaseParser.JSON - 64)) | (1 << (SqlBaseParser.LAST - 64)) | (1 << (SqlBaseParser.LATERAL - 64)) | (1 << (SqlBaseParser.LEVEL - 64)))) !== 0) || ((((_la - 97)) & ~0x1f) == 0 && ((1 << (_la - 97)) & ((1 << (SqlBaseParser.LIMIT - 97)) | (1 << (SqlBaseParser.LOCALTIME - 97)) | (1 << (SqlBaseParser.LOCALTIMESTAMP - 97)) | (1 << (SqlBaseParser.LOGICAL - 97)) | (1 << (SqlBaseParser.MAP - 97)) | (1 << (SqlBaseParser.MINUTE - 97)) | (1 << (SqlBaseParser.MONTH - 97)) | (1 << (SqlBaseParser.NFC - 97)) | (1 << (SqlBaseParser.NFD - 97)) | (1 << (SqlBaseParser.NFKC - 97)) | (1 << (SqlBaseParser.NFKD - 97)) | (1 << (SqlBaseParser.NO - 97)) | (1 << (SqlBaseParser.NORMALIZE - 97)) | (1 << (SqlBaseParser.NOT - 97)) | (1 << (SqlBaseParser.NULL - 97)) | (1 << (SqlBaseParser.NULLIF - 97)) | (1 << (SqlBaseParser.NULLS - 97)) | (1 << (SqlBaseParser.ONLY - 97)) | (1 << (SqlBaseParser.OPTION - 97)) | (1 << (SqlBaseParser.ORDINALITY - 97)) | (1 << (SqlBaseParser.OUTPUT - 97)) | (1 << (SqlBaseParser.OVER - 97)) | (1 << (SqlBaseParser.PARTITION - 97)) | (1 << (SqlBaseParser.PARTITIONS - 97)) | (1 << (SqlBaseParser.PATH - 97)) | (1 << (SqlBaseParser.POSITION - 97)) | (1 << (SqlBaseParser.PRECEDING - 97)))) !== 0) || ((((_la - 130)) & ~0x1f) == 0 && ((1 << (_la - 130)) & ((1 << (SqlBaseParser.PRIVILEGES - 130)) | (1 << (SqlBaseParser.PROPERTIES - 130)) | (1 << (SqlBaseParser.PUBLIC - 130)) | (1 << (SqlBaseParser.RANGE - 130)) | (1 << (SqlBaseParser.READ - 130)) | (1 << (SqlBaseParser.RENAME - 130)) | (1 << (SqlBaseParser.REPEATABLE - 130)) | (1 << (SqlBaseParser.REPLACE - 130)) | (1 << (SqlBaseParser.RESET - 130)) | (1 << (SqlBaseParser.RESTRICT - 130)) | (1 << (SqlBaseParser.REVOKE - 130)) | (1 << (SqlBaseParser.ROLLBACK - 130)) | (1 << (SqlBaseParser.ROW - 130)) | (1 << (SqlBaseParser.ROWS - 130)) | (1 << (SqlBaseParser.SCHEMA - 130)) | (1 << (SqlBaseParser.SCHEMAS - 130)) | (1 << (SqlBaseParser.SECOND - 130)) | (1 << (SqlBaseParser.SERIALIZABLE - 130)) | (1 << (SqlBaseParser.SESSION - 130)) | (1 << (SqlBaseParser.SET - 130)) | (1 << (SqlBaseParser.SETS - 130)) | (1 << (SqlBaseParser.SHOW - 130)) | (1 << (SqlBaseParser.SOME - 130)) | (1 << (SqlBaseParser.START - 130)) | (1 << (SqlBaseParser.STATS - 130)) | (1 << (SqlBaseParser.SUBSTRING - 130)) | (1 << (SqlBaseParser.SYSTEM - 130)))) !== 0) || ((((_la - 162)) & ~0x1f) == 0 && ((1 << (_la - 162)) & ((1 << (SqlBaseParser.TABLES - 162)) | (1 << (SqlBaseParser.TABLESAMPLE - 162)) | (1 << (SqlBaseParser.TEXT - 162)) | (1 << (SqlBaseParser.TIME - 162)) | (1 << (SqlBaseParser.TIMESTAMP - 162)) | (1 << (SqlBaseParser.TO - 162)) | (1 << (SqlBaseParser.TRANSACTION - 162)) | (1 << (SqlBaseParser.TRUE - 162)) | (1 << (SqlBaseParser.TRY_CAST - 162)) | (1 << (SqlBaseParser.TYPE - 162)) | (1 << (SqlBaseParser.UNBOUNDED - 162)) | (1 << (SqlBaseParser.UNCOMMITTED - 162)) | (1 << (SqlBaseParser.USE - 162)) | (1 << (SqlBaseParser.VALIDATE - 162)) | (1 << (SqlBaseParser.VERBOSE - 162)) | (1 << (SqlBaseParser.VIEW - 162)) | (1 << (SqlBaseParser.WORK - 162)) | (1 << (SqlBaseParser.WRITE - 162)) | (1 << (SqlBaseParser.YEAR - 162)) | (1 << (SqlBaseParser.ZONE - 162)))) !== 0) || ((((_la - 197)) & ~0x1f) == 0 && ((1 << (_la - 197)) & ((1 << (SqlBaseParser.PLUS - 197)) | (1 << (SqlBaseParser.MINUS - 197)) | (1 << (SqlBaseParser.STRING - 197)) | (1 << (SqlBaseParser.UNICODE_STRING - 197)) | (1 << (SqlBaseParser.BINARY_LITERAL - 197)) | (1 << (SqlBaseParser.INTEGER_VALUE - 197)) | (1 << (SqlBaseParser.DECIMAL_VALUE - 197)) | (1 << (SqlBaseParser.DOUBLE_VALUE - 197)) | (1 << (SqlBaseParser.IDENTIFIER - 197)) | (1 << (SqlBaseParser.DIGIT_IDENTIFIER - 197)) | (1 << (SqlBaseParser.QUOTED_IDENTIFIER - 197)) | (1 << (SqlBaseParser.BACKQUOTED_IDENTIFIER - 197)) | (1 << (SqlBaseParser.DOUBLE_PRECISION - 197)))) !== 0)) { | |
this.state = 726; | |
this.expression(); | |
this.state = 731; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 727; | |
this.match(SqlBaseParser.T__3); | |
this.state = 728; | |
this.expression(); | |
this.state = 733; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
} | |
this.state = 736; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 2: | |
this.enterOuterAlt(localctx, 2); | |
this.state = 737; | |
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 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 = SqlBaseParser.RULE_namedQuery; | |
this.name = null; // IdentifierContext | |
return this; | |
} | |
NamedQueryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
NamedQueryContext.prototype.constructor = NamedQueryContext; | |
NamedQueryContext.prototype.AS = function() { | |
return this.getToken(SqlBaseParser.AS, 0); | |
}; | |
NamedQueryContext.prototype.query = function() { | |
return this.getTypedRuleContext(QueryContext,0); | |
}; | |
NamedQueryContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
NamedQueryContext.prototype.columnAliases = function() { | |
return this.getTypedRuleContext(ColumnAliasesContext,0); | |
}; | |
NamedQueryContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterNamedQuery(this); | |
} | |
}; | |
NamedQueryContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitNamedQuery(this); | |
} | |
}; | |
SqlBaseParser.NamedQueryContext = NamedQueryContext; | |
SqlBaseParser.prototype.namedQuery = function() { | |
var localctx = new NamedQueryContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 38, SqlBaseParser.RULE_namedQuery); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 740; | |
localctx.name = this.identifier(); | |
this.state = 742; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.T__1) { | |
this.state = 741; | |
this.columnAliases(); | |
} | |
this.state = 744; | |
this.match(SqlBaseParser.AS); | |
this.state = 745; | |
this.match(SqlBaseParser.T__1); | |
this.state = 746; | |
this.query(); | |
this.state = 747; | |
this.match(SqlBaseParser.T__2); | |
} catch (re) { | |
if(re instanceof antlr4.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 = SqlBaseParser.RULE_setQuantifier; | |
return this; | |
} | |
SetQuantifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
SetQuantifierContext.prototype.constructor = SetQuantifierContext; | |
SetQuantifierContext.prototype.DISTINCT = function() { | |
return this.getToken(SqlBaseParser.DISTINCT, 0); | |
}; | |
SetQuantifierContext.prototype.ALL = function() { | |
return this.getToken(SqlBaseParser.ALL, 0); | |
}; | |
SetQuantifierContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSetQuantifier(this); | |
} | |
}; | |
SetQuantifierContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSetQuantifier(this); | |
} | |
}; | |
SqlBaseParser.SetQuantifierContext = SetQuantifierContext; | |
SqlBaseParser.prototype.setQuantifier = function() { | |
var localctx = new SetQuantifierContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 40, SqlBaseParser.RULE_setQuantifier); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 749; | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.ALL || _la===SqlBaseParser.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 SelectItemContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_selectItem; | |
return this; | |
} | |
SelectItemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
SelectItemContext.prototype.constructor = SelectItemContext; | |
SelectItemContext.prototype.copyFrom = function(ctx) { | |
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); | |
}; | |
function SelectAllContext(parser, ctx) { | |
SelectItemContext.call(this, parser); | |
SelectItemContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
SelectAllContext.prototype = Object.create(SelectItemContext.prototype); | |
SelectAllContext.prototype.constructor = SelectAllContext; | |
SqlBaseParser.SelectAllContext = SelectAllContext; | |
SelectAllContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
SelectAllContext.prototype.ASTERISK = function() { | |
return this.getToken(SqlBaseParser.ASTERISK, 0); | |
}; | |
SelectAllContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSelectAll(this); | |
} | |
}; | |
SelectAllContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSelectAll(this); | |
} | |
}; | |
function SelectSingleContext(parser, ctx) { | |
SelectItemContext.call(this, parser); | |
SelectItemContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
SelectSingleContext.prototype = Object.create(SelectItemContext.prototype); | |
SelectSingleContext.prototype.constructor = SelectSingleContext; | |
SqlBaseParser.SelectSingleContext = SelectSingleContext; | |
SelectSingleContext.prototype.expression = function() { | |
return this.getTypedRuleContext(ExpressionContext,0); | |
}; | |
SelectSingleContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
SelectSingleContext.prototype.AS = function() { | |
return this.getToken(SqlBaseParser.AS, 0); | |
}; | |
SelectSingleContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSelectSingle(this); | |
} | |
}; | |
SelectSingleContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSelectSingle(this); | |
} | |
}; | |
SqlBaseParser.SelectItemContext = SelectItemContext; | |
SqlBaseParser.prototype.selectItem = function() { | |
var localctx = new SelectItemContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 42, SqlBaseParser.RULE_selectItem); | |
var _la = 0; // Token type | |
try { | |
this.state = 763; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,90,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new SelectSingleContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 751; | |
this.expression(); | |
this.state = 756; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,89,this._ctx); | |
if(la_===1) { | |
this.state = 753; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.AS) { | |
this.state = 752; | |
this.match(SqlBaseParser.AS); | |
} | |
this.state = 755; | |
this.identifier(); | |
} | |
break; | |
case 2: | |
localctx = new SelectAllContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 758; | |
this.qualifiedName(); | |
this.state = 759; | |
this.match(SqlBaseParser.T__0); | |
this.state = 760; | |
this.match(SqlBaseParser.ASTERISK); | |
break; | |
case 3: | |
localctx = new SelectAllContext(this, localctx); | |
this.enterOuterAlt(localctx, 3); | |
this.state = 762; | |
this.match(SqlBaseParser.ASTERISK); | |
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 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 = SqlBaseParser.RULE_relation; | |
return this; | |
} | |
RelationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
RelationContext.prototype.constructor = RelationContext; | |
RelationContext.prototype.copyFrom = function(ctx) { | |
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); | |
}; | |
function RelationDefaultContext(parser, ctx) { | |
RelationContext.call(this, parser); | |
RelationContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
RelationDefaultContext.prototype = Object.create(RelationContext.prototype); | |
RelationDefaultContext.prototype.constructor = RelationDefaultContext; | |
SqlBaseParser.RelationDefaultContext = RelationDefaultContext; | |
RelationDefaultContext.prototype.sampledRelation = function() { | |
return this.getTypedRuleContext(SampledRelationContext,0); | |
}; | |
RelationDefaultContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterRelationDefault(this); | |
} | |
}; | |
RelationDefaultContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitRelationDefault(this); | |
} | |
}; | |
function JoinRelationContext(parser, ctx) { | |
RelationContext.call(this, parser); | |
this.left = null; // RelationContext; | |
this.right = null; // SampledRelationContext; | |
this.rightRelation = null; // RelationContext; | |
RelationContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
JoinRelationContext.prototype = Object.create(RelationContext.prototype); | |
JoinRelationContext.prototype.constructor = JoinRelationContext; | |
SqlBaseParser.JoinRelationContext = JoinRelationContext; | |
JoinRelationContext.prototype.relation = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(RelationContext); | |
} else { | |
return this.getTypedRuleContext(RelationContext,i); | |
} | |
}; | |
JoinRelationContext.prototype.CROSS = function() { | |
return this.getToken(SqlBaseParser.CROSS, 0); | |
}; | |
JoinRelationContext.prototype.JOIN = function() { | |
return this.getToken(SqlBaseParser.JOIN, 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(SqlBaseParser.NATURAL, 0); | |
}; | |
JoinRelationContext.prototype.sampledRelation = function() { | |
return this.getTypedRuleContext(SampledRelationContext,0); | |
}; | |
JoinRelationContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterJoinRelation(this); | |
} | |
}; | |
JoinRelationContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitJoinRelation(this); | |
} | |
}; | |
SqlBaseParser.prototype.relation = function(_p) { | |
if(_p===undefined) { | |
_p = 0; | |
} | |
var _parentctx = this._ctx; | |
var _parentState = this.state; | |
var localctx = new RelationContext(this, this._ctx, _parentState); | |
var _prevctx = localctx; | |
var _startState = 44; | |
this.enterRecursionRule(localctx, 44, SqlBaseParser.RULE_relation, _p); | |
try { | |
this.enterOuterAlt(localctx, 1); | |
localctx = new RelationDefaultContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 766; | |
this.sampledRelation(); | |
this._ctx.stop = this._input.LT(-1); | |
this.state = 786; | |
this._errHandler.sync(this); | |
var _alt = this._interp.adaptivePredict(this._input,92,this._ctx) | |
while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { | |
if(_alt===1) { | |
if(this._parseListeners!==null) { | |
this.triggerExitRuleEvent(); | |
} | |
_prevctx = localctx; | |
localctx = new JoinRelationContext(this, new RelationContext(this, _parentctx, _parentState)); | |
localctx.left = _prevctx; | |
this.pushNewRecursionContext(localctx, _startState, SqlBaseParser.RULE_relation); | |
this.state = 768; | |
if (!( this.precpred(this._ctx, 2))) { | |
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); | |
} | |
this.state = 782; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.CROSS: | |
this.state = 769; | |
this.match(SqlBaseParser.CROSS); | |
this.state = 770; | |
this.match(SqlBaseParser.JOIN); | |
this.state = 771; | |
localctx.right = this.sampledRelation(); | |
break; | |
case SqlBaseParser.FULL: | |
case SqlBaseParser.INNER: | |
case SqlBaseParser.JOIN: | |
case SqlBaseParser.LEFT: | |
case SqlBaseParser.RIGHT: | |
this.state = 772; | |
this.joinType(); | |
this.state = 773; | |
this.match(SqlBaseParser.JOIN); | |
this.state = 774; | |
localctx.rightRelation = this.relation(0); | |
this.state = 775; | |
this.joinCriteria(); | |
break; | |
case SqlBaseParser.NATURAL: | |
this.state = 777; | |
this.match(SqlBaseParser.NATURAL); | |
this.state = 778; | |
this.joinType(); | |
this.state = 779; | |
this.match(SqlBaseParser.JOIN); | |
this.state = 780; | |
localctx.right = this.sampledRelation(); | |
break; | |
default: | |
throw new antlr4.error.NoViableAltException(this); | |
} | |
} | |
this.state = 788; | |
this._errHandler.sync(this); | |
_alt = this._interp.adaptivePredict(this._input,92,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 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 = SqlBaseParser.RULE_joinType; | |
return this; | |
} | |
JoinTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
JoinTypeContext.prototype.constructor = JoinTypeContext; | |
JoinTypeContext.prototype.INNER = function() { | |
return this.getToken(SqlBaseParser.INNER, 0); | |
}; | |
JoinTypeContext.prototype.LEFT = function() { | |
return this.getToken(SqlBaseParser.LEFT, 0); | |
}; | |
JoinTypeContext.prototype.OUTER = function() { | |
return this.getToken(SqlBaseParser.OUTER, 0); | |
}; | |
JoinTypeContext.prototype.RIGHT = function() { | |
return this.getToken(SqlBaseParser.RIGHT, 0); | |
}; | |
JoinTypeContext.prototype.FULL = function() { | |
return this.getToken(SqlBaseParser.FULL, 0); | |
}; | |
JoinTypeContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterJoinType(this); | |
} | |
}; | |
JoinTypeContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitJoinType(this); | |
} | |
}; | |
SqlBaseParser.JoinTypeContext = JoinTypeContext; | |
SqlBaseParser.prototype.joinType = function() { | |
var localctx = new JoinTypeContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 46, SqlBaseParser.RULE_joinType); | |
var _la = 0; // Token type | |
try { | |
this.state = 804; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.INNER: | |
case SqlBaseParser.JOIN: | |
this.enterOuterAlt(localctx, 1); | |
this.state = 790; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.INNER) { | |
this.state = 789; | |
this.match(SqlBaseParser.INNER); | |
} | |
break; | |
case SqlBaseParser.LEFT: | |
this.enterOuterAlt(localctx, 2); | |
this.state = 792; | |
this.match(SqlBaseParser.LEFT); | |
this.state = 794; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.OUTER) { | |
this.state = 793; | |
this.match(SqlBaseParser.OUTER); | |
} | |
break; | |
case SqlBaseParser.RIGHT: | |
this.enterOuterAlt(localctx, 3); | |
this.state = 796; | |
this.match(SqlBaseParser.RIGHT); | |
this.state = 798; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.OUTER) { | |
this.state = 797; | |
this.match(SqlBaseParser.OUTER); | |
} | |
break; | |
case SqlBaseParser.FULL: | |
this.enterOuterAlt(localctx, 4); | |
this.state = 800; | |
this.match(SqlBaseParser.FULL); | |
this.state = 802; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.OUTER) { | |
this.state = 801; | |
this.match(SqlBaseParser.OUTER); | |
} | |
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 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 = SqlBaseParser.RULE_joinCriteria; | |
return this; | |
} | |
JoinCriteriaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
JoinCriteriaContext.prototype.constructor = JoinCriteriaContext; | |
JoinCriteriaContext.prototype.ON = function() { | |
return this.getToken(SqlBaseParser.ON, 0); | |
}; | |
JoinCriteriaContext.prototype.booleanExpression = function() { | |
return this.getTypedRuleContext(BooleanExpressionContext,0); | |
}; | |
JoinCriteriaContext.prototype.USING = function() { | |
return this.getToken(SqlBaseParser.USING, 0); | |
}; | |
JoinCriteriaContext.prototype.identifier = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(IdentifierContext); | |
} else { | |
return this.getTypedRuleContext(IdentifierContext,i); | |
} | |
}; | |
JoinCriteriaContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterJoinCriteria(this); | |
} | |
}; | |
JoinCriteriaContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitJoinCriteria(this); | |
} | |
}; | |
SqlBaseParser.JoinCriteriaContext = JoinCriteriaContext; | |
SqlBaseParser.prototype.joinCriteria = function() { | |
var localctx = new JoinCriteriaContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 48, SqlBaseParser.RULE_joinCriteria); | |
var _la = 0; // Token type | |
try { | |
this.state = 820; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.ON: | |
this.enterOuterAlt(localctx, 1); | |
this.state = 806; | |
this.match(SqlBaseParser.ON); | |
this.state = 807; | |
this.booleanExpression(0); | |
break; | |
case SqlBaseParser.USING: | |
this.enterOuterAlt(localctx, 2); | |
this.state = 808; | |
this.match(SqlBaseParser.USING); | |
this.state = 809; | |
this.match(SqlBaseParser.T__1); | |
this.state = 810; | |
this.identifier(); | |
this.state = 815; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 811; | |
this.match(SqlBaseParser.T__3); | |
this.state = 812; | |
this.identifier(); | |
this.state = 817; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
this.state = 818; | |
this.match(SqlBaseParser.T__2); | |
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 SampledRelationContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_sampledRelation; | |
this.percentage = null; // ExpressionContext | |
return this; | |
} | |
SampledRelationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
SampledRelationContext.prototype.constructor = SampledRelationContext; | |
SampledRelationContext.prototype.aliasedRelation = function() { | |
return this.getTypedRuleContext(AliasedRelationContext,0); | |
}; | |
SampledRelationContext.prototype.TABLESAMPLE = function() { | |
return this.getToken(SqlBaseParser.TABLESAMPLE, 0); | |
}; | |
SampledRelationContext.prototype.sampleType = function() { | |
return this.getTypedRuleContext(SampleTypeContext,0); | |
}; | |
SampledRelationContext.prototype.expression = function() { | |
return this.getTypedRuleContext(ExpressionContext,0); | |
}; | |
SampledRelationContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSampledRelation(this); | |
} | |
}; | |
SampledRelationContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSampledRelation(this); | |
} | |
}; | |
SqlBaseParser.SampledRelationContext = SampledRelationContext; | |
SqlBaseParser.prototype.sampledRelation = function() { | |
var localctx = new SampledRelationContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 50, SqlBaseParser.RULE_sampledRelation); | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 822; | |
this.aliasedRelation(); | |
this.state = 829; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,100,this._ctx); | |
if(la_===1) { | |
this.state = 823; | |
this.match(SqlBaseParser.TABLESAMPLE); | |
this.state = 824; | |
this.sampleType(); | |
this.state = 825; | |
this.match(SqlBaseParser.T__1); | |
this.state = 826; | |
localctx.percentage = this.expression(); | |
this.state = 827; | |
this.match(SqlBaseParser.T__2); | |
} | |
} catch (re) { | |
if(re instanceof antlr4.error.RecognitionException) { | |
localctx.exception = re; | |
this._errHandler.reportError(this, re); | |
this._errHandler.recover(this, re); | |
} else { | |
throw re; | |
} | |
} finally { | |
this.exitRule(); | |
} | |
return localctx; | |
}; | |
function SampleTypeContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_sampleType; | |
return this; | |
} | |
SampleTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
SampleTypeContext.prototype.constructor = SampleTypeContext; | |
SampleTypeContext.prototype.BERNOULLI = function() { | |
return this.getToken(SqlBaseParser.BERNOULLI, 0); | |
}; | |
SampleTypeContext.prototype.SYSTEM = function() { | |
return this.getToken(SqlBaseParser.SYSTEM, 0); | |
}; | |
SampleTypeContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSampleType(this); | |
} | |
}; | |
SampleTypeContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSampleType(this); | |
} | |
}; | |
SqlBaseParser.SampleTypeContext = SampleTypeContext; | |
SqlBaseParser.prototype.sampleType = function() { | |
var localctx = new SampleTypeContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 52, SqlBaseParser.RULE_sampleType); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 831; | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.BERNOULLI || _la===SqlBaseParser.SYSTEM)) { | |
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 AliasedRelationContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_aliasedRelation; | |
return this; | |
} | |
AliasedRelationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
AliasedRelationContext.prototype.constructor = AliasedRelationContext; | |
AliasedRelationContext.prototype.relationPrimary = function() { | |
return this.getTypedRuleContext(RelationPrimaryContext,0); | |
}; | |
AliasedRelationContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
AliasedRelationContext.prototype.AS = function() { | |
return this.getToken(SqlBaseParser.AS, 0); | |
}; | |
AliasedRelationContext.prototype.columnAliases = function() { | |
return this.getTypedRuleContext(ColumnAliasesContext,0); | |
}; | |
AliasedRelationContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterAliasedRelation(this); | |
} | |
}; | |
AliasedRelationContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitAliasedRelation(this); | |
} | |
}; | |
SqlBaseParser.AliasedRelationContext = AliasedRelationContext; | |
SqlBaseParser.prototype.aliasedRelation = function() { | |
var localctx = new AliasedRelationContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 54, SqlBaseParser.RULE_aliasedRelation); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 833; | |
this.relationPrimary(); | |
this.state = 841; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,103,this._ctx); | |
if(la_===1) { | |
this.state = 835; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.AS) { | |
this.state = 834; | |
this.match(SqlBaseParser.AS); | |
} | |
this.state = 837; | |
this.identifier(); | |
this.state = 839; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,102,this._ctx); | |
if(la_===1) { | |
this.state = 838; | |
this.columnAliases(); | |
} | |
} | |
} catch (re) { | |
if(re instanceof antlr4.error.RecognitionException) { | |
localctx.exception = re; | |
this._errHandler.reportError(this, re); | |
this._errHandler.recover(this, re); | |
} else { | |
throw re; | |
} | |
} finally { | |
this.exitRule(); | |
} | |
return localctx; | |
}; | |
function ColumnAliasesContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_columnAliases; | |
return this; | |
} | |
ColumnAliasesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
ColumnAliasesContext.prototype.constructor = ColumnAliasesContext; | |
ColumnAliasesContext.prototype.identifier = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(IdentifierContext); | |
} else { | |
return this.getTypedRuleContext(IdentifierContext,i); | |
} | |
}; | |
ColumnAliasesContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterColumnAliases(this); | |
} | |
}; | |
ColumnAliasesContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitColumnAliases(this); | |
} | |
}; | |
SqlBaseParser.ColumnAliasesContext = ColumnAliasesContext; | |
SqlBaseParser.prototype.columnAliases = function() { | |
var localctx = new ColumnAliasesContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 56, SqlBaseParser.RULE_columnAliases); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 843; | |
this.match(SqlBaseParser.T__1); | |
this.state = 844; | |
this.identifier(); | |
this.state = 849; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 845; | |
this.match(SqlBaseParser.T__3); | |
this.state = 846; | |
this.identifier(); | |
this.state = 851; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
this.state = 852; | |
this.match(SqlBaseParser.T__2); | |
} catch (re) { | |
if(re instanceof antlr4.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 = SqlBaseParser.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 SubqueryRelationContext(parser, ctx) { | |
RelationPrimaryContext.call(this, parser); | |
RelationPrimaryContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
SubqueryRelationContext.prototype = Object.create(RelationPrimaryContext.prototype); | |
SubqueryRelationContext.prototype.constructor = SubqueryRelationContext; | |
SqlBaseParser.SubqueryRelationContext = SubqueryRelationContext; | |
SubqueryRelationContext.prototype.query = function() { | |
return this.getTypedRuleContext(QueryContext,0); | |
}; | |
SubqueryRelationContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSubqueryRelation(this); | |
} | |
}; | |
SubqueryRelationContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSubqueryRelation(this); | |
} | |
}; | |
function ParenthesizedRelationContext(parser, ctx) { | |
RelationPrimaryContext.call(this, parser); | |
RelationPrimaryContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ParenthesizedRelationContext.prototype = Object.create(RelationPrimaryContext.prototype); | |
ParenthesizedRelationContext.prototype.constructor = ParenthesizedRelationContext; | |
SqlBaseParser.ParenthesizedRelationContext = ParenthesizedRelationContext; | |
ParenthesizedRelationContext.prototype.relation = function() { | |
return this.getTypedRuleContext(RelationContext,0); | |
}; | |
ParenthesizedRelationContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterParenthesizedRelation(this); | |
} | |
}; | |
ParenthesizedRelationContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitParenthesizedRelation(this); | |
} | |
}; | |
function UnnestContext(parser, ctx) { | |
RelationPrimaryContext.call(this, parser); | |
RelationPrimaryContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
UnnestContext.prototype = Object.create(RelationPrimaryContext.prototype); | |
UnnestContext.prototype.constructor = UnnestContext; | |
SqlBaseParser.UnnestContext = UnnestContext; | |
UnnestContext.prototype.UNNEST = function() { | |
return this.getToken(SqlBaseParser.UNNEST, 0); | |
}; | |
UnnestContext.prototype.expression = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(ExpressionContext); | |
} else { | |
return this.getTypedRuleContext(ExpressionContext,i); | |
} | |
}; | |
UnnestContext.prototype.WITH = function() { | |
return this.getToken(SqlBaseParser.WITH, 0); | |
}; | |
UnnestContext.prototype.ORDINALITY = function() { | |
return this.getToken(SqlBaseParser.ORDINALITY, 0); | |
}; | |
UnnestContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterUnnest(this); | |
} | |
}; | |
UnnestContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitUnnest(this); | |
} | |
}; | |
function LateralContext(parser, ctx) { | |
RelationPrimaryContext.call(this, parser); | |
RelationPrimaryContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
LateralContext.prototype = Object.create(RelationPrimaryContext.prototype); | |
LateralContext.prototype.constructor = LateralContext; | |
SqlBaseParser.LateralContext = LateralContext; | |
LateralContext.prototype.LATERAL = function() { | |
return this.getToken(SqlBaseParser.LATERAL, 0); | |
}; | |
LateralContext.prototype.query = function() { | |
return this.getTypedRuleContext(QueryContext,0); | |
}; | |
LateralContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterLateral(this); | |
} | |
}; | |
LateralContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitLateral(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; | |
SqlBaseParser.TableNameContext = TableNameContext; | |
TableNameContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
TableNameContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterTableName(this); | |
} | |
}; | |
TableNameContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitTableName(this); | |
} | |
}; | |
SqlBaseParser.RelationPrimaryContext = RelationPrimaryContext; | |
SqlBaseParser.prototype.relationPrimary = function() { | |
var localctx = new RelationPrimaryContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 58, SqlBaseParser.RULE_relationPrimary); | |
var _la = 0; // Token type | |
try { | |
this.state = 883; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,107,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new TableNameContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 854; | |
this.qualifiedName(); | |
break; | |
case 2: | |
localctx = new SubqueryRelationContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 855; | |
this.match(SqlBaseParser.T__1); | |
this.state = 856; | |
this.query(); | |
this.state = 857; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 3: | |
localctx = new UnnestContext(this, localctx); | |
this.enterOuterAlt(localctx, 3); | |
this.state = 859; | |
this.match(SqlBaseParser.UNNEST); | |
this.state = 860; | |
this.match(SqlBaseParser.T__1); | |
this.state = 861; | |
this.expression(); | |
this.state = 866; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 862; | |
this.match(SqlBaseParser.T__3); | |
this.state = 863; | |
this.expression(); | |
this.state = 868; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
this.state = 869; | |
this.match(SqlBaseParser.T__2); | |
this.state = 872; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,106,this._ctx); | |
if(la_===1) { | |
this.state = 870; | |
this.match(SqlBaseParser.WITH); | |
this.state = 871; | |
this.match(SqlBaseParser.ORDINALITY); | |
} | |
break; | |
case 4: | |
localctx = new LateralContext(this, localctx); | |
this.enterOuterAlt(localctx, 4); | |
this.state = 874; | |
this.match(SqlBaseParser.LATERAL); | |
this.state = 875; | |
this.match(SqlBaseParser.T__1); | |
this.state = 876; | |
this.query(); | |
this.state = 877; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 5: | |
localctx = new ParenthesizedRelationContext(this, localctx); | |
this.enterOuterAlt(localctx, 5); | |
this.state = 879; | |
this.match(SqlBaseParser.T__1); | |
this.state = 880; | |
this.relation(0); | |
this.state = 881; | |
this.match(SqlBaseParser.T__2); | |
break; | |
} | |
} catch (re) { | |
if(re instanceof antlr4.error.RecognitionException) { | |
localctx.exception = re; | |
this._errHandler.reportError(this, re); | |
this._errHandler.recover(this, re); | |
} else { | |
throw re; | |
} | |
} finally { | |
this.exitRule(); | |
} | |
return localctx; | |
}; | |
function ExpressionContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.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 SqlBaseListener ) { | |
listener.enterExpression(this); | |
} | |
}; | |
ExpressionContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitExpression(this); | |
} | |
}; | |
SqlBaseParser.ExpressionContext = ExpressionContext; | |
SqlBaseParser.prototype.expression = function() { | |
var localctx = new ExpressionContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 60, SqlBaseParser.RULE_expression); | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 885; | |
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 = SqlBaseParser.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; | |
SqlBaseParser.LogicalNotContext = LogicalNotContext; | |
LogicalNotContext.prototype.NOT = function() { | |
return this.getToken(SqlBaseParser.NOT, 0); | |
}; | |
LogicalNotContext.prototype.booleanExpression = function() { | |
return this.getTypedRuleContext(BooleanExpressionContext,0); | |
}; | |
LogicalNotContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterLogicalNot(this); | |
} | |
}; | |
LogicalNotContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitLogicalNot(this); | |
} | |
}; | |
function PredicatedContext(parser, ctx) { | |
BooleanExpressionContext.call(this, parser); | |
this._valueExpression = null; // ValueExpressionContext; | |
BooleanExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
PredicatedContext.prototype = Object.create(BooleanExpressionContext.prototype); | |
PredicatedContext.prototype.constructor = PredicatedContext; | |
SqlBaseParser.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 SqlBaseListener ) { | |
listener.enterPredicated(this); | |
} | |
}; | |
PredicatedContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitPredicated(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; | |
SqlBaseParser.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(SqlBaseParser.AND, 0); | |
}; | |
LogicalBinaryContext.prototype.OR = function() { | |
return this.getToken(SqlBaseParser.OR, 0); | |
}; | |
LogicalBinaryContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterLogicalBinary(this); | |
} | |
}; | |
LogicalBinaryContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitLogicalBinary(this); | |
} | |
}; | |
SqlBaseParser.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 = 62; | |
this.enterRecursionRule(localctx, 62, SqlBaseParser.RULE_booleanExpression, _p); | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 894; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.T__1: | |
case SqlBaseParser.T__4: | |
case SqlBaseParser.ADD: | |
case SqlBaseParser.ALL: | |
case SqlBaseParser.ANALYZE: | |
case SqlBaseParser.ANY: | |
case SqlBaseParser.ARRAY: | |
case SqlBaseParser.ASC: | |
case SqlBaseParser.AT: | |
case SqlBaseParser.BERNOULLI: | |
case SqlBaseParser.CALL: | |
case SqlBaseParser.CASCADE: | |
case SqlBaseParser.CASE: | |
case SqlBaseParser.CAST: | |
case SqlBaseParser.CATALOGS: | |
case SqlBaseParser.COLUMN: | |
case SqlBaseParser.COLUMNS: | |
case SqlBaseParser.COMMENT: | |
case SqlBaseParser.COMMIT: | |
case SqlBaseParser.COMMITTED: | |
case SqlBaseParser.CURRENT: | |
case SqlBaseParser.CURRENT_DATE: | |
case SqlBaseParser.CURRENT_PATH: | |
case SqlBaseParser.CURRENT_TIME: | |
case SqlBaseParser.CURRENT_TIMESTAMP: | |
case SqlBaseParser.CURRENT_USER: | |
case SqlBaseParser.DATA: | |
case SqlBaseParser.DATE: | |
case SqlBaseParser.DAY: | |
case SqlBaseParser.DESC: | |
case SqlBaseParser.DISTRIBUTED: | |
case SqlBaseParser.EXCLUDING: | |
case SqlBaseParser.EXISTS: | |
case SqlBaseParser.EXPLAIN: | |
case SqlBaseParser.EXTRACT: | |
case SqlBaseParser.FALSE: | |
case SqlBaseParser.FILTER: | |
case SqlBaseParser.FIRST: | |
case SqlBaseParser.FOLLOWING: | |
case SqlBaseParser.FORMAT: | |
case SqlBaseParser.FUNCTIONS: | |
case SqlBaseParser.GRANT: | |
case SqlBaseParser.GRANTS: | |
case SqlBaseParser.GRAPHVIZ: | |
case SqlBaseParser.GROUPING: | |
case SqlBaseParser.HOUR: | |
case SqlBaseParser.IF: | |
case SqlBaseParser.INCLUDING: | |
case SqlBaseParser.INPUT: | |
case SqlBaseParser.INTERVAL: | |
case SqlBaseParser.IO: | |
case SqlBaseParser.ISOLATION: | |
case SqlBaseParser.JSON: | |
case SqlBaseParser.LAST: | |
case SqlBaseParser.LATERAL: | |
case SqlBaseParser.LEVEL: | |
case SqlBaseParser.LIMIT: | |
case SqlBaseParser.LOCALTIME: | |
case SqlBaseParser.LOCALTIMESTAMP: | |
case SqlBaseParser.LOGICAL: | |
case SqlBaseParser.MAP: | |
case SqlBaseParser.MINUTE: | |
case SqlBaseParser.MONTH: | |
case SqlBaseParser.NFC: | |
case SqlBaseParser.NFD: | |
case SqlBaseParser.NFKC: | |
case SqlBaseParser.NFKD: | |
case SqlBaseParser.NO: | |
case SqlBaseParser.NORMALIZE: | |
case SqlBaseParser.NULL: | |
case SqlBaseParser.NULLIF: | |
case SqlBaseParser.NULLS: | |
case SqlBaseParser.ONLY: | |
case SqlBaseParser.OPTION: | |
case SqlBaseParser.ORDINALITY: | |
case SqlBaseParser.OUTPUT: | |
case SqlBaseParser.OVER: | |
case SqlBaseParser.PARTITION: | |
case SqlBaseParser.PARTITIONS: | |
case SqlBaseParser.PATH: | |
case SqlBaseParser.POSITION: | |
case SqlBaseParser.PRECEDING: | |
case SqlBaseParser.PRIVILEGES: | |
case SqlBaseParser.PROPERTIES: | |
case SqlBaseParser.PUBLIC: | |
case SqlBaseParser.RANGE: | |
case SqlBaseParser.READ: | |
case SqlBaseParser.RENAME: | |
case SqlBaseParser.REPEATABLE: | |
case SqlBaseParser.REPLACE: | |
case SqlBaseParser.RESET: | |
case SqlBaseParser.RESTRICT: | |
case SqlBaseParser.REVOKE: | |
case SqlBaseParser.ROLLBACK: | |
case SqlBaseParser.ROW: | |
case SqlBaseParser.ROWS: | |
case SqlBaseParser.SCHEMA: | |
case SqlBaseParser.SCHEMAS: | |
case SqlBaseParser.SECOND: | |
case SqlBaseParser.SERIALIZABLE: | |
case SqlBaseParser.SESSION: | |
case SqlBaseParser.SET: | |
case SqlBaseParser.SETS: | |
case SqlBaseParser.SHOW: | |
case SqlBaseParser.SOME: | |
case SqlBaseParser.START: | |
case SqlBaseParser.STATS: | |
case SqlBaseParser.SUBSTRING: | |
case SqlBaseParser.SYSTEM: | |
case SqlBaseParser.TABLES: | |
case SqlBaseParser.TABLESAMPLE: | |
case SqlBaseParser.TEXT: | |
case SqlBaseParser.TIME: | |
case SqlBaseParser.TIMESTAMP: | |
case SqlBaseParser.TO: | |
case SqlBaseParser.TRANSACTION: | |
case SqlBaseParser.TRUE: | |
case SqlBaseParser.TRY_CAST: | |
case SqlBaseParser.TYPE: | |
case SqlBaseParser.UNBOUNDED: | |
case SqlBaseParser.UNCOMMITTED: | |
case SqlBaseParser.USE: | |
case SqlBaseParser.VALIDATE: | |
case SqlBaseParser.VERBOSE: | |
case SqlBaseParser.VIEW: | |
case SqlBaseParser.WORK: | |
case SqlBaseParser.WRITE: | |
case SqlBaseParser.YEAR: | |
case SqlBaseParser.ZONE: | |
case SqlBaseParser.PLUS: | |
case SqlBaseParser.MINUS: | |
case SqlBaseParser.STRING: | |
case SqlBaseParser.UNICODE_STRING: | |
case SqlBaseParser.BINARY_LITERAL: | |
case SqlBaseParser.INTEGER_VALUE: | |
case SqlBaseParser.DECIMAL_VALUE: | |
case SqlBaseParser.DOUBLE_VALUE: | |
case SqlBaseParser.IDENTIFIER: | |
case SqlBaseParser.DIGIT_IDENTIFIER: | |
case SqlBaseParser.QUOTED_IDENTIFIER: | |
case SqlBaseParser.BACKQUOTED_IDENTIFIER: | |
case SqlBaseParser.DOUBLE_PRECISION: | |
localctx = new PredicatedContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 888; | |
localctx._valueExpression = this.valueExpression(0); | |
this.state = 890; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,108,this._ctx); | |
if(la_===1) { | |
this.state = 889; | |
this.predicate(localctx._valueExpression); | |
} | |
break; | |
case SqlBaseParser.NOT: | |
localctx = new LogicalNotContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 892; | |
this.match(SqlBaseParser.NOT); | |
this.state = 893; | |
this.booleanExpression(3); | |
break; | |
default: | |
throw new antlr4.error.NoViableAltException(this); | |
} | |
this._ctx.stop = this._input.LT(-1); | |
this.state = 904; | |
this._errHandler.sync(this); | |
var _alt = this._interp.adaptivePredict(this._input,111,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 = 902; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,110,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new LogicalBinaryContext(this, new BooleanExpressionContext(this, _parentctx, _parentState)); | |
localctx.left = _prevctx; | |
this.pushNewRecursionContext(localctx, _startState, SqlBaseParser.RULE_booleanExpression); | |
this.state = 896; | |
if (!( this.precpred(this._ctx, 2))) { | |
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); | |
} | |
this.state = 897; | |
localctx.operator = this.match(SqlBaseParser.AND); | |
this.state = 898; | |
localctx.right = this.booleanExpression(3); | |
break; | |
case 2: | |
localctx = new LogicalBinaryContext(this, new BooleanExpressionContext(this, _parentctx, _parentState)); | |
localctx.left = _prevctx; | |
this.pushNewRecursionContext(localctx, _startState, SqlBaseParser.RULE_booleanExpression); | |
this.state = 899; | |
if (!( this.precpred(this._ctx, 1))) { | |
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); | |
} | |
this.state = 900; | |
localctx.operator = this.match(SqlBaseParser.OR); | |
this.state = 901; | |
localctx.right = this.booleanExpression(2); | |
break; | |
} | |
} | |
this.state = 906; | |
this._errHandler.sync(this); | |
_alt = this._interp.adaptivePredict(this._input,111,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, value) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_predicate; | |
this.value = null | |
this.value = value || null; | |
return this; | |
} | |
PredicateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
PredicateContext.prototype.constructor = PredicateContext; | |
PredicateContext.prototype.copyFrom = function(ctx) { | |
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); | |
this.value = ctx.value; | |
}; | |
function ComparisonContext(parser, ctx) { | |
PredicateContext.call(this, parser); | |
this.right = null; // ValueExpressionContext; | |
PredicateContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ComparisonContext.prototype = Object.create(PredicateContext.prototype); | |
ComparisonContext.prototype.constructor = ComparisonContext; | |
SqlBaseParser.ComparisonContext = ComparisonContext; | |
ComparisonContext.prototype.comparisonOperator = function() { | |
return this.getTypedRuleContext(ComparisonOperatorContext,0); | |
}; | |
ComparisonContext.prototype.valueExpression = function() { | |
return this.getTypedRuleContext(ValueExpressionContext,0); | |
}; | |
ComparisonContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterComparison(this); | |
} | |
}; | |
ComparisonContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitComparison(this); | |
} | |
}; | |
function LikeContext(parser, ctx) { | |
PredicateContext.call(this, parser); | |
this.pattern = null; // ValueExpressionContext; | |
this.escape = null; // ValueExpressionContext; | |
PredicateContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
LikeContext.prototype = Object.create(PredicateContext.prototype); | |
LikeContext.prototype.constructor = LikeContext; | |
SqlBaseParser.LikeContext = LikeContext; | |
LikeContext.prototype.LIKE = function() { | |
return this.getToken(SqlBaseParser.LIKE, 0); | |
}; | |
LikeContext.prototype.valueExpression = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(ValueExpressionContext); | |
} else { | |
return this.getTypedRuleContext(ValueExpressionContext,i); | |
} | |
}; | |
LikeContext.prototype.NOT = function() { | |
return this.getToken(SqlBaseParser.NOT, 0); | |
}; | |
LikeContext.prototype.ESCAPE = function() { | |
return this.getToken(SqlBaseParser.ESCAPE, 0); | |
}; | |
LikeContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterLike(this); | |
} | |
}; | |
LikeContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitLike(this); | |
} | |
}; | |
function InSubqueryContext(parser, ctx) { | |
PredicateContext.call(this, parser); | |
PredicateContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
InSubqueryContext.prototype = Object.create(PredicateContext.prototype); | |
InSubqueryContext.prototype.constructor = InSubqueryContext; | |
SqlBaseParser.InSubqueryContext = InSubqueryContext; | |
InSubqueryContext.prototype.IN = function() { | |
return this.getToken(SqlBaseParser.IN, 0); | |
}; | |
InSubqueryContext.prototype.query = function() { | |
return this.getTypedRuleContext(QueryContext,0); | |
}; | |
InSubqueryContext.prototype.NOT = function() { | |
return this.getToken(SqlBaseParser.NOT, 0); | |
}; | |
InSubqueryContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterInSubquery(this); | |
} | |
}; | |
InSubqueryContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitInSubquery(this); | |
} | |
}; | |
function DistinctFromContext(parser, ctx) { | |
PredicateContext.call(this, parser); | |
this.right = null; // ValueExpressionContext; | |
PredicateContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
DistinctFromContext.prototype = Object.create(PredicateContext.prototype); | |
DistinctFromContext.prototype.constructor = DistinctFromContext; | |
SqlBaseParser.DistinctFromContext = DistinctFromContext; | |
DistinctFromContext.prototype.IS = function() { | |
return this.getToken(SqlBaseParser.IS, 0); | |
}; | |
DistinctFromContext.prototype.DISTINCT = function() { | |
return this.getToken(SqlBaseParser.DISTINCT, 0); | |
}; | |
DistinctFromContext.prototype.FROM = function() { | |
return this.getToken(SqlBaseParser.FROM, 0); | |
}; | |
DistinctFromContext.prototype.valueExpression = function() { | |
return this.getTypedRuleContext(ValueExpressionContext,0); | |
}; | |
DistinctFromContext.prototype.NOT = function() { | |
return this.getToken(SqlBaseParser.NOT, 0); | |
}; | |
DistinctFromContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterDistinctFrom(this); | |
} | |
}; | |
DistinctFromContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitDistinctFrom(this); | |
} | |
}; | |
function InListContext(parser, ctx) { | |
PredicateContext.call(this, parser); | |
PredicateContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
InListContext.prototype = Object.create(PredicateContext.prototype); | |
InListContext.prototype.constructor = InListContext; | |
SqlBaseParser.InListContext = InListContext; | |
InListContext.prototype.IN = function() { | |
return this.getToken(SqlBaseParser.IN, 0); | |
}; | |
InListContext.prototype.expression = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(ExpressionContext); | |
} else { | |
return this.getTypedRuleContext(ExpressionContext,i); | |
} | |
}; | |
InListContext.prototype.NOT = function() { | |
return this.getToken(SqlBaseParser.NOT, 0); | |
}; | |
InListContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterInList(this); | |
} | |
}; | |
InListContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitInList(this); | |
} | |
}; | |
function NullPredicateContext(parser, ctx) { | |
PredicateContext.call(this, parser); | |
PredicateContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
NullPredicateContext.prototype = Object.create(PredicateContext.prototype); | |
NullPredicateContext.prototype.constructor = NullPredicateContext; | |
SqlBaseParser.NullPredicateContext = NullPredicateContext; | |
NullPredicateContext.prototype.IS = function() { | |
return this.getToken(SqlBaseParser.IS, 0); | |
}; | |
NullPredicateContext.prototype.NULL = function() { | |
return this.getToken(SqlBaseParser.NULL, 0); | |
}; | |
NullPredicateContext.prototype.NOT = function() { | |
return this.getToken(SqlBaseParser.NOT, 0); | |
}; | |
NullPredicateContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterNullPredicate(this); | |
} | |
}; | |
NullPredicateContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitNullPredicate(this); | |
} | |
}; | |
function BetweenContext(parser, ctx) { | |
PredicateContext.call(this, parser); | |
this.lower = null; // ValueExpressionContext; | |
this.upper = null; // ValueExpressionContext; | |
PredicateContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
BetweenContext.prototype = Object.create(PredicateContext.prototype); | |
BetweenContext.prototype.constructor = BetweenContext; | |
SqlBaseParser.BetweenContext = BetweenContext; | |
BetweenContext.prototype.BETWEEN = function() { | |
return this.getToken(SqlBaseParser.BETWEEN, 0); | |
}; | |
BetweenContext.prototype.AND = function() { | |
return this.getToken(SqlBaseParser.AND, 0); | |
}; | |
BetweenContext.prototype.valueExpression = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(ValueExpressionContext); | |
} else { | |
return this.getTypedRuleContext(ValueExpressionContext,i); | |
} | |
}; | |
BetweenContext.prototype.NOT = function() { | |
return this.getToken(SqlBaseParser.NOT, 0); | |
}; | |
BetweenContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterBetween(this); | |
} | |
}; | |
BetweenContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitBetween(this); | |
} | |
}; | |
function QuantifiedComparisonContext(parser, ctx) { | |
PredicateContext.call(this, parser); | |
PredicateContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
QuantifiedComparisonContext.prototype = Object.create(PredicateContext.prototype); | |
QuantifiedComparisonContext.prototype.constructor = QuantifiedComparisonContext; | |
SqlBaseParser.QuantifiedComparisonContext = QuantifiedComparisonContext; | |
QuantifiedComparisonContext.prototype.comparisonOperator = function() { | |
return this.getTypedRuleContext(ComparisonOperatorContext,0); | |
}; | |
QuantifiedComparisonContext.prototype.comparisonQuantifier = function() { | |
return this.getTypedRuleContext(ComparisonQuantifierContext,0); | |
}; | |
QuantifiedComparisonContext.prototype.query = function() { | |
return this.getTypedRuleContext(QueryContext,0); | |
}; | |
QuantifiedComparisonContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterQuantifiedComparison(this); | |
} | |
}; | |
QuantifiedComparisonContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitQuantifiedComparison(this); | |
} | |
}; | |
SqlBaseParser.PredicateContext = PredicateContext; | |
SqlBaseParser.prototype.predicate = function(value) { | |
var localctx = new PredicateContext(this, this._ctx, this.state, value); | |
this.enterRule(localctx, 64, SqlBaseParser.RULE_predicate); | |
var _la = 0; // Token type | |
try { | |
this.state = 968; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,120,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new ComparisonContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 907; | |
this.comparisonOperator(); | |
this.state = 908; | |
localctx.right = this.valueExpression(0); | |
break; | |
case 2: | |
localctx = new QuantifiedComparisonContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 910; | |
this.comparisonOperator(); | |
this.state = 911; | |
this.comparisonQuantifier(); | |
this.state = 912; | |
this.match(SqlBaseParser.T__1); | |
this.state = 913; | |
this.query(); | |
this.state = 914; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 3: | |
localctx = new BetweenContext(this, localctx); | |
this.enterOuterAlt(localctx, 3); | |
this.state = 917; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.NOT) { | |
this.state = 916; | |
this.match(SqlBaseParser.NOT); | |
} | |
this.state = 919; | |
this.match(SqlBaseParser.BETWEEN); | |
this.state = 920; | |
localctx.lower = this.valueExpression(0); | |
this.state = 921; | |
this.match(SqlBaseParser.AND); | |
this.state = 922; | |
localctx.upper = this.valueExpression(0); | |
break; | |
case 4: | |
localctx = new InListContext(this, localctx); | |
this.enterOuterAlt(localctx, 4); | |
this.state = 925; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.NOT) { | |
this.state = 924; | |
this.match(SqlBaseParser.NOT); | |
} | |
this.state = 927; | |
this.match(SqlBaseParser.IN); | |
this.state = 928; | |
this.match(SqlBaseParser.T__1); | |
this.state = 929; | |
this.expression(); | |
this.state = 934; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 930; | |
this.match(SqlBaseParser.T__3); | |
this.state = 931; | |
this.expression(); | |
this.state = 936; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
this.state = 937; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 5: | |
localctx = new InSubqueryContext(this, localctx); | |
this.enterOuterAlt(localctx, 5); | |
this.state = 940; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.NOT) { | |
this.state = 939; | |
this.match(SqlBaseParser.NOT); | |
} | |
this.state = 942; | |
this.match(SqlBaseParser.IN); | |
this.state = 943; | |
this.match(SqlBaseParser.T__1); | |
this.state = 944; | |
this.query(); | |
this.state = 945; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 6: | |
localctx = new LikeContext(this, localctx); | |
this.enterOuterAlt(localctx, 6); | |
this.state = 948; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.NOT) { | |
this.state = 947; | |
this.match(SqlBaseParser.NOT); | |
} | |
this.state = 950; | |
this.match(SqlBaseParser.LIKE); | |
this.state = 951; | |
localctx.pattern = this.valueExpression(0); | |
this.state = 954; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,117,this._ctx); | |
if(la_===1) { | |
this.state = 952; | |
this.match(SqlBaseParser.ESCAPE); | |
this.state = 953; | |
localctx.escape = this.valueExpression(0); | |
} | |
break; | |
case 7: | |
localctx = new NullPredicateContext(this, localctx); | |
this.enterOuterAlt(localctx, 7); | |
this.state = 956; | |
this.match(SqlBaseParser.IS); | |
this.state = 958; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.NOT) { | |
this.state = 957; | |
this.match(SqlBaseParser.NOT); | |
} | |
this.state = 960; | |
this.match(SqlBaseParser.NULL); | |
break; | |
case 8: | |
localctx = new DistinctFromContext(this, localctx); | |
this.enterOuterAlt(localctx, 8); | |
this.state = 961; | |
this.match(SqlBaseParser.IS); | |
this.state = 963; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.NOT) { | |
this.state = 962; | |
this.match(SqlBaseParser.NOT); | |
} | |
this.state = 965; | |
this.match(SqlBaseParser.DISTINCT); | |
this.state = 966; | |
this.match(SqlBaseParser.FROM); | |
this.state = 967; | |
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 = SqlBaseParser.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; | |
SqlBaseParser.ValueExpressionDefaultContext = ValueExpressionDefaultContext; | |
ValueExpressionDefaultContext.prototype.primaryExpression = function() { | |
return this.getTypedRuleContext(PrimaryExpressionContext,0); | |
}; | |
ValueExpressionDefaultContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterValueExpressionDefault(this); | |
} | |
}; | |
ValueExpressionDefaultContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitValueExpressionDefault(this); | |
} | |
}; | |
function ConcatenationContext(parser, ctx) { | |
ValueExpressionContext.call(this, parser); | |
this.left = null; // ValueExpressionContext; | |
this.right = null; // ValueExpressionContext; | |
ValueExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ConcatenationContext.prototype = Object.create(ValueExpressionContext.prototype); | |
ConcatenationContext.prototype.constructor = ConcatenationContext; | |
SqlBaseParser.ConcatenationContext = ConcatenationContext; | |
ConcatenationContext.prototype.CONCAT = function() { | |
return this.getToken(SqlBaseParser.CONCAT, 0); | |
}; | |
ConcatenationContext.prototype.valueExpression = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(ValueExpressionContext); | |
} else { | |
return this.getTypedRuleContext(ValueExpressionContext,i); | |
} | |
}; | |
ConcatenationContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterConcatenation(this); | |
} | |
}; | |
ConcatenationContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitConcatenation(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; | |
SqlBaseParser.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(SqlBaseParser.ASTERISK, 0); | |
}; | |
ArithmeticBinaryContext.prototype.SLASH = function() { | |
return this.getToken(SqlBaseParser.SLASH, 0); | |
}; | |
ArithmeticBinaryContext.prototype.PERCENT = function() { | |
return this.getToken(SqlBaseParser.PERCENT, 0); | |
}; | |
ArithmeticBinaryContext.prototype.PLUS = function() { | |
return this.getToken(SqlBaseParser.PLUS, 0); | |
}; | |
ArithmeticBinaryContext.prototype.MINUS = function() { | |
return this.getToken(SqlBaseParser.MINUS, 0); | |
}; | |
ArithmeticBinaryContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterArithmeticBinary(this); | |
} | |
}; | |
ArithmeticBinaryContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitArithmeticBinary(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; | |
SqlBaseParser.ArithmeticUnaryContext = ArithmeticUnaryContext; | |
ArithmeticUnaryContext.prototype.valueExpression = function() { | |
return this.getTypedRuleContext(ValueExpressionContext,0); | |
}; | |
ArithmeticUnaryContext.prototype.MINUS = function() { | |
return this.getToken(SqlBaseParser.MINUS, 0); | |
}; | |
ArithmeticUnaryContext.prototype.PLUS = function() { | |
return this.getToken(SqlBaseParser.PLUS, 0); | |
}; | |
ArithmeticUnaryContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterArithmeticUnary(this); | |
} | |
}; | |
ArithmeticUnaryContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitArithmeticUnary(this); | |
} | |
}; | |
function AtTimeZoneContext(parser, ctx) { | |
ValueExpressionContext.call(this, parser); | |
ValueExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
AtTimeZoneContext.prototype = Object.create(ValueExpressionContext.prototype); | |
AtTimeZoneContext.prototype.constructor = AtTimeZoneContext; | |
SqlBaseParser.AtTimeZoneContext = AtTimeZoneContext; | |
AtTimeZoneContext.prototype.valueExpression = function() { | |
return this.getTypedRuleContext(ValueExpressionContext,0); | |
}; | |
AtTimeZoneContext.prototype.AT = function() { | |
return this.getToken(SqlBaseParser.AT, 0); | |
}; | |
AtTimeZoneContext.prototype.timeZoneSpecifier = function() { | |
return this.getTypedRuleContext(TimeZoneSpecifierContext,0); | |
}; | |
AtTimeZoneContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterAtTimeZone(this); | |
} | |
}; | |
AtTimeZoneContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitAtTimeZone(this); | |
} | |
}; | |
SqlBaseParser.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 = 66; | |
this.enterRecursionRule(localctx, 66, SqlBaseParser.RULE_valueExpression, _p); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 974; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.T__1: | |
case SqlBaseParser.T__4: | |
case SqlBaseParser.ADD: | |
case SqlBaseParser.ALL: | |
case SqlBaseParser.ANALYZE: | |
case SqlBaseParser.ANY: | |
case SqlBaseParser.ARRAY: | |
case SqlBaseParser.ASC: | |
case SqlBaseParser.AT: | |
case SqlBaseParser.BERNOULLI: | |
case SqlBaseParser.CALL: | |
case SqlBaseParser.CASCADE: | |
case SqlBaseParser.CASE: | |
case SqlBaseParser.CAST: | |
case SqlBaseParser.CATALOGS: | |
case SqlBaseParser.COLUMN: | |
case SqlBaseParser.COLUMNS: | |
case SqlBaseParser.COMMENT: | |
case SqlBaseParser.COMMIT: | |
case SqlBaseParser.COMMITTED: | |
case SqlBaseParser.CURRENT: | |
case SqlBaseParser.CURRENT_DATE: | |
case SqlBaseParser.CURRENT_PATH: | |
case SqlBaseParser.CURRENT_TIME: | |
case SqlBaseParser.CURRENT_TIMESTAMP: | |
case SqlBaseParser.CURRENT_USER: | |
case SqlBaseParser.DATA: | |
case SqlBaseParser.DATE: | |
case SqlBaseParser.DAY: | |
case SqlBaseParser.DESC: | |
case SqlBaseParser.DISTRIBUTED: | |
case SqlBaseParser.EXCLUDING: | |
case SqlBaseParser.EXISTS: | |
case SqlBaseParser.EXPLAIN: | |
case SqlBaseParser.EXTRACT: | |
case SqlBaseParser.FALSE: | |
case SqlBaseParser.FILTER: | |
case SqlBaseParser.FIRST: | |
case SqlBaseParser.FOLLOWING: | |
case SqlBaseParser.FORMAT: | |
case SqlBaseParser.FUNCTIONS: | |
case SqlBaseParser.GRANT: | |
case SqlBaseParser.GRANTS: | |
case SqlBaseParser.GRAPHVIZ: | |
case SqlBaseParser.GROUPING: | |
case SqlBaseParser.HOUR: | |
case SqlBaseParser.IF: | |
case SqlBaseParser.INCLUDING: | |
case SqlBaseParser.INPUT: | |
case SqlBaseParser.INTERVAL: | |
case SqlBaseParser.IO: | |
case SqlBaseParser.ISOLATION: | |
case SqlBaseParser.JSON: | |
case SqlBaseParser.LAST: | |
case SqlBaseParser.LATERAL: | |
case SqlBaseParser.LEVEL: | |
case SqlBaseParser.LIMIT: | |
case SqlBaseParser.LOCALTIME: | |
case SqlBaseParser.LOCALTIMESTAMP: | |
case SqlBaseParser.LOGICAL: | |
case SqlBaseParser.MAP: | |
case SqlBaseParser.MINUTE: | |
case SqlBaseParser.MONTH: | |
case SqlBaseParser.NFC: | |
case SqlBaseParser.NFD: | |
case SqlBaseParser.NFKC: | |
case SqlBaseParser.NFKD: | |
case SqlBaseParser.NO: | |
case SqlBaseParser.NORMALIZE: | |
case SqlBaseParser.NULL: | |
case SqlBaseParser.NULLIF: | |
case SqlBaseParser.NULLS: | |
case SqlBaseParser.ONLY: | |
case SqlBaseParser.OPTION: | |
case SqlBaseParser.ORDINALITY: | |
case SqlBaseParser.OUTPUT: | |
case SqlBaseParser.OVER: | |
case SqlBaseParser.PARTITION: | |
case SqlBaseParser.PARTITIONS: | |
case SqlBaseParser.PATH: | |
case SqlBaseParser.POSITION: | |
case SqlBaseParser.PRECEDING: | |
case SqlBaseParser.PRIVILEGES: | |
case SqlBaseParser.PROPERTIES: | |
case SqlBaseParser.PUBLIC: | |
case SqlBaseParser.RANGE: | |
case SqlBaseParser.READ: | |
case SqlBaseParser.RENAME: | |
case SqlBaseParser.REPEATABLE: | |
case SqlBaseParser.REPLACE: | |
case SqlBaseParser.RESET: | |
case SqlBaseParser.RESTRICT: | |
case SqlBaseParser.REVOKE: | |
case SqlBaseParser.ROLLBACK: | |
case SqlBaseParser.ROW: | |
case SqlBaseParser.ROWS: | |
case SqlBaseParser.SCHEMA: | |
case SqlBaseParser.SCHEMAS: | |
case SqlBaseParser.SECOND: | |
case SqlBaseParser.SERIALIZABLE: | |
case SqlBaseParser.SESSION: | |
case SqlBaseParser.SET: | |
case SqlBaseParser.SETS: | |
case SqlBaseParser.SHOW: | |
case SqlBaseParser.SOME: | |
case SqlBaseParser.START: | |
case SqlBaseParser.STATS: | |
case SqlBaseParser.SUBSTRING: | |
case SqlBaseParser.SYSTEM: | |
case SqlBaseParser.TABLES: | |
case SqlBaseParser.TABLESAMPLE: | |
case SqlBaseParser.TEXT: | |
case SqlBaseParser.TIME: | |
case SqlBaseParser.TIMESTAMP: | |
case SqlBaseParser.TO: | |
case SqlBaseParser.TRANSACTION: | |
case SqlBaseParser.TRUE: | |
case SqlBaseParser.TRY_CAST: | |
case SqlBaseParser.TYPE: | |
case SqlBaseParser.UNBOUNDED: | |
case SqlBaseParser.UNCOMMITTED: | |
case SqlBaseParser.USE: | |
case SqlBaseParser.VALIDATE: | |
case SqlBaseParser.VERBOSE: | |
case SqlBaseParser.VIEW: | |
case SqlBaseParser.WORK: | |
case SqlBaseParser.WRITE: | |
case SqlBaseParser.YEAR: | |
case SqlBaseParser.ZONE: | |
case SqlBaseParser.STRING: | |
case SqlBaseParser.UNICODE_STRING: | |
case SqlBaseParser.BINARY_LITERAL: | |
case SqlBaseParser.INTEGER_VALUE: | |
case SqlBaseParser.DECIMAL_VALUE: | |
case SqlBaseParser.DOUBLE_VALUE: | |
case SqlBaseParser.IDENTIFIER: | |
case SqlBaseParser.DIGIT_IDENTIFIER: | |
case SqlBaseParser.QUOTED_IDENTIFIER: | |
case SqlBaseParser.BACKQUOTED_IDENTIFIER: | |
case SqlBaseParser.DOUBLE_PRECISION: | |
localctx = new ValueExpressionDefaultContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 971; | |
this.primaryExpression(0); | |
break; | |
case SqlBaseParser.PLUS: | |
case SqlBaseParser.MINUS: | |
localctx = new ArithmeticUnaryContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 972; | |
localctx.operator = this._input.LT(1); | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.PLUS || _la===SqlBaseParser.MINUS)) { | |
localctx.operator = this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
this.state = 973; | |
this.valueExpression(4); | |
break; | |
default: | |
throw new antlr4.error.NoViableAltException(this); | |
} | |
this._ctx.stop = this._input.LT(-1); | |
this.state = 990; | |
this._errHandler.sync(this); | |
var _alt = this._interp.adaptivePredict(this._input,123,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 = 988; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,122,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); | |
localctx.left = _prevctx; | |
this.pushNewRecursionContext(localctx, _startState, SqlBaseParser.RULE_valueExpression); | |
this.state = 976; | |
if (!( this.precpred(this._ctx, 3))) { | |
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); | |
} | |
this.state = 977; | |
localctx.operator = this._input.LT(1); | |
_la = this._input.LA(1); | |
if(!(((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (SqlBaseParser.ASTERISK - 199)) | (1 << (SqlBaseParser.SLASH - 199)) | (1 << (SqlBaseParser.PERCENT - 199)))) !== 0))) { | |
localctx.operator = this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
this.state = 978; | |
localctx.right = this.valueExpression(4); | |
break; | |
case 2: | |
localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); | |
localctx.left = _prevctx; | |
this.pushNewRecursionContext(localctx, _startState, SqlBaseParser.RULE_valueExpression); | |
this.state = 979; | |
if (!( this.precpred(this._ctx, 2))) { | |
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); | |
} | |
this.state = 980; | |
localctx.operator = this._input.LT(1); | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.PLUS || _la===SqlBaseParser.MINUS)) { | |
localctx.operator = this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
this.state = 981; | |
localctx.right = this.valueExpression(3); | |
break; | |
case 3: | |
localctx = new ConcatenationContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); | |
localctx.left = _prevctx; | |
this.pushNewRecursionContext(localctx, _startState, SqlBaseParser.RULE_valueExpression); | |
this.state = 982; | |
if (!( this.precpred(this._ctx, 1))) { | |
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); | |
} | |
this.state = 983; | |
this.match(SqlBaseParser.CONCAT); | |
this.state = 984; | |
localctx.right = this.valueExpression(2); | |
break; | |
case 4: | |
localctx = new AtTimeZoneContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); | |
this.pushNewRecursionContext(localctx, _startState, SqlBaseParser.RULE_valueExpression); | |
this.state = 985; | |
if (!( this.precpred(this._ctx, 5))) { | |
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)"); | |
} | |
this.state = 986; | |
this.match(SqlBaseParser.AT); | |
this.state = 987; | |
this.timeZoneSpecifier(); | |
break; | |
} | |
} | |
this.state = 992; | |
this._errHandler.sync(this); | |
_alt = this._interp.adaptivePredict(this._input,123,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 = SqlBaseParser.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 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; | |
SqlBaseParser.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 SqlBaseListener ) { | |
listener.enterDereference(this); | |
} | |
}; | |
DereferenceContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitDereference(this); | |
} | |
}; | |
function TypeConstructorContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
TypeConstructorContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
TypeConstructorContext.prototype.constructor = TypeConstructorContext; | |
SqlBaseParser.TypeConstructorContext = TypeConstructorContext; | |
TypeConstructorContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
TypeConstructorContext.prototype.string = function() { | |
return this.getTypedRuleContext(StringContext,0); | |
}; | |
TypeConstructorContext.prototype.DOUBLE_PRECISION = function() { | |
return this.getToken(SqlBaseParser.DOUBLE_PRECISION, 0); | |
}; | |
TypeConstructorContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterTypeConstructor(this); | |
} | |
}; | |
TypeConstructorContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitTypeConstructor(this); | |
} | |
}; | |
function SpecialDateTimeFunctionContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
this.name = null; // Token; | |
this.precision = null; // Token; | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
SpecialDateTimeFunctionContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
SpecialDateTimeFunctionContext.prototype.constructor = SpecialDateTimeFunctionContext; | |
SqlBaseParser.SpecialDateTimeFunctionContext = SpecialDateTimeFunctionContext; | |
SpecialDateTimeFunctionContext.prototype.CURRENT_DATE = function() { | |
return this.getToken(SqlBaseParser.CURRENT_DATE, 0); | |
}; | |
SpecialDateTimeFunctionContext.prototype.CURRENT_TIME = function() { | |
return this.getToken(SqlBaseParser.CURRENT_TIME, 0); | |
}; | |
SpecialDateTimeFunctionContext.prototype.INTEGER_VALUE = function() { | |
return this.getToken(SqlBaseParser.INTEGER_VALUE, 0); | |
}; | |
SpecialDateTimeFunctionContext.prototype.CURRENT_TIMESTAMP = function() { | |
return this.getToken(SqlBaseParser.CURRENT_TIMESTAMP, 0); | |
}; | |
SpecialDateTimeFunctionContext.prototype.LOCALTIME = function() { | |
return this.getToken(SqlBaseParser.LOCALTIME, 0); | |
}; | |
SpecialDateTimeFunctionContext.prototype.LOCALTIMESTAMP = function() { | |
return this.getToken(SqlBaseParser.LOCALTIMESTAMP, 0); | |
}; | |
SpecialDateTimeFunctionContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSpecialDateTimeFunction(this); | |
} | |
}; | |
SpecialDateTimeFunctionContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSpecialDateTimeFunction(this); | |
} | |
}; | |
function SubstringContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
SubstringContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
SubstringContext.prototype.constructor = SubstringContext; | |
SqlBaseParser.SubstringContext = SubstringContext; | |
SubstringContext.prototype.SUBSTRING = function() { | |
return this.getToken(SqlBaseParser.SUBSTRING, 0); | |
}; | |
SubstringContext.prototype.valueExpression = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(ValueExpressionContext); | |
} else { | |
return this.getTypedRuleContext(ValueExpressionContext,i); | |
} | |
}; | |
SubstringContext.prototype.FROM = function() { | |
return this.getToken(SqlBaseParser.FROM, 0); | |
}; | |
SubstringContext.prototype.FOR = function() { | |
return this.getToken(SqlBaseParser.FOR, 0); | |
}; | |
SubstringContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSubstring(this); | |
} | |
}; | |
SubstringContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSubstring(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; | |
SqlBaseParser.CastContext = CastContext; | |
CastContext.prototype.CAST = function() { | |
return this.getToken(SqlBaseParser.CAST, 0); | |
}; | |
CastContext.prototype.expression = function() { | |
return this.getTypedRuleContext(ExpressionContext,0); | |
}; | |
CastContext.prototype.AS = function() { | |
return this.getToken(SqlBaseParser.AS, 0); | |
}; | |
CastContext.prototype.type = function() { | |
return this.getTypedRuleContext(TypeContext,0); | |
}; | |
CastContext.prototype.TRY_CAST = function() { | |
return this.getToken(SqlBaseParser.TRY_CAST, 0); | |
}; | |
CastContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterCast(this); | |
} | |
}; | |
CastContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitCast(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; | |
SqlBaseParser.LambdaContext = LambdaContext; | |
LambdaContext.prototype.identifier = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(IdentifierContext); | |
} else { | |
return this.getTypedRuleContext(IdentifierContext,i); | |
} | |
}; | |
LambdaContext.prototype.expression = function() { | |
return this.getTypedRuleContext(ExpressionContext,0); | |
}; | |
LambdaContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterLambda(this); | |
} | |
}; | |
LambdaContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitLambda(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; | |
SqlBaseParser.ParenthesizedExpressionContext = ParenthesizedExpressionContext; | |
ParenthesizedExpressionContext.prototype.expression = function() { | |
return this.getTypedRuleContext(ExpressionContext,0); | |
}; | |
ParenthesizedExpressionContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterParenthesizedExpression(this); | |
} | |
}; | |
ParenthesizedExpressionContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitParenthesizedExpression(this); | |
} | |
}; | |
function ParameterContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ParameterContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
ParameterContext.prototype.constructor = ParameterContext; | |
SqlBaseParser.ParameterContext = ParameterContext; | |
ParameterContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterParameter(this); | |
} | |
}; | |
ParameterContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitParameter(this); | |
} | |
}; | |
function NormalizeContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
NormalizeContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
NormalizeContext.prototype.constructor = NormalizeContext; | |
SqlBaseParser.NormalizeContext = NormalizeContext; | |
NormalizeContext.prototype.NORMALIZE = function() { | |
return this.getToken(SqlBaseParser.NORMALIZE, 0); | |
}; | |
NormalizeContext.prototype.valueExpression = function() { | |
return this.getTypedRuleContext(ValueExpressionContext,0); | |
}; | |
NormalizeContext.prototype.normalForm = function() { | |
return this.getTypedRuleContext(NormalFormContext,0); | |
}; | |
NormalizeContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterNormalize(this); | |
} | |
}; | |
NormalizeContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitNormalize(this); | |
} | |
}; | |
function IntervalLiteralContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
IntervalLiteralContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
IntervalLiteralContext.prototype.constructor = IntervalLiteralContext; | |
SqlBaseParser.IntervalLiteralContext = IntervalLiteralContext; | |
IntervalLiteralContext.prototype.interval = function() { | |
return this.getTypedRuleContext(IntervalContext,0); | |
}; | |
IntervalLiteralContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterIntervalLiteral(this); | |
} | |
}; | |
IntervalLiteralContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitIntervalLiteral(this); | |
} | |
}; | |
function NumericLiteralContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
NumericLiteralContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
NumericLiteralContext.prototype.constructor = NumericLiteralContext; | |
SqlBaseParser.NumericLiteralContext = NumericLiteralContext; | |
NumericLiteralContext.prototype.number = function() { | |
return this.getTypedRuleContext(NumberContext,0); | |
}; | |
NumericLiteralContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterNumericLiteral(this); | |
} | |
}; | |
NumericLiteralContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitNumericLiteral(this); | |
} | |
}; | |
function BooleanLiteralContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
BooleanLiteralContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
BooleanLiteralContext.prototype.constructor = BooleanLiteralContext; | |
SqlBaseParser.BooleanLiteralContext = BooleanLiteralContext; | |
BooleanLiteralContext.prototype.booleanValue = function() { | |
return this.getTypedRuleContext(BooleanValueContext,0); | |
}; | |
BooleanLiteralContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterBooleanLiteral(this); | |
} | |
}; | |
BooleanLiteralContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitBooleanLiteral(this); | |
} | |
}; | |
function SimpleCaseContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
this.elseExpression = null; // ExpressionContext; | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
SimpleCaseContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
SimpleCaseContext.prototype.constructor = SimpleCaseContext; | |
SqlBaseParser.SimpleCaseContext = SimpleCaseContext; | |
SimpleCaseContext.prototype.CASE = function() { | |
return this.getToken(SqlBaseParser.CASE, 0); | |
}; | |
SimpleCaseContext.prototype.valueExpression = function() { | |
return this.getTypedRuleContext(ValueExpressionContext,0); | |
}; | |
SimpleCaseContext.prototype.END = function() { | |
return this.getToken(SqlBaseParser.END, 0); | |
}; | |
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(SqlBaseParser.ELSE, 0); | |
}; | |
SimpleCaseContext.prototype.expression = function() { | |
return this.getTypedRuleContext(ExpressionContext,0); | |
}; | |
SimpleCaseContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSimpleCase(this); | |
} | |
}; | |
SimpleCaseContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSimpleCase(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; | |
SqlBaseParser.ColumnReferenceContext = ColumnReferenceContext; | |
ColumnReferenceContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
ColumnReferenceContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterColumnReference(this); | |
} | |
}; | |
ColumnReferenceContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitColumnReference(this); | |
} | |
}; | |
function NullLiteralContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
NullLiteralContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
NullLiteralContext.prototype.constructor = NullLiteralContext; | |
SqlBaseParser.NullLiteralContext = NullLiteralContext; | |
NullLiteralContext.prototype.NULL = function() { | |
return this.getToken(SqlBaseParser.NULL, 0); | |
}; | |
NullLiteralContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterNullLiteral(this); | |
} | |
}; | |
NullLiteralContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitNullLiteral(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; | |
SqlBaseParser.RowConstructorContext = RowConstructorContext; | |
RowConstructorContext.prototype.expression = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(ExpressionContext); | |
} else { | |
return this.getTypedRuleContext(ExpressionContext,i); | |
} | |
}; | |
RowConstructorContext.prototype.ROW = function() { | |
return this.getToken(SqlBaseParser.ROW, 0); | |
}; | |
RowConstructorContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterRowConstructor(this); | |
} | |
}; | |
RowConstructorContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitRowConstructor(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; | |
SqlBaseParser.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 SqlBaseListener ) { | |
listener.enterSubscript(this); | |
} | |
}; | |
SubscriptContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSubscript(this); | |
} | |
}; | |
function CurrentPathContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
this.name = null; // Token; | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
CurrentPathContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
CurrentPathContext.prototype.constructor = CurrentPathContext; | |
SqlBaseParser.CurrentPathContext = CurrentPathContext; | |
CurrentPathContext.prototype.CURRENT_PATH = function() { | |
return this.getToken(SqlBaseParser.CURRENT_PATH, 0); | |
}; | |
CurrentPathContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterCurrentPath(this); | |
} | |
}; | |
CurrentPathContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitCurrentPath(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; | |
SqlBaseParser.SubqueryExpressionContext = SubqueryExpressionContext; | |
SubqueryExpressionContext.prototype.query = function() { | |
return this.getTypedRuleContext(QueryContext,0); | |
}; | |
SubqueryExpressionContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSubqueryExpression(this); | |
} | |
}; | |
SubqueryExpressionContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSubqueryExpression(this); | |
} | |
}; | |
function BinaryLiteralContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
BinaryLiteralContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
BinaryLiteralContext.prototype.constructor = BinaryLiteralContext; | |
SqlBaseParser.BinaryLiteralContext = BinaryLiteralContext; | |
BinaryLiteralContext.prototype.BINARY_LITERAL = function() { | |
return this.getToken(SqlBaseParser.BINARY_LITERAL, 0); | |
}; | |
BinaryLiteralContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterBinaryLiteral(this); | |
} | |
}; | |
BinaryLiteralContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitBinaryLiteral(this); | |
} | |
}; | |
function CurrentUserContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
this.name = null; // Token; | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
CurrentUserContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
CurrentUserContext.prototype.constructor = CurrentUserContext; | |
SqlBaseParser.CurrentUserContext = CurrentUserContext; | |
CurrentUserContext.prototype.CURRENT_USER = function() { | |
return this.getToken(SqlBaseParser.CURRENT_USER, 0); | |
}; | |
CurrentUserContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterCurrentUser(this); | |
} | |
}; | |
CurrentUserContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitCurrentUser(this); | |
} | |
}; | |
function ExtractContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ExtractContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
ExtractContext.prototype.constructor = ExtractContext; | |
SqlBaseParser.ExtractContext = ExtractContext; | |
ExtractContext.prototype.EXTRACT = function() { | |
return this.getToken(SqlBaseParser.EXTRACT, 0); | |
}; | |
ExtractContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
ExtractContext.prototype.FROM = function() { | |
return this.getToken(SqlBaseParser.FROM, 0); | |
}; | |
ExtractContext.prototype.valueExpression = function() { | |
return this.getTypedRuleContext(ValueExpressionContext,0); | |
}; | |
ExtractContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterExtract(this); | |
} | |
}; | |
ExtractContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitExtract(this); | |
} | |
}; | |
function StringLiteralContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
StringLiteralContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
StringLiteralContext.prototype.constructor = StringLiteralContext; | |
SqlBaseParser.StringLiteralContext = StringLiteralContext; | |
StringLiteralContext.prototype.string = function() { | |
return this.getTypedRuleContext(StringContext,0); | |
}; | |
StringLiteralContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterStringLiteral(this); | |
} | |
}; | |
StringLiteralContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitStringLiteral(this); | |
} | |
}; | |
function ArrayConstructorContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ArrayConstructorContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
ArrayConstructorContext.prototype.constructor = ArrayConstructorContext; | |
SqlBaseParser.ArrayConstructorContext = ArrayConstructorContext; | |
ArrayConstructorContext.prototype.ARRAY = function() { | |
return this.getToken(SqlBaseParser.ARRAY, 0); | |
}; | |
ArrayConstructorContext.prototype.expression = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(ExpressionContext); | |
} else { | |
return this.getTypedRuleContext(ExpressionContext,i); | |
} | |
}; | |
ArrayConstructorContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterArrayConstructor(this); | |
} | |
}; | |
ArrayConstructorContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitArrayConstructor(this); | |
} | |
}; | |
function FunctionCallContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
FunctionCallContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
FunctionCallContext.prototype.constructor = FunctionCallContext; | |
SqlBaseParser.FunctionCallContext = FunctionCallContext; | |
FunctionCallContext.prototype.qualifiedName = function() { | |
return this.getTypedRuleContext(QualifiedNameContext,0); | |
}; | |
FunctionCallContext.prototype.ASTERISK = function() { | |
return this.getToken(SqlBaseParser.ASTERISK, 0); | |
}; | |
FunctionCallContext.prototype.filter = function() { | |
return this.getTypedRuleContext(FilterContext,0); | |
}; | |
FunctionCallContext.prototype.over = function() { | |
return this.getTypedRuleContext(OverContext,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.ORDER = function() { | |
return this.getToken(SqlBaseParser.ORDER, 0); | |
}; | |
FunctionCallContext.prototype.BY = function() { | |
return this.getToken(SqlBaseParser.BY, 0); | |
}; | |
FunctionCallContext.prototype.sortItem = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(SortItemContext); | |
} else { | |
return this.getTypedRuleContext(SortItemContext,i); | |
} | |
}; | |
FunctionCallContext.prototype.setQuantifier = function() { | |
return this.getTypedRuleContext(SetQuantifierContext,0); | |
}; | |
FunctionCallContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterFunctionCall(this); | |
} | |
}; | |
FunctionCallContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitFunctionCall(this); | |
} | |
}; | |
function ExistsContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ExistsContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
ExistsContext.prototype.constructor = ExistsContext; | |
SqlBaseParser.ExistsContext = ExistsContext; | |
ExistsContext.prototype.EXISTS = function() { | |
return this.getToken(SqlBaseParser.EXISTS, 0); | |
}; | |
ExistsContext.prototype.query = function() { | |
return this.getTypedRuleContext(QueryContext,0); | |
}; | |
ExistsContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterExists(this); | |
} | |
}; | |
ExistsContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitExists(this); | |
} | |
}; | |
function PositionContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
PositionContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
PositionContext.prototype.constructor = PositionContext; | |
SqlBaseParser.PositionContext = PositionContext; | |
PositionContext.prototype.POSITION = function() { | |
return this.getToken(SqlBaseParser.POSITION, 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.IN = function() { | |
return this.getToken(SqlBaseParser.IN, 0); | |
}; | |
PositionContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterPosition(this); | |
} | |
}; | |
PositionContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitPosition(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; | |
SqlBaseParser.SearchedCaseContext = SearchedCaseContext; | |
SearchedCaseContext.prototype.CASE = function() { | |
return this.getToken(SqlBaseParser.CASE, 0); | |
}; | |
SearchedCaseContext.prototype.END = function() { | |
return this.getToken(SqlBaseParser.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(SqlBaseParser.ELSE, 0); | |
}; | |
SearchedCaseContext.prototype.expression = function() { | |
return this.getTypedRuleContext(ExpressionContext,0); | |
}; | |
SearchedCaseContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSearchedCase(this); | |
} | |
}; | |
SearchedCaseContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSearchedCase(this); | |
} | |
}; | |
function GroupingOperationContext(parser, ctx) { | |
PrimaryExpressionContext.call(this, parser); | |
PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
GroupingOperationContext.prototype = Object.create(PrimaryExpressionContext.prototype); | |
GroupingOperationContext.prototype.constructor = GroupingOperationContext; | |
SqlBaseParser.GroupingOperationContext = GroupingOperationContext; | |
GroupingOperationContext.prototype.GROUPING = function() { | |
return this.getToken(SqlBaseParser.GROUPING, 0); | |
}; | |
GroupingOperationContext.prototype.qualifiedName = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(QualifiedNameContext); | |
} else { | |
return this.getTypedRuleContext(QualifiedNameContext,i); | |
} | |
}; | |
GroupingOperationContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterGroupingOperation(this); | |
} | |
}; | |
GroupingOperationContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitGroupingOperation(this); | |
} | |
}; | |
SqlBaseParser.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 = 68; | |
this.enterRecursionRule(localctx, 68, SqlBaseParser.RULE_primaryExpression, _p); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1230; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,151,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new NullLiteralContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 994; | |
this.match(SqlBaseParser.NULL); | |
break; | |
case 2: | |
localctx = new IntervalLiteralContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 995; | |
this.interval(); | |
break; | |
case 3: | |
localctx = new TypeConstructorContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 996; | |
this.identifier(); | |
this.state = 997; | |
this.string(); | |
break; | |
case 4: | |
localctx = new TypeConstructorContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 999; | |
this.match(SqlBaseParser.DOUBLE_PRECISION); | |
this.state = 1000; | |
this.string(); | |
break; | |
case 5: | |
localctx = new NumericLiteralContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1001; | |
this.number(); | |
break; | |
case 6: | |
localctx = new BooleanLiteralContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1002; | |
this.booleanValue(); | |
break; | |
case 7: | |
localctx = new StringLiteralContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1003; | |
this.string(); | |
break; | |
case 8: | |
localctx = new BinaryLiteralContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1004; | |
this.match(SqlBaseParser.BINARY_LITERAL); | |
break; | |
case 9: | |
localctx = new ParameterContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1005; | |
this.match(SqlBaseParser.T__4); | |
break; | |
case 10: | |
localctx = new PositionContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1006; | |
this.match(SqlBaseParser.POSITION); | |
this.state = 1007; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1008; | |
this.valueExpression(0); | |
this.state = 1009; | |
this.match(SqlBaseParser.IN); | |
this.state = 1010; | |
this.valueExpression(0); | |
this.state = 1011; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 11: | |
localctx = new RowConstructorContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1013; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1014; | |
this.expression(); | |
this.state = 1017; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
do { | |
this.state = 1015; | |
this.match(SqlBaseParser.T__3); | |
this.state = 1016; | |
this.expression(); | |
this.state = 1019; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} while(_la===SqlBaseParser.T__3); | |
this.state = 1021; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 12: | |
localctx = new RowConstructorContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1023; | |
this.match(SqlBaseParser.ROW); | |
this.state = 1024; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1025; | |
this.expression(); | |
this.state = 1030; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 1026; | |
this.match(SqlBaseParser.T__3); | |
this.state = 1027; | |
this.expression(); | |
this.state = 1032; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
this.state = 1033; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 13: | |
localctx = new FunctionCallContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1035; | |
this.qualifiedName(); | |
this.state = 1036; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1037; | |
this.match(SqlBaseParser.ASTERISK); | |
this.state = 1038; | |
this.match(SqlBaseParser.T__2); | |
this.state = 1040; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,126,this._ctx); | |
if(la_===1) { | |
this.state = 1039; | |
this.filter(); | |
} | |
this.state = 1043; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,127,this._ctx); | |
if(la_===1) { | |
this.state = 1042; | |
this.over(); | |
} | |
break; | |
case 14: | |
localctx = new FunctionCallContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1045; | |
this.qualifiedName(); | |
this.state = 1046; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1058; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SqlBaseParser.T__1) | (1 << SqlBaseParser.T__4) | (1 << SqlBaseParser.ADD) | (1 << SqlBaseParser.ALL) | (1 << SqlBaseParser.ANALYZE) | (1 << SqlBaseParser.ANY) | (1 << SqlBaseParser.ARRAY) | (1 << SqlBaseParser.ASC) | (1 << SqlBaseParser.AT) | (1 << SqlBaseParser.BERNOULLI) | (1 << SqlBaseParser.CALL) | (1 << SqlBaseParser.CASCADE) | (1 << SqlBaseParser.CASE) | (1 << SqlBaseParser.CAST) | (1 << SqlBaseParser.CATALOGS) | (1 << SqlBaseParser.COLUMN) | (1 << SqlBaseParser.COLUMNS) | (1 << SqlBaseParser.COMMENT) | (1 << SqlBaseParser.COMMIT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlBaseParser.COMMITTED - 32)) | (1 << (SqlBaseParser.CURRENT - 32)) | (1 << (SqlBaseParser.CURRENT_DATE - 32)) | (1 << (SqlBaseParser.CURRENT_PATH - 32)) | (1 << (SqlBaseParser.CURRENT_TIME - 32)) | (1 << (SqlBaseParser.CURRENT_TIMESTAMP - 32)) | (1 << (SqlBaseParser.CURRENT_USER - 32)) | (1 << (SqlBaseParser.DATA - 32)) | (1 << (SqlBaseParser.DATE - 32)) | (1 << (SqlBaseParser.DAY - 32)) | (1 << (SqlBaseParser.DESC - 32)) | (1 << (SqlBaseParser.DISTINCT - 32)) | (1 << (SqlBaseParser.DISTRIBUTED - 32)) | (1 << (SqlBaseParser.EXCLUDING - 32)) | (1 << (SqlBaseParser.EXISTS - 32)) | (1 << (SqlBaseParser.EXPLAIN - 32)) | (1 << (SqlBaseParser.EXTRACT - 32)) | (1 << (SqlBaseParser.FALSE - 32)) | (1 << (SqlBaseParser.FILTER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (SqlBaseParser.FIRST - 64)) | (1 << (SqlBaseParser.FOLLOWING - 64)) | (1 << (SqlBaseParser.FORMAT - 64)) | (1 << (SqlBaseParser.FUNCTIONS - 64)) | (1 << (SqlBaseParser.GRANT - 64)) | (1 << (SqlBaseParser.GRANTS - 64)) | (1 << (SqlBaseParser.GRAPHVIZ - 64)) | (1 << (SqlBaseParser.GROUPING - 64)) | (1 << (SqlBaseParser.HOUR - 64)) | (1 << (SqlBaseParser.IF - 64)) | (1 << (SqlBaseParser.INCLUDING - 64)) | (1 << (SqlBaseParser.INPUT - 64)) | (1 << (SqlBaseParser.INTERVAL - 64)) | (1 << (SqlBaseParser.IO - 64)) | (1 << (SqlBaseParser.ISOLATION - 64)) | (1 << (SqlBaseParser.JSON - 64)) | (1 << (SqlBaseParser.LAST - 64)) | (1 << (SqlBaseParser.LATERAL - 64)) | (1 << (SqlBaseParser.LEVEL - 64)))) !== 0) || ((((_la - 97)) & ~0x1f) == 0 && ((1 << (_la - 97)) & ((1 << (SqlBaseParser.LIMIT - 97)) | (1 << (SqlBaseParser.LOCALTIME - 97)) | (1 << (SqlBaseParser.LOCALTIMESTAMP - 97)) | (1 << (SqlBaseParser.LOGICAL - 97)) | (1 << (SqlBaseParser.MAP - 97)) | (1 << (SqlBaseParser.MINUTE - 97)) | (1 << (SqlBaseParser.MONTH - 97)) | (1 << (SqlBaseParser.NFC - 97)) | (1 << (SqlBaseParser.NFD - 97)) | (1 << (SqlBaseParser.NFKC - 97)) | (1 << (SqlBaseParser.NFKD - 97)) | (1 << (SqlBaseParser.NO - 97)) | (1 << (SqlBaseParser.NORMALIZE - 97)) | (1 << (SqlBaseParser.NOT - 97)) | (1 << (SqlBaseParser.NULL - 97)) | (1 << (SqlBaseParser.NULLIF - 97)) | (1 << (SqlBaseParser.NULLS - 97)) | (1 << (SqlBaseParser.ONLY - 97)) | (1 << (SqlBaseParser.OPTION - 97)) | (1 << (SqlBaseParser.ORDINALITY - 97)) | (1 << (SqlBaseParser.OUTPUT - 97)) | (1 << (SqlBaseParser.OVER - 97)) | (1 << (SqlBaseParser.PARTITION - 97)) | (1 << (SqlBaseParser.PARTITIONS - 97)) | (1 << (SqlBaseParser.PATH - 97)) | (1 << (SqlBaseParser.POSITION - 97)) | (1 << (SqlBaseParser.PRECEDING - 97)))) !== 0) || ((((_la - 130)) & ~0x1f) == 0 && ((1 << (_la - 130)) & ((1 << (SqlBaseParser.PRIVILEGES - 130)) | (1 << (SqlBaseParser.PROPERTIES - 130)) | (1 << (SqlBaseParser.PUBLIC - 130)) | (1 << (SqlBaseParser.RANGE - 130)) | (1 << (SqlBaseParser.READ - 130)) | (1 << (SqlBaseParser.RENAME - 130)) | (1 << (SqlBaseParser.REPEATABLE - 130)) | (1 << (SqlBaseParser.REPLACE - 130)) | (1 << (SqlBaseParser.RESET - 130)) | (1 << (SqlBaseParser.RESTRICT - 130)) | (1 << (SqlBaseParser.REVOKE - 130)) | (1 << (SqlBaseParser.ROLLBACK - 130)) | (1 << (SqlBaseParser.ROW - 130)) | (1 << (SqlBaseParser.ROWS - 130)) | (1 << (SqlBaseParser.SCHEMA - 130)) | (1 << (SqlBaseParser.SCHEMAS - 130)) | (1 << (SqlBaseParser.SECOND - 130)) | (1 << (SqlBaseParser.SERIALIZABLE - 130)) | (1 << (SqlBaseParser.SESSION - 130)) | (1 << (SqlBaseParser.SET - 130)) | (1 << (SqlBaseParser.SETS - 130)) | (1 << (SqlBaseParser.SHOW - 130)) | (1 << (SqlBaseParser.SOME - 130)) | (1 << (SqlBaseParser.START - 130)) | (1 << (SqlBaseParser.STATS - 130)) | (1 << (SqlBaseParser.SUBSTRING - 130)) | (1 << (SqlBaseParser.SYSTEM - 130)))) !== 0) || ((((_la - 162)) & ~0x1f) == 0 && ((1 << (_la - 162)) & ((1 << (SqlBaseParser.TABLES - 162)) | (1 << (SqlBaseParser.TABLESAMPLE - 162)) | (1 << (SqlBaseParser.TEXT - 162)) | (1 << (SqlBaseParser.TIME - 162)) | (1 << (SqlBaseParser.TIMESTAMP - 162)) | (1 << (SqlBaseParser.TO - 162)) | (1 << (SqlBaseParser.TRANSACTION - 162)) | (1 << (SqlBaseParser.TRUE - 162)) | (1 << (SqlBaseParser.TRY_CAST - 162)) | (1 << (SqlBaseParser.TYPE - 162)) | (1 << (SqlBaseParser.UNBOUNDED - 162)) | (1 << (SqlBaseParser.UNCOMMITTED - 162)) | (1 << (SqlBaseParser.USE - 162)) | (1 << (SqlBaseParser.VALIDATE - 162)) | (1 << (SqlBaseParser.VERBOSE - 162)) | (1 << (SqlBaseParser.VIEW - 162)) | (1 << (SqlBaseParser.WORK - 162)) | (1 << (SqlBaseParser.WRITE - 162)) | (1 << (SqlBaseParser.YEAR - 162)) | (1 << (SqlBaseParser.ZONE - 162)))) !== 0) || ((((_la - 197)) & ~0x1f) == 0 && ((1 << (_la - 197)) & ((1 << (SqlBaseParser.PLUS - 197)) | (1 << (SqlBaseParser.MINUS - 197)) | (1 << (SqlBaseParser.STRING - 197)) | (1 << (SqlBaseParser.UNICODE_STRING - 197)) | (1 << (SqlBaseParser.BINARY_LITERAL - 197)) | (1 << (SqlBaseParser.INTEGER_VALUE - 197)) | (1 << (SqlBaseParser.DECIMAL_VALUE - 197)) | (1 << (SqlBaseParser.DOUBLE_VALUE - 197)) | (1 << (SqlBaseParser.IDENTIFIER - 197)) | (1 << (SqlBaseParser.DIGIT_IDENTIFIER - 197)) | (1 << (SqlBaseParser.QUOTED_IDENTIFIER - 197)) | (1 << (SqlBaseParser.BACKQUOTED_IDENTIFIER - 197)) | (1 << (SqlBaseParser.DOUBLE_PRECISION - 197)))) !== 0)) { | |
this.state = 1048; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,128,this._ctx); | |
if(la_===1) { | |
this.state = 1047; | |
this.setQuantifier(); | |
} | |
this.state = 1050; | |
this.expression(); | |
this.state = 1055; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 1051; | |
this.match(SqlBaseParser.T__3); | |
this.state = 1052; | |
this.expression(); | |
this.state = 1057; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
} | |
this.state = 1070; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.ORDER) { | |
this.state = 1060; | |
this.match(SqlBaseParser.ORDER); | |
this.state = 1061; | |
this.match(SqlBaseParser.BY); | |
this.state = 1062; | |
this.sortItem(); | |
this.state = 1067; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 1063; | |
this.match(SqlBaseParser.T__3); | |
this.state = 1064; | |
this.sortItem(); | |
this.state = 1069; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
} | |
this.state = 1072; | |
this.match(SqlBaseParser.T__2); | |
this.state = 1074; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,133,this._ctx); | |
if(la_===1) { | |
this.state = 1073; | |
this.filter(); | |
} | |
this.state = 1077; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,134,this._ctx); | |
if(la_===1) { | |
this.state = 1076; | |
this.over(); | |
} | |
break; | |
case 15: | |
localctx = new LambdaContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1079; | |
this.identifier(); | |
this.state = 1080; | |
this.match(SqlBaseParser.T__5); | |
this.state = 1081; | |
this.expression(); | |
break; | |
case 16: | |
localctx = new LambdaContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1083; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1092; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SqlBaseParser.ADD) | (1 << SqlBaseParser.ALL) | (1 << SqlBaseParser.ANALYZE) | (1 << SqlBaseParser.ANY) | (1 << SqlBaseParser.ARRAY) | (1 << SqlBaseParser.ASC) | (1 << SqlBaseParser.AT) | (1 << SqlBaseParser.BERNOULLI) | (1 << SqlBaseParser.CALL) | (1 << SqlBaseParser.CASCADE) | (1 << SqlBaseParser.CATALOGS) | (1 << SqlBaseParser.COLUMN) | (1 << SqlBaseParser.COLUMNS) | (1 << SqlBaseParser.COMMENT) | (1 << SqlBaseParser.COMMIT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlBaseParser.COMMITTED - 32)) | (1 << (SqlBaseParser.CURRENT - 32)) | (1 << (SqlBaseParser.DATA - 32)) | (1 << (SqlBaseParser.DATE - 32)) | (1 << (SqlBaseParser.DAY - 32)) | (1 << (SqlBaseParser.DESC - 32)) | (1 << (SqlBaseParser.DISTRIBUTED - 32)) | (1 << (SqlBaseParser.EXCLUDING - 32)) | (1 << (SqlBaseParser.EXPLAIN - 32)) | (1 << (SqlBaseParser.FILTER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (SqlBaseParser.FIRST - 64)) | (1 << (SqlBaseParser.FOLLOWING - 64)) | (1 << (SqlBaseParser.FORMAT - 64)) | (1 << (SqlBaseParser.FUNCTIONS - 64)) | (1 << (SqlBaseParser.GRANT - 64)) | (1 << (SqlBaseParser.GRANTS - 64)) | (1 << (SqlBaseParser.GRAPHVIZ - 64)) | (1 << (SqlBaseParser.HOUR - 64)) | (1 << (SqlBaseParser.IF - 64)) | (1 << (SqlBaseParser.INCLUDING - 64)) | (1 << (SqlBaseParser.INPUT - 64)) | (1 << (SqlBaseParser.INTERVAL - 64)) | (1 << (SqlBaseParser.IO - 64)) | (1 << (SqlBaseParser.ISOLATION - 64)) | (1 << (SqlBaseParser.JSON - 64)) | (1 << (SqlBaseParser.LAST - 64)) | (1 << (SqlBaseParser.LATERAL - 64)) | (1 << (SqlBaseParser.LEVEL - 64)))) !== 0) || ((((_la - 97)) & ~0x1f) == 0 && ((1 << (_la - 97)) & ((1 << (SqlBaseParser.LIMIT - 97)) | (1 << (SqlBaseParser.LOGICAL - 97)) | (1 << (SqlBaseParser.MAP - 97)) | (1 << (SqlBaseParser.MINUTE - 97)) | (1 << (SqlBaseParser.MONTH - 97)) | (1 << (SqlBaseParser.NFC - 97)) | (1 << (SqlBaseParser.NFD - 97)) | (1 << (SqlBaseParser.NFKC - 97)) | (1 << (SqlBaseParser.NFKD - 97)) | (1 << (SqlBaseParser.NO - 97)) | (1 << (SqlBaseParser.NULLIF - 97)) | (1 << (SqlBaseParser.NULLS - 97)) | (1 << (SqlBaseParser.ONLY - 97)) | (1 << (SqlBaseParser.OPTION - 97)) | (1 << (SqlBaseParser.ORDINALITY - 97)) | (1 << (SqlBaseParser.OUTPUT - 97)) | (1 << (SqlBaseParser.OVER - 97)) | (1 << (SqlBaseParser.PARTITION - 97)) | (1 << (SqlBaseParser.PARTITIONS - 97)) | (1 << (SqlBaseParser.PATH - 97)) | (1 << (SqlBaseParser.POSITION - 97)) | (1 << (SqlBaseParser.PRECEDING - 97)))) !== 0) || ((((_la - 130)) & ~0x1f) == 0 && ((1 << (_la - 130)) & ((1 << (SqlBaseParser.PRIVILEGES - 130)) | (1 << (SqlBaseParser.PROPERTIES - 130)) | (1 << (SqlBaseParser.PUBLIC - 130)) | (1 << (SqlBaseParser.RANGE - 130)) | (1 << (SqlBaseParser.READ - 130)) | (1 << (SqlBaseParser.RENAME - 130)) | (1 << (SqlBaseParser.REPEATABLE - 130)) | (1 << (SqlBaseParser.REPLACE - 130)) | (1 << (SqlBaseParser.RESET - 130)) | (1 << (SqlBaseParser.RESTRICT - 130)) | (1 << (SqlBaseParser.REVOKE - 130)) | (1 << (SqlBaseParser.ROLLBACK - 130)) | (1 << (SqlBaseParser.ROW - 130)) | (1 << (SqlBaseParser.ROWS - 130)) | (1 << (SqlBaseParser.SCHEMA - 130)) | (1 << (SqlBaseParser.SCHEMAS - 130)) | (1 << (SqlBaseParser.SECOND - 130)) | (1 << (SqlBaseParser.SERIALIZABLE - 130)) | (1 << (SqlBaseParser.SESSION - 130)) | (1 << (SqlBaseParser.SET - 130)) | (1 << (SqlBaseParser.SETS - 130)) | (1 << (SqlBaseParser.SHOW - 130)) | (1 << (SqlBaseParser.SOME - 130)) | (1 << (SqlBaseParser.START - 130)) | (1 << (SqlBaseParser.STATS - 130)) | (1 << (SqlBaseParser.SUBSTRING - 130)) | (1 << (SqlBaseParser.SYSTEM - 130)))) !== 0) || ((((_la - 162)) & ~0x1f) == 0 && ((1 << (_la - 162)) & ((1 << (SqlBaseParser.TABLES - 162)) | (1 << (SqlBaseParser.TABLESAMPLE - 162)) | (1 << (SqlBaseParser.TEXT - 162)) | (1 << (SqlBaseParser.TIME - 162)) | (1 << (SqlBaseParser.TIMESTAMP - 162)) | (1 << (SqlBaseParser.TO - 162)) | (1 << (SqlBaseParser.TRANSACTION - 162)) | (1 << (SqlBaseParser.TRY_CAST - 162)) | (1 << (SqlBaseParser.TYPE - 162)) | (1 << (SqlBaseParser.UNBOUNDED - 162)) | (1 << (SqlBaseParser.UNCOMMITTED - 162)) | (1 << (SqlBaseParser.USE - 162)) | (1 << (SqlBaseParser.VALIDATE - 162)) | (1 << (SqlBaseParser.VERBOSE - 162)) | (1 << (SqlBaseParser.VIEW - 162)) | (1 << (SqlBaseParser.WORK - 162)) | (1 << (SqlBaseParser.WRITE - 162)) | (1 << (SqlBaseParser.YEAR - 162)) | (1 << (SqlBaseParser.ZONE - 162)))) !== 0) || ((((_la - 209)) & ~0x1f) == 0 && ((1 << (_la - 209)) & ((1 << (SqlBaseParser.IDENTIFIER - 209)) | (1 << (SqlBaseParser.DIGIT_IDENTIFIER - 209)) | (1 << (SqlBaseParser.QUOTED_IDENTIFIER - 209)) | (1 << (SqlBaseParser.BACKQUOTED_IDENTIFIER - 209)))) !== 0)) { | |
this.state = 1084; | |
this.identifier(); | |
this.state = 1089; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 1085; | |
this.match(SqlBaseParser.T__3); | |
this.state = 1086; | |
this.identifier(); | |
this.state = 1091; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
} | |
this.state = 1094; | |
this.match(SqlBaseParser.T__2); | |
this.state = 1095; | |
this.match(SqlBaseParser.T__5); | |
this.state = 1096; | |
this.expression(); | |
break; | |
case 17: | |
localctx = new SubqueryExpressionContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1097; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1098; | |
this.query(); | |
this.state = 1099; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 18: | |
localctx = new ExistsContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1101; | |
this.match(SqlBaseParser.EXISTS); | |
this.state = 1102; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1103; | |
this.query(); | |
this.state = 1104; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 19: | |
localctx = new SimpleCaseContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1106; | |
this.match(SqlBaseParser.CASE); | |
this.state = 1107; | |
this.valueExpression(0); | |
this.state = 1109; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
do { | |
this.state = 1108; | |
this.whenClause(); | |
this.state = 1111; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} while(_la===SqlBaseParser.WHEN); | |
this.state = 1115; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.ELSE) { | |
this.state = 1113; | |
this.match(SqlBaseParser.ELSE); | |
this.state = 1114; | |
localctx.elseExpression = this.expression(); | |
} | |
this.state = 1117; | |
this.match(SqlBaseParser.END); | |
break; | |
case 20: | |
localctx = new SearchedCaseContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1119; | |
this.match(SqlBaseParser.CASE); | |
this.state = 1121; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
do { | |
this.state = 1120; | |
this.whenClause(); | |
this.state = 1123; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} while(_la===SqlBaseParser.WHEN); | |
this.state = 1127; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.ELSE) { | |
this.state = 1125; | |
this.match(SqlBaseParser.ELSE); | |
this.state = 1126; | |
localctx.elseExpression = this.expression(); | |
} | |
this.state = 1129; | |
this.match(SqlBaseParser.END); | |
break; | |
case 21: | |
localctx = new CastContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1131; | |
this.match(SqlBaseParser.CAST); | |
this.state = 1132; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1133; | |
this.expression(); | |
this.state = 1134; | |
this.match(SqlBaseParser.AS); | |
this.state = 1135; | |
this.type(0); | |
this.state = 1136; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 22: | |
localctx = new CastContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1138; | |
this.match(SqlBaseParser.TRY_CAST); | |
this.state = 1139; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1140; | |
this.expression(); | |
this.state = 1141; | |
this.match(SqlBaseParser.AS); | |
this.state = 1142; | |
this.type(0); | |
this.state = 1143; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 23: | |
localctx = new ArrayConstructorContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1145; | |
this.match(SqlBaseParser.ARRAY); | |
this.state = 1146; | |
this.match(SqlBaseParser.T__6); | |
this.state = 1155; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SqlBaseParser.T__1) | (1 << SqlBaseParser.T__4) | (1 << SqlBaseParser.ADD) | (1 << SqlBaseParser.ALL) | (1 << SqlBaseParser.ANALYZE) | (1 << SqlBaseParser.ANY) | (1 << SqlBaseParser.ARRAY) | (1 << SqlBaseParser.ASC) | (1 << SqlBaseParser.AT) | (1 << SqlBaseParser.BERNOULLI) | (1 << SqlBaseParser.CALL) | (1 << SqlBaseParser.CASCADE) | (1 << SqlBaseParser.CASE) | (1 << SqlBaseParser.CAST) | (1 << SqlBaseParser.CATALOGS) | (1 << SqlBaseParser.COLUMN) | (1 << SqlBaseParser.COLUMNS) | (1 << SqlBaseParser.COMMENT) | (1 << SqlBaseParser.COMMIT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlBaseParser.COMMITTED - 32)) | (1 << (SqlBaseParser.CURRENT - 32)) | (1 << (SqlBaseParser.CURRENT_DATE - 32)) | (1 << (SqlBaseParser.CURRENT_PATH - 32)) | (1 << (SqlBaseParser.CURRENT_TIME - 32)) | (1 << (SqlBaseParser.CURRENT_TIMESTAMP - 32)) | (1 << (SqlBaseParser.CURRENT_USER - 32)) | (1 << (SqlBaseParser.DATA - 32)) | (1 << (SqlBaseParser.DATE - 32)) | (1 << (SqlBaseParser.DAY - 32)) | (1 << (SqlBaseParser.DESC - 32)) | (1 << (SqlBaseParser.DISTRIBUTED - 32)) | (1 << (SqlBaseParser.EXCLUDING - 32)) | (1 << (SqlBaseParser.EXISTS - 32)) | (1 << (SqlBaseParser.EXPLAIN - 32)) | (1 << (SqlBaseParser.EXTRACT - 32)) | (1 << (SqlBaseParser.FALSE - 32)) | (1 << (SqlBaseParser.FILTER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (SqlBaseParser.FIRST - 64)) | (1 << (SqlBaseParser.FOLLOWING - 64)) | (1 << (SqlBaseParser.FORMAT - 64)) | (1 << (SqlBaseParser.FUNCTIONS - 64)) | (1 << (SqlBaseParser.GRANT - 64)) | (1 << (SqlBaseParser.GRANTS - 64)) | (1 << (SqlBaseParser.GRAPHVIZ - 64)) | (1 << (SqlBaseParser.GROUPING - 64)) | (1 << (SqlBaseParser.HOUR - 64)) | (1 << (SqlBaseParser.IF - 64)) | (1 << (SqlBaseParser.INCLUDING - 64)) | (1 << (SqlBaseParser.INPUT - 64)) | (1 << (SqlBaseParser.INTERVAL - 64)) | (1 << (SqlBaseParser.IO - 64)) | (1 << (SqlBaseParser.ISOLATION - 64)) | (1 << (SqlBaseParser.JSON - 64)) | (1 << (SqlBaseParser.LAST - 64)) | (1 << (SqlBaseParser.LATERAL - 64)) | (1 << (SqlBaseParser.LEVEL - 64)))) !== 0) || ((((_la - 97)) & ~0x1f) == 0 && ((1 << (_la - 97)) & ((1 << (SqlBaseParser.LIMIT - 97)) | (1 << (SqlBaseParser.LOCALTIME - 97)) | (1 << (SqlBaseParser.LOCALTIMESTAMP - 97)) | (1 << (SqlBaseParser.LOGICAL - 97)) | (1 << (SqlBaseParser.MAP - 97)) | (1 << (SqlBaseParser.MINUTE - 97)) | (1 << (SqlBaseParser.MONTH - 97)) | (1 << (SqlBaseParser.NFC - 97)) | (1 << (SqlBaseParser.NFD - 97)) | (1 << (SqlBaseParser.NFKC - 97)) | (1 << (SqlBaseParser.NFKD - 97)) | (1 << (SqlBaseParser.NO - 97)) | (1 << (SqlBaseParser.NORMALIZE - 97)) | (1 << (SqlBaseParser.NOT - 97)) | (1 << (SqlBaseParser.NULL - 97)) | (1 << (SqlBaseParser.NULLIF - 97)) | (1 << (SqlBaseParser.NULLS - 97)) | (1 << (SqlBaseParser.ONLY - 97)) | (1 << (SqlBaseParser.OPTION - 97)) | (1 << (SqlBaseParser.ORDINALITY - 97)) | (1 << (SqlBaseParser.OUTPUT - 97)) | (1 << (SqlBaseParser.OVER - 97)) | (1 << (SqlBaseParser.PARTITION - 97)) | (1 << (SqlBaseParser.PARTITIONS - 97)) | (1 << (SqlBaseParser.PATH - 97)) | (1 << (SqlBaseParser.POSITION - 97)) | (1 << (SqlBaseParser.PRECEDING - 97)))) !== 0) || ((((_la - 130)) & ~0x1f) == 0 && ((1 << (_la - 130)) & ((1 << (SqlBaseParser.PRIVILEGES - 130)) | (1 << (SqlBaseParser.PROPERTIES - 130)) | (1 << (SqlBaseParser.PUBLIC - 130)) | (1 << (SqlBaseParser.RANGE - 130)) | (1 << (SqlBaseParser.READ - 130)) | (1 << (SqlBaseParser.RENAME - 130)) | (1 << (SqlBaseParser.REPEATABLE - 130)) | (1 << (SqlBaseParser.REPLACE - 130)) | (1 << (SqlBaseParser.RESET - 130)) | (1 << (SqlBaseParser.RESTRICT - 130)) | (1 << (SqlBaseParser.REVOKE - 130)) | (1 << (SqlBaseParser.ROLLBACK - 130)) | (1 << (SqlBaseParser.ROW - 130)) | (1 << (SqlBaseParser.ROWS - 130)) | (1 << (SqlBaseParser.SCHEMA - 130)) | (1 << (SqlBaseParser.SCHEMAS - 130)) | (1 << (SqlBaseParser.SECOND - 130)) | (1 << (SqlBaseParser.SERIALIZABLE - 130)) | (1 << (SqlBaseParser.SESSION - 130)) | (1 << (SqlBaseParser.SET - 130)) | (1 << (SqlBaseParser.SETS - 130)) | (1 << (SqlBaseParser.SHOW - 130)) | (1 << (SqlBaseParser.SOME - 130)) | (1 << (SqlBaseParser.START - 130)) | (1 << (SqlBaseParser.STATS - 130)) | (1 << (SqlBaseParser.SUBSTRING - 130)) | (1 << (SqlBaseParser.SYSTEM - 130)))) !== 0) || ((((_la - 162)) & ~0x1f) == 0 && ((1 << (_la - 162)) & ((1 << (SqlBaseParser.TABLES - 162)) | (1 << (SqlBaseParser.TABLESAMPLE - 162)) | (1 << (SqlBaseParser.TEXT - 162)) | (1 << (SqlBaseParser.TIME - 162)) | (1 << (SqlBaseParser.TIMESTAMP - 162)) | (1 << (SqlBaseParser.TO - 162)) | (1 << (SqlBaseParser.TRANSACTION - 162)) | (1 << (SqlBaseParser.TRUE - 162)) | (1 << (SqlBaseParser.TRY_CAST - 162)) | (1 << (SqlBaseParser.TYPE - 162)) | (1 << (SqlBaseParser.UNBOUNDED - 162)) | (1 << (SqlBaseParser.UNCOMMITTED - 162)) | (1 << (SqlBaseParser.USE - 162)) | (1 << (SqlBaseParser.VALIDATE - 162)) | (1 << (SqlBaseParser.VERBOSE - 162)) | (1 << (SqlBaseParser.VIEW - 162)) | (1 << (SqlBaseParser.WORK - 162)) | (1 << (SqlBaseParser.WRITE - 162)) | (1 << (SqlBaseParser.YEAR - 162)) | (1 << (SqlBaseParser.ZONE - 162)))) !== 0) || ((((_la - 197)) & ~0x1f) == 0 && ((1 << (_la - 197)) & ((1 << (SqlBaseParser.PLUS - 197)) | (1 << (SqlBaseParser.MINUS - 197)) | (1 << (SqlBaseParser.STRING - 197)) | (1 << (SqlBaseParser.UNICODE_STRING - 197)) | (1 << (SqlBaseParser.BINARY_LITERAL - 197)) | (1 << (SqlBaseParser.INTEGER_VALUE - 197)) | (1 << (SqlBaseParser.DECIMAL_VALUE - 197)) | (1 << (SqlBaseParser.DOUBLE_VALUE - 197)) | (1 << (SqlBaseParser.IDENTIFIER - 197)) | (1 << (SqlBaseParser.DIGIT_IDENTIFIER - 197)) | (1 << (SqlBaseParser.QUOTED_IDENTIFIER - 197)) | (1 << (SqlBaseParser.BACKQUOTED_IDENTIFIER - 197)) | (1 << (SqlBaseParser.DOUBLE_PRECISION - 197)))) !== 0)) { | |
this.state = 1147; | |
this.expression(); | |
this.state = 1152; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 1148; | |
this.match(SqlBaseParser.T__3); | |
this.state = 1149; | |
this.expression(); | |
this.state = 1154; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
} | |
this.state = 1157; | |
this.match(SqlBaseParser.T__7); | |
break; | |
case 24: | |
localctx = new ColumnReferenceContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1158; | |
this.identifier(); | |
break; | |
case 25: | |
localctx = new SpecialDateTimeFunctionContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1159; | |
localctx.name = this.match(SqlBaseParser.CURRENT_DATE); | |
break; | |
case 26: | |
localctx = new SpecialDateTimeFunctionContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1160; | |
localctx.name = this.match(SqlBaseParser.CURRENT_TIME); | |
this.state = 1164; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,143,this._ctx); | |
if(la_===1) { | |
this.state = 1161; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1162; | |
localctx.precision = this.match(SqlBaseParser.INTEGER_VALUE); | |
this.state = 1163; | |
this.match(SqlBaseParser.T__2); | |
} | |
break; | |
case 27: | |
localctx = new SpecialDateTimeFunctionContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1166; | |
localctx.name = this.match(SqlBaseParser.CURRENT_TIMESTAMP); | |
this.state = 1170; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,144,this._ctx); | |
if(la_===1) { | |
this.state = 1167; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1168; | |
localctx.precision = this.match(SqlBaseParser.INTEGER_VALUE); | |
this.state = 1169; | |
this.match(SqlBaseParser.T__2); | |
} | |
break; | |
case 28: | |
localctx = new SpecialDateTimeFunctionContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1172; | |
localctx.name = this.match(SqlBaseParser.LOCALTIME); | |
this.state = 1176; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,145,this._ctx); | |
if(la_===1) { | |
this.state = 1173; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1174; | |
localctx.precision = this.match(SqlBaseParser.INTEGER_VALUE); | |
this.state = 1175; | |
this.match(SqlBaseParser.T__2); | |
} | |
break; | |
case 29: | |
localctx = new SpecialDateTimeFunctionContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1178; | |
localctx.name = this.match(SqlBaseParser.LOCALTIMESTAMP); | |
this.state = 1182; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,146,this._ctx); | |
if(la_===1) { | |
this.state = 1179; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1180; | |
localctx.precision = this.match(SqlBaseParser.INTEGER_VALUE); | |
this.state = 1181; | |
this.match(SqlBaseParser.T__2); | |
} | |
break; | |
case 30: | |
localctx = new CurrentUserContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1184; | |
localctx.name = this.match(SqlBaseParser.CURRENT_USER); | |
break; | |
case 31: | |
localctx = new CurrentPathContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1185; | |
localctx.name = this.match(SqlBaseParser.CURRENT_PATH); | |
break; | |
case 32: | |
localctx = new SubstringContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1186; | |
this.match(SqlBaseParser.SUBSTRING); | |
this.state = 1187; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1188; | |
this.valueExpression(0); | |
this.state = 1189; | |
this.match(SqlBaseParser.FROM); | |
this.state = 1190; | |
this.valueExpression(0); | |
this.state = 1193; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.FOR) { | |
this.state = 1191; | |
this.match(SqlBaseParser.FOR); | |
this.state = 1192; | |
this.valueExpression(0); | |
} | |
this.state = 1195; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 33: | |
localctx = new NormalizeContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1197; | |
this.match(SqlBaseParser.NORMALIZE); | |
this.state = 1198; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1199; | |
this.valueExpression(0); | |
this.state = 1202; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.T__3) { | |
this.state = 1200; | |
this.match(SqlBaseParser.T__3); | |
this.state = 1201; | |
this.normalForm(); | |
} | |
this.state = 1204; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 34: | |
localctx = new ExtractContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1206; | |
this.match(SqlBaseParser.EXTRACT); | |
this.state = 1207; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1208; | |
this.identifier(); | |
this.state = 1209; | |
this.match(SqlBaseParser.FROM); | |
this.state = 1210; | |
this.valueExpression(0); | |
this.state = 1211; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 35: | |
localctx = new ParenthesizedExpressionContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1213; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1214; | |
this.expression(); | |
this.state = 1215; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 36: | |
localctx = new GroupingOperationContext(this, localctx); | |
this._ctx = localctx; | |
_prevctx = localctx; | |
this.state = 1217; | |
this.match(SqlBaseParser.GROUPING); | |
this.state = 1218; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1227; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SqlBaseParser.ADD) | (1 << SqlBaseParser.ALL) | (1 << SqlBaseParser.ANALYZE) | (1 << SqlBaseParser.ANY) | (1 << SqlBaseParser.ARRAY) | (1 << SqlBaseParser.ASC) | (1 << SqlBaseParser.AT) | (1 << SqlBaseParser.BERNOULLI) | (1 << SqlBaseParser.CALL) | (1 << SqlBaseParser.CASCADE) | (1 << SqlBaseParser.CATALOGS) | (1 << SqlBaseParser.COLUMN) | (1 << SqlBaseParser.COLUMNS) | (1 << SqlBaseParser.COMMENT) | (1 << SqlBaseParser.COMMIT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlBaseParser.COMMITTED - 32)) | (1 << (SqlBaseParser.CURRENT - 32)) | (1 << (SqlBaseParser.DATA - 32)) | (1 << (SqlBaseParser.DATE - 32)) | (1 << (SqlBaseParser.DAY - 32)) | (1 << (SqlBaseParser.DESC - 32)) | (1 << (SqlBaseParser.DISTRIBUTED - 32)) | (1 << (SqlBaseParser.EXCLUDING - 32)) | (1 << (SqlBaseParser.EXPLAIN - 32)) | (1 << (SqlBaseParser.FILTER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (SqlBaseParser.FIRST - 64)) | (1 << (SqlBaseParser.FOLLOWING - 64)) | (1 << (SqlBaseParser.FORMAT - 64)) | (1 << (SqlBaseParser.FUNCTIONS - 64)) | (1 << (SqlBaseParser.GRANT - 64)) | (1 << (SqlBaseParser.GRANTS - 64)) | (1 << (SqlBaseParser.GRAPHVIZ - 64)) | (1 << (SqlBaseParser.HOUR - 64)) | (1 << (SqlBaseParser.IF - 64)) | (1 << (SqlBaseParser.INCLUDING - 64)) | (1 << (SqlBaseParser.INPUT - 64)) | (1 << (SqlBaseParser.INTERVAL - 64)) | (1 << (SqlBaseParser.IO - 64)) | (1 << (SqlBaseParser.ISOLATION - 64)) | (1 << (SqlBaseParser.JSON - 64)) | (1 << (SqlBaseParser.LAST - 64)) | (1 << (SqlBaseParser.LATERAL - 64)) | (1 << (SqlBaseParser.LEVEL - 64)))) !== 0) || ((((_la - 97)) & ~0x1f) == 0 && ((1 << (_la - 97)) & ((1 << (SqlBaseParser.LIMIT - 97)) | (1 << (SqlBaseParser.LOGICAL - 97)) | (1 << (SqlBaseParser.MAP - 97)) | (1 << (SqlBaseParser.MINUTE - 97)) | (1 << (SqlBaseParser.MONTH - 97)) | (1 << (SqlBaseParser.NFC - 97)) | (1 << (SqlBaseParser.NFD - 97)) | (1 << (SqlBaseParser.NFKC - 97)) | (1 << (SqlBaseParser.NFKD - 97)) | (1 << (SqlBaseParser.NO - 97)) | (1 << (SqlBaseParser.NULLIF - 97)) | (1 << (SqlBaseParser.NULLS - 97)) | (1 << (SqlBaseParser.ONLY - 97)) | (1 << (SqlBaseParser.OPTION - 97)) | (1 << (SqlBaseParser.ORDINALITY - 97)) | (1 << (SqlBaseParser.OUTPUT - 97)) | (1 << (SqlBaseParser.OVER - 97)) | (1 << (SqlBaseParser.PARTITION - 97)) | (1 << (SqlBaseParser.PARTITIONS - 97)) | (1 << (SqlBaseParser.PATH - 97)) | (1 << (SqlBaseParser.POSITION - 97)) | (1 << (SqlBaseParser.PRECEDING - 97)))) !== 0) || ((((_la - 130)) & ~0x1f) == 0 && ((1 << (_la - 130)) & ((1 << (SqlBaseParser.PRIVILEGES - 130)) | (1 << (SqlBaseParser.PROPERTIES - 130)) | (1 << (SqlBaseParser.PUBLIC - 130)) | (1 << (SqlBaseParser.RANGE - 130)) | (1 << (SqlBaseParser.READ - 130)) | (1 << (SqlBaseParser.RENAME - 130)) | (1 << (SqlBaseParser.REPEATABLE - 130)) | (1 << (SqlBaseParser.REPLACE - 130)) | (1 << (SqlBaseParser.RESET - 130)) | (1 << (SqlBaseParser.RESTRICT - 130)) | (1 << (SqlBaseParser.REVOKE - 130)) | (1 << (SqlBaseParser.ROLLBACK - 130)) | (1 << (SqlBaseParser.ROW - 130)) | (1 << (SqlBaseParser.ROWS - 130)) | (1 << (SqlBaseParser.SCHEMA - 130)) | (1 << (SqlBaseParser.SCHEMAS - 130)) | (1 << (SqlBaseParser.SECOND - 130)) | (1 << (SqlBaseParser.SERIALIZABLE - 130)) | (1 << (SqlBaseParser.SESSION - 130)) | (1 << (SqlBaseParser.SET - 130)) | (1 << (SqlBaseParser.SETS - 130)) | (1 << (SqlBaseParser.SHOW - 130)) | (1 << (SqlBaseParser.SOME - 130)) | (1 << (SqlBaseParser.START - 130)) | (1 << (SqlBaseParser.STATS - 130)) | (1 << (SqlBaseParser.SUBSTRING - 130)) | (1 << (SqlBaseParser.SYSTEM - 130)))) !== 0) || ((((_la - 162)) & ~0x1f) == 0 && ((1 << (_la - 162)) & ((1 << (SqlBaseParser.TABLES - 162)) | (1 << (SqlBaseParser.TABLESAMPLE - 162)) | (1 << (SqlBaseParser.TEXT - 162)) | (1 << (SqlBaseParser.TIME - 162)) | (1 << (SqlBaseParser.TIMESTAMP - 162)) | (1 << (SqlBaseParser.TO - 162)) | (1 << (SqlBaseParser.TRANSACTION - 162)) | (1 << (SqlBaseParser.TRY_CAST - 162)) | (1 << (SqlBaseParser.TYPE - 162)) | (1 << (SqlBaseParser.UNBOUNDED - 162)) | (1 << (SqlBaseParser.UNCOMMITTED - 162)) | (1 << (SqlBaseParser.USE - 162)) | (1 << (SqlBaseParser.VALIDATE - 162)) | (1 << (SqlBaseParser.VERBOSE - 162)) | (1 << (SqlBaseParser.VIEW - 162)) | (1 << (SqlBaseParser.WORK - 162)) | (1 << (SqlBaseParser.WRITE - 162)) | (1 << (SqlBaseParser.YEAR - 162)) | (1 << (SqlBaseParser.ZONE - 162)))) !== 0) || ((((_la - 209)) & ~0x1f) == 0 && ((1 << (_la - 209)) & ((1 << (SqlBaseParser.IDENTIFIER - 209)) | (1 << (SqlBaseParser.DIGIT_IDENTIFIER - 209)) | (1 << (SqlBaseParser.QUOTED_IDENTIFIER - 209)) | (1 << (SqlBaseParser.BACKQUOTED_IDENTIFIER - 209)))) !== 0)) { | |
this.state = 1219; | |
this.qualifiedName(); | |
this.state = 1224; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 1220; | |
this.match(SqlBaseParser.T__3); | |
this.state = 1221; | |
this.qualifiedName(); | |
this.state = 1226; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
} | |
this.state = 1229; | |
this.match(SqlBaseParser.T__2); | |
break; | |
} | |
this._ctx.stop = this._input.LT(-1); | |
this.state = 1242; | |
this._errHandler.sync(this); | |
var _alt = this._interp.adaptivePredict(this._input,153,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 = 1240; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,152,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new SubscriptContext(this, new PrimaryExpressionContext(this, _parentctx, _parentState)); | |
localctx.value = _prevctx; | |
this.pushNewRecursionContext(localctx, _startState, SqlBaseParser.RULE_primaryExpression); | |
this.state = 1232; | |
if (!( this.precpred(this._ctx, 15))) { | |
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 15)"); | |
} | |
this.state = 1233; | |
this.match(SqlBaseParser.T__6); | |
this.state = 1234; | |
localctx.index = this.valueExpression(0); | |
this.state = 1235; | |
this.match(SqlBaseParser.T__7); | |
break; | |
case 2: | |
localctx = new DereferenceContext(this, new PrimaryExpressionContext(this, _parentctx, _parentState)); | |
localctx.base = _prevctx; | |
this.pushNewRecursionContext(localctx, _startState, SqlBaseParser.RULE_primaryExpression); | |
this.state = 1237; | |
if (!( this.precpred(this._ctx, 13))) { | |
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 13)"); | |
} | |
this.state = 1238; | |
this.match(SqlBaseParser.T__0); | |
this.state = 1239; | |
localctx.fieldName = this.identifier(); | |
break; | |
} | |
} | |
this.state = 1244; | |
this._errHandler.sync(this); | |
_alt = this._interp.adaptivePredict(this._input,153,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 StringContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_string; | |
return this; | |
} | |
StringContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
StringContext.prototype.constructor = StringContext; | |
StringContext.prototype.copyFrom = function(ctx) { | |
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); | |
}; | |
function UnicodeStringLiteralContext(parser, ctx) { | |
StringContext.call(this, parser); | |
StringContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
UnicodeStringLiteralContext.prototype = Object.create(StringContext.prototype); | |
UnicodeStringLiteralContext.prototype.constructor = UnicodeStringLiteralContext; | |
SqlBaseParser.UnicodeStringLiteralContext = UnicodeStringLiteralContext; | |
UnicodeStringLiteralContext.prototype.UNICODE_STRING = function() { | |
return this.getToken(SqlBaseParser.UNICODE_STRING, 0); | |
}; | |
UnicodeStringLiteralContext.prototype.UESCAPE = function() { | |
return this.getToken(SqlBaseParser.UESCAPE, 0); | |
}; | |
UnicodeStringLiteralContext.prototype.STRING = function() { | |
return this.getToken(SqlBaseParser.STRING, 0); | |
}; | |
UnicodeStringLiteralContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterUnicodeStringLiteral(this); | |
} | |
}; | |
UnicodeStringLiteralContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitUnicodeStringLiteral(this); | |
} | |
}; | |
function BasicStringLiteralContext(parser, ctx) { | |
StringContext.call(this, parser); | |
StringContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
BasicStringLiteralContext.prototype = Object.create(StringContext.prototype); | |
BasicStringLiteralContext.prototype.constructor = BasicStringLiteralContext; | |
SqlBaseParser.BasicStringLiteralContext = BasicStringLiteralContext; | |
BasicStringLiteralContext.prototype.STRING = function() { | |
return this.getToken(SqlBaseParser.STRING, 0); | |
}; | |
BasicStringLiteralContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterBasicStringLiteral(this); | |
} | |
}; | |
BasicStringLiteralContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitBasicStringLiteral(this); | |
} | |
}; | |
SqlBaseParser.StringContext = StringContext; | |
SqlBaseParser.prototype.string = function() { | |
var localctx = new StringContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 70, SqlBaseParser.RULE_string); | |
try { | |
this.state = 1251; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.STRING: | |
localctx = new BasicStringLiteralContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1245; | |
this.match(SqlBaseParser.STRING); | |
break; | |
case SqlBaseParser.UNICODE_STRING: | |
localctx = new UnicodeStringLiteralContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 1246; | |
this.match(SqlBaseParser.UNICODE_STRING); | |
this.state = 1249; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,154,this._ctx); | |
if(la_===1) { | |
this.state = 1247; | |
this.match(SqlBaseParser.UESCAPE); | |
this.state = 1248; | |
this.match(SqlBaseParser.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 TimeZoneSpecifierContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_timeZoneSpecifier; | |
return this; | |
} | |
TimeZoneSpecifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
TimeZoneSpecifierContext.prototype.constructor = TimeZoneSpecifierContext; | |
TimeZoneSpecifierContext.prototype.copyFrom = function(ctx) { | |
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); | |
}; | |
function TimeZoneIntervalContext(parser, ctx) { | |
TimeZoneSpecifierContext.call(this, parser); | |
TimeZoneSpecifierContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
TimeZoneIntervalContext.prototype = Object.create(TimeZoneSpecifierContext.prototype); | |
TimeZoneIntervalContext.prototype.constructor = TimeZoneIntervalContext; | |
SqlBaseParser.TimeZoneIntervalContext = TimeZoneIntervalContext; | |
TimeZoneIntervalContext.prototype.TIME = function() { | |
return this.getToken(SqlBaseParser.TIME, 0); | |
}; | |
TimeZoneIntervalContext.prototype.ZONE = function() { | |
return this.getToken(SqlBaseParser.ZONE, 0); | |
}; | |
TimeZoneIntervalContext.prototype.interval = function() { | |
return this.getTypedRuleContext(IntervalContext,0); | |
}; | |
TimeZoneIntervalContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterTimeZoneInterval(this); | |
} | |
}; | |
TimeZoneIntervalContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitTimeZoneInterval(this); | |
} | |
}; | |
function TimeZoneStringContext(parser, ctx) { | |
TimeZoneSpecifierContext.call(this, parser); | |
TimeZoneSpecifierContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
TimeZoneStringContext.prototype = Object.create(TimeZoneSpecifierContext.prototype); | |
TimeZoneStringContext.prototype.constructor = TimeZoneStringContext; | |
SqlBaseParser.TimeZoneStringContext = TimeZoneStringContext; | |
TimeZoneStringContext.prototype.TIME = function() { | |
return this.getToken(SqlBaseParser.TIME, 0); | |
}; | |
TimeZoneStringContext.prototype.ZONE = function() { | |
return this.getToken(SqlBaseParser.ZONE, 0); | |
}; | |
TimeZoneStringContext.prototype.string = function() { | |
return this.getTypedRuleContext(StringContext,0); | |
}; | |
TimeZoneStringContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterTimeZoneString(this); | |
} | |
}; | |
TimeZoneStringContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitTimeZoneString(this); | |
} | |
}; | |
SqlBaseParser.TimeZoneSpecifierContext = TimeZoneSpecifierContext; | |
SqlBaseParser.prototype.timeZoneSpecifier = function() { | |
var localctx = new TimeZoneSpecifierContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 72, SqlBaseParser.RULE_timeZoneSpecifier); | |
try { | |
this.state = 1259; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,156,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new TimeZoneIntervalContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1253; | |
this.match(SqlBaseParser.TIME); | |
this.state = 1254; | |
this.match(SqlBaseParser.ZONE); | |
this.state = 1255; | |
this.interval(); | |
break; | |
case 2: | |
localctx = new TimeZoneStringContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 1256; | |
this.match(SqlBaseParser.TIME); | |
this.state = 1257; | |
this.match(SqlBaseParser.ZONE); | |
this.state = 1258; | |
this.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 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 = SqlBaseParser.RULE_comparisonOperator; | |
return this; | |
} | |
ComparisonOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
ComparisonOperatorContext.prototype.constructor = ComparisonOperatorContext; | |
ComparisonOperatorContext.prototype.EQ = function() { | |
return this.getToken(SqlBaseParser.EQ, 0); | |
}; | |
ComparisonOperatorContext.prototype.NEQ = function() { | |
return this.getToken(SqlBaseParser.NEQ, 0); | |
}; | |
ComparisonOperatorContext.prototype.LT = function() { | |
return this.getToken(SqlBaseParser.LT, 0); | |
}; | |
ComparisonOperatorContext.prototype.LTE = function() { | |
return this.getToken(SqlBaseParser.LTE, 0); | |
}; | |
ComparisonOperatorContext.prototype.GT = function() { | |
return this.getToken(SqlBaseParser.GT, 0); | |
}; | |
ComparisonOperatorContext.prototype.GTE = function() { | |
return this.getToken(SqlBaseParser.GTE, 0); | |
}; | |
ComparisonOperatorContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterComparisonOperator(this); | |
} | |
}; | |
ComparisonOperatorContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitComparisonOperator(this); | |
} | |
}; | |
SqlBaseParser.ComparisonOperatorContext = ComparisonOperatorContext; | |
SqlBaseParser.prototype.comparisonOperator = function() { | |
var localctx = new ComparisonOperatorContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 74, SqlBaseParser.RULE_comparisonOperator); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1261; | |
_la = this._input.LA(1); | |
if(!(((((_la - 191)) & ~0x1f) == 0 && ((1 << (_la - 191)) & ((1 << (SqlBaseParser.EQ - 191)) | (1 << (SqlBaseParser.NEQ - 191)) | (1 << (SqlBaseParser.LT - 191)) | (1 << (SqlBaseParser.LTE - 191)) | (1 << (SqlBaseParser.GT - 191)) | (1 << (SqlBaseParser.GTE - 191)))) !== 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 ComparisonQuantifierContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_comparisonQuantifier; | |
return this; | |
} | |
ComparisonQuantifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
ComparisonQuantifierContext.prototype.constructor = ComparisonQuantifierContext; | |
ComparisonQuantifierContext.prototype.ALL = function() { | |
return this.getToken(SqlBaseParser.ALL, 0); | |
}; | |
ComparisonQuantifierContext.prototype.SOME = function() { | |
return this.getToken(SqlBaseParser.SOME, 0); | |
}; | |
ComparisonQuantifierContext.prototype.ANY = function() { | |
return this.getToken(SqlBaseParser.ANY, 0); | |
}; | |
ComparisonQuantifierContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterComparisonQuantifier(this); | |
} | |
}; | |
ComparisonQuantifierContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitComparisonQuantifier(this); | |
} | |
}; | |
SqlBaseParser.ComparisonQuantifierContext = ComparisonQuantifierContext; | |
SqlBaseParser.prototype.comparisonQuantifier = function() { | |
var localctx = new ComparisonQuantifierContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 76, SqlBaseParser.RULE_comparisonQuantifier); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1263; | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.ALL || _la===SqlBaseParser.ANY || _la===SqlBaseParser.SOME)) { | |
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 = SqlBaseParser.RULE_booleanValue; | |
return this; | |
} | |
BooleanValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
BooleanValueContext.prototype.constructor = BooleanValueContext; | |
BooleanValueContext.prototype.TRUE = function() { | |
return this.getToken(SqlBaseParser.TRUE, 0); | |
}; | |
BooleanValueContext.prototype.FALSE = function() { | |
return this.getToken(SqlBaseParser.FALSE, 0); | |
}; | |
BooleanValueContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterBooleanValue(this); | |
} | |
}; | |
BooleanValueContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitBooleanValue(this); | |
} | |
}; | |
SqlBaseParser.BooleanValueContext = BooleanValueContext; | |
SqlBaseParser.prototype.booleanValue = function() { | |
var localctx = new BooleanValueContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 78, SqlBaseParser.RULE_booleanValue); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1265; | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.FALSE || _la===SqlBaseParser.TRUE)) { | |
this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
} catch (re) { | |
if(re instanceof antlr4.error.RecognitionException) { | |
localctx.exception = re; | |
this._errHandler.reportError(this, re); | |
this._errHandler.recover(this, re); | |
} else { | |
throw re; | |
} | |
} finally { | |
this.exitRule(); | |
} | |
return localctx; | |
}; | |
function 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 = SqlBaseParser.RULE_interval; | |
this.sign = null; // Token | |
this.from = null; // IntervalFieldContext | |
this.to = null; // IntervalFieldContext | |
return this; | |
} | |
IntervalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
IntervalContext.prototype.constructor = IntervalContext; | |
IntervalContext.prototype.INTERVAL = function() { | |
return this.getToken(SqlBaseParser.INTERVAL, 0); | |
}; | |
IntervalContext.prototype.string = function() { | |
return this.getTypedRuleContext(StringContext,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.TO = function() { | |
return this.getToken(SqlBaseParser.TO, 0); | |
}; | |
IntervalContext.prototype.PLUS = function() { | |
return this.getToken(SqlBaseParser.PLUS, 0); | |
}; | |
IntervalContext.prototype.MINUS = function() { | |
return this.getToken(SqlBaseParser.MINUS, 0); | |
}; | |
IntervalContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterInterval(this); | |
} | |
}; | |
IntervalContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitInterval(this); | |
} | |
}; | |
SqlBaseParser.IntervalContext = IntervalContext; | |
SqlBaseParser.prototype.interval = function() { | |
var localctx = new IntervalContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 80, SqlBaseParser.RULE_interval); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1267; | |
this.match(SqlBaseParser.INTERVAL); | |
this.state = 1269; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.PLUS || _la===SqlBaseParser.MINUS) { | |
this.state = 1268; | |
localctx.sign = this._input.LT(1); | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.PLUS || _la===SqlBaseParser.MINUS)) { | |
localctx.sign = this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
} | |
this.state = 1271; | |
this.string(); | |
this.state = 1272; | |
localctx.from = this.intervalField(); | |
this.state = 1275; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,158,this._ctx); | |
if(la_===1) { | |
this.state = 1273; | |
this.match(SqlBaseParser.TO); | |
this.state = 1274; | |
localctx.to = this.intervalField(); | |
} | |
} catch (re) { | |
if(re instanceof antlr4.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 = SqlBaseParser.RULE_intervalField; | |
return this; | |
} | |
IntervalFieldContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
IntervalFieldContext.prototype.constructor = IntervalFieldContext; | |
IntervalFieldContext.prototype.YEAR = function() { | |
return this.getToken(SqlBaseParser.YEAR, 0); | |
}; | |
IntervalFieldContext.prototype.MONTH = function() { | |
return this.getToken(SqlBaseParser.MONTH, 0); | |
}; | |
IntervalFieldContext.prototype.DAY = function() { | |
return this.getToken(SqlBaseParser.DAY, 0); | |
}; | |
IntervalFieldContext.prototype.HOUR = function() { | |
return this.getToken(SqlBaseParser.HOUR, 0); | |
}; | |
IntervalFieldContext.prototype.MINUTE = function() { | |
return this.getToken(SqlBaseParser.MINUTE, 0); | |
}; | |
IntervalFieldContext.prototype.SECOND = function() { | |
return this.getToken(SqlBaseParser.SECOND, 0); | |
}; | |
IntervalFieldContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterIntervalField(this); | |
} | |
}; | |
IntervalFieldContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitIntervalField(this); | |
} | |
}; | |
SqlBaseParser.IntervalFieldContext = IntervalFieldContext; | |
SqlBaseParser.prototype.intervalField = function() { | |
var localctx = new IntervalFieldContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 82, SqlBaseParser.RULE_intervalField); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1277; | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.DAY || ((((_la - 77)) & ~0x1f) == 0 && ((1 << (_la - 77)) & ((1 << (SqlBaseParser.HOUR - 77)) | (1 << (SqlBaseParser.MINUTE - 77)) | (1 << (SqlBaseParser.MONTH - 77)))) !== 0) || _la===SqlBaseParser.SECOND || _la===SqlBaseParser.YEAR)) { | |
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 NormalFormContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_normalForm; | |
return this; | |
} | |
NormalFormContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
NormalFormContext.prototype.constructor = NormalFormContext; | |
NormalFormContext.prototype.NFD = function() { | |
return this.getToken(SqlBaseParser.NFD, 0); | |
}; | |
NormalFormContext.prototype.NFC = function() { | |
return this.getToken(SqlBaseParser.NFC, 0); | |
}; | |
NormalFormContext.prototype.NFKD = function() { | |
return this.getToken(SqlBaseParser.NFKD, 0); | |
}; | |
NormalFormContext.prototype.NFKC = function() { | |
return this.getToken(SqlBaseParser.NFKC, 0); | |
}; | |
NormalFormContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterNormalForm(this); | |
} | |
}; | |
NormalFormContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitNormalForm(this); | |
} | |
}; | |
SqlBaseParser.NormalFormContext = NormalFormContext; | |
SqlBaseParser.prototype.normalForm = function() { | |
var localctx = new NormalFormContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 84, SqlBaseParser.RULE_normalForm); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1279; | |
_la = this._input.LA(1); | |
if(!(((((_la - 105)) & ~0x1f) == 0 && ((1 << (_la - 105)) & ((1 << (SqlBaseParser.NFC - 105)) | (1 << (SqlBaseParser.NFD - 105)) | (1 << (SqlBaseParser.NFKC - 105)) | (1 << (SqlBaseParser.NFKD - 105)))) !== 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 TypeContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_type; | |
this.from = null; // IntervalFieldContext | |
this.to = null; // IntervalFieldContext | |
return this; | |
} | |
TypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
TypeContext.prototype.constructor = TypeContext; | |
TypeContext.prototype.ARRAY = function() { | |
return this.getToken(SqlBaseParser.ARRAY, 0); | |
}; | |
TypeContext.prototype.type = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(TypeContext); | |
} else { | |
return this.getTypedRuleContext(TypeContext,i); | |
} | |
}; | |
TypeContext.prototype.MAP = function() { | |
return this.getToken(SqlBaseParser.MAP, 0); | |
}; | |
TypeContext.prototype.ROW = function() { | |
return this.getToken(SqlBaseParser.ROW, 0); | |
}; | |
TypeContext.prototype.identifier = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(IdentifierContext); | |
} else { | |
return this.getTypedRuleContext(IdentifierContext,i); | |
} | |
}; | |
TypeContext.prototype.baseType = function() { | |
return this.getTypedRuleContext(BaseTypeContext,0); | |
}; | |
TypeContext.prototype.typeParameter = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(TypeParameterContext); | |
} else { | |
return this.getTypedRuleContext(TypeParameterContext,i); | |
} | |
}; | |
TypeContext.prototype.INTERVAL = function() { | |
return this.getToken(SqlBaseParser.INTERVAL, 0); | |
}; | |
TypeContext.prototype.TO = function() { | |
return this.getToken(SqlBaseParser.TO, 0); | |
}; | |
TypeContext.prototype.intervalField = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(IntervalFieldContext); | |
} else { | |
return this.getTypedRuleContext(IntervalFieldContext,i); | |
} | |
}; | |
TypeContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterType(this); | |
} | |
}; | |
TypeContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitType(this); | |
} | |
}; | |
SqlBaseParser.prototype.type = function(_p) { | |
if(_p===undefined) { | |
_p = 0; | |
} | |
var _parentctx = this._ctx; | |
var _parentState = this.state; | |
var localctx = new TypeContext(this, this._ctx, _parentState); | |
var _prevctx = localctx; | |
var _startState = 86; | |
this.enterRecursionRule(localctx, 86, SqlBaseParser.RULE_type, _p); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1328; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,162,this._ctx); | |
switch(la_) { | |
case 1: | |
this.state = 1282; | |
this.match(SqlBaseParser.ARRAY); | |
this.state = 1283; | |
this.match(SqlBaseParser.LT); | |
this.state = 1284; | |
this.type(0); | |
this.state = 1285; | |
this.match(SqlBaseParser.GT); | |
break; | |
case 2: | |
this.state = 1287; | |
this.match(SqlBaseParser.MAP); | |
this.state = 1288; | |
this.match(SqlBaseParser.LT); | |
this.state = 1289; | |
this.type(0); | |
this.state = 1290; | |
this.match(SqlBaseParser.T__3); | |
this.state = 1291; | |
this.type(0); | |
this.state = 1292; | |
this.match(SqlBaseParser.GT); | |
break; | |
case 3: | |
this.state = 1294; | |
this.match(SqlBaseParser.ROW); | |
this.state = 1295; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1296; | |
this.identifier(); | |
this.state = 1297; | |
this.type(0); | |
this.state = 1304; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 1298; | |
this.match(SqlBaseParser.T__3); | |
this.state = 1299; | |
this.identifier(); | |
this.state = 1300; | |
this.type(0); | |
this.state = 1306; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
this.state = 1307; | |
this.match(SqlBaseParser.T__2); | |
break; | |
case 4: | |
this.state = 1309; | |
this.baseType(); | |
this.state = 1321; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,161,this._ctx); | |
if(la_===1) { | |
this.state = 1310; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1311; | |
this.typeParameter(); | |
this.state = 1316; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 1312; | |
this.match(SqlBaseParser.T__3); | |
this.state = 1313; | |
this.typeParameter(); | |
this.state = 1318; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
this.state = 1319; | |
this.match(SqlBaseParser.T__2); | |
} | |
break; | |
case 5: | |
this.state = 1323; | |
this.match(SqlBaseParser.INTERVAL); | |
this.state = 1324; | |
localctx.from = this.intervalField(); | |
this.state = 1325; | |
this.match(SqlBaseParser.TO); | |
this.state = 1326; | |
localctx.to = this.intervalField(); | |
break; | |
} | |
this._ctx.stop = this._input.LT(-1); | |
this.state = 1334; | |
this._errHandler.sync(this); | |
var _alt = this._interp.adaptivePredict(this._input,163,this._ctx) | |
while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { | |
if(_alt===1) { | |
if(this._parseListeners!==null) { | |
this.triggerExitRuleEvent(); | |
} | |
_prevctx = localctx; | |
localctx = new TypeContext(this, _parentctx, _parentState); | |
this.pushNewRecursionContext(localctx, _startState, SqlBaseParser.RULE_type); | |
this.state = 1330; | |
if (!( this.precpred(this._ctx, 6))) { | |
throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 6)"); | |
} | |
this.state = 1331; | |
this.match(SqlBaseParser.ARRAY); | |
} | |
this.state = 1336; | |
this._errHandler.sync(this); | |
_alt = this._interp.adaptivePredict(this._input,163,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 TypeParameterContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_typeParameter; | |
return this; | |
} | |
TypeParameterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
TypeParameterContext.prototype.constructor = TypeParameterContext; | |
TypeParameterContext.prototype.INTEGER_VALUE = function() { | |
return this.getToken(SqlBaseParser.INTEGER_VALUE, 0); | |
}; | |
TypeParameterContext.prototype.type = function() { | |
return this.getTypedRuleContext(TypeContext,0); | |
}; | |
TypeParameterContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterTypeParameter(this); | |
} | |
}; | |
TypeParameterContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitTypeParameter(this); | |
} | |
}; | |
SqlBaseParser.TypeParameterContext = TypeParameterContext; | |
SqlBaseParser.prototype.typeParameter = function() { | |
var localctx = new TypeParameterContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 88, SqlBaseParser.RULE_typeParameter); | |
try { | |
this.state = 1339; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.INTEGER_VALUE: | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1337; | |
this.match(SqlBaseParser.INTEGER_VALUE); | |
break; | |
case SqlBaseParser.ADD: | |
case SqlBaseParser.ALL: | |
case SqlBaseParser.ANALYZE: | |
case SqlBaseParser.ANY: | |
case SqlBaseParser.ARRAY: | |
case SqlBaseParser.ASC: | |
case SqlBaseParser.AT: | |
case SqlBaseParser.BERNOULLI: | |
case SqlBaseParser.CALL: | |
case SqlBaseParser.CASCADE: | |
case SqlBaseParser.CATALOGS: | |
case SqlBaseParser.COLUMN: | |
case SqlBaseParser.COLUMNS: | |
case SqlBaseParser.COMMENT: | |
case SqlBaseParser.COMMIT: | |
case SqlBaseParser.COMMITTED: | |
case SqlBaseParser.CURRENT: | |
case SqlBaseParser.DATA: | |
case SqlBaseParser.DATE: | |
case SqlBaseParser.DAY: | |
case SqlBaseParser.DESC: | |
case SqlBaseParser.DISTRIBUTED: | |
case SqlBaseParser.EXCLUDING: | |
case SqlBaseParser.EXPLAIN: | |
case SqlBaseParser.FILTER: | |
case SqlBaseParser.FIRST: | |
case SqlBaseParser.FOLLOWING: | |
case SqlBaseParser.FORMAT: | |
case SqlBaseParser.FUNCTIONS: | |
case SqlBaseParser.GRANT: | |
case SqlBaseParser.GRANTS: | |
case SqlBaseParser.GRAPHVIZ: | |
case SqlBaseParser.HOUR: | |
case SqlBaseParser.IF: | |
case SqlBaseParser.INCLUDING: | |
case SqlBaseParser.INPUT: | |
case SqlBaseParser.INTERVAL: | |
case SqlBaseParser.IO: | |
case SqlBaseParser.ISOLATION: | |
case SqlBaseParser.JSON: | |
case SqlBaseParser.LAST: | |
case SqlBaseParser.LATERAL: | |
case SqlBaseParser.LEVEL: | |
case SqlBaseParser.LIMIT: | |
case SqlBaseParser.LOGICAL: | |
case SqlBaseParser.MAP: | |
case SqlBaseParser.MINUTE: | |
case SqlBaseParser.MONTH: | |
case SqlBaseParser.NFC: | |
case SqlBaseParser.NFD: | |
case SqlBaseParser.NFKC: | |
case SqlBaseParser.NFKD: | |
case SqlBaseParser.NO: | |
case SqlBaseParser.NULLIF: | |
case SqlBaseParser.NULLS: | |
case SqlBaseParser.ONLY: | |
case SqlBaseParser.OPTION: | |
case SqlBaseParser.ORDINALITY: | |
case SqlBaseParser.OUTPUT: | |
case SqlBaseParser.OVER: | |
case SqlBaseParser.PARTITION: | |
case SqlBaseParser.PARTITIONS: | |
case SqlBaseParser.PATH: | |
case SqlBaseParser.POSITION: | |
case SqlBaseParser.PRECEDING: | |
case SqlBaseParser.PRIVILEGES: | |
case SqlBaseParser.PROPERTIES: | |
case SqlBaseParser.PUBLIC: | |
case SqlBaseParser.RANGE: | |
case SqlBaseParser.READ: | |
case SqlBaseParser.RENAME: | |
case SqlBaseParser.REPEATABLE: | |
case SqlBaseParser.REPLACE: | |
case SqlBaseParser.RESET: | |
case SqlBaseParser.RESTRICT: | |
case SqlBaseParser.REVOKE: | |
case SqlBaseParser.ROLLBACK: | |
case SqlBaseParser.ROW: | |
case SqlBaseParser.ROWS: | |
case SqlBaseParser.SCHEMA: | |
case SqlBaseParser.SCHEMAS: | |
case SqlBaseParser.SECOND: | |
case SqlBaseParser.SERIALIZABLE: | |
case SqlBaseParser.SESSION: | |
case SqlBaseParser.SET: | |
case SqlBaseParser.SETS: | |
case SqlBaseParser.SHOW: | |
case SqlBaseParser.SOME: | |
case SqlBaseParser.START: | |
case SqlBaseParser.STATS: | |
case SqlBaseParser.SUBSTRING: | |
case SqlBaseParser.SYSTEM: | |
case SqlBaseParser.TABLES: | |
case SqlBaseParser.TABLESAMPLE: | |
case SqlBaseParser.TEXT: | |
case SqlBaseParser.TIME: | |
case SqlBaseParser.TIMESTAMP: | |
case SqlBaseParser.TO: | |
case SqlBaseParser.TRANSACTION: | |
case SqlBaseParser.TRY_CAST: | |
case SqlBaseParser.TYPE: | |
case SqlBaseParser.UNBOUNDED: | |
case SqlBaseParser.UNCOMMITTED: | |
case SqlBaseParser.USE: | |
case SqlBaseParser.VALIDATE: | |
case SqlBaseParser.VERBOSE: | |
case SqlBaseParser.VIEW: | |
case SqlBaseParser.WORK: | |
case SqlBaseParser.WRITE: | |
case SqlBaseParser.YEAR: | |
case SqlBaseParser.ZONE: | |
case SqlBaseParser.IDENTIFIER: | |
case SqlBaseParser.DIGIT_IDENTIFIER: | |
case SqlBaseParser.QUOTED_IDENTIFIER: | |
case SqlBaseParser.BACKQUOTED_IDENTIFIER: | |
case SqlBaseParser.TIME_WITH_TIME_ZONE: | |
case SqlBaseParser.TIMESTAMP_WITH_TIME_ZONE: | |
case SqlBaseParser.DOUBLE_PRECISION: | |
this.enterOuterAlt(localctx, 2); | |
this.state = 1338; | |
this.type(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 BaseTypeContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_baseType; | |
return this; | |
} | |
BaseTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
BaseTypeContext.prototype.constructor = BaseTypeContext; | |
BaseTypeContext.prototype.TIME_WITH_TIME_ZONE = function() { | |
return this.getToken(SqlBaseParser.TIME_WITH_TIME_ZONE, 0); | |
}; | |
BaseTypeContext.prototype.TIMESTAMP_WITH_TIME_ZONE = function() { | |
return this.getToken(SqlBaseParser.TIMESTAMP_WITH_TIME_ZONE, 0); | |
}; | |
BaseTypeContext.prototype.DOUBLE_PRECISION = function() { | |
return this.getToken(SqlBaseParser.DOUBLE_PRECISION, 0); | |
}; | |
BaseTypeContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
BaseTypeContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterBaseType(this); | |
} | |
}; | |
BaseTypeContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitBaseType(this); | |
} | |
}; | |
SqlBaseParser.BaseTypeContext = BaseTypeContext; | |
SqlBaseParser.prototype.baseType = function() { | |
var localctx = new BaseTypeContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 90, SqlBaseParser.RULE_baseType); | |
try { | |
this.state = 1345; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.TIME_WITH_TIME_ZONE: | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1341; | |
this.match(SqlBaseParser.TIME_WITH_TIME_ZONE); | |
break; | |
case SqlBaseParser.TIMESTAMP_WITH_TIME_ZONE: | |
this.enterOuterAlt(localctx, 2); | |
this.state = 1342; | |
this.match(SqlBaseParser.TIMESTAMP_WITH_TIME_ZONE); | |
break; | |
case SqlBaseParser.DOUBLE_PRECISION: | |
this.enterOuterAlt(localctx, 3); | |
this.state = 1343; | |
this.match(SqlBaseParser.DOUBLE_PRECISION); | |
break; | |
case SqlBaseParser.ADD: | |
case SqlBaseParser.ALL: | |
case SqlBaseParser.ANALYZE: | |
case SqlBaseParser.ANY: | |
case SqlBaseParser.ARRAY: | |
case SqlBaseParser.ASC: | |
case SqlBaseParser.AT: | |
case SqlBaseParser.BERNOULLI: | |
case SqlBaseParser.CALL: | |
case SqlBaseParser.CASCADE: | |
case SqlBaseParser.CATALOGS: | |
case SqlBaseParser.COLUMN: | |
case SqlBaseParser.COLUMNS: | |
case SqlBaseParser.COMMENT: | |
case SqlBaseParser.COMMIT: | |
case SqlBaseParser.COMMITTED: | |
case SqlBaseParser.CURRENT: | |
case SqlBaseParser.DATA: | |
case SqlBaseParser.DATE: | |
case SqlBaseParser.DAY: | |
case SqlBaseParser.DESC: | |
case SqlBaseParser.DISTRIBUTED: | |
case SqlBaseParser.EXCLUDING: | |
case SqlBaseParser.EXPLAIN: | |
case SqlBaseParser.FILTER: | |
case SqlBaseParser.FIRST: | |
case SqlBaseParser.FOLLOWING: | |
case SqlBaseParser.FORMAT: | |
case SqlBaseParser.FUNCTIONS: | |
case SqlBaseParser.GRANT: | |
case SqlBaseParser.GRANTS: | |
case SqlBaseParser.GRAPHVIZ: | |
case SqlBaseParser.HOUR: | |
case SqlBaseParser.IF: | |
case SqlBaseParser.INCLUDING: | |
case SqlBaseParser.INPUT: | |
case SqlBaseParser.INTERVAL: | |
case SqlBaseParser.IO: | |
case SqlBaseParser.ISOLATION: | |
case SqlBaseParser.JSON: | |
case SqlBaseParser.LAST: | |
case SqlBaseParser.LATERAL: | |
case SqlBaseParser.LEVEL: | |
case SqlBaseParser.LIMIT: | |
case SqlBaseParser.LOGICAL: | |
case SqlBaseParser.MAP: | |
case SqlBaseParser.MINUTE: | |
case SqlBaseParser.MONTH: | |
case SqlBaseParser.NFC: | |
case SqlBaseParser.NFD: | |
case SqlBaseParser.NFKC: | |
case SqlBaseParser.NFKD: | |
case SqlBaseParser.NO: | |
case SqlBaseParser.NULLIF: | |
case SqlBaseParser.NULLS: | |
case SqlBaseParser.ONLY: | |
case SqlBaseParser.OPTION: | |
case SqlBaseParser.ORDINALITY: | |
case SqlBaseParser.OUTPUT: | |
case SqlBaseParser.OVER: | |
case SqlBaseParser.PARTITION: | |
case SqlBaseParser.PARTITIONS: | |
case SqlBaseParser.PATH: | |
case SqlBaseParser.POSITION: | |
case SqlBaseParser.PRECEDING: | |
case SqlBaseParser.PRIVILEGES: | |
case SqlBaseParser.PROPERTIES: | |
case SqlBaseParser.PUBLIC: | |
case SqlBaseParser.RANGE: | |
case SqlBaseParser.READ: | |
case SqlBaseParser.RENAME: | |
case SqlBaseParser.REPEATABLE: | |
case SqlBaseParser.REPLACE: | |
case SqlBaseParser.RESET: | |
case SqlBaseParser.RESTRICT: | |
case SqlBaseParser.REVOKE: | |
case SqlBaseParser.ROLLBACK: | |
case SqlBaseParser.ROW: | |
case SqlBaseParser.ROWS: | |
case SqlBaseParser.SCHEMA: | |
case SqlBaseParser.SCHEMAS: | |
case SqlBaseParser.SECOND: | |
case SqlBaseParser.SERIALIZABLE: | |
case SqlBaseParser.SESSION: | |
case SqlBaseParser.SET: | |
case SqlBaseParser.SETS: | |
case SqlBaseParser.SHOW: | |
case SqlBaseParser.SOME: | |
case SqlBaseParser.START: | |
case SqlBaseParser.STATS: | |
case SqlBaseParser.SUBSTRING: | |
case SqlBaseParser.SYSTEM: | |
case SqlBaseParser.TABLES: | |
case SqlBaseParser.TABLESAMPLE: | |
case SqlBaseParser.TEXT: | |
case SqlBaseParser.TIME: | |
case SqlBaseParser.TIMESTAMP: | |
case SqlBaseParser.TO: | |
case SqlBaseParser.TRANSACTION: | |
case SqlBaseParser.TRY_CAST: | |
case SqlBaseParser.TYPE: | |
case SqlBaseParser.UNBOUNDED: | |
case SqlBaseParser.UNCOMMITTED: | |
case SqlBaseParser.USE: | |
case SqlBaseParser.VALIDATE: | |
case SqlBaseParser.VERBOSE: | |
case SqlBaseParser.VIEW: | |
case SqlBaseParser.WORK: | |
case SqlBaseParser.WRITE: | |
case SqlBaseParser.YEAR: | |
case SqlBaseParser.ZONE: | |
case SqlBaseParser.IDENTIFIER: | |
case SqlBaseParser.DIGIT_IDENTIFIER: | |
case SqlBaseParser.QUOTED_IDENTIFIER: | |
case SqlBaseParser.BACKQUOTED_IDENTIFIER: | |
this.enterOuterAlt(localctx, 4); | |
this.state = 1344; | |
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 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 = SqlBaseParser.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(SqlBaseParser.WHEN, 0); | |
}; | |
WhenClauseContext.prototype.THEN = function() { | |
return this.getToken(SqlBaseParser.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 SqlBaseListener ) { | |
listener.enterWhenClause(this); | |
} | |
}; | |
WhenClauseContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitWhenClause(this); | |
} | |
}; | |
SqlBaseParser.WhenClauseContext = WhenClauseContext; | |
SqlBaseParser.prototype.whenClause = function() { | |
var localctx = new WhenClauseContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 92, SqlBaseParser.RULE_whenClause); | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1347; | |
this.match(SqlBaseParser.WHEN); | |
this.state = 1348; | |
localctx.condition = this.expression(); | |
this.state = 1349; | |
this.match(SqlBaseParser.THEN); | |
this.state = 1350; | |
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 FilterContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_filter; | |
return this; | |
} | |
FilterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
FilterContext.prototype.constructor = FilterContext; | |
FilterContext.prototype.FILTER = function() { | |
return this.getToken(SqlBaseParser.FILTER, 0); | |
}; | |
FilterContext.prototype.WHERE = function() { | |
return this.getToken(SqlBaseParser.WHERE, 0); | |
}; | |
FilterContext.prototype.booleanExpression = function() { | |
return this.getTypedRuleContext(BooleanExpressionContext,0); | |
}; | |
FilterContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterFilter(this); | |
} | |
}; | |
FilterContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitFilter(this); | |
} | |
}; | |
SqlBaseParser.FilterContext = FilterContext; | |
SqlBaseParser.prototype.filter = function() { | |
var localctx = new FilterContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 94, SqlBaseParser.RULE_filter); | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1352; | |
this.match(SqlBaseParser.FILTER); | |
this.state = 1353; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1354; | |
this.match(SqlBaseParser.WHERE); | |
this.state = 1355; | |
this.booleanExpression(0); | |
this.state = 1356; | |
this.match(SqlBaseParser.T__2); | |
} catch (re) { | |
if(re instanceof antlr4.error.RecognitionException) { | |
localctx.exception = re; | |
this._errHandler.reportError(this, re); | |
this._errHandler.recover(this, re); | |
} else { | |
throw re; | |
} | |
} finally { | |
this.exitRule(); | |
} | |
return localctx; | |
}; | |
function OverContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_over; | |
this._expression = null; // ExpressionContext | |
this.partition = []; // of ExpressionContexts | |
return this; | |
} | |
OverContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
OverContext.prototype.constructor = OverContext; | |
OverContext.prototype.OVER = function() { | |
return this.getToken(SqlBaseParser.OVER, 0); | |
}; | |
OverContext.prototype.PARTITION = function() { | |
return this.getToken(SqlBaseParser.PARTITION, 0); | |
}; | |
OverContext.prototype.BY = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTokens(SqlBaseParser.BY); | |
} else { | |
return this.getToken(SqlBaseParser.BY, i); | |
} | |
}; | |
OverContext.prototype.ORDER = function() { | |
return this.getToken(SqlBaseParser.ORDER, 0); | |
}; | |
OverContext.prototype.sortItem = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(SortItemContext); | |
} else { | |
return this.getTypedRuleContext(SortItemContext,i); | |
} | |
}; | |
OverContext.prototype.windowFrame = function() { | |
return this.getTypedRuleContext(WindowFrameContext,0); | |
}; | |
OverContext.prototype.expression = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(ExpressionContext); | |
} else { | |
return this.getTypedRuleContext(ExpressionContext,i); | |
} | |
}; | |
OverContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterOver(this); | |
} | |
}; | |
OverContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitOver(this); | |
} | |
}; | |
SqlBaseParser.OverContext = OverContext; | |
SqlBaseParser.prototype.over = function() { | |
var localctx = new OverContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 96, SqlBaseParser.RULE_over); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1358; | |
this.match(SqlBaseParser.OVER); | |
this.state = 1359; | |
this.match(SqlBaseParser.T__1); | |
this.state = 1370; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.PARTITION) { | |
this.state = 1360; | |
this.match(SqlBaseParser.PARTITION); | |
this.state = 1361; | |
this.match(SqlBaseParser.BY); | |
this.state = 1362; | |
localctx._expression = this.expression(); | |
localctx.partition.push(localctx._expression); | |
this.state = 1367; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 1363; | |
this.match(SqlBaseParser.T__3); | |
this.state = 1364; | |
localctx._expression = this.expression(); | |
localctx.partition.push(localctx._expression); | |
this.state = 1369; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
} | |
this.state = 1382; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.ORDER) { | |
this.state = 1372; | |
this.match(SqlBaseParser.ORDER); | |
this.state = 1373; | |
this.match(SqlBaseParser.BY); | |
this.state = 1374; | |
this.sortItem(); | |
this.state = 1379; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 1375; | |
this.match(SqlBaseParser.T__3); | |
this.state = 1376; | |
this.sortItem(); | |
this.state = 1381; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
} | |
} | |
this.state = 1385; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
if(_la===SqlBaseParser.RANGE || _la===SqlBaseParser.ROWS) { | |
this.state = 1384; | |
this.windowFrame(); | |
} | |
this.state = 1387; | |
this.match(SqlBaseParser.T__2); | |
} catch (re) { | |
if(re instanceof antlr4.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 = SqlBaseParser.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(SqlBaseParser.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(SqlBaseParser.ROWS, 0); | |
}; | |
WindowFrameContext.prototype.BETWEEN = function() { | |
return this.getToken(SqlBaseParser.BETWEEN, 0); | |
}; | |
WindowFrameContext.prototype.AND = function() { | |
return this.getToken(SqlBaseParser.AND, 0); | |
}; | |
WindowFrameContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterWindowFrame(this); | |
} | |
}; | |
WindowFrameContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitWindowFrame(this); | |
} | |
}; | |
SqlBaseParser.WindowFrameContext = WindowFrameContext; | |
SqlBaseParser.prototype.windowFrame = function() { | |
var localctx = new WindowFrameContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 98, SqlBaseParser.RULE_windowFrame); | |
try { | |
this.state = 1405; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,171,this._ctx); | |
switch(la_) { | |
case 1: | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1389; | |
localctx.frameType = this.match(SqlBaseParser.RANGE); | |
this.state = 1390; | |
localctx.start = this.frameBound(); | |
break; | |
case 2: | |
this.enterOuterAlt(localctx, 2); | |
this.state = 1391; | |
localctx.frameType = this.match(SqlBaseParser.ROWS); | |
this.state = 1392; | |
localctx.start = this.frameBound(); | |
break; | |
case 3: | |
this.enterOuterAlt(localctx, 3); | |
this.state = 1393; | |
localctx.frameType = this.match(SqlBaseParser.RANGE); | |
this.state = 1394; | |
this.match(SqlBaseParser.BETWEEN); | |
this.state = 1395; | |
localctx.start = this.frameBound(); | |
this.state = 1396; | |
this.match(SqlBaseParser.AND); | |
this.state = 1397; | |
localctx.end = this.frameBound(); | |
break; | |
case 4: | |
this.enterOuterAlt(localctx, 4); | |
this.state = 1399; | |
localctx.frameType = this.match(SqlBaseParser.ROWS); | |
this.state = 1400; | |
this.match(SqlBaseParser.BETWEEN); | |
this.state = 1401; | |
localctx.start = this.frameBound(); | |
this.state = 1402; | |
this.match(SqlBaseParser.AND); | |
this.state = 1403; | |
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 = SqlBaseParser.RULE_frameBound; | |
return this; | |
} | |
FrameBoundContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
FrameBoundContext.prototype.constructor = FrameBoundContext; | |
FrameBoundContext.prototype.copyFrom = function(ctx) { | |
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); | |
}; | |
function BoundedFrameContext(parser, ctx) { | |
FrameBoundContext.call(this, parser); | |
this.boundType = null; // Token; | |
FrameBoundContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
BoundedFrameContext.prototype = Object.create(FrameBoundContext.prototype); | |
BoundedFrameContext.prototype.constructor = BoundedFrameContext; | |
SqlBaseParser.BoundedFrameContext = BoundedFrameContext; | |
BoundedFrameContext.prototype.expression = function() { | |
return this.getTypedRuleContext(ExpressionContext,0); | |
}; | |
BoundedFrameContext.prototype.PRECEDING = function() { | |
return this.getToken(SqlBaseParser.PRECEDING, 0); | |
}; | |
BoundedFrameContext.prototype.FOLLOWING = function() { | |
return this.getToken(SqlBaseParser.FOLLOWING, 0); | |
}; | |
BoundedFrameContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterBoundedFrame(this); | |
} | |
}; | |
BoundedFrameContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitBoundedFrame(this); | |
} | |
}; | |
function UnboundedFrameContext(parser, ctx) { | |
FrameBoundContext.call(this, parser); | |
this.boundType = null; // Token; | |
FrameBoundContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
UnboundedFrameContext.prototype = Object.create(FrameBoundContext.prototype); | |
UnboundedFrameContext.prototype.constructor = UnboundedFrameContext; | |
SqlBaseParser.UnboundedFrameContext = UnboundedFrameContext; | |
UnboundedFrameContext.prototype.UNBOUNDED = function() { | |
return this.getToken(SqlBaseParser.UNBOUNDED, 0); | |
}; | |
UnboundedFrameContext.prototype.PRECEDING = function() { | |
return this.getToken(SqlBaseParser.PRECEDING, 0); | |
}; | |
UnboundedFrameContext.prototype.FOLLOWING = function() { | |
return this.getToken(SqlBaseParser.FOLLOWING, 0); | |
}; | |
UnboundedFrameContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterUnboundedFrame(this); | |
} | |
}; | |
UnboundedFrameContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitUnboundedFrame(this); | |
} | |
}; | |
function CurrentRowBoundContext(parser, ctx) { | |
FrameBoundContext.call(this, parser); | |
FrameBoundContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
CurrentRowBoundContext.prototype = Object.create(FrameBoundContext.prototype); | |
CurrentRowBoundContext.prototype.constructor = CurrentRowBoundContext; | |
SqlBaseParser.CurrentRowBoundContext = CurrentRowBoundContext; | |
CurrentRowBoundContext.prototype.CURRENT = function() { | |
return this.getToken(SqlBaseParser.CURRENT, 0); | |
}; | |
CurrentRowBoundContext.prototype.ROW = function() { | |
return this.getToken(SqlBaseParser.ROW, 0); | |
}; | |
CurrentRowBoundContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterCurrentRowBound(this); | |
} | |
}; | |
CurrentRowBoundContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitCurrentRowBound(this); | |
} | |
}; | |
SqlBaseParser.FrameBoundContext = FrameBoundContext; | |
SqlBaseParser.prototype.frameBound = function() { | |
var localctx = new FrameBoundContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 100, SqlBaseParser.RULE_frameBound); | |
var _la = 0; // Token type | |
try { | |
this.state = 1416; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,172,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new UnboundedFrameContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1407; | |
this.match(SqlBaseParser.UNBOUNDED); | |
this.state = 1408; | |
localctx.boundType = this.match(SqlBaseParser.PRECEDING); | |
break; | |
case 2: | |
localctx = new UnboundedFrameContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 1409; | |
this.match(SqlBaseParser.UNBOUNDED); | |
this.state = 1410; | |
localctx.boundType = this.match(SqlBaseParser.FOLLOWING); | |
break; | |
case 3: | |
localctx = new CurrentRowBoundContext(this, localctx); | |
this.enterOuterAlt(localctx, 3); | |
this.state = 1411; | |
this.match(SqlBaseParser.CURRENT); | |
this.state = 1412; | |
this.match(SqlBaseParser.ROW); | |
break; | |
case 4: | |
localctx = new BoundedFrameContext(this, localctx); | |
this.enterOuterAlt(localctx, 4); | |
this.state = 1413; | |
this.expression(); | |
this.state = 1414; | |
localctx.boundType = this._input.LT(1); | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.FOLLOWING || _la===SqlBaseParser.PRECEDING)) { | |
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 ExplainOptionContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_explainOption; | |
return this; | |
} | |
ExplainOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
ExplainOptionContext.prototype.constructor = ExplainOptionContext; | |
ExplainOptionContext.prototype.copyFrom = function(ctx) { | |
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); | |
}; | |
function ExplainFormatContext(parser, ctx) { | |
ExplainOptionContext.call(this, parser); | |
this.value = null; // Token; | |
ExplainOptionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ExplainFormatContext.prototype = Object.create(ExplainOptionContext.prototype); | |
ExplainFormatContext.prototype.constructor = ExplainFormatContext; | |
SqlBaseParser.ExplainFormatContext = ExplainFormatContext; | |
ExplainFormatContext.prototype.FORMAT = function() { | |
return this.getToken(SqlBaseParser.FORMAT, 0); | |
}; | |
ExplainFormatContext.prototype.TEXT = function() { | |
return this.getToken(SqlBaseParser.TEXT, 0); | |
}; | |
ExplainFormatContext.prototype.GRAPHVIZ = function() { | |
return this.getToken(SqlBaseParser.GRAPHVIZ, 0); | |
}; | |
ExplainFormatContext.prototype.JSON = function() { | |
return this.getToken(SqlBaseParser.JSON, 0); | |
}; | |
ExplainFormatContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterExplainFormat(this); | |
} | |
}; | |
ExplainFormatContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitExplainFormat(this); | |
} | |
}; | |
function ExplainTypeContext(parser, ctx) { | |
ExplainOptionContext.call(this, parser); | |
this.value = null; // Token; | |
ExplainOptionContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ExplainTypeContext.prototype = Object.create(ExplainOptionContext.prototype); | |
ExplainTypeContext.prototype.constructor = ExplainTypeContext; | |
SqlBaseParser.ExplainTypeContext = ExplainTypeContext; | |
ExplainTypeContext.prototype.TYPE = function() { | |
return this.getToken(SqlBaseParser.TYPE, 0); | |
}; | |
ExplainTypeContext.prototype.LOGICAL = function() { | |
return this.getToken(SqlBaseParser.LOGICAL, 0); | |
}; | |
ExplainTypeContext.prototype.DISTRIBUTED = function() { | |
return this.getToken(SqlBaseParser.DISTRIBUTED, 0); | |
}; | |
ExplainTypeContext.prototype.VALIDATE = function() { | |
return this.getToken(SqlBaseParser.VALIDATE, 0); | |
}; | |
ExplainTypeContext.prototype.IO = function() { | |
return this.getToken(SqlBaseParser.IO, 0); | |
}; | |
ExplainTypeContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterExplainType(this); | |
} | |
}; | |
ExplainTypeContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitExplainType(this); | |
} | |
}; | |
SqlBaseParser.ExplainOptionContext = ExplainOptionContext; | |
SqlBaseParser.prototype.explainOption = function() { | |
var localctx = new ExplainOptionContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 102, SqlBaseParser.RULE_explainOption); | |
var _la = 0; // Token type | |
try { | |
this.state = 1422; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.FORMAT: | |
localctx = new ExplainFormatContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1418; | |
this.match(SqlBaseParser.FORMAT); | |
this.state = 1419; | |
localctx.value = this._input.LT(1); | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.GRAPHVIZ || _la===SqlBaseParser.JSON || _la===SqlBaseParser.TEXT)) { | |
localctx.value = this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
break; | |
case SqlBaseParser.TYPE: | |
localctx = new ExplainTypeContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 1420; | |
this.match(SqlBaseParser.TYPE); | |
this.state = 1421; | |
localctx.value = this._input.LT(1); | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.DISTRIBUTED || _la===SqlBaseParser.IO || _la===SqlBaseParser.LOGICAL || _la===SqlBaseParser.VALIDATE)) { | |
localctx.value = this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
break; | |
default: | |
throw new antlr4.error.NoViableAltException(this); | |
} | |
} catch (re) { | |
if(re instanceof antlr4.error.RecognitionException) { | |
localctx.exception = re; | |
this._errHandler.reportError(this, re); | |
this._errHandler.recover(this, re); | |
} else { | |
throw re; | |
} | |
} finally { | |
this.exitRule(); | |
} | |
return localctx; | |
}; | |
function TransactionModeContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_transactionMode; | |
return this; | |
} | |
TransactionModeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
TransactionModeContext.prototype.constructor = TransactionModeContext; | |
TransactionModeContext.prototype.copyFrom = function(ctx) { | |
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); | |
}; | |
function TransactionAccessModeContext(parser, ctx) { | |
TransactionModeContext.call(this, parser); | |
this.accessMode = null; // Token; | |
TransactionModeContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
TransactionAccessModeContext.prototype = Object.create(TransactionModeContext.prototype); | |
TransactionAccessModeContext.prototype.constructor = TransactionAccessModeContext; | |
SqlBaseParser.TransactionAccessModeContext = TransactionAccessModeContext; | |
TransactionAccessModeContext.prototype.READ = function() { | |
return this.getToken(SqlBaseParser.READ, 0); | |
}; | |
TransactionAccessModeContext.prototype.ONLY = function() { | |
return this.getToken(SqlBaseParser.ONLY, 0); | |
}; | |
TransactionAccessModeContext.prototype.WRITE = function() { | |
return this.getToken(SqlBaseParser.WRITE, 0); | |
}; | |
TransactionAccessModeContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterTransactionAccessMode(this); | |
} | |
}; | |
TransactionAccessModeContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitTransactionAccessMode(this); | |
} | |
}; | |
function IsolationLevelContext(parser, ctx) { | |
TransactionModeContext.call(this, parser); | |
TransactionModeContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
IsolationLevelContext.prototype = Object.create(TransactionModeContext.prototype); | |
IsolationLevelContext.prototype.constructor = IsolationLevelContext; | |
SqlBaseParser.IsolationLevelContext = IsolationLevelContext; | |
IsolationLevelContext.prototype.ISOLATION = function() { | |
return this.getToken(SqlBaseParser.ISOLATION, 0); | |
}; | |
IsolationLevelContext.prototype.LEVEL = function() { | |
return this.getToken(SqlBaseParser.LEVEL, 0); | |
}; | |
IsolationLevelContext.prototype.levelOfIsolation = function() { | |
return this.getTypedRuleContext(LevelOfIsolationContext,0); | |
}; | |
IsolationLevelContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterIsolationLevel(this); | |
} | |
}; | |
IsolationLevelContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitIsolationLevel(this); | |
} | |
}; | |
SqlBaseParser.TransactionModeContext = TransactionModeContext; | |
SqlBaseParser.prototype.transactionMode = function() { | |
var localctx = new TransactionModeContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 104, SqlBaseParser.RULE_transactionMode); | |
var _la = 0; // Token type | |
try { | |
this.state = 1429; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.ISOLATION: | |
localctx = new IsolationLevelContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1424; | |
this.match(SqlBaseParser.ISOLATION); | |
this.state = 1425; | |
this.match(SqlBaseParser.LEVEL); | |
this.state = 1426; | |
this.levelOfIsolation(); | |
break; | |
case SqlBaseParser.READ: | |
localctx = new TransactionAccessModeContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 1427; | |
this.match(SqlBaseParser.READ); | |
this.state = 1428; | |
localctx.accessMode = this._input.LT(1); | |
_la = this._input.LA(1); | |
if(!(_la===SqlBaseParser.ONLY || _la===SqlBaseParser.WRITE)) { | |
localctx.accessMode = this._errHandler.recoverInline(this); | |
} | |
else { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} | |
break; | |
default: | |
throw new antlr4.error.NoViableAltException(this); | |
} | |
} catch (re) { | |
if(re instanceof antlr4.error.RecognitionException) { | |
localctx.exception = re; | |
this._errHandler.reportError(this, re); | |
this._errHandler.recover(this, re); | |
} else { | |
throw re; | |
} | |
} finally { | |
this.exitRule(); | |
} | |
return localctx; | |
}; | |
function LevelOfIsolationContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_levelOfIsolation; | |
return this; | |
} | |
LevelOfIsolationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
LevelOfIsolationContext.prototype.constructor = LevelOfIsolationContext; | |
LevelOfIsolationContext.prototype.copyFrom = function(ctx) { | |
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); | |
}; | |
function ReadUncommittedContext(parser, ctx) { | |
LevelOfIsolationContext.call(this, parser); | |
LevelOfIsolationContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ReadUncommittedContext.prototype = Object.create(LevelOfIsolationContext.prototype); | |
ReadUncommittedContext.prototype.constructor = ReadUncommittedContext; | |
SqlBaseParser.ReadUncommittedContext = ReadUncommittedContext; | |
ReadUncommittedContext.prototype.READ = function() { | |
return this.getToken(SqlBaseParser.READ, 0); | |
}; | |
ReadUncommittedContext.prototype.UNCOMMITTED = function() { | |
return this.getToken(SqlBaseParser.UNCOMMITTED, 0); | |
}; | |
ReadUncommittedContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterReadUncommitted(this); | |
} | |
}; | |
ReadUncommittedContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitReadUncommitted(this); | |
} | |
}; | |
function SerializableContext(parser, ctx) { | |
LevelOfIsolationContext.call(this, parser); | |
LevelOfIsolationContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
SerializableContext.prototype = Object.create(LevelOfIsolationContext.prototype); | |
SerializableContext.prototype.constructor = SerializableContext; | |
SqlBaseParser.SerializableContext = SerializableContext; | |
SerializableContext.prototype.SERIALIZABLE = function() { | |
return this.getToken(SqlBaseParser.SERIALIZABLE, 0); | |
}; | |
SerializableContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterSerializable(this); | |
} | |
}; | |
SerializableContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitSerializable(this); | |
} | |
}; | |
function ReadCommittedContext(parser, ctx) { | |
LevelOfIsolationContext.call(this, parser); | |
LevelOfIsolationContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
ReadCommittedContext.prototype = Object.create(LevelOfIsolationContext.prototype); | |
ReadCommittedContext.prototype.constructor = ReadCommittedContext; | |
SqlBaseParser.ReadCommittedContext = ReadCommittedContext; | |
ReadCommittedContext.prototype.READ = function() { | |
return this.getToken(SqlBaseParser.READ, 0); | |
}; | |
ReadCommittedContext.prototype.COMMITTED = function() { | |
return this.getToken(SqlBaseParser.COMMITTED, 0); | |
}; | |
ReadCommittedContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterReadCommitted(this); | |
} | |
}; | |
ReadCommittedContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitReadCommitted(this); | |
} | |
}; | |
function RepeatableReadContext(parser, ctx) { | |
LevelOfIsolationContext.call(this, parser); | |
LevelOfIsolationContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
RepeatableReadContext.prototype = Object.create(LevelOfIsolationContext.prototype); | |
RepeatableReadContext.prototype.constructor = RepeatableReadContext; | |
SqlBaseParser.RepeatableReadContext = RepeatableReadContext; | |
RepeatableReadContext.prototype.REPEATABLE = function() { | |
return this.getToken(SqlBaseParser.REPEATABLE, 0); | |
}; | |
RepeatableReadContext.prototype.READ = function() { | |
return this.getToken(SqlBaseParser.READ, 0); | |
}; | |
RepeatableReadContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterRepeatableRead(this); | |
} | |
}; | |
RepeatableReadContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitRepeatableRead(this); | |
} | |
}; | |
SqlBaseParser.LevelOfIsolationContext = LevelOfIsolationContext; | |
SqlBaseParser.prototype.levelOfIsolation = function() { | |
var localctx = new LevelOfIsolationContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 106, SqlBaseParser.RULE_levelOfIsolation); | |
try { | |
this.state = 1438; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,175,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new ReadUncommittedContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1431; | |
this.match(SqlBaseParser.READ); | |
this.state = 1432; | |
this.match(SqlBaseParser.UNCOMMITTED); | |
break; | |
case 2: | |
localctx = new ReadCommittedContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 1433; | |
this.match(SqlBaseParser.READ); | |
this.state = 1434; | |
this.match(SqlBaseParser.COMMITTED); | |
break; | |
case 3: | |
localctx = new RepeatableReadContext(this, localctx); | |
this.enterOuterAlt(localctx, 3); | |
this.state = 1435; | |
this.match(SqlBaseParser.REPEATABLE); | |
this.state = 1436; | |
this.match(SqlBaseParser.READ); | |
break; | |
case 4: | |
localctx = new SerializableContext(this, localctx); | |
this.enterOuterAlt(localctx, 4); | |
this.state = 1437; | |
this.match(SqlBaseParser.SERIALIZABLE); | |
break; | |
} | |
} catch (re) { | |
if(re instanceof antlr4.error.RecognitionException) { | |
localctx.exception = re; | |
this._errHandler.reportError(this, re); | |
this._errHandler.recover(this, re); | |
} else { | |
throw re; | |
} | |
} finally { | |
this.exitRule(); | |
} | |
return localctx; | |
}; | |
function CallArgumentContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_callArgument; | |
return this; | |
} | |
CallArgumentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
CallArgumentContext.prototype.constructor = CallArgumentContext; | |
CallArgumentContext.prototype.copyFrom = function(ctx) { | |
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); | |
}; | |
function PositionalArgumentContext(parser, ctx) { | |
CallArgumentContext.call(this, parser); | |
CallArgumentContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
PositionalArgumentContext.prototype = Object.create(CallArgumentContext.prototype); | |
PositionalArgumentContext.prototype.constructor = PositionalArgumentContext; | |
SqlBaseParser.PositionalArgumentContext = PositionalArgumentContext; | |
PositionalArgumentContext.prototype.expression = function() { | |
return this.getTypedRuleContext(ExpressionContext,0); | |
}; | |
PositionalArgumentContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterPositionalArgument(this); | |
} | |
}; | |
PositionalArgumentContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitPositionalArgument(this); | |
} | |
}; | |
function NamedArgumentContext(parser, ctx) { | |
CallArgumentContext.call(this, parser); | |
CallArgumentContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
NamedArgumentContext.prototype = Object.create(CallArgumentContext.prototype); | |
NamedArgumentContext.prototype.constructor = NamedArgumentContext; | |
SqlBaseParser.NamedArgumentContext = NamedArgumentContext; | |
NamedArgumentContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
NamedArgumentContext.prototype.expression = function() { | |
return this.getTypedRuleContext(ExpressionContext,0); | |
}; | |
NamedArgumentContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterNamedArgument(this); | |
} | |
}; | |
NamedArgumentContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitNamedArgument(this); | |
} | |
}; | |
SqlBaseParser.CallArgumentContext = CallArgumentContext; | |
SqlBaseParser.prototype.callArgument = function() { | |
var localctx = new CallArgumentContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 108, SqlBaseParser.RULE_callArgument); | |
try { | |
this.state = 1445; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,176,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new PositionalArgumentContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1440; | |
this.expression(); | |
break; | |
case 2: | |
localctx = new NamedArgumentContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 1441; | |
this.identifier(); | |
this.state = 1442; | |
this.match(SqlBaseParser.T__8); | |
this.state = 1443; | |
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 PathElementContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_pathElement; | |
return this; | |
} | |
PathElementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
PathElementContext.prototype.constructor = PathElementContext; | |
PathElementContext.prototype.copyFrom = function(ctx) { | |
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); | |
}; | |
function QualifiedArgumentContext(parser, ctx) { | |
PathElementContext.call(this, parser); | |
PathElementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
QualifiedArgumentContext.prototype = Object.create(PathElementContext.prototype); | |
QualifiedArgumentContext.prototype.constructor = QualifiedArgumentContext; | |
SqlBaseParser.QualifiedArgumentContext = QualifiedArgumentContext; | |
QualifiedArgumentContext.prototype.identifier = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(IdentifierContext); | |
} else { | |
return this.getTypedRuleContext(IdentifierContext,i); | |
} | |
}; | |
QualifiedArgumentContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterQualifiedArgument(this); | |
} | |
}; | |
QualifiedArgumentContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitQualifiedArgument(this); | |
} | |
}; | |
function UnqualifiedArgumentContext(parser, ctx) { | |
PathElementContext.call(this, parser); | |
PathElementContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
UnqualifiedArgumentContext.prototype = Object.create(PathElementContext.prototype); | |
UnqualifiedArgumentContext.prototype.constructor = UnqualifiedArgumentContext; | |
SqlBaseParser.UnqualifiedArgumentContext = UnqualifiedArgumentContext; | |
UnqualifiedArgumentContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
UnqualifiedArgumentContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterUnqualifiedArgument(this); | |
} | |
}; | |
UnqualifiedArgumentContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitUnqualifiedArgument(this); | |
} | |
}; | |
SqlBaseParser.PathElementContext = PathElementContext; | |
SqlBaseParser.prototype.pathElement = function() { | |
var localctx = new PathElementContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 110, SqlBaseParser.RULE_pathElement); | |
try { | |
this.state = 1452; | |
this._errHandler.sync(this); | |
var la_ = this._interp.adaptivePredict(this._input,177,this._ctx); | |
switch(la_) { | |
case 1: | |
localctx = new QualifiedArgumentContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1447; | |
this.identifier(); | |
this.state = 1448; | |
this.match(SqlBaseParser.T__0); | |
this.state = 1449; | |
this.identifier(); | |
break; | |
case 2: | |
localctx = new UnqualifiedArgumentContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 1451; | |
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 PathSpecificationContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_pathSpecification; | |
return this; | |
} | |
PathSpecificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
PathSpecificationContext.prototype.constructor = PathSpecificationContext; | |
PathSpecificationContext.prototype.pathElement = function(i) { | |
if(i===undefined) { | |
i = null; | |
} | |
if(i===null) { | |
return this.getTypedRuleContexts(PathElementContext); | |
} else { | |
return this.getTypedRuleContext(PathElementContext,i); | |
} | |
}; | |
PathSpecificationContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterPathSpecification(this); | |
} | |
}; | |
PathSpecificationContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitPathSpecification(this); | |
} | |
}; | |
SqlBaseParser.PathSpecificationContext = PathSpecificationContext; | |
SqlBaseParser.prototype.pathSpecification = function() { | |
var localctx = new PathSpecificationContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 112, SqlBaseParser.RULE_pathSpecification); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1454; | |
this.pathElement(); | |
this.state = 1459; | |
this._errHandler.sync(this); | |
_la = this._input.LA(1); | |
while(_la===SqlBaseParser.T__3) { | |
this.state = 1455; | |
this.match(SqlBaseParser.T__3); | |
this.state = 1456; | |
this.pathElement(); | |
this.state = 1461; | |
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 PrivilegeContext(parser, parent, invokingState) { | |
if(parent===undefined) { | |
parent = null; | |
} | |
if(invokingState===undefined || invokingState===null) { | |
invokingState = -1; | |
} | |
antlr4.ParserRuleContext.call(this, parent, invokingState); | |
this.parser = parser; | |
this.ruleIndex = SqlBaseParser.RULE_privilege; | |
return this; | |
} | |
PrivilegeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
PrivilegeContext.prototype.constructor = PrivilegeContext; | |
PrivilegeContext.prototype.SELECT = function() { | |
return this.getToken(SqlBaseParser.SELECT, 0); | |
}; | |
PrivilegeContext.prototype.DELETE = function() { | |
return this.getToken(SqlBaseParser.DELETE, 0); | |
}; | |
PrivilegeContext.prototype.INSERT = function() { | |
return this.getToken(SqlBaseParser.INSERT, 0); | |
}; | |
PrivilegeContext.prototype.identifier = function() { | |
return this.getTypedRuleContext(IdentifierContext,0); | |
}; | |
PrivilegeContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterPrivilege(this); | |
} | |
}; | |
PrivilegeContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitPrivilege(this); | |
} | |
}; | |
SqlBaseParser.PrivilegeContext = PrivilegeContext; | |
SqlBaseParser.prototype.privilege = function() { | |
var localctx = new PrivilegeContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 114, SqlBaseParser.RULE_privilege); | |
try { | |
this.state = 1466; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.SELECT: | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1462; | |
this.match(SqlBaseParser.SELECT); | |
break; | |
case SqlBaseParser.DELETE: | |
this.enterOuterAlt(localctx, 2); | |
this.state = 1463; | |
this.match(SqlBaseParser.DELETE); | |
break; | |
case SqlBaseParser.INSERT: | |
this.enterOuterAlt(localctx, 3); | |
this.state = 1464; | |
this.match(SqlBaseParser.INSERT); | |
break; | |
case SqlBaseParser.ADD: | |
case SqlBaseParser.ALL: | |
case SqlBaseParser.ANALYZE: | |
case SqlBaseParser.ANY: | |
case SqlBaseParser.ARRAY: | |
case SqlBaseParser.ASC: | |
case SqlBaseParser.AT: | |
case SqlBaseParser.BERNOULLI: | |
case SqlBaseParser.CALL: | |
case SqlBaseParser.CASCADE: | |
case SqlBaseParser.CATALOGS: | |
case SqlBaseParser.COLUMN: | |
case SqlBaseParser.COLUMNS: | |
case SqlBaseParser.COMMENT: | |
case SqlBaseParser.COMMIT: | |
case SqlBaseParser.COMMITTED: | |
case SqlBaseParser.CURRENT: | |
case SqlBaseParser.DATA: | |
case SqlBaseParser.DATE: | |
case SqlBaseParser.DAY: | |
case SqlBaseParser.DESC: | |
case SqlBaseParser.DISTRIBUTED: | |
case SqlBaseParser.EXCLUDING: | |
case SqlBaseParser.EXPLAIN: | |
case SqlBaseParser.FILTER: | |
case SqlBaseParser.FIRST: | |
case SqlBaseParser.FOLLOWING: | |
case SqlBaseParser.FORMAT: | |
case SqlBaseParser.FUNCTIONS: | |
case SqlBaseParser.GRANT: | |
case SqlBaseParser.GRANTS: | |
case SqlBaseParser.GRAPHVIZ: | |
case SqlBaseParser.HOUR: | |
case SqlBaseParser.IF: | |
case SqlBaseParser.INCLUDING: | |
case SqlBaseParser.INPUT: | |
case SqlBaseParser.INTERVAL: | |
case SqlBaseParser.IO: | |
case SqlBaseParser.ISOLATION: | |
case SqlBaseParser.JSON: | |
case SqlBaseParser.LAST: | |
case SqlBaseParser.LATERAL: | |
case SqlBaseParser.LEVEL: | |
case SqlBaseParser.LIMIT: | |
case SqlBaseParser.LOGICAL: | |
case SqlBaseParser.MAP: | |
case SqlBaseParser.MINUTE: | |
case SqlBaseParser.MONTH: | |
case SqlBaseParser.NFC: | |
case SqlBaseParser.NFD: | |
case SqlBaseParser.NFKC: | |
case SqlBaseParser.NFKD: | |
case SqlBaseParser.NO: | |
case SqlBaseParser.NULLIF: | |
case SqlBaseParser.NULLS: | |
case SqlBaseParser.ONLY: | |
case SqlBaseParser.OPTION: | |
case SqlBaseParser.ORDINALITY: | |
case SqlBaseParser.OUTPUT: | |
case SqlBaseParser.OVER: | |
case SqlBaseParser.PARTITION: | |
case SqlBaseParser.PARTITIONS: | |
case SqlBaseParser.PATH: | |
case SqlBaseParser.POSITION: | |
case SqlBaseParser.PRECEDING: | |
case SqlBaseParser.PRIVILEGES: | |
case SqlBaseParser.PROPERTIES: | |
case SqlBaseParser.PUBLIC: | |
case SqlBaseParser.RANGE: | |
case SqlBaseParser.READ: | |
case SqlBaseParser.RENAME: | |
case SqlBaseParser.REPEATABLE: | |
case SqlBaseParser.REPLACE: | |
case SqlBaseParser.RESET: | |
case SqlBaseParser.RESTRICT: | |
case SqlBaseParser.REVOKE: | |
case SqlBaseParser.ROLLBACK: | |
case SqlBaseParser.ROW: | |
case SqlBaseParser.ROWS: | |
case SqlBaseParser.SCHEMA: | |
case SqlBaseParser.SCHEMAS: | |
case SqlBaseParser.SECOND: | |
case SqlBaseParser.SERIALIZABLE: | |
case SqlBaseParser.SESSION: | |
case SqlBaseParser.SET: | |
case SqlBaseParser.SETS: | |
case SqlBaseParser.SHOW: | |
case SqlBaseParser.SOME: | |
case SqlBaseParser.START: | |
case SqlBaseParser.STATS: | |
case SqlBaseParser.SUBSTRING: | |
case SqlBaseParser.SYSTEM: | |
case SqlBaseParser.TABLES: | |
case SqlBaseParser.TABLESAMPLE: | |
case SqlBaseParser.TEXT: | |
case SqlBaseParser.TIME: | |
case SqlBaseParser.TIMESTAMP: | |
case SqlBaseParser.TO: | |
case SqlBaseParser.TRANSACTION: | |
case SqlBaseParser.TRY_CAST: | |
case SqlBaseParser.TYPE: | |
case SqlBaseParser.UNBOUNDED: | |
case SqlBaseParser.UNCOMMITTED: | |
case SqlBaseParser.USE: | |
case SqlBaseParser.VALIDATE: | |
case SqlBaseParser.VERBOSE: | |
case SqlBaseParser.VIEW: | |
case SqlBaseParser.WORK: | |
case SqlBaseParser.WRITE: | |
case SqlBaseParser.YEAR: | |
case SqlBaseParser.ZONE: | |
case SqlBaseParser.IDENTIFIER: | |
case SqlBaseParser.DIGIT_IDENTIFIER: | |
case SqlBaseParser.QUOTED_IDENTIFIER: | |
case SqlBaseParser.BACKQUOTED_IDENTIFIER: | |
this.enterOuterAlt(localctx, 4); | |
this.state = 1465; | |
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 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 = SqlBaseParser.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 SqlBaseListener ) { | |
listener.enterQualifiedName(this); | |
} | |
}; | |
QualifiedNameContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitQualifiedName(this); | |
} | |
}; | |
SqlBaseParser.QualifiedNameContext = QualifiedNameContext; | |
SqlBaseParser.prototype.qualifiedName = function() { | |
var localctx = new QualifiedNameContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 116, SqlBaseParser.RULE_qualifiedName); | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1468; | |
this.identifier(); | |
this.state = 1473; | |
this._errHandler.sync(this); | |
var _alt = this._interp.adaptivePredict(this._input,180,this._ctx) | |
while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { | |
if(_alt===1) { | |
this.state = 1469; | |
this.match(SqlBaseParser.T__0); | |
this.state = 1470; | |
this.identifier(); | |
} | |
this.state = 1475; | |
this._errHandler.sync(this); | |
_alt = this._interp.adaptivePredict(this._input,180,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 = SqlBaseParser.RULE_identifier; | |
return this; | |
} | |
IdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
IdentifierContext.prototype.constructor = IdentifierContext; | |
IdentifierContext.prototype.copyFrom = function(ctx) { | |
antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); | |
}; | |
function BackQuotedIdentifierContext(parser, ctx) { | |
IdentifierContext.call(this, parser); | |
IdentifierContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
BackQuotedIdentifierContext.prototype = Object.create(IdentifierContext.prototype); | |
BackQuotedIdentifierContext.prototype.constructor = BackQuotedIdentifierContext; | |
SqlBaseParser.BackQuotedIdentifierContext = BackQuotedIdentifierContext; | |
BackQuotedIdentifierContext.prototype.BACKQUOTED_IDENTIFIER = function() { | |
return this.getToken(SqlBaseParser.BACKQUOTED_IDENTIFIER, 0); | |
}; | |
BackQuotedIdentifierContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterBackQuotedIdentifier(this); | |
} | |
}; | |
BackQuotedIdentifierContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitBackQuotedIdentifier(this); | |
} | |
}; | |
function QuotedIdentifierContext(parser, ctx) { | |
IdentifierContext.call(this, parser); | |
IdentifierContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
QuotedIdentifierContext.prototype = Object.create(IdentifierContext.prototype); | |
QuotedIdentifierContext.prototype.constructor = QuotedIdentifierContext; | |
SqlBaseParser.QuotedIdentifierContext = QuotedIdentifierContext; | |
QuotedIdentifierContext.prototype.QUOTED_IDENTIFIER = function() { | |
return this.getToken(SqlBaseParser.QUOTED_IDENTIFIER, 0); | |
}; | |
QuotedIdentifierContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterQuotedIdentifier(this); | |
} | |
}; | |
QuotedIdentifierContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitQuotedIdentifier(this); | |
} | |
}; | |
function DigitIdentifierContext(parser, ctx) { | |
IdentifierContext.call(this, parser); | |
IdentifierContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
DigitIdentifierContext.prototype = Object.create(IdentifierContext.prototype); | |
DigitIdentifierContext.prototype.constructor = DigitIdentifierContext; | |
SqlBaseParser.DigitIdentifierContext = DigitIdentifierContext; | |
DigitIdentifierContext.prototype.DIGIT_IDENTIFIER = function() { | |
return this.getToken(SqlBaseParser.DIGIT_IDENTIFIER, 0); | |
}; | |
DigitIdentifierContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterDigitIdentifier(this); | |
} | |
}; | |
DigitIdentifierContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitDigitIdentifier(this); | |
} | |
}; | |
function UnquotedIdentifierContext(parser, ctx) { | |
IdentifierContext.call(this, parser); | |
IdentifierContext.prototype.copyFrom.call(this, ctx); | |
return this; | |
} | |
UnquotedIdentifierContext.prototype = Object.create(IdentifierContext.prototype); | |
UnquotedIdentifierContext.prototype.constructor = UnquotedIdentifierContext; | |
SqlBaseParser.UnquotedIdentifierContext = UnquotedIdentifierContext; | |
UnquotedIdentifierContext.prototype.IDENTIFIER = function() { | |
return this.getToken(SqlBaseParser.IDENTIFIER, 0); | |
}; | |
UnquotedIdentifierContext.prototype.nonReserved = function() { | |
return this.getTypedRuleContext(NonReservedContext,0); | |
}; | |
UnquotedIdentifierContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterUnquotedIdentifier(this); | |
} | |
}; | |
UnquotedIdentifierContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitUnquotedIdentifier(this); | |
} | |
}; | |
SqlBaseParser.IdentifierContext = IdentifierContext; | |
SqlBaseParser.prototype.identifier = function() { | |
var localctx = new IdentifierContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 118, SqlBaseParser.RULE_identifier); | |
try { | |
this.state = 1481; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.IDENTIFIER: | |
localctx = new UnquotedIdentifierContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1476; | |
this.match(SqlBaseParser.IDENTIFIER); | |
break; | |
case SqlBaseParser.QUOTED_IDENTIFIER: | |
localctx = new QuotedIdentifierContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 1477; | |
this.match(SqlBaseParser.QUOTED_IDENTIFIER); | |
break; | |
case SqlBaseParser.ADD: | |
case SqlBaseParser.ALL: | |
case SqlBaseParser.ANALYZE: | |
case SqlBaseParser.ANY: | |
case SqlBaseParser.ARRAY: | |
case SqlBaseParser.ASC: | |
case SqlBaseParser.AT: | |
case SqlBaseParser.BERNOULLI: | |
case SqlBaseParser.CALL: | |
case SqlBaseParser.CASCADE: | |
case SqlBaseParser.CATALOGS: | |
case SqlBaseParser.COLUMN: | |
case SqlBaseParser.COLUMNS: | |
case SqlBaseParser.COMMENT: | |
case SqlBaseParser.COMMIT: | |
case SqlBaseParser.COMMITTED: | |
case SqlBaseParser.CURRENT: | |
case SqlBaseParser.DATA: | |
case SqlBaseParser.DATE: | |
case SqlBaseParser.DAY: | |
case SqlBaseParser.DESC: | |
case SqlBaseParser.DISTRIBUTED: | |
case SqlBaseParser.EXCLUDING: | |
case SqlBaseParser.EXPLAIN: | |
case SqlBaseParser.FILTER: | |
case SqlBaseParser.FIRST: | |
case SqlBaseParser.FOLLOWING: | |
case SqlBaseParser.FORMAT: | |
case SqlBaseParser.FUNCTIONS: | |
case SqlBaseParser.GRANT: | |
case SqlBaseParser.GRANTS: | |
case SqlBaseParser.GRAPHVIZ: | |
case SqlBaseParser.HOUR: | |
case SqlBaseParser.IF: | |
case SqlBaseParser.INCLUDING: | |
case SqlBaseParser.INPUT: | |
case SqlBaseParser.INTERVAL: | |
case SqlBaseParser.IO: | |
case SqlBaseParser.ISOLATION: | |
case SqlBaseParser.JSON: | |
case SqlBaseParser.LAST: | |
case SqlBaseParser.LATERAL: | |
case SqlBaseParser.LEVEL: | |
case SqlBaseParser.LIMIT: | |
case SqlBaseParser.LOGICAL: | |
case SqlBaseParser.MAP: | |
case SqlBaseParser.MINUTE: | |
case SqlBaseParser.MONTH: | |
case SqlBaseParser.NFC: | |
case SqlBaseParser.NFD: | |
case SqlBaseParser.NFKC: | |
case SqlBaseParser.NFKD: | |
case SqlBaseParser.NO: | |
case SqlBaseParser.NULLIF: | |
case SqlBaseParser.NULLS: | |
case SqlBaseParser.ONLY: | |
case SqlBaseParser.OPTION: | |
case SqlBaseParser.ORDINALITY: | |
case SqlBaseParser.OUTPUT: | |
case SqlBaseParser.OVER: | |
case SqlBaseParser.PARTITION: | |
case SqlBaseParser.PARTITIONS: | |
case SqlBaseParser.PATH: | |
case SqlBaseParser.POSITION: | |
case SqlBaseParser.PRECEDING: | |
case SqlBaseParser.PRIVILEGES: | |
case SqlBaseParser.PROPERTIES: | |
case SqlBaseParser.PUBLIC: | |
case SqlBaseParser.RANGE: | |
case SqlBaseParser.READ: | |
case SqlBaseParser.RENAME: | |
case SqlBaseParser.REPEATABLE: | |
case SqlBaseParser.REPLACE: | |
case SqlBaseParser.RESET: | |
case SqlBaseParser.RESTRICT: | |
case SqlBaseParser.REVOKE: | |
case SqlBaseParser.ROLLBACK: | |
case SqlBaseParser.ROW: | |
case SqlBaseParser.ROWS: | |
case SqlBaseParser.SCHEMA: | |
case SqlBaseParser.SCHEMAS: | |
case SqlBaseParser.SECOND: | |
case SqlBaseParser.SERIALIZABLE: | |
case SqlBaseParser.SESSION: | |
case SqlBaseParser.SET: | |
case SqlBaseParser.SETS: | |
case SqlBaseParser.SHOW: | |
case SqlBaseParser.SOME: | |
case SqlBaseParser.START: | |
case SqlBaseParser.STATS: | |
case SqlBaseParser.SUBSTRING: | |
case SqlBaseParser.SYSTEM: | |
case SqlBaseParser.TABLES: | |
case SqlBaseParser.TABLESAMPLE: | |
case SqlBaseParser.TEXT: | |
case SqlBaseParser.TIME: | |
case SqlBaseParser.TIMESTAMP: | |
case SqlBaseParser.TO: | |
case SqlBaseParser.TRANSACTION: | |
case SqlBaseParser.TRY_CAST: | |
case SqlBaseParser.TYPE: | |
case SqlBaseParser.UNBOUNDED: | |
case SqlBaseParser.UNCOMMITTED: | |
case SqlBaseParser.USE: | |
case SqlBaseParser.VALIDATE: | |
case SqlBaseParser.VERBOSE: | |
case SqlBaseParser.VIEW: | |
case SqlBaseParser.WORK: | |
case SqlBaseParser.WRITE: | |
case SqlBaseParser.YEAR: | |
case SqlBaseParser.ZONE: | |
localctx = new UnquotedIdentifierContext(this, localctx); | |
this.enterOuterAlt(localctx, 3); | |
this.state = 1478; | |
this.nonReserved(); | |
break; | |
case SqlBaseParser.BACKQUOTED_IDENTIFIER: | |
localctx = new BackQuotedIdentifierContext(this, localctx); | |
this.enterOuterAlt(localctx, 4); | |
this.state = 1479; | |
this.match(SqlBaseParser.BACKQUOTED_IDENTIFIER); | |
break; | |
case SqlBaseParser.DIGIT_IDENTIFIER: | |
localctx = new DigitIdentifierContext(this, localctx); | |
this.enterOuterAlt(localctx, 5); | |
this.state = 1480; | |
this.match(SqlBaseParser.DIGIT_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 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 = SqlBaseParser.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; | |
SqlBaseParser.DecimalLiteralContext = DecimalLiteralContext; | |
DecimalLiteralContext.prototype.DECIMAL_VALUE = function() { | |
return this.getToken(SqlBaseParser.DECIMAL_VALUE, 0); | |
}; | |
DecimalLiteralContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterDecimalLiteral(this); | |
} | |
}; | |
DecimalLiteralContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitDecimalLiteral(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; | |
SqlBaseParser.DoubleLiteralContext = DoubleLiteralContext; | |
DoubleLiteralContext.prototype.DOUBLE_VALUE = function() { | |
return this.getToken(SqlBaseParser.DOUBLE_VALUE, 0); | |
}; | |
DoubleLiteralContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterDoubleLiteral(this); | |
} | |
}; | |
DoubleLiteralContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitDoubleLiteral(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; | |
SqlBaseParser.IntegerLiteralContext = IntegerLiteralContext; | |
IntegerLiteralContext.prototype.INTEGER_VALUE = function() { | |
return this.getToken(SqlBaseParser.INTEGER_VALUE, 0); | |
}; | |
IntegerLiteralContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterIntegerLiteral(this); | |
} | |
}; | |
IntegerLiteralContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitIntegerLiteral(this); | |
} | |
}; | |
SqlBaseParser.NumberContext = NumberContext; | |
SqlBaseParser.prototype.number = function() { | |
var localctx = new NumberContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 120, SqlBaseParser.RULE_number); | |
try { | |
this.state = 1486; | |
this._errHandler.sync(this); | |
switch(this._input.LA(1)) { | |
case SqlBaseParser.DECIMAL_VALUE: | |
localctx = new DecimalLiteralContext(this, localctx); | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1483; | |
this.match(SqlBaseParser.DECIMAL_VALUE); | |
break; | |
case SqlBaseParser.DOUBLE_VALUE: | |
localctx = new DoubleLiteralContext(this, localctx); | |
this.enterOuterAlt(localctx, 2); | |
this.state = 1484; | |
this.match(SqlBaseParser.DOUBLE_VALUE); | |
break; | |
case SqlBaseParser.INTEGER_VALUE: | |
localctx = new IntegerLiteralContext(this, localctx); | |
this.enterOuterAlt(localctx, 3); | |
this.state = 1485; | |
this.match(SqlBaseParser.INTEGER_VALUE); | |
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 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 = SqlBaseParser.RULE_nonReserved; | |
return this; | |
} | |
NonReservedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); | |
NonReservedContext.prototype.constructor = NonReservedContext; | |
NonReservedContext.prototype.ADD = function() { | |
return this.getToken(SqlBaseParser.ADD, 0); | |
}; | |
NonReservedContext.prototype.ALL = function() { | |
return this.getToken(SqlBaseParser.ALL, 0); | |
}; | |
NonReservedContext.prototype.ANALYZE = function() { | |
return this.getToken(SqlBaseParser.ANALYZE, 0); | |
}; | |
NonReservedContext.prototype.ANY = function() { | |
return this.getToken(SqlBaseParser.ANY, 0); | |
}; | |
NonReservedContext.prototype.ARRAY = function() { | |
return this.getToken(SqlBaseParser.ARRAY, 0); | |
}; | |
NonReservedContext.prototype.ASC = function() { | |
return this.getToken(SqlBaseParser.ASC, 0); | |
}; | |
NonReservedContext.prototype.AT = function() { | |
return this.getToken(SqlBaseParser.AT, 0); | |
}; | |
NonReservedContext.prototype.BERNOULLI = function() { | |
return this.getToken(SqlBaseParser.BERNOULLI, 0); | |
}; | |
NonReservedContext.prototype.CALL = function() { | |
return this.getToken(SqlBaseParser.CALL, 0); | |
}; | |
NonReservedContext.prototype.CASCADE = function() { | |
return this.getToken(SqlBaseParser.CASCADE, 0); | |
}; | |
NonReservedContext.prototype.CATALOGS = function() { | |
return this.getToken(SqlBaseParser.CATALOGS, 0); | |
}; | |
NonReservedContext.prototype.COLUMN = function() { | |
return this.getToken(SqlBaseParser.COLUMN, 0); | |
}; | |
NonReservedContext.prototype.COLUMNS = function() { | |
return this.getToken(SqlBaseParser.COLUMNS, 0); | |
}; | |
NonReservedContext.prototype.COMMENT = function() { | |
return this.getToken(SqlBaseParser.COMMENT, 0); | |
}; | |
NonReservedContext.prototype.COMMIT = function() { | |
return this.getToken(SqlBaseParser.COMMIT, 0); | |
}; | |
NonReservedContext.prototype.COMMITTED = function() { | |
return this.getToken(SqlBaseParser.COMMITTED, 0); | |
}; | |
NonReservedContext.prototype.CURRENT = function() { | |
return this.getToken(SqlBaseParser.CURRENT, 0); | |
}; | |
NonReservedContext.prototype.DATA = function() { | |
return this.getToken(SqlBaseParser.DATA, 0); | |
}; | |
NonReservedContext.prototype.DATE = function() { | |
return this.getToken(SqlBaseParser.DATE, 0); | |
}; | |
NonReservedContext.prototype.DAY = function() { | |
return this.getToken(SqlBaseParser.DAY, 0); | |
}; | |
NonReservedContext.prototype.DESC = function() { | |
return this.getToken(SqlBaseParser.DESC, 0); | |
}; | |
NonReservedContext.prototype.DISTRIBUTED = function() { | |
return this.getToken(SqlBaseParser.DISTRIBUTED, 0); | |
}; | |
NonReservedContext.prototype.EXCLUDING = function() { | |
return this.getToken(SqlBaseParser.EXCLUDING, 0); | |
}; | |
NonReservedContext.prototype.EXPLAIN = function() { | |
return this.getToken(SqlBaseParser.EXPLAIN, 0); | |
}; | |
NonReservedContext.prototype.FILTER = function() { | |
return this.getToken(SqlBaseParser.FILTER, 0); | |
}; | |
NonReservedContext.prototype.FIRST = function() { | |
return this.getToken(SqlBaseParser.FIRST, 0); | |
}; | |
NonReservedContext.prototype.FOLLOWING = function() { | |
return this.getToken(SqlBaseParser.FOLLOWING, 0); | |
}; | |
NonReservedContext.prototype.FORMAT = function() { | |
return this.getToken(SqlBaseParser.FORMAT, 0); | |
}; | |
NonReservedContext.prototype.FUNCTIONS = function() { | |
return this.getToken(SqlBaseParser.FUNCTIONS, 0); | |
}; | |
NonReservedContext.prototype.GRANT = function() { | |
return this.getToken(SqlBaseParser.GRANT, 0); | |
}; | |
NonReservedContext.prototype.GRANTS = function() { | |
return this.getToken(SqlBaseParser.GRANTS, 0); | |
}; | |
NonReservedContext.prototype.GRAPHVIZ = function() { | |
return this.getToken(SqlBaseParser.GRAPHVIZ, 0); | |
}; | |
NonReservedContext.prototype.HOUR = function() { | |
return this.getToken(SqlBaseParser.HOUR, 0); | |
}; | |
NonReservedContext.prototype.IF = function() { | |
return this.getToken(SqlBaseParser.IF, 0); | |
}; | |
NonReservedContext.prototype.INCLUDING = function() { | |
return this.getToken(SqlBaseParser.INCLUDING, 0); | |
}; | |
NonReservedContext.prototype.INPUT = function() { | |
return this.getToken(SqlBaseParser.INPUT, 0); | |
}; | |
NonReservedContext.prototype.INTERVAL = function() { | |
return this.getToken(SqlBaseParser.INTERVAL, 0); | |
}; | |
NonReservedContext.prototype.IO = function() { | |
return this.getToken(SqlBaseParser.IO, 0); | |
}; | |
NonReservedContext.prototype.ISOLATION = function() { | |
return this.getToken(SqlBaseParser.ISOLATION, 0); | |
}; | |
NonReservedContext.prototype.JSON = function() { | |
return this.getToken(SqlBaseParser.JSON, 0); | |
}; | |
NonReservedContext.prototype.LAST = function() { | |
return this.getToken(SqlBaseParser.LAST, 0); | |
}; | |
NonReservedContext.prototype.LATERAL = function() { | |
return this.getToken(SqlBaseParser.LATERAL, 0); | |
}; | |
NonReservedContext.prototype.LEVEL = function() { | |
return this.getToken(SqlBaseParser.LEVEL, 0); | |
}; | |
NonReservedContext.prototype.LIMIT = function() { | |
return this.getToken(SqlBaseParser.LIMIT, 0); | |
}; | |
NonReservedContext.prototype.LOGICAL = function() { | |
return this.getToken(SqlBaseParser.LOGICAL, 0); | |
}; | |
NonReservedContext.prototype.MAP = function() { | |
return this.getToken(SqlBaseParser.MAP, 0); | |
}; | |
NonReservedContext.prototype.MINUTE = function() { | |
return this.getToken(SqlBaseParser.MINUTE, 0); | |
}; | |
NonReservedContext.prototype.MONTH = function() { | |
return this.getToken(SqlBaseParser.MONTH, 0); | |
}; | |
NonReservedContext.prototype.NFC = function() { | |
return this.getToken(SqlBaseParser.NFC, 0); | |
}; | |
NonReservedContext.prototype.NFD = function() { | |
return this.getToken(SqlBaseParser.NFD, 0); | |
}; | |
NonReservedContext.prototype.NFKC = function() { | |
return this.getToken(SqlBaseParser.NFKC, 0); | |
}; | |
NonReservedContext.prototype.NFKD = function() { | |
return this.getToken(SqlBaseParser.NFKD, 0); | |
}; | |
NonReservedContext.prototype.NO = function() { | |
return this.getToken(SqlBaseParser.NO, 0); | |
}; | |
NonReservedContext.prototype.NULLIF = function() { | |
return this.getToken(SqlBaseParser.NULLIF, 0); | |
}; | |
NonReservedContext.prototype.NULLS = function() { | |
return this.getToken(SqlBaseParser.NULLS, 0); | |
}; | |
NonReservedContext.prototype.ONLY = function() { | |
return this.getToken(SqlBaseParser.ONLY, 0); | |
}; | |
NonReservedContext.prototype.OPTION = function() { | |
return this.getToken(SqlBaseParser.OPTION, 0); | |
}; | |
NonReservedContext.prototype.ORDINALITY = function() { | |
return this.getToken(SqlBaseParser.ORDINALITY, 0); | |
}; | |
NonReservedContext.prototype.OUTPUT = function() { | |
return this.getToken(SqlBaseParser.OUTPUT, 0); | |
}; | |
NonReservedContext.prototype.OVER = function() { | |
return this.getToken(SqlBaseParser.OVER, 0); | |
}; | |
NonReservedContext.prototype.PARTITION = function() { | |
return this.getToken(SqlBaseParser.PARTITION, 0); | |
}; | |
NonReservedContext.prototype.PARTITIONS = function() { | |
return this.getToken(SqlBaseParser.PARTITIONS, 0); | |
}; | |
NonReservedContext.prototype.PATH = function() { | |
return this.getToken(SqlBaseParser.PATH, 0); | |
}; | |
NonReservedContext.prototype.POSITION = function() { | |
return this.getToken(SqlBaseParser.POSITION, 0); | |
}; | |
NonReservedContext.prototype.PRECEDING = function() { | |
return this.getToken(SqlBaseParser.PRECEDING, 0); | |
}; | |
NonReservedContext.prototype.PRIVILEGES = function() { | |
return this.getToken(SqlBaseParser.PRIVILEGES, 0); | |
}; | |
NonReservedContext.prototype.PROPERTIES = function() { | |
return this.getToken(SqlBaseParser.PROPERTIES, 0); | |
}; | |
NonReservedContext.prototype.PUBLIC = function() { | |
return this.getToken(SqlBaseParser.PUBLIC, 0); | |
}; | |
NonReservedContext.prototype.RANGE = function() { | |
return this.getToken(SqlBaseParser.RANGE, 0); | |
}; | |
NonReservedContext.prototype.READ = function() { | |
return this.getToken(SqlBaseParser.READ, 0); | |
}; | |
NonReservedContext.prototype.RENAME = function() { | |
return this.getToken(SqlBaseParser.RENAME, 0); | |
}; | |
NonReservedContext.prototype.REPEATABLE = function() { | |
return this.getToken(SqlBaseParser.REPEATABLE, 0); | |
}; | |
NonReservedContext.prototype.REPLACE = function() { | |
return this.getToken(SqlBaseParser.REPLACE, 0); | |
}; | |
NonReservedContext.prototype.RESET = function() { | |
return this.getToken(SqlBaseParser.RESET, 0); | |
}; | |
NonReservedContext.prototype.RESTRICT = function() { | |
return this.getToken(SqlBaseParser.RESTRICT, 0); | |
}; | |
NonReservedContext.prototype.REVOKE = function() { | |
return this.getToken(SqlBaseParser.REVOKE, 0); | |
}; | |
NonReservedContext.prototype.ROLLBACK = function() { | |
return this.getToken(SqlBaseParser.ROLLBACK, 0); | |
}; | |
NonReservedContext.prototype.ROW = function() { | |
return this.getToken(SqlBaseParser.ROW, 0); | |
}; | |
NonReservedContext.prototype.ROWS = function() { | |
return this.getToken(SqlBaseParser.ROWS, 0); | |
}; | |
NonReservedContext.prototype.SCHEMA = function() { | |
return this.getToken(SqlBaseParser.SCHEMA, 0); | |
}; | |
NonReservedContext.prototype.SCHEMAS = function() { | |
return this.getToken(SqlBaseParser.SCHEMAS, 0); | |
}; | |
NonReservedContext.prototype.SECOND = function() { | |
return this.getToken(SqlBaseParser.SECOND, 0); | |
}; | |
NonReservedContext.prototype.SERIALIZABLE = function() { | |
return this.getToken(SqlBaseParser.SERIALIZABLE, 0); | |
}; | |
NonReservedContext.prototype.SESSION = function() { | |
return this.getToken(SqlBaseParser.SESSION, 0); | |
}; | |
NonReservedContext.prototype.SET = function() { | |
return this.getToken(SqlBaseParser.SET, 0); | |
}; | |
NonReservedContext.prototype.SETS = function() { | |
return this.getToken(SqlBaseParser.SETS, 0); | |
}; | |
NonReservedContext.prototype.SHOW = function() { | |
return this.getToken(SqlBaseParser.SHOW, 0); | |
}; | |
NonReservedContext.prototype.SOME = function() { | |
return this.getToken(SqlBaseParser.SOME, 0); | |
}; | |
NonReservedContext.prototype.START = function() { | |
return this.getToken(SqlBaseParser.START, 0); | |
}; | |
NonReservedContext.prototype.STATS = function() { | |
return this.getToken(SqlBaseParser.STATS, 0); | |
}; | |
NonReservedContext.prototype.SUBSTRING = function() { | |
return this.getToken(SqlBaseParser.SUBSTRING, 0); | |
}; | |
NonReservedContext.prototype.SYSTEM = function() { | |
return this.getToken(SqlBaseParser.SYSTEM, 0); | |
}; | |
NonReservedContext.prototype.TABLES = function() { | |
return this.getToken(SqlBaseParser.TABLES, 0); | |
}; | |
NonReservedContext.prototype.TABLESAMPLE = function() { | |
return this.getToken(SqlBaseParser.TABLESAMPLE, 0); | |
}; | |
NonReservedContext.prototype.TEXT = function() { | |
return this.getToken(SqlBaseParser.TEXT, 0); | |
}; | |
NonReservedContext.prototype.TIME = function() { | |
return this.getToken(SqlBaseParser.TIME, 0); | |
}; | |
NonReservedContext.prototype.TIMESTAMP = function() { | |
return this.getToken(SqlBaseParser.TIMESTAMP, 0); | |
}; | |
NonReservedContext.prototype.TO = function() { | |
return this.getToken(SqlBaseParser.TO, 0); | |
}; | |
NonReservedContext.prototype.TRANSACTION = function() { | |
return this.getToken(SqlBaseParser.TRANSACTION, 0); | |
}; | |
NonReservedContext.prototype.TRY_CAST = function() { | |
return this.getToken(SqlBaseParser.TRY_CAST, 0); | |
}; | |
NonReservedContext.prototype.TYPE = function() { | |
return this.getToken(SqlBaseParser.TYPE, 0); | |
}; | |
NonReservedContext.prototype.UNBOUNDED = function() { | |
return this.getToken(SqlBaseParser.UNBOUNDED, 0); | |
}; | |
NonReservedContext.prototype.UNCOMMITTED = function() { | |
return this.getToken(SqlBaseParser.UNCOMMITTED, 0); | |
}; | |
NonReservedContext.prototype.USE = function() { | |
return this.getToken(SqlBaseParser.USE, 0); | |
}; | |
NonReservedContext.prototype.VALIDATE = function() { | |
return this.getToken(SqlBaseParser.VALIDATE, 0); | |
}; | |
NonReservedContext.prototype.VERBOSE = function() { | |
return this.getToken(SqlBaseParser.VERBOSE, 0); | |
}; | |
NonReservedContext.prototype.VIEW = function() { | |
return this.getToken(SqlBaseParser.VIEW, 0); | |
}; | |
NonReservedContext.prototype.WORK = function() { | |
return this.getToken(SqlBaseParser.WORK, 0); | |
}; | |
NonReservedContext.prototype.WRITE = function() { | |
return this.getToken(SqlBaseParser.WRITE, 0); | |
}; | |
NonReservedContext.prototype.YEAR = function() { | |
return this.getToken(SqlBaseParser.YEAR, 0); | |
}; | |
NonReservedContext.prototype.ZONE = function() { | |
return this.getToken(SqlBaseParser.ZONE, 0); | |
}; | |
NonReservedContext.prototype.enterRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.enterNonReserved(this); | |
} | |
}; | |
NonReservedContext.prototype.exitRule = function(listener) { | |
if(listener instanceof SqlBaseListener ) { | |
listener.exitNonReserved(this); | |
} | |
}; | |
SqlBaseParser.NonReservedContext = NonReservedContext; | |
SqlBaseParser.prototype.nonReserved = function() { | |
var localctx = new NonReservedContext(this, this._ctx, this.state); | |
this.enterRule(localctx, 122, SqlBaseParser.RULE_nonReserved); | |
var _la = 0; // Token type | |
try { | |
this.enterOuterAlt(localctx, 1); | |
this.state = 1488; | |
_la = this._input.LA(1); | |
if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SqlBaseParser.ADD) | (1 << SqlBaseParser.ALL) | (1 << SqlBaseParser.ANALYZE) | (1 << SqlBaseParser.ANY) | (1 << SqlBaseParser.ARRAY) | (1 << SqlBaseParser.ASC) | (1 << SqlBaseParser.AT) | (1 << SqlBaseParser.BERNOULLI) | (1 << SqlBaseParser.CALL) | (1 << SqlBaseParser.CASCADE) | (1 << SqlBaseParser.CATALOGS) | (1 << SqlBaseParser.COLUMN) | (1 << SqlBaseParser.COLUMNS) | (1 << SqlBaseParser.COMMENT) | (1 << SqlBaseParser.COMMIT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SqlBaseParser.COMMITTED - 32)) | (1 << (SqlBaseParser.CURRENT - 32)) | (1 << (SqlBaseParser.DATA - 32)) | (1 << (SqlBaseParser.DATE - 32)) | (1 << (SqlBaseParser.DAY - 32)) | (1 << (SqlBaseParser.DESC - 32)) | (1 << (SqlBaseParser.DISTRIBUTED - 32)) | (1 << (SqlBaseParser.EXCLUDING - 32)) | (1 << (SqlBaseParser.EXPLAIN - 32)) | (1 << (SqlBaseParser.FILTER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (SqlBaseParser.FIRST - 64)) | (1 << (SqlBaseParser.FOLLOWING - 64)) | (1 << (SqlBaseParser.FORMAT - 64)) | (1 << (SqlBaseParser.FUNCTIONS - 64)) | (1 << (SqlBaseParser.GRANT - 64)) | (1 << (SqlBaseParser.GRANTS - 64)) | (1 << (SqlBaseParser.GRAPHVIZ - 64)) | (1 << (SqlBaseParser.HOUR - 64)) | (1 << (SqlBaseParser.IF - 64)) | (1 << (SqlBaseParser.INCLUDING - 64)) | (1 << (SqlBaseParser.INPUT - 64)) | (1 << (SqlBaseParser.INTERVAL - 64)) | (1 << (SqlBaseParser.IO - 64)) | (1 << (SqlBaseParser.ISOLATION - 64)) | (1 << (SqlBaseParser.JSON - 64)) | (1 << (SqlBaseParser.LAST - 64)) | (1 << (SqlBaseParser.LATERAL - 64)) | (1 << (SqlBaseParser.LEVEL - 64)))) !== 0) || ((((_la - 97)) & ~0x1f) == 0 && ((1 << (_la - 97)) & ((1 << (SqlBaseParser.LIMIT - 97)) | (1 << (SqlBaseParser.LOGICAL - 97)) | (1 << (SqlBaseParser.MAP - 97)) | (1 << (SqlBaseParser.MINUTE - 97)) | (1 << (SqlBaseParser.MONTH - 97)) | (1 << (SqlBaseParser.NFC - 97)) | (1 << (SqlBaseParser.NFD - 97)) | (1 << (SqlBaseParser.NFKC - 97)) | (1 << (SqlBaseParser.NFKD - 97)) | (1 << (SqlBaseParser.NO - 97)) | (1 << (SqlBaseParser.NULLIF - 97)) | (1 << (SqlBaseParser.NULLS - 97)) | (1 << (SqlBaseParser.ONLY - 97)) | (1 << (SqlBaseParser.OPTION - 97)) | (1 << (SqlBaseParser.ORDINALITY - 97)) | (1 << (SqlBaseParser.OUTPUT - 97)) | (1 << (SqlBaseParser.OVER - 97)) | (1 << (SqlBaseParser.PARTITION - 97)) | (1 << (SqlBaseParser.PARTITIONS - 97)) | (1 << (SqlBaseParser.PATH - 97)) | (1 << (SqlBaseParser.POSITION - 97)) | (1 << (SqlBaseParser.PRECEDING - 97)))) !== 0) || ((((_la - 130)) & ~0x1f) == 0 && ((1 << (_la - 130)) & ((1 << (SqlBaseParser.PRIVILEGES - 130)) | (1 << (SqlBaseParser.PROPERTIES - 130)) | (1 << (SqlBaseParser.PUBLIC - 130)) | (1 << (SqlBaseParser.RANGE - 130)) | (1 << (SqlBaseParser.READ - 130)) | (1 << (SqlBaseParser.RENAME - 130)) | (1 << (SqlBaseParser.REPEATABLE - 130)) | (1 << (SqlBaseParser.REPLACE - 130)) | (1 << (SqlBaseParser.RESET - 130)) | (1 << (SqlBaseParser.RESTRICT - 130)) | (1 << (SqlBaseParser.REVOKE - 130)) | (1 << (SqlBaseParser.ROLLBACK - 130)) | (1 << (SqlBaseParser.ROW - 130)) | (1 << (SqlBaseParser.ROWS - 130)) | (1 << (SqlBaseParser.SCHEMA - 130)) | (1 << (SqlBaseParser.SCHEMAS - 130)) | (1 << (SqlBaseParser.SECOND - 130)) | (1 << (SqlBaseParser.SERIALIZABLE - 130)) | (1 << (SqlBaseParser.SESSION - 130)) | (1 << (SqlBaseParser.SET - 130)) | (1 << (SqlBaseParser.SETS - 130)) | (1 << (SqlBaseParser.SHOW - 130)) | (1 << (SqlBaseParser.SOME - 130)) | (1 << (SqlBaseParser.START - 130)) | (1 << (SqlBaseParser.STATS - 130)) | (1 << (SqlBaseParser.SUBSTRING - 130)) | (1 << (SqlBaseParser.SYSTEM - 130)))) !== 0) || ((((_la - 162)) & ~0x1f) == 0 && ((1 << (_la - 162)) & ((1 << (SqlBaseParser.TABLES - 162)) | (1 << (SqlBaseParser.TABLESAMPLE - 162)) | (1 << (SqlBaseParser.TEXT - 162)) | (1 << (SqlBaseParser.TIME - 162)) | (1 << (SqlBaseParser.TIMESTAMP - 162)) | (1 << (SqlBaseParser.TO - 162)) | (1 << (SqlBaseParser.TRANSACTION - 162)) | (1 << (SqlBaseParser.TRY_CAST - 162)) | (1 << (SqlBaseParser.TYPE - 162)) | (1 << (SqlBaseParser.UNBOUNDED - 162)) | (1 << (SqlBaseParser.UNCOMMITTED - 162)) | (1 << (SqlBaseParser.USE - 162)) | (1 << (SqlBaseParser.VALIDATE - 162)) | (1 << (SqlBaseParser.VERBOSE - 162)) | (1 << (SqlBaseParser.VIEW - 162)) | (1 << (SqlBaseParser.WORK - 162)) | (1 << (SqlBaseParser.WRITE - 162)) | (1 << (SqlBaseParser.YEAR - 162)) | (1 << (SqlBaseParser.ZONE - 162)))) !== 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; | |
}; | |
SqlBaseParser.prototype.sempred = function(localctx, ruleIndex, predIndex) { | |
switch(ruleIndex) { | |
case 12: | |
return this.queryTerm_sempred(localctx, predIndex); | |
case 22: | |
return this.relation_sempred(localctx, predIndex); | |
case 31: | |
return this.booleanExpression_sempred(localctx, predIndex); | |
case 33: | |
return this.valueExpression_sempred(localctx, predIndex); | |
case 34: | |
return this.primaryExpression_sempred(localctx, predIndex); | |
case 43: | |
return this.type_sempred(localctx, predIndex); | |
default: | |
throw "No predicate with index:" + ruleIndex; | |
} | |
}; | |
SqlBaseParser.prototype.queryTerm_sempred = function(localctx, predIndex) { | |
switch(predIndex) { | |
case 0: | |
return this.precpred(this._ctx, 2); | |
case 1: | |
return this.precpred(this._ctx, 1); | |
default: | |
throw "No predicate with index:" + predIndex; | |
} | |
}; | |
SqlBaseParser.prototype.relation_sempred = function(localctx, predIndex) { | |
switch(predIndex) { | |
case 2: | |
return this.precpred(this._ctx, 2); | |
default: | |
throw "No predicate with index:" + predIndex; | |
} | |
}; | |
SqlBaseParser.prototype.booleanExpression_sempred = function(localctx, predIndex) { | |
switch(predIndex) { | |
case 3: | |
return this.precpred(this._ctx, 2); | |
case 4: | |
return this.precpred(this._ctx, 1); | |
default: | |
throw "No predicate with index:" + predIndex; | |
} | |
}; | |
SqlBaseParser.prototype.valueExpression_sempred = function(localctx, predIndex) { | |
switch(predIndex) { | |
case 5: | |
return this.precpred(this._ctx, 3); | |
case 6: | |
return this.precpred(this._ctx, 2); | |
case 7: | |
return this.precpred(this._ctx, 1); | |
case 8: | |
return this.precpred(this._ctx, 5); | |
default: | |
throw "No predicate with index:" + predIndex; | |
} | |
}; | |
SqlBaseParser.prototype.primaryExpression_sempred = function(localctx, predIndex) { | |
switch(predIndex) { | |
case 9: | |
return this.precpred(this._ctx, 15); | |
case 10: | |
return this.precpred(this._ctx, 13); | |
default: | |
throw "No predicate with index:" + predIndex; | |
} | |
}; | |
SqlBaseParser.prototype.type_sempred = function(localctx, predIndex) { | |
switch(predIndex) { | |
case 11: | |
return this.precpred(this._ctx, 6); | |
default: | |
throw "No predicate with index:" + predIndex; | |
} | |
}; | |
exports.SqlBaseParser = SqlBaseParser; | |
},{"./SqlBaseListener":2,"antlr4/index":45}],4:[function(require,module,exports){ | |
// | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
// This implementation of {@link TokenStream} loads tokens from a | |
// {@link TokenSource} on-demand, and places the tokens in a buffer to provide | |
// access to any previous token by index. | |
// | |
// <p> | |
// This token stream ignores the value of {@link Token//getChannel}. If your | |
// parser requires the token stream filter tokens to only those on a particular | |
// channel, such as {@link Token//DEFAULT_CHANNEL} or | |
// {@link Token//HIDDEN_CHANNEL}, use a filtering token stream such a | |
// {@link CommonTokenStream}.</p> | |
var Token = require('./Token').Token; | |
var Lexer = require('./Lexer').Lexer; | |
var Interval = require('./IntervalSet').Interval; | |
// this is just to keep meaningful parameter types to Parser | |
function TokenStream() { | |
return this; | |
} | |
function BufferedTokenStream(tokenSource) { | |
TokenStream.call(this); | |
// The {@link TokenSource} from which tokens for this stream are fetched. | |
this.tokenSource = tokenSource; | |
// A collection of all tokens fetched from the token source. The list is | |
// considered a complete view of the input once {@link //fetchedEOF} is set | |
// to {@code true}. | |
this.tokens = []; | |
// The index into {@link //tokens} of the current token (next token to | |
// {@link //consume}). {@link //tokens}{@code [}{@link //p}{@code ]} should | |
// be | |
// {@link //LT LT(1)}. | |
// | |
// <p>This field is set to -1 when the stream is first constructed or when | |
// {@link //setTokenSource} is called, indicating that the first token has | |
// not yet been fetched from the token source. For additional information, | |
// see the documentation of {@link IntStream} for a description of | |
// Initializing Methods.</p> | |
this.index = -1; | |
// Indicates whether the {@link Token//EOF} token has been fetched from | |
// {@link //tokenSource} and added to {@link //tokens}. This field improves | |
// performance for the following cases: | |
// | |
// <ul> | |
// <li>{@link //consume}: The lookahead check in {@link //consume} to | |
// prevent | |
// consuming the EOF symbol is optimized by checking the values of | |
// {@link //fetchedEOF} and {@link //p} instead of calling {@link | |
// //LA}.</li> | |
// <li>{@link //fetch}: The check to prevent adding multiple EOF symbols | |
// into | |
// {@link //tokens} is trivial with this field.</li> | |
// <ul> | |
this.fetchedEOF = false; | |
return this; | |
} | |
BufferedTokenStream.prototype = Object.create(TokenStream.prototype); | |
BufferedTokenStream.prototype.constructor = BufferedTokenStream; | |
BufferedTokenStream.prototype.mark = function() { | |
return 0; | |
}; | |
BufferedTokenStream.prototype.release = function(marker) { | |
// no resources to release | |
}; | |
BufferedTokenStream.prototype.reset = function() { | |
this.seek(0); | |
}; | |
BufferedTokenStream.prototype.seek = function(index) { | |
this.lazyInit(); | |
this.index = this.adjustSeekIndex(index); | |
}; | |
BufferedTokenStream.prototype.get = function(index) { | |
this.lazyInit(); | |
return this.tokens[index]; | |
}; | |
BufferedTokenStream.prototype.consume = function() { | |
var skipEofCheck = false; | |
if (this.index >= 0) { | |
if (this.fetchedEOF) { | |
// the last token in tokens is EOF. skip check if p indexes any | |
// fetched token except the last. | |
skipEofCheck = this.index < this.tokens.length - 1; | |
} else { | |
// no EOF token in tokens. skip check if p indexes a fetched token. | |
skipEofCheck = this.index < this.tokens.length; | |
} | |
} else { | |
// not yet initialized | |
skipEofCheck = false; | |
} | |
if (!skipEofCheck && this.LA(1) === Token.EOF) { | |
throw "cannot consume EOF"; | |
} | |
if (this.sync(this.index + 1)) { | |
this.index = this.adjustSeekIndex(this.index + 1); | |
} | |
}; | |
// Make sure index {@code i} in tokens has a token. | |
// | |
// @return {@code true} if a token is located at index {@code i}, otherwise | |
// {@code false}. | |
// @see //get(int i) | |
// / | |
BufferedTokenStream.prototype.sync = function(i) { | |
var n = i - this.tokens.length + 1; // how many more elements we need? | |
if (n > 0) { | |
var fetched = this.fetch(n); | |
return fetched >= n; | |
} | |
return true; | |
}; | |
// Add {@code n} elements to buffer. | |
// | |
// @return The actual number of elements added to the buffer. | |
// / | |
BufferedTokenStream.prototype.fetch = function(n) { | |
if (this.fetchedEOF) { | |
return 0; | |
} | |
for (var i = 0; i < n; i++) { | |
var t = this.tokenSource.nextToken(); | |
t.tokenIndex = this.tokens.length; | |
this.tokens.push(t); | |
if (t.type === Token.EOF) { | |
this.fetchedEOF = true; | |
return i + 1; | |
} | |
} | |
return n; | |
}; | |
// Get all tokens from start..stop inclusively/// | |
BufferedTokenStream.prototype.getTokens = function(start, stop, types) { | |
if (types === undefined) { | |
types = null; | |
} | |
if (start < 0 || stop < 0) { | |
return null; | |
} | |
this.lazyInit(); | |
var subset = []; | |
if (stop >= this.tokens.length) { | |
stop = this.tokens.length - 1; | |
} | |
for (var i = start; i < stop; i++) { | |
var t = this.tokens[i]; | |
if (t.type === Token.EOF) { | |
break; | |
} | |
if (types === null || types.contains(t.type)) { | |
subset.push(t); | |
} | |
} | |
return subset; | |
}; | |
BufferedTokenStream.prototype.LA = function(i) { | |
return this.LT(i).type; | |
}; | |
BufferedTokenStream.prototype.LB = function(k) { | |
if (this.index - k < 0) { | |
return null; | |
} | |
return this.tokens[this.index - k]; | |
}; | |
BufferedTokenStream.prototype.LT = function(k) { | |
this.lazyInit(); | |
if (k === 0) { | |
return null; | |
} | |
if (k < 0) { | |
return this.LB(-k); | |
} | |
var i = this.index + k - 1; | |
this.sync(i); | |
if (i >= this.tokens.length) { // return EOF token | |
// EOF must be last token | |
return this.tokens[this.tokens.length - 1]; | |
} | |
return this.tokens[i]; | |
}; | |
// Allowed derived classes to modify the behavior of operations which change | |
// the current stream position by adjusting the target token index of a seek | |
// operation. The default implementation simply returns {@code i}. If an | |
// exception is thrown in this method, the current stream index should not be | |
// changed. | |
// | |
// <p>For example, {@link CommonTokenStream} overrides this method to ensure | |
// that | |
// the seek target is always an on-channel token.</p> | |
// | |
// @param i The target token index. | |
// @return The adjusted target token index. | |
BufferedTokenStream.prototype.adjustSeekIndex = function(i) { | |
return i; | |
}; | |
BufferedTokenStream.prototype.lazyInit = function() { | |
if (this.index === -1) { | |
this.setup(); | |
} | |
}; | |
BufferedTokenStream.prototype.setup = function() { | |
this.sync(0); | |
this.index = this.adjustSeekIndex(0); | |
}; | |
// Reset this token stream by setting its token source./// | |
BufferedTokenStream.prototype.setTokenSource = function(tokenSource) { | |
this.tokenSource = tokenSource; | |
this.tokens = []; | |
this.index = -1; | |
this.fetchedEOF = false; | |
}; | |
// Given a starting index, return the index of the next token on channel. | |
// Return i if tokens[i] is on channel. Return -1 if there are no tokens | |
// on channel between i and EOF. | |
// / | |
BufferedTokenStream.prototype.nextTokenOnChannel = function(i, channel) { | |
this.sync(i); | |
if (i >= this.tokens.length) { | |
return -1; | |
} | |
var token = this.tokens[i]; | |
while (token.channel !== this.channel) { | |
if (token.type === Token.EOF) { | |
return -1; | |
} | |
i += 1; | |
this.sync(i); | |
token = this.tokens[i]; | |
} | |
return i; | |
}; | |
// Given a starting index, return the index of the previous token on channel. | |
// Return i if tokens[i] is on channel. Return -1 if there are no tokens | |
// on channel between i and 0. | |
BufferedTokenStream.prototype.previousTokenOnChannel = function(i, channel) { | |
while (i >= 0 && this.tokens[i].channel !== channel) { | |
i -= 1; | |
} | |
return i; | |
}; | |
// Collect all tokens on specified channel to the right of | |
// the current token up until we see a token on DEFAULT_TOKEN_CHANNEL or | |
// EOF. If channel is -1, find any non default channel token. | |
BufferedTokenStream.prototype.getHiddenTokensToRight = function(tokenIndex, | |
channel) { | |
if (channel === undefined) { | |
channel = -1; | |
} | |
this.lazyInit(); | |
if (tokenIndex < 0 || tokenIndex >= this.tokens.length) { | |
throw "" + tokenIndex + " not in 0.." + this.tokens.length - 1; | |
} | |
var nextOnChannel = this.nextTokenOnChannel(tokenIndex + 1, Lexer.DEFAULT_TOKEN_CHANNEL); | |
var from_ = tokenIndex + 1; | |
// if none onchannel to right, nextOnChannel=-1 so set to = last token | |
var to = nextOnChannel === -1 ? this.tokens.length - 1 : nextOnChannel; | |
return this.filterForChannel(from_, to, channel); | |
}; | |
// Collect all tokens on specified channel to the left of | |
// the current token up until we see a token on DEFAULT_TOKEN_CHANNEL. | |
// If channel is -1, find any non default channel token. | |
BufferedTokenStream.prototype.getHiddenTokensToLeft = function(tokenIndex, | |
channel) { | |
if (channel === undefined) { | |
channel = -1; | |
} | |
this.lazyInit(); | |
if (tokenIndex < 0 || tokenIndex >= this.tokens.length) { | |
throw "" + tokenIndex + " not in 0.." + this.tokens.length - 1; | |
} | |
var prevOnChannel = this.previousTokenOnChannel(tokenIndex - 1, Lexer.DEFAULT_TOKEN_CHANNEL); | |
if (prevOnChannel === tokenIndex - 1) { | |
return null; | |
} | |
// if none on channel to left, prevOnChannel=-1 then from=0 | |
var from_ = prevOnChannel + 1; | |
var to = tokenIndex - 1; | |
return this.filterForChannel(from_, to, channel); | |
}; | |
BufferedTokenStream.prototype.filterForChannel = function(left, right, channel) { | |
var hidden = []; | |
for (var i = left; i < right + 1; i++) { | |
var t = this.tokens[i]; | |
if (channel === -1) { | |
if (t.channel !== Lexer.DEFAULT_TOKEN_CHANNEL) { | |
hidden.push(t); | |
} | |
} else if (t.channel === channel) { | |
hidden.push(t); | |
} | |
} | |
if (hidden.length === 0) { | |
return null; | |
} | |
return hidden; | |
}; | |
BufferedTokenStream.prototype.getSourceName = function() { | |
return this.tokenSource.getSourceName(); | |
}; | |
// Get the text of all tokens in this buffer./// | |
BufferedTokenStream.prototype.getText = function(interval) { | |
this.lazyInit(); | |
this.fill(); | |
if (interval === undefined || interval === null) { | |
interval = new Interval(0, this.tokens.length - 1); | |
} | |
var start = interval.start; | |
if (start instanceof Token) { | |
start = start.tokenIndex; | |
} | |
var stop = interval.stop; | |
if (stop instanceof Token) { | |
stop = stop.tokenIndex; | |
} | |
if (start === null || stop === null || start < 0 || stop < 0) { | |
return ""; | |
} | |
if (stop >= this.tokens.length) { | |
stop = this.tokens.length - 1; | |
} | |
var s = ""; | |
for (var i = start; i < stop + 1; i++) { | |
var t = this.tokens[i]; | |
if (t.type === Token.EOF) { | |
break; | |
} | |
s = s + t.text; | |
} | |
return s; | |
}; | |
// Get all tokens from lexer until EOF/// | |
BufferedTokenStream.prototype.fill = function() { | |
this.lazyInit(); | |
while (this.fetch(1000) === 1000) { | |
continue; | |
} | |
}; | |
exports.BufferedTokenStream = BufferedTokenStream; | |
},{"./IntervalSet":10,"./Lexer":12,"./Token":18}],5:[function(require,module,exports){ | |
// | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
// | |
var InputStream = require('./InputStream').InputStream; | |
var isNodeJs = typeof window === 'undefined' && typeof importScripts === 'undefined'; | |
var fs = isNodeJs ? require("fs") : null; | |
// Utility functions to create InputStreams from various sources. | |
// | |
// All returned InputStreams support the full range of Unicode | |
// up to U+10FFFF (the default behavior of InputStream only supports | |
// code points up to U+FFFF). | |
var CharStreams = { | |
// Creates an InputStream from a string. | |
fromString: function(str) { | |
return new InputStream(str, true); | |
}, | |
// Asynchronously creates an InputStream from a blob given the | |
// encoding of the bytes in that blob (defaults to 'utf8' if | |
// encoding is null). | |
// | |
// Invokes onLoad(result) on success, onError(error) on | |
// failure. | |
fromBlob: function(blob, encoding, onLoad, onError) { | |
var reader = FileReader(); | |
reader.onload = function(e) { | |
var is = new InputStream(e.target.result, true); | |
onLoad(is); | |
}; | |
reader.onerror = onError; | |
reader.readAsText(blob, encoding); | |
}, | |
// Creates an InputStream from a Buffer given the | |
// encoding of the bytes in that buffer (defaults to 'utf8' if | |
// encoding is null). | |
fromBuffer: function(buffer, encoding) { | |
return new InputStream(buffer.toString(encoding), true); | |
}, | |
// Asynchronously creates an InputStream from a file on disk given | |
// the encoding of the bytes in that file (defaults to 'utf8' if | |
// encoding is null). | |
// | |
// Invokes callback(error, result) on completion. | |
fromPath: function(path, encoding, callback) { | |
fs.readFile(path, encoding, function(err, data) { | |
var is = null; | |
if (data !== null) { | |
is = new InputStream(data, true); | |
} | |
callback(err, is); | |
}); | |
}, | |
// Synchronously creates an InputStream given a path to a file | |
// on disk and the encoding of the bytes in that file (defaults to | |
// 'utf8' if encoding is null). | |
fromPathSync: function(path, encoding) { | |
var data = fs.readFileSync(path, encoding); | |
return new InputStream(data, true); | |
} | |
}; | |
exports.CharStreams = CharStreams; | |
},{"./InputStream":9,"fs":51}],6:[function(require,module,exports){ | |
// | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
// | |
// | |
// This default implementation of {@link TokenFactory} creates | |
// {@link CommonToken} objects. | |
// | |
var CommonToken = require('./Token').CommonToken; | |
function TokenFactory() { | |
return this; | |
} | |
function CommonTokenFactory(copyText) { | |
TokenFactory.call(this); | |
// Indicates whether {@link CommonToken//setText} should be called after | |
// constructing tokens to explicitly set the text. This is useful for cases | |
// where the input stream might not be able to provide arbitrary substrings | |
// of text from the input after the lexer creates a token (e.g. the | |
// implementation of {@link CharStream//getText} in | |
// {@link UnbufferedCharStream} throws an | |
// {@link UnsupportedOperationException}). Explicitly setting the token text | |
// allows {@link Token//getText} to be called at any time regardless of the | |
// input stream implementation. | |
// | |
// <p> | |
// The default value is {@code false} to avoid the performance and memory | |
// overhead of copying text for every token unless explicitly requested.</p> | |
// | |
this.copyText = copyText===undefined ? false : copyText; | |
return this; | |
} | |
CommonTokenFactory.prototype = Object.create(TokenFactory.prototype); | |
CommonTokenFactory.prototype.constructor = CommonTokenFactory; | |
// | |
// The default {@link CommonTokenFactory} instance. | |
// | |
// <p> | |
// This token factory does not explicitly copy token text when constructing | |
// tokens.</p> | |
// | |
CommonTokenFactory.DEFAULT = new CommonTokenFactory(); | |
CommonTokenFactory.prototype.create = function(source, type, text, channel, start, stop, line, column) { | |
var t = new CommonToken(source, type, channel, start, stop); | |
t.line = line; | |
t.column = column; | |
if (text !==null) { | |
t.text = text; | |
} else if (this.copyText && source[1] !==null) { | |
t.text = source[1].getText(start,stop); | |
} | |
return t; | |
}; | |
CommonTokenFactory.prototype.createThin = function(type, text) { | |
var t = new CommonToken(null, type); | |
t.text = text; | |
return t; | |
}; | |
exports.CommonTokenFactory = CommonTokenFactory; | |
},{"./Token":18}],7:[function(require,module,exports){ | |
// | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
/// | |
// | |
// This class extends {@link BufferedTokenStream} with functionality to filter | |
// token streams to tokens on a particular channel (tokens where | |
// {@link Token//getChannel} returns a particular value). | |
// | |
// <p> | |
// This token stream provides access to all tokens by index or when calling | |
// methods like {@link //getText}. The channel filtering is only used for code | |
// accessing tokens via the lookahead methods {@link //LA}, {@link //LT}, and | |
// {@link //LB}.</p> | |
// | |
// <p> | |
// By default, tokens are placed on the default channel | |
// ({@link Token//DEFAULT_CHANNEL}), but may be reassigned by using the | |
// {@code ->channel(HIDDEN)} lexer command, or by using an embedded action to | |
// call {@link Lexer//setChannel}. | |
// </p> | |
// | |
// <p> | |
// Note: lexer rules which use the {@code ->skip} lexer command or call | |
// {@link Lexer//skip} do not produce tokens at all, so input text matched by | |
// such a rule will not be available as part of the token stream, regardless of | |
// channel.</p> | |
/// | |
var Token = require('./Token').Token; | |
var BufferedTokenStream = require('./BufferedTokenStream').BufferedTokenStream; | |
function CommonTokenStream(lexer, channel) { | |
BufferedTokenStream.call(this, lexer); | |
this.channel = channel===undefined ? Token.DEFAULT_CHANNEL : channel; | |
return this; | |
} | |
CommonTokenStream.prototype = Object.create(BufferedTokenStream.prototype); | |
CommonTokenStream.prototype.constructor = CommonTokenStream; | |
CommonTokenStream.prototype.adjustSeekIndex = function(i) { | |
return this.nextTokenOnChannel(i, this.channel); | |
}; | |
CommonTokenStream.prototype.LB = function(k) { | |
if (k===0 || this.index-k<0) { | |
return null; | |
} | |
var i = this.index; | |
var n = 1; | |
// find k good tokens looking backwards | |
while (n <= k) { | |
// skip off-channel tokens | |
i = this.previousTokenOnChannel(i - 1, this.channel); | |
n += 1; | |
} | |
if (i < 0) { | |
return null; | |
} | |
return this.tokens[i]; | |
}; | |
CommonTokenStream.prototype.LT = function(k) { | |
this.lazyInit(); | |
if (k === 0) { | |
return null; | |
} | |
if (k < 0) { | |
return this.LB(-k); | |
} | |
var i = this.index; | |
var n = 1; // we know tokens[pos] is a good one | |
// find k good tokens | |
while (n < k) { | |
// skip off-channel tokens, but make sure to not look past EOF | |
if (this.sync(i + 1)) { | |
i = this.nextTokenOnChannel(i + 1, this.channel); | |
} | |
n += 1; | |
} | |
return this.tokens[i]; | |
}; | |
// Count EOF just once./// | |
CommonTokenStream.prototype.getNumberOfOnChannelTokens = function() { | |
var n = 0; | |
this.fill(); | |
for (var i =0; i< this.tokens.length;i++) { | |
var t = this.tokens[i]; | |
if( t.channel===this.channel) { | |
n += 1; | |
} | |
if( t.type===Token.EOF) { | |
break; | |
} | |
} | |
return n; | |
}; | |
exports.CommonTokenStream = CommonTokenStream; | |
},{"./BufferedTokenStream":4,"./Token":18}],8:[function(require,module,exports){ | |
// | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
// | |
// | |
// This is an InputStream that is loaded from a file all at once | |
// when you construct the object. | |
// | |
var InputStream = require('./InputStream').InputStream; | |
var isNodeJs = typeof window === 'undefined' && typeof importScripts === 'undefined'; | |
var fs = isNodeJs ? require("fs") : null; | |
function FileStream(fileName, decodeToUnicodeCodePoints) { | |
var data = fs.readFileSync(fileName, "utf8"); | |
InputStream.call(this, data, decodeToUnicodeCodePoints); | |
this.fileName = fileName; | |
return this; | |
} | |
FileStream.prototype = Object.create(InputStream.prototype); | |
FileStream.prototype.constructor = FileStream; | |
exports.FileStream = FileStream; | |
},{"./InputStream":9,"fs":51}],9:[function(require,module,exports){ | |
// | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
// | |
var Token = require('./Token').Token; | |
require('./polyfills/codepointat'); | |
require('./polyfills/fromcodepoint'); | |
// Vacuum all input from a string and then treat it like a buffer. | |
function _loadString(stream, decodeToUnicodeCodePoints) { | |
stream._index = 0; | |
stream.data = []; | |
if (stream.decodeToUnicodeCodePoints) { | |
for (var i = 0; i < stream.strdata.length; ) { | |
var codePoint = stream.strdata.codePointAt(i); | |
stream.data.push(codePoint); | |
i += codePoint <= 0xFFFF ? 1 : 2; | |
} | |
} else { | |
for (var i = 0; i < stream.strdata.length; i++) { | |
var codeUnit = stream.strdata.charCodeAt(i); | |
stream.data.push(codeUnit); | |
} | |
} | |
stream._size = stream.data.length; | |
} | |
// If decodeToUnicodeCodePoints is true, the input is treated | |
// as a series of Unicode code points. | |
// | |
// Otherwise, the input is treated as a series of 16-bit UTF-16 code | |
// units. | |
function InputStream(data, decodeToUnicodeCodePoints) { | |
this.name = "<empty>"; | |
this.strdata = data; | |
this.decodeToUnicodeCodePoints = decodeToUnicodeCodePoints || false; | |
_loadString(this); | |
return this; | |
} | |
Object.defineProperty(InputStream.prototype, "index", { | |
get : function() { | |
return this._index; | |
} | |
}); | |
Object.defineProperty(InputStream.prototype, "size", { | |
get : function() { | |
return this._size; | |
} | |
}); | |
// Reset the stream so that it's in the same state it was | |
// when the object was created *except* the data array is not | |
// touched. | |
// | |
InputStream.prototype.reset = function() { | |
this._index = 0; | |
}; | |
InputStream.prototype.consume = function() { | |
if (this._index >= this._size) { | |
// assert this.LA(1) == Token.EOF | |
throw ("cannot consume EOF"); | |
} | |
this._index += 1; | |
}; | |
InputStream.prototype.LA = function(offset) { | |
if (offset === 0) { | |
return 0; // undefined | |
} | |
if (offset < 0) { | |
offset += 1; // e.g., translate LA(-1) to use offset=0 | |
} | |
var pos = this._index + offset - 1; | |
if (pos < 0 || pos >= this._size) { // invalid | |
return Token.EOF; | |
} | |
return this.data[pos]; | |
}; | |
InputStream.prototype.LT = function(offset) { | |
return this.LA(offset); | |
}; | |
// mark/release do nothing; we have entire buffer | |
InputStream.prototype.mark = function() { | |
return -1; | |
}; | |
InputStream.prototype.release = function(marker) { | |
}; | |
// consume() ahead until p==_index; can't just set p=_index as we must | |
// update line and column. If we seek backwards, just set p | |
// | |
InputStream.prototype.seek = function(_index) { | |
if (_index <= this._index) { | |
this._index = _index; // just jump; don't update stream state (line, | |
// ...) | |
return; | |
} | |
// seek forward | |
this._index = Math.min(_index, this._size); | |
}; | |
InputStream.prototype.getText = function(start, stop) { | |
if (stop >= this._size) { | |
stop = this._size - 1; | |
} | |
if (start >= this._size) { | |
return ""; | |
} else { | |
if (this.decodeToUnicodeCodePoints) { | |
var result = ""; | |
for (var i = start; i <= stop; i++) { | |
result += String.fromCodePoint(this.data[i]); | |
} | |
return result; | |
} else { | |
return this.strdata.slice(start, stop + 1); | |
} | |
} | |
}; | |
InputStream.prototype.toString = function() { | |
return this.strdata; | |
}; | |
exports.InputStream = InputStream; | |
},{"./Token":18,"./polyfills/codepointat":46,"./polyfills/fromcodepoint":47}],10:[function(require,module,exports){ | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
/*jslint smarttabs:true */ | |
var Token = require('./Token').Token; | |
/* stop is not included! */ | |
function Interval(start, stop) { | |
this.start = start; | |
this.stop = stop; | |
return this; | |
} | |
Interval.prototype.contains = function(item) { | |
return item >= this.start && item < this.stop; | |
}; | |
Interval.prototype.toString = function() { | |
if(this.start===this.stop-1) { | |
return this.start.toString(); | |
} else { | |
return this.start.toString() + ".." + (this.stop-1).toString(); | |
} | |
}; | |
Object.defineProperty(Interval.prototype, "length", { | |
get : function() { | |
return this.stop - this.start; | |
} | |
}); | |
function IntervalSet() { | |
this.intervals = null; | |
this.readOnly = false; | |
} | |
IntervalSet.prototype.first = function(v) { | |
if (this.intervals === null || this.intervals.length===0) { | |
return Token.INVALID_TYPE; | |
} else { | |
return this.intervals[0].start; | |
} | |
}; | |
IntervalSet.prototype.addOne = function(v) { | |
this.addInterval(new Interval(v, v + 1)); | |
}; | |
IntervalSet.prototype.addRange = function(l, h) { | |
this.addInterval(new Interval(l, h + 1)); | |
}; | |
IntervalSet.prototype.addInterval = function(v) { | |
if (this.intervals === null) { | |
this.intervals = []; | |
this.intervals.push(v); | |
} else { | |
// find insert pos | |
for (var k = 0; k < this.intervals.length; k++) { | |
var i = this.intervals[k]; | |
// distinct range -> insert | |
if (v.stop < i.start) { | |
this.intervals.splice(k, 0, v); | |
return; | |
} | |
// contiguous range -> adjust | |
else if (v.stop === i.start) { | |
this.intervals[k].start = v.start; | |
return; | |
} | |
// overlapping range -> adjust and reduce | |
else if (v.start <= i.stop) { | |
this.intervals[k] = new Interval(Math.min(i.start, v.start), Math.max(i.stop, v.stop)); | |
this.reduce(k); | |
return; | |
} | |
} | |
// greater than any existing | |
this.intervals.push(v); | |
} | |
}; | |
IntervalSet.prototype.addSet = function(other) { | |
if (other.intervals !== null) { | |
for (var k = 0; k < other.intervals.length; k++) { | |
var i = other.intervals[k]; | |
this.addInterval(new Interval(i.start, i.stop)); | |
} | |
} | |
return this; | |
}; | |
IntervalSet.prototype.reduce = function(k) { | |
// only need to reduce if k is not the last | |
if (k < this.intervalslength - 1) { | |
var l = this.intervals[k]; | |
var r = this.intervals[k + 1]; | |
// if r contained in l | |
if (l.stop >= r.stop) { | |
this.intervals.pop(k + 1); | |
this.reduce(k); | |
} else if (l.stop >= r.start) { | |
this.intervals[k] = new Interval(l.start, r.stop); | |
this.intervals.pop(k + 1); | |
} | |
} | |
}; | |
IntervalSet.prototype.complement = function(start, stop) { | |
var result = new IntervalSet(); | |
result.addInterval(new Interval(start,stop+1)); | |
for(var i=0; i<this.intervals.length; i++) { | |
result.removeRange(this.intervals[i]); | |
} | |
return result; | |
}; | |
IntervalSet.prototype.contains = function(item) { | |
if (this.intervals === null) { | |
return false; | |
} else { | |
for (var k = 0; k < this.intervals.length; k++) { | |
if(this.intervals[k].contains(item)) { | |
return true; | |
} | |
} | |
return false; | |
} | |
}; | |
Object.defineProperty(IntervalSet.prototype, "length", { | |
get : function() { | |
var len = 0; | |
this.intervals.map(function(i) {len += i.length;}); | |
return len; | |
} | |
}); | |
IntervalSet.prototype.removeRange = function(v) { | |
if(v.start===v.stop-1) { | |
this.removeOne(v.start); | |
} else if (this.intervals!==null) { | |
var k = 0; | |
for(var n=0; n<this.intervals.length; n++) { | |
var i = this.intervals[k]; | |
// intervals are ordered | |
if (v.stop<=i.start) { | |
return; | |
} | |
// check for including range, split it | |
else if(v.start>i.start && v.stop<i.stop) { | |
this.intervals[k] = new Interval(i.start, v.start); | |
var x = new Interval(v.stop, i.stop); | |
this.intervals.splice(k, 0, x); | |
return; | |
} | |
// check for included range, remove it | |
else if(v.start<=i.start && v.stop>=i.stop) { | |
this.intervals.splice(k, 1); | |
k = k - 1; // need another pass | |
} | |
// check for lower boundary | |
else if(v.start<i.stop) { | |
this.intervals[k] = new Interval(i.start, v.start); | |
} | |
// check for upper boundary | |
else if(v.stop<i.stop) { | |
this.intervals[k] = new Interval(v.stop, i.stop); | |
} | |
k += 1; | |
} | |
} | |
}; | |
IntervalSet.prototype.removeOne = function(v) { | |
if (this.intervals !== null) { | |
for (var k = 0; k < this.intervals.length; k++) { | |
var i = this.intervals[k]; | |
// intervals is ordered | |
if (v < i.start) { | |
return; | |
} | |
// check for single value range | |
else if (v === i.start && v === i.stop - 1) { | |
this.intervals.splice(k, 1); | |
return; | |
} | |
// check for lower boundary | |
else if (v === i.start) { | |
this.intervals[k] = new Interval(i.start + 1, i.stop); | |
return; | |
} | |
// check for upper boundary | |
else if (v === i.stop - 1) { | |
this.intervals[k] = new Interval(i.start, i.stop - 1); | |
return; | |
} | |
// split existing range | |
else if (v < i.stop - 1) { | |
var x = new Interval(i.start, v); | |
i.start = v + 1; | |
this.intervals.splice(k, 0, x); | |
return; | |
} | |
} | |
} | |
}; | |
IntervalSet.prototype.toString = function(literalNames, symbolicNames, elemsAreChar) { | |
literalNames = literalNames || null; | |
symbolicNames = symbolicNames || null; | |
elemsAreChar = elemsAreChar || false; | |
if (this.intervals === null) { | |
return "{}"; | |
} else if(literalNames!==null || symbolicNames!==null) { | |
return this.toTokenString(literalNames, symbolicNames); | |
} else if(elemsAreChar) { | |
return this.toCharString(); | |
} else { | |
return this.toIndexString(); | |
} | |
}; | |
IntervalSet.prototype.toCharString = function() { | |
var names = []; | |
for (var i = 0; i < this.intervals.length; i++) { | |
var v = this.intervals[i]; | |
if(v.stop===v.start+1) { | |
if ( v.start===Token.EOF ) { | |
names.push("<EOF>"); | |
} else { | |
names.push("'" + String.fromCharCode(v.start) + "'"); | |
} | |
} else { | |
names.push("'" + String.fromCharCode(v.start) + "'..'" + String.fromCharCode(v.stop-1) + "'"); | |
} | |
} | |
if (names.length > 1) { | |
return "{" + names.join(", ") + "}"; | |
} else { | |
return names[0]; | |
} | |
}; | |
IntervalSet.prototype.toIndexString = function() { | |
var names = []; | |
for (var i = 0; i < this.intervals.length; i++) { | |
var v = this.intervals[i]; | |
if(v.stop===v.start+1) { | |
if ( v.start===Token.EOF ) { | |
names.push("<EOF>"); | |
} else { | |
names.push(v.start.toString()); | |
} | |
} else { | |
names.push(v.start.toString() + ".." + (v.stop-1).toString()); | |
} | |
} | |
if (names.length > 1) { | |
return "{" + names.join(", ") + "}"; | |
} else { | |
return names[0]; | |
} | |
}; | |
IntervalSet.prototype.toTokenString = function(literalNames, symbolicNames) { | |
var names = []; | |
for (var i = 0; i < this.intervals.length; i++) { | |
var v = this.intervals[i]; | |
for (var j = v.start; j < v.stop; j++) { | |
names.push(this.elementName(literalNames, symbolicNames, j)); | |
} | |
} | |
if (names.length > 1) { | |
return "{" + names.join(", ") + "}"; | |
} else { | |
return names[0]; | |
} | |
}; | |
IntervalSet.prototype.elementName = function(literalNames, symbolicNames, a) { | |
if (a === Token.EOF) { | |
return "<EOF>"; | |
} else if (a === Token.EPSILON) { | |
return "<EPSILON>"; | |
} else { | |
return literalNames[a] || symbolicNames[a]; | |
} | |
}; | |
exports.Interval = Interval; | |
exports.IntervalSet = IntervalSet; | |
},{"./Token":18}],11:[function(require,module,exports){ | |
// | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
/// | |
var Set = require('./Utils').Set; | |
var BitSet = require('./Utils').BitSet; | |
var Token = require('./Token').Token; | |
var ATNConfig = require('./atn/ATNConfig').ATNConfig; | |
var Interval = require('./IntervalSet').Interval; | |
var IntervalSet = require('./IntervalSet').IntervalSet; | |
var RuleStopState = require('./atn/ATNState').RuleStopState; | |
var RuleTransition = require('./atn/Transition').RuleTransition; | |
var NotSetTransition = require('./atn/Transition').NotSetTransition; | |
var WildcardTransition = require('./atn/Transition').WildcardTransition; | |
var AbstractPredicateTransition = require('./atn/Transition').AbstractPredicateTransition; | |
var pc = require('./PredictionContext'); | |
var predictionContextFromRuleContext = pc.predictionContextFromRuleContext; | |
var PredictionContext = pc.PredictionContext; | |
var SingletonPredictionContext = pc.SingletonPredictionContext; | |
function LL1Analyzer (atn) { | |
this.atn = atn; | |
} | |
//* Special value added to the lookahead sets to indicate that we hit | |
// a predicate during analysis if {@code seeThruPreds==false}. | |
/// | |
LL1Analyzer.HIT_PRED = Token.INVALID_TYPE; | |
//* | |
// Calculates the SLL(1) expected lookahead set for each outgoing transition | |
// of an {@link ATNState}. The returned array has one element for each | |
// outgoing transition in {@code s}. If the closure from transition | |
// <em>i</em> leads to a semantic predicate before matching a symbol, the | |
// element at index <em>i</em> of the result will be {@code null}. | |
// | |
// @param s the ATN state | |
// @return the expected symbols for each outgoing transition of {@code s}. | |
/// | |
LL1Analyzer.prototype.getDecisionLookahead = function(s) { | |
if (s === null) { | |
return null; | |
} | |
var count = s.transitions.length; | |
var look = []; | |
for(var alt=0; alt< count; alt++) { | |
look[alt] = new IntervalSet(); | |
var lookBusy = new Set(); | |
var seeThruPreds = false; // fail to get lookahead upon pred | |
this._LOOK(s.transition(alt).target, null, PredictionContext.EMPTY, | |
look[alt], lookBusy, new BitSet(), seeThruPreds, false); | |
// Wipe out lookahead for this alternative if we found nothing | |
// or we had a predicate when we !seeThruPreds | |
if (look[alt].length===0 || look[alt].contains(LL1Analyzer.HIT_PRED)) { | |
look[alt] = null; | |
} | |
} | |
return look; | |
}; | |
//* | |
// Compute set of tokens that can follow {@code s} in the ATN in the | |
// specified {@code ctx}. | |
// | |
// <p>If {@code ctx} is {@code null} and the end of the rule containing | |
// {@code s} is reached, {@link Token//EPSILON} is added to the result set. | |
// If {@code ctx} is not {@code null} and the end of the outermost rule is | |
// reached, {@link Token//EOF} is added to the result set.</p> | |
// | |
// @param s the ATN state | |
// @param stopState the ATN state to stop at. This can be a | |
// {@link BlockEndState} to detect epsilon paths through a closure. | |
// @param ctx the complete parser context, or {@code null} if the context | |
// should be ignored | |
// | |
// @return The set of tokens that can follow {@code s} in the ATN in the | |
// specified {@code ctx}. | |
/// | |
LL1Analyzer.prototype.LOOK = function(s, stopState, ctx) { | |
var r = new IntervalSet(); | |
var seeThruPreds = true; // ignore preds; get all lookahead | |
ctx = ctx || null; | |
var lookContext = ctx!==null ? predictionContextFromRuleContext(s.atn, ctx) : null; | |
this._LOOK(s, stopState, lookContext, r, new Set(), new BitSet(), seeThruPreds, true); | |
return r; | |
}; | |
//* | |
// Compute set of tokens that can follow {@code s} in the ATN in the | |
// specified {@code ctx}. | |
// | |
// <p>If {@code ctx} is {@code null} and {@code stopState} or the end of the | |
// rule containing {@code s} is reached, {@link Token//EPSILON} is added to | |
// the result set. If {@code ctx} is not {@code null} and {@code addEOF} is | |
// {@code true} and {@code stopState} or the end of the outermost rule is | |
// reached, {@link Token//EOF} is added to the result set.</p> | |
// | |
// @param s the ATN state. | |
// @param stopState the ATN state to stop at. This can be a | |
// {@link BlockEndState} to detect epsilon paths through a closure. | |
// @param ctx The outer context, or {@code null} if the outer context should | |
// not be used. | |
// @param look The result lookahead set. | |
// @param lookBusy A set used for preventing epsilon closures in the ATN | |
// from causing a stack overflow. Outside code should pass | |
// {@code new Set<ATNConfig>} for this argument. | |
// @param calledRuleStack A set used for preventing left recursion in the | |
// ATN from causing a stack overflow. Outside code should pass | |
// {@code new BitSet()} for this argument. | |
// @param seeThruPreds {@code true} to true semantic predicates as | |
// implicitly {@code true} and "see through them", otherwise {@code false} | |
// to treat semantic predicates as opaque and add {@link //HIT_PRED} to the | |
// result if one is encountered. | |
// @param addEOF Add {@link Token//EOF} to the result if the end of the | |
// outermost context is reached. This parameter has no effect if {@code ctx} | |
// is {@code null}. | |
/// | |
LL1Analyzer.prototype._LOOK = function(s, stopState , ctx, look, lookBusy, calledRuleStack, seeThruPreds, addEOF) { | |
var c = new ATNConfig({state:s, alt:0, context: ctx}, null); | |
if (lookBusy.contains(c)) { | |
return; | |
} | |
lookBusy.add(c); | |
if (s === stopState) { | |
if (ctx ===null) { | |
look.addOne(Token.EPSILON); | |
return; | |
} else if (ctx.isEmpty() && addEOF) { | |
look.addOne(Token.EOF); | |
return; | |
} | |
} | |
if (s instanceof RuleStopState ) { | |
if (ctx ===null) { | |
look.addOne(Token.EPSILON); | |
return; | |
} else if (ctx.isEmpty() && addEOF) { | |
look.addOne(Token.EOF); | |
return; | |
} | |
if (ctx !== PredictionContext.EMPTY) { | |
// run thru all possible stack tops in ctx | |
for(var i=0; i<ctx.length; i++) { | |
var returnState = this.atn.states[ctx.getReturnState(i)]; | |
var removed = calledRuleStack.contains(returnState.ruleIndex); | |
try { | |
calledRuleStack.remove(returnState.ruleIndex); | |
this._LOOK(returnState, stopState, ctx.getParent(i), look, lookBusy, calledRuleStack, seeThruPreds, addEOF); | |
} finally { | |
if (removed) { | |
calledRuleStack.add(returnState.ruleIndex); | |
} | |
} | |
} | |
return; | |
} | |
} | |
for(var j=0; j<s.transitions.length; j++) { | |
var t = s.transitions[j]; | |
if (t.constructor === RuleTransition) { | |
if (calledRuleStack.contains(t.target.ruleIndex)) { | |
continue; | |
} | |
var newContext = SingletonPredictionContext.create(ctx, t.followState.stateNumber); | |
try { | |
calledRuleStack.add(t.target.ruleIndex); | |
this._LOOK(t.target, stopState, newContext, look, lookBusy, calledRuleStack, seeThruPreds, addEOF); | |
} finally { | |
calledRuleStack.remove(t.target.ruleIndex); | |
} | |
} else if (t instanceof AbstractPredicateTransition ) { | |
if (seeThruPreds) { | |
this._LOOK(t.target, stopState, ctx, look, lookBusy, calledRuleStack, seeThruPreds, addEOF); | |
} else { | |
look.addOne(LL1Analyzer.HIT_PRED); | |
} | |
} else if( t.isEpsilon) { | |
this._LOOK(t.target, stopState, ctx, look, lookBusy, calledRuleStack, seeThruPreds, addEOF); | |
} else if (t.constructor === WildcardTransition) { | |
look.addRange( Token.MIN_USER_TOKEN_TYPE, this.atn.maxTokenType ); | |
} else { | |
var set = t.label; | |
if (set !== null) { | |
if (t instanceof NotSetTransition) { | |
set = set.complement(Token.MIN_USER_TOKEN_TYPE, this.atn.maxTokenType); | |
} | |
look.addSet(set); | |
} | |
} | |
} | |
}; | |
exports.LL1Analyzer = LL1Analyzer; | |
},{"./IntervalSet":10,"./PredictionContext":15,"./Token":18,"./Utils":19,"./atn/ATNConfig":21,"./atn/ATNState":26,"./atn/Transition":34}],12:[function(require,module,exports){ | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
/// | |
// A lexer is recognizer that draws input symbols from a character stream. | |
// lexer grammars result in a subclass of this object. A Lexer object | |
// uses simplified match() and error recovery mechanisms in the interest of speed. | |
var Token = require('./Token').Token; | |
var Recognizer = require('./Recognizer').Recognizer; | |
var CommonTokenFactory = require('./CommonTokenFactory').CommonTokenFactory; | |
var RecognitionException = require('./error/Errors').RecognitionException; | |
var LexerNoViableAltException = require('./error/Errors').LexerNoViableAltException; | |
function TokenSource() { | |
return this; | |
} | |
function Lexer(input) { | |
Recognizer.call(this); | |
this._input = input; | |
this._factory = CommonTokenFactory.DEFAULT; | |
this._tokenFactorySourcePair = [ this, input ]; | |
this._interp = null; // child classes must populate this | |
// The goal of all lexer rules/methods is to create a token object. | |
// this is an instance variable as multiple rules may collaborate to | |
// create a single token. nextToken will return this object after | |
// matching lexer rule(s). If you subclass to allow multiple token | |
// emissions, then set this to the last token to be matched or | |
// something nonnull so that the auto token emit mechanism will not | |
// emit another token. | |
this._token = null; | |
// What character index in the stream did the current token start at? | |
// Needed, for example, to get the text for current token. Set at | |
// the start of nextToken. | |
this._tokenStartCharIndex = -1; | |
// The line on which the first character of the token resides/// | |
this._tokenStartLine = -1; | |
// The character position of first character within the line/// | |
this._tokenStartColumn = -1; | |
// Once we see EOF on char stream, next token will be EOF. | |
// If you have DONE : EOF ; then you see DONE EOF. | |
this._hitEOF = false; | |
// The channel number for the current token/// | |
this._channel = Token.DEFAULT_CHANNEL; | |
// The token type for the current token/// | |
this._type = Token.INVALID_TYPE; | |
this._modeStack = []; | |
this._mode = Lexer.DEFAULT_MODE; | |
// You can set the text for the current token to override what is in | |
// the input char buffer. Use setText() or can set this instance var. | |
// / | |
this._text = null; | |
return this; | |
} | |
Lexer.prototype = Object.create(Recognizer.prototype); | |
Lexer.prototype.constructor = Lexer; | |
Lexer.DEFAULT_MODE = 0; | |
Lexer.MORE = -2; | |
Lexer.SKIP = -3; | |
Lexer.DEFAULT_TOKEN_CHANNEL = Token.DEFAULT_CHANNEL; | |
Lexer.HIDDEN = Token.HIDDEN_CHANNEL; | |
Lexer.MIN_CHAR_VALUE = 0x0000; | |
Lexer.MAX_CHAR_VALUE = 0x10FFFF; | |
Lexer.prototype.reset = function() { | |
// wack Lexer state variables | |
if (this._input !== null) { | |
this._input.seek(0); // rewind the input | |
} | |
this._token = null; | |
this._type = Token.INVALID_TYPE; | |
this._channel = Token.DEFAULT_CHANNEL; | |
this._tokenStartCharIndex = -1; | |
this._tokenStartColumn = -1; | |
this._tokenStartLine = -1; | |
this._text = null; | |
this._hitEOF = false; | |
this._mode = Lexer.DEFAULT_MODE; | |
this._modeStack = []; | |
this._interp.reset(); | |
}; | |
// Return a token from this source; i.e., match a token on the char stream. | |
Lexer.prototype.nextToken = function() { | |
if (this._input === null) { | |
throw "nextToken requires a non-null input stream."; | |
} | |
// Mark start location in char stream so unbuffered streams are | |
// guaranteed at least have text of current token | |
var tokenStartMarker = this._input.mark(); | |
try { | |
while (true) { | |
if (this._hitEOF) { | |
this.emitEOF(); | |
return this._token; | |
} | |
this._token = null; | |
this._channel = Token.DEFAULT_CHANNEL; | |
this._tokenStartCharIndex = this._input.index; | |
this._tokenStartColumn = this._interp.column; | |
this._tokenStartLine = this._interp.line; | |
this._text = null; | |
var continueOuter = false; | |
while (true) { | |
this._type = Token.INVALID_TYPE; | |
var ttype = Lexer.SKIP; | |
try { | |
ttype = this._interp.match(this._input, this._mode); | |
} catch (e) { | |
if(e instanceof RecognitionException) { | |
this.notifyListeners(e); // report error | |
this.recover(e); | |
} else { | |
console.log(e.stack); | |
throw e; | |
} | |
} | |
if (this._input.LA(1) === Token.EOF) { | |
this._hitEOF = true; | |
} | |
if (this._type === Token.INVALID_TYPE) { | |
this._type = ttype; | |
} | |
if (this._type === Lexer.SKIP) { | |
continueOuter = true; | |
break; | |
} | |
if (this._type !== Lexer.MORE) { | |
break; | |
} | |
} | |
if (continueOuter) { | |
continue; | |
} | |
if (this._token === null) { | |
this.emit(); | |
} | |
return this._token; | |
} | |
} finally { | |
// make sure we release marker after match or | |
// unbuffered char stream will keep buffering | |
this._input.release(tokenStartMarker); | |
} | |
}; | |
// Instruct the lexer to skip creating a token for current lexer rule | |
// and look for another token. nextToken() knows to keep looking when | |
// a lexer rule finishes with token set to SKIP_TOKEN. Recall that | |
// if token==null at end of any token rule, it creates one for you | |
// and emits it. | |
// / | |
Lexer.prototype.skip = function() { | |
this._type = Lexer.SKIP; | |
}; | |
Lexer.prototype.more = function() { | |
this._type = Lexer.MORE; | |
}; | |
Lexer.prototype.mode = function(m) { | |
this._mode = m; | |
}; | |
Lexer.prototype.pushMode = function(m) { | |
if (this._interp.debug) { | |
console.log("pushMode " + m); | |
} | |
this._modeStack.push(this._mode); | |
this.mode(m); | |
}; | |
Lexer.prototype.popMode = function() { | |
if (this._modeStack.length === 0) { | |
throw "Empty Stack"; | |
} | |
if (this._interp.debug) { | |
console.log("popMode back to " + this._modeStack.slice(0, -1)); | |
} | |
this.mode(this._modeStack.pop()); | |
return this._mode; | |
}; | |
// Set the char stream and reset the lexer | |
Object.defineProperty(Lexer.prototype, "inputStream", { | |
get : function() { | |
return this._input; | |
}, | |
set : function(input) { | |
this._input = null; | |
this._tokenFactorySourcePair = [ this, this._input ]; | |
this.reset(); | |
this._input = input; | |
this._tokenFactorySourcePair = [ this, this._input ]; | |
} | |
}); | |
Object.defineProperty(Lexer.prototype, "sourceName", { | |
get : function sourceName() { | |
return this._input.sourceName; | |
} | |
}); | |
// By default does not support multiple emits per nextToken invocation | |
// for efficiency reasons. Subclass and override this method, nextToken, | |
// and getToken (to push tokens into a list and pull from that list | |
// rather than a single variable as this implementation does). | |
// / | |
Lexer.prototype.emitToken = function(token) { | |
this._token = token; | |
}; | |
// The standard method called to automatically emit a token at the | |
// outermost lexical rule. The token object should point into the | |
// char buffer start..stop. If there is a text override in 'text', | |
// use that to set the token's text. Override this method to emit | |
// custom Token objects or provide a new factory. | |
// / | |
Lexer.prototype.emit = function() { | |
var t = this._factory.create(this._tokenFactorySourcePair, this._type, | |
this._text, this._channel, this._tokenStartCharIndex, this | |
.getCharIndex() - 1, this._tokenStartLine, | |
this._tokenStartColumn); | |
this.emitToken(t); | |
return t; | |
}; | |
Lexer.prototype.emitEOF = function() { | |
var cpos = this.column; | |
var lpos = this.line; | |
var eof = this._factory.create(this._tokenFactorySourcePair, Token.EOF, | |
null, Token.DEFAULT_CHANNEL, this._input.index, | |
this._input.index - 1, lpos, cpos); | |
this.emitToken(eof); | |
return eof; | |
}; | |
Object.defineProperty(Lexer.prototype, "type", { | |
get : function() { | |
return this.type; | |
}, | |
set : function(type) { | |
this._type = type; | |
} | |
}); | |
Object.defineProperty(Lexer.prototype, "line", { | |
get : function() { | |
return this._interp.line; | |
}, | |
set : function(line) { | |
this._interp.line = line; | |
} | |
}); | |
Object.defineProperty(Lexer.prototype, "column", { | |
get : function() { | |
return this._interp.column; | |
}, | |
set : function(column) { | |
this._interp.column = column; | |
} | |
}); | |
// What is the index of the current character of lookahead?/// | |
Lexer.prototype.getCharIndex = function() { | |
return this._input.index; | |
}; | |
// Return the text matched so far for the current token or any text override. | |
//Set the complete text of this token; it wipes any previous changes to the text. | |
Object.defineProperty(Lexer.prototype, "text", { | |
get : function() { | |
if (this._text !== null) { | |
return this._text; | |
} else { | |
return this._interp.getText(this._input); | |
} | |
}, | |
set : function(text) { | |
this._text = text; | |
} | |
}); | |
// Return a list of all Token objects in input char stream. | |
// Forces load of all tokens. Does not include EOF token. | |
// / | |
Lexer.prototype.getAllTokens = function() { | |
var tokens = []; | |
var t = this.nextToken(); | |
while (t.type !== Token.EOF) { | |
tokens.push(t); | |
t = this.nextToken(); | |
} | |
return tokens; | |
}; | |
Lexer.prototype.notifyListeners = function(e) { | |
var start = this._tokenStartCharIndex; | |
var stop = this._input.index; | |
var text = this._input.getText(start, stop); | |
var msg = "token recognition error at: '" + this.getErrorDisplay(text) + "'"; | |
var listener = this.getErrorListenerDispatch(); | |
listener.syntaxError(this, null, this._tokenStartLine, | |
this._tokenStartColumn, msg, e); | |
}; | |
Lexer.prototype.getErrorDisplay = function(s) { | |
var d = []; | |
for (var i = 0; i < s.length; i++) { | |
d.push(s[i]); | |
} | |
return d.join(''); | |
}; | |
Lexer.prototype.getErrorDisplayForChar = function(c) { | |
if (c.charCodeAt(0) === Token.EOF) { | |
return "<EOF>"; | |
} else if (c === '\n') { | |
return "\\n"; | |
} else if (c === '\t') { | |
return "\\t"; | |
} else if (c === '\r') { | |
return "\\r"; | |
} else { | |
return c; | |
} | |
}; | |
Lexer.prototype.getCharErrorDisplay = function(c) { | |
return "'" + this.getErrorDisplayForChar(c) + "'"; | |
}; | |
// Lexers can normally match any char in it's vocabulary after matching | |
// a token, so do the easy thing and just kill a character and hope | |
// it all works out. You can instead use the rule invocation stack | |
// to do sophisticated error recovery if you are in a fragment rule. | |
// / | |
Lexer.prototype.recover = function(re) { | |
if (this._input.LA(1) !== Token.EOF) { | |
if (re instanceof LexerNoViableAltException) { | |
// skip a char and try again | |
this._interp.consume(this._input); | |
} else { | |
// TODO: Do we lose character or line position information? | |
this._input.consume(); | |
} | |
} | |
}; | |
exports.Lexer = Lexer; | |
},{"./CommonTokenFactory":6,"./Recognizer":16,"./Token":18,"./error/Errors":43}],13:[function(require,module,exports){ | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
var Token = require('./Token').Token; | |
var ParseTreeListener = require('./tree/Tree').ParseTreeListener; | |
var Recognizer = require('./Recognizer').Recognizer; | |
var DefaultErrorStrategy = require('./error/ErrorStrategy').DefaultErrorStrategy; | |
var ATNDeserializer = require('./atn/ATNDeserializer').ATNDeserializer; | |
var ATNDeserializationOptions = require('./atn/ATNDeserializationOptions').ATNDeserializationOptions; | |
var TerminalNode = require('./tree/Tree').TerminalNode; | |
var ErrorNode = require('./tree/Tree').ErrorNode; | |
function TraceListener(parser) { | |
ParseTreeListener.call(this); | |
this.parser = parser; | |
return this; | |
} | |
TraceListener.prototype = Object.create(ParseTreeListener.prototype); | |
TraceListener.prototype.constructor = TraceListener; | |
TraceListener.prototype.enterEveryRule = function(ctx) { | |
console.log("enter " + this.parser.ruleNames[ctx.ruleIndex] + ", LT(1)=" + this.parser._input.LT(1).text); | |
}; | |
TraceListener.prototype.visitTerminal = function( node) { | |
console.log("consume " + node.symbol + " rule " + this.parser.ruleNames[this.parser._ctx.ruleIndex]); | |
}; | |
TraceListener.prototype.exitEveryRule = function(ctx) { | |
console.log("exit " + this.parser.ruleNames[ctx.ruleIndex] + ", LT(1)=" + this.parser._input.LT(1).text); | |
}; | |
// this is all the parsing support code essentially; most of it is error | |
// recovery stuff.// | |
function Parser(input) { | |
Recognizer.call(this); | |
// The input stream. | |
this._input = null; | |
// The error handling strategy for the parser. The default value is a new | |
// instance of {@link DefaultErrorStrategy}. | |
this._errHandler = new DefaultErrorStrategy(); | |
this._precedenceStack = []; | |
this._precedenceStack.push(0); | |
// The {@link ParserRuleContext} object for the currently executing rule. | |
// this is always non-null during the parsing process. | |
this._ctx = null; | |
// Specifies whether or not the parser should construct a parse tree during | |
// the parsing process. The default value is {@code true}. | |
this.buildParseTrees = true; | |
// When {@link //setTrace}{@code (true)} is called, a reference to the | |
// {@link TraceListener} is stored here so it can be easily removed in a | |
// later call to {@link //setTrace}{@code (false)}. The listener itself is | |
// implemented as a parser listener so this field is not directly used by | |
// other parser methods. | |
this._tracer = null; | |
// The list of {@link ParseTreeListener} listeners registered to receive | |
// events during the parse. | |
this._parseListeners = null; | |
// The number of syntax errors reported during parsing. this value is | |
// incremented each time {@link //notifyErrorListeners} is called. | |
this._syntaxErrors = 0; | |
this.setInputStream(input); | |
return this; | |
} | |
Parser.prototype = Object.create(Recognizer.prototype); | |
Parser.prototype.contructor = Parser; | |
// this field maps from the serialized ATN string to the deserialized {@link | |
// ATN} with | |
// bypass alternatives. | |
// | |
// @see ATNDeserializationOptions//isGenerateRuleBypassTransitions() | |
// | |
Parser.bypassAltsAtnCache = {}; | |
// reset the parser's state// | |
Parser.prototype.reset = function() { | |
if (this._input !== null) { | |
this._input.seek(0); | |
} | |
this._errHandler.reset(this); | |
this._ctx = null; | |
this._syntaxErrors = 0; | |
this.setTrace(false); | |
this._precedenceStack = []; | |
this._precedenceStack.push(0); | |
if (this._interp !== null) { | |
this._interp.reset(); | |
} | |
}; | |
// Match current input symbol against {@code ttype}. If the symbol type | |
// matches, {@link ANTLRErrorStrategy//reportMatch} and {@link //consume} are | |
// called to complete the match process. | |
// | |
// <p>If the symbol type does not match, | |
// {@link ANTLRErrorStrategy//recoverInline} is called on the current error | |
// strategy to attempt recovery. If {@link //getBuildParseTree} is | |
// {@code true} and the token index of the symbol returned by | |
// {@link ANTLRErrorStrategy//recoverInline} is -1, the symbol is added to | |
// the parse tree by calling {@link ParserRuleContext//addErrorNode}.</p> | |
// | |
// @param ttype the token type to match | |
// @return the matched symbol | |
// @throws RecognitionException if the current input symbol did not match | |
// {@code ttype} and the error strategy could not recover from the | |
// mismatched symbol | |
Parser.prototype.match = function(ttype) { | |
var t = this.getCurrentToken(); | |
if (t.type === ttype) { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} else { | |
t = this._errHandler.recoverInline(this); | |
if (this.buildParseTrees && t.tokenIndex === -1) { | |
// we must have conjured up a new token during single token | |
// insertion | |
// if it's not the current symbol | |
this._ctx.addErrorNode(t); | |
} | |
} | |
return t; | |
}; | |
// Match current input symbol as a wildcard. If the symbol type matches | |
// (i.e. has a value greater than 0), {@link ANTLRErrorStrategy//reportMatch} | |
// and {@link //consume} are called to complete the match process. | |
// | |
// <p>If the symbol type does not match, | |
// {@link ANTLRErrorStrategy//recoverInline} is called on the current error | |
// strategy to attempt recovery. If {@link //getBuildParseTree} is | |
// {@code true} and the token index of the symbol returned by | |
// {@link ANTLRErrorStrategy//recoverInline} is -1, the symbol is added to | |
// the parse tree by calling {@link ParserRuleContext//addErrorNode}.</p> | |
// | |
// @return the matched symbol | |
// @throws RecognitionException if the current input symbol did not match | |
// a wildcard and the error strategy could not recover from the mismatched | |
// symbol | |
Parser.prototype.matchWildcard = function() { | |
var t = this.getCurrentToken(); | |
if (t.type > 0) { | |
this._errHandler.reportMatch(this); | |
this.consume(); | |
} else { | |
t = this._errHandler.recoverInline(this); | |
if (this._buildParseTrees && t.tokenIndex === -1) { | |
// we must have conjured up a new token during single token | |
// insertion | |
// if it's not the current symbol | |
this._ctx.addErrorNode(t); | |
} | |
} | |
return t; | |
}; | |
Parser.prototype.getParseListeners = function() { | |
return this._parseListeners || []; | |
}; | |
// Registers {@code listener} to receive events during the parsing process. | |
// | |
// <p>To support output-preserving grammar transformations (including but not | |
// limited to left-recursion removal, automated left-factoring, and | |
// optimized code generation), calls to listener methods during the parse | |
// may differ substantially from calls made by | |
// {@link ParseTreeWalker//DEFAULT} used after the parse is complete. In | |
// particular, rule entry and exit events may occur in a different order | |
// during the parse than after the parser. In addition, calls to certain | |
// rule entry methods may be omitted.</p> | |
// | |
// <p>With the following specific exceptions, calls to listener events are | |
// <em>deterministic</em>, i.e. for identical input the calls to listener | |
// methods will be the same.</p> | |
// | |
// <ul> | |
// <li>Alterations to the grammar used to generate code may change the | |
// behavior of the listener calls.</li> | |
// <li>Alterations to the command line options passed to ANTLR 4 when | |
// generating the parser may change the behavior of the listener calls.</li> | |
// <li>Changing the version of the ANTLR Tool used to generate the parser | |
// may change the behavior of the listener calls.</li> | |
// </ul> | |
// | |
// @param listener the listener to add | |
// | |
// @throws NullPointerException if {@code} listener is {@code null} | |
// | |
Parser.prototype.addParseListener = function(listener) { | |
if (listener === null) { | |
throw "listener"; | |
} | |
if (this._parseListeners === null) { | |
this._parseListeners = []; | |
} | |
this._parseListeners.push(listener); | |
}; | |
// | |
// Remove {@code listener} from the list of parse listeners. | |
// | |
// <p>If {@code listener} is {@code null} or has not been added as a parse | |
// listener, this method does nothing.</p> | |
// @param listener the listener to remove | |
// | |
Parser.prototype.removeParseListener = function(listener) { | |
if (this._parseListeners !== null) { | |
var idx = this._parseListeners.indexOf(listener); | |
if (idx >= 0) { | |
this._parseListeners.splice(idx, 1); | |
} | |
if (this._parseListeners.length === 0) { | |
this._parseListeners = null; | |
} | |
} | |
}; | |
// Remove all parse listeners. | |
Parser.prototype.removeParseListeners = function() { | |
this._parseListeners = null; | |
}; | |
// Notify any parse listeners of an enter rule event. | |
Parser.prototype.triggerEnterRuleEvent = function() { | |
if (this._parseListeners !== null) { | |
var ctx = this._ctx; | |
this._parseListeners.map(function(listener) { | |
listener.enterEveryRule(ctx); | |
ctx.enterRule(listener); | |
}); | |
} | |
}; | |
// | |
// Notify any parse listeners of an exit rule event. | |
// | |
// @see //addParseListener | |
// | |
Parser.prototype.triggerExitRuleEvent = function() { | |
if (this._parseListeners !== null) { | |
// reverse order walk of listeners | |
var ctx = this._ctx; | |
this._parseListeners.slice(0).reverse().map(function(listener) { | |
ctx.exitRule(listener); | |
listener.exitEveryRule(ctx); | |
}); | |
} | |
}; | |
Parser.prototype.getTokenFactory = function() { | |
return this._input.tokenSource._factory; | |
}; | |
// Tell our token source and error strategy about a new way to create tokens.// | |
Parser.prototype.setTokenFactory = function(factory) { | |
this._input.tokenSource._factory = factory; | |
}; | |
// The ATN with bypass alternatives is expensive to create so we create it | |
// lazily. | |
// | |
// @throws UnsupportedOperationException if the current parser does not | |
// implement the {@link //getSerializedATN()} method. | |
// | |
Parser.prototype.getATNWithBypassAlts = function() { | |
var serializedAtn = this.getSerializedATN(); | |
if (serializedAtn === null) { | |
throw "The current parser does not support an ATN with bypass alternatives."; | |
} | |
var result = this.bypassAltsAtnCache[serializedAtn]; | |
if (result === null) { | |
var deserializationOptions = new ATNDeserializationOptions(); | |
deserializationOptions.generateRuleBypassTransitions = true; | |
result = new ATNDeserializer(deserializationOptions) | |
.deserialize(serializedAtn); | |
this.bypassAltsAtnCache[serializedAtn] = result; | |
} | |
return result; | |
}; | |
// The preferred method of getting a tree pattern. For example, here's a | |
// sample use: | |
// | |
// <pre> | |
// ParseTree t = parser.expr(); | |
// ParseTreePattern p = parser.compileParseTreePattern("<ID>+0", | |
// MyParser.RULE_expr); | |
// ParseTreeMatch m = p.match(t); | |
// String id = m.get("ID"); | |
// </pre> | |
var Lexer = require('./Lexer').Lexer; | |
Parser.prototype.compileParseTreePattern = function(pattern, patternRuleIndex, lexer) { | |
lexer = lexer || null; | |
if (lexer === null) { | |
if (this.getTokenStream() !== null) { | |
var tokenSource = this.getTokenStream().tokenSource; | |
if (tokenSource instanceof Lexer) { | |
lexer = tokenSource; | |
} | |
} | |
} | |
if (lexer === null) { | |
throw "Parser can't discover a lexer to use"; | |
} | |
var m = new ParseTreePatternMatcher(lexer, this); | |
return m.compile(pattern, patternRuleIndex); | |
}; | |
Parser.prototype.getInputStream = function() { | |
return this.getTokenStream(); | |
}; | |
Parser.prototype.setInputStream = function(input) { | |
this.setTokenStream(input); | |
}; | |
Parser.prototype.getTokenStream = function() { | |
return this._input; | |
}; | |
// Set the token stream and reset the parser.// | |
Parser.prototype.setTokenStream = function(input) { | |
this._input = null; | |
this.reset(); | |
this._input = input; | |
}; | |
// Match needs to return the current input symbol, which gets put | |
// into the label for the associated token ref; e.g., x=ID. | |
// | |
Parser.prototype.getCurrentToken = function() { | |
return this._input.LT(1); | |
}; | |
Parser.prototype.notifyErrorListeners = function(msg, offendingToken, err) { | |
offendingToken = offendingToken || null; | |
err = err || null; | |
if (offendingToken === null) { | |
offendingToken = this.getCurrentToken(); | |
} | |
this._syntaxErrors += 1; | |
var line = offendingToken.line; | |
var column = offendingToken.column; | |
var listener = this.getErrorListenerDispatch(); | |
listener.syntaxError(this, offendingToken, line, column, msg, err); | |
}; | |
// | |
// Consume and return the {@linkplain //getCurrentToken current symbol}. | |
// | |
// <p>E.g., given the following input with {@code A} being the current | |
// lookahead symbol, this function moves the cursor to {@code B} and returns | |
// {@code A}.</p> | |
// | |
// <pre> | |
// A B | |
// ^ | |
// </pre> | |
// | |
// If the parser is not in error recovery mode, the consumed symbol is added | |
// to the parse tree using {@link ParserRuleContext//addChild(Token)}, and | |
// {@link ParseTreeListener//visitTerminal} is called on any parse listeners. | |
// If the parser <em>is</em> in error recovery mode, the consumed symbol is | |
// added to the parse tree using | |
// {@link ParserRuleContext//addErrorNode(Token)}, and | |
// {@link ParseTreeListener//visitErrorNode} is called on any parse | |
// listeners. | |
// | |
Parser.prototype.consume = function() { | |
var o = this.getCurrentToken(); | |
if (o.type !== Token.EOF) { | |
this.getInputStream().consume(); | |
} | |
var hasListener = this._parseListeners !== null && this._parseListeners.length > 0; | |
if (this.buildParseTrees || hasListener) { | |
var node; | |
if (this._errHandler.inErrorRecoveryMode(this)) { | |
node = this._ctx.addErrorNode(o); | |
} else { | |
node = this._ctx.addTokenNode(o); | |
} | |
node.invokingState = this.state; | |
if (hasListener) { | |
this._parseListeners.map(function(listener) { | |
if (node instanceof ErrorNode || (node.isErrorNode !== undefined && node.isErrorNode())) { | |
listener.visitErrorNode(node); | |
} else if (node instanceof TerminalNode) { | |
listener.visitTerminal(node); | |
} | |
}); | |
} | |
} | |
return o; | |
}; | |
Parser.prototype.addContextToParseTree = function() { | |
// add current context to parent if we have a parent | |
if (this._ctx.parentCtx !== null) { | |
this._ctx.parentCtx.addChild(this._ctx); | |
} | |
}; | |
// Always called by generated parsers upon entry to a rule. Access field | |
// {@link //_ctx} get the current context. | |
Parser.prototype.enterRule = function(localctx, state, ruleIndex) { | |
this.state = state; | |
this._ctx = localctx; | |
this._ctx.start = this._input.LT(1); | |
if (this.buildParseTrees) { | |
this.addContextToParseTree(); | |
} | |
if (this._parseListeners !== null) { | |
this.triggerEnterRuleEvent(); | |
} | |
}; | |
Parser.prototype.exitRule = function() { | |
this._ctx.stop = this._input.LT(-1); | |
// trigger event on _ctx, before it reverts to parent | |
if (this._parseListeners !== null) { | |
this.triggerExitRuleEvent(); | |
} | |
this.state = this._ctx.invokingState; | |
this._ctx = this._ctx.parentCtx; | |
}; | |
Parser.prototype.enterOuterAlt = function(localctx, altNum) { | |
localctx.setAltNumber(altNum); | |
// if we have new localctx, make sure we replace existing ctx | |
// that is previous child of parse tree | |
if (this.buildParseTrees && this._ctx !== localctx) { | |
if (this._ctx.parentCtx !== null) { | |
this._ctx.parentCtx.removeLastChild(); | |
this._ctx.parentCtx.addChild(localctx); | |
} | |
} | |
this._ctx = localctx; | |
}; | |
// Get the precedence level for the top-most precedence rule. | |
// | |
// @return The precedence level for the top-most precedence rule, or -1 if | |
// the parser context is not nested within a precedence rule. | |
Parser.prototype.getPrecedence = function() { | |
if (this._precedenceStack.length === 0) { | |
return -1; | |
} else { | |
return this._precedenceStack[this._precedenceStack.length-1]; | |
} | |
}; | |
Parser.prototype.enterRecursionRule = function(localctx, state, ruleIndex, | |
precedence) { | |
this.state = state; | |
this._precedenceStack.push(precedence); | |
this._ctx = localctx; | |
this._ctx.start = this._input.LT(1); | |
if (this._parseListeners !== null) { | |
this.triggerEnterRuleEvent(); // simulates rule entry for | |
// left-recursive rules | |
} | |
}; | |
// | |
// Like {@link //enterRule} but for recursive rules. | |
Parser.prototype.pushNewRecursionContext = function(localctx, state, ruleIndex) { | |
var previous = this._ctx; | |
previous.parentCtx = localctx; | |
previous.invokingState = state; | |
previous.stop = this._input.LT(-1); | |
this._ctx = localctx; | |
this._ctx.start = previous.start; | |
if (this.buildParseTrees) { | |
this._ctx.addChild(previous); | |
} | |
if (this._parseListeners !== null) { | |
this.triggerEnterRuleEvent(); // simulates rule entry for | |
// left-recursive rules | |
} | |
}; | |
Parser.prototype.unrollRecursionContexts = function(parentCtx) { | |
this._precedenceStack.pop(); | |
this._ctx.stop = this._input.LT(-1); | |
var retCtx = this._ctx; // save current ctx (return value) | |
// unroll so _ctx is as it was before call to recursive method | |
if (this._parseListeners !== null) { | |
while (this._ctx !== parentCtx) { | |
this.triggerExitRuleEvent(); | |
this._ctx = this._ctx.parentCtx; | |
} | |
} else { | |
this._ctx = parentCtx; | |
} | |
// hook into tree | |
retCtx.parentCtx = parentCtx; | |
if (this.buildParseTrees && parentCtx !== null) { | |
// add return ctx into invoking rule's tree | |
parentCtx.addChild(retCtx); | |
} | |
}; | |
Parser.prototype.getInvokingContext = function(ruleIndex) { | |
var ctx = this._ctx; | |
while (ctx !== null) { | |
if (ctx.ruleIndex === ruleIndex) { | |
return ctx; | |
} | |
ctx = ctx.parentCtx; | |
} | |
return null; | |
}; | |
Parser.prototype.precpred = function(localctx, precedence) { | |
return precedence >= this._precedenceStack[this._precedenceStack.length-1]; | |
}; | |
Parser.prototype.inContext = function(context) { | |
// TODO: useful in parser? | |
return false; | |
}; | |
// | |
// Checks whether or not {@code symbol} can follow the current state in the | |
// ATN. The behavior of this method is equivalent to the following, but is | |
// implemented such that the complete context-sensitive follow set does not | |
// need to be explicitly constructed. | |
// | |
// <pre> | |
// return getExpectedTokens().contains(symbol); | |
// </pre> | |
// | |
// @param symbol the symbol type to check | |
// @return {@code true} if {@code symbol} can follow the current state in | |
// the ATN, otherwise {@code false}. | |
Parser.prototype.isExpectedToken = function(symbol) { | |
var atn = this._interp.atn; | |
var ctx = this._ctx; | |
var s = atn.states[this.state]; | |
var following = atn.nextTokens(s); | |
if (following.contains(symbol)) { | |
return true; | |
} | |
if (!following.contains(Token.EPSILON)) { | |
return false; | |
} | |
while (ctx !== null && ctx.invokingState >= 0 && following.contains(Token.EPSILON)) { | |
var invokingState = atn.states[ctx.invokingState]; | |
var rt = invokingState.transitions[0]; | |
following = atn.nextTokens(rt.followState); | |
if (following.contains(symbol)) { | |
return true; | |
} | |
ctx = ctx.parentCtx; | |
} | |
if (following.contains(Token.EPSILON) && symbol === Token.EOF) { | |
return true; | |
} else { | |
return false; | |
} | |
}; | |
// Computes the set of input symbols which could follow the current parser | |
// state and context, as given by {@link //getState} and {@link //getContext}, | |
// respectively. | |
// | |
// @see ATN//getExpectedTokens(int, RuleContext) | |
// | |
Parser.prototype.getExpectedTokens = function() { | |
return this._interp.atn.getExpectedTokens(this.state, this._ctx); | |
}; | |
Parser.prototype.getExpectedTokensWithinCurrentRule = function() { | |
var atn = this._interp.atn; | |
var s = atn.states[this.state]; | |
return atn.nextTokens(s); | |
}; | |
// Get a rule's index (i.e., {@code RULE_ruleName} field) or -1 if not found.// | |
Parser.prototype.getRuleIndex = function(ruleName) { | |
var ruleIndex = this.getRuleIndexMap()[ruleName]; | |
if (ruleIndex !== null) { | |
return ruleIndex; | |
} else { | |
return -1; | |
} | |
}; | |
// Return List<String> of the rule names in your parser instance | |
// leading up to a call to the current rule. You could override if | |
// you want more details such as the file/line info of where | |
// in the ATN a rule is invoked. | |
// | |
// this is very useful for error messages. | |
// | |
Parser.prototype.getRuleInvocationStack = function(p) { | |
p = p || null; | |
if (p === null) { | |
p = this._ctx; | |
} | |
var stack = []; | |
while (p !== null) { | |
// compute what follows who invoked us | |
var ruleIndex = p.ruleIndex; | |
if (ruleIndex < 0) { | |
stack.push("n/a"); | |
} else { | |
stack.push(this.ruleNames[ruleIndex]); | |
} | |
p = p.parentCtx; | |
} | |
return stack; | |
}; | |
// For debugging and other purposes.// | |
Parser.prototype.getDFAStrings = function() { | |
return this._interp.decisionToDFA.toString(); | |
}; | |
// For debugging and other purposes.// | |
Parser.prototype.dumpDFA = function() { | |
var seenOne = false; | |
for (var i = 0; i < this._interp.decisionToDFA.length; i++) { | |
var dfa = this._interp.decisionToDFA[i]; | |
if (dfa.states.length > 0) { | |
if (seenOne) { | |
console.log(); | |
} | |
this.printer.println("Decision " + dfa.decision + ":"); | |
this.printer.print(dfa.toString(this.literalNames, this.symbolicNames)); | |
seenOne = true; | |
} | |
} | |
}; | |
/* | |
" printer = function() {\r\n" + | |
" this.println = function(s) { document.getElementById('output') += s + '\\n'; }\r\n" + | |
" this.print = function(s) { document.getElementById('output') += s; }\r\n" + | |
" };\r\n" + | |
*/ | |
Parser.prototype.getSourceName = function() { | |
return this._input.sourceName; | |
}; | |
// During a parse is sometimes useful to listen in on the rule entry and exit | |
// events as well as token matches. this is for quick and dirty debugging. | |
// | |
Parser.prototype.setTrace = function(trace) { | |
if (!trace) { | |
this.removeParseListener(this._tracer); | |
this._tracer = null; | |
} else { | |
if (this._tracer !== null) { | |
this.removeParseListener(this._tracer); | |
} | |
this._tracer = new TraceListener(this); | |
this.addParseListener(this._tracer); | |
} | |
}; | |
exports.Parser = Parser; | |
},{"./Lexer":12,"./Recognizer":16,"./Token":18,"./atn/ATNDeserializationOptions":23,"./atn/ATNDeserializer":24,"./error/ErrorStrategy":42,"./tree/Tree":48}],14:[function(require,module,exports){ | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
//* A rule invocation record for parsing. | |
// | |
// Contains all of the information about the current rule not stored in the | |
// RuleContext. It handles parse tree children list, Any ATN state | |
// tracing, and the default values available for rule indications: | |
// start, stop, rule index, current alt number, current | |
// ATN state. | |
// | |
// Subclasses made for each rule and grammar track the parameters, | |
// return values, locals, and labels specific to that rule. These | |
// are the objects that are returned from rules. | |
// | |
// Note text is not an actual field of a rule return value; it is computed | |
// from start and stop using the input stream's toString() method. I | |
// could add a ctor to this so that we can pass in and store the input | |
// stream, but I'm not sure we want to do that. It would seem to be undefined | |
// to get the .text property anyway if the rule matches tokens from multiple | |
// input streams. | |
// | |
// I do not use getters for fields of objects that are used simply to | |
// group values such as this aggregate. The getters/setters are there to | |
// satisfy the superclass interface. | |
var RuleContext = require('./RuleContext').RuleContext; | |
var Tree = require('./tree/Tree'); | |
var INVALID_INTERVAL = Tree.INVALID_INTERVAL; | |
var TerminalNode = Tree.TerminalNode; | |
var TerminalNodeImpl = Tree.TerminalNodeImpl; | |
var ErrorNodeImpl = Tree.ErrorNodeImpl; | |
var Interval = require("./IntervalSet").Interval; | |
function ParserRuleContext(parent, invokingStateNumber) { | |
parent = parent || null; | |
invokingStateNumber = invokingStateNumber || null; | |
RuleContext.call(this, parent, invokingStateNumber); | |
this.ruleIndex = -1; | |
// * If we are debugging or building a parse tree for a visitor, | |
// we need to track all of the tokens and rule invocations associated | |
// with this rule's context. This is empty for parsing w/o tree constr. | |
// operation because we don't the need to track the details about | |
// how we parse this rule. | |
// / | |
this.children = null; | |
this.start = null; | |
this.stop = null; | |
// The exception that forced this rule to return. If the rule successfully | |
// completed, this is {@code null}. | |
this.exception = null; | |
} | |
ParserRuleContext.prototype = Object.create(RuleContext.prototype); | |
ParserRuleContext.prototype.constructor = ParserRuleContext; | |
// * COPY a ctx (I'm deliberately not using copy constructor)/// | |
ParserRuleContext.prototype.copyFrom = function(ctx) { | |
// from RuleContext | |
this.parentCtx = ctx.parentCtx; | |
this.invokingState = ctx.invokingState; | |
this.children = null; | |
this.start = ctx.start; | |
this.stop = ctx.stop; | |
// copy any error nodes to alt label node | |
if(ctx.children) { | |
this.children = []; | |
// reset parent pointer for any error nodes | |
ctx.children.map(function(child) { | |
if (child instanceof ErrorNodeImpl) { | |
this.children.push(child); | |
child.parentCtx = this; | |
} | |
}, this); | |
} | |
}; | |
// Double dispatch methods for listeners | |
ParserRuleContext.prototype.enterRule = function(listener) { | |
}; | |
ParserRuleContext.prototype.exitRule = function(listener) { | |
}; | |
// * Does not set parent link; other add methods do that/// | |
ParserRuleContext.prototype.addChild = function(child) { | |
if (this.children === null) { | |
this.children = []; | |
} | |
this.children.push(child); | |
return child; | |
}; | |
// * Used by enterOuterAlt to toss out a RuleContext previously added as | |
// we entered a rule. If we have // label, we will need to remove | |
// generic ruleContext object. | |
// / | |
ParserRuleContext.prototype.removeLastChild = function() { | |
if (this.children !== null) { | |
this.children.pop(); | |
} | |
}; | |
ParserRuleContext.prototype.addTokenNode = function(token) { | |
var node = new TerminalNodeImpl(token); | |
this.addChild(node); | |
node.parentCtx = this; | |
return node; | |
}; | |
ParserRuleContext.prototype.addErrorNode = function(badToken) { | |
var node = new ErrorNodeImpl(badToken); | |
this.addChild(node); | |
node.parentCtx = this; | |
return node; | |
}; | |
ParserRuleContext.prototype.getChild = function(i, type) { | |
type = type || null; | |
if (this.children === null || i < 0 || i >= this.children.length) { | |
return null; | |
} | |
if (type === null) { | |
return this.children[i]; | |
} else { | |
for(var j=0; j<this.children.length; j++) { | |
var child = this.children[j]; | |
if(child instanceof type) { | |
if(i===0) { | |
return child; | |
} else { | |
i -= 1; | |
} | |
} | |
} | |
return null; | |
} | |
}; | |
ParserRuleContext.prototype.getToken = function(ttype, i) { | |
if (this.children === null || i < 0 || i >= this.children.length) { | |
return null; | |
} | |
for(var j=0; j<this.children.length; j++) { | |
var child = this.children[j]; | |
if (child instanceof TerminalNode) { | |
if (child.symbol.type === ttype) { | |
if(i===0) { | |
return child; | |
} else { | |
i -= 1; | |
} | |
} | |
} | |
} | |
return null; | |
}; | |
ParserRuleContext.prototype.getTokens = function(ttype ) { | |
if (this.children=== null) { | |
return []; | |
} else { | |
var tokens = []; | |
for(var j=0; j<this.children.length; j++) { | |
var child = this.children[j]; | |
if (child instanceof TerminalNode) { | |
if (child.symbol.type === ttype) { | |
tokens.push(child); | |
} | |
} | |
} | |
return tokens; | |
} | |
}; | |
ParserRuleContext.prototype.getTypedRuleContext = function(ctxType, i) { | |
return this.getChild(i, ctxType); | |
}; | |
ParserRuleContext.prototype.getTypedRuleContexts = function(ctxType) { | |
if (this.children=== null) { | |
return []; | |
} else { | |
var contexts = []; | |
for(var j=0; j<this.children.length; j++) { | |
var child = this.children[j]; | |
if (child instanceof ctxType) { | |
contexts.push(child); | |
} | |
} | |
return contexts; | |
} | |
}; | |
ParserRuleContext.prototype.getChildCount = function() { | |
if (this.children=== null) { | |
return 0; | |
} else { | |
return this.children.length; | |
} | |
}; | |
ParserRuleContext.prototype.getSourceInterval = function() { | |
if( this.start === null || this.stop === null) { | |
return INVALID_INTERVAL; | |
} else { | |
return new Interval(this.start.tokenIndex, this.stop.tokenIndex); | |
} | |
}; | |
RuleContext.EMPTY = new ParserRuleContext(); | |
function InterpreterRuleContext(parent, invokingStateNumber, ruleIndex) { | |
ParserRuleContext.call(parent, invokingStateNumber); | |
this.ruleIndex = ruleIndex; | |
return this; | |
} | |
InterpreterRuleContext.prototype = Object.create(ParserRuleContext.prototype); | |
InterpreterRuleContext.prototype.constructor = InterpreterRuleContext; | |
exports.ParserRuleContext = ParserRuleContext; | |
},{"./IntervalSet":10,"./RuleContext":17,"./tree/Tree":48}],15:[function(require,module,exports){ | |
// | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
/// | |
var RuleContext = require('./RuleContext').RuleContext; | |
var Hash = require('./Utils').Hash; | |
function PredictionContext(cachedHashCode) { | |
this.cachedHashCode = cachedHashCode; | |
} | |
// Represents {@code $} in local context prediction, which means wildcard. | |
// {@code//+x =//}. | |
// / | |
PredictionContext.EMPTY = null; | |
// Represents {@code $} in an array in full context mode, when {@code $} | |
// doesn't mean wildcard: {@code $ + x = [$,x]}. Here, | |
// {@code $} = {@link //EMPTY_RETURN_STATE}. | |
// / | |
PredictionContext.EMPTY_RETURN_STATE = 0x7FFFFFFF; | |
PredictionContext.globalNodeCount = 1; | |
PredictionContext.id = PredictionContext.globalNodeCount; | |
// Stores the computed hash code of this {@link PredictionContext}. The hash | |
// code is computed in parts to match the following reference algorithm. | |
// | |
// <pre> | |
// private int referenceHashCode() { | |
// int hash = {@link MurmurHash//initialize MurmurHash.initialize}({@link | |
// //INITIAL_HASH}); | |
// | |
// for (int i = 0; i < {@link //size()}; i++) { | |
// hash = {@link MurmurHash//update MurmurHash.update}(hash, {@link //getParent | |
// getParent}(i)); | |
// } | |
// | |
// for (int i = 0; i < {@link //size()}; i++) { | |
// hash = {@link MurmurHash//update MurmurHash.update}(hash, {@link | |
// //getReturnState getReturnState}(i)); | |
// } | |
// | |
// hash = {@link MurmurHash//finish MurmurHash.finish}(hash, 2// {@link | |
// //size()}); | |
// return hash; | |
// } | |
// </pre> | |
// / | |
// This means only the {@link //EMPTY} context is in set. | |
PredictionContext.prototype.isEmpty = function() { | |
return this === PredictionContext.EMPTY; | |
}; | |
PredictionContext.prototype.hasEmptyPath = function() { | |
return this.getReturnState(this.length - 1) === PredictionContext.EMPTY_RETURN_STATE; | |
}; | |
PredictionContext.prototype.hashCode = function() { | |
return this.cachedHashCode; | |
}; | |
PredictionContext.prototype.updateHashCode = function(hash) { | |
hash.update(this.cachedHashCode); | |
}; | |
/* | |
function calculateHashString(parent, returnState) { | |
return "" + parent + returnState; | |
} | |
*/ | |
// Used to cache {@link PredictionContext} objects. Its used for the shared | |
// context cash associated with contexts in DFA states. This cache | |
// can be used for both lexers and parsers. | |
function PredictionContextCache() { | |
this.cache = {}; | |
return this; | |
} | |
// Add a context to the cache and return it. If the context already exists, | |
// return that one instead and do not add a new context to the cache. | |
// Protect shared cache from unsafe thread access. | |
// | |
PredictionContextCache.prototype.add = function(ctx) { | |
if (ctx === PredictionContext.EMPTY) { | |
return PredictionContext.EMPTY; | |
} | |
var existing = this.cache[ctx] || null; | |
if (existing !== null) { | |
return existing; | |
} | |
this.cache[ctx] = ctx; | |
return ctx; | |
}; | |
PredictionContextCache.prototype.get = function(ctx) { | |
return this.cache[ctx] || null; | |
}; | |
Object.defineProperty(PredictionContextCache.prototype, "length", { | |
get : function() { | |
return this.cache.length; | |
} | |
}); | |
function SingletonPredictionContext(parent, returnState) { | |
var hashCode = 0; | |
if(parent !== null) { | |
var hash = new Hash(); | |
hash.update(parent, returnState); | |
hashCode = hash.finish(); | |
} | |
PredictionContext.call(this, hashCode); | |
this.parentCtx = parent; | |
this.returnState = returnState; | |
} | |
SingletonPredictionContext.prototype = Object.create(PredictionContext.prototype); | |
SingletonPredictionContext.prototype.contructor = SingletonPredictionContext; | |
SingletonPredictionContext.create = function(parent, returnState) { | |
if (returnState === PredictionContext.EMPTY_RETURN_STATE && parent === null) { | |
// someone can pass in the bits of an array ctx that mean $ | |
return PredictionContext.EMPTY; | |
} else { | |
return new SingletonPredictionContext(parent, returnState); | |
} | |
}; | |
Object.defineProperty(SingletonPredictionContext.prototype, "length", { | |
get : function() { | |
return 1; | |
} | |
}); | |
SingletonPredictionContext.prototype.getParent = function(index) { | |
return this.parentCtx; | |
}; | |
SingletonPredictionContext.prototype.getReturnState = function(index) { | |
return this.returnState; | |
}; | |
SingletonPredictionContext.prototype.equals = function(other) { | |
if (this === other) { | |
return true; | |
} else if (!(other instanceof SingletonPredictionContext)) { | |
return false; | |
} else if (this.hashCode() !== other.hashCode()) { | |
return false; // can't be same if hash is different | |
} else { | |
if(this.returnState !== other.returnState) | |
return false; | |
else if(this.parentCtx==null) | |
return other.parentCtx==null | |
else | |
return this.parentCtx.equals(other.parentCtx); | |
} | |
}; | |
SingletonPredictionContext.prototype.toString = function() { | |
var up = this.parentCtx === null ? "" : this.parentCtx.toString(); | |
if (up.length === 0) { | |
if (this.returnState === PredictionContext.EMPTY_RETURN_STATE) { | |
return "$"; | |
} else { | |
return "" + this.returnState; | |
} | |
} else { | |
return "" + this.returnState + " " + up; | |
} | |
}; | |
function EmptyPredictionContext() { | |
SingletonPredictionContext.call(this, null, PredictionContext.EMPTY_RETURN_STATE); | |
return this; | |
} | |
EmptyPredictionContext.prototype = Object.create(SingletonPredictionContext.prototype); | |
EmptyPredictionContext.prototype.constructor = EmptyPredictionContext; | |
EmptyPredictionContext.prototype.isEmpty = function() { | |
return true; | |
}; | |
EmptyPredictionContext.prototype.getParent = function(index) { | |
return null; | |
}; | |
EmptyPredictionContext.prototype.getReturnState = function(index) { | |
return this.returnState; | |
}; | |
EmptyPredictionContext.prototype.equals = function(other) { | |
return this === other; | |
}; | |
EmptyPredictionContext.prototype.toString = function() { | |
return "$"; | |
}; | |
PredictionContext.EMPTY = new EmptyPredictionContext(); | |
function ArrayPredictionContext(parents, returnStates) { | |
// Parent can be null only if full ctx mode and we make an array | |
// from {@link //EMPTY} and non-empty. We merge {@link //EMPTY} by using | |
// null parent and | |
// returnState == {@link //EMPTY_RETURN_STATE}. | |
var h = new Hash(); | |
h.update(parents, returnStates); | |
var hashCode = h.finish(); | |
PredictionContext.call(this, hashCode); | |
this.parents = parents; | |
this.returnStates = returnStates; | |
return this; | |
} | |
ArrayPredictionContext.prototype = Object.create(PredictionContext.prototype); | |
ArrayPredictionContext.prototype.constructor = ArrayPredictionContext; | |
ArrayPredictionContext.prototype.isEmpty = function() { | |
// since EMPTY_RETURN_STATE can only appear in the last position, we | |
// don't need to verify that size==1 | |
return this.returnStates[0] === PredictionContext.EMPTY_RETURN_STATE; | |
}; | |
Object.defineProperty(ArrayPredictionContext.prototype, "length", { | |
get : function() { | |
return this.returnStates.length; | |
} | |
}); | |
ArrayPredictionContext.prototype.getParent = function(index) { | |
return this.parents[index]; | |
}; | |
ArrayPredictionContext.prototype.getReturnState = function(index) { | |
return this.returnStates[index]; | |
}; | |
ArrayPredictionContext.prototype.equals = function(other) { | |
if (this === other) { | |
return true; | |
} else if (!(other instanceof ArrayPredictionContext)) { | |
return false; | |
} else if (this.hashCode() !== other.hashCode()) { | |
return false; // can't be same if hash is different | |
} else { | |
return this.returnStates === other.returnStates && | |
this.parents === other.parents; | |
} | |
}; | |
ArrayPredictionContext.prototype.toString = function() { | |
if (this.isEmpty()) { | |
return "[]"; | |
} else { | |
var s = "["; | |
for (var i = 0; i < this.returnStates.length; i++) { | |
if (i > 0) { | |
s = s + ", "; | |
} | |
if (this.returnStates[i] === PredictionContext.EMPTY_RETURN_STATE) { | |
s = s + "$"; | |
continue; | |
} | |
s = s + this.returnStates[i]; | |
if (this.parents[i] !== null) { | |
s = s + " " + this.parents[i]; | |
} else { | |
s = s + "null"; | |
} | |
} | |
return s + "]"; | |
} | |
}; | |
// Convert a {@link RuleContext} tree to a {@link PredictionContext} graph. | |
// Return {@link //EMPTY} if {@code outerContext} is empty or null. | |
// / | |
function predictionContextFromRuleContext(atn, outerContext) { | |
if (outerContext === undefined || outerContext === null) { | |
outerContext = RuleContext.EMPTY; | |
} | |
// if we are in RuleContext of start rule, s, then PredictionContext | |
// is EMPTY. Nobody called us. (if we are empty, return empty) | |
if (outerContext.parentCtx === null || outerContext === RuleContext.EMPTY) { | |
return PredictionContext.EMPTY; | |
} | |
// If we have a parent, convert it to a PredictionContext graph | |
var parent = predictionContextFromRuleContext(atn, outerContext.parentCtx); | |
var state = atn.states[outerContext.invokingState]; | |
var transition = state.transitions[0]; | |
return SingletonPredictionContext.create(parent, transition.followState.stateNumber); | |
} | |
/* | |
function calculateListsHashString(parents, returnStates) { | |
var s = ""; | |
parents.map(function(p) { | |
s = s + p; | |
}); | |
returnStates.map(function(r) { | |
s = s + r; | |
}); | |
return s; | |
} | |
*/ | |
function merge(a, b, rootIsWildcard, mergeCache) { | |
// share same graph if both same | |
if (a === b) { | |
return a; | |
} | |
if (a instanceof SingletonPredictionContext && b instanceof SingletonPredictionContext) { | |
return mergeSingletons(a, b, rootIsWildcard, mergeCache); | |
} | |
// At least one of a or b is array | |
// If one is $ and rootIsWildcard, return $ as// wildcard | |
if (rootIsWildcard) { | |
if (a instanceof EmptyPredictionContext) { | |
return a; | |
} | |
if (b instanceof EmptyPredictionContext) { | |
return b; | |
} | |
} | |
// convert singleton so both are arrays to normalize | |
if (a instanceof SingletonPredictionContext) { | |
a = new ArrayPredictionContext([a.getParent()], [a.returnState]); | |
} | |
if (b instanceof SingletonPredictionContext) { | |
b = new ArrayPredictionContext([b.getParent()], [b.returnState]); | |
} | |
return mergeArrays(a, b, rootIsWildcard, mergeCache); | |
} | |
// | |
// Merge two {@link SingletonPredictionContext} instances. | |
// | |
// <p>Stack tops equal, parents merge is same; return left graph.<br> | |
// <embed src="images/SingletonMerge_SameRootSamePar.svg" | |
// type="image/svg+xml"/></p> | |
// | |
// <p>Same stack top, parents differ; merge parents giving array node, then | |
// remainders of those graphs. A new root node is created to point to the | |
// merged parents.<br> | |
// <embed src="images/SingletonMerge_SameRootDiffPar.svg" | |
// type="image/svg+xml"/></p> | |
// | |
// <p>Different stack tops pointing to same parent. Make array node for the | |
// root where both element in the root point to the same (original) | |
// parent.<br> | |
// <embed src="images/SingletonMerge_DiffRootSamePar.svg" | |
// type="image/svg+xml"/></p> | |
// | |
// <p>Different stack tops pointing to different parents. Make array node for | |
// the root where each element points to the corresponding original | |
// parent.<br> | |
// <embed src="images/SingletonMerge_DiffRootDiffPar.svg" | |
// type="image/svg+xml"/></p> | |
// | |
// @param a the first {@link SingletonPredictionContext} | |
// @param b the second {@link SingletonPredictionContext} | |
// @param rootIsWildcard {@code true} if this is a local-context merge, | |
// otherwise false to indicate a full-context merge | |
// @param mergeCache | |
// / | |
function mergeSingletons(a, b, rootIsWildcard, mergeCache) { | |
if (mergeCache !== null) { | |
var previous = mergeCache.get(a, b); | |
if (previous !== null) { | |
return previous; | |
} | |
previous = mergeCache.get(b, a); | |
if (previous !== null) { | |
return previous; | |
} | |
} | |
var rootMerge = mergeRoot(a, b, rootIsWildcard); | |
if (rootMerge !== null) { | |
if (mergeCache !== null) { | |
mergeCache.set(a, b, rootMerge); | |
} | |
return rootMerge; | |
} | |
if (a.returnState === b.returnState) { | |
var parent = merge(a.parentCtx, b.parentCtx, rootIsWildcard, mergeCache); | |
// if parent is same as existing a or b parent or reduced to a parent, | |
// return it | |
if (parent === a.parentCtx) { | |
return a; // ax + bx = ax, if a=b | |
} | |
if (parent === b.parentCtx) { | |
return b; // ax + bx = bx, if a=b | |
} | |
// else: ax + ay = a'[x,y] | |
// merge parents x and y, giving array node with x,y then remainders | |
// of those graphs. dup a, a' points at merged array | |
// new joined parent so create new singleton pointing to it, a' | |
var spc = SingletonPredictionContext.create(parent, a.returnState); | |
if (mergeCache !== null) { | |
mergeCache.set(a, b, spc); | |
} | |
return spc; | |
} else { // a != b payloads differ | |
// see if we can collapse parents due to $+x parents if local ctx | |
var singleParent = null; | |
if (a === b || (a.parentCtx !== null && a.parentCtx === b.parentCtx)) { // ax + | |
// bx = | |
// [a,b]x | |
singleParent = a.parentCtx; | |
} | |
if (singleParent !== null) { // parents are same | |
// sort payloads and use same parent | |
var payloads = [ a.returnState, b.returnState ]; | |
if (a.returnState > b.returnState) { | |
payloads[0] = b.returnState; | |
payloads[1] = a.returnState; | |
} | |
var parents = [ singleParent, singleParent ]; | |
var apc = new ArrayPredictionContext(parents, payloads); | |
if (mergeCache !== null) { | |
mergeCache.set(a, b, apc); | |
} | |
return apc; | |
} | |
// parents differ and can't merge them. Just pack together | |
// into array; can't merge. | |
// ax + by = [ax,by] | |
var payloads = [ a.returnState, b.returnState ]; | |
var parents = [ a.parentCtx, b.parentCtx ]; | |
if (a.returnState > b.returnState) { // sort by payload | |
payloads[0] = b.returnState; | |
payloads[1] = a.returnState; | |
parents = [ b.parentCtx, a.parentCtx ]; | |
} | |
var a_ = new ArrayPredictionContext(parents, payloads); | |
if (mergeCache !== null) { | |
mergeCache.set(a, b, a_); | |
} | |
return a_; | |
} | |
} | |
// | |
// Handle case where at least one of {@code a} or {@code b} is | |
// {@link //EMPTY}. In the following diagrams, the symbol {@code $} is used | |
// to represent {@link //EMPTY}. | |
// | |
// <h2>Local-Context Merges</h2> | |
// | |
// <p>These local-context merge operations are used when {@code rootIsWildcard} | |
// is true.</p> | |
// | |
// <p>{@link //EMPTY} is superset of any graph; return {@link //EMPTY}.<br> | |
// <embed src="images/LocalMerge_EmptyRoot.svg" type="image/svg+xml"/></p> | |
// | |
// <p>{@link //EMPTY} and anything is {@code //EMPTY}, so merged parent is | |
// {@code //EMPTY}; return left graph.<br> | |
// <embed src="images/LocalMerge_EmptyParent.svg" type="image/svg+xml"/></p> | |
// | |
// <p>Special case of last merge if local context.<br> | |
// <embed src="images/LocalMerge_DiffRoots.svg" type="image/svg+xml"/></p> | |
// | |
// <h2>Full-Context Merges</h2> | |
// | |
// <p>These full-context merge operations are used when {@code rootIsWildcard} | |
// is false.</p> | |
// | |
// <p><embed src="images/FullMerge_EmptyRoots.svg" type="image/svg+xml"/></p> | |
// | |
// <p>Must keep all contexts; {@link //EMPTY} in array is a special value (and | |
// null parent).<br> | |
// <embed src="images/FullMerge_EmptyRoot.svg" type="image/svg+xml"/></p> | |
// | |
// <p><embed src="images/FullMerge_SameRoot.svg" type="image/svg+xml"/></p> | |
// | |
// @param a the first {@link SingletonPredictionContext} | |
// @param b the second {@link SingletonPredictionContext} | |
// @param rootIsWildcard {@code true} if this is a local-context merge, | |
// otherwise false to indicate a full-context merge | |
// / | |
function mergeRoot(a, b, rootIsWildcard) { | |
if (rootIsWildcard) { | |
if (a === PredictionContext.EMPTY) { | |
return PredictionContext.EMPTY; // // + b =// | |
} | |
if (b === PredictionContext.EMPTY) { | |
return PredictionContext.EMPTY; // a +// =// | |
} | |
} else { | |
if (a === PredictionContext.EMPTY && b === PredictionContext.EMPTY) { | |
return PredictionContext.EMPTY; // $ + $ = $ | |
} else if (a === PredictionContext.EMPTY) { // $ + x = [$,x] | |
var payloads = [ b.returnState, | |
PredictionContext.EMPTY_RETURN_STATE ]; | |
var parents = [ b.parentCtx, null ]; | |
return new ArrayPredictionContext(parents, payloads); | |
} else if (b === PredictionContext.EMPTY) { // x + $ = [$,x] ($ is always first if present) | |
var payloads = [ a.returnState, PredictionContext.EMPTY_RETURN_STATE ]; | |
var parents = [ a.parentCtx, null ]; | |
return new ArrayPredictionContext(parents, payloads); | |
} | |
} | |
return null; | |
} | |
// | |
// Merge two {@link ArrayPredictionContext} instances. | |
// | |
// <p>Different tops, different parents.<br> | |
// <embed src="images/ArrayMerge_DiffTopDiffPar.svg" type="image/svg+xml"/></p> | |
// | |
// <p>Shared top, same parents.<br> | |
// <embed src="images/ArrayMerge_ShareTopSamePar.svg" type="image/svg+xml"/></p> | |
// | |
// <p>Shared top, different parents.<br> | |
// <embed src="images/ArrayMerge_ShareTopDiffPar.svg" type="image/svg+xml"/></p> | |
// | |
// <p>Shared top, all shared parents.<br> | |
// <embed src="images/ArrayMerge_ShareTopSharePar.svg" | |
// type="image/svg+xml"/></p> | |
// | |
// <p>Equal tops, merge parents and reduce top to | |
// {@link SingletonPredictionContext}.<br> | |
// <embed src="images/ArrayMerge_EqualTop.svg" type="image/svg+xml"/></p> | |
// / | |
function mergeArrays(a, b, rootIsWildcard, mergeCache) { | |
if (mergeCache !== null) { | |
var previous = mergeCache.get(a, b); | |
if (previous !== null) { | |
return previous; | |
} | |
previous = mergeCache.get(b, a); | |
if (previous !== null) { | |
return previous; | |
} | |
} | |
// merge sorted payloads a + b => M | |
var i = 0; // walks a | |
var j = 0; // walks b | |
var k = 0; // walks target M array | |
var mergedReturnStates = []; | |
var mergedParents = []; | |
// walk and merge to yield mergedParents, mergedReturnStates | |
while (i < a.returnStates.length && j < b.returnStates.length) { | |
var a_parent = a.parents[i]; | |
var b_parent = b.parents[j]; | |
if (a.returnStates[i] === b.returnStates[j]) { | |
// same payload (stack tops are equal), must yield merged singleton | |
var payload = a.returnStates[i]; | |
// $+$ = $ | |
var bothDollars = payload === PredictionContext.EMPTY_RETURN_STATE && | |
a_parent === null && b_parent === null; | |
var ax_ax = (a_parent !== null && b_parent !== null && a_parent === b_parent); // ax+ax | |
// -> | |
// ax | |
if (bothDollars || ax_ax) { | |
mergedParents[k] = a_parent; // choose left | |
mergedReturnStates[k] = payload; | |
} else { // ax+ay -> a'[x,y] | |
var mergedParent = merge(a_parent, b_parent, rootIsWildcard, mergeCache); | |
mergedParents[k] = mergedParent; | |
mergedReturnStates[k] = payload; | |
} | |
i += 1; // hop over left one as usual | |
j += 1; // but also skip one in right side since we merge | |
} else if (a.returnStates[i] < b.returnStates[j]) { // copy a[i] to M | |
mergedParents[k] = a_parent; | |
mergedReturnStates[k] = a.returnStates[i]; | |
i += 1; | |
} else { // b > a, copy b[j] to M | |
mergedParents[k] = b_parent; | |
mergedReturnStates[k] = b.returnStates[j]; | |
j += 1; | |
} | |
k += 1; | |
} | |
// copy over any payloads remaining in either array | |
if (i < a.returnStates.length) { | |
for (var p = i; p < a.returnStates.length; p++) { | |
mergedParents[k] = a.parents[p]; | |
mergedReturnStates[k] = a.returnStates[p]; | |
k += 1; | |
} | |
} else { | |
for (var p = j; p < b.returnStates.length; p++) { | |
mergedParents[k] = b.parents[p]; | |
mergedReturnStates[k] = b.returnStates[p]; | |
k += 1; | |
} | |
} | |
// trim merged if we combined a few that had same stack tops | |
if (k < mergedParents.length) { // write index < last position; trim | |
if (k === 1) { // for just one merged element, return singleton top | |
var a_ = SingletonPredictionContext.create(mergedParents[0], | |
mergedReturnStates[0]); | |
if (mergeCache !== null) { | |
mergeCache.set(a, b, a_); | |
} | |
return a_; | |
} | |
mergedParents = mergedParents.slice(0, k); | |
mergedReturnStates = mergedReturnStates.slice(0, k); | |
} | |
var M = new ArrayPredictionContext(mergedParents, mergedReturnStates); | |
// if we created same array as a or b, return that instead | |
// TODO: track whether this is possible above during merge sort for speed | |
if (M === a) { | |
if (mergeCache !== null) { | |
mergeCache.set(a, b, a); | |
} | |
return a; | |
} | |
if (M === b) { | |
if (mergeCache !== null) { | |
mergeCache.set(a, b, b); | |
} | |
return b; | |
} | |
combineCommonParents(mergedParents); | |
if (mergeCache !== null) { | |
mergeCache.set(a, b, M); | |
} | |
return M; | |
} | |
// | |
// Make pass over all <em>M</em> {@code parents}; merge any {@code equals()} | |
// ones. | |
// / | |
function combineCommonParents(parents) { | |
var uniqueParents = {}; | |
for (var p = 0; p < parents.length; p++) { | |
var parent = parents[p]; | |
if (!(parent in uniqueParents)) { | |
uniqueParents[parent] = parent; | |
} | |
} | |
for (var q = 0; q < parents.length; q++) { | |
parents[q] = uniqueParents[parents[q]]; | |
} | |
} | |
function getCachedPredictionContext(context, contextCache, visited) { | |
if (context.isEmpty()) { | |
return context; | |
} | |
var existing = visited[context] || null; | |
if (existing !== null) { | |
return existing; | |
} | |
existing = contextCache.get(context); | |
if (existing !== null) { | |
visited[context] = existing; | |
return existing; | |
} | |
var changed = false; | |
var parents = []; | |
for (var i = 0; i < parents.length; i++) { | |
var parent = getCachedPredictionContext(context.getParent(i), contextCache, visited); | |
if (changed || parent !== context.getParent(i)) { | |
if (!changed) { | |
parents = []; | |
for (var j = 0; j < context.length; j++) { | |
parents[j] = context.getParent(j); | |
} | |
changed = true; | |
} | |
parents[i] = parent; | |
} | |
} | |
if (!changed) { | |
contextCache.add(context); | |
visited[context] = context; | |
return context; | |
} | |
var updated = null; | |
if (parents.length === 0) { | |
updated = PredictionContext.EMPTY; | |
} else if (parents.length === 1) { | |
updated = SingletonPredictionContext.create(parents[0], context | |
.getReturnState(0)); | |
} else { | |
updated = new ArrayPredictionContext(parents, context.returnStates); | |
} | |
contextCache.add(updated); | |
visited[updated] = updated; | |
visited[context] = updated; | |
return updated; | |
} | |
// ter's recursive version of Sam's getAllNodes() | |
function getAllContextNodes(context, nodes, visited) { | |
if (nodes === null) { | |
nodes = []; | |
return getAllContextNodes(context, nodes, visited); | |
} else if (visited === null) { | |
visited = {}; | |
return getAllContextNodes(context, nodes, visited); | |
} else { | |
if (context === null || visited[context] !== null) { | |
return nodes; | |
} | |
visited[context] = context; | |
nodes.push(context); | |
for (var i = 0; i < context.length; i++) { | |
getAllContextNodes(context.getParent(i), nodes, visited); | |
} | |
return nodes; | |
} | |
} | |
exports.merge = merge; | |
exports.PredictionContext = PredictionContext; | |
exports.PredictionContextCache = PredictionContextCache; | |
exports.SingletonPredictionContext = SingletonPredictionContext; | |
exports.predictionContextFromRuleContext = predictionContextFromRuleContext; | |
exports.getCachedPredictionContext = getCachedPredictionContext; | |
},{"./RuleContext":17,"./Utils":19}],16:[function(require,module,exports){ | |
// | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
// | |
var Token = require('./Token').Token; | |
var ConsoleErrorListener = require('./error/ErrorListener').ConsoleErrorListener; | |
var ProxyErrorListener = require('./error/ErrorListener').ProxyErrorListener; | |
function Recognizer() { | |
this._listeners = [ ConsoleErrorListener.INSTANCE ]; | |
this._interp = null; | |
this._stateNumber = -1; | |
return this; | |
} | |
Recognizer.tokenTypeMapCache = {}; | |
Recognizer.ruleIndexMapCache = {}; | |
Recognizer.prototype.checkVersion = function(toolVersion) { | |
var runtimeVersion = "4.7.1"; | |
if (runtimeVersion!==toolVersion) { | |
console.log("ANTLR runtime and generated code versions disagree: "+runtimeVersion+"!="+toolVersion); | |
} | |
}; | |
Recognizer.prototype.addErrorListener = function(listener) { | |
this._listeners.push(listener); | |
}; | |
Recognizer.prototype.removeErrorListeners = function() { | |
this._listeners = []; | |
}; | |
Recognizer.prototype.getTokenTypeMap = function() { | |
var tokenNames = this.getTokenNames(); | |
if (tokenNames===null) { | |
throw("The current recognizer does not provide a list of token names."); | |
} | |
var result = this.tokenTypeMapCache[tokenNames]; | |
if(result===undefined) { | |
result = tokenNames.reduce(function(o, k, i) { o[k] = i; }); | |
result.EOF = Token.EOF; | |
this.tokenTypeMapCache[tokenNames] = result; | |
} | |
return result; | |
}; | |
// Get a map from rule names to rule indexes. | |
// | |
// <p>Used for XPath and tree pattern compilation.</p> | |
// | |
Recognizer.prototype.getRuleIndexMap = function() { | |
var ruleNames = this.ruleNames; | |
if (ruleNames===null) { | |
throw("The current recognizer does not provide a list of rule names."); | |
} | |
var result = this.ruleIndexMapCache[ruleNames]; | |
if(result===undefined) { | |
result = ruleNames.reduce(function(o, k, i) { o[k] = i; }); | |
this.ruleIndexMapCache[ruleNames] = result; | |
} | |
return result; | |
}; | |
Recognizer.prototype.getTokenType = function(tokenName) { | |
var ttype = this.getTokenTypeMap()[tokenName]; | |
if (ttype !==undefined) { | |
return ttype; | |
} else { | |
return Token.INVALID_TYPE; | |
} | |
}; | |
// What is the error header, normally line/character position information?// | |
Recognizer.prototype.getErrorHeader = function(e) { | |
var line = e.getOffendingToken().line; | |
var column = e.getOffendingToken().column; | |
return "line " + line + ":" + column; | |
}; | |
// How should a token be displayed in an error message? The default | |
// is to display just the text, but during development you might | |
// want to have a lot of information spit out. Override in that case | |
// to use t.toString() (which, for CommonToken, dumps everything about | |
// the token). This is better than forcing you to override a method in | |
// your token objects because you don't have to go modify your lexer | |
// so that it creates a new Java type. | |
// | |
// @deprecated This method is not called by the ANTLR 4 Runtime. Specific | |
// implementations of {@link ANTLRErrorStrategy} may provide a similar | |
// feature when necessary. For example, see | |
// {@link DefaultErrorStrategy//getTokenErrorDisplay}. | |
// | |
Recognizer.prototype.getTokenErrorDisplay = function(t) { | |
if (t===null) { | |
return "<no token>"; | |
} | |
var s = t.text; | |
if (s===null) { | |
if (t.type===Token.EOF) { | |
s = "<EOF>"; | |
} else { | |
s = "<" + t.type + ">"; | |
} | |
} | |
s = s.replace("\n","\\n").replace("\r","\\r").replace("\t","\\t"); | |
return "'" + s + "'"; | |
}; | |
Recognizer.prototype.getErrorListenerDispatch = function() { | |
return new ProxyErrorListener(this._listeners); | |
}; | |
// subclass needs to override these if there are sempreds or actions | |
// that the ATN interp needs to execute | |
Recognizer.prototype.sempred = function(localctx, ruleIndex, actionIndex) { | |
return true; | |
}; | |
Recognizer.prototype.precpred = function(localctx , precedence) { | |
return true; | |
}; | |
//Indicate that the recognizer has changed internal state that is | |
//consistent with the ATN state passed in. This way we always know | |
//where we are in the ATN as the parser goes along. The rule | |
//context objects form a stack that lets us see the stack of | |
//invoking rules. Combine this and we have complete ATN | |
//configuration information. | |
Object.defineProperty(Recognizer.prototype, "state", { | |
get : function() { | |
return this._stateNumber; | |
}, | |
set : function(state) { | |
this._stateNumber = state; | |
} | |
}); | |
exports.Recognizer = Recognizer; | |
},{"./Token":18,"./error/ErrorListener":41}],17:[function(require,module,exports){ | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
/// | |
// A rule context is a record of a single rule invocation. It knows | |
// which context invoked it, if any. If there is no parent context, then | |
// naturally the invoking state is not valid. The parent link | |
// provides a chain upwards from the current rule invocation to the root | |
// of the invocation tree, forming a stack. We actually carry no | |
// information about the rule associated with this context (except | |
// when parsing). We keep only the state number of the invoking state from | |
// the ATN submachine that invoked this. Contrast this with the s | |
// pointer inside ParserRuleContext that tracks the current state | |
// being "executed" for the current rule. | |
// | |
// The parent contexts are useful for computing lookahead sets and | |
// getting error information. | |
// | |
// These objects are used during parsing and prediction. | |
// For the special case of parsers, we use the subclass | |
// ParserRuleContext. | |
// | |
// @see ParserRuleContext | |
/// | |
var RuleNode = require('./tree/Tree').RuleNode; | |
var INVALID_INTERVAL = require('./tree/Tree').INVALID_INTERVAL; | |
var INVALID_ALT_NUMBER = require('./atn/ATN').INVALID_ALT_NUMBER; | |
function RuleContext(parent, invokingState) { | |
RuleNode.call(this); | |
// What context invoked this rule? | |
this.parentCtx = parent || null; | |
// What state invoked the rule associated with this context? | |
// The "return address" is the followState of invokingState | |
// If parent is null, this should be -1. | |
this.invokingState = invokingState || -1; | |
return this; | |
} | |
RuleContext.prototype = Object.create(RuleNode.prototype); | |
RuleContext.prototype.constructor = RuleContext; | |
RuleContext.prototype.depth = function() { | |
var n = 0; | |
var p = this; | |
while (p !== null) { | |
p = p.parentCtx; | |
n += 1; | |
} | |
return n; | |
}; | |
// A context is empty if there is no invoking state; meaning nobody call | |
// current context. | |
RuleContext.prototype.isEmpty = function() { | |
return this.invokingState === -1; | |
}; | |
// satisfy the ParseTree / SyntaxTree interface | |
RuleContext.prototype.getSourceInterval = function() { | |
return INVALID_INTERVAL; | |
}; | |
RuleContext.prototype.getRuleContext = function() { | |
return this; | |
}; | |
RuleContext.prototype.getPayload = function() { | |
return this; | |
}; | |
// Return the combined text of all child nodes. This method only considers | |
// tokens which have been added to the parse tree. | |
// <p> | |
// Since tokens on hidden channels (e.g. whitespace or comments) are not | |
// added to the parse trees, they will not appear in the output of this | |
// method. | |
// / | |
RuleContext.prototype.getText = function() { | |
if (this.getChildCount() === 0) { | |
return ""; | |
} else { | |
return this.children.map(function(child) { | |
return child.getText(); | |
}).join(""); | |
} | |
}; | |
// For rule associated with this parse tree internal node, return | |
// the outer alternative number used to match the input. Default | |
// implementation does not compute nor store this alt num. Create | |
// a subclass of ParserRuleContext with backing field and set | |
// option contextSuperClass. | |
// to set it. | |
RuleContext.prototype.getAltNumber = function() { return INVALID_ALT_NUMBER; } | |
// Set the outer alternative number for this context node. Default | |
// implementation does nothing to avoid backing field overhead for | |
// trees that don't need it. Create | |
// a subclass of ParserRuleContext with backing field and set | |
// option contextSuperClass. | |
RuleContext.prototype.setAltNumber = function(altNumber) { } | |
RuleContext.prototype.getChild = function(i) { | |
return null; | |
}; | |
RuleContext.prototype.getChildCount = function() { | |
return 0; | |
}; | |
RuleContext.prototype.accept = function(visitor) { | |
return visitor.visitChildren(this); | |
}; | |
//need to manage circular dependencies, so export now | |
exports.RuleContext = RuleContext; | |
var Trees = require('./tree/Trees').Trees; | |
// Print out a whole tree, not just a node, in LISP format | |
// (root child1 .. childN). Print just a node if this is a leaf. | |
// | |
RuleContext.prototype.toStringTree = function(ruleNames, recog) { | |
return Trees.toStringTree(this, ruleNames, recog); | |
}; | |
RuleContext.prototype.toString = function(ruleNames, stop) { | |
ruleNames = ruleNames || null; | |
stop = stop || null; | |
var p = this; | |
var s = "["; | |
while (p !== null && p !== stop) { | |
if (ruleNames === null) { | |
if (!p.isEmpty()) { | |
s += p.invokingState; | |
} | |
} else { | |
var ri = p.ruleIndex; | |
var ruleName = (ri >= 0 && ri < ruleNames.length) ? ruleNames[ri] | |
: "" + ri; | |
s += ruleName; | |
} | |
if (p.parentCtx !== null && (ruleNames !== null || !p.parentCtx.isEmpty())) { | |
s += " "; | |
} | |
p = p.parentCtx; | |
} | |
s += "]"; | |
return s; | |
}; | |
},{"./atn/ATN":20,"./tree/Tree":48,"./tree/Trees":49}],18:[function(require,module,exports){ | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
// | |
// A token has properties: text, type, line, character position in the line | |
// (so we can ignore tabs), token channel, index, and source from which | |
// we obtained this token. | |
function Token() { | |
this.source = null; | |
this.type = null; // token type of the token | |
this.channel = null; // The parser ignores everything not on DEFAULT_CHANNEL | |
this.start = null; // optional; return -1 if not implemented. | |
this.stop = null; // optional; return -1 if not implemented. | |
this.tokenIndex = null; // from 0..n-1 of the token object in the input stream | |
this.line = null; // line=1..n of the 1st character | |
this.column = null; // beginning of the line at which it occurs, 0..n-1 | |
this._text = null; // text of the token. | |
return this; | |
} | |
Token.INVALID_TYPE = 0; | |
// During lookahead operations, this "token" signifies we hit rule end ATN state | |
// and did not follow it despite needing to. | |
Token.EPSILON = -2; | |
Token.MIN_USER_TOKEN_TYPE = 1; | |
Token.EOF = -1; | |
// All tokens go to the parser (unless skip() is called in that rule) | |
// on a particular "channel". The parser tunes to a particular channel | |
// so that whitespace etc... can go to the parser on a "hidden" channel. | |
Token.DEFAULT_CHANNEL = 0; | |
// Anything on different channel than DEFAULT_CHANNEL is not parsed | |
// by parser. | |
Token.HIDDEN_CHANNEL = 1; | |
// Explicitly set the text for this token. If {code text} is not | |
// {@code null}, then {@link //getText} will return this value rather than | |
// extracting the text from the input. | |
// | |
// @param text The explicit text of the token, or {@code null} if the text | |
// should be obtained from the input along with the start and stop indexes | |
// of the token. | |
Object.defineProperty(Token.prototype, "text", { | |
get : function() { | |
return this._text; | |
}, | |
set : function(text) { | |
this._text = text; | |
} | |
}); | |
Token.prototype.getTokenSource = function() { | |
return this.source[0]; | |
}; | |
Token.prototype.getInputStream = function() { | |
return this.source[1]; | |
}; | |
function CommonToken(source, type, channel, start, stop) { | |
Token.call(this); | |
this.source = source !== undefined ? source : CommonToken.EMPTY_SOURCE; | |
this.type = type !== undefined ? type : null; | |
this.channel = channel !== undefined ? channel : Token.DEFAULT_CHANNEL; | |
this.start = start !== undefined ? start : -1; | |
this.stop = stop !== undefined ? stop : -1; | |
this.tokenIndex = -1; | |
if (this.source[0] !== null) { | |
this.line = source[0].line; | |
this.column = source[0].column; | |
} else { | |
this.column = -1; | |
} | |
return this; | |
} | |
CommonToken.prototype = Object.create(Token.prototype); | |
CommonToken.prototype.constructor = CommonToken; | |
// An empty {@link Pair} which is used as the default value of | |
// {@link //source} for tokens that do not have a source. | |
CommonToken.EMPTY_SOURCE = [ null, null ]; | |
// Constructs a new {@link CommonToken} as a copy of another {@link Token}. | |
// | |
// <p> | |
// If {@code oldToken} is also a {@link CommonToken} instance, the newly | |
// constructed token will share a reference to the {@link //text} field and | |
// the {@link Pair} stored in {@link //source}. Otherwise, {@link //text} will | |
// be assigned the result of calling {@link //getText}, and {@link //source} | |
// will be constructed from the result of {@link Token//getTokenSource} and | |
// {@link Token//getInputStream}.</p> | |
// | |
// @param oldToken The token to copy. | |
// | |
CommonToken.prototype.clone = function() { | |
var t = new CommonToken(this.source, this.type, this.channel, this.start, | |
this.stop); | |
t.tokenIndex = this.tokenIndex; | |
t.line = this.line; | |
t.column = this.column; | |
t.text = this.text; | |
return t; | |
}; | |
Object.defineProperty(CommonToken.prototype, "text", { | |
get : function() { | |
if (this._text !== null) { | |
return this._text; | |
} | |
var input = this.getInputStream(); | |
if (input === null) { | |
return null; | |
} | |
var n = input.size; | |
if (this.start < n && this.stop < n) { | |
return input.getText(this.start, this.stop); | |
} else { | |
return "<EOF>"; | |
} | |
}, | |
set : function(text) { | |
this._text = text; | |
} | |
}); | |
CommonToken.prototype.toString = function() { | |
var txt = this.text; | |
if (txt !== null) { | |
txt = txt.replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t"); | |
} else { | |
txt = "<no text>"; | |
} | |
return "[@" + this.tokenIndex + "," + this.start + ":" + this.stop + "='" + | |
txt + "',<" + this.type + ">" + | |
(this.channel > 0 ? ",channel=" + this.channel : "") + "," + | |
this.line + ":" + this.column + "]"; | |
}; | |
exports.Token = Token; | |
exports.CommonToken = CommonToken; | |
},{}],19:[function(require,module,exports){ | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
function arrayToString(a) { | |
return "[" + a.join(", ") + "]"; | |
} | |
String.prototype.seed = String.prototype.seed || Math.round(Math.random() * Math.pow(2, 32)); | |
String.prototype.hashCode = function () { | |
var remainder, bytes, h1, h1b, c1, c1b, c2, c2b, k1, i, | |
key = this.toString(); | |
remainder = key.length & 3; // key.length % 4 | |
bytes = key.length - remainder; | |
h1 = String.prototype.seed; | |
c1 = 0xcc9e2d51; | |
c2 = 0x1b873593; | |
i = 0; | |
while (i < bytes) { | |
k1 = | |
((key.charCodeAt(i) & 0xff)) | | |
((key.charCodeAt(++i) & 0xff) << 8) | | |
((key.charCodeAt(++i) & 0xff) << 16) | | |
((key.charCodeAt(++i) & 0xff) << 24); | |
++i; | |
k1 = ((((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16))) & 0xffffffff; | |
k1 = (k1 << 15) | (k1 >>> 17); | |
k1 = ((((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16))) & 0xffffffff; | |
h1 ^= k1; | |
h1 = (h1 << 13) | (h1 >>> 19); | |
h1b = ((((h1 & 0xffff) * 5) + ((((h1 >>> 16) * 5) & 0xffff) << 16))) & 0xffffffff; | |
h1 = (((h1b & 0xffff) + 0x6b64) + ((((h1b >>> 16) + 0xe654) & 0xffff) << 16)); | |
} | |
k1 = 0; | |
switch (remainder) { | |
case 3: | |
k1 ^= (key.charCodeAt(i + 2) & 0xff) << 16; | |
case 2: | |
k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8; | |
case 1: | |
k1 ^= (key.charCodeAt(i) & 0xff); | |
k1 = (((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff; | |
k1 = (k1 << 15) | (k1 >>> 17); | |
k1 = (((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff; | |
h1 ^= k1; | |
} | |
h1 ^= key.length; | |
h1 ^= h1 >>> 16; | |
h1 = (((h1 & 0xffff) * 0x85ebca6b) + ((((h1 >>> 16) * 0x85ebca6b) & 0xffff) << 16)) & 0xffffffff; | |
h1 ^= h1 >>> 13; | |
h1 = ((((h1 & 0xffff) * 0xc2b2ae35) + ((((h1 >>> 16) * 0xc2b2ae35) & 0xffff) << 16))) & 0xffffffff; | |
h1 ^= h1 >>> 16; | |
return h1 >>> 0; | |
}; | |
function standardEqualsFunction(a, b) { | |
return a.equals(b); | |
} | |
function standardHashCodeFunction(a) { | |
return a.hashCode(); | |
} | |
function Set(hashFunction, equalsFunction) { | |
this.data = {}; | |
this.hashFunction = hashFunction || standardHashCodeFunction; | |
this.equalsFunction = equalsFunction || standardEqualsFunction; | |
return this; | |
} | |
Object.defineProperty(Set.prototype, "length", { | |
get: function () { | |
var l = 0; | |
for (var key in this.data) { | |
if (key.indexOf("hash_") === 0) { | |
l = l + this.data[key].length; | |
} | |
} | |
return l; | |
} | |
}); | |
Set.prototype.add = function (value) { | |
var hash = this.hashFunction(value); | |
var key = "hash_" + hash; | |
if (key in this.data) { | |
var values = this.data[key]; | |
for (var i = 0; i < values.length; i++) { | |
if (this.equalsFunction(value, values[i])) { | |
return values[i]; | |
} | |
} | |
values.push(value); | |
return value; | |
} else { | |
this.data[key] = [value]; | |
return value; | |
} | |
}; | |
Set.prototype.contains = function (value) { | |
return this.get(value) != null; | |
}; | |
Set.prototype.get = function (value) { | |
var hash = this.hashFunction(value); | |
var key = "hash_" + hash; | |
if (key in this.data) { | |
var values = this.data[key]; | |
for (var i = 0; i < values.length; i++) { | |
if (this.equalsFunction(value, values[i])) { | |
return values[i]; | |
} | |
} | |
} | |
return null; | |
}; | |
Set.prototype.values = function () { | |
var l = []; | |
for (var key in this.data) { | |
if (key.indexOf("hash_") === 0) { | |
l = l.concat(this.data[key]); | |
} | |
} | |
return l; | |
}; | |
Set.prototype.toString = function () { | |
return arrayToString(this.values()); | |
}; | |
function BitSet() { | |
this.data = []; | |
return this; | |
} | |
BitSet.prototype.add = function (value) { | |
this.data[value] = true; | |
}; | |
BitSet.prototype.or = function (set) { | |
var bits = this; | |
Object.keys(set.data).map(function (alt) { | |
bits.add(alt); | |
}); | |
}; | |
BitSet.prototype.remove = function (value) { | |
delete this.data[value]; | |
}; | |
BitSet.prototype.contains = function (value) { | |
return this.data[value] === true; | |
}; | |
BitSet.prototype.values = function () { | |
return Object.keys(this.data); | |
}; | |
BitSet.prototype.minValue = function () { | |
return Math.min.apply(null, this.values()); | |
}; | |
BitSet.prototype.hashCode = function () { | |
var hash = new Hash(); | |
hash.update(this.values()); | |
return hash.finish(); | |
}; | |
BitSet.prototype.equals = function (other) { | |
if (!(other instanceof BitSet)) { | |
return false; | |
} | |
return this.hashCode() === other.hashCode(); | |
}; | |
Object.defineProperty(BitSet.prototype, "length", { | |
get: function () { | |
return this.values().length; | |
} | |
}); | |
BitSet.prototype.toString = function () { | |
return "{" + this.values().join(", ") + "}"; | |
}; | |
function Map(hashFunction, equalsFunction) { | |
this.data = {}; | |
this.hashFunction = hashFunction || standardHashCodeFunction; | |
this.equalsFunction = equalsFunction || standardEqualsFunction; | |
return this; | |
} | |
Object.defineProperty(Map.prototype, "length", { | |
get: function () { | |
var l = 0; | |
for (var hashKey in this.data) { | |
if (hashKey.indexOf("hash_") === 0) { | |
l = l + this.data[hashKey].length; | |
} | |
} | |
return l; | |
} | |
}); | |
Map.prototype.put = function (key, value) { | |
var hashKey = "hash_" + this.hashFunction(key); | |
if (hashKey in this.data) { | |
var entries = this.data[hashKey]; | |
for (var i = 0; i < entries.length; i++) { | |
var entry = entries[i]; | |
if (this.equalsFunction(key, entry.key)) { | |
var oldValue = entry.value; | |
entry.value = value; | |
return oldValue; | |
} | |
} | |
entries.push({key:key, value:value}); | |
return value; | |
} else { | |
this.data[hashKey] = [{key:key, value:value}]; | |
return value; | |
} | |
}; | |
Map.prototype.containsKey = function (key) { | |
var hashKey = "hash_" + this.hashFunction(key); | |
if(hashKey in this.data) { | |
var entries = this.data[hashKey]; | |
for (var i = 0; i < entries.length; i++) { | |
var entry = entries[i]; | |
if (this.equalsFunction(key, entry.key)) | |
return true; | |
} | |
} | |
return false; | |
}; | |
Map.prototype.get = function (key) { | |
var hashKey = "hash_" + this.hashFunction(key); | |
if(hashKey in this.data) { | |
var entries = this.data[hashKey]; | |
for (var i = 0; i < entries.length; i++) { | |
var entry = entries[i]; | |
if (this.equalsFunction(key, entry.key)) | |
return entry.value; | |
} | |
} | |
return null; | |
}; | |
Map.prototype.entries = function () { | |
var l = []; | |
for (var key in this.data) { | |
if (key.indexOf("hash_") === 0) { | |
l = l.concat(this.data[key]); | |
} | |
} | |
return l; | |
}; | |
Map.prototype.getKeys = function () { | |
return this.entries().map(function(e) { | |
return e.key; | |
}); | |
}; | |
Map.prototype.getValues = function () { | |
return this.entries().map(function(e) { | |
return e.value; | |
}); | |
}; | |
Map.prototype.toString = function () { | |
var ss = this.entries().map(function(entry) { | |
return '{' + entry.key + ':' + entry.value + '}'; | |
}); | |
return '[' + ss.join(", ") + ']'; | |
}; | |
function AltDict() { | |
this.data = {}; | |
return this; | |
} | |
AltDict.prototype.get = function (key) { | |
key = "k-" + key; | |
if (key in this.data) { | |
return this.data[key]; | |
} else { | |
return null; | |
} | |
}; | |
AltDict.prototype.put = function (key, value) { | |
key = "k-" + key; | |
this.data[key] = value; | |
}; | |
AltDict.prototype.values = function () { | |
var data = this.data; | |
var keys = Object.keys(this.data); | |
return keys.map(function (key) { | |
return data[key]; | |
}); | |
}; | |
function DoubleDict() { | |
return this; | |
} | |
function Hash() { | |
this.count = 0; | |
this.hash = 0; | |
return this; | |
} | |
Hash.prototype.update = function () { | |
for(var i=0;i<arguments.length;i++) { | |
var value = arguments[i]; | |
if (value == null) | |
continue; | |
if(Array.isArray(value)) | |
this.update.apply(value); | |
else { | |
var k = 0; | |
switch (typeof(value)) { | |
case 'undefined': | |
case 'function': | |
continue; | |
case 'number': | |
case 'boolean': | |
k = value; | |
break; | |
case 'string': | |
k = value.hashCode(); | |
break; | |
default: | |
value.updateHashCode(this); | |
continue; | |
} | |
k = k * 0xCC9E2D51; | |
k = (k << 15) | (k >>> (32 - 15)); | |
k = k * 0x1B873593; | |
this.count = this.count + 1; | |
var hash = this.hash ^ k; | |
hash = (hash << 13) | (hash >>> (32 - 13)); | |
hash = hash * 5 + 0xE6546B64; | |
this.hash = hash; | |
} | |
} | |
} | |
Hash.prototype.finish = function () { | |
var hash = this.hash ^ (this.count * 4); | |
hash = hash ^ (hash >>> 16); | |
hash = hash * 0x85EBCA6B; | |
hash = hash ^ (hash >>> 13); | |
hash = hash * 0xC2B2AE35; | |
hash = hash ^ (hash >>> 16); | |
return hash; | |
} | |
function hashStuff() { | |
var hash = new Hash(); | |
hash.update.apply(arguments); | |
return hash.finish(); | |
} | |
DoubleDict.prototype.get = function (a, b) { | |
var d = this[a] || null; | |
return d === null ? null : (d[b] || null); | |
}; | |
DoubleDict.prototype.set = function (a, b, o) { | |
var d = this[a] || null; | |
if (d === null) { | |
d = {}; | |
this[a] = d; | |
} | |
d[b] = o; | |
}; | |
function escapeWhitespace(s, escapeSpaces) { | |
s = s.replace(/\t/g, "\\t") | |
.replace(/\n/g, "\\n") | |
.replace(/\r/g, "\\r"); | |
if (escapeSpaces) { | |
s = s.replace(/ /g, "\u00B7"); | |
} | |
return s; | |
} | |
function titleCase(str) { | |
return str.replace(/\w\S*/g, function (txt) { | |
return txt.charAt(0).toUpperCase() + txt.substr(1); | |
}); | |
}; | |
function equalArrays(a, b) | |
{ | |
if (!Array.isArray(a) || !Array.isArray(b)) | |
return false; | |
if (a == b) | |
return true; | |
if (a.length != b.length) | |
return false; | |
for (var i = 0; i < a.length; i++) { | |
if (a[i] == b[i]) | |
continue; | |
if (!a[i].equals(b[i])) | |
return false; | |
} | |
return true; | |
}; | |
exports.Hash = Hash; | |
exports.Set = Set; | |
exports.Map = Map; | |
exports.BitSet = BitSet; | |
exports.AltDict = AltDict; | |
exports.DoubleDict = DoubleDict; | |
exports.hashStuff = hashStuff; | |
exports.escapeWhitespace = escapeWhitespace; | |
exports.arrayToString = arrayToString; | |
exports.titleCase = titleCase; | |
exports.equalArrays = equalArrays; | |
},{}],20:[function(require,module,exports){ | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
var LL1Analyzer = require('./../LL1Analyzer').LL1Analyzer; | |
var IntervalSet = require('./../IntervalSet').IntervalSet; | |
function ATN(grammarType , maxTokenType) { | |
// Used for runtime deserialization of ATNs from strings/// | |
// The type of the ATN. | |
this.grammarType = grammarType; | |
// The maximum value for any symbol recognized by a transition in the ATN. | |
this.maxTokenType = maxTokenType; | |
this.states = []; | |
// Each subrule/rule is a decision point and we must track them so we | |
// can go back later and build DFA predictors for them. This includes | |
// all the rules, subrules, optional blocks, ()+, ()* etc... | |
this.decisionToState = []; | |
// Maps from rule index to starting state number. | |
this.ruleToStartState = []; | |
// Maps from rule index to stop state number. | |
this.ruleToStopState = null; | |
this.modeNameToStartState = {}; | |
// For lexer ATNs, this maps the rule index to the resulting token type. | |
// For parser ATNs, this maps the rule index to the generated bypass token | |
// type if the | |
// {@link ATNDeserializationOptions//isGenerateRuleBypassTransitions} | |
// deserialization option was specified; otherwise, this is {@code null}. | |
this.ruleToTokenType = null; | |
// For lexer ATNs, this is an array of {@link LexerAction} objects which may | |
// be referenced by action transitions in the ATN. | |
this.lexerActions = null; | |
this.modeToStartState = []; | |
return this; | |
} | |
// Compute the set of valid tokens that can occur starting in state {@code s}. | |
// If {@code ctx} is null, the set of tokens will not include what can follow | |
// the rule surrounding {@code s}. In other words, the set will be | |
// restricted to tokens reachable staying within {@code s}'s rule. | |
ATN.prototype.nextTokensInContext = function(s, ctx) { | |
var anal = new LL1Analyzer(this); | |
return anal.LOOK(s, null, ctx); | |
}; | |
// Compute the set of valid tokens that can occur starting in {@code s} and | |
// staying in same rule. {@link Token//EPSILON} is in set if we reach end of | |
// rule. | |
ATN.prototype.nextTokensNoContext = function(s) { | |
if (s.nextTokenWithinRule !== null ) { | |
return s.nextTokenWithinRule; | |
} | |
s.nextTokenWithinRule = this.nextTokensInContext(s, null); | |
s.nextTokenWithinRule.readOnly = true; | |
return s.nextTokenWithinRule; | |
}; | |
ATN.prototype.nextTokens = function(s, ctx) { | |
if ( ctx===undefined ) { | |
return this.nextTokensNoContext(s); | |
} else { | |
return this.nextTokensInContext(s, ctx); | |
} | |
}; | |
ATN.prototype.addState = function( state) { | |
if ( state !== null ) { | |
state.atn = this; | |
state.stateNumber = this.states.length; | |
} | |
this.states.push(state); | |
}; | |
ATN.prototype.removeState = function( state) { | |
this.states[state.stateNumber] = null; // just free mem, don't shift states in list | |
}; | |
ATN.prototype.defineDecisionState = function( s) { | |
this.decisionToState.push(s); | |
s.decision = this.decisionToState.length-1; | |
return s.decision; | |
}; | |
ATN.prototype.getDecisionState = function( decision) { | |
if (this.decisionToState.length===0) { | |
return null; | |
} else { | |
return this.decisionToState[decision]; | |
} | |
}; | |
// Computes the set of input symbols which could follow ATN state number | |
// {@code stateNumber} in the specified full {@code context}. This method | |
// considers the complete parser context, but does not evaluate semantic | |
// predicates (i.e. all predicates encountered during the calculation are | |
// assumed true). If a path in the ATN exists from the starting state to the | |
// {@link RuleStopState} of the outermost context without matching any | |
// symbols, {@link Token//EOF} is added to the returned set. | |
// | |
// <p>If {@code context} is {@code null}, it is treated as | |
// {@link ParserRuleContext//EMPTY}.</p> | |
// | |
// @param stateNumber the ATN state number | |
// @param context the full parse context | |
// @return The set of potentially valid input symbols which could follow the | |
// specified state in the specified context. | |
// @throws IllegalArgumentException if the ATN does not contain a state with | |
// number {@code stateNumber} | |
var Token = require('./../Token').Token; | |
ATN.prototype.getExpectedTokens = function( stateNumber, ctx ) { | |
if ( stateNumber < 0 || stateNumber >= this.states.length ) { | |
throw("Invalid state number."); | |
} | |
var s = this.states[stateNumber]; | |
var following = this.nextTokens(s); | |
if (!following.contains(Token.EPSILON)) { | |
return following; | |
} | |
var expected = new IntervalSet(); | |
expected.addSet(following); | |
expected.removeOne(Token.EPSILON); | |
while (ctx !== null && ctx.invokingState >= 0 && following.contains(Token.EPSILON)) { | |
var invokingState = this.states[ctx.invokingState]; | |
var rt = invokingState.transitions[0]; | |
following = this.nextTokens(rt.followState); | |
expected.addSet(following); | |
expected.removeOne(Token.EPSILON); | |
ctx = ctx.parentCtx; | |
} | |
if (following.contains(Token.EPSILON)) { | |
expected.addOne(Token.EOF); | |
} | |
return expected; | |
}; | |
ATN.INVALID_ALT_NUMBER = 0; | |
exports.ATN = ATN; | |
},{"./../IntervalSet":10,"./../LL1Analyzer":11,"./../Token":18}],21:[function(require,module,exports){ | |
// | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
/// | |
// A tuple: (ATN state, predicted alt, syntactic, semantic context). | |
// The syntactic context is a graph-structured stack node whose | |
// path(s) to the root is the rule invocation(s) | |
// chain used to arrive at the state. The semantic context is | |
// the tree of semantic predicates encountered before reaching | |
// an ATN state. | |
/// | |
var DecisionState = require('./ATNState').DecisionState; | |
var SemanticContext = require('./SemanticContext').SemanticContext; | |
var Hash = require("../Utils").Hash; | |
function checkParams(params, isCfg) { | |
if(params===null) { | |
var result = { state:null, alt:null, context:null, semanticContext:null }; | |
if(isCfg) { | |
result.reachesIntoOuterContext = 0; | |
} | |
return result; | |
} else { | |
var props = {}; | |
props.state = params.state || null; | |
props.alt = (params.alt === undefined) ? null : params.alt; | |
props.context = params.context || null; | |
props.semanticContext = params.semanticContext || null; | |
if(isCfg) { | |
props.reachesIntoOuterContext = params.reachesIntoOuterContext || 0; | |
props.precedenceFilterSuppressed = params.precedenceFilterSuppressed || false; | |
} | |
return props; | |
} | |
} | |
function ATNConfig(params, config) { | |
this.checkContext(params, config); | |
params = checkParams(params); | |
config = checkParams(config, true); | |
// The ATN state associated with this configuration/// | |
this.state = params.state!==null ? params.state : config.state; | |
// What alt (or lexer rule) is predicted by this configuration/// | |
this.alt = params.alt!==null ? params.alt : config.alt; | |
// The stack of invoking states leading to the rule/states associated | |
// with this config. We track only those contexts pushed during | |
// execution of the ATN simulator. | |
this.context = params.context!==null ? params.context : config.context; | |
this.semanticContext = params.semanticContext!==null ? params.semanticContext : | |
(config.semanticContext!==null ? config.semanticContext : SemanticContext.NONE); | |
// We cannot execute predicates dependent upon local context unless | |
// we know for sure we are in the correct context. Because there is | |
// no way to do this efficiently, we simply cannot evaluate | |
// dependent predicates unless we are in the rule that initially | |
// invokes the ATN simulator. | |
// | |
// closure() tracks the depth of how far we dip into the | |
// outer context: depth > 0. Note that it may not be totally | |
// accurate depth since I don't ever decrement. TODO: make it a boolean then | |
this.reachesIntoOuterContext = config.reachesIntoOuterContext; | |
this.precedenceFilterSuppressed = config.precedenceFilterSuppressed; | |
return this; | |
} | |
ATNConfig.prototype.checkContext = function(params, config) { | |
if((params.context===null || params.context===undefined) && | |
(config===null || config.context===null || config.context===undefined)) { | |
this.context = null; | |
} | |
}; | |
ATNConfig.prototype.hashCode = function() { | |
var hash = new Hash(); | |
this.updateHashCode(hash); | |
return hash.finish(); | |
}; | |
ATNConfig.prototype.updateHashCode = function(hash) { | |
hash.update(this.state.stateNumber, this.alt, this.context, this.semanticContext); | |
}; | |
// An ATN configuration is equal to another if both have | |
// the same state, they predict the same alternative, and | |
// syntactic/semantic contexts are the same. | |
ATNConfig.prototype.equals = function(other) { | |
if (this === other) { | |
return true; | |
} else if (! (other instanceof ATNConfig)) { | |
return false; | |
} else { | |
return this.state.stateNumber===other.state.stateNumber && | |
this.alt===other.alt && | |
(this.context===null ? other.context===null : this.context.equals(other.context)) && | |
this.semanticContext.equals(other.semanticContext) && | |
this.precedenceFilterSuppressed===other.precedenceFilterSuppressed; | |
} | |
}; | |
ATNConfig.prototype.hashCodeForConfigSet = function() { | |
var hash = new Hash(); | |
hash.update(this.state.stateNumber, this.alt, this.semanticContext); | |
return hash.finish(); | |
}; | |
ATNConfig.prototype.equalsForConfigSet = function(other) { | |
if (this === other) { | |
return true; | |
} else if (! (other instanceof ATNConfig)) { | |
return false; | |
} else { | |
return this.state.stateNumber===other.state.stateNumber && | |
this.alt===other.alt && | |
this.semanticContext.equals(other.semanticContext); | |
} | |
}; | |
ATNConfig.prototype.toString = function() { | |
return "(" + this.state + "," + this.alt + | |
(this.context!==null ? ",[" + this.context.toString() + "]" : "") + | |
(this.semanticContext !== SemanticContext.NONE ? | |
("," + this.semanticContext.toString()) | |
: "") + | |
(this.reachesIntoOuterContext>0 ? | |
(",up=" + this.reachesIntoOuterContext) | |
: "") + ")"; | |
}; | |
function LexerATNConfig(params, config) { | |
ATNConfig.call(this, params, config); | |
// This is the backing field for {@link //getLexerActionExecutor}. | |
var lexerActionExecutor = params.lexerActionExecutor || null; | |
this.lexerActionExecutor = lexerActionExecutor || (config!==null ? config.lexerActionExecutor : null); | |
this.passedThroughNonGreedyDecision = config!==null ? this.checkNonGreedyDecision(config, this.state) : false; | |
return this; | |
} | |
LexerATNConfig.prototype = Object.create(ATNConfig.prototype); | |
LexerATNConfig.prototype.constructor = LexerATNConfig; | |
LexerATNConfig.prototype.updateHashCode = function(hash) { | |
hash.update(this.state.stateNumber, this.alt, this.context, this.semanticContext, this.passedThroughNonGreedyDecision, this.lexerActionExecutor); | |
}; | |
LexerATNConfig.prototype.equals = function(other) { | |
return this === other || | |
(other instanceof LexerATNConfig && | |
this.passedThroughNonGreedyDecision == other.passedThroughNonGreedyDecision && | |
(this.lexerActionExecutor ? this.lexerActionExecutor.equals(other.lexerActionExecutor) : !other.lexerActionExecutor) && | |
ATNConfig.prototype.equals.call(this, other)); | |
}; | |
LexerATNConfig.prototype.hashCodeForConfigSet = LexerATNConfig.prototype.hashCode; | |
LexerATNConfig.prototype.equalsForConfigSet = LexerATNConfig.prototype.equals; | |
LexerATNConfig.prototype.checkNonGreedyDecision = function(source, target) { | |
return source.passedThroughNonGreedyDecision || | |
(target instanceof DecisionState) && target.nonGreedy; | |
}; | |
exports.ATNConfig = ATNConfig; | |
exports.LexerATNConfig = LexerATNConfig; | |
},{"../Utils":19,"./ATNState":26,"./SemanticContext":33}],22:[function(require,module,exports){ | |
// | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
// | |
// Specialized {@link Set}{@code <}{@link ATNConfig}{@code >} that can track | |
// info about the set, with support for combining similar configurations using a | |
// graph-structured stack. | |
/// | |
var ATN = require('./ATN').ATN; | |
var Utils = require('./../Utils'); | |
var Hash = Utils.Hash; | |
var Set = Utils.Set; | |
var SemanticContext = require('./SemanticContext').SemanticContext; | |
var merge = require('./../PredictionContext').merge; | |
function hashATNConfig(c) { | |
return c.hashCodeForConfigSet(); | |
} | |
function equalATNConfigs(a, b) { | |
if ( a===b ) { | |
return true; | |
} else if ( a===null || b===null ) { | |
return false; | |
} else | |
return a.equalsForConfigSet(b); | |
} | |
function ATNConfigSet(fullCtx) { | |
// | |
// The reason that we need this is because we don't want the hash map to use | |
// the standard hash code and equals. We need all configurations with the | |
// same | |
// {@code (s,i,_,semctx)} to be equal. Unfortunately, this key effectively | |
// doubles | |
// the number of objects associated with ATNConfigs. The other solution is | |
// to | |
// use a hash table that lets us specify the equals/hashcode operation. | |
// All configs but hashed by (s, i, _, pi) not including context. Wiped out | |
// when we go readonly as this set becomes a DFA state. | |
this.configLookup = new Set(hashATNConfig, equalATNConfigs); | |
// Indicates that this configuration set is part of a full context | |
// LL prediction. It will be used to determine how to merge $. With SLL | |
// it's a wildcard whereas it is not for LL context merge. | |
this.fullCtx = fullCtx === undefined ? true : fullCtx; | |
// Indicates that the set of configurations is read-only. Do not | |
// allow any code to manipulate the set; DFA states will point at | |
// the sets and they must not change. This does not protect the other | |
// fields; in particular, conflictingAlts is set after | |
// we've made this readonly. | |
this.readOnly = false; | |
// Track the elements as they are added to the set; supports get(i)/// | |
this.configs = []; | |
// TODO: these fields make me pretty uncomfortable but nice to pack up info | |
// together, saves recomputation | |
// TODO: can we track conflicts as they are added to save scanning configs | |
// later? | |
this.uniqueAlt = 0; | |
this.conflictingAlts = null; | |
// Used in parser and lexer. In lexer, it indicates we hit a pred | |
// while computing a closure operation. Don't make a DFA state from this. | |
this.hasSemanticContext = false; | |
this.dipsIntoOuterContext = false; | |
this.cachedHashCode = -1; | |
return this; | |
} | |
// Adding a new config means merging contexts with existing configs for | |
// {@code (s, i, pi, _)}, where {@code s} is the | |
// {@link ATNConfig//state}, {@code i} is the {@link ATNConfig//alt}, and | |
// {@code pi} is the {@link ATNConfig//semanticContext}. We use | |
// {@code (s,i,pi)} as key. | |
// | |
// <p>This method updates {@link //dipsIntoOuterContext} and | |
// {@link //hasSemanticContext} when necessary.</p> | |
// / | |
ATNConfigSet.prototype.add = function(config, mergeCache) { | |
if (mergeCache === undefined) { | |
mergeCache = null; | |
} | |
if (this.readOnly) { | |
throw "This set is readonly"; | |
} | |
if (config.semanticContext !== SemanticContext.NONE) { | |
this.hasSemanticContext = true; | |
} | |
if (config.reachesIntoOuterContext > 0) { | |
this.dipsIntoOuterContext = true; | |
} | |
var existing = this.configLookup.add(config); | |
if (existing === config) { | |
this.cachedHashCode = -1; | |
this.configs.push(config); // track order here | |
return true; | |
} | |
// a previous (s,i,pi,_), merge with it and save result | |
var rootIsWildcard = !this.fullCtx; | |
var merged = merge(existing.context, config.context, rootIsWildcard, mergeCache); | |
// no need to check for existing.context, config.context in cache | |
// since only way to create new graphs is "call rule" and here. We | |
// cache at both places. | |
existing.reachesIntoOuterContext = Math.max( existing.reachesIntoOuterContext, config.reachesIntoOuterContext); | |
// make sure to preserve the precedence filter suppression during the merge | |
if (config.precedenceFilterSuppressed) { | |
existing.precedenceFilterSuppressed = true; | |
} | |
existing.context = merged; // replace context; no need to alt mapping | |
return true; | |
}; | |
ATNConfigSet.prototype.getStates = function() { | |
var states = new Set(); | |
for (var i = 0; i < this.configs.length; i++) { | |
states.add(this.configs[i].state); | |
} | |
return states; | |
}; | |
ATNConfigSet.prototype.getPredicates = function() { | |
var preds = []; | |
for (var i = 0; i < this.configs.length; i++) { | |
var c = this.configs[i].semanticContext; | |
if (c !== SemanticContext.NONE) { | |
preds.push(c.semanticContext); | |
} | |
} | |
return preds; | |
}; | |
Object.defineProperty(ATNConfigSet.prototype, "items", { | |
get : function() { | |
return this.configs; | |
} | |
}); | |
ATNConfigSet.prototype.optimizeConfigs = function(interpreter) { | |
if (this.readOnly) { | |
throw "This set is readonly"; | |
} | |
if (this.configLookup.length === 0) { | |
return; | |
} | |
for (var i = 0; i < this.configs.length; i++) { | |
var config = this.configs[i]; | |
config.context = interpreter.getCachedContext(config.context); | |
} | |
}; | |
ATNConfigSet.prototype.addAll = function(coll) { | |
for (var i = 0; i < coll.length; i++) { | |
this.add(coll[i]); | |
} | |
return false; | |
}; | |
ATNConfigSet.prototype.equals = function(other) { | |
return this === other || | |
(other instanceof ATNConfigSet && | |
Utils.equalArrays(this.configs, other.configs) && | |
this.fullCtx === other.fullCtx && | |
this.uniqueAlt === other.uniqueAlt && | |
this.conflictingAlts === other.conflictingAlts && | |
this.hasSemanticContext === other.hasSemanticContext && | |
this.dipsIntoOuterContext === other.dipsIntoOuterContext); | |
}; | |
ATNConfigSet.prototype.hashCode = function() { | |
var hash = new Hash(); | |
this.updateHashCode(hash); | |
return hash.finish(); | |
}; | |
ATNConfigSet.prototype.updateHashCode = function(hash) { | |
if (this.readOnly) { | |
if (this.cachedHashCode === -1) { | |
var hash = new Hash(); | |
hash.update(this.configs); | |
this.cachedHashCode = hash.finish(); | |
} | |
hash.update(this.cachedHashCode); | |
} else { | |
hash.update(this.configs); | |
} | |
}; | |
Object.defineProperty(ATNConfigSet.prototype, "length", { | |
get : function() { | |
return this.configs.length; | |
} | |
}); | |
ATNConfigSet.prototype.isEmpty = function() { | |
return this.configs.length === 0; | |
}; | |
ATNConfigSet.prototype.contains = function(item) { | |
if (this.configLookup === null) { | |
throw "This method is not implemented for readonly sets."; | |
} | |
return this.configLookup.contains(item); | |
}; | |
ATNConfigSet.prototype.containsFast = function(item) { | |
if (this.configLookup === null) { | |
throw "This method is not implemented for readonly sets."; | |
} | |
return this.configLookup.containsFast(item); | |
}; | |
ATNConfigSet.prototype.clear = function() { | |
if (this.readOnly) { | |
throw "This set is readonly"; | |
} | |
this.configs = []; | |
this.cachedHashCode = -1; | |
this.configLookup = new Set(); | |
}; | |
ATNConfigSet.prototype.setReadonly = function(readOnly) { | |
this.readOnly = readOnly; | |
if (readOnly) { | |
this.configLookup = null; // can't mod, no need for lookup cache | |
} | |
}; | |
ATNConfigSet.prototype.toString = function() { | |
return Utils.arrayToString(this.configs) + | |
(this.hasSemanticContext ? ",hasSemanticContext=" + this.hasSemanticContext : "") + | |
(this.uniqueAlt !== ATN.INVALID_ALT_NUMBER ? ",uniqueAlt=" + this.uniqueAlt : "") + | |
(this.conflictingAlts !== null ? ",conflictingAlts=" + this.conflictingAlts : "") + | |
(this.dipsIntoOuterContext ? ",dipsIntoOuterContext" : ""); | |
}; | |
function OrderedATNConfigSet() { | |
ATNConfigSet.call(this); | |
this.configLookup = new Set(); | |
return this; | |
} | |
OrderedATNConfigSet.prototype = Object.create(ATNConfigSet.prototype); | |
OrderedATNConfigSet.prototype.constructor = OrderedATNConfigSet; | |
exports.ATNConfigSet = ATNConfigSet; | |
exports.OrderedATNConfigSet = OrderedATNConfigSet; | |
},{"./../PredictionContext":15,"./../Utils":19,"./ATN":20,"./SemanticContext":33}],23:[function(require,module,exports){ | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
function ATNDeserializationOptions(copyFrom) { | |
if(copyFrom===undefined) { | |
copyFrom = null; | |
} | |
this.readOnly = false; | |
this.verifyATN = copyFrom===null ? true : copyFrom.verifyATN; | |
this.generateRuleBypassTransitions = copyFrom===null ? false : copyFrom.generateRuleBypassTransitions; | |
return this; | |
} | |
ATNDeserializationOptions.defaultOptions = new ATNDeserializationOptions(); | |
ATNDeserializationOptions.defaultOptions.readOnly = true; | |
// def __setattr__(self, key, value): | |
// if key!="readOnly" and self.readOnly: | |
// raise Exception("The object is read only.") | |
// super(type(self), self).__setattr__(key,value) | |
exports.ATNDeserializationOptions = ATNDeserializationOptions; | |
},{}],24:[function(require,module,exports){ | |
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. | |
* Use of this file is governed by the BSD 3-clause license that | |
* can be found in the LICENSE.txt file in the project root. | |
*/ | |
var Token = require('./../Token').Token; | |
var ATN = require('./ATN').ATN; | |
var ATNType = require('./ATNType').ATNType; | |
var ATNStates = require('./ATNState'); | |
var ATNState = ATNStates.ATNState; | |
var BasicState = ATNStates.BasicState; | |
var DecisionState = ATNStates.DecisionState; | |
var BlockStartState = ATNStates.BlockStartState; | |
var BlockEndState = ATNStates.BlockEndState; | |
var LoopEndState = ATNStates.LoopEndState; | |
var RuleStartState = ATNStates.RuleStartState; | |
var RuleStopState = ATNStates.RuleStopState; | |
var TokensStartState = ATNStates.TokensStartState; | |
var PlusLoopbackState = ATNStates.PlusLoopbackState; | |
var StarLoopbackState = ATNStates.StarLoopbackState; | |
var StarLoopEntryState = ATNStates.StarLoopEntryState; | |
var PlusBlockStartState = ATNStates.PlusBlockStartState; | |
var StarBlockStartState = ATNStates.StarBlockStartState; | |
var BasicBlockStartState = ATNStates.BasicBlockStartState; | |
var Transitions = require('./Transition'); | |
var Transition = Transitions.Transition; | |
var AtomTransition = Transitions.AtomTransition; | |
var SetTransition = Transitions.SetTransition; | |
var NotSetTransition = Transitions.NotSetTransition; | |
var RuleTransition = Transitions.RuleTransition; | |
var RangeTransition = Transitions.RangeTransition; | |
var ActionTransition = Transitions.ActionTransition; | |
var EpsilonTransition = Transitions.EpsilonTransition; | |
var WildcardTransition = Transitions.WildcardTransition; | |
var PredicateTransition = Transitions.PredicateTransition; | |
var PrecedencePredicateTransition = Transitions.PrecedencePredicateTransition; | |
var IntervalSet = require('./../IntervalSet').IntervalSet; | |
var Interval = require('./../IntervalSet').Interval; | |
var ATNDeserializationOptions = require('./ATNDeserializationOptions').ATNDeserializationOptions; | |
var LexerActions = require('./LexerAction'); | |
var LexerActionType = LexerActions.LexerActionType; | |
var LexerSkipAction = LexerActions.LexerSkipAction; | |
var LexerChannelAction = LexerActions.LexerChannelAction; | |
var LexerCustomAction = LexerActions.LexerCustomAction; | |
var LexerMoreAction = LexerActions.LexerMoreAction; | |
var LexerTypeAction = LexerActions.LexerTypeAction; | |
var LexerPushModeAction = LexerActions.LexerPushModeAction; | |
var LexerPopModeAction = LexerActions.LexerPopModeAction; | |
var LexerModeAction = LexerActions.LexerModeAction; | |
// This is the earliest supported serialized UUID. | |
// stick to serialized version for now, we don't need a UUID instance | |
var BASE_SERIALIZED_UUID = "AADB8D7E-AEEF-4415-AD2B-8204D6CF042E"; | |
// | |
// This UUID indicates the serialized ATN contains two sets of | |
// IntervalSets, where the second set's values are encoded as | |
// 32-bit integers to support the full Unicode SMP range up to U+10FFFF. | |
// | |
var ADDED_UNICODE_SMP = "59627784-3BE5-417A-B9EB-8131A7286089"; | |
// This list contains all of the currently supported UUIDs, ordered by when | |
// the feature first appeared in this branch. | |
var SUPPORTED_UUIDS = [ BASE_SERIALIZED_UUID, ADDED_UNICODE_SMP ]; | |
var SERIALIZED_VERSION = 3; | |
// This is the current serialized UUID. | |
var SERIALIZED_UUID = ADDED_UNICODE_SMP; | |
function initArray( length, value) { | |
var tmp = []; | |
tmp[length-1] = value; | |
return tmp.map(function(i) {return value;}); | |
} | |
function ATNDeserializer (options) { | |
if ( options=== undefined || options === null ) { | |
options = ATNDeserializationOptions.defaultOptions; | |
} | |
this.deserializationOptions = options; | |
this.stateFactories = null; | |
this.actionFactories = null; | |
return this; | |
} | |
// Determines if a particular serialized representation of an ATN supports | |
// a particular feature, identified by the {@link UUID} used for serializing | |
// the ATN at the time the feature was first introduced. | |
// | |
// @param feature The {@link UUID} marking the first time the feature was | |
// supported in the serialized ATN. | |
// @param actualUuid The {@link UUID} of the actual serialized ATN which is | |
// currently being deserialized. | |
// @return {@code true} if the {@code actualUuid} value represents a | |
// serialized ATN at or after the feature identified by {@code feature} was | |
// introduced; otherwise, {@code false}. | |
ATNDeserializer.prototype.isFeatureSupported = function(feature, actualUuid) { | |
var idx1 = SUPPORTED_UUIDS.indexOf(feature); | |
if (idx1<0) { | |
return false; | |
} | |
var idx2 = SUPPORTED_UUIDS.indexOf(actualUuid); | |
return idx2 >= idx1; | |
}; | |
ATNDeserializer.prototype.deserialize = function(data) { | |
this.reset(data); | |
this.checkVersion(); | |
this.checkUUID(); | |
var atn = this.readATN(); | |
this.readStates(atn); | |
this.readRules(atn); | |
this.readModes(atn); | |
var sets = []; | |
// First, deserialize sets with 16-bit arguments <= U+FFFF. | |
this.readSets(atn, sets, this.readInt.bind(this)); | |
// Next, if the ATN was serialized with the Unicode SMP feature, | |
// deserialize sets with 32-bit arguments <= U+10FFFF. | |
if (this.isFeatureSupported(ADDED_UNICODE_SMP, this.uuid)) { | |
this.readSets(atn, sets, this.readInt32.bind(this)); | |
} | |
this.readEdges(atn, sets); | |
this.readDecisions(atn); | |
this.readLexerActions(atn); | |
this.markPrecedenceDecisions(atn); | |
this.verifyATN(atn); | |
if (this.deserializationOptions.generateRuleBypassTransitions && atn.grammarType === ATNType.PARSER ) { | |
this.generateRuleBypassTransitions(atn); | |
// re-verify after modification | |
this.verifyATN(atn); | |
} | |
return atn; | |
}; | |
ATNDeserializer.prototype.reset = function(data) { | |
var adjust = function(c) { | |
var v = c.charCodeAt(0); | |
return v>1 ? v-2 : v + 65533; | |
}; | |
var temp = data.split("").map(adjust); | |
// don't adjust the first value since that's the version number | |
temp[0] = data.charCodeAt(0); | |
this.data = temp; | |
this.pos = 0; | |
}; | |
ATNDeserializer.prototype.checkVersion = function() { | |
var version = this.readInt(); | |
if ( version !== SERIALIZED_VERSION ) { | |
throw ("Could not deserialize ATN with version " + version + " (expected " + SERIALIZED_VERSION + ")."); | |
} | |
}; | |
ATNDeserializer.prototype.checkUUID = function() { | |
var uuid = this.readUUID(); | |
if (SUPPORTED_UUIDS.indexOf(uuid)<0) { | |
throw ("Could not deserialize ATN with UUID: " + uuid + | |
" (expected " + SERIALIZED_UUID + " or a legacy UUID).", uuid, SERIALIZED_UUID); | |
} | |
this.uuid = uuid; | |
}; | |
ATNDeserializer.prototype.readATN = function() { | |
var grammarType = this.readInt(); | |
var maxTokenType = this.readInt(); | |
return new ATN(grammarType, maxTokenType); | |
}; | |
ATNDeserializer.prototype.readStates = function(atn) { | |
var j, pair, stateNumber; | |
var loopBackStateNumbers = []; | |
var endStateNumbers = []; | |
var nstates = this.readInt(); | |
for(var i=0; i<nstates; i++) { | |
var stype = this.readInt(); | |
// ignore bad type of states | |
if (stype===ATNState.INVALID_TYPE) { | |
atn.addState(null); | |
continue; | |
} | |
var ruleIndex = this.readInt(); | |
if (ruleIndex === 0xFFFF) { | |
ruleIndex = -1; | |
} | |
var s = this.stateFactory(stype, ruleIndex); | |
if (stype === ATNState.LOOP_END) { // special case | |
var loopBackStateNumber = this.readInt(); | |
loopBackStateNumbers.push([s, loopBackStateNumber]); | |
} else if(s instanceof BlockStartState) { | |
var endStateNumber = this.readInt(); | |
endStateNumbers.push([s, endStateNumber]); | |
} | |
atn.addState(s); | |
} | |
// delay the assignment of loop back and end states until we know all the | |
// state instances have been initialized | |
for (j=0; j<loopBackStateNumbers.length; j++) { | |
pair = loopBackStateNumbers[j]; | |
pair[0].loopBackState = atn.states[pair[1]]; | |
} | |
for (j=0; j<endStateNumbers.length; j++) { | |
pair = endStateNumbers[j]; | |
pair[0].endState = atn.states[pair[1]]; | |
} | |
var numNonGreedyStates = this.readInt(); | |
for (j=0; j<numNonGreedyStates; j++) { | |
stateNumber = this.readInt(); | |
atn.states[stateNumber].nonGreedy = true; | |
} | |
var numPrecedenceStates = this.readInt(); | |
for (j=0; j<numPrecedenceStates; j++) { | |
stateNumber = this.readInt(); | |
atn.states[stateNumber].isPrecedenceRule = true; | |
} | |
}; | |
ATNDeserializer.prototype.readRules = function(atn) { | |
var i; | |
var nrules = this.readInt(); | |
if (atn.grammarType === ATNType.LEXER ) { | |
atn.ruleToTokenType = initArray(nrules, 0); | |
} | |
atn.ruleToStartState = initArray(nrules, 0); | |
for (i=0; i<nrules; i++) { | |
var s = this.readInt(); | |
var startState = atn.states[s]; | |
atn.ruleToStartState[i] = startState; | |
if ( atn.grammarType === ATNType.LEXER ) { | |
var tokenType = this.readInt(); | |
if (tokenType === 0xFFFF) { | |
tokenType = Token.EOF; | |
} | |
atn.ruleToTokenType[i] = tokenType; | |
} | |
} | |
atn.ruleToStopState = initArray(nrules, 0); | |
for (i=0; i<atn.states.length; i++) { | |
var state = atn.states[i]; | |
if (!(state instanceof RuleStopState)) { | |
continue; | |
} | |
atn.ruleToStopState[state.ruleIndex] = state; | |
atn.ruleToStartState[state.ruleIndex].stopState = state; | |
} | |
}; | |
ATNDeserializer.prototype.readModes = function(atn) { | |
var nmodes = this.readInt(); | |
for (var i=0; i<nmodes; i++) { | |
var s = this.readInt(); | |
atn.modeToStartState.push(atn.states[s]); | |
} | |
}; | |
ATNDeserializer.prototype.readSets = function(atn, sets, readUnicode) { | |
var m = this.readInt(); | |
for (var i=0; i<m; i++) { | |
var iset = new IntervalSet(); | |
sets.push(iset); | |
var n = this.readInt(); | |
var containsEof = this.readInt(); | |
if (containsEof!==0) { | |
iset.addOne(-1); | |
} | |
for (var j=0; j<n; j++) { | |
var i1 = readUnicode(); | |
var i2 = readUnicode(); | |
iset.addRange(i1, i2); | |
} | |
} | |
}; | |
ATNDeserializer.prototype.readEdges = function(atn, sets) { | |
var i, j, state, trans, target; | |
var nedges = this.readInt(); | |
for (i=0; i<nedges; i++) { | |
var src = this.readInt(); | |
var trg = this.readInt(); | |
var ttype = this.readInt(); | |
var arg1 = this.readInt(); | |
var arg2 = this.readInt(); | |
var arg3 = this.readInt(); | |
trans = this.edgeFactory(atn, ttype, src, trg, arg1, arg2, arg3, sets); | |
var srcState = atn.states[src]; | |
srcState.addTransition(trans); | |
} | |
// edges for rule stop states can be derived, so they aren't serialized | |
for (i=0; i<atn.states.length; i++) { | |
state = atn.states[i]; | |
for (j=0; j<state.transitions.length; j++) { | |
var t = state.transitions[j]; | |
if (!(t instanceof RuleTransition)) { | |
continue; | |
} | |
var outermostPrecedenceReturn = -1; | |
if (atn.ruleToStartState[t.target.ruleIndex].isPrecedenceRule) { | |
if (t.precedence === 0) { | |
outermostPrecedenceReturn = t.target.ruleIndex; | |
} | |
} | |
trans = new EpsilonTransition(t.followState, outermostPrecedenceReturn); | |
atn.ruleToStopState[t.target.ruleIndex].addTransition(trans); | |
} | |
} | |
for (i=0; i<atn.states.length; i++) { | |
state = atn.states[i]; | |
if (state instanceof BlockStartState) { | |
// we need to know the end state to set its start state | |
if (state.endState === null) { | |
throw ("IllegalState"); | |
} | |
// block end states can only be associated to a single block start | |
// state | |
if ( state.endState.startState !== null) { | |
throw ("IllegalState"); | |
} | |
state.endState.startState = state; | |
} | |
if (state instanceof PlusLoopbackState) { | |
for (j=0; j<state.transitions.length; j++) { | |
target = state.transitions[j].target; | |
if (target instanceof PlusBlockStartState) { | |
target.loopBackState = state; | |
} | |
} | |
} else if (state instanceof StarLoopbackState) { | |
for (j=0; j<state.transitions.length; j++) { | |
target = state.transitions[j].target; | |
if (target instanceof StarLoopEntryState) { | |
target.loopBackState = state; | |
} | |
} | |
} | |
} | |
}; | |
ATNDeserializer.prototype.readDecisions = function(atn) { | |
var ndecisions = this.readInt(); | |
for (var i=0; i<ndecisions; i++) { | |
var s = this.readInt(); | |
var decState = atn.states[s]; | |
atn.decisionToState.push(decState); | |
decState.decision = i; | |
} | |
}; | |
ATNDeserializer.prototype.readLexerActions = function(atn) { | |
if (atn.grammarType === ATNType.LEXER) { | |
var count = this.readInt(); | |
atn.lexerActions = initArray(count, null); | |
for (var i=0; i<count; i++) { | |
var actionType = this.readInt(); | |
var data1 = this.readInt(); | |
if (data1 === 0xFFFF) { | |
data1 = -1; | |
} | |
var data2 = this.readInt(); | |
if (data2 === 0xFFFF) { | |
data2 = -1; | |
} | |
var lexerAction = this.lexerActionFactory(actionType, data1, data2); | |
atn.lexerActions[i] = lexerAction; | |
} | |
} | |
}; | |
ATNDeserializer.prototype.generateRuleBypassTransitions = function(atn) { | |
var i; | |
var count = atn.ruleToStartState.length; | |
for(i=0; i<count; i++) { | |
atn.ruleToTokenType[i] = atn.maxTokenType + i + 1; | |
} | |
for(i=0; i<count; i++) { | |
this.generateRuleBypassTransition(atn, i); | |
} | |
}; | |
ATNDeserializer.prototype.generateRuleBypassTransition = function(atn, idx) { | |
var i, state; | |
var bypassStart = new BasicBlockStartState(); | |
bypassStart.ruleIndex = idx; | |
atn.addState(bypassStart); | |
var bypassStop = new BlockEndState(); | |
bypassStop.ruleIndex = idx; | |
atn.addState(bypassStop); | |
bypassStart.endState = bypassStop; | |
atn.defineDecisionState(bypassStart); | |
bypassStop.startState = bypassStart; | |
var excludeTransition = null; | |
var endState = null; | |
if (atn.ruleToStartState[idx].isPrecedenceRule) { | |
// wrap from the beginning of the rule to the StarLoopEntryState | |
endState = null; | |
for(i=0; i<atn.states.length; i++) { | |
state = atn.states[i]; | |
if (this.stateIsEndStateFor(state, idx)) { | |
endState = state; | |
excludeTransition = state.loopBackState.transitions[0]; | |
break; | |
} | |
} | |
if (excludeTransition === null) { | |
throw ("Couldn't identify final state of the precedence rule prefix section."); | |
} | |
} else { | |
endState = atn.ruleToStopState[idx]; | |
} | |
// all non-excluded transitions that currently target end state need to | |
// target blockEnd instead | |
for(i=0; i<atn.states.length; i++) { | |
state = atn.states[i]; | |
for(var j=0; j<state.transitions.length; j++) { | |
var transition = state.transitions[j]; | |
if (transition === excludeTransition) { | |
continue; | |
} | |
if (transition.target === endState) { | |
transition.target = bypassStop; | |
} | |
} | |
} | |
// all transitions leaving the rule start state need to leave blockStart | |
// instead | |
var ruleToStartState = atn.ruleToStartState[idx]; | |
var count = ruleToStartState.transitions.length; | |
while ( count > 0) { | |
bypassStart.addTransition(ruleToStartState.transitions[count-1]); | |
ruleToStartState.transitions = ruleToStartState.transitions.slice(-1); | |
} | |
// link the new states | |
atn.ruleToStartState[idx].addTransition(new EpsilonTransition(bypassStart)); | |
bypassStop.addTransition(new EpsilonTransition(endState)); | |
var matchState = new BasicState(); | |
atn.addState(matchState); | |
matchState.addTransition(new AtomTransition(bypassStop, atn.ruleToTokenType[idx])); | |
bypassStart.addTransition(new EpsilonTransition(matchState)); | |
}; | |
ATNDeserializer.prototype.stateIsEndStateFor = function(state, idx) { | |
if ( state.ruleIndex !== idx) { | |
return null; | |
} | |
if (!( state instanceof StarLoopEntryState)) { | |
return null; | |
} | |
var maybeLoopEndState = state.transitions[state.transitions.length - 1].target; | |
if (!( maybeLoopEndState instanceof LoopEndState)) { | |
return null; | |
} | |
if (maybeLoopEndState.epsilonOnlyTransitions && | |
(maybeLoopEndState.transitions[0].target instanceof RuleStopState)) { | |
return state; | |
} else { | |
return null; | |
} | |
}; | |
// | |
// Analyze the {@link StarLoopEntryState} states in the specified ATN to set | |
// the {@link StarLoopEntryState//isPrecedenceDecision} field to the | |
// correct value. | |
// | |
// @param atn The ATN. | |
// | |
ATNDeserializer.prototype.markPrecedenceDecisions = function(atn) { | |
for(var i=0; i<atn.states.length; i++) { | |
var state = atn.states[i]; | |
if (!( state instanceof StarLoopEntryState)) { | |
continue; | |
} | |
// We analyze the ATN to determine if this ATN decision state is the | |
// decision for the closure block that determines whether a | |
// precedence rule should continue or complete. | |
// | |
if ( atn.ruleToStartState[state.ruleIndex].isPrecedenceRule) { | |
var maybeLoopEndState = state.transitions[state.transitions.length - 1].target; | |
if (maybeLoopEndState instanceof LoopEndState) { | |
if ( maybeLoopEndState.epsilonOnlyTransitions && | |
(maybeLoopEndState.transitions[0].target instanceof RuleStopState)) { | |
state.isPrecedenceDecision = true; | |
} | |
} | |
} | |
} | |
}; | |
ATNDeserializer.prototype.verifyATN = function(atn) { | |
if (!this.deserializationOptions.verifyATN) { | |
return; | |
} | |
// verify assumptions | |
for(var i=0; i<atn.states.length; i++) { | |
var state = atn.states[i]; | |
if (state === null) { | |
continue; | |
} | |
this.checkCondition(state.epsilonOnlyTransitions || state.transitions.length <= 1); | |
if (state instanceof PlusBlockStartState) { | |
this.checkCondition(state.loopBackState !== null); | |
} else if (state instanceof StarLoopEntryState) { | |
this.checkCondition(state.loopBackState !== null); | |
this.checkCondition(state.transitions.length === 2); | |
if (state.transitions[0].target instanceof StarBlockStartState) { | |
this.checkCondition(state.transitions[1].target instanceof LoopEndState); | |
this.checkCondition(!state.nonGreedy); | |
} else if (state.transitions[0].target instanceof LoopEndState) { | |
this.checkCondition(state.transitions[1].target instanceof StarBlockStartState); | |
this.checkCondition(state.nonGreedy); | |
} else { | |
throw("IllegalState"); | |
} | |
} else if (state instanceof StarLoopbackState) { | |
this.checkCondition(state.transitions.length === 1); | |
this.checkCondition(state.transitions[0].target instanceof StarLoopEntryState); | |
} else if (state instanceof LoopEndState) { | |
this.checkCondition(state.loopBackState !== null); | |
} else if (state instanceof RuleStartState) { | |
this.checkCondition(state.stopState !== null); | |
} else if (state instanceof BlockStartState) { | |
this.checkCondition(state.endState !== null); | |
} else if (state instanceof BlockEndState) { | |
this.checkCondition(state.startState !== null); | |
} else if (state instanceof DecisionState) { | |
this.checkCondition(state.transitions.length <= 1 || state.decision >= 0); | |
} else { | |
this.checkCondition(state.transitions.length <= 1 || (state instanceof RuleStopState)); | |
} | |
} | |
}; | |
ATNDeserializer.prototype.checkCondition = function(condition, message) { | |
if (!condition) { | |
if (message === undefined || message===null) { | |
message = "IllegalState"; | |
} | |
throw (message); | |
} | |
}; | |
ATNDeserializer.prototype.readInt = function() { | |
return this.data[this.pos++]; | |
}; | |
ATNDeserializer.prototype.readInt32 = function() { | |
var low = this.readInt(); | |
var high = this.readInt(); | |
return low | (high << 16); | |
}; | |
ATNDeserializer.prototype.readLong = function() { | |
var low = this.readInt32(); | |
var high = this.readInt32(); | |
return (low & 0x00000000FFFFFFFF) | (high << 32); | |
}; | |
function createByteToHex() { | |
var bth = []; | |
for (var i = 0; i < 256; i++) { | |
bth[i] = (i + 0x100).toString(16).substr(1).toUpperCase(); | |
} | |
return bth; | |
} | |
var byteToHex = createByteToHex(); | |
ATNDeserializer.prototype.readUUID = function() { | |
var bb = []; | |
for(var i=7;i>=0;i--) { | |
var int = this.readInt(); | |
/* jshint bitwise: false */ | |
bb[(2*i)+1] = int & 0xFF; | |
bb[2*i] = (int >> 8) & 0xFF; | |
} | |
return byteToHex[bb[0]] + byteToHex[bb[1]] + | |
byteToHex[bb[2]] + byteToHex[bb[3]] + '-' + | |
byteToHex[bb[4]] + byteToHex[bb[5]] + '-' + | |
byteToHex[bb[6]] + byteToHex[bb[7]] + '-' + | |
byteToHex[bb[8]] + byteToHex[bb[9]] + '-' + | |
byteToHex[bb[10]] + byteToHex[bb[11]] + | |
byteToHex[bb[12]] + byteToHex[bb[13]] + | |
byteToHex[bb[14]] + byteToHex[bb[15]]; | |
}; | |
ATNDeserializer.prototype.edgeFactory = function(atn, type, src, trg, arg1, arg2, arg3, sets) { | |
var target = atn.states[trg]; | |
switch(type) { | |
case Transition.EPSILON: | |
return new EpsilonTransition(target); | |
case Transition.RANGE: | |
return arg3 !== 0 ? new RangeTransition(target, Token.EOF, arg2) : new RangeTransition(target, arg1, arg2); | |
case Transition.RULE: | |
return new RuleTransition(atn.states[arg1], arg2, arg3, target); | |
case Transition.PREDICATE: | |
return new PredicateTransition(target, arg1, arg2, arg3 !== 0); | |
case Transition.PRECEDENCE: | |
return new PrecedencePredicateTransition(target, arg1); | |
case Transition.ATOM: | |
return arg3 !== 0 ? new AtomTransition(target, Token.EOF) : new AtomTransition(target, arg1); | |
case Transition.ACTION: | |
return new ActionTransition(target, arg1, arg2, arg3 !== 0); | |
case Transition.SET: | |
return new SetTransition(target, sets[arg1]); | |
case Transition.NOT_SET: | |
return new NotSetTransition(target, sets[arg1]); | |
case Transition.WILDCARD: | |
return new WildcardTransition(target); | |
default: | |
throw "The specified transition type: " + type + " is not valid."; | |
} | |
}; | |
ATNDeserializer.prototype.stateFactory = function(type, ruleIndex) { | |
if (this.stateFactories === null) { | |
var sf = []; | |
sf[ATNState.INVALID_TYPE] = null; | |
sf[ATNState.BASIC] = function() { return new BasicState(); }; | |
sf[ATNState.RULE_START] = function() { return new RuleStartState(); }; | |
sf[ATNState.BLOCK_START] = function() { return new BasicBlockStartState(); }; | |
sf[ATNState.PLUS_BLOCK_START] = function() { return new PlusBlockStartState(); }; | |
sf[ATNState.STAR_BLOCK_START] = function() { return new StarBlockStartState(); }; | |
sf[ATNState.TOKEN_START] = function() { return new TokensStartState(); }; | |
sf[ATNState.RULE_STOP] = function() { return new RuleStopState(); }; | |
sf[ATNState.BLOCK_END] = function() { return new BlockEndState(); }; | |
sf[ATNState.STAR_LOOP_BACK] = function() { return new StarLoopbackState(); }; | |
sf[ATNState.STAR_LOOP_ENTRY] = function() { return new StarLoopEntryState(); }; | |
sf[ATNState.PLUS_LOOP_BACK] = function() { return new PlusLoopbackState(); }; | |
sf[ATNState.LOOP_END] = function() { return new LoopEndState(); }; | |
this.stateFactories = sf; | |
} | |
if (type>this.stateFactories.length || this.stateFactories[type] === null) { | |
throw("The specified state type " + type + " is not valid."); | |
} else { | |
var s = this.stateFactories[type](); | |
if (s!==null) { | |
s.ruleIndex = ruleIndex; | |
return s; | |
} | |
} | |
}; | |
ATNDeserializer.prototype.lexerActionFactory = function(type, data1, data2) { | |
if (this.actionFactories === null) { | |
var af = []; | |
af[LexerActionType.CHANNEL] = function(data1, data2) { return new LexerChannelAction(data1); }; | |
af[LexerActionType.CUSTOM] = function(data1, data2) { return new LexerCustomAction(data1, data2); }; | |
af[LexerActionType.MODE] = function(data1, data2) { return new LexerModeAction(data1); }; | |
af[LexerActionType.MORE] = function(data1, data2) { return LexerMoreAction.INSTANCE; }; | |
af[LexerActionType.POP_MODE] = function(data1, data2) { return LexerPopModeAction.INSTANCE; }; | |
af[LexerActionType.PUSH_MODE] = function(data1, data2) { ret |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment