org.verdictdb.parser.VerdictSQLParser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of verdictdb-core Show documentation
Show all versions of verdictdb-core Show documentation
Platform-independent, interactive-speed data analytics system
// Generated from org/verdictdb/parser/VerdictSQLParser.g4 by ANTLR 4.5.3
package org.verdictdb.parser;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.misc.*;
import org.antlr.v4.runtime.tree.*;
import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class VerdictSQLParser extends Parser {
static { RuntimeMetaData.checkVersion("4.5.3", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
SIZE=1, COLUMNS=2, SHOW=3, UNIFORM=4, FASTCONVERGE=5, SCRAMBLE=6, SCRAMBLES=7,
GET=8, ADD=9, ALL=10, ALTER=11, AND=12, ANY=13, AS=14, ASC=15, ASCII=16,
AUTHORIZATION=17, BACKUP=18, BEGIN=19, BETWEEN=20, BREAK=21, BROWSE=22,
BULK=23, BY=24, CASCADE=25, CASE=26, CHANGETABLE=27, CHANGES=28, CHECK=29,
CHECKPOINT=30, CLOSE=31, CLUSTERED=32, COALESCE=33, COLLATE=34, COLUMN=35,
COMMIT=36, COMPUTE=37, CONSTRAINT=38, CONTAINS=39, CONTAINSTABLE=40, CONTINUE=41,
CONV=42, CONVERT=43, CREATE=44, CROSS=45, CURRENT=46, CURRENT_DATE=47,
CURRENT_TIME=48, CURRENT_TIMESTAMP=49, CURRENT_USER=50, CURSOR=51, DATABASE=52,
DATABASES=53, DBCC=54, DEALLOCATE=55, DECLARE=56, DELETE=57, DENY=58,
DESC=59, DESCRIBE=60, DISK=61, DISTINCT=62, DISTRIBUTED=63, DOUBLE=64,
DROP=65, DUMP=66, ELSE=67, END=68, ERRLVL=69, ESCAPE=70, EXCEPT=71, EXEC=72,
EXECUTE=73, EXISTS=74, EXIT=75, EXTERNAL=76, FALSE=77, FETCH=78, FILE=79,
FILLFACTOR=80, FOR=81, FORCESEEK=82, FOREIGN=83, FREETEXT=84, FREETEXTTABLE=85,
FROM=86, FULL=87, FUNCTION=88, GOTO=89, GRANT=90, GROUP=91, HASH=92, HAVING=93,
IDENTITY=94, IDENTITYCOL=95, IDENTITY_INSERT=96, IF=97, IN=98, INDEX=99,
INNER=100, INSERT=101, INT4LARGER=102, INTERSECT=103, INTO=104, IS=105,
JOIN=106, KEY=107, KILL=108, LEFT=109, LIKE=110, LIMIT=111, LINENO=112,
LOAD=113, MERGE=114, MID=115, NATIONAL=116, NOCHECK=117, NONCLUSTERED=118,
NOT=119, NULL=120, NULLIF=121, NULLS=122, OF=123, OFF=124, OFFSETS=125,
ON=126, OPEN=127, OPENDATASOURCE=128, OPENQUERY=129, OPENROWSET=130, OPENXML=131,
OPTION=132, OR=133, ORDER=134, OUTER=135, OVER=136, PERCENT=137, PIVOT=138,
PLAN=139, PRECISION=140, PRIMARY=141, PRINT=142, PROC=143, PROCEDURE=144,
RAISERROR=145, RAWTOHEX=146, READ=147, READTEXT=148, RECONFIGURE=149,
REFERENCES=150, REPLICATION=151, RESTORE=152, RESTRICT=153, RETURN=154,
REVERT=155, REVOKE=156, RIGHT=157, RLIKE=158, ROLLBACK=159, ROWCOUNT=160,
ROWGUIDCOL=161, RPAD=162, RULE=163, SAVE=164, SCHEMA=165, SCHEMAS=166,
SECURITYAUDIT=167, SELECT=168, SEMANTICKEYPHRASETABLE=169, SEMANTICSIMILARITYDETAILSTABLE=170,
SEMANTICSIMILARITYTABLE=171, SEMI=172, SESSION_USER=173, SET=174, SETUSER=175,
SHUTDOWN=176, SOME=177, SUBSTR=178, SUBSTRING=179, STATISTICS=180, SYSTEM_USER=181,
TABLE=182, TABLES=183, TABLESAMPLE=184, TEXTSIZE=185, THEN=186, TO=187,
TOP=188, TRAN=189, TRANSACTION=190, TRIGGER=191, TRUE=192, TRUNCATE=193,
TRY_CONVERT=194, TSEQUAL=195, UNION=196, UNIQUE=197, UNPIVOT=198, UPDATE=199,
UPDATETEXT=200, USE=201, USER=202, VALUES=203, VARYING=204, VIEW=205,
WAITFOR=206, WHEN=207, WHERE=208, WHILE=209, WITH=210, WITHIN=211, WITHOUT=212,
WRITETEXT=213, ZONE=214, ABBREV=215, ABSOLUTE=216, ABS=217, ACOS=218,
ADDDATE=219, ADDTIME=220, AES_DECRYPT=221, AES_ENCRYPT=222, AGE=223, APPLY=224,
AREA=225, ARRAY_AGG=226, ARRAY_APPEND=227, ARRAY_CAT=228, ARRAY_DIMS=229,
ARRAY_LENGTH=230, ARRAY_LOWER=231, ARRAY_NDIMS=232, ARRAY_POSITION=233,
ARRAY_POSITIONS=234, ARRAY_PREPEND=235, ARRAY_REMOVE=236, ARRAY_REPLACE=237,
ARRAY_TO_JSON=238, ARRAY_TO_STRING=239, ARRAY_TO_TSVECTOR=240, ARRAY_UPPER=241,
ASIN=242, ATAN=243, ATAN2=244, AUTO=245, AVG=246, BASE64=247, BIGINT=248,
BIN=249, BINARY_CHECKSUM=250, BIT=251, BIT_LENGTH=252, BOOL_AND=253, BOOL_OR=254,
BOX=255, BOUND_BOX=256, BROADCAST=257, BTRIM=258, BROUND=259, CALLER=260,
CARDINALITY=261, CAST=262, CATCH=263, CBRT=264, CEIL=265, CEILING=266,
CENTER=267, CHAR=268, CHAR_LENGTH=269, CHARACTER_LENGTH=270, CHECKSUM=271,
CHECKSUM_AGG=272, CHR=273, CIRCLE=274, CLOCK_TIMESTAMP=275, COMMITTED=276,
CONCAT=277, CONCAT_WS=278, CONFIG=279, CONVERT_FROM=280, CONVERT_TO=281,
COOKIE=282, COS=283, CORR=284, COVAR_POP=285, COVAR_SAMP=286, COT=287,
COUNT=288, COUNT_BIG=289, CRC32=290, CURDATE=291, CURRVAL=292, CURTIME=293,
DATE=294, DATEADD=295, DATE_ADD=296, DATE_FORMAT=297, DATE_PART=298, DATE_SUB=299,
DATE_TRUNC=300, DATEDIFF=301, DATENAME=302, DATEPART=303, DATETIME=304,
DATETIME2=305, DATETIMEOFFSET=306, DAY=307, DAYNAME=308, DAYOFMONTH=309,
DAYOFWEEK=310, DAYOFYEAR=311, DAYS=312, DECODE=313, DEGREES=314, DELAY=315,
DELETED=316, DENSE_RANK=317, DIAMETER=318, DISABLE=319, DIV=320, DYNAMIC=321,
NATURAL_CONSTANT=322, ENCODE=323, ENCRYPTION=324, ENUM_FIRST=325, ENUM_LAST=326,
ENUM_RANGE=327, ESCAPED_BY=328, EXACT=329, EXP=330, EXPLODE=331, EXTRACT=332,
EVERY=333, FACTORIAL=334, FAMILY=335, FAST=336, FAST_FORWARD=337, FIELD=338,
FIELDS_SEPARATED_BY=339, FIND_IN_SET=340, FIRST=341, FLOOR=342, FOLLOWING=343,
FORMAT=344, FORMAT_NUMBER=345, FORWARD_ONLY=346, FNV_HASH=347, FROM_DAYS=348,
FROM_UNIXTIME=349, FULLSCAN=350, GEOGRAPHY=351, GEOMETRY=352, GET_BIT=353,
GET_BYTE=354, GET_CURRENT_TS_CONFIG=355, GET_JSON_OBJECT=356, GLOBAL=357,
GO=358, GREATEST=359, GROUPING=360, GROUPING_ID=361, HEIGHT=362, HEX=363,
HIERARCHYID=364, HOST=365, HOSTMASK=366, HOUR=367, IFNULL=368, IMAGE=369,
INT=370, INITCAP=371, INSENSITIVE=372, INSERTED=373, INSTR=374, INTERVAL=375,
IN_FILE=376, INET_SAME_FAMILY=377, INET_MERGE=378, ISCLOSED=379, ISEMPTY=380,
ISFINITE=381, ISNULL=382, ISOLATION=383, ISOPEN=384, JSON_AGG=385, JSON_ARRAY_LENGTH=386,
JSON_ARRAY_ELEMENTS=387, JSON_ARRAY_ELEMENTS_TEXT=388, JSON_BUILD_ARRAY=389,
JSON_BUILD_OBJECT=390, JSON_EACH=391, JSON_EACH_TEXT=392, JSON_EXTRACT_PATH=393,
JSON_EXTRACT_PATH_TEXT=394, JSON_OBJECT=395, JSON_OBJECT_KEYS=396, JSON_OBJECT_AGG=397,
JSON_POPULATE_RECORD=398, JSON_POPULATE_RECORDSET=399, JSON_STRIP_NULLS=400,
JSON_TO_RECORD=401, JSON_TO_RECORDSET=402, JSON_TYPEOF=403, JSONB_AGG=404,
JSONB_OBJECT_AGG=405, JSONB_SET=406, JSONB_INSERT=407, JSONB_PRETTY=408,
JUSTIFY_DAYS=409, JUSTIFY_HOURS=410, JUSTIFY_INTERVALS=411, KEEPFIXED=412,
KEYSET=413, LAST=414, LASTVAL=415, LAST_DAY=416, LAST_INSERT_ID=417, LATERAL=418,
LCASE=419, LEAST=420, LENGTH=421, LEVEL=422, LINE=423, LN=424, LOCAL=425,
LOCALTIME=426, LOCALTIMESTAMP=427, LOCATE=428, LOCATION=429, LOCK_ESCALATION=430,
LOG=431, LOG2=432, LOG10=433, LOGIN=434, LOOP=435, LOWER=436, LOWER_INC=437,
LOWER_INF=438, LPAD=439, LTRIM=440, LSEG=441, MACADDR8_SET7BIT=442, MAKEDATE=443,
MAKETIME=444, MAKE_DATE=445, MAKE_TIME=446, MAKE_TIMESTAMP=447, MAKE_TIMESTAMPTZ=448,
MARK=449, MASKLEN=450, MAX=451, MD5=452, METHOD=453, MICROSECOND=454,
MIN=455, MIN_ACTIVE_ROWVERSION=456, MINUTE=457, MOD=458, MODIFY=459, MONEY=460,
MONTH=461, MONTHNAME=462, MONTHS=463, NEGATIVE=464, NEXT=465, NETMASK=466,
NETWORK=467, NAME=468, NCHAR=469, NDV=470, NEXTVAL=471, NOCOUNT=472, NOEXPAND=473,
NORECOMPUTE=474, NOW=475, NPOINTS=476, NTEXT=477, NTILE=478, NUMBER=479,
NUMNODE=480, NUMERIC=481, NVARCHAR=482, NVL=483, OCTET_LENGTH=484, OFFSET=485,
ONLY=486, OPTIMISTIC=487, OPTIMIZE=488, OUT=489, OUTPUT=490, OVERLAY=491,
OWNER=492, PARTITION=493, PATH=494, PCLOSE=495, PERCENTILE=496, PERIOD_ADD=497,
PERIOD_DIFF=498, PG_CLIENT_ENCODING=499, PLAINTO_TSQUERY=500, PHRASETO_TSQUERY=501,
PI=502, PLACING=503, PMOD=504, POINT=505, POLYGON=506, POPEN=507, POSITION=508,
POSITIVE=509, POW=510, POWER=511, PRECEDING=512, PRIOR=513, QUARTER=514,
QUERYTREE=515, QUOTED_BY=516, QUOTE_IDENT=517, QUOTE_LITERAL=518, QUOTE_NULLABLE=519,
RADIANS=520, RADIUS=521, RAND=522, RANDOM=523, RANGE=524, RANGE_MERGE=525,
RANK=526, READONLY=527, READ_ONLY=528, RECOMMENDED=529, RECOMPILE=530,
REFRESH=531, REGR_AVGX=532, REGR_AVGY=533, REGR_COUNT=534, REGR_INTERCEPT=535,
REGR_R2=536, REGR_SLOPE=537, REGR_SXX=538, REGR_SXY=539, REGR_SYY=540,
RELATIVE=541, REGEXP_MATCHES=542, REGEXP_REPLACE=543, REGEXP_SPLIT_TO_ARRAY=544,
REGEXP_SPLIT_TO_TABLE=545, REMOTE=546, REPEAT=547, REPEATABLE=548, REPLACE=549,
REVERSE=550, ROLLUP=551, ROOT=552, ROUND=553, ROW=554, ROW_TO_JSON=555,
ROWGUID=556, ROWS=557, ROW_NUMBER=558, RTRIM=559, SAMPLE=560, SCALE=561,
SCHEMABINDING=562, SCROLL=563, SCROLL_LOCKS=564, SECOND=565, SEC_TO_TIME=566,
SELF=567, SERIALIZABLE=568, SETSEED=569, SETWEIGHT=570, SETVAL=571, SET_BIT=572,
SET_BYTE=573, SET_MASKLEN=574, SHA1=575, SHA2=576, SHIFTLEFT=577, SHIFTRIGHT=578,
SHIFTRIGHTUNSIGNED=579, SIGN=580, SIN=581, SMALLDATETIME=582, SMALLINT=583,
SMALLMONEY=584, SNAPSHOT=585, SPACE_FUNCTION=586, SPATIAL_WINDOW_MAX_CELLS=587,
SPLIT=588, SPLIT_PART=589, SQL_VARIANT=590, STATEMENT_TIMESTAMP=591, STATIC=592,
STATS_STREAM=593, STDEV=594, STDDEV=595, STDEVP=596, STDDEV_SAMP=597,
STORED_AS_PARQUET=598, STRCMP=599, STRING_AGG=600, STRING_TO_ARRAY=601,
STRPOS=602, STR_TO_DATE=603, SUBDATE=604, SUBSTRING_INDEX=605, SUM=606,
SQRT=607, STDDEV_POP=608, STRIP=609, STRTOL=610, SYSDATE=611, TAN=612,
TEXT=613, THROW=614, TIES=615, TIME=616, TIMEDIFF=617, TIMEOFDAY=618,
TIMESTAMP=619, TIME_FORMAT=620, TIME_TO_SEC=621, TINYINT=622, TO_ASCII=623,
TO_CHAR=624, TO_DATE=625, TO_DAYS=626, TO_HEX=627, TO_JSON=628, TO_JSONB=629,
TO_NUMBER=630, TO_TIMESTAMP=631, TO_TSQUERY=632, TO_TSVECTOR=633, TRANSACTION_TIMESTAMP=634,
TRANSLATE=635, TRIM=636, TRUNC=637, TRY=638, TS_DELETE=639, TS_FILTER=640,
TS_HEADLINE=641, TS_RANK=642, TS_RANK_CD=643, TS_REWRITE=644, TSQUERY_PHRASE=645,
TSVECTOR_TO_ARRAY=646, TSVECTOR_UPDATE_TRIGGER=647, TSVECTOR_UPDATE_TRIGGER_COLUMN=648,
TYPE=649, TYPE_WARNING=650, UCASE=651, UNBOUNDED=652, UNCOMMITTED=653,
UNHEX=654, UNIQUEIDENTIFIER=655, UNIVERSE=656, UNIX_TIMESTAMP=657, UNKNOWN=658,
UNNEST=659, UPPER=660, UPPER_INC=661, UPPER_INF=662, USING=663, VAR=664,
VARBINARY=665, VARCHAR=666, VARIANCE=667, VAR_POP=668, VAR_SAMP=669, VARP=670,
VERSION=671, VIEW_METADATA=672, WEEKOFYEAR=673, WEEK=674, WEEKDAY=675,
WIDTH=676, WIDTH_BUCKET=677, WORK=678, XML=679, XMLAGG=680, XMLCOMMENT=681,
XMLCONCAT=682, XMLELEMENT=683, XMLFOREST=684, XMLNAMESPACES=685, XMLPI=686,
XMLROOT=687, XML_ISWELL_FORMAT=688, XPATH=689, XPATH_EXISTS=690, YEAR=691,
YEARS=692, YEARWEEK=693, DOLLAR_ACTION=694, SPACE=695, COMMENT=696, LINE_COMMENT=697,
DOUBLE_QUOTE_ID=698, BACKTICK_ID=699, SQUARE_BRACKET_ID=700, LOCAL_ID=701,
DECIMAL=702, ID=703, STRING=704, BINARY=705, FLOAT=706, REAL=707, EQUAL=708,
GREATER=709, LESS=710, EXCLAMATION=711, PLUS_ASSIGN=712, MINUS_ASSIGN=713,
MULT_ASSIGN=714, DIV_ASSIGN=715, MOD_ASSIGN=716, AND_ASSIGN=717, XOR_ASSIGN=718,
OR_ASSIGN=719, DOT=720, UNDERLINE=721, AT=722, SHARP=723, DOLLAR=724,
LR_BRACKET=725, RR_BRACKET=726, COMMA=727, SEMICOLON=728, COLON=729, STAR=730,
DIVIDE=731, MODULE=732, PLUS=733, MINUS=734, BIT_NOT=735, BIT_OR=736,
BIT_AND=737, BIT_XOR=738, BIT_CONCAT=739, BIT_LSHIFT=740, BIT_RSHIFT=741;
public static final int
RULE_verdict_statement = 0, RULE_create_scramble_statement = 1, RULE_scrambling_method_name = 2,
RULE_on_columns = 3, RULE_delete_scramble_statement = 4, RULE_show_scrambles_statement = 5,
RULE_config_statement = 6, RULE_other_statement = 7, RULE_create_database = 8,
RULE_drop_database = 9, RULE_config_set_statement = 10, RULE_config_get_statement = 11,
RULE_config_key = 12, RULE_config_value = 13, RULE_tsql_file = 14, RULE_sql_clause = 15,
RULE_ddl_clause = 16, RULE_select_statement = 17, RULE_output_clause = 18,
RULE_output_dml_list_elem = 19, RULE_output_column_name = 20, RULE_create_table = 21,
RULE_create_table_as_select = 22, RULE_create_view = 23, RULE_alter_table = 24,
RULE_alter_database = 25, RULE_drop_table = 26, RULE_drop_view = 27, RULE_set_statment = 28,
RULE_use_statement = 29, RULE_show_tables_statement = 30, RULE_show_databases_statement = 31,
RULE_describe_table_statement = 32, RULE_refresh_statement = 33, RULE_show_config_statement = 34,
RULE_table_type_definition = 35, RULE_column_def_table_constraint = 36,
RULE_column_definition = 37, RULE_column_constraint = 38, RULE_table_constraint = 39,
RULE_set_special = 40, RULE_expression = 41, RULE_interval = 42, RULE_date = 43,
RULE_constant_expression = 44, RULE_subquery = 45, RULE_dml_table_source = 46,
RULE_with_expression = 47, RULE_common_table_expression = 48, RULE_update_elem = 49,
RULE_search_condition_list = 50, RULE_search_condition = 51, RULE_search_condition_or = 52,
RULE_search_condition_not = 53, RULE_predicate = 54, RULE_query_expression = 55,
RULE_union = 56, RULE_query_specification = 57, RULE_top_clause = 58,
RULE_limit_clause = 59, RULE_order_by_clause = 60, RULE_for_clause = 61,
RULE_xml_common_directives = 62, RULE_order_by_expression = 63, RULE_group_by_item = 64,
RULE_option_clause = 65, RULE_option = 66, RULE_optimize_for_arg = 67,
RULE_select_list = 68, RULE_select_list_elem = 69, RULE_partition_by_clause = 70,
RULE_table_source = 71, RULE_table_source_item_joined = 72, RULE_table_source_item = 73,
RULE_change_table = 74, RULE_join_part = 75, RULE_table_name_with_hint = 76,
RULE_rowset_function = 77, RULE_bulk_option = 78, RULE_derived_table = 79,
RULE_function_call = 80, RULE_datepart = 81, RULE_as_table_alias = 82,
RULE_table_alias = 83, RULE_index_column_name = 84, RULE_index_value = 85,
RULE_column_alias_list = 86, RULE_column_alias = 87, RULE_table_value_constructor = 88,
RULE_expression_list = 89, RULE_case_expr = 90, RULE_ranking_windowed_function = 91,
RULE_expression_function = 92, RULE_extract_time_function = 93, RULE_extract_unit = 94,
RULE_time_unit = 95, RULE_overlay_string_function = 96, RULE_substring_string_function = 97,
RULE_nary_function = 98, RULE_ternary_function = 99, RULE_binary_function = 100,
RULE_unary_function = 101, RULE_timestamp_function = 102, RULE_dateadd_function = 103,
RULE_predicate_function = 104, RULE_noparam_function = 105, RULE_lateral_view_function = 106,
RULE_aggregate_windowed_function = 107, RULE_all_distinct_expression = 108,
RULE_cast_as_expression = 109, RULE_over_clause = 110, RULE_row_or_range_clause = 111,
RULE_window_frame_extent = 112, RULE_window_frame_bound = 113, RULE_window_frame_preceding = 114,
RULE_window_frame_following = 115, RULE_full_table_name = 116, RULE_table_name = 117,
RULE_view_name = 118, RULE_func_proc_name = 119, RULE_ddl_object = 120,
RULE_full_column_name = 121, RULE_column_name_list = 122, RULE_column_name = 123,
RULE_cursor_name = 124, RULE_on_off = 125, RULE_clustered = 126, RULE_null_notnull = 127,
RULE_true_orfalse = 128, RULE_scalar_function_name = 129, RULE_data_type = 130,
RULE_default_value = 131, RULE_constant = 132, RULE_number = 133, RULE_sign = 134,
RULE_id = 135, RULE_simple_id = 136, RULE_comparison_operator = 137, RULE_assignment_operator = 138;
public static final String[] ruleNames = {
"verdict_statement", "create_scramble_statement", "scrambling_method_name",
"on_columns", "delete_scramble_statement", "show_scrambles_statement",
"config_statement", "other_statement", "create_database", "drop_database",
"config_set_statement", "config_get_statement", "config_key", "config_value",
"tsql_file", "sql_clause", "ddl_clause", "select_statement", "output_clause",
"output_dml_list_elem", "output_column_name", "create_table", "create_table_as_select",
"create_view", "alter_table", "alter_database", "drop_table", "drop_view",
"set_statment", "use_statement", "show_tables_statement", "show_databases_statement",
"describe_table_statement", "refresh_statement", "show_config_statement",
"table_type_definition", "column_def_table_constraint", "column_definition",
"column_constraint", "table_constraint", "set_special", "expression",
"interval", "date", "constant_expression", "subquery", "dml_table_source",
"with_expression", "common_table_expression", "update_elem", "search_condition_list",
"search_condition", "search_condition_or", "search_condition_not", "predicate",
"query_expression", "union", "query_specification", "top_clause", "limit_clause",
"order_by_clause", "for_clause", "xml_common_directives", "order_by_expression",
"group_by_item", "option_clause", "option", "optimize_for_arg", "select_list",
"select_list_elem", "partition_by_clause", "table_source", "table_source_item_joined",
"table_source_item", "change_table", "join_part", "table_name_with_hint",
"rowset_function", "bulk_option", "derived_table", "function_call", "datepart",
"as_table_alias", "table_alias", "index_column_name", "index_value", "column_alias_list",
"column_alias", "table_value_constructor", "expression_list", "case_expr",
"ranking_windowed_function", "expression_function", "extract_time_function",
"extract_unit", "time_unit", "overlay_string_function", "substring_string_function",
"nary_function", "ternary_function", "binary_function", "unary_function",
"timestamp_function", "dateadd_function", "predicate_function", "noparam_function",
"lateral_view_function", "aggregate_windowed_function", "all_distinct_expression",
"cast_as_expression", "over_clause", "row_or_range_clause", "window_frame_extent",
"window_frame_bound", "window_frame_preceding", "window_frame_following",
"full_table_name", "table_name", "view_name", "func_proc_name", "ddl_object",
"full_column_name", "column_name_list", "column_name", "cursor_name",
"on_off", "clustered", "null_notnull", "true_orfalse", "scalar_function_name",
"data_type", "default_value", "constant", "number", "sign", "id", "simple_id",
"comparison_operator", "assignment_operator"
};
private static final String[] _LITERAL_NAMES = {
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
"'='", "'>'", "'<'", "'!'", "'+='", "'-='", "'*='", "'/='", "'%='", "'&='",
"'^='", "'|='", "'.'", "'_'", "'@'", "'#'", "'$'", "'('", "')'", "','",
"';'", "':'", "'*'", "'/'", "'%'", "'+'", "'-'", "'~'", "'|'", "'&'",
"'^'", "'||'", "'<<'", "'>>'"
};
private static final String[] _SYMBOLIC_NAMES = {
null, "SIZE", "COLUMNS", "SHOW", "UNIFORM", "FASTCONVERGE", "SCRAMBLE",
"SCRAMBLES", "GET", "ADD", "ALL", "ALTER", "AND", "ANY", "AS", "ASC",
"ASCII", "AUTHORIZATION", "BACKUP", "BEGIN", "BETWEEN", "BREAK", "BROWSE",
"BULK", "BY", "CASCADE", "CASE", "CHANGETABLE", "CHANGES", "CHECK", "CHECKPOINT",
"CLOSE", "CLUSTERED", "COALESCE", "COLLATE", "COLUMN", "COMMIT", "COMPUTE",
"CONSTRAINT", "CONTAINS", "CONTAINSTABLE", "CONTINUE", "CONV", "CONVERT",
"CREATE", "CROSS", "CURRENT", "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP",
"CURRENT_USER", "CURSOR", "DATABASE", "DATABASES", "DBCC", "DEALLOCATE",
"DECLARE", "DELETE", "DENY", "DESC", "DESCRIBE", "DISK", "DISTINCT", "DISTRIBUTED",
"DOUBLE", "DROP", "DUMP", "ELSE", "END", "ERRLVL", "ESCAPE", "EXCEPT",
"EXEC", "EXECUTE", "EXISTS", "EXIT", "EXTERNAL", "FALSE", "FETCH", "FILE",
"FILLFACTOR", "FOR", "FORCESEEK", "FOREIGN", "FREETEXT", "FREETEXTTABLE",
"FROM", "FULL", "FUNCTION", "GOTO", "GRANT", "GROUP", "HASH", "HAVING",
"IDENTITY", "IDENTITYCOL", "IDENTITY_INSERT", "IF", "IN", "INDEX", "INNER",
"INSERT", "INT4LARGER", "INTERSECT", "INTO", "IS", "JOIN", "KEY", "KILL",
"LEFT", "LIKE", "LIMIT", "LINENO", "LOAD", "MERGE", "MID", "NATIONAL",
"NOCHECK", "NONCLUSTERED", "NOT", "NULL", "NULLIF", "NULLS", "OF", "OFF",
"OFFSETS", "ON", "OPEN", "OPENDATASOURCE", "OPENQUERY", "OPENROWSET",
"OPENXML", "OPTION", "OR", "ORDER", "OUTER", "OVER", "PERCENT", "PIVOT",
"PLAN", "PRECISION", "PRIMARY", "PRINT", "PROC", "PROCEDURE", "RAISERROR",
"RAWTOHEX", "READ", "READTEXT", "RECONFIGURE", "REFERENCES", "REPLICATION",
"RESTORE", "RESTRICT", "RETURN", "REVERT", "REVOKE", "RIGHT", "RLIKE",
"ROLLBACK", "ROWCOUNT", "ROWGUIDCOL", "RPAD", "RULE", "SAVE", "SCHEMA",
"SCHEMAS", "SECURITYAUDIT", "SELECT", "SEMANTICKEYPHRASETABLE", "SEMANTICSIMILARITYDETAILSTABLE",
"SEMANTICSIMILARITYTABLE", "SEMI", "SESSION_USER", "SET", "SETUSER", "SHUTDOWN",
"SOME", "SUBSTR", "SUBSTRING", "STATISTICS", "SYSTEM_USER", "TABLE", "TABLES",
"TABLESAMPLE", "TEXTSIZE", "THEN", "TO", "TOP", "TRAN", "TRANSACTION",
"TRIGGER", "TRUE", "TRUNCATE", "TRY_CONVERT", "TSEQUAL", "UNION", "UNIQUE",
"UNPIVOT", "UPDATE", "UPDATETEXT", "USE", "USER", "VALUES", "VARYING",
"VIEW", "WAITFOR", "WHEN", "WHERE", "WHILE", "WITH", "WITHIN", "WITHOUT",
"WRITETEXT", "ZONE", "ABBREV", "ABSOLUTE", "ABS", "ACOS", "ADDDATE", "ADDTIME",
"AES_DECRYPT", "AES_ENCRYPT", "AGE", "APPLY", "AREA", "ARRAY_AGG", "ARRAY_APPEND",
"ARRAY_CAT", "ARRAY_DIMS", "ARRAY_LENGTH", "ARRAY_LOWER", "ARRAY_NDIMS",
"ARRAY_POSITION", "ARRAY_POSITIONS", "ARRAY_PREPEND", "ARRAY_REMOVE",
"ARRAY_REPLACE", "ARRAY_TO_JSON", "ARRAY_TO_STRING", "ARRAY_TO_TSVECTOR",
"ARRAY_UPPER", "ASIN", "ATAN", "ATAN2", "AUTO", "AVG", "BASE64", "BIGINT",
"BIN", "BINARY_CHECKSUM", "BIT", "BIT_LENGTH", "BOOL_AND", "BOOL_OR",
"BOX", "BOUND_BOX", "BROADCAST", "BTRIM", "BROUND", "CALLER", "CARDINALITY",
"CAST", "CATCH", "CBRT", "CEIL", "CEILING", "CENTER", "CHAR", "CHAR_LENGTH",
"CHARACTER_LENGTH", "CHECKSUM", "CHECKSUM_AGG", "CHR", "CIRCLE", "CLOCK_TIMESTAMP",
"COMMITTED", "CONCAT", "CONCAT_WS", "CONFIG", "CONVERT_FROM", "CONVERT_TO",
"COOKIE", "COS", "CORR", "COVAR_POP", "COVAR_SAMP", "COT", "COUNT", "COUNT_BIG",
"CRC32", "CURDATE", "CURRVAL", "CURTIME", "DATE", "DATEADD", "DATE_ADD",
"DATE_FORMAT", "DATE_PART", "DATE_SUB", "DATE_TRUNC", "DATEDIFF", "DATENAME",
"DATEPART", "DATETIME", "DATETIME2", "DATETIMEOFFSET", "DAY", "DAYNAME",
"DAYOFMONTH", "DAYOFWEEK", "DAYOFYEAR", "DAYS", "DECODE", "DEGREES", "DELAY",
"DELETED", "DENSE_RANK", "DIAMETER", "DISABLE", "DIV", "DYNAMIC", "NATURAL_CONSTANT",
"ENCODE", "ENCRYPTION", "ENUM_FIRST", "ENUM_LAST", "ENUM_RANGE", "ESCAPED_BY",
"EXACT", "EXP", "EXPLODE", "EXTRACT", "EVERY", "FACTORIAL", "FAMILY",
"FAST", "FAST_FORWARD", "FIELD", "FIELDS_SEPARATED_BY", "FIND_IN_SET",
"FIRST", "FLOOR", "FOLLOWING", "FORMAT", "FORMAT_NUMBER", "FORWARD_ONLY",
"FNV_HASH", "FROM_DAYS", "FROM_UNIXTIME", "FULLSCAN", "GEOGRAPHY", "GEOMETRY",
"GET_BIT", "GET_BYTE", "GET_CURRENT_TS_CONFIG", "GET_JSON_OBJECT", "GLOBAL",
"GO", "GREATEST", "GROUPING", "GROUPING_ID", "HEIGHT", "HEX", "HIERARCHYID",
"HOST", "HOSTMASK", "HOUR", "IFNULL", "IMAGE", "INT", "INITCAP", "INSENSITIVE",
"INSERTED", "INSTR", "INTERVAL", "IN_FILE", "INET_SAME_FAMILY", "INET_MERGE",
"ISCLOSED", "ISEMPTY", "ISFINITE", "ISNULL", "ISOLATION", "ISOPEN", "JSON_AGG",
"JSON_ARRAY_LENGTH", "JSON_ARRAY_ELEMENTS", "JSON_ARRAY_ELEMENTS_TEXT",
"JSON_BUILD_ARRAY", "JSON_BUILD_OBJECT", "JSON_EACH", "JSON_EACH_TEXT",
"JSON_EXTRACT_PATH", "JSON_EXTRACT_PATH_TEXT", "JSON_OBJECT", "JSON_OBJECT_KEYS",
"JSON_OBJECT_AGG", "JSON_POPULATE_RECORD", "JSON_POPULATE_RECORDSET",
"JSON_STRIP_NULLS", "JSON_TO_RECORD", "JSON_TO_RECORDSET", "JSON_TYPEOF",
"JSONB_AGG", "JSONB_OBJECT_AGG", "JSONB_SET", "JSONB_INSERT", "JSONB_PRETTY",
"JUSTIFY_DAYS", "JUSTIFY_HOURS", "JUSTIFY_INTERVALS", "KEEPFIXED", "KEYSET",
"LAST", "LASTVAL", "LAST_DAY", "LAST_INSERT_ID", "LATERAL", "LCASE", "LEAST",
"LENGTH", "LEVEL", "LINE", "LN", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP",
"LOCATE", "LOCATION", "LOCK_ESCALATION", "LOG", "LOG2", "LOG10", "LOGIN",
"LOOP", "LOWER", "LOWER_INC", "LOWER_INF", "LPAD", "LTRIM", "LSEG", "MACADDR8_SET7BIT",
"MAKEDATE", "MAKETIME", "MAKE_DATE", "MAKE_TIME", "MAKE_TIMESTAMP", "MAKE_TIMESTAMPTZ",
"MARK", "MASKLEN", "MAX", "MD5", "METHOD", "MICROSECOND", "MIN", "MIN_ACTIVE_ROWVERSION",
"MINUTE", "MOD", "MODIFY", "MONEY", "MONTH", "MONTHNAME", "MONTHS", "NEGATIVE",
"NEXT", "NETMASK", "NETWORK", "NAME", "NCHAR", "NDV", "NEXTVAL", "NOCOUNT",
"NOEXPAND", "NORECOMPUTE", "NOW", "NPOINTS", "NTEXT", "NTILE", "NUMBER",
"NUMNODE", "NUMERIC", "NVARCHAR", "NVL", "OCTET_LENGTH", "OFFSET", "ONLY",
"OPTIMISTIC", "OPTIMIZE", "OUT", "OUTPUT", "OVERLAY", "OWNER", "PARTITION",
"PATH", "PCLOSE", "PERCENTILE", "PERIOD_ADD", "PERIOD_DIFF", "PG_CLIENT_ENCODING",
"PLAINTO_TSQUERY", "PHRASETO_TSQUERY", "PI", "PLACING", "PMOD", "POINT",
"POLYGON", "POPEN", "POSITION", "POSITIVE", "POW", "POWER", "PRECEDING",
"PRIOR", "QUARTER", "QUERYTREE", "QUOTED_BY", "QUOTE_IDENT", "QUOTE_LITERAL",
"QUOTE_NULLABLE", "RADIANS", "RADIUS", "RAND", "RANDOM", "RANGE", "RANGE_MERGE",
"RANK", "READONLY", "READ_ONLY", "RECOMMENDED", "RECOMPILE", "REFRESH",
"REGR_AVGX", "REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE",
"REGR_SXX", "REGR_SXY", "REGR_SYY", "RELATIVE", "REGEXP_MATCHES", "REGEXP_REPLACE",
"REGEXP_SPLIT_TO_ARRAY", "REGEXP_SPLIT_TO_TABLE", "REMOTE", "REPEAT",
"REPEATABLE", "REPLACE", "REVERSE", "ROLLUP", "ROOT", "ROUND", "ROW",
"ROW_TO_JSON", "ROWGUID", "ROWS", "ROW_NUMBER", "RTRIM", "SAMPLE", "SCALE",
"SCHEMABINDING", "SCROLL", "SCROLL_LOCKS", "SECOND", "SEC_TO_TIME", "SELF",
"SERIALIZABLE", "SETSEED", "SETWEIGHT", "SETVAL", "SET_BIT", "SET_BYTE",
"SET_MASKLEN", "SHA1", "SHA2", "SHIFTLEFT", "SHIFTRIGHT", "SHIFTRIGHTUNSIGNED",
"SIGN", "SIN", "SMALLDATETIME", "SMALLINT", "SMALLMONEY", "SNAPSHOT",
"SPACE_FUNCTION", "SPATIAL_WINDOW_MAX_CELLS", "SPLIT", "SPLIT_PART", "SQL_VARIANT",
"STATEMENT_TIMESTAMP", "STATIC", "STATS_STREAM", "STDEV", "STDDEV", "STDEVP",
"STDDEV_SAMP", "STORED_AS_PARQUET", "STRCMP", "STRING_AGG", "STRING_TO_ARRAY",
"STRPOS", "STR_TO_DATE", "SUBDATE", "SUBSTRING_INDEX", "SUM", "SQRT",
"STDDEV_POP", "STRIP", "STRTOL", "SYSDATE", "TAN", "TEXT", "THROW", "TIES",
"TIME", "TIMEDIFF", "TIMEOFDAY", "TIMESTAMP", "TIME_FORMAT", "TIME_TO_SEC",
"TINYINT", "TO_ASCII", "TO_CHAR", "TO_DATE", "TO_DAYS", "TO_HEX", "TO_JSON",
"TO_JSONB", "TO_NUMBER", "TO_TIMESTAMP", "TO_TSQUERY", "TO_TSVECTOR",
"TRANSACTION_TIMESTAMP", "TRANSLATE", "TRIM", "TRUNC", "TRY", "TS_DELETE",
"TS_FILTER", "TS_HEADLINE", "TS_RANK", "TS_RANK_CD", "TS_REWRITE", "TSQUERY_PHRASE",
"TSVECTOR_TO_ARRAY", "TSVECTOR_UPDATE_TRIGGER", "TSVECTOR_UPDATE_TRIGGER_COLUMN",
"TYPE", "TYPE_WARNING", "UCASE", "UNBOUNDED", "UNCOMMITTED", "UNHEX",
"UNIQUEIDENTIFIER", "UNIVERSE", "UNIX_TIMESTAMP", "UNKNOWN", "UNNEST",
"UPPER", "UPPER_INC", "UPPER_INF", "USING", "VAR", "VARBINARY", "VARCHAR",
"VARIANCE", "VAR_POP", "VAR_SAMP", "VARP", "VERSION", "VIEW_METADATA",
"WEEKOFYEAR", "WEEK", "WEEKDAY", "WIDTH", "WIDTH_BUCKET", "WORK", "XML",
"XMLAGG", "XMLCOMMENT", "XMLCONCAT", "XMLELEMENT", "XMLFOREST", "XMLNAMESPACES",
"XMLPI", "XMLROOT", "XML_ISWELL_FORMAT", "XPATH", "XPATH_EXISTS", "YEAR",
"YEARS", "YEARWEEK", "DOLLAR_ACTION", "SPACE", "COMMENT", "LINE_COMMENT",
"DOUBLE_QUOTE_ID", "BACKTICK_ID", "SQUARE_BRACKET_ID", "LOCAL_ID", "DECIMAL",
"ID", "STRING", "BINARY", "FLOAT", "REAL", "EQUAL", "GREATER", "LESS",
"EXCLAMATION", "PLUS_ASSIGN", "MINUS_ASSIGN", "MULT_ASSIGN", "DIV_ASSIGN",
"MOD_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "DOT", "UNDERLINE",
"AT", "SHARP", "DOLLAR", "LR_BRACKET", "RR_BRACKET", "COMMA", "SEMICOLON",
"COLON", "STAR", "DIVIDE", "MODULE", "PLUS", "MINUS", "BIT_NOT", "BIT_OR",
"BIT_AND", "BIT_XOR", "BIT_CONCAT", "BIT_LSHIFT", "BIT_RSHIFT"
};
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated
public static final String[] tokenNames;
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "";
}
}
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getGrammarFileName() { return "VerdictSQLParser.g4"; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public String getSerializedATN() { return _serializedATN; }
@Override
public ATN getATN() { return _ATN; }
public VerdictSQLParser(TokenStream input) {
super(input);
_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
public static class Verdict_statementContext extends ParserRuleContext {
public Select_statementContext select_statement() {
return getRuleContext(Select_statementContext.class,0);
}
public Create_scramble_statementContext create_scramble_statement() {
return getRuleContext(Create_scramble_statementContext.class,0);
}
public Delete_scramble_statementContext delete_scramble_statement() {
return getRuleContext(Delete_scramble_statementContext.class,0);
}
public Show_scrambles_statementContext show_scrambles_statement() {
return getRuleContext(Show_scrambles_statementContext.class,0);
}
public Config_statementContext config_statement() {
return getRuleContext(Config_statementContext.class,0);
}
public Other_statementContext other_statement() {
return getRuleContext(Other_statementContext.class,0);
}
public Create_tableContext create_table() {
return getRuleContext(Create_tableContext.class,0);
}
public Create_table_as_selectContext create_table_as_select() {
return getRuleContext(Create_table_as_selectContext.class,0);
}
public Create_viewContext create_view() {
return getRuleContext(Create_viewContext.class,0);
}
public Drop_tableContext drop_table() {
return getRuleContext(Drop_tableContext.class,0);
}
public Drop_viewContext drop_view() {
return getRuleContext(Drop_viewContext.class,0);
}
public Verdict_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_verdict_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitVerdict_statement(this);
else return visitor.visitChildren(this);
}
}
public final Verdict_statementContext verdict_statement() throws RecognitionException {
Verdict_statementContext _localctx = new Verdict_statementContext(_ctx, getState());
enterRule(_localctx, 0, RULE_verdict_statement);
try {
setState(289);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,0,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(278);
select_statement();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(279);
create_scramble_statement();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(280);
delete_scramble_statement();
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(281);
show_scrambles_statement();
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(282);
config_statement();
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(283);
other_statement();
}
break;
case 7:
enterOuterAlt(_localctx, 7);
{
setState(284);
create_table();
}
break;
case 8:
enterOuterAlt(_localctx, 8);
{
setState(285);
create_table_as_select();
}
break;
case 9:
enterOuterAlt(_localctx, 9);
{
setState(286);
create_view();
}
break;
case 10:
enterOuterAlt(_localctx, 10);
{
setState(287);
drop_table();
}
break;
case 11:
enterOuterAlt(_localctx, 11);
{
setState(288);
drop_view();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Create_scramble_statementContext extends ParserRuleContext {
public Table_nameContext scrambled_table;
public Table_nameContext original_table;
public Token percent;
public TerminalNode CREATE() { return getToken(VerdictSQLParser.CREATE, 0); }
public TerminalNode SCRAMBLE() { return getToken(VerdictSQLParser.SCRAMBLE, 0); }
public TerminalNode FROM() { return getToken(VerdictSQLParser.FROM, 0); }
public List table_name() {
return getRuleContexts(Table_nameContext.class);
}
public Table_nameContext table_name(int i) {
return getRuleContext(Table_nameContext.class,i);
}
public TerminalNode IF() { return getToken(VerdictSQLParser.IF, 0); }
public TerminalNode NOT() { return getToken(VerdictSQLParser.NOT, 0); }
public TerminalNode EXISTS() { return getToken(VerdictSQLParser.EXISTS, 0); }
public TerminalNode METHOD() { return getToken(VerdictSQLParser.METHOD, 0); }
public Scrambling_method_nameContext scrambling_method_name() {
return getRuleContext(Scrambling_method_nameContext.class,0);
}
public TerminalNode SIZE() { return getToken(VerdictSQLParser.SIZE, 0); }
public TerminalNode FLOAT() { return getToken(VerdictSQLParser.FLOAT, 0); }
public TerminalNode DECIMAL() { return getToken(VerdictSQLParser.DECIMAL, 0); }
public Create_scramble_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_create_scramble_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitCreate_scramble_statement(this);
else return visitor.visitChildren(this);
}
}
public final Create_scramble_statementContext create_scramble_statement() throws RecognitionException {
Create_scramble_statementContext _localctx = new Create_scramble_statementContext(_ctx, getState());
enterRule(_localctx, 2, RULE_create_scramble_statement);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(291);
match(CREATE);
setState(292);
match(SCRAMBLE);
setState(296);
_la = _input.LA(1);
if (_la==IF) {
{
setState(293);
match(IF);
setState(294);
match(NOT);
setState(295);
match(EXISTS);
}
}
setState(298);
((Create_scramble_statementContext)_localctx).scrambled_table = table_name();
setState(299);
match(FROM);
setState(300);
((Create_scramble_statementContext)_localctx).original_table = table_name();
setState(303);
_la = _input.LA(1);
if (_la==METHOD) {
{
setState(301);
match(METHOD);
setState(302);
scrambling_method_name();
}
}
setState(308);
_la = _input.LA(1);
if (_la==SIZE) {
{
setState(305);
match(SIZE);
setState(306);
((Create_scramble_statementContext)_localctx).percent = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==DECIMAL || _la==FLOAT) ) {
((Create_scramble_statementContext)_localctx).percent = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
setState(307);
match(MODULE);
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Scrambling_method_nameContext extends ParserRuleContext {
public TerminalNode STRING() { return getToken(VerdictSQLParser.STRING, 0); }
public Scrambling_method_nameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_scrambling_method_name; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitScrambling_method_name(this);
else return visitor.visitChildren(this);
}
}
public final Scrambling_method_nameContext scrambling_method_name() throws RecognitionException {
Scrambling_method_nameContext _localctx = new Scrambling_method_nameContext(_ctx, getState());
enterRule(_localctx, 4, RULE_scrambling_method_name);
try {
enterOuterAlt(_localctx, 1);
{
setState(310);
match(STRING);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class On_columnsContext extends ParserRuleContext {
public TerminalNode ON() { return getToken(VerdictSQLParser.ON, 0); }
public List column_name() {
return getRuleContexts(Column_nameContext.class);
}
public Column_nameContext column_name(int i) {
return getRuleContext(Column_nameContext.class,i);
}
public On_columnsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_on_columns; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitOn_columns(this);
else return visitor.visitChildren(this);
}
}
public final On_columnsContext on_columns() throws RecognitionException {
On_columnsContext _localctx = new On_columnsContext(_ctx, getState());
enterRule(_localctx, 6, RULE_on_columns);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(312);
match(ON);
setState(313);
column_name();
setState(318);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(314);
match(COMMA);
setState(315);
column_name();
}
}
setState(320);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Delete_scramble_statementContext extends ParserRuleContext {
public Table_nameContext original_table;
public TerminalNode DROP() { return getToken(VerdictSQLParser.DROP, 0); }
public TerminalNode SCRAMBLE() { return getToken(VerdictSQLParser.SCRAMBLE, 0); }
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public Delete_scramble_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_delete_scramble_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDelete_scramble_statement(this);
else return visitor.visitChildren(this);
}
}
public final Delete_scramble_statementContext delete_scramble_statement() throws RecognitionException {
Delete_scramble_statementContext _localctx = new Delete_scramble_statementContext(_ctx, getState());
enterRule(_localctx, 8, RULE_delete_scramble_statement);
try {
enterOuterAlt(_localctx, 1);
{
setState(321);
match(DROP);
setState(322);
match(SCRAMBLE);
setState(323);
((Delete_scramble_statementContext)_localctx).original_table = table_name();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Show_scrambles_statementContext extends ParserRuleContext {
public TerminalNode SHOW() { return getToken(VerdictSQLParser.SHOW, 0); }
public TerminalNode SCRAMBLES() { return getToken(VerdictSQLParser.SCRAMBLES, 0); }
public Show_scrambles_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_show_scrambles_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitShow_scrambles_statement(this);
else return visitor.visitChildren(this);
}
}
public final Show_scrambles_statementContext show_scrambles_statement() throws RecognitionException {
Show_scrambles_statementContext _localctx = new Show_scrambles_statementContext(_ctx, getState());
enterRule(_localctx, 10, RULE_show_scrambles_statement);
try {
enterOuterAlt(_localctx, 1);
{
setState(325);
match(SHOW);
setState(326);
match(SCRAMBLES);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Config_statementContext extends ParserRuleContext {
public Config_set_statementContext config_set_statement() {
return getRuleContext(Config_set_statementContext.class,0);
}
public Config_get_statementContext config_get_statement() {
return getRuleContext(Config_get_statementContext.class,0);
}
public Config_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_config_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitConfig_statement(this);
else return visitor.visitChildren(this);
}
}
public final Config_statementContext config_statement() throws RecognitionException {
Config_statementContext _localctx = new Config_statementContext(_ctx, getState());
enterRule(_localctx, 12, RULE_config_statement);
try {
setState(330);
switch (_input.LA(1)) {
case SET:
enterOuterAlt(_localctx, 1);
{
setState(328);
config_set_statement();
}
break;
case GET:
enterOuterAlt(_localctx, 2);
{
setState(329);
config_get_statement();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Other_statementContext extends ParserRuleContext {
public Use_statementContext use_statement() {
return getRuleContext(Use_statementContext.class,0);
}
public Show_tables_statementContext show_tables_statement() {
return getRuleContext(Show_tables_statementContext.class,0);
}
public Show_databases_statementContext show_databases_statement() {
return getRuleContext(Show_databases_statementContext.class,0);
}
public Describe_table_statementContext describe_table_statement() {
return getRuleContext(Describe_table_statementContext.class,0);
}
public Refresh_statementContext refresh_statement() {
return getRuleContext(Refresh_statementContext.class,0);
}
public Show_config_statementContext show_config_statement() {
return getRuleContext(Show_config_statementContext.class,0);
}
public Create_databaseContext create_database() {
return getRuleContext(Create_databaseContext.class,0);
}
public Drop_databaseContext drop_database() {
return getRuleContext(Drop_databaseContext.class,0);
}
public Other_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_other_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitOther_statement(this);
else return visitor.visitChildren(this);
}
}
public final Other_statementContext other_statement() throws RecognitionException {
Other_statementContext _localctx = new Other_statementContext(_ctx, getState());
enterRule(_localctx, 14, RULE_other_statement);
try {
setState(340);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(332);
use_statement();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(333);
show_tables_statement();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(334);
show_databases_statement();
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(335);
describe_table_statement();
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(336);
refresh_statement();
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(337);
show_config_statement();
}
break;
case 7:
enterOuterAlt(_localctx, 7);
{
setState(338);
create_database();
}
break;
case 8:
enterOuterAlt(_localctx, 8);
{
setState(339);
drop_database();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Create_databaseContext extends ParserRuleContext {
public IdContext database;
public TerminalNode CREATE() { return getToken(VerdictSQLParser.CREATE, 0); }
public TerminalNode DATABASE() { return getToken(VerdictSQLParser.DATABASE, 0); }
public TerminalNode SCHEMA() { return getToken(VerdictSQLParser.SCHEMA, 0); }
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public Create_databaseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_create_database; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitCreate_database(this);
else return visitor.visitChildren(this);
}
}
public final Create_databaseContext create_database() throws RecognitionException {
Create_databaseContext _localctx = new Create_databaseContext(_ctx, getState());
enterRule(_localctx, 16, RULE_create_database);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(342);
match(CREATE);
setState(343);
_la = _input.LA(1);
if ( !(_la==DATABASE || _la==SCHEMA) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
{
setState(344);
((Create_databaseContext)_localctx).database = id();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Drop_databaseContext extends ParserRuleContext {
public IdContext database;
public TerminalNode DROP() { return getToken(VerdictSQLParser.DROP, 0); }
public TerminalNode DATABASE() { return getToken(VerdictSQLParser.DATABASE, 0); }
public TerminalNode SCHEMA() { return getToken(VerdictSQLParser.SCHEMA, 0); }
public TerminalNode IF() { return getToken(VerdictSQLParser.IF, 0); }
public TerminalNode EXISTS() { return getToken(VerdictSQLParser.EXISTS, 0); }
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public Drop_databaseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_drop_database; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDrop_database(this);
else return visitor.visitChildren(this);
}
}
public final Drop_databaseContext drop_database() throws RecognitionException {
Drop_databaseContext _localctx = new Drop_databaseContext(_ctx, getState());
enterRule(_localctx, 18, RULE_drop_database);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(346);
match(DROP);
setState(347);
_la = _input.LA(1);
if ( !(_la==DATABASE || _la==SCHEMA) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(350);
_la = _input.LA(1);
if (_la==IF) {
{
setState(348);
match(IF);
setState(349);
match(EXISTS);
}
}
{
setState(352);
((Drop_databaseContext)_localctx).database = id();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Config_set_statementContext extends ParserRuleContext {
public Config_keyContext key;
public Config_valueContext value;
public TerminalNode SET() { return getToken(VerdictSQLParser.SET, 0); }
public Config_keyContext config_key() {
return getRuleContext(Config_keyContext.class,0);
}
public Config_valueContext config_value() {
return getRuleContext(Config_valueContext.class,0);
}
public Config_set_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_config_set_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitConfig_set_statement(this);
else return visitor.visitChildren(this);
}
}
public final Config_set_statementContext config_set_statement() throws RecognitionException {
Config_set_statementContext _localctx = new Config_set_statementContext(_ctx, getState());
enterRule(_localctx, 20, RULE_config_set_statement);
try {
enterOuterAlt(_localctx, 1);
{
setState(354);
match(SET);
setState(355);
((Config_set_statementContext)_localctx).key = config_key();
setState(356);
match(EQUAL);
setState(357);
((Config_set_statementContext)_localctx).value = config_value();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Config_get_statementContext extends ParserRuleContext {
public Config_keyContext key;
public TerminalNode GET() { return getToken(VerdictSQLParser.GET, 0); }
public Config_keyContext config_key() {
return getRuleContext(Config_keyContext.class,0);
}
public Config_get_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_config_get_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitConfig_get_statement(this);
else return visitor.visitChildren(this);
}
}
public final Config_get_statementContext config_get_statement() throws RecognitionException {
Config_get_statementContext _localctx = new Config_get_statementContext(_ctx, getState());
enterRule(_localctx, 22, RULE_config_get_statement);
try {
enterOuterAlt(_localctx, 1);
{
setState(359);
match(GET);
setState(360);
((Config_get_statementContext)_localctx).key = config_key();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Config_keyContext extends ParserRuleContext {
public TerminalNode ID() { return getToken(VerdictSQLParser.ID, 0); }
public Config_keyContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_config_key; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitConfig_key(this);
else return visitor.visitChildren(this);
}
}
public final Config_keyContext config_key() throws RecognitionException {
Config_keyContext _localctx = new Config_keyContext(_ctx, getState());
enterRule(_localctx, 24, RULE_config_key);
try {
enterOuterAlt(_localctx, 1);
{
setState(362);
match(ID);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Config_valueContext extends ParserRuleContext {
public TerminalNode DOUBLE_QUOTE_ID() { return getToken(VerdictSQLParser.DOUBLE_QUOTE_ID, 0); }
public TerminalNode STRING() { return getToken(VerdictSQLParser.STRING, 0); }
public List ID() { return getTokens(VerdictSQLParser.ID); }
public TerminalNode ID(int i) {
return getToken(VerdictSQLParser.ID, i);
}
public Config_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_config_value; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitConfig_value(this);
else return visitor.visitChildren(this);
}
}
public final Config_valueContext config_value() throws RecognitionException {
Config_valueContext _localctx = new Config_valueContext(_ctx, getState());
enterRule(_localctx, 26, RULE_config_value);
int _la;
try {
setState(374);
switch (_input.LA(1)) {
case DOUBLE_QUOTE_ID:
enterOuterAlt(_localctx, 1);
{
setState(364);
match(DOUBLE_QUOTE_ID);
}
break;
case STRING:
enterOuterAlt(_localctx, 2);
{
setState(365);
match(STRING);
}
break;
case ID:
enterOuterAlt(_localctx, 3);
{
setState(366);
match(ID);
setState(371);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(367);
match(COMMA);
setState(368);
match(ID);
}
}
setState(373);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Tsql_fileContext extends ParserRuleContext {
public TerminalNode EOF() { return getToken(VerdictSQLParser.EOF, 0); }
public List sql_clause() {
return getRuleContexts(Sql_clauseContext.class);
}
public Sql_clauseContext sql_clause(int i) {
return getRuleContext(Sql_clauseContext.class,i);
}
public Tsql_fileContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_tsql_file; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitTsql_file(this);
else return visitor.visitChildren(this);
}
}
public final Tsql_fileContext tsql_file() throws RecognitionException {
Tsql_fileContext _localctx = new Tsql_fileContext(_ctx, getState());
enterRule(_localctx, 28, RULE_tsql_file);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(379);
_errHandler.sync(this);
_la = _input.LA(1);
while (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & ((1L << (SHOW - 3)) | (1L << (ALTER - 3)) | (1L << (CREATE - 3)) | (1L << (DESCRIBE - 3)) | (1L << (DROP - 3)))) != 0) || _la==USE || _la==REFRESH) {
{
{
setState(376);
sql_clause();
}
}
setState(381);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(382);
match(EOF);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Sql_clauseContext extends ParserRuleContext {
public Ddl_clauseContext ddl_clause() {
return getRuleContext(Ddl_clauseContext.class,0);
}
public Other_statementContext other_statement() {
return getRuleContext(Other_statementContext.class,0);
}
public Sql_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_sql_clause; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSql_clause(this);
else return visitor.visitChildren(this);
}
}
public final Sql_clauseContext sql_clause() throws RecognitionException {
Sql_clauseContext _localctx = new Sql_clauseContext(_ctx, getState());
enterRule(_localctx, 30, RULE_sql_clause);
try {
setState(386);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,11,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(384);
ddl_clause();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(385);
other_statement();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Ddl_clauseContext extends ParserRuleContext {
public Create_tableContext create_table() {
return getRuleContext(Create_tableContext.class,0);
}
public Create_viewContext create_view() {
return getRuleContext(Create_viewContext.class,0);
}
public Alter_tableContext alter_table() {
return getRuleContext(Alter_tableContext.class,0);
}
public Alter_databaseContext alter_database() {
return getRuleContext(Alter_databaseContext.class,0);
}
public Drop_tableContext drop_table() {
return getRuleContext(Drop_tableContext.class,0);
}
public Drop_viewContext drop_view() {
return getRuleContext(Drop_viewContext.class,0);
}
public Ddl_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_ddl_clause; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDdl_clause(this);
else return visitor.visitChildren(this);
}
}
public final Ddl_clauseContext ddl_clause() throws RecognitionException {
Ddl_clauseContext _localctx = new Ddl_clauseContext(_ctx, getState());
enterRule(_localctx, 32, RULE_ddl_clause);
try {
setState(394);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,12,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(388);
create_table();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(389);
create_view();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(390);
alter_table();
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(391);
alter_database();
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(392);
drop_table();
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(393);
drop_view();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Select_statementContext extends ParserRuleContext {
public Query_expressionContext query_expression() {
return getRuleContext(Query_expressionContext.class,0);
}
public With_expressionContext with_expression() {
return getRuleContext(With_expressionContext.class,0);
}
public TerminalNode EXACT() { return getToken(VerdictSQLParser.EXACT, 0); }
public Order_by_clauseContext order_by_clause() {
return getRuleContext(Order_by_clauseContext.class,0);
}
public Limit_clauseContext limit_clause() {
return getRuleContext(Limit_clauseContext.class,0);
}
public Select_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_select_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSelect_statement(this);
else return visitor.visitChildren(this);
}
}
public final Select_statementContext select_statement() throws RecognitionException {
Select_statementContext _localctx = new Select_statementContext(_ctx, getState());
enterRule(_localctx, 34, RULE_select_statement);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(397);
_la = _input.LA(1);
if (_la==WITH) {
{
setState(396);
with_expression();
}
}
setState(400);
_la = _input.LA(1);
if (_la==EXACT) {
{
setState(399);
match(EXACT);
}
}
setState(402);
query_expression();
setState(404);
_la = _input.LA(1);
if (_la==ORDER) {
{
setState(403);
order_by_clause();
}
}
setState(407);
_la = _input.LA(1);
if (_la==LIMIT) {
{
setState(406);
limit_clause();
}
}
setState(410);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,17,_ctx) ) {
case 1:
{
setState(409);
match(SEMICOLON);
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Output_clauseContext extends ParserRuleContext {
public TerminalNode OUTPUT() { return getToken(VerdictSQLParser.OUTPUT, 0); }
public List output_dml_list_elem() {
return getRuleContexts(Output_dml_list_elemContext.class);
}
public Output_dml_list_elemContext output_dml_list_elem(int i) {
return getRuleContext(Output_dml_list_elemContext.class,i);
}
public TerminalNode INTO() { return getToken(VerdictSQLParser.INTO, 0); }
public TerminalNode LOCAL_ID() { return getToken(VerdictSQLParser.LOCAL_ID, 0); }
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public Column_name_listContext column_name_list() {
return getRuleContext(Column_name_listContext.class,0);
}
public Output_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_output_clause; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitOutput_clause(this);
else return visitor.visitChildren(this);
}
}
public final Output_clauseContext output_clause() throws RecognitionException {
Output_clauseContext _localctx = new Output_clauseContext(_ctx, getState());
enterRule(_localctx, 36, RULE_output_clause);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(412);
match(OUTPUT);
setState(413);
output_dml_list_elem();
setState(418);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(414);
match(COMMA);
setState(415);
output_dml_list_elem();
}
}
setState(420);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(432);
_la = _input.LA(1);
if (_la==INTO) {
{
setState(421);
match(INTO);
setState(424);
switch (_input.LA(1)) {
case LOCAL_ID:
{
setState(422);
match(LOCAL_ID);
}
break;
case LEFT:
case RIGHT:
case AGE:
case AREA:
case CENTER:
case CIRCLE:
case DATE:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DIAMETER:
case HEIGHT:
case HOUR:
case LENGTH:
case MAKEDATE:
case MICROSECOND:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case POWER:
case SECOND:
case TEXT:
case TIME:
case TIMESTAMP:
case VARIANCE:
case WEEKOFYEAR:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case ID:
{
setState(423);
table_name();
}
break;
default:
throw new NoViableAltException(this);
}
setState(430);
_la = _input.LA(1);
if (_la==LR_BRACKET) {
{
setState(426);
match(LR_BRACKET);
setState(427);
column_name_list();
setState(428);
match(RR_BRACKET);
}
}
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Output_dml_list_elemContext extends ParserRuleContext {
public Output_column_nameContext output_column_name() {
return getRuleContext(Output_column_nameContext.class,0);
}
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Column_aliasContext column_alias() {
return getRuleContext(Column_aliasContext.class,0);
}
public TerminalNode AS() { return getToken(VerdictSQLParser.AS, 0); }
public Output_dml_list_elemContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_output_dml_list_elem; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitOutput_dml_list_elem(this);
else return visitor.visitChildren(this);
}
}
public final Output_dml_list_elemContext output_dml_list_elem() throws RecognitionException {
Output_dml_list_elemContext _localctx = new Output_dml_list_elemContext(_ctx, getState());
enterRule(_localctx, 38, RULE_output_dml_list_elem);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(436);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,22,_ctx) ) {
case 1:
{
setState(434);
output_column_name();
}
break;
case 2:
{
setState(435);
expression(0);
}
break;
}
setState(442);
_la = _input.LA(1);
if (_la==AS || _la==LEFT || _la==RIGHT || ((((_la - 223)) & ~0x3f) == 0 && ((1L << (_la - 223)) & ((1L << (AGE - 223)) | (1L << (AREA - 223)) | (1L << (CENTER - 223)) | (1L << (CIRCLE - 223)))) != 0) || ((((_la - 294)) & ~0x3f) == 0 && ((1L << (_la - 294)) & ((1L << (DATE - 294)) | (1L << (DAY - 294)) | (1L << (DAYNAME - 294)) | (1L << (DAYOFMONTH - 294)) | (1L << (DAYOFWEEK - 294)) | (1L << (DAYOFYEAR - 294)) | (1L << (DEGREES - 294)) | (1L << (DIAMETER - 294)))) != 0) || ((((_la - 362)) & ~0x3f) == 0 && ((1L << (_la - 362)) & ((1L << (HEIGHT - 362)) | (1L << (HOUR - 362)) | (1L << (LENGTH - 362)))) != 0) || ((((_la - 443)) & ~0x3f) == 0 && ((1L << (_la - 443)) & ((1L << (MAKEDATE - 443)) | (1L << (MICROSECOND - 443)) | (1L << (MINUTE - 443)) | (1L << (MOD - 443)) | (1L << (MONTH - 443)) | (1L << (MONTHNAME - 443)))) != 0) || _la==POWER || _la==SECOND || ((((_la - 613)) & ~0x3f) == 0 && ((1L << (_la - 613)) & ((1L << (TEXT - 613)) | (1L << (TIME - 613)) | (1L << (TIMESTAMP - 613)) | (1L << (VARIANCE - 613)) | (1L << (WEEKOFYEAR - 613)))) != 0) || ((((_la - 698)) & ~0x3f) == 0 && ((1L << (_la - 698)) & ((1L << (DOUBLE_QUOTE_ID - 698)) | (1L << (BACKTICK_ID - 698)) | (1L << (SQUARE_BRACKET_ID - 698)) | (1L << (ID - 698)) | (1L << (STRING - 698)))) != 0)) {
{
setState(439);
_la = _input.LA(1);
if (_la==AS) {
{
setState(438);
match(AS);
}
}
setState(441);
column_alias();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Output_column_nameContext extends ParserRuleContext {
public TerminalNode DELETED() { return getToken(VerdictSQLParser.DELETED, 0); }
public TerminalNode INSERTED() { return getToken(VerdictSQLParser.INSERTED, 0); }
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public Column_nameContext column_name() {
return getRuleContext(Column_nameContext.class,0);
}
public TerminalNode DOLLAR_ACTION() { return getToken(VerdictSQLParser.DOLLAR_ACTION, 0); }
public Output_column_nameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_output_column_name; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitOutput_column_name(this);
else return visitor.visitChildren(this);
}
}
public final Output_column_nameContext output_column_name() throws RecognitionException {
Output_column_nameContext _localctx = new Output_column_nameContext(_ctx, getState());
enterRule(_localctx, 40, RULE_output_column_name);
try {
setState(455);
switch (_input.LA(1)) {
case LEFT:
case RIGHT:
case AGE:
case AREA:
case CENTER:
case CIRCLE:
case DATE:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DELETED:
case DIAMETER:
case HEIGHT:
case HOUR:
case INSERTED:
case LENGTH:
case MAKEDATE:
case MICROSECOND:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case POWER:
case SECOND:
case TEXT:
case TIME:
case TIMESTAMP:
case VARIANCE:
case WEEKOFYEAR:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case ID:
enterOuterAlt(_localctx, 1);
{
setState(447);
switch (_input.LA(1)) {
case DELETED:
{
setState(444);
match(DELETED);
}
break;
case INSERTED:
{
setState(445);
match(INSERTED);
}
break;
case LEFT:
case RIGHT:
case AGE:
case AREA:
case CENTER:
case CIRCLE:
case DATE:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DIAMETER:
case HEIGHT:
case HOUR:
case LENGTH:
case MAKEDATE:
case MICROSECOND:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case POWER:
case SECOND:
case TEXT:
case TIME:
case TIMESTAMP:
case VARIANCE:
case WEEKOFYEAR:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case ID:
{
setState(446);
table_name();
}
break;
default:
throw new NoViableAltException(this);
}
setState(449);
match(DOT);
setState(452);
switch (_input.LA(1)) {
case STAR:
{
setState(450);
match(STAR);
}
break;
case LEFT:
case RIGHT:
case AGE:
case AREA:
case CENTER:
case CIRCLE:
case DATE:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DIAMETER:
case HEIGHT:
case HOUR:
case LENGTH:
case MAKEDATE:
case MICROSECOND:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case POWER:
case SECOND:
case TEXT:
case TIME:
case TIMESTAMP:
case VARIANCE:
case WEEKOFYEAR:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case ID:
{
setState(451);
column_name();
}
break;
default:
throw new NoViableAltException(this);
}
}
break;
case DOLLAR_ACTION:
enterOuterAlt(_localctx, 2);
{
setState(454);
match(DOLLAR_ACTION);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Create_tableContext extends ParserRuleContext {
public TerminalNode CREATE() { return getToken(VerdictSQLParser.CREATE, 0); }
public TerminalNode TABLE() { return getToken(VerdictSQLParser.TABLE, 0); }
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public List column_def_table_constraint() {
return getRuleContexts(Column_def_table_constraintContext.class);
}
public Column_def_table_constraintContext column_def_table_constraint(int i) {
return getRuleContext(Column_def_table_constraintContext.class,i);
}
public Create_tableContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_create_table; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitCreate_table(this);
else return visitor.visitChildren(this);
}
}
public final Create_tableContext create_table() throws RecognitionException {
Create_tableContext _localctx = new Create_tableContext(_ctx, getState());
enterRule(_localctx, 42, RULE_create_table);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(457);
match(CREATE);
setState(458);
match(TABLE);
setState(459);
table_name();
setState(460);
match(LR_BRACKET);
setState(461);
column_def_table_constraint();
setState(468);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,29,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(463);
_la = _input.LA(1);
if (_la==COMMA) {
{
setState(462);
match(COMMA);
}
}
setState(465);
column_def_table_constraint();
}
}
}
setState(470);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,29,_ctx);
}
setState(472);
_la = _input.LA(1);
if (_la==COMMA) {
{
setState(471);
match(COMMA);
}
}
setState(474);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Create_table_as_selectContext extends ParserRuleContext {
public TerminalNode CREATE() { return getToken(VerdictSQLParser.CREATE, 0); }
public TerminalNode TABLE() { return getToken(VerdictSQLParser.TABLE, 0); }
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public TerminalNode AS() { return getToken(VerdictSQLParser.AS, 0); }
public Select_statementContext select_statement() {
return getRuleContext(Select_statementContext.class,0);
}
public TerminalNode IF() { return getToken(VerdictSQLParser.IF, 0); }
public TerminalNode NOT() { return getToken(VerdictSQLParser.NOT, 0); }
public TerminalNode EXISTS() { return getToken(VerdictSQLParser.EXISTS, 0); }
public TerminalNode STORED_AS_PARQUET() { return getToken(VerdictSQLParser.STORED_AS_PARQUET, 0); }
public Create_table_as_selectContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_create_table_as_select; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitCreate_table_as_select(this);
else return visitor.visitChildren(this);
}
}
public final Create_table_as_selectContext create_table_as_select() throws RecognitionException {
Create_table_as_selectContext _localctx = new Create_table_as_selectContext(_ctx, getState());
enterRule(_localctx, 44, RULE_create_table_as_select);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(476);
match(CREATE);
setState(477);
match(TABLE);
setState(481);
_la = _input.LA(1);
if (_la==IF) {
{
setState(478);
match(IF);
setState(479);
match(NOT);
setState(480);
match(EXISTS);
}
}
setState(483);
table_name();
setState(485);
_la = _input.LA(1);
if (_la==STORED_AS_PARQUET) {
{
setState(484);
match(STORED_AS_PARQUET);
}
}
setState(487);
match(AS);
setState(488);
select_statement();
setState(490);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(489);
match(SEMICOLON);
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Create_viewContext extends ParserRuleContext {
public TerminalNode CREATE() { return getToken(VerdictSQLParser.CREATE, 0); }
public TerminalNode VIEW() { return getToken(VerdictSQLParser.VIEW, 0); }
public View_nameContext view_name() {
return getRuleContext(View_nameContext.class,0);
}
public TerminalNode AS() { return getToken(VerdictSQLParser.AS, 0); }
public Select_statementContext select_statement() {
return getRuleContext(Select_statementContext.class,0);
}
public List column_name() {
return getRuleContexts(Column_nameContext.class);
}
public Column_nameContext column_name(int i) {
return getRuleContext(Column_nameContext.class,i);
}
public TerminalNode WITH() { return getToken(VerdictSQLParser.WITH, 0); }
public TerminalNode CHECK() { return getToken(VerdictSQLParser.CHECK, 0); }
public TerminalNode OPTION() { return getToken(VerdictSQLParser.OPTION, 0); }
public Create_viewContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_create_view; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitCreate_view(this);
else return visitor.visitChildren(this);
}
}
public final Create_viewContext create_view() throws RecognitionException {
Create_viewContext _localctx = new Create_viewContext(_ctx, getState());
enterRule(_localctx, 46, RULE_create_view);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(492);
match(CREATE);
setState(493);
match(VIEW);
setState(494);
view_name();
setState(506);
_la = _input.LA(1);
if (_la==LR_BRACKET) {
{
setState(495);
match(LR_BRACKET);
setState(496);
column_name();
setState(501);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(497);
match(COMMA);
setState(498);
column_name();
}
}
setState(503);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(504);
match(RR_BRACKET);
}
}
setState(508);
match(AS);
setState(509);
select_statement();
setState(513);
_la = _input.LA(1);
if (_la==WITH) {
{
setState(510);
match(WITH);
setState(511);
match(CHECK);
setState(512);
match(OPTION);
}
}
setState(516);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(515);
match(SEMICOLON);
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Alter_tableContext extends ParserRuleContext {
public TerminalNode ALTER() { return getToken(VerdictSQLParser.ALTER, 0); }
public List TABLE() { return getTokens(VerdictSQLParser.TABLE); }
public TerminalNode TABLE(int i) {
return getToken(VerdictSQLParser.TABLE, i);
}
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public TerminalNode SET() { return getToken(VerdictSQLParser.SET, 0); }
public TerminalNode LOCK_ESCALATION() { return getToken(VerdictSQLParser.LOCK_ESCALATION, 0); }
public TerminalNode AUTO() { return getToken(VerdictSQLParser.AUTO, 0); }
public TerminalNode DISABLE() { return getToken(VerdictSQLParser.DISABLE, 0); }
public TerminalNode ADD() { return getToken(VerdictSQLParser.ADD, 0); }
public Column_def_table_constraintContext column_def_table_constraint() {
return getRuleContext(Column_def_table_constraintContext.class,0);
}
public Alter_tableContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_alter_table; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitAlter_table(this);
else return visitor.visitChildren(this);
}
}
public final Alter_tableContext alter_table() throws RecognitionException {
Alter_tableContext _localctx = new Alter_tableContext(_ctx, getState());
enterRule(_localctx, 48, RULE_alter_table);
int _la;
try {
setState(538);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,40,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(518);
match(ALTER);
setState(519);
match(TABLE);
setState(520);
table_name();
setState(521);
match(SET);
setState(522);
match(LR_BRACKET);
setState(523);
match(LOCK_ESCALATION);
setState(524);
match(EQUAL);
setState(525);
_la = _input.LA(1);
if ( !(_la==TABLE || _la==AUTO || _la==DISABLE) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(526);
match(RR_BRACKET);
setState(528);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(527);
match(SEMICOLON);
}
}
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(530);
match(ALTER);
setState(531);
match(TABLE);
setState(532);
table_name();
setState(533);
match(ADD);
setState(534);
column_def_table_constraint();
setState(536);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(535);
match(SEMICOLON);
}
}
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Alter_databaseContext extends ParserRuleContext {
public IdContext database;
public IdContext new_name;
public TerminalNode ALTER() { return getToken(VerdictSQLParser.ALTER, 0); }
public TerminalNode DATABASE() { return getToken(VerdictSQLParser.DATABASE, 0); }
public TerminalNode MODIFY() { return getToken(VerdictSQLParser.MODIFY, 0); }
public TerminalNode NAME() { return getToken(VerdictSQLParser.NAME, 0); }
public List id() {
return getRuleContexts(IdContext.class);
}
public IdContext id(int i) {
return getRuleContext(IdContext.class,i);
}
public TerminalNode CURRENT() { return getToken(VerdictSQLParser.CURRENT, 0); }
public Alter_databaseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_alter_database; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitAlter_database(this);
else return visitor.visitChildren(this);
}
}
public final Alter_databaseContext alter_database() throws RecognitionException {
Alter_databaseContext _localctx = new Alter_databaseContext(_ctx, getState());
enterRule(_localctx, 50, RULE_alter_database);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(540);
match(ALTER);
setState(541);
match(DATABASE);
setState(544);
switch (_input.LA(1)) {
case LEFT:
case RIGHT:
case AGE:
case AREA:
case CENTER:
case CIRCLE:
case DATE:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DIAMETER:
case HEIGHT:
case HOUR:
case LENGTH:
case MAKEDATE:
case MICROSECOND:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case POWER:
case SECOND:
case TEXT:
case TIME:
case TIMESTAMP:
case VARIANCE:
case WEEKOFYEAR:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case ID:
{
setState(542);
((Alter_databaseContext)_localctx).database = id();
}
break;
case CURRENT:
{
setState(543);
match(CURRENT);
}
break;
default:
throw new NoViableAltException(this);
}
setState(546);
match(MODIFY);
setState(547);
match(NAME);
setState(548);
match(EQUAL);
setState(549);
((Alter_databaseContext)_localctx).new_name = id();
setState(551);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(550);
match(SEMICOLON);
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Drop_tableContext extends ParserRuleContext {
public TerminalNode DROP() { return getToken(VerdictSQLParser.DROP, 0); }
public TerminalNode TABLE() { return getToken(VerdictSQLParser.TABLE, 0); }
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public TerminalNode IF() { return getToken(VerdictSQLParser.IF, 0); }
public TerminalNode EXISTS() { return getToken(VerdictSQLParser.EXISTS, 0); }
public Drop_tableContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_drop_table; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDrop_table(this);
else return visitor.visitChildren(this);
}
}
public final Drop_tableContext drop_table() throws RecognitionException {
Drop_tableContext _localctx = new Drop_tableContext(_ctx, getState());
enterRule(_localctx, 52, RULE_drop_table);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(553);
match(DROP);
setState(554);
match(TABLE);
setState(557);
_la = _input.LA(1);
if (_la==IF) {
{
setState(555);
match(IF);
setState(556);
match(EXISTS);
}
}
setState(559);
table_name();
setState(561);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(560);
match(SEMICOLON);
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Drop_viewContext extends ParserRuleContext {
public TerminalNode DROP() { return getToken(VerdictSQLParser.DROP, 0); }
public TerminalNode VIEW() { return getToken(VerdictSQLParser.VIEW, 0); }
public List view_name() {
return getRuleContexts(View_nameContext.class);
}
public View_nameContext view_name(int i) {
return getRuleContext(View_nameContext.class,i);
}
public TerminalNode IF() { return getToken(VerdictSQLParser.IF, 0); }
public TerminalNode EXISTS() { return getToken(VerdictSQLParser.EXISTS, 0); }
public Drop_viewContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_drop_view; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDrop_view(this);
else return visitor.visitChildren(this);
}
}
public final Drop_viewContext drop_view() throws RecognitionException {
Drop_viewContext _localctx = new Drop_viewContext(_ctx, getState());
enterRule(_localctx, 54, RULE_drop_view);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(563);
match(DROP);
setState(564);
match(VIEW);
setState(567);
_la = _input.LA(1);
if (_la==IF) {
{
setState(565);
match(IF);
setState(566);
match(EXISTS);
}
}
setState(569);
view_name();
setState(574);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(570);
match(COMMA);
setState(571);
view_name();
}
}
setState(576);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(578);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(577);
match(SEMICOLON);
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Set_statmentContext extends ParserRuleContext {
public IdContext member_name;
public TerminalNode SET() { return getToken(VerdictSQLParser.SET, 0); }
public TerminalNode LOCAL_ID() { return getToken(VerdictSQLParser.LOCAL_ID, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public Assignment_operatorContext assignment_operator() {
return getRuleContext(Assignment_operatorContext.class,0);
}
public Set_specialContext set_special() {
return getRuleContext(Set_specialContext.class,0);
}
public Set_statmentContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_set_statment; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSet_statment(this);
else return visitor.visitChildren(this);
}
}
public final Set_statmentContext set_statment() throws RecognitionException {
Set_statmentContext _localctx = new Set_statmentContext(_ctx, getState());
enterRule(_localctx, 56, RULE_set_statment);
int _la;
try {
setState(599);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,51,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(580);
match(SET);
setState(581);
match(LOCAL_ID);
setState(584);
_la = _input.LA(1);
if (_la==DOT) {
{
setState(582);
match(DOT);
setState(583);
((Set_statmentContext)_localctx).member_name = id();
}
}
setState(586);
match(EQUAL);
setState(587);
expression(0);
setState(589);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(588);
match(SEMICOLON);
}
}
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(591);
match(SET);
setState(592);
match(LOCAL_ID);
setState(593);
assignment_operator();
setState(594);
expression(0);
setState(596);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(595);
match(SEMICOLON);
}
}
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(598);
set_special();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Use_statementContext extends ParserRuleContext {
public IdContext database;
public TerminalNode USE() { return getToken(VerdictSQLParser.USE, 0); }
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public Use_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_use_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitUse_statement(this);
else return visitor.visitChildren(this);
}
}
public final Use_statementContext use_statement() throws RecognitionException {
Use_statementContext _localctx = new Use_statementContext(_ctx, getState());
enterRule(_localctx, 58, RULE_use_statement);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(601);
match(USE);
setState(602);
((Use_statementContext)_localctx).database = id();
setState(604);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(603);
match(SEMICOLON);
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Show_tables_statementContext extends ParserRuleContext {
public IdContext schema;
public TerminalNode SHOW() { return getToken(VerdictSQLParser.SHOW, 0); }
public TerminalNode TABLES() { return getToken(VerdictSQLParser.TABLES, 0); }
public TerminalNode IN() { return getToken(VerdictSQLParser.IN, 0); }
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public Show_tables_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_show_tables_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitShow_tables_statement(this);
else return visitor.visitChildren(this);
}
}
public final Show_tables_statementContext show_tables_statement() throws RecognitionException {
Show_tables_statementContext _localctx = new Show_tables_statementContext(_ctx, getState());
enterRule(_localctx, 60, RULE_show_tables_statement);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(606);
match(SHOW);
setState(607);
match(TABLES);
setState(610);
_la = _input.LA(1);
if (_la==IN) {
{
setState(608);
match(IN);
setState(609);
((Show_tables_statementContext)_localctx).schema = id();
}
}
setState(613);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(612);
match(SEMICOLON);
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Show_databases_statementContext extends ParserRuleContext {
public TerminalNode SHOW() { return getToken(VerdictSQLParser.SHOW, 0); }
public TerminalNode DATABASES() { return getToken(VerdictSQLParser.DATABASES, 0); }
public TerminalNode SCHEMAS() { return getToken(VerdictSQLParser.SCHEMAS, 0); }
public Show_databases_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_show_databases_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitShow_databases_statement(this);
else return visitor.visitChildren(this);
}
}
public final Show_databases_statementContext show_databases_statement() throws RecognitionException {
Show_databases_statementContext _localctx = new Show_databases_statementContext(_ctx, getState());
enterRule(_localctx, 62, RULE_show_databases_statement);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(615);
match(SHOW);
setState(616);
_la = _input.LA(1);
if ( !(_la==DATABASES || _la==SCHEMAS) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Describe_table_statementContext extends ParserRuleContext {
public Table_nameContext table;
public TerminalNode DESCRIBE() { return getToken(VerdictSQLParser.DESCRIBE, 0); }
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public Describe_table_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_describe_table_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDescribe_table_statement(this);
else return visitor.visitChildren(this);
}
}
public final Describe_table_statementContext describe_table_statement() throws RecognitionException {
Describe_table_statementContext _localctx = new Describe_table_statementContext(_ctx, getState());
enterRule(_localctx, 64, RULE_describe_table_statement);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(618);
match(DESCRIBE);
setState(619);
((Describe_table_statementContext)_localctx).table = table_name();
setState(621);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(620);
match(SEMICOLON);
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Refresh_statementContext extends ParserRuleContext {
public IdContext schema;
public TerminalNode REFRESH() { return getToken(VerdictSQLParser.REFRESH, 0); }
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public Refresh_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_refresh_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitRefresh_statement(this);
else return visitor.visitChildren(this);
}
}
public final Refresh_statementContext refresh_statement() throws RecognitionException {
Refresh_statementContext _localctx = new Refresh_statementContext(_ctx, getState());
enterRule(_localctx, 66, RULE_refresh_statement);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(623);
match(REFRESH);
setState(625);
_la = _input.LA(1);
if (_la==LEFT || _la==RIGHT || ((((_la - 223)) & ~0x3f) == 0 && ((1L << (_la - 223)) & ((1L << (AGE - 223)) | (1L << (AREA - 223)) | (1L << (CENTER - 223)) | (1L << (CIRCLE - 223)))) != 0) || ((((_la - 294)) & ~0x3f) == 0 && ((1L << (_la - 294)) & ((1L << (DATE - 294)) | (1L << (DAY - 294)) | (1L << (DAYNAME - 294)) | (1L << (DAYOFMONTH - 294)) | (1L << (DAYOFWEEK - 294)) | (1L << (DAYOFYEAR - 294)) | (1L << (DEGREES - 294)) | (1L << (DIAMETER - 294)))) != 0) || ((((_la - 362)) & ~0x3f) == 0 && ((1L << (_la - 362)) & ((1L << (HEIGHT - 362)) | (1L << (HOUR - 362)) | (1L << (LENGTH - 362)))) != 0) || ((((_la - 443)) & ~0x3f) == 0 && ((1L << (_la - 443)) & ((1L << (MAKEDATE - 443)) | (1L << (MICROSECOND - 443)) | (1L << (MINUTE - 443)) | (1L << (MOD - 443)) | (1L << (MONTH - 443)) | (1L << (MONTHNAME - 443)))) != 0) || _la==POWER || _la==SECOND || ((((_la - 613)) & ~0x3f) == 0 && ((1L << (_la - 613)) & ((1L << (TEXT - 613)) | (1L << (TIME - 613)) | (1L << (TIMESTAMP - 613)) | (1L << (VARIANCE - 613)) | (1L << (WEEKOFYEAR - 613)))) != 0) || ((((_la - 698)) & ~0x3f) == 0 && ((1L << (_la - 698)) & ((1L << (DOUBLE_QUOTE_ID - 698)) | (1L << (BACKTICK_ID - 698)) | (1L << (SQUARE_BRACKET_ID - 698)) | (1L << (ID - 698)))) != 0)) {
{
setState(624);
((Refresh_statementContext)_localctx).schema = id();
}
}
setState(628);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(627);
match(SEMICOLON);
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Show_config_statementContext extends ParserRuleContext {
public TerminalNode SHOW() { return getToken(VerdictSQLParser.SHOW, 0); }
public TerminalNode CONFIG() { return getToken(VerdictSQLParser.CONFIG, 0); }
public Show_config_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_show_config_statement; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitShow_config_statement(this);
else return visitor.visitChildren(this);
}
}
public final Show_config_statementContext show_config_statement() throws RecognitionException {
Show_config_statementContext _localctx = new Show_config_statementContext(_ctx, getState());
enterRule(_localctx, 68, RULE_show_config_statement);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(630);
match(SHOW);
setState(631);
match(CONFIG);
setState(633);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(632);
match(SEMICOLON);
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Table_type_definitionContext extends ParserRuleContext {
public TerminalNode TABLE() { return getToken(VerdictSQLParser.TABLE, 0); }
public List column_def_table_constraint() {
return getRuleContexts(Column_def_table_constraintContext.class);
}
public Column_def_table_constraintContext column_def_table_constraint(int i) {
return getRuleContext(Column_def_table_constraintContext.class,i);
}
public Table_type_definitionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_type_definition; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitTable_type_definition(this);
else return visitor.visitChildren(this);
}
}
public final Table_type_definitionContext table_type_definition() throws RecognitionException {
Table_type_definitionContext _localctx = new Table_type_definitionContext(_ctx, getState());
enterRule(_localctx, 70, RULE_table_type_definition);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(635);
match(TABLE);
setState(636);
match(LR_BRACKET);
setState(637);
column_def_table_constraint();
setState(644);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==CONSTRAINT || _la==LEFT || _la==RIGHT || ((((_la - 223)) & ~0x3f) == 0 && ((1L << (_la - 223)) & ((1L << (AGE - 223)) | (1L << (AREA - 223)) | (1L << (CENTER - 223)) | (1L << (CIRCLE - 223)))) != 0) || ((((_la - 294)) & ~0x3f) == 0 && ((1L << (_la - 294)) & ((1L << (DATE - 294)) | (1L << (DAY - 294)) | (1L << (DAYNAME - 294)) | (1L << (DAYOFMONTH - 294)) | (1L << (DAYOFWEEK - 294)) | (1L << (DAYOFYEAR - 294)) | (1L << (DEGREES - 294)) | (1L << (DIAMETER - 294)))) != 0) || ((((_la - 362)) & ~0x3f) == 0 && ((1L << (_la - 362)) & ((1L << (HEIGHT - 362)) | (1L << (HOUR - 362)) | (1L << (LENGTH - 362)))) != 0) || ((((_la - 443)) & ~0x3f) == 0 && ((1L << (_la - 443)) & ((1L << (MAKEDATE - 443)) | (1L << (MICROSECOND - 443)) | (1L << (MINUTE - 443)) | (1L << (MOD - 443)) | (1L << (MONTH - 443)) | (1L << (MONTHNAME - 443)))) != 0) || _la==POWER || _la==SECOND || ((((_la - 613)) & ~0x3f) == 0 && ((1L << (_la - 613)) & ((1L << (TEXT - 613)) | (1L << (TIME - 613)) | (1L << (TIMESTAMP - 613)) | (1L << (VARIANCE - 613)) | (1L << (WEEKOFYEAR - 613)))) != 0) || ((((_la - 698)) & ~0x3f) == 0 && ((1L << (_la - 698)) & ((1L << (DOUBLE_QUOTE_ID - 698)) | (1L << (BACKTICK_ID - 698)) | (1L << (SQUARE_BRACKET_ID - 698)) | (1L << (ID - 698)) | (1L << (LR_BRACKET - 698)) | (1L << (COMMA - 698)))) != 0)) {
{
{
setState(639);
_la = _input.LA(1);
if (_la==COMMA) {
{
setState(638);
match(COMMA);
}
}
setState(641);
column_def_table_constraint();
}
}
setState(646);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(647);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Column_def_table_constraintContext extends ParserRuleContext {
public Column_definitionContext column_definition() {
return getRuleContext(Column_definitionContext.class,0);
}
public Table_constraintContext table_constraint() {
return getRuleContext(Table_constraintContext.class,0);
}
public Column_def_table_constraintContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_column_def_table_constraint; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitColumn_def_table_constraint(this);
else return visitor.visitChildren(this);
}
}
public final Column_def_table_constraintContext column_def_table_constraint() throws RecognitionException {
Column_def_table_constraintContext _localctx = new Column_def_table_constraintContext(_ctx, getState());
enterRule(_localctx, 72, RULE_column_def_table_constraint);
try {
setState(651);
switch (_input.LA(1)) {
case LEFT:
case RIGHT:
case AGE:
case AREA:
case CENTER:
case CIRCLE:
case DATE:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DIAMETER:
case HEIGHT:
case HOUR:
case LENGTH:
case MAKEDATE:
case MICROSECOND:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case POWER:
case SECOND:
case TEXT:
case TIME:
case TIMESTAMP:
case VARIANCE:
case WEEKOFYEAR:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case ID:
enterOuterAlt(_localctx, 1);
{
setState(649);
column_definition();
}
break;
case CONSTRAINT:
case LR_BRACKET:
enterOuterAlt(_localctx, 2);
{
setState(650);
table_constraint();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Column_definitionContext extends ParserRuleContext {
public Column_nameContext column_name() {
return getRuleContext(Column_nameContext.class,0);
}
public Data_typeContext data_type() {
return getRuleContext(Data_typeContext.class,0);
}
public TerminalNode AS() { return getToken(VerdictSQLParser.AS, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Null_notnullContext null_notnull() {
return getRuleContext(Null_notnullContext.class,0);
}
public Column_definitionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_column_definition; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitColumn_definition(this);
else return visitor.visitChildren(this);
}
}
public final Column_definitionContext column_definition() throws RecognitionException {
Column_definitionContext _localctx = new Column_definitionContext(_ctx, getState());
enterRule(_localctx, 74, RULE_column_definition);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(653);
column_name();
setState(657);
switch (_input.LA(1)) {
case DOUBLE:
case LEFT:
case RIGHT:
case AGE:
case AREA:
case BIGINT:
case BIT:
case CENTER:
case CHAR:
case CIRCLE:
case DATE:
case DATETIME:
case DATETIME2:
case DATETIMEOFFSET:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DIAMETER:
case GEOGRAPHY:
case GEOMETRY:
case HEIGHT:
case HIERARCHYID:
case HOUR:
case IMAGE:
case INT:
case LENGTH:
case MAKEDATE:
case MAX:
case MICROSECOND:
case MINUTE:
case MOD:
case MONEY:
case MONTH:
case MONTHNAME:
case NCHAR:
case NTEXT:
case NUMERIC:
case NVARCHAR:
case POWER:
case SECOND:
case SMALLDATETIME:
case SMALLINT:
case SMALLMONEY:
case SQL_VARIANT:
case TEXT:
case TIME:
case TIMESTAMP:
case TINYINT:
case UNIQUEIDENTIFIER:
case VARBINARY:
case VARCHAR:
case VARIANCE:
case WEEKOFYEAR:
case XML:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case DECIMAL:
case ID:
case BINARY:
case FLOAT:
case REAL:
{
setState(654);
data_type();
}
break;
case AS:
{
setState(655);
match(AS);
setState(656);
expression(0);
}
break;
default:
throw new NoViableAltException(this);
}
setState(660);
_la = _input.LA(1);
if (_la==NOT || _la==NULL) {
{
setState(659);
null_notnull();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Column_constraintContext extends ParserRuleContext {
public TerminalNode CONSTRAINT() { return getToken(VerdictSQLParser.CONSTRAINT, 0); }
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public Null_notnullContext null_notnull() {
return getRuleContext(Null_notnullContext.class,0);
}
public Column_constraintContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_column_constraint; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitColumn_constraint(this);
else return visitor.visitChildren(this);
}
}
public final Column_constraintContext column_constraint() throws RecognitionException {
Column_constraintContext _localctx = new Column_constraintContext(_ctx, getState());
enterRule(_localctx, 76, RULE_column_constraint);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(664);
_la = _input.LA(1);
if (_la==CONSTRAINT) {
{
setState(662);
match(CONSTRAINT);
setState(663);
id();
}
}
setState(667);
_la = _input.LA(1);
if (_la==NOT || _la==NULL) {
{
setState(666);
null_notnull();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Table_constraintContext extends ParserRuleContext {
public Column_name_listContext column_name_list() {
return getRuleContext(Column_name_listContext.class,0);
}
public TerminalNode CONSTRAINT() { return getToken(VerdictSQLParser.CONSTRAINT, 0); }
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public Table_constraintContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_constraint; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitTable_constraint(this);
else return visitor.visitChildren(this);
}
}
public final Table_constraintContext table_constraint() throws RecognitionException {
Table_constraintContext _localctx = new Table_constraintContext(_ctx, getState());
enterRule(_localctx, 78, RULE_table_constraint);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(671);
_la = _input.LA(1);
if (_la==CONSTRAINT) {
{
setState(669);
match(CONSTRAINT);
setState(670);
id();
}
}
setState(673);
match(LR_BRACKET);
setState(674);
column_name_list();
setState(675);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Set_specialContext extends ParserRuleContext {
public TerminalNode SET() { return getToken(VerdictSQLParser.SET, 0); }
public List id() {
return getRuleContexts(IdContext.class);
}
public IdContext id(int i) {
return getRuleContext(IdContext.class,i);
}
public ConstantContext constant() {
return getRuleContext(ConstantContext.class,0);
}
public TerminalNode LOCAL_ID() { return getToken(VerdictSQLParser.LOCAL_ID, 0); }
public On_offContext on_off() {
return getRuleContext(On_offContext.class,0);
}
public TerminalNode TRANSACTION() { return getToken(VerdictSQLParser.TRANSACTION, 0); }
public TerminalNode ISOLATION() { return getToken(VerdictSQLParser.ISOLATION, 0); }
public TerminalNode LEVEL() { return getToken(VerdictSQLParser.LEVEL, 0); }
public TerminalNode READ() { return getToken(VerdictSQLParser.READ, 0); }
public TerminalNode UNCOMMITTED() { return getToken(VerdictSQLParser.UNCOMMITTED, 0); }
public TerminalNode COMMITTED() { return getToken(VerdictSQLParser.COMMITTED, 0); }
public TerminalNode REPEATABLE() { return getToken(VerdictSQLParser.REPEATABLE, 0); }
public TerminalNode SNAPSHOT() { return getToken(VerdictSQLParser.SNAPSHOT, 0); }
public TerminalNode SERIALIZABLE() { return getToken(VerdictSQLParser.SERIALIZABLE, 0); }
public TerminalNode IDENTITY_INSERT() { return getToken(VerdictSQLParser.IDENTITY_INSERT, 0); }
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public Set_specialContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_set_special; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSet_special(this);
else return visitor.visitChildren(this);
}
}
public final Set_specialContext set_special() throws RecognitionException {
Set_specialContext _localctx = new Set_specialContext(_ctx, getState());
enterRule(_localctx, 80, RULE_set_special);
int _la;
try {
setState(712);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,72,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(677);
match(SET);
setState(678);
id();
setState(683);
switch (_input.LA(1)) {
case LEFT:
case RIGHT:
case AGE:
case AREA:
case CENTER:
case CIRCLE:
case DATE:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DIAMETER:
case HEIGHT:
case HOUR:
case LENGTH:
case MAKEDATE:
case MICROSECOND:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case POWER:
case SECOND:
case TEXT:
case TIME:
case TIMESTAMP:
case VARIANCE:
case WEEKOFYEAR:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case ID:
{
setState(679);
id();
}
break;
case DECIMAL:
case STRING:
case BINARY:
case FLOAT:
case REAL:
case DOLLAR:
case PLUS:
case MINUS:
{
setState(680);
constant();
}
break;
case LOCAL_ID:
{
setState(681);
match(LOCAL_ID);
}
break;
case OFF:
case ON:
{
setState(682);
on_off();
}
break;
default:
throw new NoViableAltException(this);
}
setState(686);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(685);
match(SEMICOLON);
}
}
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(688);
match(SET);
setState(689);
match(TRANSACTION);
setState(690);
match(ISOLATION);
setState(691);
match(LEVEL);
setState(700);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,69,_ctx) ) {
case 1:
{
setState(692);
match(READ);
setState(693);
match(UNCOMMITTED);
}
break;
case 2:
{
setState(694);
match(READ);
setState(695);
match(COMMITTED);
}
break;
case 3:
{
setState(696);
match(REPEATABLE);
setState(697);
match(READ);
}
break;
case 4:
{
setState(698);
match(SNAPSHOT);
}
break;
case 5:
{
setState(699);
match(SERIALIZABLE);
}
break;
}
setState(703);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(702);
match(SEMICOLON);
}
}
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(705);
match(SET);
setState(706);
match(IDENTITY_INSERT);
setState(707);
table_name();
setState(708);
on_off();
setState(710);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(709);
match(SEMICOLON);
}
}
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class ExpressionContext extends ParserRuleContext {
public ExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_expression; }
public ExpressionContext() { }
public void copyFrom(ExpressionContext ctx) {
super.copyFrom(ctx);
}
}
public static class Not_expressionContext extends ExpressionContext {
public TerminalNode NOT() { return getToken(VerdictSQLParser.NOT, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Not_expressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitNot_expression(this);
else return visitor.visitChildren(this);
}
}
public static class Binary_operator_expressionContext extends ExpressionContext {
public Token op;
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public Comparison_operatorContext comparison_operator() {
return getRuleContext(Comparison_operatorContext.class,0);
}
public Binary_operator_expressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitBinary_operator_expression(this);
else return visitor.visitChildren(this);
}
}
public static class Primitive_expressionContext extends ExpressionContext {
public TerminalNode NULL() { return getToken(VerdictSQLParser.NULL, 0); }
public TerminalNode LOCAL_ID() { return getToken(VerdictSQLParser.LOCAL_ID, 0); }
public ConstantContext constant() {
return getRuleContext(ConstantContext.class,0);
}
public True_orfalseContext true_orfalse() {
return getRuleContext(True_orfalseContext.class,0);
}
public Primitive_expressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitPrimitive_expression(this);
else return visitor.visitChildren(this);
}
}
public static class Date_expressionContext extends ExpressionContext {
public DateContext date() {
return getRuleContext(DateContext.class,0);
}
public Date_expressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDate_expression(this);
else return visitor.visitChildren(this);
}
}
public static class Bracket_expressionContext extends ExpressionContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Bracket_expressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitBracket_expression(this);
else return visitor.visitChildren(this);
}
}
public static class Unary_operator_expressionContext extends ExpressionContext {
public Token op;
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Unary_operator_expressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitUnary_operator_expression(this);
else return visitor.visitChildren(this);
}
}
public static class Interval_expressionContext extends ExpressionContext {
public IntervalContext interval() {
return getRuleContext(IntervalContext.class,0);
}
public Interval_expressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitInterval_expression(this);
else return visitor.visitChildren(this);
}
}
public static class Function_call_expressionContext extends ExpressionContext {
public Function_callContext function_call() {
return getRuleContext(Function_callContext.class,0);
}
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode COLLATE() { return getToken(VerdictSQLParser.COLLATE, 0); }
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public Function_call_expressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitFunction_call_expression(this);
else return visitor.visitChildren(this);
}
}
public static class Is_null_expressionContext extends ExpressionContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode IS() { return getToken(VerdictSQLParser.IS, 0); }
public Null_notnullContext null_notnull() {
return getRuleContext(Null_notnullContext.class,0);
}
public Is_null_expressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitIs_null_expression(this);
else return visitor.visitChildren(this);
}
}
public static class Case_expressionContext extends ExpressionContext {
public Case_exprContext case_expr() {
return getRuleContext(Case_exprContext.class,0);
}
public Case_expressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitCase_expression(this);
else return visitor.visitChildren(this);
}
}
public static class Column_ref_expressionContext extends ExpressionContext {
public Full_column_nameContext full_column_name() {
return getRuleContext(Full_column_nameContext.class,0);
}
public Column_ref_expressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitColumn_ref_expression(this);
else return visitor.visitChildren(this);
}
}
public static class Subquery_expressionContext extends ExpressionContext {
public SubqueryContext subquery() {
return getRuleContext(SubqueryContext.class,0);
}
public Subquery_expressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSubquery_expression(this);
else return visitor.visitChildren(this);
}
}
public final ExpressionContext expression() throws RecognitionException {
return expression(0);
}
private ExpressionContext expression(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState);
ExpressionContext _prevctx = _localctx;
int _startState = 82;
enterRecursionRule(_localctx, 82, RULE_expression, _p);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(738);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,73,_ctx) ) {
case 1:
{
_localctx = new Primitive_expressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(715);
match(NULL);
}
break;
case 2:
{
_localctx = new Primitive_expressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(716);
match(LOCAL_ID);
}
break;
case 3:
{
_localctx = new Primitive_expressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(717);
constant();
}
break;
case 4:
{
_localctx = new Primitive_expressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(718);
true_orfalse();
}
break;
case 5:
{
_localctx = new Case_expressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(719);
case_expr();
}
break;
case 6:
{
_localctx = new Column_ref_expressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(720);
full_column_name();
}
break;
case 7:
{
_localctx = new Bracket_expressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(721);
match(LR_BRACKET);
setState(722);
expression(0);
setState(723);
match(RR_BRACKET);
}
break;
case 8:
{
_localctx = new Subquery_expressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(725);
match(LR_BRACKET);
setState(726);
subquery();
setState(727);
match(RR_BRACKET);
}
break;
case 9:
{
_localctx = new Unary_operator_expressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(729);
match(BIT_NOT);
setState(730);
expression(11);
}
break;
case 10:
{
_localctx = new Unary_operator_expressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(731);
((Unary_operator_expressionContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==PLUS || _la==MINUS) ) {
((Unary_operator_expressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
setState(732);
expression(9);
}
break;
case 11:
{
_localctx = new Not_expressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(733);
match(NOT);
setState(734);
expression(6);
}
break;
case 12:
{
_localctx = new Interval_expressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(735);
interval();
}
break;
case 13:
{
_localctx = new Date_expressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(736);
date();
}
break;
case 14:
{
_localctx = new Function_call_expressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(737);
function_call();
}
break;
}
_ctx.stop = _input.LT(-1);
setState(758);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,75,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
setState(756);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,74,_ctx) ) {
case 1:
{
_localctx = new Binary_operator_expressionContext(new ExpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(740);
if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)");
setState(741);
((Binary_operator_expressionContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !(((((_la - 730)) & ~0x3f) == 0 && ((1L << (_la - 730)) & ((1L << (STAR - 730)) | (1L << (DIVIDE - 730)) | (1L << (MODULE - 730)))) != 0)) ) {
((Binary_operator_expressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
setState(742);
expression(11);
}
break;
case 2:
{
_localctx = new Binary_operator_expressionContext(new ExpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(743);
if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)");
setState(744);
((Binary_operator_expressionContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !(((((_la - 723)) & ~0x3f) == 0 && ((1L << (_la - 723)) & ((1L << (SHARP - 723)) | (1L << (PLUS - 723)) | (1L << (MINUS - 723)) | (1L << (BIT_OR - 723)) | (1L << (BIT_AND - 723)) | (1L << (BIT_XOR - 723)) | (1L << (BIT_CONCAT - 723)) | (1L << (BIT_LSHIFT - 723)) | (1L << (BIT_RSHIFT - 723)))) != 0)) ) {
((Binary_operator_expressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
setState(745);
expression(9);
}
break;
case 3:
{
_localctx = new Binary_operator_expressionContext(new ExpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(746);
if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)");
setState(747);
comparison_operator();
setState(748);
expression(8);
}
break;
case 4:
{
_localctx = new Is_null_expressionContext(new ExpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(750);
if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
setState(751);
match(IS);
setState(752);
null_notnull();
}
break;
case 5:
{
_localctx = new Function_call_expressionContext(new ExpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(753);
if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
setState(754);
match(COLLATE);
setState(755);
id();
}
break;
}
}
}
setState(760);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,75,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public static class IntervalContext extends ParserRuleContext {
public TerminalNode INTERVAL() { return getToken(VerdictSQLParser.INTERVAL, 0); }
public Constant_expressionContext constant_expression() {
return getRuleContext(Constant_expressionContext.class,0);
}
public TerminalNode DAY() { return getToken(VerdictSQLParser.DAY, 0); }
public TerminalNode DAYS() { return getToken(VerdictSQLParser.DAYS, 0); }
public TerminalNode MONTH() { return getToken(VerdictSQLParser.MONTH, 0); }
public TerminalNode MONTHS() { return getToken(VerdictSQLParser.MONTHS, 0); }
public TerminalNode YEAR() { return getToken(VerdictSQLParser.YEAR, 0); }
public TerminalNode YEARS() { return getToken(VerdictSQLParser.YEARS, 0); }
public IntervalContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_interval; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitInterval(this);
else return visitor.visitChildren(this);
}
}
public final IntervalContext interval() throws RecognitionException {
IntervalContext _localctx = new IntervalContext(_ctx, getState());
enterRule(_localctx, 84, RULE_interval);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(761);
match(INTERVAL);
setState(762);
constant_expression();
setState(763);
_la = _input.LA(1);
if ( !(_la==DAY || _la==DAYS || _la==MONTH || _la==MONTHS || _la==YEAR || _la==YEARS) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class DateContext extends ParserRuleContext {
public TerminalNode DATE() { return getToken(VerdictSQLParser.DATE, 0); }
public Constant_expressionContext constant_expression() {
return getRuleContext(Constant_expressionContext.class,0);
}
public DateContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_date; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDate(this);
else return visitor.visitChildren(this);
}
}
public final DateContext date() throws RecognitionException {
DateContext _localctx = new DateContext(_ctx, getState());
enterRule(_localctx, 86, RULE_date);
try {
enterOuterAlt(_localctx, 1);
{
setState(765);
match(DATE);
setState(766);
constant_expression();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Constant_expressionContext extends ParserRuleContext {
public TerminalNode NULL() { return getToken(VerdictSQLParser.NULL, 0); }
public ConstantContext constant() {
return getRuleContext(ConstantContext.class,0);
}
public TerminalNode LOCAL_ID() { return getToken(VerdictSQLParser.LOCAL_ID, 0); }
public Constant_expressionContext constant_expression() {
return getRuleContext(Constant_expressionContext.class,0);
}
public Constant_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_constant_expression; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitConstant_expression(this);
else return visitor.visitChildren(this);
}
}
public final Constant_expressionContext constant_expression() throws RecognitionException {
Constant_expressionContext _localctx = new Constant_expressionContext(_ctx, getState());
enterRule(_localctx, 88, RULE_constant_expression);
try {
setState(775);
switch (_input.LA(1)) {
case NULL:
enterOuterAlt(_localctx, 1);
{
setState(768);
match(NULL);
}
break;
case DECIMAL:
case STRING:
case BINARY:
case FLOAT:
case REAL:
case DOLLAR:
case PLUS:
case MINUS:
enterOuterAlt(_localctx, 2);
{
setState(769);
constant();
}
break;
case LOCAL_ID:
enterOuterAlt(_localctx, 3);
{
setState(770);
match(LOCAL_ID);
}
break;
case LR_BRACKET:
enterOuterAlt(_localctx, 4);
{
setState(771);
match(LR_BRACKET);
setState(772);
constant_expression();
setState(773);
match(RR_BRACKET);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class SubqueryContext extends ParserRuleContext {
public Select_statementContext select_statement() {
return getRuleContext(Select_statementContext.class,0);
}
public SubqueryContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_subquery; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSubquery(this);
else return visitor.visitChildren(this);
}
}
public final SubqueryContext subquery() throws RecognitionException {
SubqueryContext _localctx = new SubqueryContext(_ctx, getState());
enterRule(_localctx, 90, RULE_subquery);
try {
enterOuterAlt(_localctx, 1);
{
setState(777);
select_statement();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Dml_table_sourceContext extends ParserRuleContext {
public Query_specificationContext query_specification() {
return getRuleContext(Query_specificationContext.class,0);
}
public Dml_table_sourceContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_dml_table_source; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDml_table_source(this);
else return visitor.visitChildren(this);
}
}
public final Dml_table_sourceContext dml_table_source() throws RecognitionException {
Dml_table_sourceContext _localctx = new Dml_table_sourceContext(_ctx, getState());
enterRule(_localctx, 92, RULE_dml_table_source);
try {
enterOuterAlt(_localctx, 1);
{
setState(779);
query_specification();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class With_expressionContext extends ParserRuleContext {
public TerminalNode WITH() { return getToken(VerdictSQLParser.WITH, 0); }
public List common_table_expression() {
return getRuleContexts(Common_table_expressionContext.class);
}
public Common_table_expressionContext common_table_expression(int i) {
return getRuleContext(Common_table_expressionContext.class,i);
}
public TerminalNode XMLNAMESPACES() { return getToken(VerdictSQLParser.XMLNAMESPACES, 0); }
public With_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_with_expression; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitWith_expression(this);
else return visitor.visitChildren(this);
}
}
public final With_expressionContext with_expression() throws RecognitionException {
With_expressionContext _localctx = new With_expressionContext(_ctx, getState());
enterRule(_localctx, 94, RULE_with_expression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(781);
match(WITH);
setState(784);
_la = _input.LA(1);
if (_la==XMLNAMESPACES) {
{
setState(782);
match(XMLNAMESPACES);
setState(783);
match(COMMA);
}
}
setState(786);
common_table_expression();
setState(791);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(787);
match(COMMA);
setState(788);
common_table_expression();
}
}
setState(793);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Common_table_expressionContext extends ParserRuleContext {
public IdContext expression_name;
public TerminalNode AS() { return getToken(VerdictSQLParser.AS, 0); }
public Select_statementContext select_statement() {
return getRuleContext(Select_statementContext.class,0);
}
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public Column_name_listContext column_name_list() {
return getRuleContext(Column_name_listContext.class,0);
}
public Common_table_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_common_table_expression; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitCommon_table_expression(this);
else return visitor.visitChildren(this);
}
}
public final Common_table_expressionContext common_table_expression() throws RecognitionException {
Common_table_expressionContext _localctx = new Common_table_expressionContext(_ctx, getState());
enterRule(_localctx, 96, RULE_common_table_expression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(794);
((Common_table_expressionContext)_localctx).expression_name = id();
setState(799);
_la = _input.LA(1);
if (_la==LR_BRACKET) {
{
setState(795);
match(LR_BRACKET);
setState(796);
column_name_list();
setState(797);
match(RR_BRACKET);
}
}
setState(801);
match(AS);
setState(802);
match(LR_BRACKET);
setState(803);
select_statement();
setState(804);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Update_elemContext extends ParserRuleContext {
public IdContext udt_column_name;
public IdContext method_name;
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Full_column_nameContext full_column_name() {
return getRuleContext(Full_column_nameContext.class,0);
}
public TerminalNode LOCAL_ID() { return getToken(VerdictSQLParser.LOCAL_ID, 0); }
public Assignment_operatorContext assignment_operator() {
return getRuleContext(Assignment_operatorContext.class,0);
}
public Expression_listContext expression_list() {
return getRuleContext(Expression_listContext.class,0);
}
public List id() {
return getRuleContexts(IdContext.class);
}
public IdContext id(int i) {
return getRuleContext(IdContext.class,i);
}
public Update_elemContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_update_elem; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitUpdate_elem(this);
else return visitor.visitChildren(this);
}
}
public final Update_elemContext update_elem() throws RecognitionException {
Update_elemContext _localctx = new Update_elemContext(_ctx, getState());
enterRule(_localctx, 98, RULE_update_elem);
try {
setState(822);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,82,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(808);
switch (_input.LA(1)) {
case LEFT:
case RIGHT:
case AGE:
case AREA:
case CENTER:
case CIRCLE:
case DATE:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DIAMETER:
case HEIGHT:
case HOUR:
case LENGTH:
case MAKEDATE:
case MICROSECOND:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case POWER:
case SECOND:
case TEXT:
case TIME:
case TIMESTAMP:
case VARIANCE:
case WEEKOFYEAR:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case ID:
{
setState(806);
full_column_name();
}
break;
case LOCAL_ID:
{
setState(807);
match(LOCAL_ID);
}
break;
default:
throw new NoViableAltException(this);
}
setState(812);
switch (_input.LA(1)) {
case EQUAL:
{
setState(810);
match(EQUAL);
}
break;
case PLUS_ASSIGN:
case MINUS_ASSIGN:
case MULT_ASSIGN:
case DIV_ASSIGN:
case MOD_ASSIGN:
case AND_ASSIGN:
case XOR_ASSIGN:
case OR_ASSIGN:
{
setState(811);
assignment_operator();
}
break;
default:
throw new NoViableAltException(this);
}
setState(814);
expression(0);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(815);
((Update_elemContext)_localctx).udt_column_name = id();
setState(816);
match(DOT);
setState(817);
((Update_elemContext)_localctx).method_name = id();
setState(818);
match(LR_BRACKET);
setState(819);
expression_list();
setState(820);
match(RR_BRACKET);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Search_condition_listContext extends ParserRuleContext {
public List search_condition() {
return getRuleContexts(Search_conditionContext.class);
}
public Search_conditionContext search_condition(int i) {
return getRuleContext(Search_conditionContext.class,i);
}
public Search_condition_listContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_search_condition_list; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSearch_condition_list(this);
else return visitor.visitChildren(this);
}
}
public final Search_condition_listContext search_condition_list() throws RecognitionException {
Search_condition_listContext _localctx = new Search_condition_listContext(_ctx, getState());
enterRule(_localctx, 100, RULE_search_condition_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(824);
search_condition();
setState(829);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(825);
match(COMMA);
setState(826);
search_condition();
}
}
setState(831);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Search_conditionContext extends ParserRuleContext {
public List search_condition_or() {
return getRuleContexts(Search_condition_orContext.class);
}
public Search_condition_orContext search_condition_or(int i) {
return getRuleContext(Search_condition_orContext.class,i);
}
public List AND() { return getTokens(VerdictSQLParser.AND); }
public TerminalNode AND(int i) {
return getToken(VerdictSQLParser.AND, i);
}
public Search_conditionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_search_condition; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSearch_condition(this);
else return visitor.visitChildren(this);
}
}
public final Search_conditionContext search_condition() throws RecognitionException {
Search_conditionContext _localctx = new Search_conditionContext(_ctx, getState());
enterRule(_localctx, 102, RULE_search_condition);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(832);
search_condition_or();
setState(837);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==AND) {
{
{
setState(833);
match(AND);
setState(834);
search_condition_or();
}
}
setState(839);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Search_condition_orContext extends ParserRuleContext {
public List search_condition_not() {
return getRuleContexts(Search_condition_notContext.class);
}
public Search_condition_notContext search_condition_not(int i) {
return getRuleContext(Search_condition_notContext.class,i);
}
public List OR() { return getTokens(VerdictSQLParser.OR); }
public TerminalNode OR(int i) {
return getToken(VerdictSQLParser.OR, i);
}
public Search_condition_orContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_search_condition_or; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSearch_condition_or(this);
else return visitor.visitChildren(this);
}
}
public final Search_condition_orContext search_condition_or() throws RecognitionException {
Search_condition_orContext _localctx = new Search_condition_orContext(_ctx, getState());
enterRule(_localctx, 104, RULE_search_condition_or);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(840);
search_condition_not();
setState(845);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==OR) {
{
{
setState(841);
match(OR);
setState(842);
search_condition_not();
}
}
setState(847);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Search_condition_notContext extends ParserRuleContext {
public PredicateContext predicate() {
return getRuleContext(PredicateContext.class,0);
}
public TerminalNode NOT() { return getToken(VerdictSQLParser.NOT, 0); }
public Search_condition_notContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_search_condition_not; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSearch_condition_not(this);
else return visitor.visitChildren(this);
}
}
public final Search_condition_notContext search_condition_not() throws RecognitionException {
Search_condition_notContext _localctx = new Search_condition_notContext(_ctx, getState());
enterRule(_localctx, 106, RULE_search_condition_not);
try {
enterOuterAlt(_localctx, 1);
{
setState(849);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,86,_ctx) ) {
case 1:
{
setState(848);
match(NOT);
}
break;
}
setState(851);
predicate(0);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class PredicateContext extends ParserRuleContext {
public PredicateContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_predicate; }
public PredicateContext() { }
public void copyFrom(PredicateContext ctx) {
super.copyFrom(ctx);
}
}
public static class Setcomp_expr_predicateContext extends PredicateContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Comparison_operatorContext comparison_operator() {
return getRuleContext(Comparison_operatorContext.class,0);
}
public SubqueryContext subquery() {
return getRuleContext(SubqueryContext.class,0);
}
public TerminalNode ALL() { return getToken(VerdictSQLParser.ALL, 0); }
public TerminalNode SOME() { return getToken(VerdictSQLParser.SOME, 0); }
public TerminalNode ANY() { return getToken(VerdictSQLParser.ANY, 0); }
public Setcomp_expr_predicateContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSetcomp_expr_predicate(this);
else return visitor.visitChildren(this);
}
}
public static class Is_predicateContext extends PredicateContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode IS() { return getToken(VerdictSQLParser.IS, 0); }
public Null_notnullContext null_notnull() {
return getRuleContext(Null_notnullContext.class,0);
}
public Is_predicateContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitIs_predicate(this);
else return visitor.visitChildren(this);
}
}
public static class Func_predicateContext extends PredicateContext {
public Predicate_functionContext predicate_function() {
return getRuleContext(Predicate_functionContext.class,0);
}
public Func_predicateContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitFunc_predicate(this);
else return visitor.visitChildren(this);
}
}
public static class Comp_expr_predicateContext extends PredicateContext {
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public Comparison_operatorContext comparison_operator() {
return getRuleContext(Comparison_operatorContext.class,0);
}
public Comp_expr_predicateContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitComp_expr_predicate(this);
else return visitor.visitChildren(this);
}
}
public static class In_predicateContext extends PredicateContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode IN() { return getToken(VerdictSQLParser.IN, 0); }
public SubqueryContext subquery() {
return getRuleContext(SubqueryContext.class,0);
}
public Expression_listContext expression_list() {
return getRuleContext(Expression_listContext.class,0);
}
public TerminalNode NOT() { return getToken(VerdictSQLParser.NOT, 0); }
public In_predicateContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitIn_predicate(this);
else return visitor.visitChildren(this);
}
}
public static class Bracket_predicateContext extends PredicateContext {
public Search_conditionContext search_condition() {
return getRuleContext(Search_conditionContext.class,0);
}
public Bracket_predicateContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitBracket_predicate(this);
else return visitor.visitChildren(this);
}
}
public static class Exists_predicateContext extends PredicateContext {
public TerminalNode EXISTS() { return getToken(VerdictSQLParser.EXISTS, 0); }
public SubqueryContext subquery() {
return getRuleContext(SubqueryContext.class,0);
}
public Exists_predicateContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitExists_predicate(this);
else return visitor.visitChildren(this);
}
}
public static class Comp_pred_expr_predicateContext extends PredicateContext {
public PredicateContext predicate() {
return getRuleContext(PredicateContext.class,0);
}
public Comparison_operatorContext comparison_operator() {
return getRuleContext(Comparison_operatorContext.class,0);
}
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Comp_pred_expr_predicateContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitComp_pred_expr_predicate(this);
else return visitor.visitChildren(this);
}
}
public static class Comp_between_exprContext extends PredicateContext {
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public TerminalNode BETWEEN() { return getToken(VerdictSQLParser.BETWEEN, 0); }
public TerminalNode AND() { return getToken(VerdictSQLParser.AND, 0); }
public TerminalNode NOT() { return getToken(VerdictSQLParser.NOT, 0); }
public Comp_between_exprContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitComp_between_expr(this);
else return visitor.visitChildren(this);
}
}
public static class Like_predicateContext extends PredicateContext {
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public TerminalNode LIKE() { return getToken(VerdictSQLParser.LIKE, 0); }
public TerminalNode RLIKE() { return getToken(VerdictSQLParser.RLIKE, 0); }
public TerminalNode NOT() { return getToken(VerdictSQLParser.NOT, 0); }
public TerminalNode ESCAPE() { return getToken(VerdictSQLParser.ESCAPE, 0); }
public Like_predicateContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitLike_predicate(this);
else return visitor.visitChildren(this);
}
}
public final PredicateContext predicate() throws RecognitionException {
return predicate(0);
}
private PredicateContext predicate(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
PredicateContext _localctx = new PredicateContext(_ctx, _parentState);
PredicateContext _prevctx = _localctx;
int _startState = 108;
enterRecursionRule(_localctx, 108, RULE_predicate, _p);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(910);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,92,_ctx) ) {
case 1:
{
_localctx = new Exists_predicateContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(854);
match(EXISTS);
setState(855);
match(LR_BRACKET);
setState(856);
subquery();
setState(857);
match(RR_BRACKET);
}
break;
case 2:
{
_localctx = new Bracket_predicateContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(859);
match(LR_BRACKET);
setState(860);
search_condition();
setState(861);
match(RR_BRACKET);
}
break;
case 3:
{
_localctx = new Comp_expr_predicateContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(863);
expression(0);
setState(864);
comparison_operator();
setState(865);
expression(0);
}
break;
case 4:
{
_localctx = new Setcomp_expr_predicateContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(867);
expression(0);
setState(868);
comparison_operator();
setState(869);
_la = _input.LA(1);
if ( !(_la==ALL || _la==ANY || _la==SOME) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(870);
match(LR_BRACKET);
setState(871);
subquery();
setState(872);
match(RR_BRACKET);
}
break;
case 5:
{
_localctx = new Comp_between_exprContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(874);
expression(0);
setState(876);
_la = _input.LA(1);
if (_la==NOT) {
{
setState(875);
match(NOT);
}
}
setState(878);
match(BETWEEN);
setState(879);
expression(0);
setState(880);
match(AND);
setState(881);
expression(0);
}
break;
case 6:
{
_localctx = new In_predicateContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(883);
expression(0);
setState(885);
_la = _input.LA(1);
if (_la==NOT) {
{
setState(884);
match(NOT);
}
}
setState(887);
match(IN);
setState(888);
match(LR_BRACKET);
setState(891);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,89,_ctx) ) {
case 1:
{
setState(889);
subquery();
}
break;
case 2:
{
setState(890);
expression_list();
}
break;
}
setState(893);
match(RR_BRACKET);
}
break;
case 7:
{
_localctx = new Like_predicateContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(895);
expression(0);
setState(897);
_la = _input.LA(1);
if (_la==NOT) {
{
setState(896);
match(NOT);
}
}
setState(899);
_la = _input.LA(1);
if ( !(_la==LIKE || _la==RLIKE) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(900);
expression(0);
setState(903);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,91,_ctx) ) {
case 1:
{
setState(901);
match(ESCAPE);
setState(902);
expression(0);
}
break;
}
}
break;
case 8:
{
_localctx = new Is_predicateContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(905);
expression(0);
setState(906);
match(IS);
setState(907);
null_notnull();
}
break;
case 9:
{
_localctx = new Func_predicateContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(909);
predicate_function();
}
break;
}
_ctx.stop = _input.LT(-1);
setState(918);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,93,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
{
_localctx = new Comp_pred_expr_predicateContext(new PredicateContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_predicate);
setState(912);
if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)");
setState(913);
comparison_operator();
setState(914);
expression(0);
}
}
}
setState(920);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,93,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public static class Query_expressionContext extends ParserRuleContext {
public Query_specificationContext query_specification() {
return getRuleContext(Query_specificationContext.class,0);
}
public Query_expressionContext query_expression() {
return getRuleContext(Query_expressionContext.class,0);
}
public List union() {
return getRuleContexts(UnionContext.class);
}
public UnionContext union(int i) {
return getRuleContext(UnionContext.class,i);
}
public Query_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_query_expression; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitQuery_expression(this);
else return visitor.visitChildren(this);
}
}
public final Query_expressionContext query_expression() throws RecognitionException {
Query_expressionContext _localctx = new Query_expressionContext(_ctx, getState());
enterRule(_localctx, 110, RULE_query_expression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(926);
switch (_input.LA(1)) {
case SELECT:
{
setState(921);
query_specification();
}
break;
case LR_BRACKET:
{
setState(922);
match(LR_BRACKET);
setState(923);
query_expression();
setState(924);
match(RR_BRACKET);
}
break;
default:
throw new NoViableAltException(this);
}
setState(931);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==EXCEPT || _la==INTERSECT || _la==UNION) {
{
{
setState(928);
union();
}
}
setState(933);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class UnionContext extends ParserRuleContext {
public TerminalNode UNION() { return getToken(VerdictSQLParser.UNION, 0); }
public TerminalNode EXCEPT() { return getToken(VerdictSQLParser.EXCEPT, 0); }
public TerminalNode INTERSECT() { return getToken(VerdictSQLParser.INTERSECT, 0); }
public Query_specificationContext query_specification() {
return getRuleContext(Query_specificationContext.class,0);
}
public TerminalNode ALL() { return getToken(VerdictSQLParser.ALL, 0); }
public List query_expression() {
return getRuleContexts(Query_expressionContext.class);
}
public Query_expressionContext query_expression(int i) {
return getRuleContext(Query_expressionContext.class,i);
}
public UnionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_union; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitUnion(this);
else return visitor.visitChildren(this);
}
}
public final UnionContext union() throws RecognitionException {
UnionContext _localctx = new UnionContext(_ctx, getState());
enterRule(_localctx, 112, RULE_union);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(940);
switch (_input.LA(1)) {
case UNION:
{
setState(934);
match(UNION);
setState(936);
_la = _input.LA(1);
if (_la==ALL) {
{
setState(935);
match(ALL);
}
}
}
break;
case EXCEPT:
{
setState(938);
match(EXCEPT);
}
break;
case INTERSECT:
{
setState(939);
match(INTERSECT);
}
break;
default:
throw new NoViableAltException(this);
}
setState(951);
switch (_input.LA(1)) {
case SELECT:
{
setState(942);
query_specification();
}
break;
case LR_BRACKET:
{
setState(947);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(943);
match(LR_BRACKET);
setState(944);
query_expression();
setState(945);
match(RR_BRACKET);
}
}
setState(949);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( _la==LR_BRACKET );
}
break;
default:
throw new NoViableAltException(this);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Query_specificationContext extends ParserRuleContext {
public Table_nameContext into_table;
public Search_conditionContext where;
public Search_conditionContext having;
public TerminalNode SELECT() { return getToken(VerdictSQLParser.SELECT, 0); }
public Select_listContext select_list() {
return getRuleContext(Select_listContext.class,0);
}
public Top_clauseContext top_clause() {
return getRuleContext(Top_clauseContext.class,0);
}
public TerminalNode INTO() { return getToken(VerdictSQLParser.INTO, 0); }
public TerminalNode FROM() { return getToken(VerdictSQLParser.FROM, 0); }
public TerminalNode WHERE() { return getToken(VerdictSQLParser.WHERE, 0); }
public TerminalNode HAVING() { return getToken(VerdictSQLParser.HAVING, 0); }
public TerminalNode ALL() { return getToken(VerdictSQLParser.ALL, 0); }
public TerminalNode DISTINCT() { return getToken(VerdictSQLParser.DISTINCT, 0); }
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public List search_condition() {
return getRuleContexts(Search_conditionContext.class);
}
public Search_conditionContext search_condition(int i) {
return getRuleContext(Search_conditionContext.class,i);
}
public List table_source() {
return getRuleContexts(Table_sourceContext.class);
}
public Table_sourceContext table_source(int i) {
return getRuleContext(Table_sourceContext.class,i);
}
public TerminalNode GROUP() { return getToken(VerdictSQLParser.GROUP, 0); }
public TerminalNode BY() { return getToken(VerdictSQLParser.BY, 0); }
public List group_by_item() {
return getRuleContexts(Group_by_itemContext.class);
}
public Group_by_itemContext group_by_item(int i) {
return getRuleContext(Group_by_itemContext.class,i);
}
public TerminalNode ROLLUP() { return getToken(VerdictSQLParser.ROLLUP, 0); }
public TerminalNode WITH() { return getToken(VerdictSQLParser.WITH, 0); }
public Query_specificationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_query_specification; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitQuery_specification(this);
else return visitor.visitChildren(this);
}
}
public final Query_specificationContext query_specification() throws RecognitionException {
Query_specificationContext _localctx = new Query_specificationContext(_ctx, getState());
enterRule(_localctx, 114, RULE_query_specification);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(953);
match(SELECT);
setState(955);
_la = _input.LA(1);
if (_la==ALL || _la==DISTINCT) {
{
setState(954);
_la = _input.LA(1);
if ( !(_la==ALL || _la==DISTINCT) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
setState(958);
_la = _input.LA(1);
if (_la==TOP) {
{
setState(957);
top_clause();
}
}
setState(960);
select_list();
setState(963);
_la = _input.LA(1);
if (_la==INTO) {
{
setState(961);
match(INTO);
setState(962);
((Query_specificationContext)_localctx).into_table = table_name();
}
}
setState(974);
_la = _input.LA(1);
if (_la==FROM) {
{
setState(965);
match(FROM);
{
setState(966);
table_source();
setState(971);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(967);
match(COMMA);
setState(968);
table_source();
}
}
setState(973);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
}
setState(978);
_la = _input.LA(1);
if (_la==WHERE) {
{
setState(976);
match(WHERE);
setState(977);
((Query_specificationContext)_localctx).where = search_condition();
}
}
setState(1008);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,109,_ctx) ) {
case 1:
{
{
setState(980);
match(GROUP);
setState(981);
match(BY);
setState(982);
group_by_item();
setState(987);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(983);
match(COMMA);
setState(984);
group_by_item();
}
}
setState(989);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(992);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,107,_ctx) ) {
case 1:
{
setState(990);
match(WITH);
setState(991);
match(ROLLUP);
}
break;
}
}
}
break;
case 2:
{
{
setState(994);
match(GROUP);
setState(995);
match(BY);
setState(996);
match(ROLLUP);
setState(997);
match(LR_BRACKET);
setState(998);
group_by_item();
setState(1003);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(999);
match(COMMA);
setState(1000);
group_by_item();
}
}
setState(1005);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1006);
match(RR_BRACKET);
}
}
break;
}
setState(1012);
_la = _input.LA(1);
if (_la==HAVING) {
{
setState(1010);
match(HAVING);
setState(1011);
((Query_specificationContext)_localctx).having = search_condition();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Top_clauseContext extends ParserRuleContext {
public TerminalNode TOP() { return getToken(VerdictSQLParser.TOP, 0); }
public NumberContext number() {
return getRuleContext(NumberContext.class,0);
}
public Top_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_top_clause; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitTop_clause(this);
else return visitor.visitChildren(this);
}
}
public final Top_clauseContext top_clause() throws RecognitionException {
Top_clauseContext _localctx = new Top_clauseContext(_ctx, getState());
enterRule(_localctx, 116, RULE_top_clause);
try {
enterOuterAlt(_localctx, 1);
{
setState(1014);
match(TOP);
setState(1015);
number();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Limit_clauseContext extends ParserRuleContext {
public TerminalNode LIMIT() { return getToken(VerdictSQLParser.LIMIT, 0); }
public NumberContext number() {
return getRuleContext(NumberContext.class,0);
}
public Limit_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_limit_clause; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitLimit_clause(this);
else return visitor.visitChildren(this);
}
}
public final Limit_clauseContext limit_clause() throws RecognitionException {
Limit_clauseContext _localctx = new Limit_clauseContext(_ctx, getState());
enterRule(_localctx, 118, RULE_limit_clause);
try {
enterOuterAlt(_localctx, 1);
{
setState(1017);
match(LIMIT);
setState(1018);
number();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Order_by_clauseContext extends ParserRuleContext {
public TerminalNode ORDER() { return getToken(VerdictSQLParser.ORDER, 0); }
public TerminalNode BY() { return getToken(VerdictSQLParser.BY, 0); }
public List order_by_expression() {
return getRuleContexts(Order_by_expressionContext.class);
}
public Order_by_expressionContext order_by_expression(int i) {
return getRuleContext(Order_by_expressionContext.class,i);
}
public TerminalNode OFFSET() { return getToken(VerdictSQLParser.OFFSET, 0); }
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public List ROW() { return getTokens(VerdictSQLParser.ROW); }
public TerminalNode ROW(int i) {
return getToken(VerdictSQLParser.ROW, i);
}
public List ROWS() { return getTokens(VerdictSQLParser.ROWS); }
public TerminalNode ROWS(int i) {
return getToken(VerdictSQLParser.ROWS, i);
}
public TerminalNode FETCH() { return getToken(VerdictSQLParser.FETCH, 0); }
public TerminalNode ONLY() { return getToken(VerdictSQLParser.ONLY, 0); }
public TerminalNode FIRST() { return getToken(VerdictSQLParser.FIRST, 0); }
public TerminalNode NEXT() { return getToken(VerdictSQLParser.NEXT, 0); }
public Order_by_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_order_by_clause; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitOrder_by_clause(this);
else return visitor.visitChildren(this);
}
}
public final Order_by_clauseContext order_by_clause() throws RecognitionException {
Order_by_clauseContext _localctx = new Order_by_clauseContext(_ctx, getState());
enterRule(_localctx, 120, RULE_order_by_clause);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1020);
match(ORDER);
setState(1021);
match(BY);
setState(1022);
order_by_expression();
setState(1027);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1023);
match(COMMA);
setState(1024);
order_by_expression();
}
}
setState(1029);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1041);
_la = _input.LA(1);
if (_la==OFFSET) {
{
setState(1030);
match(OFFSET);
setState(1031);
expression(0);
setState(1032);
_la = _input.LA(1);
if ( !(_la==ROW || _la==ROWS) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(1039);
_la = _input.LA(1);
if (_la==FETCH) {
{
setState(1033);
match(FETCH);
setState(1034);
_la = _input.LA(1);
if ( !(_la==FIRST || _la==NEXT) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(1035);
expression(0);
setState(1036);
_la = _input.LA(1);
if ( !(_la==ROW || _la==ROWS) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(1037);
match(ONLY);
}
}
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class For_clauseContext extends ParserRuleContext {
public TerminalNode FOR() { return getToken(VerdictSQLParser.FOR, 0); }
public TerminalNode BROWSE() { return getToken(VerdictSQLParser.BROWSE, 0); }
public TerminalNode XML() { return getToken(VerdictSQLParser.XML, 0); }
public TerminalNode AUTO() { return getToken(VerdictSQLParser.AUTO, 0); }
public Xml_common_directivesContext xml_common_directives() {
return getRuleContext(Xml_common_directivesContext.class,0);
}
public TerminalNode PATH() { return getToken(VerdictSQLParser.PATH, 0); }
public TerminalNode STRING() { return getToken(VerdictSQLParser.STRING, 0); }
public For_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_for_clause; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitFor_clause(this);
else return visitor.visitChildren(this);
}
}
public final For_clauseContext for_clause() throws RecognitionException {
For_clauseContext _localctx = new For_clauseContext(_ctx, getState());
enterRule(_localctx, 122, RULE_for_clause);
int _la;
try {
setState(1062);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,117,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1043);
match(FOR);
setState(1044);
match(BROWSE);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1045);
match(FOR);
setState(1046);
match(XML);
setState(1047);
match(AUTO);
setState(1049);
_la = _input.LA(1);
if (_la==COMMA) {
{
setState(1048);
xml_common_directives();
}
}
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1051);
match(FOR);
setState(1052);
match(XML);
setState(1053);
match(PATH);
setState(1057);
_la = _input.LA(1);
if (_la==LR_BRACKET) {
{
setState(1054);
match(LR_BRACKET);
setState(1055);
match(STRING);
setState(1056);
match(RR_BRACKET);
}
}
setState(1060);
_la = _input.LA(1);
if (_la==COMMA) {
{
setState(1059);
xml_common_directives();
}
}
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Xml_common_directivesContext extends ParserRuleContext {
public TerminalNode BINARY() { return getToken(VerdictSQLParser.BINARY, 0); }
public TerminalNode BASE64() { return getToken(VerdictSQLParser.BASE64, 0); }
public TerminalNode TYPE() { return getToken(VerdictSQLParser.TYPE, 0); }
public TerminalNode ROOT() { return getToken(VerdictSQLParser.ROOT, 0); }
public Xml_common_directivesContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_xml_common_directives; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitXml_common_directives(this);
else return visitor.visitChildren(this);
}
}
public final Xml_common_directivesContext xml_common_directives() throws RecognitionException {
Xml_common_directivesContext _localctx = new Xml_common_directivesContext(_ctx, getState());
enterRule(_localctx, 124, RULE_xml_common_directives);
try {
enterOuterAlt(_localctx, 1);
{
setState(1064);
match(COMMA);
setState(1069);
switch (_input.LA(1)) {
case BINARY:
{
setState(1065);
match(BINARY);
setState(1066);
match(BASE64);
}
break;
case TYPE:
{
setState(1067);
match(TYPE);
}
break;
case ROOT:
{
setState(1068);
match(ROOT);
}
break;
default:
throw new NoViableAltException(this);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Order_by_expressionContext extends ParserRuleContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode NULLS() { return getToken(VerdictSQLParser.NULLS, 0); }
public TerminalNode FIRST() { return getToken(VerdictSQLParser.FIRST, 0); }
public TerminalNode LAST() { return getToken(VerdictSQLParser.LAST, 0); }
public TerminalNode ASC() { return getToken(VerdictSQLParser.ASC, 0); }
public TerminalNode DESC() { return getToken(VerdictSQLParser.DESC, 0); }
public Order_by_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_order_by_expression; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitOrder_by_expression(this);
else return visitor.visitChildren(this);
}
}
public final Order_by_expressionContext order_by_expression() throws RecognitionException {
Order_by_expressionContext _localctx = new Order_by_expressionContext(_ctx, getState());
enterRule(_localctx, 126, RULE_order_by_expression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1071);
expression(0);
setState(1073);
_la = _input.LA(1);
if (_la==ASC || _la==DESC) {
{
setState(1072);
_la = _input.LA(1);
if ( !(_la==ASC || _la==DESC) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
setState(1079);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,120,_ctx) ) {
case 1:
{
setState(1075);
match(NULLS);
setState(1076);
match(FIRST);
}
break;
case 2:
{
setState(1077);
match(NULLS);
setState(1078);
match(LAST);
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Group_by_itemContext extends ParserRuleContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Group_by_itemContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_group_by_item; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitGroup_by_item(this);
else return visitor.visitChildren(this);
}
}
public final Group_by_itemContext group_by_item() throws RecognitionException {
Group_by_itemContext _localctx = new Group_by_itemContext(_ctx, getState());
enterRule(_localctx, 128, RULE_group_by_item);
try {
enterOuterAlt(_localctx, 1);
{
setState(1081);
expression(0);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Option_clauseContext extends ParserRuleContext {
public TerminalNode OPTION() { return getToken(VerdictSQLParser.OPTION, 0); }
public List option() {
return getRuleContexts(OptionContext.class);
}
public OptionContext option(int i) {
return getRuleContext(OptionContext.class,i);
}
public Option_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_option_clause; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitOption_clause(this);
else return visitor.visitChildren(this);
}
}
public final Option_clauseContext option_clause() throws RecognitionException {
Option_clauseContext _localctx = new Option_clauseContext(_ctx, getState());
enterRule(_localctx, 130, RULE_option_clause);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1083);
match(OPTION);
setState(1084);
match(LR_BRACKET);
setState(1085);
option();
setState(1090);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1086);
match(COMMA);
setState(1087);
option();
}
}
setState(1092);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1093);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class OptionContext extends ParserRuleContext {
public Token number_rows;
public TerminalNode FAST() { return getToken(VerdictSQLParser.FAST, 0); }
public TerminalNode DECIMAL() { return getToken(VerdictSQLParser.DECIMAL, 0); }
public TerminalNode GROUP() { return getToken(VerdictSQLParser.GROUP, 0); }
public TerminalNode HASH() { return getToken(VerdictSQLParser.HASH, 0); }
public TerminalNode ORDER() { return getToken(VerdictSQLParser.ORDER, 0); }
public TerminalNode UNION() { return getToken(VerdictSQLParser.UNION, 0); }
public TerminalNode MERGE() { return getToken(VerdictSQLParser.MERGE, 0); }
public TerminalNode CONCAT() { return getToken(VerdictSQLParser.CONCAT, 0); }
public TerminalNode KEEPFIXED() { return getToken(VerdictSQLParser.KEEPFIXED, 0); }
public TerminalNode PLAN() { return getToken(VerdictSQLParser.PLAN, 0); }
public TerminalNode OPTIMIZE() { return getToken(VerdictSQLParser.OPTIMIZE, 0); }
public TerminalNode FOR() { return getToken(VerdictSQLParser.FOR, 0); }
public List optimize_for_arg() {
return getRuleContexts(Optimize_for_argContext.class);
}
public Optimize_for_argContext optimize_for_arg(int i) {
return getRuleContext(Optimize_for_argContext.class,i);
}
public TerminalNode UNKNOWN() { return getToken(VerdictSQLParser.UNKNOWN, 0); }
public OptionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_option; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitOption(this);
else return visitor.visitChildren(this);
}
}
public final OptionContext option() throws RecognitionException {
OptionContext _localctx = new OptionContext(_ctx, getState());
enterRule(_localctx, 132, RULE_option);
int _la;
try {
setState(1119);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,123,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1095);
match(FAST);
setState(1096);
((OptionContext)_localctx).number_rows = match(DECIMAL);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1097);
_la = _input.LA(1);
if ( !(_la==HASH || _la==ORDER) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(1098);
match(GROUP);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1099);
_la = _input.LA(1);
if ( !(_la==HASH || _la==MERGE || _la==CONCAT) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(1100);
match(UNION);
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(1101);
match(KEEPFIXED);
setState(1102);
match(PLAN);
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(1103);
match(OPTIMIZE);
setState(1104);
match(FOR);
setState(1105);
match(LR_BRACKET);
setState(1106);
optimize_for_arg();
setState(1111);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1107);
match(COMMA);
setState(1108);
optimize_for_arg();
}
}
setState(1113);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1114);
match(RR_BRACKET);
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(1116);
match(OPTIMIZE);
setState(1117);
match(FOR);
setState(1118);
match(UNKNOWN);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Optimize_for_argContext extends ParserRuleContext {
public TerminalNode LOCAL_ID() { return getToken(VerdictSQLParser.LOCAL_ID, 0); }
public TerminalNode UNKNOWN() { return getToken(VerdictSQLParser.UNKNOWN, 0); }
public ConstantContext constant() {
return getRuleContext(ConstantContext.class,0);
}
public Optimize_for_argContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_optimize_for_arg; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitOptimize_for_arg(this);
else return visitor.visitChildren(this);
}
}
public final Optimize_for_argContext optimize_for_arg() throws RecognitionException {
Optimize_for_argContext _localctx = new Optimize_for_argContext(_ctx, getState());
enterRule(_localctx, 134, RULE_optimize_for_arg);
try {
enterOuterAlt(_localctx, 1);
{
setState(1121);
match(LOCAL_ID);
setState(1125);
switch (_input.LA(1)) {
case UNKNOWN:
{
setState(1122);
match(UNKNOWN);
}
break;
case EQUAL:
{
setState(1123);
match(EQUAL);
setState(1124);
constant();
}
break;
default:
throw new NoViableAltException(this);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Select_listContext extends ParserRuleContext {
public List select_list_elem() {
return getRuleContexts(Select_list_elemContext.class);
}
public Select_list_elemContext select_list_elem(int i) {
return getRuleContext(Select_list_elemContext.class,i);
}
public Select_listContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_select_list; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSelect_list(this);
else return visitor.visitChildren(this);
}
}
public final Select_listContext select_list() throws RecognitionException {
Select_listContext _localctx = new Select_listContext(_ctx, getState());
enterRule(_localctx, 136, RULE_select_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1127);
select_list_elem();
setState(1132);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1128);
match(COMMA);
setState(1129);
select_list_elem();
}
}
setState(1134);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Select_list_elemContext extends ParserRuleContext {
public TerminalNode STAR() { return getToken(VerdictSQLParser.STAR, 0); }
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public TerminalNode IDENTITY() { return getToken(VerdictSQLParser.IDENTITY, 0); }
public TerminalNode ROWGUID() { return getToken(VerdictSQLParser.ROWGUID, 0); }
public Column_aliasContext column_alias() {
return getRuleContext(Column_aliasContext.class,0);
}
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode AS() { return getToken(VerdictSQLParser.AS, 0); }
public Select_list_elemContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_select_list_elem; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSelect_list_elem(this);
else return visitor.visitChildren(this);
}
}
public final Select_list_elemContext select_list_elem() throws RecognitionException {
Select_list_elemContext _localctx = new Select_list_elemContext(_ctx, getState());
enterRule(_localctx, 138, RULE_select_list_elem);
int _la;
try {
setState(1156);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,130,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1138);
_la = _input.LA(1);
if (_la==LEFT || _la==RIGHT || ((((_la - 223)) & ~0x3f) == 0 && ((1L << (_la - 223)) & ((1L << (AGE - 223)) | (1L << (AREA - 223)) | (1L << (CENTER - 223)) | (1L << (CIRCLE - 223)))) != 0) || ((((_la - 294)) & ~0x3f) == 0 && ((1L << (_la - 294)) & ((1L << (DATE - 294)) | (1L << (DAY - 294)) | (1L << (DAYNAME - 294)) | (1L << (DAYOFMONTH - 294)) | (1L << (DAYOFWEEK - 294)) | (1L << (DAYOFYEAR - 294)) | (1L << (DEGREES - 294)) | (1L << (DIAMETER - 294)))) != 0) || ((((_la - 362)) & ~0x3f) == 0 && ((1L << (_la - 362)) & ((1L << (HEIGHT - 362)) | (1L << (HOUR - 362)) | (1L << (LENGTH - 362)))) != 0) || ((((_la - 443)) & ~0x3f) == 0 && ((1L << (_la - 443)) & ((1L << (MAKEDATE - 443)) | (1L << (MICROSECOND - 443)) | (1L << (MINUTE - 443)) | (1L << (MOD - 443)) | (1L << (MONTH - 443)) | (1L << (MONTHNAME - 443)))) != 0) || _la==POWER || _la==SECOND || ((((_la - 613)) & ~0x3f) == 0 && ((1L << (_la - 613)) & ((1L << (TEXT - 613)) | (1L << (TIME - 613)) | (1L << (TIMESTAMP - 613)) | (1L << (VARIANCE - 613)) | (1L << (WEEKOFYEAR - 613)))) != 0) || ((((_la - 698)) & ~0x3f) == 0 && ((1L << (_la - 698)) & ((1L << (DOUBLE_QUOTE_ID - 698)) | (1L << (BACKTICK_ID - 698)) | (1L << (SQUARE_BRACKET_ID - 698)) | (1L << (ID - 698)))) != 0)) {
{
setState(1135);
table_name();
setState(1136);
match(DOT);
}
}
setState(1143);
switch (_input.LA(1)) {
case STAR:
{
setState(1140);
match(STAR);
}
break;
case DOLLAR:
{
setState(1141);
match(DOLLAR);
setState(1142);
_la = _input.LA(1);
if ( !(_la==IDENTITY || _la==ROWGUID) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
break;
default:
throw new NoViableAltException(this);
}
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1145);
column_alias();
setState(1146);
match(EQUAL);
setState(1147);
expression(0);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1149);
expression(0);
setState(1154);
_la = _input.LA(1);
if (_la==AS || _la==LEFT || _la==RIGHT || ((((_la - 223)) & ~0x3f) == 0 && ((1L << (_la - 223)) & ((1L << (AGE - 223)) | (1L << (AREA - 223)) | (1L << (CENTER - 223)) | (1L << (CIRCLE - 223)))) != 0) || ((((_la - 294)) & ~0x3f) == 0 && ((1L << (_la - 294)) & ((1L << (DATE - 294)) | (1L << (DAY - 294)) | (1L << (DAYNAME - 294)) | (1L << (DAYOFMONTH - 294)) | (1L << (DAYOFWEEK - 294)) | (1L << (DAYOFYEAR - 294)) | (1L << (DEGREES - 294)) | (1L << (DIAMETER - 294)))) != 0) || ((((_la - 362)) & ~0x3f) == 0 && ((1L << (_la - 362)) & ((1L << (HEIGHT - 362)) | (1L << (HOUR - 362)) | (1L << (LENGTH - 362)))) != 0) || ((((_la - 443)) & ~0x3f) == 0 && ((1L << (_la - 443)) & ((1L << (MAKEDATE - 443)) | (1L << (MICROSECOND - 443)) | (1L << (MINUTE - 443)) | (1L << (MOD - 443)) | (1L << (MONTH - 443)) | (1L << (MONTHNAME - 443)))) != 0) || _la==POWER || _la==SECOND || ((((_la - 613)) & ~0x3f) == 0 && ((1L << (_la - 613)) & ((1L << (TEXT - 613)) | (1L << (TIME - 613)) | (1L << (TIMESTAMP - 613)) | (1L << (VARIANCE - 613)) | (1L << (WEEKOFYEAR - 613)))) != 0) || ((((_la - 698)) & ~0x3f) == 0 && ((1L << (_la - 698)) & ((1L << (DOUBLE_QUOTE_ID - 698)) | (1L << (BACKTICK_ID - 698)) | (1L << (SQUARE_BRACKET_ID - 698)) | (1L << (ID - 698)) | (1L << (STRING - 698)))) != 0)) {
{
setState(1151);
_la = _input.LA(1);
if (_la==AS) {
{
setState(1150);
match(AS);
}
}
setState(1153);
column_alias();
}
}
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Partition_by_clauseContext extends ParserRuleContext {
public TerminalNode PARTITION() { return getToken(VerdictSQLParser.PARTITION, 0); }
public TerminalNode BY() { return getToken(VerdictSQLParser.BY, 0); }
public Expression_listContext expression_list() {
return getRuleContext(Expression_listContext.class,0);
}
public Partition_by_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_partition_by_clause; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitPartition_by_clause(this);
else return visitor.visitChildren(this);
}
}
public final Partition_by_clauseContext partition_by_clause() throws RecognitionException {
Partition_by_clauseContext _localctx = new Partition_by_clauseContext(_ctx, getState());
enterRule(_localctx, 140, RULE_partition_by_clause);
try {
enterOuterAlt(_localctx, 1);
{
setState(1158);
match(PARTITION);
setState(1159);
match(BY);
setState(1160);
expression_list();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Table_sourceContext extends ParserRuleContext {
public Table_source_item_joinedContext table_source_item_joined() {
return getRuleContext(Table_source_item_joinedContext.class,0);
}
public Table_sourceContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_source; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitTable_source(this);
else return visitor.visitChildren(this);
}
}
public final Table_sourceContext table_source() throws RecognitionException {
Table_sourceContext _localctx = new Table_sourceContext(_ctx, getState());
enterRule(_localctx, 142, RULE_table_source);
try {
setState(1167);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,131,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1162);
table_source_item_joined();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1163);
match(LR_BRACKET);
setState(1164);
table_source_item_joined();
setState(1165);
match(RR_BRACKET);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Table_source_item_joinedContext extends ParserRuleContext {
public Table_source_itemContext table_source_item() {
return getRuleContext(Table_source_itemContext.class,0);
}
public List join_part() {
return getRuleContexts(Join_partContext.class);
}
public Join_partContext join_part(int i) {
return getRuleContext(Join_partContext.class,i);
}
public Table_source_item_joinedContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_source_item_joined; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitTable_source_item_joined(this);
else return visitor.visitChildren(this);
}
}
public final Table_source_item_joinedContext table_source_item_joined() throws RecognitionException {
Table_source_item_joinedContext _localctx = new Table_source_item_joinedContext(_ctx, getState());
enterRule(_localctx, 144, RULE_table_source_item_joined);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1169);
table_source_item();
setState(1173);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,132,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1170);
join_part();
}
}
}
setState(1175);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,132,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Table_source_itemContext extends ParserRuleContext {
public Table_source_itemContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_source_item; }
public Table_source_itemContext() { }
public void copyFrom(Table_source_itemContext ctx) {
super.copyFrom(ctx);
}
}
public static class Hinted_table_name_itemContext extends Table_source_itemContext {
public Table_name_with_hintContext table_name_with_hint() {
return getRuleContext(Table_name_with_hintContext.class,0);
}
public As_table_aliasContext as_table_alias() {
return getRuleContext(As_table_aliasContext.class,0);
}
public Hinted_table_name_itemContext(Table_source_itemContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitHinted_table_name_item(this);
else return visitor.visitChildren(this);
}
}
public static class Derived_table_source_itemContext extends Table_source_itemContext {
public Derived_tableContext derived_table() {
return getRuleContext(Derived_tableContext.class,0);
}
public As_table_aliasContext as_table_alias() {
return getRuleContext(As_table_aliasContext.class,0);
}
public Column_alias_listContext column_alias_list() {
return getRuleContext(Column_alias_listContext.class,0);
}
public Derived_table_source_itemContext(Table_source_itemContext ctx) { copyFrom(ctx); }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDerived_table_source_item(this);
else return visitor.visitChildren(this);
}
}
public final Table_source_itemContext table_source_item() throws RecognitionException {
Table_source_itemContext _localctx = new Table_source_itemContext(_ctx, getState());
enterRule(_localctx, 146, RULE_table_source_item);
int _la;
try {
setState(1187);
switch (_input.LA(1)) {
case LEFT:
case RIGHT:
case AGE:
case AREA:
case CENTER:
case CIRCLE:
case DATE:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DIAMETER:
case HEIGHT:
case HOUR:
case LENGTH:
case MAKEDATE:
case MICROSECOND:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case POWER:
case SECOND:
case TEXT:
case TIME:
case TIMESTAMP:
case VARIANCE:
case WEEKOFYEAR:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case ID:
_localctx = new Hinted_table_name_itemContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(1176);
table_name_with_hint();
setState(1178);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,133,_ctx) ) {
case 1:
{
setState(1177);
as_table_alias();
}
break;
}
}
break;
case VALUES:
case LR_BRACKET:
_localctx = new Derived_table_source_itemContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(1180);
derived_table();
setState(1185);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,135,_ctx) ) {
case 1:
{
setState(1181);
as_table_alias();
setState(1183);
_la = _input.LA(1);
if (_la==LR_BRACKET) {
{
setState(1182);
column_alias_list();
}
}
}
break;
}
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Change_tableContext extends ParserRuleContext {
public TerminalNode CHANGETABLE() { return getToken(VerdictSQLParser.CHANGETABLE, 0); }
public TerminalNode CHANGES() { return getToken(VerdictSQLParser.CHANGES, 0); }
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public TerminalNode NULL() { return getToken(VerdictSQLParser.NULL, 0); }
public TerminalNode DECIMAL() { return getToken(VerdictSQLParser.DECIMAL, 0); }
public TerminalNode LOCAL_ID() { return getToken(VerdictSQLParser.LOCAL_ID, 0); }
public Change_tableContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_change_table; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitChange_table(this);
else return visitor.visitChildren(this);
}
}
public final Change_tableContext change_table() throws RecognitionException {
Change_tableContext _localctx = new Change_tableContext(_ctx, getState());
enterRule(_localctx, 148, RULE_change_table);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1189);
match(CHANGETABLE);
setState(1190);
match(LR_BRACKET);
setState(1191);
match(CHANGES);
setState(1192);
table_name();
setState(1193);
match(COMMA);
setState(1194);
_la = _input.LA(1);
if ( !(_la==NULL || _la==LOCAL_ID || _la==DECIMAL) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(1195);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Join_partContext extends ParserRuleContext {
public Token join_type;
public Token join_hint;
public TerminalNode JOIN() { return getToken(VerdictSQLParser.JOIN, 0); }
public Table_sourceContext table_source() {
return getRuleContext(Table_sourceContext.class,0);
}
public TerminalNode ON() { return getToken(VerdictSQLParser.ON, 0); }
public Search_conditionContext search_condition() {
return getRuleContext(Search_conditionContext.class,0);
}
public TerminalNode LEFT() { return getToken(VerdictSQLParser.LEFT, 0); }
public TerminalNode RIGHT() { return getToken(VerdictSQLParser.RIGHT, 0); }
public TerminalNode FULL() { return getToken(VerdictSQLParser.FULL, 0); }
public TerminalNode INNER() { return getToken(VerdictSQLParser.INNER, 0); }
public TerminalNode OUTER() { return getToken(VerdictSQLParser.OUTER, 0); }
public TerminalNode LOOP() { return getToken(VerdictSQLParser.LOOP, 0); }
public TerminalNode HASH() { return getToken(VerdictSQLParser.HASH, 0); }
public TerminalNode MERGE() { return getToken(VerdictSQLParser.MERGE, 0); }
public TerminalNode REMOTE() { return getToken(VerdictSQLParser.REMOTE, 0); }
public TerminalNode SEMI() { return getToken(VerdictSQLParser.SEMI, 0); }
public TerminalNode CROSS() { return getToken(VerdictSQLParser.CROSS, 0); }
public TerminalNode APPLY() { return getToken(VerdictSQLParser.APPLY, 0); }
public TerminalNode LATERAL() { return getToken(VerdictSQLParser.LATERAL, 0); }
public TerminalNode VIEW() { return getToken(VerdictSQLParser.VIEW, 0); }
public Lateral_view_functionContext lateral_view_function() {
return getRuleContext(Lateral_view_functionContext.class,0);
}
public Table_aliasContext table_alias() {
return getRuleContext(Table_aliasContext.class,0);
}
public Column_aliasContext column_alias() {
return getRuleContext(Column_aliasContext.class,0);
}
public TerminalNode AS() { return getToken(VerdictSQLParser.AS, 0); }
public Join_partContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_join_part; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitJoin_part(this);
else return visitor.visitChildren(this);
}
}
public final Join_partContext join_part() throws RecognitionException {
Join_partContext _localctx = new Join_partContext(_ctx, getState());
enterRule(_localctx, 150, RULE_join_part);
int _la;
try {
setState(1236);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,145,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1204);
switch (_input.LA(1)) {
case HASH:
case INNER:
case JOIN:
case MERGE:
case SEMI:
case LOOP:
case REMOTE:
{
setState(1198);
_la = _input.LA(1);
if (_la==INNER) {
{
setState(1197);
match(INNER);
}
}
}
break;
case FULL:
case LEFT:
case RIGHT:
{
setState(1200);
((Join_partContext)_localctx).join_type = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==FULL || _la==LEFT || _la==RIGHT) ) {
((Join_partContext)_localctx).join_type = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
setState(1202);
_la = _input.LA(1);
if (_la==OUTER) {
{
setState(1201);
match(OUTER);
}
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(1207);
_la = _input.LA(1);
if (_la==HASH || _la==MERGE || _la==SEMI || _la==LOOP || _la==REMOTE) {
{
setState(1206);
((Join_partContext)_localctx).join_hint = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==HASH || _la==MERGE || _la==SEMI || _la==LOOP || _la==REMOTE) ) {
((Join_partContext)_localctx).join_hint = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
}
}
setState(1209);
match(JOIN);
setState(1210);
table_source();
setState(1213);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,141,_ctx) ) {
case 1:
{
setState(1211);
match(ON);
setState(1212);
search_condition();
}
break;
}
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1215);
match(CROSS);
setState(1216);
match(APPLY);
setState(1217);
table_source();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1218);
match(CROSS);
setState(1219);
match(JOIN);
setState(1220);
table_source();
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(1221);
match(OUTER);
setState(1222);
match(APPLY);
setState(1223);
table_source();
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(1224);
match(LATERAL);
setState(1225);
match(VIEW);
setState(1226);
lateral_view_function();
setState(1228);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,142,_ctx) ) {
case 1:
{
setState(1227);
table_alias();
}
break;
}
setState(1234);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,144,_ctx) ) {
case 1:
{
setState(1231);
_la = _input.LA(1);
if (_la==AS) {
{
setState(1230);
match(AS);
}
}
setState(1233);
column_alias();
}
break;
}
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Table_name_with_hintContext extends ParserRuleContext {
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public Table_name_with_hintContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_name_with_hint; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitTable_name_with_hint(this);
else return visitor.visitChildren(this);
}
}
public final Table_name_with_hintContext table_name_with_hint() throws RecognitionException {
Table_name_with_hintContext _localctx = new Table_name_with_hintContext(_ctx, getState());
enterRule(_localctx, 152, RULE_table_name_with_hint);
try {
enterOuterAlt(_localctx, 1);
{
setState(1238);
table_name();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Rowset_functionContext extends ParserRuleContext {
public Token data_file;
public TerminalNode OPENROWSET() { return getToken(VerdictSQLParser.OPENROWSET, 0); }
public TerminalNode BULK() { return getToken(VerdictSQLParser.BULK, 0); }
public TerminalNode STRING() { return getToken(VerdictSQLParser.STRING, 0); }
public List bulk_option() {
return getRuleContexts(Bulk_optionContext.class);
}
public Bulk_optionContext bulk_option(int i) {
return getRuleContext(Bulk_optionContext.class,i);
}
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public Rowset_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_rowset_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitRowset_function(this);
else return visitor.visitChildren(this);
}
}
public final Rowset_functionContext rowset_function() throws RecognitionException {
Rowset_functionContext _localctx = new Rowset_functionContext(_ctx, getState());
enterRule(_localctx, 154, RULE_rowset_function);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1240);
match(OPENROWSET);
setState(1241);
match(LR_BRACKET);
setState(1242);
match(BULK);
setState(1243);
((Rowset_functionContext)_localctx).data_file = match(STRING);
setState(1244);
match(COMMA);
setState(1254);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,147,_ctx) ) {
case 1:
{
setState(1245);
bulk_option();
setState(1250);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1246);
match(COMMA);
setState(1247);
bulk_option();
}
}
setState(1252);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
break;
case 2:
{
setState(1253);
id();
}
break;
}
setState(1256);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Bulk_optionContext extends ParserRuleContext {
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public TerminalNode DECIMAL() { return getToken(VerdictSQLParser.DECIMAL, 0); }
public TerminalNode STRING() { return getToken(VerdictSQLParser.STRING, 0); }
public Bulk_optionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_bulk_option; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitBulk_option(this);
else return visitor.visitChildren(this);
}
}
public final Bulk_optionContext bulk_option() throws RecognitionException {
Bulk_optionContext _localctx = new Bulk_optionContext(_ctx, getState());
enterRule(_localctx, 156, RULE_bulk_option);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1258);
id();
setState(1259);
match(EQUAL);
setState(1260);
_la = _input.LA(1);
if ( !(_la==DECIMAL || _la==STRING) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Derived_tableContext extends ParserRuleContext {
public SubqueryContext subquery() {
return getRuleContext(SubqueryContext.class,0);
}
public Table_value_constructorContext table_value_constructor() {
return getRuleContext(Table_value_constructorContext.class,0);
}
public Derived_tableContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_derived_table; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDerived_table(this);
else return visitor.visitChildren(this);
}
}
public final Derived_tableContext derived_table() throws RecognitionException {
Derived_tableContext _localctx = new Derived_tableContext(_ctx, getState());
enterRule(_localctx, 158, RULE_derived_table);
try {
setState(1267);
switch (_input.LA(1)) {
case LR_BRACKET:
enterOuterAlt(_localctx, 1);
{
setState(1262);
match(LR_BRACKET);
setState(1263);
subquery();
setState(1264);
match(RR_BRACKET);
}
break;
case VALUES:
enterOuterAlt(_localctx, 2);
{
setState(1266);
table_value_constructor();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Function_callContext extends ParserRuleContext {
public Ranking_windowed_functionContext ranking_windowed_function() {
return getRuleContext(Ranking_windowed_functionContext.class,0);
}
public Expression_functionContext expression_function() {
return getRuleContext(Expression_functionContext.class,0);
}
public Aggregate_windowed_functionContext aggregate_windowed_function() {
return getRuleContext(Aggregate_windowed_functionContext.class,0);
}
public Function_callContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_function_call; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitFunction_call(this);
else return visitor.visitChildren(this);
}
}
public final Function_callContext function_call() throws RecognitionException {
Function_callContext _localctx = new Function_callContext(_ctx, getState());
enterRule(_localctx, 160, RULE_function_call);
try {
setState(1272);
switch (_input.LA(1)) {
case DENSE_RANK:
case NTILE:
case RANK:
case ROW_NUMBER:
enterOuterAlt(_localctx, 1);
{
setState(1269);
ranking_windowed_function();
}
break;
case ASCII:
case COALESCE:
case CONV:
case CONVERT:
case CURRENT_DATE:
case CURRENT_TIME:
case CURRENT_TIMESTAMP:
case CURRENT_USER:
case DATABASE:
case HASH:
case IF:
case INT4LARGER:
case LEFT:
case MID:
case NOT:
case NULLIF:
case RAWTOHEX:
case RIGHT:
case RPAD:
case SESSION_USER:
case SUBSTR:
case SUBSTRING:
case SYSTEM_USER:
case TRUNCATE:
case USER:
case ABBREV:
case ABS:
case ACOS:
case ADDDATE:
case ADDTIME:
case AES_DECRYPT:
case AES_ENCRYPT:
case AGE:
case AREA:
case ARRAY_AGG:
case ARRAY_APPEND:
case ARRAY_CAT:
case ARRAY_DIMS:
case ARRAY_LENGTH:
case ARRAY_LOWER:
case ARRAY_NDIMS:
case ARRAY_POSITION:
case ARRAY_POSITIONS:
case ARRAY_PREPEND:
case ARRAY_REMOVE:
case ARRAY_REPLACE:
case ARRAY_TO_JSON:
case ARRAY_TO_STRING:
case ARRAY_TO_TSVECTOR:
case ARRAY_UPPER:
case ASIN:
case ATAN:
case ATAN2:
case BIN:
case BIT_LENGTH:
case BOOL_AND:
case BOOL_OR:
case BOX:
case BOUND_BOX:
case BROADCAST:
case BTRIM:
case BROUND:
case CARDINALITY:
case CAST:
case CBRT:
case CEIL:
case CEILING:
case CENTER:
case CHAR_LENGTH:
case CHARACTER_LENGTH:
case CHR:
case CIRCLE:
case CLOCK_TIMESTAMP:
case CONCAT:
case CONCAT_WS:
case CONVERT_FROM:
case CONVERT_TO:
case COS:
case CORR:
case COVAR_POP:
case COVAR_SAMP:
case COT:
case CRC32:
case CURDATE:
case CURRVAL:
case CURTIME:
case DATE:
case DATEADD:
case DATE_ADD:
case DATE_FORMAT:
case DATE_PART:
case DATE_SUB:
case DATE_TRUNC:
case DATEDIFF:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DECODE:
case DEGREES:
case DIAMETER:
case DIV:
case NATURAL_CONSTANT:
case ENCODE:
case ENUM_FIRST:
case ENUM_LAST:
case ENUM_RANGE:
case EXP:
case EXTRACT:
case EVERY:
case FACTORIAL:
case FAMILY:
case FIELD:
case FIND_IN_SET:
case FLOOR:
case FORMAT:
case FORMAT_NUMBER:
case FNV_HASH:
case FROM_DAYS:
case FROM_UNIXTIME:
case GET_BIT:
case GET_BYTE:
case GET_CURRENT_TS_CONFIG:
case GET_JSON_OBJECT:
case GREATEST:
case HEIGHT:
case HEX:
case HOST:
case HOSTMASK:
case HOUR:
case IFNULL:
case INITCAP:
case INSTR:
case IN_FILE:
case INET_SAME_FAMILY:
case INET_MERGE:
case ISCLOSED:
case ISEMPTY:
case ISFINITE:
case ISNULL:
case ISOPEN:
case JSON_AGG:
case JSON_ARRAY_LENGTH:
case JSON_ARRAY_ELEMENTS:
case JSON_ARRAY_ELEMENTS_TEXT:
case JSON_BUILD_ARRAY:
case JSON_BUILD_OBJECT:
case JSON_EACH:
case JSON_EACH_TEXT:
case JSON_EXTRACT_PATH:
case JSON_EXTRACT_PATH_TEXT:
case JSON_OBJECT:
case JSON_OBJECT_KEYS:
case JSON_OBJECT_AGG:
case JSON_POPULATE_RECORD:
case JSON_POPULATE_RECORDSET:
case JSON_STRIP_NULLS:
case JSON_TO_RECORD:
case JSON_TO_RECORDSET:
case JSON_TYPEOF:
case JSONB_AGG:
case JSONB_OBJECT_AGG:
case JSONB_SET:
case JSONB_INSERT:
case JSONB_PRETTY:
case JUSTIFY_DAYS:
case JUSTIFY_HOURS:
case JUSTIFY_INTERVALS:
case LASTVAL:
case LAST_DAY:
case LAST_INSERT_ID:
case LCASE:
case LEAST:
case LENGTH:
case LINE:
case LN:
case LOCALTIME:
case LOCALTIMESTAMP:
case LOCATE:
case LOG:
case LOG2:
case LOG10:
case LOWER:
case LOWER_INC:
case LOWER_INF:
case LPAD:
case LTRIM:
case LSEG:
case MACADDR8_SET7BIT:
case MAKEDATE:
case MAKETIME:
case MAKE_DATE:
case MAKE_TIME:
case MAKE_TIMESTAMP:
case MAKE_TIMESTAMPTZ:
case MASKLEN:
case MD5:
case MICROSECOND:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case NEGATIVE:
case NETMASK:
case NETWORK:
case NEXTVAL:
case NOW:
case NPOINTS:
case NUMNODE:
case NVL:
case OCTET_LENGTH:
case OVERLAY:
case PATH:
case PCLOSE:
case PERCENTILE:
case PERIOD_ADD:
case PERIOD_DIFF:
case PG_CLIENT_ENCODING:
case PLAINTO_TSQUERY:
case PHRASETO_TSQUERY:
case PI:
case PMOD:
case POINT:
case POLYGON:
case POPEN:
case POSITION:
case POSITIVE:
case POW:
case POWER:
case QUARTER:
case QUERYTREE:
case QUOTE_IDENT:
case QUOTE_LITERAL:
case QUOTE_NULLABLE:
case RADIANS:
case RADIUS:
case RAND:
case RANDOM:
case RANGE_MERGE:
case REGR_AVGX:
case REGR_AVGY:
case REGR_COUNT:
case REGR_INTERCEPT:
case REGR_R2:
case REGR_SLOPE:
case REGR_SXX:
case REGR_SXY:
case REGR_SYY:
case REGEXP_MATCHES:
case REGEXP_REPLACE:
case REGEXP_SPLIT_TO_ARRAY:
case REGEXP_SPLIT_TO_TABLE:
case REPEAT:
case REPLACE:
case REVERSE:
case ROUND:
case ROW_TO_JSON:
case RTRIM:
case SCALE:
case SECOND:
case SEC_TO_TIME:
case SETSEED:
case SETWEIGHT:
case SETVAL:
case SET_BIT:
case SET_BYTE:
case SET_MASKLEN:
case SHA1:
case SHA2:
case SHIFTLEFT:
case SHIFTRIGHT:
case SHIFTRIGHTUNSIGNED:
case SIGN:
case SIN:
case SPACE_FUNCTION:
case SPLIT:
case SPLIT_PART:
case STATEMENT_TIMESTAMP:
case STDDEV:
case STRCMP:
case STRING_AGG:
case STRING_TO_ARRAY:
case STRPOS:
case STR_TO_DATE:
case SUBDATE:
case SUBSTRING_INDEX:
case SQRT:
case STDDEV_POP:
case STRIP:
case STRTOL:
case SYSDATE:
case TAN:
case TEXT:
case TIME:
case TIMEDIFF:
case TIMEOFDAY:
case TIMESTAMP:
case TIME_FORMAT:
case TIME_TO_SEC:
case TO_ASCII:
case TO_CHAR:
case TO_DATE:
case TO_DAYS:
case TO_HEX:
case TO_JSON:
case TO_JSONB:
case TO_NUMBER:
case TO_TIMESTAMP:
case TO_TSQUERY:
case TO_TSVECTOR:
case TRANSACTION_TIMESTAMP:
case TRANSLATE:
case TRIM:
case TRUNC:
case TS_DELETE:
case TS_FILTER:
case TS_HEADLINE:
case TS_RANK:
case TS_RANK_CD:
case TS_REWRITE:
case TSQUERY_PHRASE:
case TSVECTOR_TO_ARRAY:
case TSVECTOR_UPDATE_TRIGGER:
case TSVECTOR_UPDATE_TRIGGER_COLUMN:
case UCASE:
case UNHEX:
case UNIX_TIMESTAMP:
case UNNEST:
case UPPER:
case UPPER_INC:
case UPPER_INF:
case VARIANCE:
case VAR_POP:
case VAR_SAMP:
case VERSION:
case WEEKOFYEAR:
case WEEK:
case WEEKDAY:
case WIDTH:
case WIDTH_BUCKET:
case XMLAGG:
case XMLCOMMENT:
case XMLCONCAT:
case XMLELEMENT:
case XMLFOREST:
case XMLPI:
case XMLROOT:
case XML_ISWELL_FORMAT:
case XPATH:
case XPATH_EXISTS:
case YEAR:
case YEARWEEK:
case SPACE:
case BINARY:
case BIT_OR:
case BIT_AND:
enterOuterAlt(_localctx, 2);
{
setState(1270);
expression_function();
}
break;
case AVG:
case CHECKSUM_AGG:
case COUNT:
case COUNT_BIG:
case GROUPING:
case GROUPING_ID:
case MAX:
case MIN:
case NDV:
case STDEV:
case STDEVP:
case STDDEV_SAMP:
case SUM:
case VAR:
case VARP:
enterOuterAlt(_localctx, 3);
{
setState(1271);
aggregate_windowed_function();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class DatepartContext extends ParserRuleContext {
public TerminalNode ID() { return getToken(VerdictSQLParser.ID, 0); }
public DatepartContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_datepart; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDatepart(this);
else return visitor.visitChildren(this);
}
}
public final DatepartContext datepart() throws RecognitionException {
DatepartContext _localctx = new DatepartContext(_ctx, getState());
enterRule(_localctx, 162, RULE_datepart);
try {
enterOuterAlt(_localctx, 1);
{
setState(1274);
match(ID);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class As_table_aliasContext extends ParserRuleContext {
public Table_aliasContext table_alias() {
return getRuleContext(Table_aliasContext.class,0);
}
public TerminalNode AS() { return getToken(VerdictSQLParser.AS, 0); }
public As_table_aliasContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_as_table_alias; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitAs_table_alias(this);
else return visitor.visitChildren(this);
}
}
public final As_table_aliasContext as_table_alias() throws RecognitionException {
As_table_aliasContext _localctx = new As_table_aliasContext(_ctx, getState());
enterRule(_localctx, 164, RULE_as_table_alias);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1277);
_la = _input.LA(1);
if (_la==AS) {
{
setState(1276);
match(AS);
}
}
setState(1279);
table_alias();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Table_aliasContext extends ParserRuleContext {
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public Table_aliasContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_alias; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitTable_alias(this);
else return visitor.visitChildren(this);
}
}
public final Table_aliasContext table_alias() throws RecognitionException {
Table_aliasContext _localctx = new Table_aliasContext(_ctx, getState());
enterRule(_localctx, 166, RULE_table_alias);
try {
enterOuterAlt(_localctx, 1);
{
setState(1281);
id();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Index_column_nameContext extends ParserRuleContext {
public TerminalNode ID() { return getToken(VerdictSQLParser.ID, 0); }
public Index_column_nameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_index_column_name; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitIndex_column_name(this);
else return visitor.visitChildren(this);
}
}
public final Index_column_nameContext index_column_name() throws RecognitionException {
Index_column_nameContext _localctx = new Index_column_nameContext(_ctx, getState());
enterRule(_localctx, 168, RULE_index_column_name);
try {
enterOuterAlt(_localctx, 1);
{
setState(1283);
match(ID);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Index_valueContext extends ParserRuleContext {
public TerminalNode ID() { return getToken(VerdictSQLParser.ID, 0); }
public TerminalNode DECIMAL() { return getToken(VerdictSQLParser.DECIMAL, 0); }
public Index_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_index_value; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitIndex_value(this);
else return visitor.visitChildren(this);
}
}
public final Index_valueContext index_value() throws RecognitionException {
Index_valueContext _localctx = new Index_valueContext(_ctx, getState());
enterRule(_localctx, 170, RULE_index_value);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1285);
_la = _input.LA(1);
if ( !(_la==DECIMAL || _la==ID) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Column_alias_listContext extends ParserRuleContext {
public List column_alias() {
return getRuleContexts(Column_aliasContext.class);
}
public Column_aliasContext column_alias(int i) {
return getRuleContext(Column_aliasContext.class,i);
}
public Column_alias_listContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_column_alias_list; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitColumn_alias_list(this);
else return visitor.visitChildren(this);
}
}
public final Column_alias_listContext column_alias_list() throws RecognitionException {
Column_alias_listContext _localctx = new Column_alias_listContext(_ctx, getState());
enterRule(_localctx, 172, RULE_column_alias_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1287);
match(LR_BRACKET);
setState(1288);
column_alias();
setState(1293);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1289);
match(COMMA);
setState(1290);
column_alias();
}
}
setState(1295);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1296);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Column_aliasContext extends ParserRuleContext {
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public TerminalNode STRING() { return getToken(VerdictSQLParser.STRING, 0); }
public Column_aliasContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_column_alias; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitColumn_alias(this);
else return visitor.visitChildren(this);
}
}
public final Column_aliasContext column_alias() throws RecognitionException {
Column_aliasContext _localctx = new Column_aliasContext(_ctx, getState());
enterRule(_localctx, 174, RULE_column_alias);
try {
setState(1300);
switch (_input.LA(1)) {
case LEFT:
case RIGHT:
case AGE:
case AREA:
case CENTER:
case CIRCLE:
case DATE:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DIAMETER:
case HEIGHT:
case HOUR:
case LENGTH:
case MAKEDATE:
case MICROSECOND:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case POWER:
case SECOND:
case TEXT:
case TIME:
case TIMESTAMP:
case VARIANCE:
case WEEKOFYEAR:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case ID:
enterOuterAlt(_localctx, 1);
{
setState(1298);
id();
}
break;
case STRING:
enterOuterAlt(_localctx, 2);
{
setState(1299);
match(STRING);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Table_value_constructorContext extends ParserRuleContext {
public TerminalNode VALUES() { return getToken(VerdictSQLParser.VALUES, 0); }
public List expression_list() {
return getRuleContexts(Expression_listContext.class);
}
public Expression_listContext expression_list(int i) {
return getRuleContext(Expression_listContext.class,i);
}
public Table_value_constructorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_value_constructor; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitTable_value_constructor(this);
else return visitor.visitChildren(this);
}
}
public final Table_value_constructorContext table_value_constructor() throws RecognitionException {
Table_value_constructorContext _localctx = new Table_value_constructorContext(_ctx, getState());
enterRule(_localctx, 176, RULE_table_value_constructor);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1302);
match(VALUES);
setState(1303);
match(LR_BRACKET);
setState(1304);
expression_list();
setState(1305);
match(RR_BRACKET);
setState(1313);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,153,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1306);
match(COMMA);
setState(1307);
match(LR_BRACKET);
setState(1308);
expression_list();
setState(1309);
match(RR_BRACKET);
}
}
}
setState(1315);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,153,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Expression_listContext extends ParserRuleContext {
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public Expression_listContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_expression_list; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitExpression_list(this);
else return visitor.visitChildren(this);
}
}
public final Expression_listContext expression_list() throws RecognitionException {
Expression_listContext _localctx = new Expression_listContext(_ctx, getState());
enterRule(_localctx, 178, RULE_expression_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1316);
expression(0);
setState(1321);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1317);
match(COMMA);
setState(1318);
expression(0);
}
}
setState(1323);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Case_exprContext extends ParserRuleContext {
public TerminalNode CASE() { return getToken(VerdictSQLParser.CASE, 0); }
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public TerminalNode END() { return getToken(VerdictSQLParser.END, 0); }
public List WHEN() { return getTokens(VerdictSQLParser.WHEN); }
public TerminalNode WHEN(int i) {
return getToken(VerdictSQLParser.WHEN, i);
}
public List THEN() { return getTokens(VerdictSQLParser.THEN); }
public TerminalNode THEN(int i) {
return getToken(VerdictSQLParser.THEN, i);
}
public TerminalNode ELSE() { return getToken(VerdictSQLParser.ELSE, 0); }
public List search_condition() {
return getRuleContexts(Search_conditionContext.class);
}
public Search_conditionContext search_condition(int i) {
return getRuleContext(Search_conditionContext.class,i);
}
public Case_exprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_case_expr; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitCase_expr(this);
else return visitor.visitChildren(this);
}
}
public final Case_exprContext case_expr() throws RecognitionException {
Case_exprContext _localctx = new Case_exprContext(_ctx, getState());
enterRule(_localctx, 180, RULE_case_expr);
int _la;
try {
setState(1357);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,159,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1324);
match(CASE);
setState(1325);
expression(0);
setState(1331);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(1326);
match(WHEN);
setState(1327);
expression(0);
setState(1328);
match(THEN);
setState(1329);
expression(0);
}
}
setState(1333);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( _la==WHEN );
setState(1337);
_la = _input.LA(1);
if (_la==ELSE) {
{
setState(1335);
match(ELSE);
setState(1336);
expression(0);
}
}
setState(1339);
match(END);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1341);
match(CASE);
setState(1347);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(1342);
match(WHEN);
setState(1343);
search_condition();
setState(1344);
match(THEN);
setState(1345);
expression(0);
}
}
setState(1349);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( _la==WHEN );
setState(1353);
_la = _input.LA(1);
if (_la==ELSE) {
{
setState(1351);
match(ELSE);
setState(1352);
expression(0);
}
}
setState(1355);
match(END);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Ranking_windowed_functionContext extends ParserRuleContext {
public TerminalNode RANK() { return getToken(VerdictSQLParser.RANK, 0); }
public Over_clauseContext over_clause() {
return getRuleContext(Over_clauseContext.class,0);
}
public TerminalNode DENSE_RANK() { return getToken(VerdictSQLParser.DENSE_RANK, 0); }
public TerminalNode NTILE() { return getToken(VerdictSQLParser.NTILE, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode ROW_NUMBER() { return getToken(VerdictSQLParser.ROW_NUMBER, 0); }
public Ranking_windowed_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_ranking_windowed_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitRanking_windowed_function(this);
else return visitor.visitChildren(this);
}
}
public final Ranking_windowed_functionContext ranking_windowed_function() throws RecognitionException {
Ranking_windowed_functionContext _localctx = new Ranking_windowed_functionContext(_ctx, getState());
enterRule(_localctx, 182, RULE_ranking_windowed_function);
try {
setState(1377);
switch (_input.LA(1)) {
case RANK:
enterOuterAlt(_localctx, 1);
{
setState(1359);
match(RANK);
setState(1360);
match(LR_BRACKET);
setState(1361);
match(RR_BRACKET);
setState(1362);
over_clause();
}
break;
case DENSE_RANK:
enterOuterAlt(_localctx, 2);
{
setState(1363);
match(DENSE_RANK);
setState(1364);
match(LR_BRACKET);
setState(1365);
match(RR_BRACKET);
setState(1366);
over_clause();
}
break;
case NTILE:
enterOuterAlt(_localctx, 3);
{
setState(1367);
match(NTILE);
setState(1368);
match(LR_BRACKET);
setState(1369);
expression(0);
setState(1370);
match(RR_BRACKET);
setState(1371);
over_clause();
}
break;
case ROW_NUMBER:
enterOuterAlt(_localctx, 4);
{
setState(1373);
match(ROW_NUMBER);
setState(1374);
match(LR_BRACKET);
setState(1375);
match(RR_BRACKET);
setState(1376);
over_clause();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Expression_functionContext extends ParserRuleContext {
public Unary_functionContext unary_function() {
return getRuleContext(Unary_functionContext.class,0);
}
public Noparam_functionContext noparam_function() {
return getRuleContext(Noparam_functionContext.class,0);
}
public Binary_functionContext binary_function() {
return getRuleContext(Binary_functionContext.class,0);
}
public Ternary_functionContext ternary_function() {
return getRuleContext(Ternary_functionContext.class,0);
}
public Nary_functionContext nary_function() {
return getRuleContext(Nary_functionContext.class,0);
}
public Predicate_functionContext predicate_function() {
return getRuleContext(Predicate_functionContext.class,0);
}
public Timestamp_functionContext timestamp_function() {
return getRuleContext(Timestamp_functionContext.class,0);
}
public Dateadd_functionContext dateadd_function() {
return getRuleContext(Dateadd_functionContext.class,0);
}
public Extract_time_functionContext extract_time_function() {
return getRuleContext(Extract_time_functionContext.class,0);
}
public Overlay_string_functionContext overlay_string_function() {
return getRuleContext(Overlay_string_functionContext.class,0);
}
public Substring_string_functionContext substring_string_function() {
return getRuleContext(Substring_string_functionContext.class,0);
}
public Expression_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_expression_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitExpression_function(this);
else return visitor.visitChildren(this);
}
}
public final Expression_functionContext expression_function() throws RecognitionException {
Expression_functionContext _localctx = new Expression_functionContext(_ctx, getState());
enterRule(_localctx, 184, RULE_expression_function);
try {
setState(1390);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,161,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1379);
unary_function();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1380);
noparam_function();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1381);
binary_function();
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(1382);
ternary_function();
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(1383);
nary_function();
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(1384);
predicate_function();
}
break;
case 7:
enterOuterAlt(_localctx, 7);
{
setState(1385);
timestamp_function();
}
break;
case 8:
enterOuterAlt(_localctx, 8);
{
setState(1386);
dateadd_function();
}
break;
case 9:
enterOuterAlt(_localctx, 9);
{
setState(1387);
extract_time_function();
}
break;
case 10:
enterOuterAlt(_localctx, 10);
{
setState(1388);
overlay_string_function();
}
break;
case 11:
enterOuterAlt(_localctx, 11);
{
setState(1389);
substring_string_function();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Extract_time_functionContext extends ParserRuleContext {
public Token function_name;
public Extract_unitContext extract_unit() {
return getRuleContext(Extract_unitContext.class,0);
}
public TerminalNode FROM() { return getToken(VerdictSQLParser.FROM, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode EXTRACT() { return getToken(VerdictSQLParser.EXTRACT, 0); }
public Extract_time_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_extract_time_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitExtract_time_function(this);
else return visitor.visitChildren(this);
}
}
public final Extract_time_functionContext extract_time_function() throws RecognitionException {
Extract_time_functionContext _localctx = new Extract_time_functionContext(_ctx, getState());
enterRule(_localctx, 186, RULE_extract_time_function);
try {
enterOuterAlt(_localctx, 1);
{
setState(1392);
((Extract_time_functionContext)_localctx).function_name = match(EXTRACT);
setState(1393);
match(LR_BRACKET);
setState(1394);
extract_unit();
setState(1395);
match(FROM);
setState(1396);
expression(0);
setState(1397);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Extract_unitContext extends ParserRuleContext {
public TerminalNode YEAR() { return getToken(VerdictSQLParser.YEAR, 0); }
public TerminalNode MONTH() { return getToken(VerdictSQLParser.MONTH, 0); }
public TerminalNode DAY() { return getToken(VerdictSQLParser.DAY, 0); }
public TerminalNode HOUR() { return getToken(VerdictSQLParser.HOUR, 0); }
public TerminalNode MINUTE() { return getToken(VerdictSQLParser.MINUTE, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Extract_unitContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_extract_unit; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitExtract_unit(this);
else return visitor.visitChildren(this);
}
}
public final Extract_unitContext extract_unit() throws RecognitionException {
Extract_unitContext _localctx = new Extract_unitContext(_ctx, getState());
enterRule(_localctx, 188, RULE_extract_unit);
try {
setState(1405);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,162,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1399);
match(YEAR);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1400);
match(MONTH);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1401);
match(DAY);
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(1402);
match(HOUR);
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(1403);
match(MINUTE);
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(1404);
expression(0);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Time_unitContext extends ParserRuleContext {
public TerminalNode YEAR() { return getToken(VerdictSQLParser.YEAR, 0); }
public TerminalNode MONTH() { return getToken(VerdictSQLParser.MONTH, 0); }
public TerminalNode DAY() { return getToken(VerdictSQLParser.DAY, 0); }
public TerminalNode HOUR() { return getToken(VerdictSQLParser.HOUR, 0); }
public TerminalNode MINUTE() { return getToken(VerdictSQLParser.MINUTE, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Time_unitContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_time_unit; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitTime_unit(this);
else return visitor.visitChildren(this);
}
}
public final Time_unitContext time_unit() throws RecognitionException {
Time_unitContext _localctx = new Time_unitContext(_ctx, getState());
enterRule(_localctx, 190, RULE_time_unit);
try {
setState(1413);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,163,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1407);
match(YEAR);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1408);
match(MONTH);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1409);
match(DAY);
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(1410);
match(HOUR);
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(1411);
match(MINUTE);
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(1412);
expression(0);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Overlay_string_functionContext extends ParserRuleContext {
public Token function_name;
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public TerminalNode PLACING() { return getToken(VerdictSQLParser.PLACING, 0); }
public TerminalNode FROM() { return getToken(VerdictSQLParser.FROM, 0); }
public TerminalNode OVERLAY() { return getToken(VerdictSQLParser.OVERLAY, 0); }
public TerminalNode FOR() { return getToken(VerdictSQLParser.FOR, 0); }
public Overlay_string_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_overlay_string_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitOverlay_string_function(this);
else return visitor.visitChildren(this);
}
}
public final Overlay_string_functionContext overlay_string_function() throws RecognitionException {
Overlay_string_functionContext _localctx = new Overlay_string_functionContext(_ctx, getState());
enterRule(_localctx, 192, RULE_overlay_string_function);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1415);
((Overlay_string_functionContext)_localctx).function_name = match(OVERLAY);
setState(1416);
match(LR_BRACKET);
setState(1417);
expression(0);
setState(1418);
match(PLACING);
setState(1419);
expression(0);
setState(1420);
match(FROM);
setState(1421);
expression(0);
setState(1424);
_la = _input.LA(1);
if (_la==FOR) {
{
setState(1422);
match(FOR);
setState(1423);
expression(0);
}
}
setState(1426);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Substring_string_functionContext extends ParserRuleContext {
public Token function_name;
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public TerminalNode FROM() { return getToken(VerdictSQLParser.FROM, 0); }
public TerminalNode SUBSTRING() { return getToken(VerdictSQLParser.SUBSTRING, 0); }
public TerminalNode FOR() { return getToken(VerdictSQLParser.FOR, 0); }
public Substring_string_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_substring_string_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSubstring_string_function(this);
else return visitor.visitChildren(this);
}
}
public final Substring_string_functionContext substring_string_function() throws RecognitionException {
Substring_string_functionContext _localctx = new Substring_string_functionContext(_ctx, getState());
enterRule(_localctx, 194, RULE_substring_string_function);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1428);
((Substring_string_functionContext)_localctx).function_name = match(SUBSTRING);
setState(1429);
match(LR_BRACKET);
setState(1430);
expression(0);
setState(1431);
match(FROM);
setState(1432);
expression(0);
setState(1435);
_la = _input.LA(1);
if (_la==FOR) {
{
setState(1433);
match(FOR);
setState(1434);
expression(0);
}
}
setState(1437);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Nary_functionContext extends ParserRuleContext {
public Token function_name;
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public TerminalNode CONCAT() { return getToken(VerdictSQLParser.CONCAT, 0); }
public TerminalNode CONCAT_WS() { return getToken(VerdictSQLParser.CONCAT_WS, 0); }
public TerminalNode COALESCE() { return getToken(VerdictSQLParser.COALESCE, 0); }
public TerminalNode FIELD() { return getToken(VerdictSQLParser.FIELD, 0); }
public TerminalNode GREATEST() { return getToken(VerdictSQLParser.GREATEST, 0); }
public TerminalNode LEAST() { return getToken(VerdictSQLParser.LEAST, 0); }
public TerminalNode WIDTH_BUCKET() { return getToken(VerdictSQLParser.WIDTH_BUCKET, 0); }
public TerminalNode BTRIM() { return getToken(VerdictSQLParser.BTRIM, 0); }
public TerminalNode FORMAT() { return getToken(VerdictSQLParser.FORMAT, 0); }
public TerminalNode REGEXP_MATCHES() { return getToken(VerdictSQLParser.REGEXP_MATCHES, 0); }
public TerminalNode REGEXP_REPLACE() { return getToken(VerdictSQLParser.REGEXP_REPLACE, 0); }
public TerminalNode REGEXP_SPLIT_TO_ARRAY() { return getToken(VerdictSQLParser.REGEXP_SPLIT_TO_ARRAY, 0); }
public TerminalNode REGEXP_SPLIT_TO_TABLE() { return getToken(VerdictSQLParser.REGEXP_SPLIT_TO_TABLE, 0); }
public TerminalNode LTRIM() { return getToken(VerdictSQLParser.LTRIM, 0); }
public TerminalNode RTRIM() { return getToken(VerdictSQLParser.RTRIM, 0); }
public TerminalNode TO_ASCII() { return getToken(VerdictSQLParser.TO_ASCII, 0); }
public TerminalNode MAKE_TIMESTAMP() { return getToken(VerdictSQLParser.MAKE_TIMESTAMP, 0); }
public TerminalNode MAKE_TIMESTAMPTZ() { return getToken(VerdictSQLParser.MAKE_TIMESTAMPTZ, 0); }
public TerminalNode TS_HEADLINE() { return getToken(VerdictSQLParser.TS_HEADLINE, 0); }
public TerminalNode TS_RANK() { return getToken(VerdictSQLParser.TS_RANK, 0); }
public TerminalNode TS_RANK_CD() { return getToken(VerdictSQLParser.TS_RANK_CD, 0); }
public List UNNEST() { return getTokens(VerdictSQLParser.UNNEST); }
public TerminalNode UNNEST(int i) {
return getToken(VerdictSQLParser.UNNEST, i);
}
public TerminalNode XMLCONCAT() { return getToken(VerdictSQLParser.XMLCONCAT, 0); }
public TerminalNode XMLELEMENT() { return getToken(VerdictSQLParser.XMLELEMENT, 0); }
public TerminalNode XMLFOREST() { return getToken(VerdictSQLParser.XMLFOREST, 0); }
public TerminalNode JSON_BUILD_ARRAY() { return getToken(VerdictSQLParser.JSON_BUILD_ARRAY, 0); }
public TerminalNode JSON_BUILD_OBJECT() { return getToken(VerdictSQLParser.JSON_BUILD_OBJECT, 0); }
public TerminalNode JSONB_SET() { return getToken(VerdictSQLParser.JSONB_SET, 0); }
public TerminalNode JSONB_INSERT() { return getToken(VerdictSQLParser.JSONB_INSERT, 0); }
public Nary_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_nary_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitNary_function(this);
else return visitor.visitChildren(this);
}
}
public final Nary_functionContext nary_function() throws RecognitionException {
Nary_functionContext _localctx = new Nary_functionContext(_ctx, getState());
enterRule(_localctx, 196, RULE_nary_function);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1439);
((Nary_functionContext)_localctx).function_name = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==COALESCE || ((((_la - 258)) & ~0x3f) == 0 && ((1L << (_la - 258)) & ((1L << (BTRIM - 258)) | (1L << (CONCAT - 258)) | (1L << (CONCAT_WS - 258)))) != 0) || ((((_la - 338)) & ~0x3f) == 0 && ((1L << (_la - 338)) & ((1L << (FIELD - 338)) | (1L << (FORMAT - 338)) | (1L << (GREATEST - 338)) | (1L << (JSON_BUILD_ARRAY - 338)) | (1L << (JSON_BUILD_OBJECT - 338)))) != 0) || ((((_la - 406)) & ~0x3f) == 0 && ((1L << (_la - 406)) & ((1L << (JSONB_SET - 406)) | (1L << (JSONB_INSERT - 406)) | (1L << (LEAST - 406)) | (1L << (LTRIM - 406)) | (1L << (MAKE_TIMESTAMP - 406)) | (1L << (MAKE_TIMESTAMPTZ - 406)))) != 0) || ((((_la - 542)) & ~0x3f) == 0 && ((1L << (_la - 542)) & ((1L << (REGEXP_MATCHES - 542)) | (1L << (REGEXP_REPLACE - 542)) | (1L << (REGEXP_SPLIT_TO_ARRAY - 542)) | (1L << (REGEXP_SPLIT_TO_TABLE - 542)) | (1L << (RTRIM - 542)))) != 0) || ((((_la - 623)) & ~0x3f) == 0 && ((1L << (_la - 623)) & ((1L << (TO_ASCII - 623)) | (1L << (TS_HEADLINE - 623)) | (1L << (TS_RANK - 623)) | (1L << (TS_RANK_CD - 623)) | (1L << (UNNEST - 623)) | (1L << (WIDTH_BUCKET - 623)) | (1L << (XMLCONCAT - 623)) | (1L << (XMLELEMENT - 623)) | (1L << (XMLFOREST - 623)))) != 0)) ) {
((Nary_functionContext)_localctx).function_name = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
setState(1440);
match(LR_BRACKET);
setState(1441);
expression(0);
setState(1446);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1442);
match(COMMA);
setState(1443);
expression(0);
}
}
setState(1448);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1449);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Ternary_functionContext extends ParserRuleContext {
public Token function_name;
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public List IF() { return getTokens(VerdictSQLParser.IF); }
public TerminalNode IF(int i) {
return getToken(VerdictSQLParser.IF, i);
}
public TerminalNode CONV() { return getToken(VerdictSQLParser.CONV, 0); }
public TerminalNode SUBSTR() { return getToken(VerdictSQLParser.SUBSTR, 0); }
public TerminalNode HASH() { return getToken(VerdictSQLParser.HASH, 0); }
public TerminalNode RPAD() { return getToken(VerdictSQLParser.RPAD, 0); }
public TerminalNode SUBSTRING() { return getToken(VerdictSQLParser.SUBSTRING, 0); }
public TerminalNode LPAD() { return getToken(VerdictSQLParser.LPAD, 0); }
public TerminalNode MID() { return getToken(VerdictSQLParser.MID, 0); }
public TerminalNode REPLACE() { return getToken(VerdictSQLParser.REPLACE, 0); }
public TerminalNode SUBSTRING_INDEX() { return getToken(VerdictSQLParser.SUBSTRING_INDEX, 0); }
public TerminalNode MAKETIME() { return getToken(VerdictSQLParser.MAKETIME, 0); }
public TerminalNode CONVERT() { return getToken(VerdictSQLParser.CONVERT, 0); }
public TerminalNode SPLIT_PART() { return getToken(VerdictSQLParser.SPLIT_PART, 0); }
public TerminalNode TRANSLATE() { return getToken(VerdictSQLParser.TRANSLATE, 0); }
public TerminalNode MAKE_DATE() { return getToken(VerdictSQLParser.MAKE_DATE, 0); }
public TerminalNode MAKE_TIME() { return getToken(VerdictSQLParser.MAKE_TIME, 0); }
public TerminalNode SETWEIGHT() { return getToken(VerdictSQLParser.SETWEIGHT, 0); }
public TerminalNode TS_REWRITE() { return getToken(VerdictSQLParser.TS_REWRITE, 0); }
public TerminalNode TSQUERY_PHRASE() { return getToken(VerdictSQLParser.TSQUERY_PHRASE, 0); }
public TerminalNode XMLROOT() { return getToken(VerdictSQLParser.XMLROOT, 0); }
public TerminalNode XPATH() { return getToken(VerdictSQLParser.XPATH, 0); }
public TerminalNode XPATH_EXISTS() { return getToken(VerdictSQLParser.XPATH_EXISTS, 0); }
public TerminalNode ARRAY_REPLACE() { return getToken(VerdictSQLParser.ARRAY_REPLACE, 0); }
public TerminalNode ARRAY_TO_STRING() { return getToken(VerdictSQLParser.ARRAY_TO_STRING, 0); }
public TerminalNode STRING_TO_ARRAY() { return getToken(VerdictSQLParser.STRING_TO_ARRAY, 0); }
public TerminalNode LOCATE() { return getToken(VerdictSQLParser.LOCATE, 0); }
public Ternary_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_ternary_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitTernary_function(this);
else return visitor.visitChildren(this);
}
}
public final Ternary_functionContext ternary_function() throws RecognitionException {
Ternary_functionContext _localctx = new Ternary_functionContext(_ctx, getState());
enterRule(_localctx, 198, RULE_ternary_function);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1451);
((Ternary_functionContext)_localctx).function_name = _input.LT(1);
_la = _input.LA(1);
if ( !(((((_la - 42)) & ~0x3f) == 0 && ((1L << (_la - 42)) & ((1L << (CONV - 42)) | (1L << (CONVERT - 42)) | (1L << (HASH - 42)) | (1L << (IF - 42)))) != 0) || ((((_la - 115)) & ~0x3f) == 0 && ((1L << (_la - 115)) & ((1L << (MID - 115)) | (1L << (RPAD - 115)) | (1L << (SUBSTR - 115)))) != 0) || ((((_la - 179)) & ~0x3f) == 0 && ((1L << (_la - 179)) & ((1L << (SUBSTRING - 179)) | (1L << (ARRAY_REPLACE - 179)) | (1L << (ARRAY_TO_STRING - 179)))) != 0) || ((((_la - 428)) & ~0x3f) == 0 && ((1L << (_la - 428)) & ((1L << (LOCATE - 428)) | (1L << (LPAD - 428)) | (1L << (MAKETIME - 428)) | (1L << (MAKE_DATE - 428)) | (1L << (MAKE_TIME - 428)))) != 0) || ((((_la - 549)) & ~0x3f) == 0 && ((1L << (_la - 549)) & ((1L << (REPLACE - 549)) | (1L << (SETWEIGHT - 549)) | (1L << (SPLIT_PART - 549)) | (1L << (STRING_TO_ARRAY - 549)) | (1L << (SUBSTRING_INDEX - 549)))) != 0) || ((((_la - 635)) & ~0x3f) == 0 && ((1L << (_la - 635)) & ((1L << (TRANSLATE - 635)) | (1L << (TS_REWRITE - 635)) | (1L << (TSQUERY_PHRASE - 635)) | (1L << (XMLROOT - 635)) | (1L << (XPATH - 635)) | (1L << (XPATH_EXISTS - 635)))) != 0)) ) {
((Ternary_functionContext)_localctx).function_name = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
setState(1452);
match(LR_BRACKET);
setState(1453);
expression(0);
setState(1454);
match(COMMA);
setState(1455);
expression(0);
setState(1456);
match(COMMA);
setState(1457);
expression(0);
setState(1458);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Binary_functionContext extends ParserRuleContext {
public Token function_name;
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public TerminalNode ROUND() { return getToken(VerdictSQLParser.ROUND, 0); }
public TerminalNode MOD() { return getToken(VerdictSQLParser.MOD, 0); }
public TerminalNode PMOD() { return getToken(VerdictSQLParser.PMOD, 0); }
public TerminalNode LEFT() { return getToken(VerdictSQLParser.LEFT, 0); }
public TerminalNode RIGHT() { return getToken(VerdictSQLParser.RIGHT, 0); }
public TerminalNode STRTOL() { return getToken(VerdictSQLParser.STRTOL, 0); }
public TerminalNode POW() { return getToken(VerdictSQLParser.POW, 0); }
public TerminalNode POWER() { return getToken(VerdictSQLParser.POWER, 0); }
public TerminalNode PERCENTILE() { return getToken(VerdictSQLParser.PERCENTILE, 0); }
public TerminalNode SPLIT() { return getToken(VerdictSQLParser.SPLIT, 0); }
public TerminalNode INSTR() { return getToken(VerdictSQLParser.INSTR, 0); }
public TerminalNode ENCODE() { return getToken(VerdictSQLParser.ENCODE, 0); }
public TerminalNode DECODE() { return getToken(VerdictSQLParser.DECODE, 0); }
public TerminalNode SHIFTLEFT() { return getToken(VerdictSQLParser.SHIFTLEFT, 0); }
public TerminalNode SHIFTRIGHT() { return getToken(VerdictSQLParser.SHIFTRIGHT, 0); }
public TerminalNode SHIFTRIGHTUNSIGNED() { return getToken(VerdictSQLParser.SHIFTRIGHTUNSIGNED, 0); }
public TerminalNode NVL() { return getToken(VerdictSQLParser.NVL, 0); }
public TerminalNode FIND_IN_SET() { return getToken(VerdictSQLParser.FIND_IN_SET, 0); }
public TerminalNode FORMAT_NUMBER() { return getToken(VerdictSQLParser.FORMAT_NUMBER, 0); }
public TerminalNode FORMAT() { return getToken(VerdictSQLParser.FORMAT, 0); }
public TerminalNode GET_JSON_OBJECT() { return getToken(VerdictSQLParser.GET_JSON_OBJECT, 0); }
public TerminalNode IN_FILE() { return getToken(VerdictSQLParser.IN_FILE, 0); }
public TerminalNode LOCATE() { return getToken(VerdictSQLParser.LOCATE, 0); }
public TerminalNode REPEAT() { return getToken(VerdictSQLParser.REPEAT, 0); }
public TerminalNode AES_ENCRYPT() { return getToken(VerdictSQLParser.AES_ENCRYPT, 0); }
public TerminalNode AES_DECRYPT() { return getToken(VerdictSQLParser.AES_DECRYPT, 0); }
public TerminalNode POSITION() { return getToken(VerdictSQLParser.POSITION, 0); }
public TerminalNode STRCMP() { return getToken(VerdictSQLParser.STRCMP, 0); }
public TerminalNode TRUNCATE() { return getToken(VerdictSQLParser.TRUNCATE, 0); }
public TerminalNode ADDDATE() { return getToken(VerdictSQLParser.ADDDATE, 0); }
public TerminalNode ADDTIME() { return getToken(VerdictSQLParser.ADDTIME, 0); }
public TerminalNode DATEDIFF() { return getToken(VerdictSQLParser.DATEDIFF, 0); }
public TerminalNode DATE_ADD() { return getToken(VerdictSQLParser.DATE_ADD, 0); }
public TerminalNode DATE_FORMAT() { return getToken(VerdictSQLParser.DATE_FORMAT, 0); }
public TerminalNode DATE_SUB() { return getToken(VerdictSQLParser.DATE_SUB, 0); }
public TerminalNode MAKEDATE() { return getToken(VerdictSQLParser.MAKEDATE, 0); }
public TerminalNode PERIOD_ADD() { return getToken(VerdictSQLParser.PERIOD_ADD, 0); }
public TerminalNode PERIOD_DIFF() { return getToken(VerdictSQLParser.PERIOD_DIFF, 0); }
public TerminalNode SUBDATE() { return getToken(VerdictSQLParser.SUBDATE, 0); }
public TerminalNode TIME_FORMAT() { return getToken(VerdictSQLParser.TIME_FORMAT, 0); }
public TerminalNode TIMEDIFF() { return getToken(VerdictSQLParser.TIMEDIFF, 0); }
public TerminalNode CONVERT() { return getToken(VerdictSQLParser.CONVERT, 0); }
public TerminalNode IFNULL() { return getToken(VerdictSQLParser.IFNULL, 0); }
public TerminalNode NULLIF() { return getToken(VerdictSQLParser.NULLIF, 0); }
public TerminalNode DIV() { return getToken(VerdictSQLParser.DIV, 0); }
public TerminalNode LOG() { return getToken(VerdictSQLParser.LOG, 0); }
public TerminalNode TRUNC() { return getToken(VerdictSQLParser.TRUNC, 0); }
public TerminalNode CONVERT_FROM() { return getToken(VerdictSQLParser.CONVERT_FROM, 0); }
public TerminalNode CONVERT_TO() { return getToken(VerdictSQLParser.CONVERT_TO, 0); }
public TerminalNode LENGTH() { return getToken(VerdictSQLParser.LENGTH, 0); }
public TerminalNode STRPOS() { return getToken(VerdictSQLParser.STRPOS, 0); }
public TerminalNode GET_BIT() { return getToken(VerdictSQLParser.GET_BIT, 0); }
public TerminalNode GET_BYTE() { return getToken(VerdictSQLParser.GET_BYTE, 0); }
public TerminalNode SET_BIT() { return getToken(VerdictSQLParser.SET_BIT, 0); }
public TerminalNode SET_BYTE() { return getToken(VerdictSQLParser.SET_BYTE, 0); }
public TerminalNode TO_CHAR() { return getToken(VerdictSQLParser.TO_CHAR, 0); }
public TerminalNode TO_NUMBER() { return getToken(VerdictSQLParser.TO_NUMBER, 0); }
public TerminalNode TO_TIMESTAMP() { return getToken(VerdictSQLParser.TO_TIMESTAMP, 0); }
public TerminalNode AGE() { return getToken(VerdictSQLParser.AGE, 0); }
public TerminalNode DATE_PART() { return getToken(VerdictSQLParser.DATE_PART, 0); }
public TerminalNode DATE_TRUNC() { return getToken(VerdictSQLParser.DATE_TRUNC, 0); }
public TerminalNode ENUM_RANGE() { return getToken(VerdictSQLParser.ENUM_RANGE, 0); }
public TerminalNode BOUND_BOX() { return getToken(VerdictSQLParser.BOUND_BOX, 0); }
public TerminalNode CIRCLE() { return getToken(VerdictSQLParser.CIRCLE, 0); }
public TerminalNode POINT() { return getToken(VerdictSQLParser.POINT, 0); }
public TerminalNode SET_MASKLEN() { return getToken(VerdictSQLParser.SET_MASKLEN, 0); }
public TerminalNode INET_SAME_FAMILY() { return getToken(VerdictSQLParser.INET_SAME_FAMILY, 0); }
public TerminalNode INET_MERGE() { return getToken(VerdictSQLParser.INET_MERGE, 0); }
public TerminalNode PLAINTO_TSQUERY() { return getToken(VerdictSQLParser.PLAINTO_TSQUERY, 0); }
public TerminalNode PHRASETO_TSQUERY() { return getToken(VerdictSQLParser.PHRASETO_TSQUERY, 0); }
public TerminalNode SETWEIGHT() { return getToken(VerdictSQLParser.SETWEIGHT, 0); }
public TerminalNode TO_TSQUERY() { return getToken(VerdictSQLParser.TO_TSQUERY, 0); }
public TerminalNode TO_TSVECTOR() { return getToken(VerdictSQLParser.TO_TSVECTOR, 0); }
public TerminalNode TS_DELETE() { return getToken(VerdictSQLParser.TS_DELETE, 0); }
public TerminalNode TS_FILTER() { return getToken(VerdictSQLParser.TS_FILTER, 0); }
public TerminalNode TS_REWRITE() { return getToken(VerdictSQLParser.TS_REWRITE, 0); }
public TerminalNode TSQUERY_PHRASE() { return getToken(VerdictSQLParser.TSQUERY_PHRASE, 0); }
public TerminalNode XMLPI() { return getToken(VerdictSQLParser.XMLPI, 0); }
public TerminalNode XMLROOT() { return getToken(VerdictSQLParser.XMLROOT, 0); }
public TerminalNode XPATH() { return getToken(VerdictSQLParser.XPATH, 0); }
public TerminalNode XPATH_EXISTS() { return getToken(VerdictSQLParser.XPATH_EXISTS, 0); }
public TerminalNode ARRAY_TO_JSON() { return getToken(VerdictSQLParser.ARRAY_TO_JSON, 0); }
public TerminalNode ROW_TO_JSON() { return getToken(VerdictSQLParser.ROW_TO_JSON, 0); }
public TerminalNode JSON_OBJECT() { return getToken(VerdictSQLParser.JSON_OBJECT, 0); }
public TerminalNode JSON_EXTRACT_PATH() { return getToken(VerdictSQLParser.JSON_EXTRACT_PATH, 0); }
public TerminalNode JSON_EXTRACT_PATH_TEXT() { return getToken(VerdictSQLParser.JSON_EXTRACT_PATH_TEXT, 0); }
public TerminalNode JSON_POPULATE_RECORDSET() { return getToken(VerdictSQLParser.JSON_POPULATE_RECORDSET, 0); }
public TerminalNode JSON_POPULATE_RECORD() { return getToken(VerdictSQLParser.JSON_POPULATE_RECORD, 0); }
public TerminalNode SETVAL() { return getToken(VerdictSQLParser.SETVAL, 0); }
public TerminalNode ARRAY_APPEND() { return getToken(VerdictSQLParser.ARRAY_APPEND, 0); }
public TerminalNode ARRAY_CAT() { return getToken(VerdictSQLParser.ARRAY_CAT, 0); }
public TerminalNode ARRAY_LENGTH() { return getToken(VerdictSQLParser.ARRAY_LENGTH, 0); }
public TerminalNode ARRAY_LOWER() { return getToken(VerdictSQLParser.ARRAY_LOWER, 0); }
public TerminalNode ARRAY_POSITION() { return getToken(VerdictSQLParser.ARRAY_POSITION, 0); }
public TerminalNode ARRAY_POSITIONS() { return getToken(VerdictSQLParser.ARRAY_POSITIONS, 0); }
public TerminalNode ARRAY_PREPEND() { return getToken(VerdictSQLParser.ARRAY_PREPEND, 0); }
public TerminalNode ARRAY_REMOVE() { return getToken(VerdictSQLParser.ARRAY_REMOVE, 0); }
public TerminalNode ARRAY_TO_STRING() { return getToken(VerdictSQLParser.ARRAY_TO_STRING, 0); }
public TerminalNode ARRAY_UPPER() { return getToken(VerdictSQLParser.ARRAY_UPPER, 0); }
public TerminalNode STRING_TO_ARRAY() { return getToken(VerdictSQLParser.STRING_TO_ARRAY, 0); }
public TerminalNode RANGE_MERGE() { return getToken(VerdictSQLParser.RANGE_MERGE, 0); }
public TerminalNode CORR() { return getToken(VerdictSQLParser.CORR, 0); }
public TerminalNode COVAR_POP() { return getToken(VerdictSQLParser.COVAR_POP, 0); }
public TerminalNode COVAR_SAMP() { return getToken(VerdictSQLParser.COVAR_SAMP, 0); }
public TerminalNode REGR_AVGX() { return getToken(VerdictSQLParser.REGR_AVGX, 0); }
public TerminalNode REGR_AVGY() { return getToken(VerdictSQLParser.REGR_AVGY, 0); }
public TerminalNode REGR_COUNT() { return getToken(VerdictSQLParser.REGR_COUNT, 0); }
public TerminalNode REGR_INTERCEPT() { return getToken(VerdictSQLParser.REGR_INTERCEPT, 0); }
public TerminalNode REGR_R2() { return getToken(VerdictSQLParser.REGR_R2, 0); }
public TerminalNode REGR_SLOPE() { return getToken(VerdictSQLParser.REGR_SLOPE, 0); }
public TerminalNode REGR_SXX() { return getToken(VerdictSQLParser.REGR_SXX, 0); }
public TerminalNode REGR_SXY() { return getToken(VerdictSQLParser.REGR_SXY, 0); }
public TerminalNode REGR_SYY() { return getToken(VerdictSQLParser.REGR_SYY, 0); }
public TerminalNode SUBSTR() { return getToken(VerdictSQLParser.SUBSTR, 0); }
public TerminalNode STDDEV_POP() { return getToken(VerdictSQLParser.STDDEV_POP, 0); }
public TerminalNode VARIANCE() { return getToken(VerdictSQLParser.VARIANCE, 0); }
public TerminalNode VAR_POP() { return getToken(VerdictSQLParser.VAR_POP, 0); }
public TerminalNode VAR_SAMP() { return getToken(VerdictSQLParser.VAR_SAMP, 0); }
public TerminalNode INT4LARGER() { return getToken(VerdictSQLParser.INT4LARGER, 0); }
public TerminalNode SUBSTRING() { return getToken(VerdictSQLParser.SUBSTRING, 0); }
public Binary_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_binary_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitBinary_function(this);
else return visitor.visitChildren(this);
}
}
public final Binary_functionContext binary_function() throws RecognitionException {
Binary_functionContext _localctx = new Binary_functionContext(_ctx, getState());
enterRule(_localctx, 200, RULE_binary_function);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1460);
((Binary_functionContext)_localctx).function_name = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==CONVERT || ((((_la - 102)) & ~0x3f) == 0 && ((1L << (_la - 102)) & ((1L << (INT4LARGER - 102)) | (1L << (LEFT - 102)) | (1L << (NULLIF - 102)) | (1L << (RIGHT - 102)))) != 0) || ((((_la - 178)) & ~0x3f) == 0 && ((1L << (_la - 178)) & ((1L << (SUBSTR - 178)) | (1L << (SUBSTRING - 178)) | (1L << (TRUNCATE - 178)) | (1L << (ADDDATE - 178)) | (1L << (ADDTIME - 178)) | (1L << (AES_DECRYPT - 178)) | (1L << (AES_ENCRYPT - 178)) | (1L << (AGE - 178)) | (1L << (ARRAY_APPEND - 178)) | (1L << (ARRAY_CAT - 178)) | (1L << (ARRAY_LENGTH - 178)) | (1L << (ARRAY_LOWER - 178)) | (1L << (ARRAY_POSITION - 178)) | (1L << (ARRAY_POSITIONS - 178)) | (1L << (ARRAY_PREPEND - 178)) | (1L << (ARRAY_REMOVE - 178)) | (1L << (ARRAY_TO_JSON - 178)) | (1L << (ARRAY_TO_STRING - 178)) | (1L << (ARRAY_UPPER - 178)))) != 0) || ((((_la - 256)) & ~0x3f) == 0 && ((1L << (_la - 256)) & ((1L << (BOUND_BOX - 256)) | (1L << (CIRCLE - 256)) | (1L << (CONVERT_FROM - 256)) | (1L << (CONVERT_TO - 256)) | (1L << (CORR - 256)) | (1L << (COVAR_POP - 256)) | (1L << (COVAR_SAMP - 256)) | (1L << (DATE_ADD - 256)) | (1L << (DATE_FORMAT - 256)) | (1L << (DATE_PART - 256)) | (1L << (DATE_SUB - 256)) | (1L << (DATE_TRUNC - 256)) | (1L << (DATEDIFF - 256)) | (1L << (DECODE - 256)))) != 0) || ((((_la - 320)) & ~0x3f) == 0 && ((1L << (_la - 320)) & ((1L << (DIV - 320)) | (1L << (ENCODE - 320)) | (1L << (ENUM_RANGE - 320)) | (1L << (FIND_IN_SET - 320)) | (1L << (FORMAT - 320)) | (1L << (FORMAT_NUMBER - 320)) | (1L << (GET_BIT - 320)) | (1L << (GET_BYTE - 320)) | (1L << (GET_JSON_OBJECT - 320)) | (1L << (IFNULL - 320)) | (1L << (INSTR - 320)) | (1L << (IN_FILE - 320)) | (1L << (INET_SAME_FAMILY - 320)) | (1L << (INET_MERGE - 320)))) != 0) || ((((_la - 393)) & ~0x3f) == 0 && ((1L << (_la - 393)) & ((1L << (JSON_EXTRACT_PATH - 393)) | (1L << (JSON_EXTRACT_PATH_TEXT - 393)) | (1L << (JSON_OBJECT - 393)) | (1L << (JSON_POPULATE_RECORD - 393)) | (1L << (JSON_POPULATE_RECORDSET - 393)) | (1L << (LENGTH - 393)) | (1L << (LOCATE - 393)) | (1L << (LOG - 393)) | (1L << (MAKEDATE - 393)))) != 0) || ((((_la - 458)) & ~0x3f) == 0 && ((1L << (_la - 458)) & ((1L << (MOD - 458)) | (1L << (NVL - 458)) | (1L << (PERCENTILE - 458)) | (1L << (PERIOD_ADD - 458)) | (1L << (PERIOD_DIFF - 458)) | (1L << (PLAINTO_TSQUERY - 458)) | (1L << (PHRASETO_TSQUERY - 458)) | (1L << (PMOD - 458)) | (1L << (POINT - 458)) | (1L << (POSITION - 458)) | (1L << (POW - 458)) | (1L << (POWER - 458)))) != 0) || ((((_la - 525)) & ~0x3f) == 0 && ((1L << (_la - 525)) & ((1L << (RANGE_MERGE - 525)) | (1L << (REGR_AVGX - 525)) | (1L << (REGR_AVGY - 525)) | (1L << (REGR_COUNT - 525)) | (1L << (REGR_INTERCEPT - 525)) | (1L << (REGR_R2 - 525)) | (1L << (REGR_SLOPE - 525)) | (1L << (REGR_SXX - 525)) | (1L << (REGR_SXY - 525)) | (1L << (REGR_SYY - 525)) | (1L << (REPEAT - 525)) | (1L << (ROUND - 525)) | (1L << (ROW_TO_JSON - 525)) | (1L << (SETWEIGHT - 525)) | (1L << (SETVAL - 525)) | (1L << (SET_BIT - 525)) | (1L << (SET_BYTE - 525)) | (1L << (SET_MASKLEN - 525)) | (1L << (SHIFTLEFT - 525)) | (1L << (SHIFTRIGHT - 525)) | (1L << (SHIFTRIGHTUNSIGNED - 525)) | (1L << (SPLIT - 525)))) != 0) || ((((_la - 599)) & ~0x3f) == 0 && ((1L << (_la - 599)) & ((1L << (STRCMP - 599)) | (1L << (STRING_TO_ARRAY - 599)) | (1L << (STRPOS - 599)) | (1L << (SUBDATE - 599)) | (1L << (STDDEV_POP - 599)) | (1L << (STRTOL - 599)) | (1L << (TIMEDIFF - 599)) | (1L << (TIME_FORMAT - 599)) | (1L << (TO_CHAR - 599)) | (1L << (TO_NUMBER - 599)) | (1L << (TO_TIMESTAMP - 599)) | (1L << (TO_TSQUERY - 599)) | (1L << (TO_TSVECTOR - 599)) | (1L << (TRUNC - 599)) | (1L << (TS_DELETE - 599)) | (1L << (TS_FILTER - 599)) | (1L << (TS_REWRITE - 599)) | (1L << (TSQUERY_PHRASE - 599)))) != 0) || ((((_la - 667)) & ~0x3f) == 0 && ((1L << (_la - 667)) & ((1L << (VARIANCE - 667)) | (1L << (VAR_POP - 667)) | (1L << (VAR_SAMP - 667)) | (1L << (XMLPI - 667)) | (1L << (XMLROOT - 667)) | (1L << (XPATH - 667)) | (1L << (XPATH_EXISTS - 667)))) != 0)) ) {
((Binary_functionContext)_localctx).function_name = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
setState(1461);
match(LR_BRACKET);
setState(1462);
expression(0);
setState(1463);
match(COMMA);
setState(1464);
expression(0);
setState(1465);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Unary_functionContext extends ParserRuleContext {
public Token function_name;
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode ISNULL() { return getToken(VerdictSQLParser.ISNULL, 0); }
public TerminalNode ROUND() { return getToken(VerdictSQLParser.ROUND, 0); }
public TerminalNode CHAR_LENGTH() { return getToken(VerdictSQLParser.CHAR_LENGTH, 0); }
public TerminalNode FLOOR() { return getToken(VerdictSQLParser.FLOOR, 0); }
public TerminalNode CEIL() { return getToken(VerdictSQLParser.CEIL, 0); }
public TerminalNode CEILING() { return getToken(VerdictSQLParser.CEILING, 0); }
public TerminalNode EXP() { return getToken(VerdictSQLParser.EXP, 0); }
public TerminalNode LN() { return getToken(VerdictSQLParser.LN, 0); }
public TerminalNode LOG() { return getToken(VerdictSQLParser.LOG, 0); }
public TerminalNode LOG10() { return getToken(VerdictSQLParser.LOG10, 0); }
public TerminalNode LOG2() { return getToken(VerdictSQLParser.LOG2, 0); }
public TerminalNode SIN() { return getToken(VerdictSQLParser.SIN, 0); }
public TerminalNode COS() { return getToken(VerdictSQLParser.COS, 0); }
public TerminalNode COT() { return getToken(VerdictSQLParser.COT, 0); }
public TerminalNode TAN() { return getToken(VerdictSQLParser.TAN, 0); }
public TerminalNode SIGN() { return getToken(VerdictSQLParser.SIGN, 0); }
public TerminalNode RAND() { return getToken(VerdictSQLParser.RAND, 0); }
public TerminalNode FNV_HASH() { return getToken(VerdictSQLParser.FNV_HASH, 0); }
public TerminalNode RAWTOHEX() { return getToken(VerdictSQLParser.RAWTOHEX, 0); }
public TerminalNode ABS() { return getToken(VerdictSQLParser.ABS, 0); }
public TerminalNode STDDEV() { return getToken(VerdictSQLParser.STDDEV, 0); }
public TerminalNode SQRT() { return getToken(VerdictSQLParser.SQRT, 0); }
public TerminalNode LCASE() { return getToken(VerdictSQLParser.LCASE, 0); }
public TerminalNode MD5() { return getToken(VerdictSQLParser.MD5, 0); }
public TerminalNode CRC32() { return getToken(VerdictSQLParser.CRC32, 0); }
public TerminalNode YEAR() { return getToken(VerdictSQLParser.YEAR, 0); }
public TerminalNode QUARTER() { return getToken(VerdictSQLParser.QUARTER, 0); }
public TerminalNode MONTH() { return getToken(VerdictSQLParser.MONTH, 0); }
public TerminalNode DAY() { return getToken(VerdictSQLParser.DAY, 0); }
public TerminalNode HOUR() { return getToken(VerdictSQLParser.HOUR, 0); }
public TerminalNode MINUTE() { return getToken(VerdictSQLParser.MINUTE, 0); }
public TerminalNode SECOND() { return getToken(VerdictSQLParser.SECOND, 0); }
public TerminalNode WEEKOFYEAR() { return getToken(VerdictSQLParser.WEEKOFYEAR, 0); }
public TerminalNode LOWER() { return getToken(VerdictSQLParser.LOWER, 0); }
public TerminalNode UPPER() { return getToken(VerdictSQLParser.UPPER, 0); }
public TerminalNode UCASE() { return getToken(VerdictSQLParser.UCASE, 0); }
public TerminalNode ASCII() { return getToken(VerdictSQLParser.ASCII, 0); }
public TerminalNode CHARACTER_LENGTH() { return getToken(VerdictSQLParser.CHARACTER_LENGTH, 0); }
public TerminalNode FACTORIAL() { return getToken(VerdictSQLParser.FACTORIAL, 0); }
public TerminalNode CBRT() { return getToken(VerdictSQLParser.CBRT, 0); }
public TerminalNode LENGTH() { return getToken(VerdictSQLParser.LENGTH, 0); }
public TerminalNode TRIM() { return getToken(VerdictSQLParser.TRIM, 0); }
public TerminalNode ASIN() { return getToken(VerdictSQLParser.ASIN, 0); }
public TerminalNode ACOS() { return getToken(VerdictSQLParser.ACOS, 0); }
public TerminalNode ATAN() { return getToken(VerdictSQLParser.ATAN, 0); }
public TerminalNode ATAN2() { return getToken(VerdictSQLParser.ATAN2, 0); }
public TerminalNode DEGREES() { return getToken(VerdictSQLParser.DEGREES, 0); }
public TerminalNode RADIANS() { return getToken(VerdictSQLParser.RADIANS, 0); }
public TerminalNode POSITIVE() { return getToken(VerdictSQLParser.POSITIVE, 0); }
public TerminalNode NEGATIVE() { return getToken(VerdictSQLParser.NEGATIVE, 0); }
public TerminalNode BROUND() { return getToken(VerdictSQLParser.BROUND, 0); }
public TerminalNode BIN() { return getToken(VerdictSQLParser.BIN, 0); }
public TerminalNode HEX() { return getToken(VerdictSQLParser.HEX, 0); }
public TerminalNode UNHEX() { return getToken(VerdictSQLParser.UNHEX, 0); }
public TerminalNode FROM_UNIXTIME() { return getToken(VerdictSQLParser.FROM_UNIXTIME, 0); }
public TerminalNode TO_DATE() { return getToken(VerdictSQLParser.TO_DATE, 0); }
public List CHR() { return getTokens(VerdictSQLParser.CHR); }
public TerminalNode CHR(int i) {
return getToken(VerdictSQLParser.CHR, i);
}
public TerminalNode LTRIM() { return getToken(VerdictSQLParser.LTRIM, 0); }
public TerminalNode RTRIM() { return getToken(VerdictSQLParser.RTRIM, 0); }
public TerminalNode REVERSE() { return getToken(VerdictSQLParser.REVERSE, 0); }
public TerminalNode SPACE_FUNCTION() { return getToken(VerdictSQLParser.SPACE_FUNCTION, 0); }
public TerminalNode SHA1() { return getToken(VerdictSQLParser.SHA1, 0); }
public TerminalNode SHA2() { return getToken(VerdictSQLParser.SHA2, 0); }
public TerminalNode SPACE() { return getToken(VerdictSQLParser.SPACE, 0); }
public TerminalNode DATE() { return getToken(VerdictSQLParser.DATE, 0); }
public TerminalNode DAYNAME() { return getToken(VerdictSQLParser.DAYNAME, 0); }
public TerminalNode DAYOFMONTH() { return getToken(VerdictSQLParser.DAYOFMONTH, 0); }
public TerminalNode DAYOFWEEK() { return getToken(VerdictSQLParser.DAYOFWEEK, 0); }
public TerminalNode DAYOFYEAR() { return getToken(VerdictSQLParser.DAYOFYEAR, 0); }
public TerminalNode FROM_DAYS() { return getToken(VerdictSQLParser.FROM_DAYS, 0); }
public TerminalNode LAST_DAY() { return getToken(VerdictSQLParser.LAST_DAY, 0); }
public TerminalNode MICROSECOND() { return getToken(VerdictSQLParser.MICROSECOND, 0); }
public TerminalNode MONTHNAME() { return getToken(VerdictSQLParser.MONTHNAME, 0); }
public TerminalNode SEC_TO_TIME() { return getToken(VerdictSQLParser.SEC_TO_TIME, 0); }
public TerminalNode STR_TO_DATE() { return getToken(VerdictSQLParser.STR_TO_DATE, 0); }
public TerminalNode TIME() { return getToken(VerdictSQLParser.TIME, 0); }
public TerminalNode TIME_TO_SEC() { return getToken(VerdictSQLParser.TIME_TO_SEC, 0); }
public TerminalNode TIMESTAMP() { return getToken(VerdictSQLParser.TIMESTAMP, 0); }
public TerminalNode TO_DAYS() { return getToken(VerdictSQLParser.TO_DAYS, 0); }
public TerminalNode WEEK() { return getToken(VerdictSQLParser.WEEK, 0); }
public TerminalNode WEEKDAY() { return getToken(VerdictSQLParser.WEEKDAY, 0); }
public TerminalNode YEARWEEK() { return getToken(VerdictSQLParser.YEARWEEK, 0); }
public TerminalNode BINARY() { return getToken(VerdictSQLParser.BINARY, 0); }
public TerminalNode SCALE() { return getToken(VerdictSQLParser.SCALE, 0); }
public TerminalNode TRUNC() { return getToken(VerdictSQLParser.TRUNC, 0); }
public TerminalNode SETSEED() { return getToken(VerdictSQLParser.SETSEED, 0); }
public TerminalNode BIT_LENGTH() { return getToken(VerdictSQLParser.BIT_LENGTH, 0); }
public TerminalNode OCTET_LENGTH() { return getToken(VerdictSQLParser.OCTET_LENGTH, 0); }
public TerminalNode INITCAP() { return getToken(VerdictSQLParser.INITCAP, 0); }
public TerminalNode QUOTE_IDENT() { return getToken(VerdictSQLParser.QUOTE_IDENT, 0); }
public TerminalNode QUOTE_LITERAL() { return getToken(VerdictSQLParser.QUOTE_LITERAL, 0); }
public TerminalNode QUOTE_NULLABLE() { return getToken(VerdictSQLParser.QUOTE_NULLABLE, 0); }
public TerminalNode TO_HEX() { return getToken(VerdictSQLParser.TO_HEX, 0); }
public TerminalNode AGE() { return getToken(VerdictSQLParser.AGE, 0); }
public TerminalNode ISFINITE() { return getToken(VerdictSQLParser.ISFINITE, 0); }
public TerminalNode JUSTIFY_DAYS() { return getToken(VerdictSQLParser.JUSTIFY_DAYS, 0); }
public TerminalNode JUSTIFY_HOURS() { return getToken(VerdictSQLParser.JUSTIFY_HOURS, 0); }
public TerminalNode JUSTIFY_INTERVALS() { return getToken(VerdictSQLParser.JUSTIFY_INTERVALS, 0); }
public TerminalNode TO_TIMESTAMP() { return getToken(VerdictSQLParser.TO_TIMESTAMP, 0); }
public TerminalNode ENUM_RANGE() { return getToken(VerdictSQLParser.ENUM_RANGE, 0); }
public TerminalNode ENUM_FIRST() { return getToken(VerdictSQLParser.ENUM_FIRST, 0); }
public TerminalNode ENUM_LAST() { return getToken(VerdictSQLParser.ENUM_LAST, 0); }
public TerminalNode AREA() { return getToken(VerdictSQLParser.AREA, 0); }
public TerminalNode CENTER() { return getToken(VerdictSQLParser.CENTER, 0); }
public TerminalNode DIAMETER() { return getToken(VerdictSQLParser.DIAMETER, 0); }
public TerminalNode HEIGHT() { return getToken(VerdictSQLParser.HEIGHT, 0); }
public TerminalNode ISCLOSED() { return getToken(VerdictSQLParser.ISCLOSED, 0); }
public TerminalNode ISOPEN() { return getToken(VerdictSQLParser.ISOPEN, 0); }
public TerminalNode NPOINTS() { return getToken(VerdictSQLParser.NPOINTS, 0); }
public TerminalNode PCLOSE() { return getToken(VerdictSQLParser.PCLOSE, 0); }
public TerminalNode POPEN() { return getToken(VerdictSQLParser.POPEN, 0); }
public TerminalNode RADIUS() { return getToken(VerdictSQLParser.RADIUS, 0); }
public TerminalNode WIDTH() { return getToken(VerdictSQLParser.WIDTH, 0); }
public TerminalNode BOX() { return getToken(VerdictSQLParser.BOX, 0); }
public TerminalNode CIRCLE() { return getToken(VerdictSQLParser.CIRCLE, 0); }
public TerminalNode LINE() { return getToken(VerdictSQLParser.LINE, 0); }
public TerminalNode LSEG() { return getToken(VerdictSQLParser.LSEG, 0); }
public TerminalNode PATH() { return getToken(VerdictSQLParser.PATH, 0); }
public TerminalNode POINT() { return getToken(VerdictSQLParser.POINT, 0); }
public TerminalNode POLYGON() { return getToken(VerdictSQLParser.POLYGON, 0); }
public TerminalNode ABBREV() { return getToken(VerdictSQLParser.ABBREV, 0); }
public TerminalNode BROADCAST() { return getToken(VerdictSQLParser.BROADCAST, 0); }
public TerminalNode FAMILY() { return getToken(VerdictSQLParser.FAMILY, 0); }
public TerminalNode HOST() { return getToken(VerdictSQLParser.HOST, 0); }
public TerminalNode HOSTMASK() { return getToken(VerdictSQLParser.HOSTMASK, 0); }
public TerminalNode MASKLEN() { return getToken(VerdictSQLParser.MASKLEN, 0); }
public TerminalNode NETMASK() { return getToken(VerdictSQLParser.NETMASK, 0); }
public TerminalNode NETWORK() { return getToken(VerdictSQLParser.NETWORK, 0); }
public TerminalNode TEXT() { return getToken(VerdictSQLParser.TEXT, 0); }
public TerminalNode MACADDR8_SET7BIT() { return getToken(VerdictSQLParser.MACADDR8_SET7BIT, 0); }
public TerminalNode ARRAY_TO_TSVECTOR() { return getToken(VerdictSQLParser.ARRAY_TO_TSVECTOR, 0); }
public TerminalNode NUMNODE() { return getToken(VerdictSQLParser.NUMNODE, 0); }
public TerminalNode PLAINTO_TSQUERY() { return getToken(VerdictSQLParser.PLAINTO_TSQUERY, 0); }
public TerminalNode PHRASETO_TSQUERY() { return getToken(VerdictSQLParser.PHRASETO_TSQUERY, 0); }
public TerminalNode QUERYTREE() { return getToken(VerdictSQLParser.QUERYTREE, 0); }
public TerminalNode STRIP() { return getToken(VerdictSQLParser.STRIP, 0); }
public TerminalNode TO_TSQUERY() { return getToken(VerdictSQLParser.TO_TSQUERY, 0); }
public TerminalNode TO_TSVECTOR() { return getToken(VerdictSQLParser.TO_TSVECTOR, 0); }
public TerminalNode TSVECTOR_TO_ARRAY() { return getToken(VerdictSQLParser.TSVECTOR_TO_ARRAY, 0); }
public TerminalNode XMLCOMMENT() { return getToken(VerdictSQLParser.XMLCOMMENT, 0); }
public TerminalNode XMLPI() { return getToken(VerdictSQLParser.XMLPI, 0); }
public TerminalNode XMLAGG() { return getToken(VerdictSQLParser.XMLAGG, 0); }
public TerminalNode XML_ISWELL_FORMAT() { return getToken(VerdictSQLParser.XML_ISWELL_FORMAT, 0); }
public TerminalNode TO_JSON() { return getToken(VerdictSQLParser.TO_JSON, 0); }
public TerminalNode TO_JSONB() { return getToken(VerdictSQLParser.TO_JSONB, 0); }
public TerminalNode ARRAY_TO_JSON() { return getToken(VerdictSQLParser.ARRAY_TO_JSON, 0); }
public TerminalNode ROW_TO_JSON() { return getToken(VerdictSQLParser.ROW_TO_JSON, 0); }
public TerminalNode JSON_OBJECT() { return getToken(VerdictSQLParser.JSON_OBJECT, 0); }
public TerminalNode JSON_ARRAY_LENGTH() { return getToken(VerdictSQLParser.JSON_ARRAY_LENGTH, 0); }
public TerminalNode JSON_EACH() { return getToken(VerdictSQLParser.JSON_EACH, 0); }
public TerminalNode JSON_EACH_TEXT() { return getToken(VerdictSQLParser.JSON_EACH_TEXT, 0); }
public TerminalNode JSON_OBJECT_KEYS() { return getToken(VerdictSQLParser.JSON_OBJECT_KEYS, 0); }
public TerminalNode JSON_ARRAY_ELEMENTS() { return getToken(VerdictSQLParser.JSON_ARRAY_ELEMENTS, 0); }
public TerminalNode JSON_ARRAY_ELEMENTS_TEXT() { return getToken(VerdictSQLParser.JSON_ARRAY_ELEMENTS_TEXT, 0); }
public TerminalNode JSON_TYPEOF() { return getToken(VerdictSQLParser.JSON_TYPEOF, 0); }
public TerminalNode JSON_TO_RECORD() { return getToken(VerdictSQLParser.JSON_TO_RECORD, 0); }
public TerminalNode JSON_TO_RECORDSET() { return getToken(VerdictSQLParser.JSON_TO_RECORDSET, 0); }
public TerminalNode JSON_STRIP_NULLS() { return getToken(VerdictSQLParser.JSON_STRIP_NULLS, 0); }
public TerminalNode JSONB_PRETTY() { return getToken(VerdictSQLParser.JSONB_PRETTY, 0); }
public TerminalNode CURRVAL() { return getToken(VerdictSQLParser.CURRVAL, 0); }
public TerminalNode NEXTVAL() { return getToken(VerdictSQLParser.NEXTVAL, 0); }
public TerminalNode ARRAY_NDIMS() { return getToken(VerdictSQLParser.ARRAY_NDIMS, 0); }
public TerminalNode ARRAY_DIMS() { return getToken(VerdictSQLParser.ARRAY_DIMS, 0); }
public TerminalNode CARDINALITY() { return getToken(VerdictSQLParser.CARDINALITY, 0); }
public TerminalNode ISEMPTY() { return getToken(VerdictSQLParser.ISEMPTY, 0); }
public TerminalNode LOWER_INC() { return getToken(VerdictSQLParser.LOWER_INC, 0); }
public TerminalNode UPPER_INC() { return getToken(VerdictSQLParser.UPPER_INC, 0); }
public TerminalNode LOWER_INF() { return getToken(VerdictSQLParser.LOWER_INF, 0); }
public TerminalNode UPPER_INF() { return getToken(VerdictSQLParser.UPPER_INF, 0); }
public TerminalNode ARRAY_AGG() { return getToken(VerdictSQLParser.ARRAY_AGG, 0); }
public TerminalNode BIT_AND() { return getToken(VerdictSQLParser.BIT_AND, 0); }
public TerminalNode BIT_OR() { return getToken(VerdictSQLParser.BIT_OR, 0); }
public TerminalNode BOOL_AND() { return getToken(VerdictSQLParser.BOOL_AND, 0); }
public TerminalNode BOOL_OR() { return getToken(VerdictSQLParser.BOOL_OR, 0); }
public TerminalNode EVERY() { return getToken(VerdictSQLParser.EVERY, 0); }
public TerminalNode JSON_AGG() { return getToken(VerdictSQLParser.JSON_AGG, 0); }
public TerminalNode JSONB_AGG() { return getToken(VerdictSQLParser.JSONB_AGG, 0); }
public TerminalNode JSON_OBJECT_AGG() { return getToken(VerdictSQLParser.JSON_OBJECT_AGG, 0); }
public TerminalNode JSONB_OBJECT_AGG() { return getToken(VerdictSQLParser.JSONB_OBJECT_AGG, 0); }
public TerminalNode STRING_AGG() { return getToken(VerdictSQLParser.STRING_AGG, 0); }
public Cast_as_expressionContext cast_as_expression() {
return getRuleContext(Cast_as_expressionContext.class,0);
}
public TerminalNode CAST() { return getToken(VerdictSQLParser.CAST, 0); }
public Unary_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_unary_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitUnary_function(this);
else return visitor.visitChildren(this);
}
}
public final Unary_functionContext unary_function() throws RecognitionException {
Unary_functionContext _localctx = new Unary_functionContext(_ctx, getState());
enterRule(_localctx, 202, RULE_unary_function);
int _la;
try {
setState(1477);
switch (_input.LA(1)) {
case ASCII:
case RAWTOHEX:
case ABBREV:
case ABS:
case ACOS:
case AGE:
case AREA:
case ARRAY_AGG:
case ARRAY_DIMS:
case ARRAY_NDIMS:
case ARRAY_TO_JSON:
case ARRAY_TO_TSVECTOR:
case ASIN:
case ATAN:
case ATAN2:
case BIN:
case BIT_LENGTH:
case BOOL_AND:
case BOOL_OR:
case BOX:
case BROADCAST:
case BROUND:
case CARDINALITY:
case CBRT:
case CEIL:
case CEILING:
case CENTER:
case CHAR_LENGTH:
case CHARACTER_LENGTH:
case CHR:
case CIRCLE:
case COS:
case COT:
case CRC32:
case CURRVAL:
case DATE:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DIAMETER:
case ENUM_FIRST:
case ENUM_LAST:
case ENUM_RANGE:
case EXP:
case EVERY:
case FACTORIAL:
case FAMILY:
case FLOOR:
case FNV_HASH:
case FROM_DAYS:
case FROM_UNIXTIME:
case HEIGHT:
case HEX:
case HOST:
case HOSTMASK:
case HOUR:
case INITCAP:
case ISCLOSED:
case ISEMPTY:
case ISFINITE:
case ISNULL:
case ISOPEN:
case JSON_AGG:
case JSON_ARRAY_LENGTH:
case JSON_ARRAY_ELEMENTS:
case JSON_ARRAY_ELEMENTS_TEXT:
case JSON_EACH:
case JSON_EACH_TEXT:
case JSON_OBJECT:
case JSON_OBJECT_KEYS:
case JSON_OBJECT_AGG:
case JSON_STRIP_NULLS:
case JSON_TO_RECORD:
case JSON_TO_RECORDSET:
case JSON_TYPEOF:
case JSONB_AGG:
case JSONB_OBJECT_AGG:
case JSONB_PRETTY:
case JUSTIFY_DAYS:
case JUSTIFY_HOURS:
case JUSTIFY_INTERVALS:
case LAST_DAY:
case LCASE:
case LENGTH:
case LINE:
case LN:
case LOG:
case LOG2:
case LOG10:
case LOWER:
case LOWER_INC:
case LOWER_INF:
case LTRIM:
case LSEG:
case MACADDR8_SET7BIT:
case MASKLEN:
case MD5:
case MICROSECOND:
case MINUTE:
case MONTH:
case MONTHNAME:
case NEGATIVE:
case NETMASK:
case NETWORK:
case NEXTVAL:
case NPOINTS:
case NUMNODE:
case OCTET_LENGTH:
case PATH:
case PCLOSE:
case PLAINTO_TSQUERY:
case PHRASETO_TSQUERY:
case POINT:
case POLYGON:
case POPEN:
case POSITIVE:
case QUARTER:
case QUERYTREE:
case QUOTE_IDENT:
case QUOTE_LITERAL:
case QUOTE_NULLABLE:
case RADIANS:
case RADIUS:
case RAND:
case REVERSE:
case ROUND:
case ROW_TO_JSON:
case RTRIM:
case SCALE:
case SECOND:
case SEC_TO_TIME:
case SETSEED:
case SHA1:
case SHA2:
case SIGN:
case SIN:
case SPACE_FUNCTION:
case STDDEV:
case STRING_AGG:
case STR_TO_DATE:
case SQRT:
case STRIP:
case TAN:
case TEXT:
case TIME:
case TIMESTAMP:
case TIME_TO_SEC:
case TO_DATE:
case TO_DAYS:
case TO_HEX:
case TO_JSON:
case TO_JSONB:
case TO_TIMESTAMP:
case TO_TSQUERY:
case TO_TSVECTOR:
case TRIM:
case TRUNC:
case TSVECTOR_TO_ARRAY:
case UCASE:
case UNHEX:
case UPPER:
case UPPER_INC:
case UPPER_INF:
case WEEKOFYEAR:
case WEEK:
case WEEKDAY:
case WIDTH:
case XMLAGG:
case XMLCOMMENT:
case XMLPI:
case XML_ISWELL_FORMAT:
case YEAR:
case YEARWEEK:
case SPACE:
case BINARY:
case BIT_OR:
case BIT_AND:
enterOuterAlt(_localctx, 1);
{
setState(1467);
((Unary_functionContext)_localctx).function_name = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==ASCII || _la==RAWTOHEX || ((((_la - 215)) & ~0x3f) == 0 && ((1L << (_la - 215)) & ((1L << (ABBREV - 215)) | (1L << (ABS - 215)) | (1L << (ACOS - 215)) | (1L << (AGE - 215)) | (1L << (AREA - 215)) | (1L << (ARRAY_AGG - 215)) | (1L << (ARRAY_DIMS - 215)) | (1L << (ARRAY_NDIMS - 215)) | (1L << (ARRAY_TO_JSON - 215)) | (1L << (ARRAY_TO_TSVECTOR - 215)) | (1L << (ASIN - 215)) | (1L << (ATAN - 215)) | (1L << (ATAN2 - 215)) | (1L << (BIN - 215)) | (1L << (BIT_LENGTH - 215)) | (1L << (BOOL_AND - 215)) | (1L << (BOOL_OR - 215)) | (1L << (BOX - 215)) | (1L << (BROADCAST - 215)) | (1L << (BROUND - 215)) | (1L << (CARDINALITY - 215)) | (1L << (CBRT - 215)) | (1L << (CEIL - 215)) | (1L << (CEILING - 215)) | (1L << (CENTER - 215)) | (1L << (CHAR_LENGTH - 215)) | (1L << (CHARACTER_LENGTH - 215)) | (1L << (CHR - 215)) | (1L << (CIRCLE - 215)))) != 0) || ((((_la - 283)) & ~0x3f) == 0 && ((1L << (_la - 283)) & ((1L << (COS - 283)) | (1L << (COT - 283)) | (1L << (CRC32 - 283)) | (1L << (CURRVAL - 283)) | (1L << (DATE - 283)) | (1L << (DAY - 283)) | (1L << (DAYNAME - 283)) | (1L << (DAYOFMONTH - 283)) | (1L << (DAYOFWEEK - 283)) | (1L << (DAYOFYEAR - 283)) | (1L << (DEGREES - 283)) | (1L << (DIAMETER - 283)) | (1L << (ENUM_FIRST - 283)) | (1L << (ENUM_LAST - 283)) | (1L << (ENUM_RANGE - 283)) | (1L << (EXP - 283)) | (1L << (EVERY - 283)) | (1L << (FACTORIAL - 283)) | (1L << (FAMILY - 283)) | (1L << (FLOOR - 283)))) != 0) || ((((_la - 347)) & ~0x3f) == 0 && ((1L << (_la - 347)) & ((1L << (FNV_HASH - 347)) | (1L << (FROM_DAYS - 347)) | (1L << (FROM_UNIXTIME - 347)) | (1L << (HEIGHT - 347)) | (1L << (HEX - 347)) | (1L << (HOST - 347)) | (1L << (HOSTMASK - 347)) | (1L << (HOUR - 347)) | (1L << (INITCAP - 347)) | (1L << (ISCLOSED - 347)) | (1L << (ISEMPTY - 347)) | (1L << (ISFINITE - 347)) | (1L << (ISNULL - 347)) | (1L << (ISOPEN - 347)) | (1L << (JSON_AGG - 347)) | (1L << (JSON_ARRAY_LENGTH - 347)) | (1L << (JSON_ARRAY_ELEMENTS - 347)) | (1L << (JSON_ARRAY_ELEMENTS_TEXT - 347)) | (1L << (JSON_EACH - 347)) | (1L << (JSON_EACH_TEXT - 347)) | (1L << (JSON_OBJECT - 347)) | (1L << (JSON_OBJECT_KEYS - 347)) | (1L << (JSON_OBJECT_AGG - 347)) | (1L << (JSON_STRIP_NULLS - 347)) | (1L << (JSON_TO_RECORD - 347)) | (1L << (JSON_TO_RECORDSET - 347)) | (1L << (JSON_TYPEOF - 347)) | (1L << (JSONB_AGG - 347)) | (1L << (JSONB_OBJECT_AGG - 347)) | (1L << (JSONB_PRETTY - 347)) | (1L << (JUSTIFY_DAYS - 347)) | (1L << (JUSTIFY_HOURS - 347)))) != 0) || ((((_la - 411)) & ~0x3f) == 0 && ((1L << (_la - 411)) & ((1L << (JUSTIFY_INTERVALS - 411)) | (1L << (LAST_DAY - 411)) | (1L << (LCASE - 411)) | (1L << (LENGTH - 411)) | (1L << (LINE - 411)) | (1L << (LN - 411)) | (1L << (LOG - 411)) | (1L << (LOG2 - 411)) | (1L << (LOG10 - 411)) | (1L << (LOWER - 411)) | (1L << (LOWER_INC - 411)) | (1L << (LOWER_INF - 411)) | (1L << (LTRIM - 411)) | (1L << (LSEG - 411)) | (1L << (MACADDR8_SET7BIT - 411)) | (1L << (MASKLEN - 411)) | (1L << (MD5 - 411)) | (1L << (MICROSECOND - 411)) | (1L << (MINUTE - 411)) | (1L << (MONTH - 411)) | (1L << (MONTHNAME - 411)) | (1L << (NEGATIVE - 411)) | (1L << (NETMASK - 411)) | (1L << (NETWORK - 411)) | (1L << (NEXTVAL - 411)))) != 0) || ((((_la - 476)) & ~0x3f) == 0 && ((1L << (_la - 476)) & ((1L << (NPOINTS - 476)) | (1L << (NUMNODE - 476)) | (1L << (OCTET_LENGTH - 476)) | (1L << (PATH - 476)) | (1L << (PCLOSE - 476)) | (1L << (PLAINTO_TSQUERY - 476)) | (1L << (PHRASETO_TSQUERY - 476)) | (1L << (POINT - 476)) | (1L << (POLYGON - 476)) | (1L << (POPEN - 476)) | (1L << (POSITIVE - 476)) | (1L << (QUARTER - 476)) | (1L << (QUERYTREE - 476)) | (1L << (QUOTE_IDENT - 476)) | (1L << (QUOTE_LITERAL - 476)) | (1L << (QUOTE_NULLABLE - 476)) | (1L << (RADIANS - 476)) | (1L << (RADIUS - 476)) | (1L << (RAND - 476)))) != 0) || ((((_la - 550)) & ~0x3f) == 0 && ((1L << (_la - 550)) & ((1L << (REVERSE - 550)) | (1L << (ROUND - 550)) | (1L << (ROW_TO_JSON - 550)) | (1L << (RTRIM - 550)) | (1L << (SCALE - 550)) | (1L << (SECOND - 550)) | (1L << (SEC_TO_TIME - 550)) | (1L << (SETSEED - 550)) | (1L << (SHA1 - 550)) | (1L << (SHA2 - 550)) | (1L << (SIGN - 550)) | (1L << (SIN - 550)) | (1L << (SPACE_FUNCTION - 550)) | (1L << (STDDEV - 550)) | (1L << (STRING_AGG - 550)) | (1L << (STR_TO_DATE - 550)) | (1L << (SQRT - 550)) | (1L << (STRIP - 550)) | (1L << (TAN - 550)) | (1L << (TEXT - 550)))) != 0) || ((((_la - 616)) & ~0x3f) == 0 && ((1L << (_la - 616)) & ((1L << (TIME - 616)) | (1L << (TIMESTAMP - 616)) | (1L << (TIME_TO_SEC - 616)) | (1L << (TO_DATE - 616)) | (1L << (TO_DAYS - 616)) | (1L << (TO_HEX - 616)) | (1L << (TO_JSON - 616)) | (1L << (TO_JSONB - 616)) | (1L << (TO_TIMESTAMP - 616)) | (1L << (TO_TSQUERY - 616)) | (1L << (TO_TSVECTOR - 616)) | (1L << (TRIM - 616)) | (1L << (TRUNC - 616)) | (1L << (TSVECTOR_TO_ARRAY - 616)) | (1L << (UCASE - 616)) | (1L << (UNHEX - 616)) | (1L << (UPPER - 616)) | (1L << (UPPER_INC - 616)) | (1L << (UPPER_INF - 616)) | (1L << (WEEKOFYEAR - 616)) | (1L << (WEEK - 616)) | (1L << (WEEKDAY - 616)) | (1L << (WIDTH - 616)))) != 0) || ((((_la - 680)) & ~0x3f) == 0 && ((1L << (_la - 680)) & ((1L << (XMLAGG - 680)) | (1L << (XMLCOMMENT - 680)) | (1L << (XMLPI - 680)) | (1L << (XML_ISWELL_FORMAT - 680)) | (1L << (YEAR - 680)) | (1L << (YEARWEEK - 680)) | (1L << (SPACE - 680)) | (1L << (BINARY - 680)) | (1L << (BIT_OR - 680)) | (1L << (BIT_AND - 680)))) != 0)) ) {
((Unary_functionContext)_localctx).function_name = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
setState(1468);
match(LR_BRACKET);
setState(1469);
expression(0);
setState(1470);
match(RR_BRACKET);
}
break;
case CAST:
enterOuterAlt(_localctx, 2);
{
setState(1472);
((Unary_functionContext)_localctx).function_name = match(CAST);
setState(1473);
match(LR_BRACKET);
setState(1474);
cast_as_expression();
setState(1475);
match(RR_BRACKET);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Timestamp_functionContext extends ParserRuleContext {
public Token function_name;
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode TIMESTAMP() { return getToken(VerdictSQLParser.TIMESTAMP, 0); }
public Timestamp_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_timestamp_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitTimestamp_function(this);
else return visitor.visitChildren(this);
}
}
public final Timestamp_functionContext timestamp_function() throws RecognitionException {
Timestamp_functionContext _localctx = new Timestamp_functionContext(_ctx, getState());
enterRule(_localctx, 204, RULE_timestamp_function);
try {
enterOuterAlt(_localctx, 1);
{
setState(1479);
((Timestamp_functionContext)_localctx).function_name = match(TIMESTAMP);
setState(1480);
expression(0);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Dateadd_functionContext extends ParserRuleContext {
public Token function_name;
public Time_unitContext time_unit() {
return getRuleContext(Time_unitContext.class,0);
}
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public TerminalNode DATEADD() { return getToken(VerdictSQLParser.DATEADD, 0); }
public Dateadd_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_dateadd_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDateadd_function(this);
else return visitor.visitChildren(this);
}
}
public final Dateadd_functionContext dateadd_function() throws RecognitionException {
Dateadd_functionContext _localctx = new Dateadd_functionContext(_ctx, getState());
enterRule(_localctx, 206, RULE_dateadd_function);
try {
enterOuterAlt(_localctx, 1);
{
setState(1482);
((Dateadd_functionContext)_localctx).function_name = match(DATEADD);
setState(1483);
match(LR_BRACKET);
setState(1484);
time_unit();
setState(1485);
match(COMMA);
setState(1486);
expression(0);
setState(1487);
match(COMMA);
setState(1488);
expression(0);
setState(1489);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Predicate_functionContext extends ParserRuleContext {
public Token function_name;
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode ISNULL() { return getToken(VerdictSQLParser.ISNULL, 0); }
public TerminalNode NOT() { return getToken(VerdictSQLParser.NOT, 0); }
public Predicate_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_predicate_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitPredicate_function(this);
else return visitor.visitChildren(this);
}
}
public final Predicate_functionContext predicate_function() throws RecognitionException {
Predicate_functionContext _localctx = new Predicate_functionContext(_ctx, getState());
enterRule(_localctx, 208, RULE_predicate_function);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1492);
_la = _input.LA(1);
if (_la==NOT) {
{
setState(1491);
match(NOT);
}
}
setState(1494);
((Predicate_functionContext)_localctx).function_name = match(ISNULL);
setState(1495);
match(LR_BRACKET);
setState(1496);
expression(0);
setState(1497);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Noparam_functionContext extends ParserRuleContext {
public Token function_name;
public TerminalNode UNIX_TIMESTAMP() { return getToken(VerdictSQLParser.UNIX_TIMESTAMP, 0); }
public TerminalNode CURRENT_TIMESTAMP() { return getToken(VerdictSQLParser.CURRENT_TIMESTAMP, 0); }
public TerminalNode CURRENT_DATE() { return getToken(VerdictSQLParser.CURRENT_DATE, 0); }
public TerminalNode CURRENT_TIME() { return getToken(VerdictSQLParser.CURRENT_TIME, 0); }
public TerminalNode RANDOM() { return getToken(VerdictSQLParser.RANDOM, 0); }
public TerminalNode RAND() { return getToken(VerdictSQLParser.RAND, 0); }
public TerminalNode NATURAL_CONSTANT() { return getToken(VerdictSQLParser.NATURAL_CONSTANT, 0); }
public TerminalNode PI() { return getToken(VerdictSQLParser.PI, 0); }
public TerminalNode CURDATE() { return getToken(VerdictSQLParser.CURDATE, 0); }
public TerminalNode CURTIME() { return getToken(VerdictSQLParser.CURTIME, 0); }
public TerminalNode LOCALTIME() { return getToken(VerdictSQLParser.LOCALTIME, 0); }
public TerminalNode LOCALTIMESTAMP() { return getToken(VerdictSQLParser.LOCALTIMESTAMP, 0); }
public TerminalNode NOW() { return getToken(VerdictSQLParser.NOW, 0); }
public TerminalNode SYSDATE() { return getToken(VerdictSQLParser.SYSDATE, 0); }
public TerminalNode CURRENT_USER() { return getToken(VerdictSQLParser.CURRENT_USER, 0); }
public TerminalNode DATABASE() { return getToken(VerdictSQLParser.DATABASE, 0); }
public TerminalNode LAST_INSERT_ID() { return getToken(VerdictSQLParser.LAST_INSERT_ID, 0); }
public TerminalNode SESSION_USER() { return getToken(VerdictSQLParser.SESSION_USER, 0); }
public TerminalNode SYSTEM_USER() { return getToken(VerdictSQLParser.SYSTEM_USER, 0); }
public TerminalNode USER() { return getToken(VerdictSQLParser.USER, 0); }
public TerminalNode VERSION() { return getToken(VerdictSQLParser.VERSION, 0); }
public TerminalNode PG_CLIENT_ENCODING() { return getToken(VerdictSQLParser.PG_CLIENT_ENCODING, 0); }
public TerminalNode CLOCK_TIMESTAMP() { return getToken(VerdictSQLParser.CLOCK_TIMESTAMP, 0); }
public TerminalNode STATEMENT_TIMESTAMP() { return getToken(VerdictSQLParser.STATEMENT_TIMESTAMP, 0); }
public TerminalNode TIMEOFDAY() { return getToken(VerdictSQLParser.TIMEOFDAY, 0); }
public TerminalNode TRANSACTION_TIMESTAMP() { return getToken(VerdictSQLParser.TRANSACTION_TIMESTAMP, 0); }
public TerminalNode GET_CURRENT_TS_CONFIG() { return getToken(VerdictSQLParser.GET_CURRENT_TS_CONFIG, 0); }
public TerminalNode TSVECTOR_UPDATE_TRIGGER() { return getToken(VerdictSQLParser.TSVECTOR_UPDATE_TRIGGER, 0); }
public TerminalNode TSVECTOR_UPDATE_TRIGGER_COLUMN() { return getToken(VerdictSQLParser.TSVECTOR_UPDATE_TRIGGER_COLUMN, 0); }
public TerminalNode LASTVAL() { return getToken(VerdictSQLParser.LASTVAL, 0); }
public Noparam_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_noparam_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitNoparam_function(this);
else return visitor.visitChildren(this);
}
}
public final Noparam_functionContext noparam_function() throws RecognitionException {
Noparam_functionContext _localctx = new Noparam_functionContext(_ctx, getState());
enterRule(_localctx, 210, RULE_noparam_function);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1499);
((Noparam_functionContext)_localctx).function_name = _input.LT(1);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CURRENT_DATE) | (1L << CURRENT_TIME) | (1L << CURRENT_TIMESTAMP) | (1L << CURRENT_USER) | (1L << DATABASE))) != 0) || ((((_la - 173)) & ~0x3f) == 0 && ((1L << (_la - 173)) & ((1L << (SESSION_USER - 173)) | (1L << (SYSTEM_USER - 173)) | (1L << (USER - 173)))) != 0) || ((((_la - 275)) & ~0x3f) == 0 && ((1L << (_la - 275)) & ((1L << (CLOCK_TIMESTAMP - 275)) | (1L << (CURDATE - 275)) | (1L << (CURTIME - 275)) | (1L << (NATURAL_CONSTANT - 275)))) != 0) || ((((_la - 355)) & ~0x3f) == 0 && ((1L << (_la - 355)) & ((1L << (GET_CURRENT_TS_CONFIG - 355)) | (1L << (LASTVAL - 355)) | (1L << (LAST_INSERT_ID - 355)))) != 0) || ((((_la - 426)) & ~0x3f) == 0 && ((1L << (_la - 426)) & ((1L << (LOCALTIME - 426)) | (1L << (LOCALTIMESTAMP - 426)) | (1L << (NOW - 426)))) != 0) || ((((_la - 499)) & ~0x3f) == 0 && ((1L << (_la - 499)) & ((1L << (PG_CLIENT_ENCODING - 499)) | (1L << (PI - 499)) | (1L << (RAND - 499)) | (1L << (RANDOM - 499)))) != 0) || ((((_la - 591)) & ~0x3f) == 0 && ((1L << (_la - 591)) & ((1L << (STATEMENT_TIMESTAMP - 591)) | (1L << (SYSDATE - 591)) | (1L << (TIMEOFDAY - 591)) | (1L << (TRANSACTION_TIMESTAMP - 591)) | (1L << (TSVECTOR_UPDATE_TRIGGER - 591)) | (1L << (TSVECTOR_UPDATE_TRIGGER_COLUMN - 591)))) != 0) || _la==UNIX_TIMESTAMP || _la==VERSION) ) {
((Noparam_functionContext)_localctx).function_name = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
setState(1500);
match(LR_BRACKET);
setState(1501);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Lateral_view_functionContext extends ParserRuleContext {
public Token function_name;
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode EXPLODE() { return getToken(VerdictSQLParser.EXPLODE, 0); }
public Lateral_view_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_lateral_view_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitLateral_view_function(this);
else return visitor.visitChildren(this);
}
}
public final Lateral_view_functionContext lateral_view_function() throws RecognitionException {
Lateral_view_functionContext _localctx = new Lateral_view_functionContext(_ctx, getState());
enterRule(_localctx, 212, RULE_lateral_view_function);
try {
enterOuterAlt(_localctx, 1);
{
setState(1503);
((Lateral_view_functionContext)_localctx).function_name = match(EXPLODE);
setState(1504);
match(LR_BRACKET);
setState(1505);
expression(0);
setState(1506);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Aggregate_windowed_functionContext extends ParserRuleContext {
public TerminalNode AVG() { return getToken(VerdictSQLParser.AVG, 0); }
public All_distinct_expressionContext all_distinct_expression() {
return getRuleContext(All_distinct_expressionContext.class,0);
}
public Over_clauseContext over_clause() {
return getRuleContext(Over_clauseContext.class,0);
}
public TerminalNode CHECKSUM_AGG() { return getToken(VerdictSQLParser.CHECKSUM_AGG, 0); }
public TerminalNode GROUPING() { return getToken(VerdictSQLParser.GROUPING, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode GROUPING_ID() { return getToken(VerdictSQLParser.GROUPING_ID, 0); }
public Expression_listContext expression_list() {
return getRuleContext(Expression_listContext.class,0);
}
public TerminalNode MAX() { return getToken(VerdictSQLParser.MAX, 0); }
public TerminalNode MIN() { return getToken(VerdictSQLParser.MIN, 0); }
public TerminalNode SUM() { return getToken(VerdictSQLParser.SUM, 0); }
public TerminalNode STDEV() { return getToken(VerdictSQLParser.STDEV, 0); }
public TerminalNode STDEVP() { return getToken(VerdictSQLParser.STDEVP, 0); }
public TerminalNode STDDEV_SAMP() { return getToken(VerdictSQLParser.STDDEV_SAMP, 0); }
public TerminalNode VAR() { return getToken(VerdictSQLParser.VAR, 0); }
public TerminalNode VARP() { return getToken(VerdictSQLParser.VARP, 0); }
public TerminalNode COUNT() { return getToken(VerdictSQLParser.COUNT, 0); }
public TerminalNode NDV() { return getToken(VerdictSQLParser.NDV, 0); }
public TerminalNode COUNT_BIG() { return getToken(VerdictSQLParser.COUNT_BIG, 0); }
public Aggregate_windowed_functionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_aggregate_windowed_function; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitAggregate_windowed_function(this);
else return visitor.visitChildren(this);
}
}
public final Aggregate_windowed_functionContext aggregate_windowed_function() throws RecognitionException {
Aggregate_windowed_functionContext _localctx = new Aggregate_windowed_functionContext(_ctx, getState());
enterRule(_localctx, 214, RULE_aggregate_windowed_function);
try {
setState(1613);
switch (_input.LA(1)) {
case AVG:
enterOuterAlt(_localctx, 1);
{
setState(1508);
match(AVG);
setState(1509);
match(LR_BRACKET);
setState(1510);
all_distinct_expression();
setState(1511);
match(RR_BRACKET);
setState(1513);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,169,_ctx) ) {
case 1:
{
setState(1512);
over_clause();
}
break;
}
}
break;
case CHECKSUM_AGG:
enterOuterAlt(_localctx, 2);
{
setState(1515);
match(CHECKSUM_AGG);
setState(1516);
match(LR_BRACKET);
setState(1517);
all_distinct_expression();
setState(1518);
match(RR_BRACKET);
}
break;
case GROUPING:
enterOuterAlt(_localctx, 3);
{
setState(1520);
match(GROUPING);
setState(1521);
match(LR_BRACKET);
setState(1522);
expression(0);
setState(1523);
match(RR_BRACKET);
}
break;
case GROUPING_ID:
enterOuterAlt(_localctx, 4);
{
setState(1525);
match(GROUPING_ID);
setState(1526);
match(LR_BRACKET);
setState(1527);
expression_list();
setState(1528);
match(RR_BRACKET);
}
break;
case MAX:
enterOuterAlt(_localctx, 5);
{
setState(1530);
match(MAX);
setState(1531);
match(LR_BRACKET);
setState(1532);
all_distinct_expression();
setState(1533);
match(RR_BRACKET);
setState(1535);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,170,_ctx) ) {
case 1:
{
setState(1534);
over_clause();
}
break;
}
}
break;
case MIN:
enterOuterAlt(_localctx, 6);
{
setState(1537);
match(MIN);
setState(1538);
match(LR_BRACKET);
setState(1539);
all_distinct_expression();
setState(1540);
match(RR_BRACKET);
setState(1542);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,171,_ctx) ) {
case 1:
{
setState(1541);
over_clause();
}
break;
}
}
break;
case SUM:
enterOuterAlt(_localctx, 7);
{
setState(1544);
match(SUM);
setState(1545);
match(LR_BRACKET);
setState(1546);
all_distinct_expression();
setState(1547);
match(RR_BRACKET);
setState(1549);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,172,_ctx) ) {
case 1:
{
setState(1548);
over_clause();
}
break;
}
}
break;
case STDEV:
enterOuterAlt(_localctx, 8);
{
setState(1551);
match(STDEV);
setState(1552);
match(LR_BRACKET);
setState(1553);
all_distinct_expression();
setState(1554);
match(RR_BRACKET);
setState(1556);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,173,_ctx) ) {
case 1:
{
setState(1555);
over_clause();
}
break;
}
}
break;
case STDEVP:
enterOuterAlt(_localctx, 9);
{
setState(1558);
match(STDEVP);
setState(1559);
match(LR_BRACKET);
setState(1560);
all_distinct_expression();
setState(1561);
match(RR_BRACKET);
setState(1563);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,174,_ctx) ) {
case 1:
{
setState(1562);
over_clause();
}
break;
}
}
break;
case STDDEV_SAMP:
enterOuterAlt(_localctx, 10);
{
setState(1565);
match(STDDEV_SAMP);
setState(1566);
match(LR_BRACKET);
setState(1567);
all_distinct_expression();
setState(1568);
match(RR_BRACKET);
setState(1570);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,175,_ctx) ) {
case 1:
{
setState(1569);
over_clause();
}
break;
}
}
break;
case VAR:
enterOuterAlt(_localctx, 11);
{
setState(1572);
match(VAR);
setState(1573);
match(LR_BRACKET);
setState(1574);
all_distinct_expression();
setState(1575);
match(RR_BRACKET);
setState(1577);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,176,_ctx) ) {
case 1:
{
setState(1576);
over_clause();
}
break;
}
}
break;
case VARP:
enterOuterAlt(_localctx, 12);
{
setState(1579);
match(VARP);
setState(1580);
match(LR_BRACKET);
setState(1581);
all_distinct_expression();
setState(1582);
match(RR_BRACKET);
setState(1584);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,177,_ctx) ) {
case 1:
{
setState(1583);
over_clause();
}
break;
}
}
break;
case COUNT:
enterOuterAlt(_localctx, 13);
{
setState(1586);
match(COUNT);
setState(1587);
match(LR_BRACKET);
setState(1590);
switch (_input.LA(1)) {
case STAR:
{
setState(1588);
match(STAR);
}
break;
case ALL:
case ASCII:
case CASE:
case COALESCE:
case CONV:
case CONVERT:
case CURRENT_DATE:
case CURRENT_TIME:
case CURRENT_TIMESTAMP:
case CURRENT_USER:
case DATABASE:
case DISTINCT:
case FALSE:
case HASH:
case IF:
case INT4LARGER:
case LEFT:
case MID:
case NOT:
case NULL:
case NULLIF:
case RAWTOHEX:
case RIGHT:
case RPAD:
case SESSION_USER:
case SUBSTR:
case SUBSTRING:
case SYSTEM_USER:
case TRUE:
case TRUNCATE:
case USER:
case ABBREV:
case ABS:
case ACOS:
case ADDDATE:
case ADDTIME:
case AES_DECRYPT:
case AES_ENCRYPT:
case AGE:
case AREA:
case ARRAY_AGG:
case ARRAY_APPEND:
case ARRAY_CAT:
case ARRAY_DIMS:
case ARRAY_LENGTH:
case ARRAY_LOWER:
case ARRAY_NDIMS:
case ARRAY_POSITION:
case ARRAY_POSITIONS:
case ARRAY_PREPEND:
case ARRAY_REMOVE:
case ARRAY_REPLACE:
case ARRAY_TO_JSON:
case ARRAY_TO_STRING:
case ARRAY_TO_TSVECTOR:
case ARRAY_UPPER:
case ASIN:
case ATAN:
case ATAN2:
case AVG:
case BIN:
case BIT_LENGTH:
case BOOL_AND:
case BOOL_OR:
case BOX:
case BOUND_BOX:
case BROADCAST:
case BTRIM:
case BROUND:
case CARDINALITY:
case CAST:
case CBRT:
case CEIL:
case CEILING:
case CENTER:
case CHAR_LENGTH:
case CHARACTER_LENGTH:
case CHECKSUM_AGG:
case CHR:
case CIRCLE:
case CLOCK_TIMESTAMP:
case CONCAT:
case CONCAT_WS:
case CONVERT_FROM:
case CONVERT_TO:
case COS:
case CORR:
case COVAR_POP:
case COVAR_SAMP:
case COT:
case COUNT:
case COUNT_BIG:
case CRC32:
case CURDATE:
case CURRVAL:
case CURTIME:
case DATE:
case DATEADD:
case DATE_ADD:
case DATE_FORMAT:
case DATE_PART:
case DATE_SUB:
case DATE_TRUNC:
case DATEDIFF:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DECODE:
case DEGREES:
case DENSE_RANK:
case DIAMETER:
case DIV:
case NATURAL_CONSTANT:
case ENCODE:
case ENUM_FIRST:
case ENUM_LAST:
case ENUM_RANGE:
case EXP:
case EXTRACT:
case EVERY:
case FACTORIAL:
case FAMILY:
case FIELD:
case FIND_IN_SET:
case FLOOR:
case FORMAT:
case FORMAT_NUMBER:
case FNV_HASH:
case FROM_DAYS:
case FROM_UNIXTIME:
case GET_BIT:
case GET_BYTE:
case GET_CURRENT_TS_CONFIG:
case GET_JSON_OBJECT:
case GREATEST:
case GROUPING:
case GROUPING_ID:
case HEIGHT:
case HEX:
case HOST:
case HOSTMASK:
case HOUR:
case IFNULL:
case INITCAP:
case INSTR:
case INTERVAL:
case IN_FILE:
case INET_SAME_FAMILY:
case INET_MERGE:
case ISCLOSED:
case ISEMPTY:
case ISFINITE:
case ISNULL:
case ISOPEN:
case JSON_AGG:
case JSON_ARRAY_LENGTH:
case JSON_ARRAY_ELEMENTS:
case JSON_ARRAY_ELEMENTS_TEXT:
case JSON_BUILD_ARRAY:
case JSON_BUILD_OBJECT:
case JSON_EACH:
case JSON_EACH_TEXT:
case JSON_EXTRACT_PATH:
case JSON_EXTRACT_PATH_TEXT:
case JSON_OBJECT:
case JSON_OBJECT_KEYS:
case JSON_OBJECT_AGG:
case JSON_POPULATE_RECORD:
case JSON_POPULATE_RECORDSET:
case JSON_STRIP_NULLS:
case JSON_TO_RECORD:
case JSON_TO_RECORDSET:
case JSON_TYPEOF:
case JSONB_AGG:
case JSONB_OBJECT_AGG:
case JSONB_SET:
case JSONB_INSERT:
case JSONB_PRETTY:
case JUSTIFY_DAYS:
case JUSTIFY_HOURS:
case JUSTIFY_INTERVALS:
case LASTVAL:
case LAST_DAY:
case LAST_INSERT_ID:
case LCASE:
case LEAST:
case LENGTH:
case LINE:
case LN:
case LOCALTIME:
case LOCALTIMESTAMP:
case LOCATE:
case LOG:
case LOG2:
case LOG10:
case LOWER:
case LOWER_INC:
case LOWER_INF:
case LPAD:
case LTRIM:
case LSEG:
case MACADDR8_SET7BIT:
case MAKEDATE:
case MAKETIME:
case MAKE_DATE:
case MAKE_TIME:
case MAKE_TIMESTAMP:
case MAKE_TIMESTAMPTZ:
case MASKLEN:
case MAX:
case MD5:
case MICROSECOND:
case MIN:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case NEGATIVE:
case NETMASK:
case NETWORK:
case NDV:
case NEXTVAL:
case NOW:
case NPOINTS:
case NTILE:
case NUMNODE:
case NVL:
case OCTET_LENGTH:
case OVERLAY:
case PATH:
case PCLOSE:
case PERCENTILE:
case PERIOD_ADD:
case PERIOD_DIFF:
case PG_CLIENT_ENCODING:
case PLAINTO_TSQUERY:
case PHRASETO_TSQUERY:
case PI:
case PMOD:
case POINT:
case POLYGON:
case POPEN:
case POSITION:
case POSITIVE:
case POW:
case POWER:
case QUARTER:
case QUERYTREE:
case QUOTE_IDENT:
case QUOTE_LITERAL:
case QUOTE_NULLABLE:
case RADIANS:
case RADIUS:
case RAND:
case RANDOM:
case RANGE_MERGE:
case RANK:
case REGR_AVGX:
case REGR_AVGY:
case REGR_COUNT:
case REGR_INTERCEPT:
case REGR_R2:
case REGR_SLOPE:
case REGR_SXX:
case REGR_SXY:
case REGR_SYY:
case REGEXP_MATCHES:
case REGEXP_REPLACE:
case REGEXP_SPLIT_TO_ARRAY:
case REGEXP_SPLIT_TO_TABLE:
case REPEAT:
case REPLACE:
case REVERSE:
case ROUND:
case ROW_TO_JSON:
case ROW_NUMBER:
case RTRIM:
case SCALE:
case SECOND:
case SEC_TO_TIME:
case SETSEED:
case SETWEIGHT:
case SETVAL:
case SET_BIT:
case SET_BYTE:
case SET_MASKLEN:
case SHA1:
case SHA2:
case SHIFTLEFT:
case SHIFTRIGHT:
case SHIFTRIGHTUNSIGNED:
case SIGN:
case SIN:
case SPACE_FUNCTION:
case SPLIT:
case SPLIT_PART:
case STATEMENT_TIMESTAMP:
case STDEV:
case STDDEV:
case STDEVP:
case STDDEV_SAMP:
case STRCMP:
case STRING_AGG:
case STRING_TO_ARRAY:
case STRPOS:
case STR_TO_DATE:
case SUBDATE:
case SUBSTRING_INDEX:
case SUM:
case SQRT:
case STDDEV_POP:
case STRIP:
case STRTOL:
case SYSDATE:
case TAN:
case TEXT:
case TIME:
case TIMEDIFF:
case TIMEOFDAY:
case TIMESTAMP:
case TIME_FORMAT:
case TIME_TO_SEC:
case TO_ASCII:
case TO_CHAR:
case TO_DATE:
case TO_DAYS:
case TO_HEX:
case TO_JSON:
case TO_JSONB:
case TO_NUMBER:
case TO_TIMESTAMP:
case TO_TSQUERY:
case TO_TSVECTOR:
case TRANSACTION_TIMESTAMP:
case TRANSLATE:
case TRIM:
case TRUNC:
case TS_DELETE:
case TS_FILTER:
case TS_HEADLINE:
case TS_RANK:
case TS_RANK_CD:
case TS_REWRITE:
case TSQUERY_PHRASE:
case TSVECTOR_TO_ARRAY:
case TSVECTOR_UPDATE_TRIGGER:
case TSVECTOR_UPDATE_TRIGGER_COLUMN:
case UCASE:
case UNHEX:
case UNIX_TIMESTAMP:
case UNNEST:
case UPPER:
case UPPER_INC:
case UPPER_INF:
case VAR:
case VARIANCE:
case VAR_POP:
case VAR_SAMP:
case VARP:
case VERSION:
case WEEKOFYEAR:
case WEEK:
case WEEKDAY:
case WIDTH:
case WIDTH_BUCKET:
case XMLAGG:
case XMLCOMMENT:
case XMLCONCAT:
case XMLELEMENT:
case XMLFOREST:
case XMLPI:
case XMLROOT:
case XML_ISWELL_FORMAT:
case XPATH:
case XPATH_EXISTS:
case YEAR:
case YEARWEEK:
case SPACE:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case LOCAL_ID:
case DECIMAL:
case ID:
case STRING:
case BINARY:
case FLOAT:
case REAL:
case DOLLAR:
case LR_BRACKET:
case PLUS:
case MINUS:
case BIT_NOT:
case BIT_OR:
case BIT_AND:
{
setState(1589);
all_distinct_expression();
}
break;
default:
throw new NoViableAltException(this);
}
setState(1592);
match(RR_BRACKET);
setState(1594);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,179,_ctx) ) {
case 1:
{
setState(1593);
over_clause();
}
break;
}
}
break;
case NDV:
enterOuterAlt(_localctx, 14);
{
setState(1596);
match(NDV);
setState(1597);
match(LR_BRACKET);
setState(1598);
all_distinct_expression();
setState(1599);
match(RR_BRACKET);
setState(1601);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,180,_ctx) ) {
case 1:
{
setState(1600);
over_clause();
}
break;
}
}
break;
case COUNT_BIG:
enterOuterAlt(_localctx, 15);
{
setState(1603);
match(COUNT_BIG);
setState(1604);
match(LR_BRACKET);
setState(1607);
switch (_input.LA(1)) {
case STAR:
{
setState(1605);
match(STAR);
}
break;
case ALL:
case ASCII:
case CASE:
case COALESCE:
case CONV:
case CONVERT:
case CURRENT_DATE:
case CURRENT_TIME:
case CURRENT_TIMESTAMP:
case CURRENT_USER:
case DATABASE:
case DISTINCT:
case FALSE:
case HASH:
case IF:
case INT4LARGER:
case LEFT:
case MID:
case NOT:
case NULL:
case NULLIF:
case RAWTOHEX:
case RIGHT:
case RPAD:
case SESSION_USER:
case SUBSTR:
case SUBSTRING:
case SYSTEM_USER:
case TRUE:
case TRUNCATE:
case USER:
case ABBREV:
case ABS:
case ACOS:
case ADDDATE:
case ADDTIME:
case AES_DECRYPT:
case AES_ENCRYPT:
case AGE:
case AREA:
case ARRAY_AGG:
case ARRAY_APPEND:
case ARRAY_CAT:
case ARRAY_DIMS:
case ARRAY_LENGTH:
case ARRAY_LOWER:
case ARRAY_NDIMS:
case ARRAY_POSITION:
case ARRAY_POSITIONS:
case ARRAY_PREPEND:
case ARRAY_REMOVE:
case ARRAY_REPLACE:
case ARRAY_TO_JSON:
case ARRAY_TO_STRING:
case ARRAY_TO_TSVECTOR:
case ARRAY_UPPER:
case ASIN:
case ATAN:
case ATAN2:
case AVG:
case BIN:
case BIT_LENGTH:
case BOOL_AND:
case BOOL_OR:
case BOX:
case BOUND_BOX:
case BROADCAST:
case BTRIM:
case BROUND:
case CARDINALITY:
case CAST:
case CBRT:
case CEIL:
case CEILING:
case CENTER:
case CHAR_LENGTH:
case CHARACTER_LENGTH:
case CHECKSUM_AGG:
case CHR:
case CIRCLE:
case CLOCK_TIMESTAMP:
case CONCAT:
case CONCAT_WS:
case CONVERT_FROM:
case CONVERT_TO:
case COS:
case CORR:
case COVAR_POP:
case COVAR_SAMP:
case COT:
case COUNT:
case COUNT_BIG:
case CRC32:
case CURDATE:
case CURRVAL:
case CURTIME:
case DATE:
case DATEADD:
case DATE_ADD:
case DATE_FORMAT:
case DATE_PART:
case DATE_SUB:
case DATE_TRUNC:
case DATEDIFF:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DECODE:
case DEGREES:
case DENSE_RANK:
case DIAMETER:
case DIV:
case NATURAL_CONSTANT:
case ENCODE:
case ENUM_FIRST:
case ENUM_LAST:
case ENUM_RANGE:
case EXP:
case EXTRACT:
case EVERY:
case FACTORIAL:
case FAMILY:
case FIELD:
case FIND_IN_SET:
case FLOOR:
case FORMAT:
case FORMAT_NUMBER:
case FNV_HASH:
case FROM_DAYS:
case FROM_UNIXTIME:
case GET_BIT:
case GET_BYTE:
case GET_CURRENT_TS_CONFIG:
case GET_JSON_OBJECT:
case GREATEST:
case GROUPING:
case GROUPING_ID:
case HEIGHT:
case HEX:
case HOST:
case HOSTMASK:
case HOUR:
case IFNULL:
case INITCAP:
case INSTR:
case INTERVAL:
case IN_FILE:
case INET_SAME_FAMILY:
case INET_MERGE:
case ISCLOSED:
case ISEMPTY:
case ISFINITE:
case ISNULL:
case ISOPEN:
case JSON_AGG:
case JSON_ARRAY_LENGTH:
case JSON_ARRAY_ELEMENTS:
case JSON_ARRAY_ELEMENTS_TEXT:
case JSON_BUILD_ARRAY:
case JSON_BUILD_OBJECT:
case JSON_EACH:
case JSON_EACH_TEXT:
case JSON_EXTRACT_PATH:
case JSON_EXTRACT_PATH_TEXT:
case JSON_OBJECT:
case JSON_OBJECT_KEYS:
case JSON_OBJECT_AGG:
case JSON_POPULATE_RECORD:
case JSON_POPULATE_RECORDSET:
case JSON_STRIP_NULLS:
case JSON_TO_RECORD:
case JSON_TO_RECORDSET:
case JSON_TYPEOF:
case JSONB_AGG:
case JSONB_OBJECT_AGG:
case JSONB_SET:
case JSONB_INSERT:
case JSONB_PRETTY:
case JUSTIFY_DAYS:
case JUSTIFY_HOURS:
case JUSTIFY_INTERVALS:
case LASTVAL:
case LAST_DAY:
case LAST_INSERT_ID:
case LCASE:
case LEAST:
case LENGTH:
case LINE:
case LN:
case LOCALTIME:
case LOCALTIMESTAMP:
case LOCATE:
case LOG:
case LOG2:
case LOG10:
case LOWER:
case LOWER_INC:
case LOWER_INF:
case LPAD:
case LTRIM:
case LSEG:
case MACADDR8_SET7BIT:
case MAKEDATE:
case MAKETIME:
case MAKE_DATE:
case MAKE_TIME:
case MAKE_TIMESTAMP:
case MAKE_TIMESTAMPTZ:
case MASKLEN:
case MAX:
case MD5:
case MICROSECOND:
case MIN:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case NEGATIVE:
case NETMASK:
case NETWORK:
case NDV:
case NEXTVAL:
case NOW:
case NPOINTS:
case NTILE:
case NUMNODE:
case NVL:
case OCTET_LENGTH:
case OVERLAY:
case PATH:
case PCLOSE:
case PERCENTILE:
case PERIOD_ADD:
case PERIOD_DIFF:
case PG_CLIENT_ENCODING:
case PLAINTO_TSQUERY:
case PHRASETO_TSQUERY:
case PI:
case PMOD:
case POINT:
case POLYGON:
case POPEN:
case POSITION:
case POSITIVE:
case POW:
case POWER:
case QUARTER:
case QUERYTREE:
case QUOTE_IDENT:
case QUOTE_LITERAL:
case QUOTE_NULLABLE:
case RADIANS:
case RADIUS:
case RAND:
case RANDOM:
case RANGE_MERGE:
case RANK:
case REGR_AVGX:
case REGR_AVGY:
case REGR_COUNT:
case REGR_INTERCEPT:
case REGR_R2:
case REGR_SLOPE:
case REGR_SXX:
case REGR_SXY:
case REGR_SYY:
case REGEXP_MATCHES:
case REGEXP_REPLACE:
case REGEXP_SPLIT_TO_ARRAY:
case REGEXP_SPLIT_TO_TABLE:
case REPEAT:
case REPLACE:
case REVERSE:
case ROUND:
case ROW_TO_JSON:
case ROW_NUMBER:
case RTRIM:
case SCALE:
case SECOND:
case SEC_TO_TIME:
case SETSEED:
case SETWEIGHT:
case SETVAL:
case SET_BIT:
case SET_BYTE:
case SET_MASKLEN:
case SHA1:
case SHA2:
case SHIFTLEFT:
case SHIFTRIGHT:
case SHIFTRIGHTUNSIGNED:
case SIGN:
case SIN:
case SPACE_FUNCTION:
case SPLIT:
case SPLIT_PART:
case STATEMENT_TIMESTAMP:
case STDEV:
case STDDEV:
case STDEVP:
case STDDEV_SAMP:
case STRCMP:
case STRING_AGG:
case STRING_TO_ARRAY:
case STRPOS:
case STR_TO_DATE:
case SUBDATE:
case SUBSTRING_INDEX:
case SUM:
case SQRT:
case STDDEV_POP:
case STRIP:
case STRTOL:
case SYSDATE:
case TAN:
case TEXT:
case TIME:
case TIMEDIFF:
case TIMEOFDAY:
case TIMESTAMP:
case TIME_FORMAT:
case TIME_TO_SEC:
case TO_ASCII:
case TO_CHAR:
case TO_DATE:
case TO_DAYS:
case TO_HEX:
case TO_JSON:
case TO_JSONB:
case TO_NUMBER:
case TO_TIMESTAMP:
case TO_TSQUERY:
case TO_TSVECTOR:
case TRANSACTION_TIMESTAMP:
case TRANSLATE:
case TRIM:
case TRUNC:
case TS_DELETE:
case TS_FILTER:
case TS_HEADLINE:
case TS_RANK:
case TS_RANK_CD:
case TS_REWRITE:
case TSQUERY_PHRASE:
case TSVECTOR_TO_ARRAY:
case TSVECTOR_UPDATE_TRIGGER:
case TSVECTOR_UPDATE_TRIGGER_COLUMN:
case UCASE:
case UNHEX:
case UNIX_TIMESTAMP:
case UNNEST:
case UPPER:
case UPPER_INC:
case UPPER_INF:
case VAR:
case VARIANCE:
case VAR_POP:
case VAR_SAMP:
case VARP:
case VERSION:
case WEEKOFYEAR:
case WEEK:
case WEEKDAY:
case WIDTH:
case WIDTH_BUCKET:
case XMLAGG:
case XMLCOMMENT:
case XMLCONCAT:
case XMLELEMENT:
case XMLFOREST:
case XMLPI:
case XMLROOT:
case XML_ISWELL_FORMAT:
case XPATH:
case XPATH_EXISTS:
case YEAR:
case YEARWEEK:
case SPACE:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case LOCAL_ID:
case DECIMAL:
case ID:
case STRING:
case BINARY:
case FLOAT:
case REAL:
case DOLLAR:
case LR_BRACKET:
case PLUS:
case MINUS:
case BIT_NOT:
case BIT_OR:
case BIT_AND:
{
setState(1606);
all_distinct_expression();
}
break;
default:
throw new NoViableAltException(this);
}
setState(1609);
match(RR_BRACKET);
setState(1611);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,182,_ctx) ) {
case 1:
{
setState(1610);
over_clause();
}
break;
}
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class All_distinct_expressionContext extends ParserRuleContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode ALL() { return getToken(VerdictSQLParser.ALL, 0); }
public TerminalNode DISTINCT() { return getToken(VerdictSQLParser.DISTINCT, 0); }
public All_distinct_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_all_distinct_expression; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitAll_distinct_expression(this);
else return visitor.visitChildren(this);
}
}
public final All_distinct_expressionContext all_distinct_expression() throws RecognitionException {
All_distinct_expressionContext _localctx = new All_distinct_expressionContext(_ctx, getState());
enterRule(_localctx, 216, RULE_all_distinct_expression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1616);
_la = _input.LA(1);
if (_la==ALL || _la==DISTINCT) {
{
setState(1615);
_la = _input.LA(1);
if ( !(_la==ALL || _la==DISTINCT) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
setState(1618);
expression(0);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Cast_as_expressionContext extends ParserRuleContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode AS() { return getToken(VerdictSQLParser.AS, 0); }
public Data_typeContext data_type() {
return getRuleContext(Data_typeContext.class,0);
}
public Cast_as_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_cast_as_expression; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitCast_as_expression(this);
else return visitor.visitChildren(this);
}
}
public final Cast_as_expressionContext cast_as_expression() throws RecognitionException {
Cast_as_expressionContext _localctx = new Cast_as_expressionContext(_ctx, getState());
enterRule(_localctx, 218, RULE_cast_as_expression);
try {
enterOuterAlt(_localctx, 1);
{
setState(1620);
expression(0);
setState(1621);
match(AS);
setState(1622);
data_type();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Over_clauseContext extends ParserRuleContext {
public TerminalNode OVER() { return getToken(VerdictSQLParser.OVER, 0); }
public Partition_by_clauseContext partition_by_clause() {
return getRuleContext(Partition_by_clauseContext.class,0);
}
public Order_by_clauseContext order_by_clause() {
return getRuleContext(Order_by_clauseContext.class,0);
}
public Row_or_range_clauseContext row_or_range_clause() {
return getRuleContext(Row_or_range_clauseContext.class,0);
}
public Over_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_over_clause; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitOver_clause(this);
else return visitor.visitChildren(this);
}
}
public final Over_clauseContext over_clause() throws RecognitionException {
Over_clauseContext _localctx = new Over_clauseContext(_ctx, getState());
enterRule(_localctx, 220, RULE_over_clause);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1624);
match(OVER);
setState(1625);
match(LR_BRACKET);
setState(1627);
_la = _input.LA(1);
if (_la==PARTITION) {
{
setState(1626);
partition_by_clause();
}
}
setState(1630);
_la = _input.LA(1);
if (_la==ORDER) {
{
setState(1629);
order_by_clause();
}
}
setState(1633);
_la = _input.LA(1);
if (_la==RANGE || _la==ROWS) {
{
setState(1632);
row_or_range_clause();
}
}
setState(1635);
match(RR_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Row_or_range_clauseContext extends ParserRuleContext {
public Window_frame_extentContext window_frame_extent() {
return getRuleContext(Window_frame_extentContext.class,0);
}
public TerminalNode ROWS() { return getToken(VerdictSQLParser.ROWS, 0); }
public TerminalNode RANGE() { return getToken(VerdictSQLParser.RANGE, 0); }
public Row_or_range_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_row_or_range_clause; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitRow_or_range_clause(this);
else return visitor.visitChildren(this);
}
}
public final Row_or_range_clauseContext row_or_range_clause() throws RecognitionException {
Row_or_range_clauseContext _localctx = new Row_or_range_clauseContext(_ctx, getState());
enterRule(_localctx, 222, RULE_row_or_range_clause);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1637);
_la = _input.LA(1);
if ( !(_la==RANGE || _la==ROWS) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(1638);
window_frame_extent();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Window_frame_extentContext extends ParserRuleContext {
public Window_frame_precedingContext window_frame_preceding() {
return getRuleContext(Window_frame_precedingContext.class,0);
}
public TerminalNode BETWEEN() { return getToken(VerdictSQLParser.BETWEEN, 0); }
public List window_frame_bound() {
return getRuleContexts(Window_frame_boundContext.class);
}
public Window_frame_boundContext window_frame_bound(int i) {
return getRuleContext(Window_frame_boundContext.class,i);
}
public TerminalNode AND() { return getToken(VerdictSQLParser.AND, 0); }
public Window_frame_extentContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_window_frame_extent; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitWindow_frame_extent(this);
else return visitor.visitChildren(this);
}
}
public final Window_frame_extentContext window_frame_extent() throws RecognitionException {
Window_frame_extentContext _localctx = new Window_frame_extentContext(_ctx, getState());
enterRule(_localctx, 224, RULE_window_frame_extent);
try {
setState(1646);
switch (_input.LA(1)) {
case CURRENT:
case UNBOUNDED:
case DECIMAL:
enterOuterAlt(_localctx, 1);
{
setState(1640);
window_frame_preceding();
}
break;
case BETWEEN:
enterOuterAlt(_localctx, 2);
{
setState(1641);
match(BETWEEN);
setState(1642);
window_frame_bound();
setState(1643);
match(AND);
setState(1644);
window_frame_bound();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Window_frame_boundContext extends ParserRuleContext {
public Window_frame_precedingContext window_frame_preceding() {
return getRuleContext(Window_frame_precedingContext.class,0);
}
public Window_frame_followingContext window_frame_following() {
return getRuleContext(Window_frame_followingContext.class,0);
}
public Window_frame_boundContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_window_frame_bound; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitWindow_frame_bound(this);
else return visitor.visitChildren(this);
}
}
public final Window_frame_boundContext window_frame_bound() throws RecognitionException {
Window_frame_boundContext _localctx = new Window_frame_boundContext(_ctx, getState());
enterRule(_localctx, 226, RULE_window_frame_bound);
try {
setState(1650);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,189,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1648);
window_frame_preceding();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1649);
window_frame_following();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Window_frame_precedingContext extends ParserRuleContext {
public TerminalNode UNBOUNDED() { return getToken(VerdictSQLParser.UNBOUNDED, 0); }
public TerminalNode PRECEDING() { return getToken(VerdictSQLParser.PRECEDING, 0); }
public TerminalNode DECIMAL() { return getToken(VerdictSQLParser.DECIMAL, 0); }
public TerminalNode CURRENT() { return getToken(VerdictSQLParser.CURRENT, 0); }
public TerminalNode ROW() { return getToken(VerdictSQLParser.ROW, 0); }
public Window_frame_precedingContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_window_frame_preceding; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitWindow_frame_preceding(this);
else return visitor.visitChildren(this);
}
}
public final Window_frame_precedingContext window_frame_preceding() throws RecognitionException {
Window_frame_precedingContext _localctx = new Window_frame_precedingContext(_ctx, getState());
enterRule(_localctx, 228, RULE_window_frame_preceding);
try {
setState(1658);
switch (_input.LA(1)) {
case UNBOUNDED:
enterOuterAlt(_localctx, 1);
{
setState(1652);
match(UNBOUNDED);
setState(1653);
match(PRECEDING);
}
break;
case DECIMAL:
enterOuterAlt(_localctx, 2);
{
setState(1654);
match(DECIMAL);
setState(1655);
match(PRECEDING);
}
break;
case CURRENT:
enterOuterAlt(_localctx, 3);
{
setState(1656);
match(CURRENT);
setState(1657);
match(ROW);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Window_frame_followingContext extends ParserRuleContext {
public TerminalNode UNBOUNDED() { return getToken(VerdictSQLParser.UNBOUNDED, 0); }
public TerminalNode FOLLOWING() { return getToken(VerdictSQLParser.FOLLOWING, 0); }
public TerminalNode DECIMAL() { return getToken(VerdictSQLParser.DECIMAL, 0); }
public Window_frame_followingContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_window_frame_following; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitWindow_frame_following(this);
else return visitor.visitChildren(this);
}
}
public final Window_frame_followingContext window_frame_following() throws RecognitionException {
Window_frame_followingContext _localctx = new Window_frame_followingContext(_ctx, getState());
enterRule(_localctx, 230, RULE_window_frame_following);
try {
setState(1664);
switch (_input.LA(1)) {
case UNBOUNDED:
enterOuterAlt(_localctx, 1);
{
setState(1660);
match(UNBOUNDED);
setState(1661);
match(FOLLOWING);
}
break;
case DECIMAL:
enterOuterAlt(_localctx, 2);
{
setState(1662);
match(DECIMAL);
setState(1663);
match(FOLLOWING);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Full_table_nameContext extends ParserRuleContext {
public IdContext server;
public IdContext database;
public IdContext schema;
public IdContext table;
public List id() {
return getRuleContexts(IdContext.class);
}
public IdContext id(int i) {
return getRuleContext(IdContext.class,i);
}
public Full_table_nameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_full_table_name; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitFull_table_name(this);
else return visitor.visitChildren(this);
}
}
public final Full_table_nameContext full_table_name() throws RecognitionException {
Full_table_nameContext _localctx = new Full_table_nameContext(_ctx, getState());
enterRule(_localctx, 232, RULE_full_table_name);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1683);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,193,_ctx) ) {
case 1:
{
setState(1666);
((Full_table_nameContext)_localctx).server = id();
setState(1667);
match(DOT);
setState(1668);
((Full_table_nameContext)_localctx).database = id();
setState(1669);
match(DOT);
setState(1670);
((Full_table_nameContext)_localctx).schema = id();
setState(1671);
match(DOT);
}
break;
case 2:
{
setState(1673);
((Full_table_nameContext)_localctx).database = id();
setState(1674);
match(DOT);
setState(1676);
_la = _input.LA(1);
if (_la==LEFT || _la==RIGHT || ((((_la - 223)) & ~0x3f) == 0 && ((1L << (_la - 223)) & ((1L << (AGE - 223)) | (1L << (AREA - 223)) | (1L << (CENTER - 223)) | (1L << (CIRCLE - 223)))) != 0) || ((((_la - 294)) & ~0x3f) == 0 && ((1L << (_la - 294)) & ((1L << (DATE - 294)) | (1L << (DAY - 294)) | (1L << (DAYNAME - 294)) | (1L << (DAYOFMONTH - 294)) | (1L << (DAYOFWEEK - 294)) | (1L << (DAYOFYEAR - 294)) | (1L << (DEGREES - 294)) | (1L << (DIAMETER - 294)))) != 0) || ((((_la - 362)) & ~0x3f) == 0 && ((1L << (_la - 362)) & ((1L << (HEIGHT - 362)) | (1L << (HOUR - 362)) | (1L << (LENGTH - 362)))) != 0) || ((((_la - 443)) & ~0x3f) == 0 && ((1L << (_la - 443)) & ((1L << (MAKEDATE - 443)) | (1L << (MICROSECOND - 443)) | (1L << (MINUTE - 443)) | (1L << (MOD - 443)) | (1L << (MONTH - 443)) | (1L << (MONTHNAME - 443)))) != 0) || _la==POWER || _la==SECOND || ((((_la - 613)) & ~0x3f) == 0 && ((1L << (_la - 613)) & ((1L << (TEXT - 613)) | (1L << (TIME - 613)) | (1L << (TIMESTAMP - 613)) | (1L << (VARIANCE - 613)) | (1L << (WEEKOFYEAR - 613)))) != 0) || ((((_la - 698)) & ~0x3f) == 0 && ((1L << (_la - 698)) & ((1L << (DOUBLE_QUOTE_ID - 698)) | (1L << (BACKTICK_ID - 698)) | (1L << (SQUARE_BRACKET_ID - 698)) | (1L << (ID - 698)))) != 0)) {
{
setState(1675);
((Full_table_nameContext)_localctx).schema = id();
}
}
setState(1678);
match(DOT);
}
break;
case 3:
{
setState(1680);
((Full_table_nameContext)_localctx).schema = id();
setState(1681);
match(DOT);
}
break;
}
setState(1685);
((Full_table_nameContext)_localctx).table = id();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Table_nameContext extends ParserRuleContext {
public IdContext schema;
public IdContext table;
public List id() {
return getRuleContexts(IdContext.class);
}
public IdContext id(int i) {
return getRuleContext(IdContext.class,i);
}
public Table_nameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_name; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitTable_name(this);
else return visitor.visitChildren(this);
}
}
public final Table_nameContext table_name() throws RecognitionException {
Table_nameContext _localctx = new Table_nameContext(_ctx, getState());
enterRule(_localctx, 234, RULE_table_name);
try {
enterOuterAlt(_localctx, 1);
{
setState(1690);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,194,_ctx) ) {
case 1:
{
setState(1687);
((Table_nameContext)_localctx).schema = id();
setState(1688);
match(DOT);
}
break;
}
setState(1692);
((Table_nameContext)_localctx).table = id();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class View_nameContext extends ParserRuleContext {
public IdContext schema;
public IdContext view;
public List id() {
return getRuleContexts(IdContext.class);
}
public IdContext id(int i) {
return getRuleContext(IdContext.class,i);
}
public View_nameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_view_name; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitView_name(this);
else return visitor.visitChildren(this);
}
}
public final View_nameContext view_name() throws RecognitionException {
View_nameContext _localctx = new View_nameContext(_ctx, getState());
enterRule(_localctx, 236, RULE_view_name);
try {
enterOuterAlt(_localctx, 1);
{
setState(1697);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,195,_ctx) ) {
case 1:
{
setState(1694);
((View_nameContext)_localctx).schema = id();
setState(1695);
match(DOT);
}
break;
}
setState(1699);
((View_nameContext)_localctx).view = id();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Func_proc_nameContext extends ParserRuleContext {
public IdContext database;
public IdContext schema;
public IdContext procedure;
public List id() {
return getRuleContexts(IdContext.class);
}
public IdContext id(int i) {
return getRuleContext(IdContext.class,i);
}
public Func_proc_nameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_func_proc_name; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitFunc_proc_name(this);
else return visitor.visitChildren(this);
}
}
public final Func_proc_nameContext func_proc_name() throws RecognitionException {
Func_proc_nameContext _localctx = new Func_proc_nameContext(_ctx, getState());
enterRule(_localctx, 238, RULE_func_proc_name);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1711);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,197,_ctx) ) {
case 1:
{
setState(1701);
((Func_proc_nameContext)_localctx).database = id();
setState(1702);
match(DOT);
setState(1704);
_la = _input.LA(1);
if (_la==LEFT || _la==RIGHT || ((((_la - 223)) & ~0x3f) == 0 && ((1L << (_la - 223)) & ((1L << (AGE - 223)) | (1L << (AREA - 223)) | (1L << (CENTER - 223)) | (1L << (CIRCLE - 223)))) != 0) || ((((_la - 294)) & ~0x3f) == 0 && ((1L << (_la - 294)) & ((1L << (DATE - 294)) | (1L << (DAY - 294)) | (1L << (DAYNAME - 294)) | (1L << (DAYOFMONTH - 294)) | (1L << (DAYOFWEEK - 294)) | (1L << (DAYOFYEAR - 294)) | (1L << (DEGREES - 294)) | (1L << (DIAMETER - 294)))) != 0) || ((((_la - 362)) & ~0x3f) == 0 && ((1L << (_la - 362)) & ((1L << (HEIGHT - 362)) | (1L << (HOUR - 362)) | (1L << (LENGTH - 362)))) != 0) || ((((_la - 443)) & ~0x3f) == 0 && ((1L << (_la - 443)) & ((1L << (MAKEDATE - 443)) | (1L << (MICROSECOND - 443)) | (1L << (MINUTE - 443)) | (1L << (MOD - 443)) | (1L << (MONTH - 443)) | (1L << (MONTHNAME - 443)))) != 0) || _la==POWER || _la==SECOND || ((((_la - 613)) & ~0x3f) == 0 && ((1L << (_la - 613)) & ((1L << (TEXT - 613)) | (1L << (TIME - 613)) | (1L << (TIMESTAMP - 613)) | (1L << (VARIANCE - 613)) | (1L << (WEEKOFYEAR - 613)))) != 0) || ((((_la - 698)) & ~0x3f) == 0 && ((1L << (_la - 698)) & ((1L << (DOUBLE_QUOTE_ID - 698)) | (1L << (BACKTICK_ID - 698)) | (1L << (SQUARE_BRACKET_ID - 698)) | (1L << (ID - 698)))) != 0)) {
{
setState(1703);
((Func_proc_nameContext)_localctx).schema = id();
}
}
setState(1706);
match(DOT);
}
break;
case 2:
{
{
setState(1708);
((Func_proc_nameContext)_localctx).schema = id();
}
setState(1709);
match(DOT);
}
break;
}
setState(1713);
((Func_proc_nameContext)_localctx).procedure = id();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Ddl_objectContext extends ParserRuleContext {
public Full_table_nameContext full_table_name() {
return getRuleContext(Full_table_nameContext.class,0);
}
public TerminalNode LOCAL_ID() { return getToken(VerdictSQLParser.LOCAL_ID, 0); }
public Ddl_objectContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_ddl_object; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDdl_object(this);
else return visitor.visitChildren(this);
}
}
public final Ddl_objectContext ddl_object() throws RecognitionException {
Ddl_objectContext _localctx = new Ddl_objectContext(_ctx, getState());
enterRule(_localctx, 240, RULE_ddl_object);
try {
setState(1717);
switch (_input.LA(1)) {
case LEFT:
case RIGHT:
case AGE:
case AREA:
case CENTER:
case CIRCLE:
case DATE:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DIAMETER:
case HEIGHT:
case HOUR:
case LENGTH:
case MAKEDATE:
case MICROSECOND:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case POWER:
case SECOND:
case TEXT:
case TIME:
case TIMESTAMP:
case VARIANCE:
case WEEKOFYEAR:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case ID:
enterOuterAlt(_localctx, 1);
{
setState(1715);
full_table_name();
}
break;
case LOCAL_ID:
enterOuterAlt(_localctx, 2);
{
setState(1716);
match(LOCAL_ID);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Full_column_nameContext extends ParserRuleContext {
public Column_nameContext column_name() {
return getRuleContext(Column_nameContext.class,0);
}
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public Full_column_nameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_full_column_name; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitFull_column_name(this);
else return visitor.visitChildren(this);
}
}
public final Full_column_nameContext full_column_name() throws RecognitionException {
Full_column_nameContext _localctx = new Full_column_nameContext(_ctx, getState());
enterRule(_localctx, 242, RULE_full_column_name);
try {
enterOuterAlt(_localctx, 1);
{
setState(1722);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,199,_ctx) ) {
case 1:
{
setState(1719);
table_name();
setState(1720);
match(DOT);
}
break;
}
setState(1724);
column_name();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Column_name_listContext extends ParserRuleContext {
public List column_name() {
return getRuleContexts(Column_nameContext.class);
}
public Column_nameContext column_name(int i) {
return getRuleContext(Column_nameContext.class,i);
}
public Column_name_listContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_column_name_list; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitColumn_name_list(this);
else return visitor.visitChildren(this);
}
}
public final Column_name_listContext column_name_list() throws RecognitionException {
Column_name_listContext _localctx = new Column_name_listContext(_ctx, getState());
enterRule(_localctx, 244, RULE_column_name_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1726);
column_name();
setState(1731);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1727);
match(COMMA);
setState(1728);
column_name();
}
}
setState(1733);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Column_nameContext extends ParserRuleContext {
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public Column_nameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_column_name; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitColumn_name(this);
else return visitor.visitChildren(this);
}
}
public final Column_nameContext column_name() throws RecognitionException {
Column_nameContext _localctx = new Column_nameContext(_ctx, getState());
enterRule(_localctx, 246, RULE_column_name);
try {
enterOuterAlt(_localctx, 1);
{
setState(1734);
id();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Cursor_nameContext extends ParserRuleContext {
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public TerminalNode LOCAL_ID() { return getToken(VerdictSQLParser.LOCAL_ID, 0); }
public Cursor_nameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_cursor_name; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitCursor_name(this);
else return visitor.visitChildren(this);
}
}
public final Cursor_nameContext cursor_name() throws RecognitionException {
Cursor_nameContext _localctx = new Cursor_nameContext(_ctx, getState());
enterRule(_localctx, 248, RULE_cursor_name);
try {
setState(1738);
switch (_input.LA(1)) {
case LEFT:
case RIGHT:
case AGE:
case AREA:
case CENTER:
case CIRCLE:
case DATE:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DIAMETER:
case HEIGHT:
case HOUR:
case LENGTH:
case MAKEDATE:
case MICROSECOND:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case POWER:
case SECOND:
case TEXT:
case TIME:
case TIMESTAMP:
case VARIANCE:
case WEEKOFYEAR:
case DOUBLE_QUOTE_ID:
case BACKTICK_ID:
case SQUARE_BRACKET_ID:
case ID:
enterOuterAlt(_localctx, 1);
{
setState(1736);
id();
}
break;
case LOCAL_ID:
enterOuterAlt(_localctx, 2);
{
setState(1737);
match(LOCAL_ID);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class On_offContext extends ParserRuleContext {
public TerminalNode ON() { return getToken(VerdictSQLParser.ON, 0); }
public TerminalNode OFF() { return getToken(VerdictSQLParser.OFF, 0); }
public On_offContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_on_off; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitOn_off(this);
else return visitor.visitChildren(this);
}
}
public final On_offContext on_off() throws RecognitionException {
On_offContext _localctx = new On_offContext(_ctx, getState());
enterRule(_localctx, 250, RULE_on_off);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1740);
_la = _input.LA(1);
if ( !(_la==OFF || _la==ON) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class ClusteredContext extends ParserRuleContext {
public TerminalNode CLUSTERED() { return getToken(VerdictSQLParser.CLUSTERED, 0); }
public TerminalNode NONCLUSTERED() { return getToken(VerdictSQLParser.NONCLUSTERED, 0); }
public ClusteredContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_clustered; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitClustered(this);
else return visitor.visitChildren(this);
}
}
public final ClusteredContext clustered() throws RecognitionException {
ClusteredContext _localctx = new ClusteredContext(_ctx, getState());
enterRule(_localctx, 252, RULE_clustered);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1742);
_la = _input.LA(1);
if ( !(_la==CLUSTERED || _la==NONCLUSTERED) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Null_notnullContext extends ParserRuleContext {
public TerminalNode NULL() { return getToken(VerdictSQLParser.NULL, 0); }
public TerminalNode NOT() { return getToken(VerdictSQLParser.NOT, 0); }
public Null_notnullContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_null_notnull; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitNull_notnull(this);
else return visitor.visitChildren(this);
}
}
public final Null_notnullContext null_notnull() throws RecognitionException {
Null_notnullContext _localctx = new Null_notnullContext(_ctx, getState());
enterRule(_localctx, 254, RULE_null_notnull);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1745);
_la = _input.LA(1);
if (_la==NOT) {
{
setState(1744);
match(NOT);
}
}
setState(1747);
match(NULL);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class True_orfalseContext extends ParserRuleContext {
public TerminalNode TRUE() { return getToken(VerdictSQLParser.TRUE, 0); }
public TerminalNode FALSE() { return getToken(VerdictSQLParser.FALSE, 0); }
public True_orfalseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_true_orfalse; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitTrue_orfalse(this);
else return visitor.visitChildren(this);
}
}
public final True_orfalseContext true_orfalse() throws RecognitionException {
True_orfalseContext _localctx = new True_orfalseContext(_ctx, getState());
enterRule(_localctx, 256, RULE_true_orfalse);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1749);
_la = _input.LA(1);
if ( !(_la==FALSE || _la==TRUE) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Scalar_function_nameContext extends ParserRuleContext {
public Func_proc_nameContext func_proc_name() {
return getRuleContext(Func_proc_nameContext.class,0);
}
public TerminalNode RIGHT() { return getToken(VerdictSQLParser.RIGHT, 0); }
public TerminalNode LEFT() { return getToken(VerdictSQLParser.LEFT, 0); }
public TerminalNode BINARY_CHECKSUM() { return getToken(VerdictSQLParser.BINARY_CHECKSUM, 0); }
public TerminalNode CHECKSUM() { return getToken(VerdictSQLParser.CHECKSUM, 0); }
public Scalar_function_nameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_scalar_function_name; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitScalar_function_name(this);
else return visitor.visitChildren(this);
}
}
public final Scalar_function_nameContext scalar_function_name() throws RecognitionException {
Scalar_function_nameContext _localctx = new Scalar_function_nameContext(_ctx, getState());
enterRule(_localctx, 258, RULE_scalar_function_name);
try {
setState(1756);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,203,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1751);
func_proc_name();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1752);
match(RIGHT);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1753);
match(LEFT);
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(1754);
match(BINARY_CHECKSUM);
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(1755);
match(CHECKSUM);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Data_typeContext extends ParserRuleContext {
public TerminalNode BIGINT() { return getToken(VerdictSQLParser.BIGINT, 0); }
public TerminalNode BINARY() { return getToken(VerdictSQLParser.BINARY, 0); }
public List DECIMAL() { return getTokens(VerdictSQLParser.DECIMAL); }
public TerminalNode DECIMAL(int i) {
return getToken(VerdictSQLParser.DECIMAL, i);
}
public TerminalNode BIT() { return getToken(VerdictSQLParser.BIT, 0); }
public TerminalNode CHAR() { return getToken(VerdictSQLParser.CHAR, 0); }
public TerminalNode DATE() { return getToken(VerdictSQLParser.DATE, 0); }
public TerminalNode DATETIME() { return getToken(VerdictSQLParser.DATETIME, 0); }
public TerminalNode DATETIME2() { return getToken(VerdictSQLParser.DATETIME2, 0); }
public TerminalNode DATETIMEOFFSET() { return getToken(VerdictSQLParser.DATETIMEOFFSET, 0); }
public TerminalNode DOUBLE() { return getToken(VerdictSQLParser.DOUBLE, 0); }
public TerminalNode PRECISION() { return getToken(VerdictSQLParser.PRECISION, 0); }
public TerminalNode FLOAT() { return getToken(VerdictSQLParser.FLOAT, 0); }
public TerminalNode GEOGRAPHY() { return getToken(VerdictSQLParser.GEOGRAPHY, 0); }
public TerminalNode GEOMETRY() { return getToken(VerdictSQLParser.GEOMETRY, 0); }
public TerminalNode HIERARCHYID() { return getToken(VerdictSQLParser.HIERARCHYID, 0); }
public TerminalNode IMAGE() { return getToken(VerdictSQLParser.IMAGE, 0); }
public TerminalNode INT() { return getToken(VerdictSQLParser.INT, 0); }
public TerminalNode MONEY() { return getToken(VerdictSQLParser.MONEY, 0); }
public TerminalNode NCHAR() { return getToken(VerdictSQLParser.NCHAR, 0); }
public TerminalNode NTEXT() { return getToken(VerdictSQLParser.NTEXT, 0); }
public TerminalNode NUMERIC() { return getToken(VerdictSQLParser.NUMERIC, 0); }
public TerminalNode NVARCHAR() { return getToken(VerdictSQLParser.NVARCHAR, 0); }
public TerminalNode MAX() { return getToken(VerdictSQLParser.MAX, 0); }
public TerminalNode REAL() { return getToken(VerdictSQLParser.REAL, 0); }
public TerminalNode SMALLDATETIME() { return getToken(VerdictSQLParser.SMALLDATETIME, 0); }
public TerminalNode SMALLINT() { return getToken(VerdictSQLParser.SMALLINT, 0); }
public TerminalNode SMALLMONEY() { return getToken(VerdictSQLParser.SMALLMONEY, 0); }
public TerminalNode SQL_VARIANT() { return getToken(VerdictSQLParser.SQL_VARIANT, 0); }
public TerminalNode TEXT() { return getToken(VerdictSQLParser.TEXT, 0); }
public TerminalNode TIME() { return getToken(VerdictSQLParser.TIME, 0); }
public TerminalNode TIMESTAMP() { return getToken(VerdictSQLParser.TIMESTAMP, 0); }
public TerminalNode WITHOUT() { return getToken(VerdictSQLParser.WITHOUT, 0); }
public TerminalNode ZONE() { return getToken(VerdictSQLParser.ZONE, 0); }
public TerminalNode TINYINT() { return getToken(VerdictSQLParser.TINYINT, 0); }
public TerminalNode UNIQUEIDENTIFIER() { return getToken(VerdictSQLParser.UNIQUEIDENTIFIER, 0); }
public TerminalNode VARBINARY() { return getToken(VerdictSQLParser.VARBINARY, 0); }
public TerminalNode VARCHAR() { return getToken(VerdictSQLParser.VARCHAR, 0); }
public TerminalNode XML() { return getToken(VerdictSQLParser.XML, 0); }
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public TerminalNode IDENTITY() { return getToken(VerdictSQLParser.IDENTITY, 0); }
public Data_typeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_data_type; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitData_type(this);
else return visitor.visitChildren(this);
}
}
public final Data_typeContext data_type() throws RecognitionException {
Data_typeContext _localctx = new Data_typeContext(_ctx, getState());
enterRule(_localctx, 260, RULE_data_type);
int _la;
try {
setState(1850);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,208,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1758);
match(BIGINT);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1759);
match(BINARY);
setState(1760);
match(LR_BRACKET);
setState(1761);
match(DECIMAL);
setState(1762);
match(RR_BRACKET);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1763);
match(BIT);
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(1764);
match(CHAR);
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(1765);
match(CHAR);
setState(1766);
match(LR_BRACKET);
setState(1767);
match(DECIMAL);
setState(1768);
match(RR_BRACKET);
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(1769);
match(DATE);
}
break;
case 7:
enterOuterAlt(_localctx, 7);
{
setState(1770);
match(DATETIME);
}
break;
case 8:
enterOuterAlt(_localctx, 8);
{
setState(1771);
match(DATETIME2);
}
break;
case 9:
enterOuterAlt(_localctx, 9);
{
setState(1772);
match(DATETIMEOFFSET);
setState(1773);
match(LR_BRACKET);
setState(1774);
match(DECIMAL);
setState(1775);
match(RR_BRACKET);
}
break;
case 10:
enterOuterAlt(_localctx, 10);
{
setState(1776);
match(DECIMAL);
setState(1777);
match(LR_BRACKET);
setState(1778);
match(DECIMAL);
setState(1779);
match(COMMA);
setState(1780);
match(DECIMAL);
setState(1781);
match(RR_BRACKET);
}
break;
case 11:
enterOuterAlt(_localctx, 11);
{
setState(1782);
match(DOUBLE);
setState(1784);
_la = _input.LA(1);
if (_la==PRECISION) {
{
setState(1783);
match(PRECISION);
}
}
}
break;
case 12:
enterOuterAlt(_localctx, 12);
{
setState(1786);
match(FLOAT);
}
break;
case 13:
enterOuterAlt(_localctx, 13);
{
setState(1787);
match(GEOGRAPHY);
}
break;
case 14:
enterOuterAlt(_localctx, 14);
{
setState(1788);
match(GEOMETRY);
}
break;
case 15:
enterOuterAlt(_localctx, 15);
{
setState(1789);
match(HIERARCHYID);
}
break;
case 16:
enterOuterAlt(_localctx, 16);
{
setState(1790);
match(IMAGE);
}
break;
case 17:
enterOuterAlt(_localctx, 17);
{
setState(1791);
match(INT);
}
break;
case 18:
enterOuterAlt(_localctx, 18);
{
setState(1792);
match(MONEY);
}
break;
case 19:
enterOuterAlt(_localctx, 19);
{
setState(1793);
match(NCHAR);
setState(1794);
match(LR_BRACKET);
setState(1795);
match(DECIMAL);
setState(1796);
match(RR_BRACKET);
}
break;
case 20:
enterOuterAlt(_localctx, 20);
{
setState(1797);
match(NTEXT);
}
break;
case 21:
enterOuterAlt(_localctx, 21);
{
setState(1798);
match(NUMERIC);
setState(1799);
match(LR_BRACKET);
setState(1800);
match(DECIMAL);
setState(1801);
match(COMMA);
setState(1802);
match(DECIMAL);
setState(1803);
match(RR_BRACKET);
}
break;
case 22:
enterOuterAlt(_localctx, 22);
{
setState(1804);
match(NVARCHAR);
setState(1805);
match(LR_BRACKET);
setState(1806);
match(DECIMAL);
}
break;
case 23:
enterOuterAlt(_localctx, 23);
{
setState(1807);
match(MAX);
setState(1808);
match(RR_BRACKET);
}
break;
case 24:
enterOuterAlt(_localctx, 24);
{
setState(1809);
match(REAL);
}
break;
case 25:
enterOuterAlt(_localctx, 25);
{
setState(1810);
match(SMALLDATETIME);
}
break;
case 26:
enterOuterAlt(_localctx, 26);
{
setState(1811);
match(SMALLINT);
}
break;
case 27:
enterOuterAlt(_localctx, 27);
{
setState(1812);
match(SMALLMONEY);
}
break;
case 28:
enterOuterAlt(_localctx, 28);
{
setState(1813);
match(SQL_VARIANT);
}
break;
case 29:
enterOuterAlt(_localctx, 29);
{
setState(1814);
match(TEXT);
}
break;
case 30:
enterOuterAlt(_localctx, 30);
{
setState(1815);
match(TIME);
setState(1816);
match(LR_BRACKET);
setState(1817);
match(DECIMAL);
setState(1818);
match(RR_BRACKET);
}
break;
case 31:
enterOuterAlt(_localctx, 31);
{
setState(1819);
match(TIMESTAMP);
}
break;
case 32:
enterOuterAlt(_localctx, 32);
{
setState(1820);
match(TIMESTAMP);
setState(1821);
match(WITHOUT);
setState(1822);
match(TIME);
setState(1823);
match(ZONE);
}
break;
case 33:
enterOuterAlt(_localctx, 33);
{
setState(1824);
match(TINYINT);
}
break;
case 34:
enterOuterAlt(_localctx, 34);
{
setState(1825);
match(UNIQUEIDENTIFIER);
}
break;
case 35:
enterOuterAlt(_localctx, 35);
{
setState(1826);
match(VARBINARY);
setState(1827);
match(LR_BRACKET);
setState(1828);
match(DECIMAL);
}
break;
case 36:
enterOuterAlt(_localctx, 36);
{
setState(1829);
match(MAX);
setState(1830);
match(RR_BRACKET);
}
break;
case 37:
enterOuterAlt(_localctx, 37);
{
setState(1831);
match(VARCHAR);
setState(1832);
match(LR_BRACKET);
setState(1833);
match(DECIMAL);
}
break;
case 38:
enterOuterAlt(_localctx, 38);
{
setState(1834);
match(MAX);
setState(1835);
match(RR_BRACKET);
}
break;
case 39:
enterOuterAlt(_localctx, 39);
{
setState(1836);
match(XML);
}
break;
case 40:
enterOuterAlt(_localctx, 40);
{
setState(1837);
id();
setState(1839);
_la = _input.LA(1);
if (_la==IDENTITY) {
{
setState(1838);
match(IDENTITY);
}
}
setState(1848);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,207,_ctx) ) {
case 1:
{
setState(1841);
match(LR_BRACKET);
setState(1842);
_la = _input.LA(1);
if ( !(_la==MAX || _la==DECIMAL) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(1845);
_la = _input.LA(1);
if (_la==COMMA) {
{
setState(1843);
match(COMMA);
setState(1844);
match(DECIMAL);
}
}
setState(1847);
match(RR_BRACKET);
}
break;
}
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Default_valueContext extends ParserRuleContext {
public TerminalNode NULL() { return getToken(VerdictSQLParser.NULL, 0); }
public ConstantContext constant() {
return getRuleContext(ConstantContext.class,0);
}
public Default_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_default_value; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitDefault_value(this);
else return visitor.visitChildren(this);
}
}
public final Default_valueContext default_value() throws RecognitionException {
Default_valueContext _localctx = new Default_valueContext(_ctx, getState());
enterRule(_localctx, 262, RULE_default_value);
try {
setState(1854);
switch (_input.LA(1)) {
case NULL:
enterOuterAlt(_localctx, 1);
{
setState(1852);
match(NULL);
}
break;
case DECIMAL:
case STRING:
case BINARY:
case FLOAT:
case REAL:
case DOLLAR:
case PLUS:
case MINUS:
enterOuterAlt(_localctx, 2);
{
setState(1853);
constant();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class ConstantContext extends ParserRuleContext {
public TerminalNode STRING() { return getToken(VerdictSQLParser.STRING, 0); }
public TerminalNode BINARY() { return getToken(VerdictSQLParser.BINARY, 0); }
public NumberContext number() {
return getRuleContext(NumberContext.class,0);
}
public TerminalNode REAL() { return getToken(VerdictSQLParser.REAL, 0); }
public TerminalNode FLOAT() { return getToken(VerdictSQLParser.FLOAT, 0); }
public SignContext sign() {
return getRuleContext(SignContext.class,0);
}
public TerminalNode DECIMAL() { return getToken(VerdictSQLParser.DECIMAL, 0); }
public ConstantContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_constant; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitConstant(this);
else return visitor.visitChildren(this);
}
}
public final ConstantContext constant() throws RecognitionException {
ConstantContext _localctx = new ConstantContext(_ctx, getState());
enterRule(_localctx, 264, RULE_constant);
int _la;
try {
setState(1868);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,212,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1856);
match(STRING);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1857);
match(BINARY);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1858);
number();
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(1860);
_la = _input.LA(1);
if (_la==PLUS || _la==MINUS) {
{
setState(1859);
sign();
}
}
setState(1862);
_la = _input.LA(1);
if ( !(_la==FLOAT || _la==REAL) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(1864);
_la = _input.LA(1);
if (_la==PLUS || _la==MINUS) {
{
setState(1863);
sign();
}
}
setState(1866);
match(DOLLAR);
setState(1867);
_la = _input.LA(1);
if ( !(_la==DECIMAL || _la==FLOAT) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class NumberContext extends ParserRuleContext {
public TerminalNode DECIMAL() { return getToken(VerdictSQLParser.DECIMAL, 0); }
public SignContext sign() {
return getRuleContext(SignContext.class,0);
}
public NumberContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_number; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitNumber(this);
else return visitor.visitChildren(this);
}
}
public final NumberContext number() throws RecognitionException {
NumberContext _localctx = new NumberContext(_ctx, getState());
enterRule(_localctx, 266, RULE_number);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1871);
_la = _input.LA(1);
if (_la==PLUS || _la==MINUS) {
{
setState(1870);
sign();
}
}
setState(1873);
match(DECIMAL);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class SignContext extends ParserRuleContext {
public TerminalNode PLUS() { return getToken(VerdictSQLParser.PLUS, 0); }
public TerminalNode MINUS() { return getToken(VerdictSQLParser.MINUS, 0); }
public SignContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_sign; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSign(this);
else return visitor.visitChildren(this);
}
}
public final SignContext sign() throws RecognitionException {
SignContext _localctx = new SignContext(_ctx, getState());
enterRule(_localctx, 268, RULE_sign);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1875);
_la = _input.LA(1);
if ( !(_la==PLUS || _la==MINUS) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class IdContext extends ParserRuleContext {
public Simple_idContext simple_id() {
return getRuleContext(Simple_idContext.class,0);
}
public TerminalNode DOUBLE_QUOTE_ID() { return getToken(VerdictSQLParser.DOUBLE_QUOTE_ID, 0); }
public TerminalNode SQUARE_BRACKET_ID() { return getToken(VerdictSQLParser.SQUARE_BRACKET_ID, 0); }
public TerminalNode BACKTICK_ID() { return getToken(VerdictSQLParser.BACKTICK_ID, 0); }
public IdContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_id; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitId(this);
else return visitor.visitChildren(this);
}
}
public final IdContext id() throws RecognitionException {
IdContext _localctx = new IdContext(_ctx, getState());
enterRule(_localctx, 270, RULE_id);
try {
setState(1881);
switch (_input.LA(1)) {
case LEFT:
case RIGHT:
case AGE:
case AREA:
case CENTER:
case CIRCLE:
case DATE:
case DAY:
case DAYNAME:
case DAYOFMONTH:
case DAYOFWEEK:
case DAYOFYEAR:
case DEGREES:
case DIAMETER:
case HEIGHT:
case HOUR:
case LENGTH:
case MAKEDATE:
case MICROSECOND:
case MINUTE:
case MOD:
case MONTH:
case MONTHNAME:
case POWER:
case SECOND:
case TEXT:
case TIME:
case TIMESTAMP:
case VARIANCE:
case WEEKOFYEAR:
case ID:
enterOuterAlt(_localctx, 1);
{
setState(1877);
simple_id();
}
break;
case DOUBLE_QUOTE_ID:
enterOuterAlt(_localctx, 2);
{
setState(1878);
match(DOUBLE_QUOTE_ID);
}
break;
case SQUARE_BRACKET_ID:
enterOuterAlt(_localctx, 3);
{
setState(1879);
match(SQUARE_BRACKET_ID);
}
break;
case BACKTICK_ID:
enterOuterAlt(_localctx, 4);
{
setState(1880);
match(BACKTICK_ID);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Simple_idContext extends ParserRuleContext {
public TerminalNode ID() { return getToken(VerdictSQLParser.ID, 0); }
public TerminalNode AGE() { return getToken(VerdictSQLParser.AGE, 0); }
public TerminalNode AREA() { return getToken(VerdictSQLParser.AREA, 0); }
public TerminalNode CENTER() { return getToken(VerdictSQLParser.CENTER, 0); }
public TerminalNode CIRCLE() { return getToken(VerdictSQLParser.CIRCLE, 0); }
public TerminalNode DATE() { return getToken(VerdictSQLParser.DATE, 0); }
public TerminalNode DAY() { return getToken(VerdictSQLParser.DAY, 0); }
public TerminalNode DAYNAME() { return getToken(VerdictSQLParser.DAYNAME, 0); }
public TerminalNode DAYOFMONTH() { return getToken(VerdictSQLParser.DAYOFMONTH, 0); }
public TerminalNode DAYOFWEEK() { return getToken(VerdictSQLParser.DAYOFWEEK, 0); }
public TerminalNode DAYOFYEAR() { return getToken(VerdictSQLParser.DAYOFYEAR, 0); }
public TerminalNode DEGREES() { return getToken(VerdictSQLParser.DEGREES, 0); }
public TerminalNode DIAMETER() { return getToken(VerdictSQLParser.DIAMETER, 0); }
public TerminalNode HEIGHT() { return getToken(VerdictSQLParser.HEIGHT, 0); }
public TerminalNode HOUR() { return getToken(VerdictSQLParser.HOUR, 0); }
public TerminalNode LEFT() { return getToken(VerdictSQLParser.LEFT, 0); }
public TerminalNode LENGTH() { return getToken(VerdictSQLParser.LENGTH, 0); }
public TerminalNode MAKEDATE() { return getToken(VerdictSQLParser.MAKEDATE, 0); }
public TerminalNode MICROSECOND() { return getToken(VerdictSQLParser.MICROSECOND, 0); }
public TerminalNode MINUTE() { return getToken(VerdictSQLParser.MINUTE, 0); }
public TerminalNode MOD() { return getToken(VerdictSQLParser.MOD, 0); }
public TerminalNode MONTH() { return getToken(VerdictSQLParser.MONTH, 0); }
public TerminalNode MONTHNAME() { return getToken(VerdictSQLParser.MONTHNAME, 0); }
public TerminalNode RIGHT() { return getToken(VerdictSQLParser.RIGHT, 0); }
public TerminalNode POWER() { return getToken(VerdictSQLParser.POWER, 0); }
public TerminalNode SECOND() { return getToken(VerdictSQLParser.SECOND, 0); }
public TerminalNode TEXT() { return getToken(VerdictSQLParser.TEXT, 0); }
public TerminalNode TIME() { return getToken(VerdictSQLParser.TIME, 0); }
public TerminalNode TIMESTAMP() { return getToken(VerdictSQLParser.TIMESTAMP, 0); }
public TerminalNode VARIANCE() { return getToken(VerdictSQLParser.VARIANCE, 0); }
public TerminalNode WEEKOFYEAR() { return getToken(VerdictSQLParser.WEEKOFYEAR, 0); }
public Simple_idContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_simple_id; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitSimple_id(this);
else return visitor.visitChildren(this);
}
}
public final Simple_idContext simple_id() throws RecognitionException {
Simple_idContext _localctx = new Simple_idContext(_ctx, getState());
enterRule(_localctx, 272, RULE_simple_id);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1883);
_la = _input.LA(1);
if ( !(_la==LEFT || _la==RIGHT || ((((_la - 223)) & ~0x3f) == 0 && ((1L << (_la - 223)) & ((1L << (AGE - 223)) | (1L << (AREA - 223)) | (1L << (CENTER - 223)) | (1L << (CIRCLE - 223)))) != 0) || ((((_la - 294)) & ~0x3f) == 0 && ((1L << (_la - 294)) & ((1L << (DATE - 294)) | (1L << (DAY - 294)) | (1L << (DAYNAME - 294)) | (1L << (DAYOFMONTH - 294)) | (1L << (DAYOFWEEK - 294)) | (1L << (DAYOFYEAR - 294)) | (1L << (DEGREES - 294)) | (1L << (DIAMETER - 294)))) != 0) || ((((_la - 362)) & ~0x3f) == 0 && ((1L << (_la - 362)) & ((1L << (HEIGHT - 362)) | (1L << (HOUR - 362)) | (1L << (LENGTH - 362)))) != 0) || ((((_la - 443)) & ~0x3f) == 0 && ((1L << (_la - 443)) & ((1L << (MAKEDATE - 443)) | (1L << (MICROSECOND - 443)) | (1L << (MINUTE - 443)) | (1L << (MOD - 443)) | (1L << (MONTH - 443)) | (1L << (MONTHNAME - 443)))) != 0) || _la==POWER || _la==SECOND || ((((_la - 613)) & ~0x3f) == 0 && ((1L << (_la - 613)) & ((1L << (TEXT - 613)) | (1L << (TIME - 613)) | (1L << (TIMESTAMP - 613)) | (1L << (VARIANCE - 613)) | (1L << (WEEKOFYEAR - 613)))) != 0) || _la==ID) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Comparison_operatorContext extends ParserRuleContext {
public Comparison_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_comparison_operator; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitComparison_operator(this);
else return visitor.visitChildren(this);
}
}
public final Comparison_operatorContext comparison_operator() throws RecognitionException {
Comparison_operatorContext _localctx = new Comparison_operatorContext(_ctx, getState());
enterRule(_localctx, 274, RULE_comparison_operator);
try {
setState(1900);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,215,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1885);
match(EQUAL);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1886);
match(GREATER);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1887);
match(LESS);
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(1888);
match(LESS);
setState(1889);
match(EQUAL);
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(1890);
match(GREATER);
setState(1891);
match(EQUAL);
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(1892);
match(LESS);
setState(1893);
match(GREATER);
}
break;
case 7:
enterOuterAlt(_localctx, 7);
{
setState(1894);
match(EXCLAMATION);
setState(1895);
match(EQUAL);
}
break;
case 8:
enterOuterAlt(_localctx, 8);
{
setState(1896);
match(EXCLAMATION);
setState(1897);
match(GREATER);
}
break;
case 9:
enterOuterAlt(_localctx, 9);
{
setState(1898);
match(EXCLAMATION);
setState(1899);
match(LESS);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Assignment_operatorContext extends ParserRuleContext {
public Assignment_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_assignment_operator; }
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof VerdictSQLParserVisitor ) return ((VerdictSQLParserVisitor extends T>)visitor).visitAssignment_operator(this);
else return visitor.visitChildren(this);
}
}
public final Assignment_operatorContext assignment_operator() throws RecognitionException {
Assignment_operatorContext _localctx = new Assignment_operatorContext(_ctx, getState());
enterRule(_localctx, 276, RULE_assignment_operator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1902);
_la = _input.LA(1);
if ( !(((((_la - 712)) & ~0x3f) == 0 && ((1L << (_la - 712)) & ((1L << (PLUS_ASSIGN - 712)) | (1L << (MINUS_ASSIGN - 712)) | (1L << (MULT_ASSIGN - 712)) | (1L << (DIV_ASSIGN - 712)) | (1L << (MOD_ASSIGN - 712)) | (1L << (AND_ASSIGN - 712)) | (1L << (XOR_ASSIGN - 712)) | (1L << (OR_ASSIGN - 712)))) != 0)) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
case 41:
return expression_sempred((ExpressionContext)_localctx, predIndex);
case 54:
return predicate_sempred((PredicateContext)_localctx, predIndex);
}
return true;
}
private boolean expression_sempred(ExpressionContext _localctx, int predIndex) {
switch (predIndex) {
case 0:
return precpred(_ctx, 10);
case 1:
return precpred(_ctx, 8);
case 2:
return precpred(_ctx, 7);
case 3:
return precpred(_ctx, 5);
case 4:
return precpred(_ctx, 1);
}
return true;
}
private boolean predicate_sempred(PredicateContext _localctx, int predIndex) {
switch (predIndex) {
case 5:
return precpred(_ctx, 8);
}
return true;
}
public static final String _serializedATN =
"\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3\u02e7\u0773\4\2\t"+
"\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+
"\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
"\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+
"\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+
",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+
"\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+
"\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+
"\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+
"\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+
"`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"+
"k\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4"+
"w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080"+
"\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084\4\u0085"+
"\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089\t\u0089"+
"\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\3\2\3\2\3\2\3\2\3\2\3"+
"\2\3\2\3\2\3\2\3\2\3\2\5\2\u0124\n\2\3\3\3\3\3\3\3\3\3\3\5\3\u012b\n\3"+
"\3\3\3\3\3\3\3\3\3\3\5\3\u0132\n\3\3\3\3\3\3\3\5\3\u0137\n\3\3\4\3\4\3"+
"\5\3\5\3\5\3\5\7\5\u013f\n\5\f\5\16\5\u0142\13\5\3\6\3\6\3\6\3\6\3\7\3"+
"\7\3\7\3\b\3\b\5\b\u014d\n\b\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\5\t\u0157"+
"\n\t\3\n\3\n\3\n\3\n\3\13\3\13\3\13\3\13\5\13\u0161\n\13\3\13\3\13\3\f"+
"\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\16\3\16\3\17\3\17\3\17\3\17\3\17\7\17\u0174"+
"\n\17\f\17\16\17\u0177\13\17\5\17\u0179\n\17\3\20\7\20\u017c\n\20\f\20"+
"\16\20\u017f\13\20\3\20\3\20\3\21\3\21\5\21\u0185\n\21\3\22\3\22\3\22"+
"\3\22\3\22\3\22\5\22\u018d\n\22\3\23\5\23\u0190\n\23\3\23\5\23\u0193\n"+
"\23\3\23\3\23\5\23\u0197\n\23\3\23\5\23\u019a\n\23\3\23\5\23\u019d\n\23"+
"\3\24\3\24\3\24\3\24\7\24\u01a3\n\24\f\24\16\24\u01a6\13\24\3\24\3\24"+
"\3\24\5\24\u01ab\n\24\3\24\3\24\3\24\3\24\5\24\u01b1\n\24\5\24\u01b3\n"+
"\24\3\25\3\25\5\25\u01b7\n\25\3\25\5\25\u01ba\n\25\3\25\5\25\u01bd\n\25"+
"\3\26\3\26\3\26\5\26\u01c2\n\26\3\26\3\26\3\26\5\26\u01c7\n\26\3\26\5"+
"\26\u01ca\n\26\3\27\3\27\3\27\3\27\3\27\3\27\5\27\u01d2\n\27\3\27\7\27"+
"\u01d5\n\27\f\27\16\27\u01d8\13\27\3\27\5\27\u01db\n\27\3\27\3\27\3\30"+
"\3\30\3\30\3\30\3\30\5\30\u01e4\n\30\3\30\3\30\5\30\u01e8\n\30\3\30\3"+
"\30\3\30\5\30\u01ed\n\30\3\31\3\31\3\31\3\31\3\31\3\31\3\31\7\31\u01f6"+
"\n\31\f\31\16\31\u01f9\13\31\3\31\3\31\5\31\u01fd\n\31\3\31\3\31\3\31"+
"\3\31\3\31\5\31\u0204\n\31\3\31\5\31\u0207\n\31\3\32\3\32\3\32\3\32\3"+
"\32\3\32\3\32\3\32\3\32\3\32\5\32\u0213\n\32\3\32\3\32\3\32\3\32\3\32"+
"\3\32\5\32\u021b\n\32\5\32\u021d\n\32\3\33\3\33\3\33\3\33\5\33\u0223\n"+
"\33\3\33\3\33\3\33\3\33\3\33\5\33\u022a\n\33\3\34\3\34\3\34\3\34\5\34"+
"\u0230\n\34\3\34\3\34\5\34\u0234\n\34\3\35\3\35\3\35\3\35\5\35\u023a\n"+
"\35\3\35\3\35\3\35\7\35\u023f\n\35\f\35\16\35\u0242\13\35\3\35\5\35\u0245"+
"\n\35\3\36\3\36\3\36\3\36\5\36\u024b\n\36\3\36\3\36\3\36\5\36\u0250\n"+
"\36\3\36\3\36\3\36\3\36\3\36\5\36\u0257\n\36\3\36\5\36\u025a\n\36\3\37"+
"\3\37\3\37\5\37\u025f\n\37\3 \3 \3 \3 \5 \u0265\n \3 \5 \u0268\n \3!\3"+
"!\3!\3\"\3\"\3\"\5\"\u0270\n\"\3#\3#\5#\u0274\n#\3#\5#\u0277\n#\3$\3$"+
"\3$\5$\u027c\n$\3%\3%\3%\3%\5%\u0282\n%\3%\7%\u0285\n%\f%\16%\u0288\13"+
"%\3%\3%\3&\3&\5&\u028e\n&\3\'\3\'\3\'\3\'\5\'\u0294\n\'\3\'\5\'\u0297"+
"\n\'\3(\3(\5(\u029b\n(\3(\5(\u029e\n(\3)\3)\5)\u02a2\n)\3)\3)\3)\3)\3"+
"*\3*\3*\3*\3*\3*\5*\u02ae\n*\3*\5*\u02b1\n*\3*\3*\3*\3*\3*\3*\3*\3*\3"+
"*\3*\3*\3*\5*\u02bf\n*\3*\5*\u02c2\n*\3*\3*\3*\3*\3*\5*\u02c9\n*\5*\u02cb"+
"\n*\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+"+
"\3+\3+\5+\u02e5\n+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\7+"+
"\u02f7\n+\f+\16+\u02fa\13+\3,\3,\3,\3,\3-\3-\3-\3.\3.\3.\3.\3.\3.\3.\5"+
".\u030a\n.\3/\3/\3\60\3\60\3\61\3\61\3\61\5\61\u0313\n\61\3\61\3\61\3"+
"\61\7\61\u0318\n\61\f\61\16\61\u031b\13\61\3\62\3\62\3\62\3\62\3\62\5"+
"\62\u0322\n\62\3\62\3\62\3\62\3\62\3\62\3\63\3\63\5\63\u032b\n\63\3\63"+
"\3\63\5\63\u032f\n\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\5\63\u0339"+
"\n\63\3\64\3\64\3\64\7\64\u033e\n\64\f\64\16\64\u0341\13\64\3\65\3\65"+
"\3\65\7\65\u0346\n\65\f\65\16\65\u0349\13\65\3\66\3\66\3\66\7\66\u034e"+
"\n\66\f\66\16\66\u0351\13\66\3\67\5\67\u0354\n\67\3\67\3\67\38\38\38\3"+
"8\38\38\38\38\38\38\38\38\38\38\38\38\38\38\38\38\38\38\38\58\u036f\n"+
"8\38\38\38\38\38\38\38\58\u0378\n8\38\38\38\38\58\u037e\n8\38\38\38\3"+
"8\58\u0384\n8\38\38\38\38\58\u038a\n8\38\38\38\38\38\58\u0391\n8\38\3"+
"8\38\38\78\u0397\n8\f8\168\u039a\138\39\39\39\39\39\59\u03a1\n9\39\79"+
"\u03a4\n9\f9\169\u03a7\139\3:\3:\5:\u03ab\n:\3:\3:\5:\u03af\n:\3:\3:\3"+
":\3:\3:\6:\u03b6\n:\r:\16:\u03b7\5:\u03ba\n:\3;\3;\5;\u03be\n;\3;\5;\u03c1"+
"\n;\3;\3;\3;\5;\u03c6\n;\3;\3;\3;\3;\7;\u03cc\n;\f;\16;\u03cf\13;\5;\u03d1"+
"\n;\3;\3;\5;\u03d5\n;\3;\3;\3;\3;\3;\7;\u03dc\n;\f;\16;\u03df\13;\3;\3"+
";\5;\u03e3\n;\3;\3;\3;\3;\3;\3;\3;\7;\u03ec\n;\f;\16;\u03ef\13;\3;\3;"+
"\5;\u03f3\n;\3;\3;\5;\u03f7\n;\3<\3<\3<\3=\3=\3=\3>\3>\3>\3>\3>\7>\u0404"+
"\n>\f>\16>\u0407\13>\3>\3>\3>\3>\3>\3>\3>\3>\3>\5>\u0412\n>\5>\u0414\n"+
">\3?\3?\3?\3?\3?\3?\5?\u041c\n?\3?\3?\3?\3?\3?\3?\5?\u0424\n?\3?\5?\u0427"+
"\n?\5?\u0429\n?\3@\3@\3@\3@\3@\5@\u0430\n@\3A\3A\5A\u0434\nA\3A\3A\3A"+
"\3A\5A\u043a\nA\3B\3B\3C\3C\3C\3C\3C\7C\u0443\nC\fC\16C\u0446\13C\3C\3"+
"C\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\7D\u0458\nD\fD\16D\u045b\13"+
"D\3D\3D\3D\3D\3D\5D\u0462\nD\3E\3E\3E\3E\5E\u0468\nE\3F\3F\3F\7F\u046d"+
"\nF\fF\16F\u0470\13F\3G\3G\3G\5G\u0475\nG\3G\3G\3G\5G\u047a\nG\3G\3G\3"+
"G\3G\3G\3G\5G\u0482\nG\3G\5G\u0485\nG\5G\u0487\nG\3H\3H\3H\3H\3I\3I\3"+
"I\3I\3I\5I\u0492\nI\3J\3J\7J\u0496\nJ\fJ\16J\u0499\13J\3K\3K\5K\u049d"+
"\nK\3K\3K\3K\5K\u04a2\nK\5K\u04a4\nK\5K\u04a6\nK\3L\3L\3L\3L\3L\3L\3L"+
"\3L\3M\5M\u04b1\nM\3M\3M\5M\u04b5\nM\5M\u04b7\nM\3M\5M\u04ba\nM\3M\3M"+
"\3M\3M\5M\u04c0\nM\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\5M\u04cf\nM"+
"\3M\5M\u04d2\nM\3M\5M\u04d5\nM\5M\u04d7\nM\3N\3N\3O\3O\3O\3O\3O\3O\3O"+
"\3O\7O\u04e3\nO\fO\16O\u04e6\13O\3O\5O\u04e9\nO\3O\3O\3P\3P\3P\3P\3Q\3"+
"Q\3Q\3Q\3Q\5Q\u04f6\nQ\3R\3R\3R\5R\u04fb\nR\3S\3S\3T\5T\u0500\nT\3T\3"+
"T\3U\3U\3V\3V\3W\3W\3X\3X\3X\3X\7X\u050e\nX\fX\16X\u0511\13X\3X\3X\3Y"+
"\3Y\5Y\u0517\nY\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\7Z\u0522\nZ\fZ\16Z\u0525\13"+
"Z\3[\3[\3[\7[\u052a\n[\f[\16[\u052d\13[\3\\\3\\\3\\\3\\\3\\\3\\\3\\\6"+
"\\\u0536\n\\\r\\\16\\\u0537\3\\\3\\\5\\\u053c\n\\\3\\\3\\\3\\\3\\\3\\"+
"\3\\\3\\\3\\\6\\\u0546\n\\\r\\\16\\\u0547\3\\\3\\\5\\\u054c\n\\\3\\\3"+
"\\\5\\\u0550\n\\\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3"+
"]\5]\u0564\n]\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\5^\u0571\n^\3_\3_\3_\3"+
"_\3_\3_\3_\3`\3`\3`\3`\3`\3`\5`\u0580\n`\3a\3a\3a\3a\3a\3a\5a\u0588\n"+
"a\3b\3b\3b\3b\3b\3b\3b\3b\3b\5b\u0593\nb\3b\3b\3c\3c\3c\3c\3c\3c\3c\5"+
"c\u059e\nc\3c\3c\3d\3d\3d\3d\3d\7d\u05a7\nd\fd\16d\u05aa\13d\3d\3d\3e"+
"\3e\3e\3e\3e\3e\3e\3e\3e\3f\3f\3f\3f\3f\3f\3f\3g\3g\3g\3g\3g\3g\3g\3g"+
"\3g\3g\5g\u05c8\ng\3h\3h\3h\3i\3i\3i\3i\3i\3i\3i\3i\3i\3j\5j\u05d7\nj"+
"\3j\3j\3j\3j\3j\3k\3k\3k\3k\3l\3l\3l\3l\3l\3m\3m\3m\3m\3m\5m\u05ec\nm"+
"\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\5m\u0602"+
"\nm\3m\3m\3m\3m\3m\5m\u0609\nm\3m\3m\3m\3m\3m\5m\u0610\nm\3m\3m\3m\3m"+
"\3m\5m\u0617\nm\3m\3m\3m\3m\3m\5m\u061e\nm\3m\3m\3m\3m\3m\5m\u0625\nm"+
"\3m\3m\3m\3m\3m\5m\u062c\nm\3m\3m\3m\3m\3m\5m\u0633\nm\3m\3m\3m\3m\5m"+
"\u0639\nm\3m\3m\5m\u063d\nm\3m\3m\3m\3m\3m\5m\u0644\nm\3m\3m\3m\3m\5m"+
"\u064a\nm\3m\3m\5m\u064e\nm\5m\u0650\nm\3n\5n\u0653\nn\3n\3n\3o\3o\3o"+
"\3o\3p\3p\3p\5p\u065e\np\3p\5p\u0661\np\3p\5p\u0664\np\3p\3p\3q\3q\3q"+
"\3r\3r\3r\3r\3r\3r\5r\u0671\nr\3s\3s\5s\u0675\ns\3t\3t\3t\3t\3t\3t\5t"+
"\u067d\nt\3u\3u\3u\3u\5u\u0683\nu\3v\3v\3v\3v\3v\3v\3v\3v\3v\3v\5v\u068f"+
"\nv\3v\3v\3v\3v\3v\5v\u0696\nv\3v\3v\3w\3w\3w\5w\u069d\nw\3w\3w\3x\3x"+
"\3x\5x\u06a4\nx\3x\3x\3y\3y\3y\5y\u06ab\ny\3y\3y\3y\3y\3y\5y\u06b2\ny"+
"\3y\3y\3z\3z\5z\u06b8\nz\3{\3{\3{\5{\u06bd\n{\3{\3{\3|\3|\3|\7|\u06c4"+
"\n|\f|\16|\u06c7\13|\3}\3}\3~\3~\5~\u06cd\n~\3\177\3\177\3\u0080\3\u0080"+
"\3\u0081\5\u0081\u06d4\n\u0081\3\u0081\3\u0081\3\u0082\3\u0082\3\u0083"+
"\3\u0083\3\u0083\3\u0083\3\u0083\5\u0083\u06df\n\u0083\3\u0084\3\u0084"+
"\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084"+
"\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084"+
"\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\5\u0084\u06fb\n\u0084"+
"\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084"+
"\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084"+
"\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084"+
"\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084"+
"\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084"+
"\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\5\u0084"+
"\u0732\n\u0084\3\u0084\3\u0084\3\u0084\3\u0084\5\u0084\u0738\n\u0084\3"+
"\u0084\5\u0084\u073b\n\u0084\5\u0084\u073d\n\u0084\3\u0085\3\u0085\5\u0085"+
"\u0741\n\u0085\3\u0086\3\u0086\3\u0086\3\u0086\5\u0086\u0747\n\u0086\3"+
"\u0086\3\u0086\5\u0086\u074b\n\u0086\3\u0086\3\u0086\5\u0086\u074f\n\u0086"+
"\3\u0087\5\u0087\u0752\n\u0087\3\u0087\3\u0087\3\u0088\3\u0088\3\u0089"+
"\3\u0089\3\u0089\3\u0089\5\u0089\u075c\n\u0089\3\u008a\3\u008a\3\u008b"+
"\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b"+
"\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\5\u008b\u076f\n\u008b\3\u008c"+
"\3\u008c\3\u008c\2\4Tn\u008d\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \""+
"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084"+
"\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c"+
"\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4"+
"\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc"+
"\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4"+
"\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc"+
"\u00fe\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114"+
"\u0116\2%\4\2\u02c0\u02c0\u02c4\u02c4\4\2\66\66\u00a7\u00a7\5\2\u00b8"+
"\u00b8\u00f7\u00f7\u0141\u0141\4\2\67\67\u00a8\u00a8\3\2\u02df\u02e0\3"+
"\2\u02dc\u02de\5\2\u02d5\u02d5\u02df\u02e0\u02e2\u02e7\7\2\u0135\u0135"+
"\u013a\u013a\u01cf\u01cf\u01d1\u01d1\u02b5\u02b6\5\2\f\f\17\17\u00b3\u00b3"+
"\4\2pp\u00a0\u00a0\4\2\f\f@@\4\2\u022c\u022c\u022f\u022f\4\2\u0157\u0157"+
"\u01d3\u01d3\4\2\21\21==\4\2^^\u0088\u0088\5\2^^tt\u0117\u0117\4\2``\u022e"+
"\u022e\4\2zz\u02bf\u02c0\5\2YYoo\u009f\u009f\7\2^^tt\u00ae\u00ae\u01b5"+
"\u01b5\u0224\u0224\4\2\u02c0\u02c0\u02c2\u02c2\3\2\u02c0\u02c1\24\2##"+
"\u0104\u0104\u0117\u0118\u0154\u0154\u015a\u015a\u0169\u0169\u0187\u0188"+
"\u0198\u0199\u01a6\u01a6\u01ba\u01ba\u01c1\u01c2\u0220\u0223\u0231\u0231"+
"\u0271\u0271\u0283\u0285\u0295\u0295\u02a7\u02a7\u02ac\u02ae\26\2,-^^"+
"ccuu\u00a4\u00a4\u00b4\u00b5\u00ef\u00ef\u00f1\u00f1\u01ae\u01ae\u01b9"+
"\u01b9\u01be\u01c0\u0227\u0227\u023c\u023c\u024f\u024f\u025b\u025b\u025f"+
"\u025f\u027d\u027d\u0286\u0287\u02b1\u02b1\u02b3\u02b4C\2--hhoo{{\u009f"+
"\u009f\u00b4\u00b5\u00c3\u00c3\u00dd\u00e1\u00e5\u00e6\u00e8\u00e9\u00eb"+
"\u00ee\u00f0\u00f1\u00f3\u00f3\u0102\u0102\u0114\u0114\u011a\u011b\u011e"+
"\u0120\u012a\u012f\u013b\u013b\u0142\u0142\u0145\u0145\u0149\u0149\u0156"+
"\u0156\u015a\u015b\u0163\u0164\u0166\u0166\u0172\u0172\u0178\u0178\u017a"+
"\u017c\u018b\u018d\u0190\u0191\u01a7\u01a7\u01ae\u01ae\u01b1\u01b1\u01bd"+
"\u01bd\u01cc\u01cc\u01e5\u01e5\u01f2\u01f4\u01f6\u01f7\u01fa\u01fb\u01fe"+
"\u01fe\u0200\u0201\u020f\u020f\u0216\u021e\u0225\u0225\u022b\u022b\u022d"+
"\u022d\u023c\u0240\u0243\u0245\u024e\u024e\u0259\u0259\u025b\u025c\u025e"+
"\u025e\u0262\u0262\u0264\u0264\u026b\u026b\u026e\u026e\u0272\u0272\u0278"+
"\u027b\u027f\u027f\u0281\u0282\u0286\u0287\u029d\u029f\u02b0\u02b1\u02b3"+
"\u02b4f\2\22\22\u0094\u0094\u00d9\u00d9\u00db\u00dc\u00e1\u00e1\u00e3"+
"\u00e4\u00e7\u00e7\u00ea\u00ea\u00f0\u00f0\u00f2\u00f2\u00f4\u00f6\u00fb"+
"\u00fb\u00fe\u0101\u0103\u0103\u0105\u0105\u0107\u0107\u010a\u010d\u010f"+
"\u0110\u0113\u0114\u011d\u011d\u0121\u0121\u0124\u0124\u0126\u0126\u0128"+
"\u0128\u0135\u0139\u013c\u013c\u0140\u0140\u0147\u0149\u014c\u014c\u014f"+
"\u0151\u0158\u0158\u015d\u015f\u016c\u016d\u016f\u0171\u0175\u0175\u017d"+
"\u0180\u0182\u0186\u0189\u018a\u018d\u018f\u0192\u0197\u019a\u019d\u01a2"+
"\u01a2\u01a5\u01a5\u01a7\u01a7\u01a9\u01aa\u01b1\u01b3\u01b6\u01b8\u01ba"+
"\u01bc\u01c4\u01c4\u01c6\u01c6\u01c8\u01c8\u01cb\u01cb\u01cf\u01d0\u01d2"+
"\u01d2\u01d4\u01d5\u01d9\u01d9\u01de\u01de\u01e2\u01e2\u01e6\u01e6\u01f0"+
"\u01f1\u01f6\u01f7\u01fb\u01fd\u01ff\u01ff\u0204\u0205\u0207\u020c\u0228"+
"\u0228\u022b\u022b\u022d\u022d\u0231\u0231\u0233\u0233\u0237\u0238\u023b"+
"\u023b\u0241\u0242\u0246\u0247\u024c\u024c\u0255\u0255\u025a\u025a\u025d"+
"\u025d\u0261\u0261\u0263\u0263\u0266\u0267\u026a\u026a\u026d\u026d\u026f"+
"\u026f\u0273\u0277\u0279\u027b\u027e\u027f\u0288\u0288\u028d\u028d\u0290"+
"\u0290\u0296\u0298\u02a3\u02a6\u02aa\u02ab\u02b0\u02b0\u02b2\u02b2\u02b5"+
"\u02b5\u02b7\u02b7\u02b9\u02b9\u02c3\u02c3\u02e2\u02e3\32\2\61\64\66\66"+
"\u00af\u00af\u00b7\u00b7\u00cc\u00cc\u0115\u0115\u0125\u0125\u0127\u0127"+
"\u0144\u0144\u0165\u0165\u01a1\u01a1\u01a3\u01a3\u01ac\u01ad\u01dd\u01dd"+
"\u01f5\u01f5\u01f8\u01f8\u020c\u020d\u0251\u0251\u0265\u0265\u026c\u026c"+
"\u027c\u027c\u0289\u028a\u0293\u0293\u02a1\u02a1\4\2\u020e\u020e\u022f"+
"\u022f\4\2~~\u0080\u0080\4\2\"\"xx\4\2OO\u00c2\u00c2\4\2\u01c5\u01c5\u02c0"+
"\u02c0\3\2\u02c4\u02c5\33\2oo\u009f\u009f\u00e1\u00e1\u00e3\u00e3\u010d"+
"\u010d\u0114\u0114\u0128\u0128\u0135\u0139\u013c\u013c\u0140\u0140\u016c"+
"\u016c\u0171\u0171\u01a7\u01a7\u01bd\u01bd\u01c8\u01c8\u01cb\u01cc\u01cf"+
"\u01d0\u0201\u0201\u0237\u0237\u0267\u0267\u026a\u026a\u026d\u026d\u029d"+
"\u029d\u02a3\u02a3\u02c1\u02c1\3\2\u02ca\u02d1\u085a\2\u0123\3\2\2\2\4"+
"\u0125\3\2\2\2\6\u0138\3\2\2\2\b\u013a\3\2\2\2\n\u0143\3\2\2\2\f\u0147"+
"\3\2\2\2\16\u014c\3\2\2\2\20\u0156\3\2\2\2\22\u0158\3\2\2\2\24\u015c\3"+
"\2\2\2\26\u0164\3\2\2\2\30\u0169\3\2\2\2\32\u016c\3\2\2\2\34\u0178\3\2"+
"\2\2\36\u017d\3\2\2\2 \u0184\3\2\2\2\"\u018c\3\2\2\2$\u018f\3\2\2\2&\u019e"+
"\3\2\2\2(\u01b6\3\2\2\2*\u01c9\3\2\2\2,\u01cb\3\2\2\2.\u01de\3\2\2\2\60"+
"\u01ee\3\2\2\2\62\u021c\3\2\2\2\64\u021e\3\2\2\2\66\u022b\3\2\2\28\u0235"+
"\3\2\2\2:\u0259\3\2\2\2<\u025b\3\2\2\2>\u0260\3\2\2\2@\u0269\3\2\2\2B"+
"\u026c\3\2\2\2D\u0271\3\2\2\2F\u0278\3\2\2\2H\u027d\3\2\2\2J\u028d\3\2"+
"\2\2L\u028f\3\2\2\2N\u029a\3\2\2\2P\u02a1\3\2\2\2R\u02ca\3\2\2\2T\u02e4"+
"\3\2\2\2V\u02fb\3\2\2\2X\u02ff\3\2\2\2Z\u0309\3\2\2\2\\\u030b\3\2\2\2"+
"^\u030d\3\2\2\2`\u030f\3\2\2\2b\u031c\3\2\2\2d\u0338\3\2\2\2f\u033a\3"+
"\2\2\2h\u0342\3\2\2\2j\u034a\3\2\2\2l\u0353\3\2\2\2n\u0390\3\2\2\2p\u03a0"+
"\3\2\2\2r\u03ae\3\2\2\2t\u03bb\3\2\2\2v\u03f8\3\2\2\2x\u03fb\3\2\2\2z"+
"\u03fe\3\2\2\2|\u0428\3\2\2\2~\u042a\3\2\2\2\u0080\u0431\3\2\2\2\u0082"+
"\u043b\3\2\2\2\u0084\u043d\3\2\2\2\u0086\u0461\3\2\2\2\u0088\u0463\3\2"+
"\2\2\u008a\u0469\3\2\2\2\u008c\u0486\3\2\2\2\u008e\u0488\3\2\2\2\u0090"+
"\u0491\3\2\2\2\u0092\u0493\3\2\2\2\u0094\u04a5\3\2\2\2\u0096\u04a7\3\2"+
"\2\2\u0098\u04d6\3\2\2\2\u009a\u04d8\3\2\2\2\u009c\u04da\3\2\2\2\u009e"+
"\u04ec\3\2\2\2\u00a0\u04f5\3\2\2\2\u00a2\u04fa\3\2\2\2\u00a4\u04fc\3\2"+
"\2\2\u00a6\u04ff\3\2\2\2\u00a8\u0503\3\2\2\2\u00aa\u0505\3\2\2\2\u00ac"+
"\u0507\3\2\2\2\u00ae\u0509\3\2\2\2\u00b0\u0516\3\2\2\2\u00b2\u0518\3\2"+
"\2\2\u00b4\u0526\3\2\2\2\u00b6\u054f\3\2\2\2\u00b8\u0563\3\2\2\2\u00ba"+
"\u0570\3\2\2\2\u00bc\u0572\3\2\2\2\u00be\u057f\3\2\2\2\u00c0\u0587\3\2"+
"\2\2\u00c2\u0589\3\2\2\2\u00c4\u0596\3\2\2\2\u00c6\u05a1\3\2\2\2\u00c8"+
"\u05ad\3\2\2\2\u00ca\u05b6\3\2\2\2\u00cc\u05c7\3\2\2\2\u00ce\u05c9\3\2"+
"\2\2\u00d0\u05cc\3\2\2\2\u00d2\u05d6\3\2\2\2\u00d4\u05dd\3\2\2\2\u00d6"+
"\u05e1\3\2\2\2\u00d8\u064f\3\2\2\2\u00da\u0652\3\2\2\2\u00dc\u0656\3\2"+
"\2\2\u00de\u065a\3\2\2\2\u00e0\u0667\3\2\2\2\u00e2\u0670\3\2\2\2\u00e4"+
"\u0674\3\2\2\2\u00e6\u067c\3\2\2\2\u00e8\u0682\3\2\2\2\u00ea\u0695\3\2"+
"\2\2\u00ec\u069c\3\2\2\2\u00ee\u06a3\3\2\2\2\u00f0\u06b1\3\2\2\2\u00f2"+
"\u06b7\3\2\2\2\u00f4\u06bc\3\2\2\2\u00f6\u06c0\3\2\2\2\u00f8\u06c8\3\2"+
"\2\2\u00fa\u06cc\3\2\2\2\u00fc\u06ce\3\2\2\2\u00fe\u06d0\3\2\2\2\u0100"+
"\u06d3\3\2\2\2\u0102\u06d7\3\2\2\2\u0104\u06de\3\2\2\2\u0106\u073c\3\2"+
"\2\2\u0108\u0740\3\2\2\2\u010a\u074e\3\2\2\2\u010c\u0751\3\2\2\2\u010e"+
"\u0755\3\2\2\2\u0110\u075b\3\2\2\2\u0112\u075d\3\2\2\2\u0114\u076e\3\2"+
"\2\2\u0116\u0770\3\2\2\2\u0118\u0124\5$\23\2\u0119\u0124\5\4\3\2\u011a"+
"\u0124\5\n\6\2\u011b\u0124\5\f\7\2\u011c\u0124\5\16\b\2\u011d\u0124\5"+
"\20\t\2\u011e\u0124\5,\27\2\u011f\u0124\5.\30\2\u0120\u0124\5\60\31\2"+
"\u0121\u0124\5\66\34\2\u0122\u0124\58\35\2\u0123\u0118\3\2\2\2\u0123\u0119"+
"\3\2\2\2\u0123\u011a\3\2\2\2\u0123\u011b\3\2\2\2\u0123\u011c\3\2\2\2\u0123"+
"\u011d\3\2\2\2\u0123\u011e\3\2\2\2\u0123\u011f\3\2\2\2\u0123\u0120\3\2"+
"\2\2\u0123\u0121\3\2\2\2\u0123\u0122\3\2\2\2\u0124\3\3\2\2\2\u0125\u0126"+
"\7.\2\2\u0126\u012a\7\b\2\2\u0127\u0128\7c\2\2\u0128\u0129\7y\2\2\u0129"+
"\u012b\7L\2\2\u012a\u0127\3\2\2\2\u012a\u012b\3\2\2\2\u012b\u012c\3\2"+
"\2\2\u012c\u012d\5\u00ecw\2\u012d\u012e\7X\2\2\u012e\u0131\5\u00ecw\2"+
"\u012f\u0130\7\u01c7\2\2\u0130\u0132\5\6\4\2\u0131\u012f\3\2\2\2\u0131"+
"\u0132\3\2\2\2\u0132\u0136\3\2\2\2\u0133\u0134\7\3\2\2\u0134\u0135\t\2"+
"\2\2\u0135\u0137\7\u02de\2\2\u0136\u0133\3\2\2\2\u0136\u0137\3\2\2\2\u0137"+
"\5\3\2\2\2\u0138\u0139\7\u02c2\2\2\u0139\7\3\2\2\2\u013a\u013b\7\u0080"+
"\2\2\u013b\u0140\5\u00f8}\2\u013c\u013d\7\u02d9\2\2\u013d\u013f\5\u00f8"+
"}\2\u013e\u013c\3\2\2\2\u013f\u0142\3\2\2\2\u0140\u013e\3\2\2\2\u0140"+
"\u0141\3\2\2\2\u0141\t\3\2\2\2\u0142\u0140\3\2\2\2\u0143\u0144\7C\2\2"+
"\u0144\u0145\7\b\2\2\u0145\u0146\5\u00ecw\2\u0146\13\3\2\2\2\u0147\u0148"+
"\7\5\2\2\u0148\u0149\7\t\2\2\u0149\r\3\2\2\2\u014a\u014d\5\26\f\2\u014b"+
"\u014d\5\30\r\2\u014c\u014a\3\2\2\2\u014c\u014b\3\2\2\2\u014d\17\3\2\2"+
"\2\u014e\u0157\5<\37\2\u014f\u0157\5> \2\u0150\u0157\5@!\2\u0151\u0157"+
"\5B\"\2\u0152\u0157\5D#\2\u0153\u0157\5F$\2\u0154\u0157\5\22\n\2\u0155"+
"\u0157\5\24\13\2\u0156\u014e\3\2\2\2\u0156\u014f\3\2\2\2\u0156\u0150\3"+
"\2\2\2\u0156\u0151\3\2\2\2\u0156\u0152\3\2\2\2\u0156\u0153\3\2\2\2\u0156"+
"\u0154\3\2\2\2\u0156\u0155\3\2\2\2\u0157\21\3\2\2\2\u0158\u0159\7.\2\2"+
"\u0159\u015a\t\3\2\2\u015a\u015b\5\u0110\u0089\2\u015b\23\3\2\2\2\u015c"+
"\u015d\7C\2\2\u015d\u0160\t\3\2\2\u015e\u015f\7c\2\2\u015f\u0161\7L\2"+
"\2\u0160\u015e\3\2\2\2\u0160\u0161\3\2\2\2\u0161\u0162\3\2\2\2\u0162\u0163"+
"\5\u0110\u0089\2\u0163\25\3\2\2\2\u0164\u0165\7\u00b0\2\2\u0165\u0166"+
"\5\32\16\2\u0166\u0167\7\u02c6\2\2\u0167\u0168\5\34\17\2\u0168\27\3\2"+
"\2\2\u0169\u016a\7\n\2\2\u016a\u016b\5\32\16\2\u016b\31\3\2\2\2\u016c"+
"\u016d\7\u02c1\2\2\u016d\33\3\2\2\2\u016e\u0179\7\u02bc\2\2\u016f\u0179"+
"\7\u02c2\2\2\u0170\u0175\7\u02c1\2\2\u0171\u0172\7\u02d9\2\2\u0172\u0174"+
"\7\u02c1\2\2\u0173\u0171\3\2\2\2\u0174\u0177\3\2\2\2\u0175\u0173\3\2\2"+
"\2\u0175\u0176\3\2\2\2\u0176\u0179\3\2\2\2\u0177\u0175\3\2\2\2\u0178\u016e"+
"\3\2\2\2\u0178\u016f\3\2\2\2\u0178\u0170\3\2\2\2\u0179\35\3\2\2\2\u017a"+
"\u017c\5 \21\2\u017b\u017a\3\2\2\2\u017c\u017f\3\2\2\2\u017d\u017b\3\2"+
"\2\2\u017d\u017e\3\2\2\2\u017e\u0180\3\2\2\2\u017f\u017d\3\2\2\2\u0180"+
"\u0181\7\2\2\3\u0181\37\3\2\2\2\u0182\u0185\5\"\22\2\u0183\u0185\5\20"+
"\t\2\u0184\u0182\3\2\2\2\u0184\u0183\3\2\2\2\u0185!\3\2\2\2\u0186\u018d"+
"\5,\27\2\u0187\u018d\5\60\31\2\u0188\u018d\5\62\32\2\u0189\u018d\5\64"+
"\33\2\u018a\u018d\5\66\34\2\u018b\u018d\58\35\2\u018c\u0186\3\2\2\2\u018c"+
"\u0187\3\2\2\2\u018c\u0188\3\2\2\2\u018c\u0189\3\2\2\2\u018c\u018a\3\2"+
"\2\2\u018c\u018b\3\2\2\2\u018d#\3\2\2\2\u018e\u0190\5`\61\2\u018f\u018e"+
"\3\2\2\2\u018f\u0190\3\2\2\2\u0190\u0192\3\2\2\2\u0191\u0193\7\u014b\2"+
"\2\u0192\u0191\3\2\2\2\u0192\u0193\3\2\2\2\u0193\u0194\3\2\2\2\u0194\u0196"+
"\5p9\2\u0195\u0197\5z>\2\u0196\u0195\3\2\2\2\u0196\u0197\3\2\2\2\u0197"+
"\u0199\3\2\2\2\u0198\u019a\5x=\2\u0199\u0198\3\2\2\2\u0199\u019a\3\2\2"+
"\2\u019a\u019c\3\2\2\2\u019b\u019d\7\u02da\2\2\u019c\u019b\3\2\2\2\u019c"+
"\u019d\3\2\2\2\u019d%\3\2\2\2\u019e\u019f\7\u01ec\2\2\u019f\u01a4\5(\25"+
"\2\u01a0\u01a1\7\u02d9\2\2\u01a1\u01a3\5(\25\2\u01a2\u01a0\3\2\2\2\u01a3"+
"\u01a6\3\2\2\2\u01a4\u01a2\3\2\2\2\u01a4\u01a5\3\2\2\2\u01a5\u01b2\3\2"+
"\2\2\u01a6\u01a4\3\2\2\2\u01a7\u01aa\7j\2\2\u01a8\u01ab\7\u02bf\2\2\u01a9"+
"\u01ab\5\u00ecw\2\u01aa\u01a8\3\2\2\2\u01aa\u01a9\3\2\2\2\u01ab\u01b0"+
"\3\2\2\2\u01ac\u01ad\7\u02d7\2\2\u01ad\u01ae\5\u00f6|\2\u01ae\u01af\7"+
"\u02d8\2\2\u01af\u01b1\3\2\2\2\u01b0\u01ac\3\2\2\2\u01b0\u01b1\3\2\2\2"+
"\u01b1\u01b3\3\2\2\2\u01b2\u01a7\3\2\2\2\u01b2\u01b3\3\2\2\2\u01b3\'\3"+
"\2\2\2\u01b4\u01b7\5*\26\2\u01b5\u01b7\5T+\2\u01b6\u01b4\3\2\2\2\u01b6"+
"\u01b5\3\2\2\2\u01b7\u01bc\3\2\2\2\u01b8\u01ba\7\20\2\2\u01b9\u01b8\3"+
"\2\2\2\u01b9\u01ba\3\2\2\2\u01ba\u01bb\3\2\2\2\u01bb\u01bd\5\u00b0Y\2"+
"\u01bc\u01b9\3\2\2\2\u01bc\u01bd\3\2\2\2\u01bd)\3\2\2\2\u01be\u01c2\7"+
"\u013e\2\2\u01bf\u01c2\7\u0177\2\2\u01c0\u01c2\5\u00ecw\2\u01c1\u01be"+
"\3\2\2\2\u01c1\u01bf\3\2\2\2\u01c1\u01c0\3\2\2\2\u01c2\u01c3\3\2\2\2\u01c3"+
"\u01c6\7\u02d2\2\2\u01c4\u01c7\7\u02dc\2\2\u01c5\u01c7\5\u00f8}\2\u01c6"+
"\u01c4\3\2\2\2\u01c6\u01c5\3\2\2\2\u01c7\u01ca\3\2\2\2\u01c8\u01ca\7\u02b8"+
"\2\2\u01c9\u01c1\3\2\2\2\u01c9\u01c8\3\2\2\2\u01ca+\3\2\2\2\u01cb\u01cc"+
"\7.\2\2\u01cc\u01cd\7\u00b8\2\2\u01cd\u01ce\5\u00ecw\2\u01ce\u01cf\7\u02d7"+
"\2\2\u01cf\u01d6\5J&\2\u01d0\u01d2\7\u02d9\2\2\u01d1\u01d0\3\2\2\2\u01d1"+
"\u01d2\3\2\2\2\u01d2\u01d3\3\2\2\2\u01d3\u01d5\5J&\2\u01d4\u01d1\3\2\2"+
"\2\u01d5\u01d8\3\2\2\2\u01d6\u01d4\3\2\2\2\u01d6\u01d7\3\2\2\2\u01d7\u01da"+
"\3\2\2\2\u01d8\u01d6\3\2\2\2\u01d9\u01db\7\u02d9\2\2\u01da\u01d9\3\2\2"+
"\2\u01da\u01db\3\2\2\2\u01db\u01dc\3\2\2\2\u01dc\u01dd\7\u02d8\2\2\u01dd"+
"-\3\2\2\2\u01de\u01df\7.\2\2\u01df\u01e3\7\u00b8\2\2\u01e0\u01e1\7c\2"+
"\2\u01e1\u01e2\7y\2\2\u01e2\u01e4\7L\2\2\u01e3\u01e0\3\2\2\2\u01e3\u01e4"+
"\3\2\2\2\u01e4\u01e5\3\2\2\2\u01e5\u01e7\5\u00ecw\2\u01e6\u01e8\7\u0258"+
"\2\2\u01e7\u01e6\3\2\2\2\u01e7\u01e8\3\2\2\2\u01e8\u01e9\3\2\2\2\u01e9"+
"\u01ea\7\20\2\2\u01ea\u01ec\5$\23\2\u01eb\u01ed\7\u02da\2\2\u01ec\u01eb"+
"\3\2\2\2\u01ec\u01ed\3\2\2\2\u01ed/\3\2\2\2\u01ee\u01ef\7.\2\2\u01ef\u01f0"+
"\7\u00cf\2\2\u01f0\u01fc\5\u00eex\2\u01f1\u01f2\7\u02d7\2\2\u01f2\u01f7"+
"\5\u00f8}\2\u01f3\u01f4\7\u02d9\2\2\u01f4\u01f6\5\u00f8}\2\u01f5\u01f3"+
"\3\2\2\2\u01f6\u01f9\3\2\2\2\u01f7\u01f5\3\2\2\2\u01f7\u01f8\3\2\2\2\u01f8"+
"\u01fa\3\2\2\2\u01f9\u01f7\3\2\2\2\u01fa\u01fb\7\u02d8\2\2\u01fb\u01fd"+
"\3\2\2\2\u01fc\u01f1\3\2\2\2\u01fc\u01fd\3\2\2\2\u01fd\u01fe\3\2\2\2\u01fe"+
"\u01ff\7\20\2\2\u01ff\u0203\5$\23\2\u0200\u0201\7\u00d4\2\2\u0201\u0202"+
"\7\37\2\2\u0202\u0204\7\u0086\2\2\u0203\u0200\3\2\2\2\u0203\u0204\3\2"+
"\2\2\u0204\u0206\3\2\2\2\u0205\u0207\7\u02da\2\2\u0206\u0205\3\2\2\2\u0206"+
"\u0207\3\2\2\2\u0207\61\3\2\2\2\u0208\u0209\7\r\2\2\u0209\u020a\7\u00b8"+
"\2\2\u020a\u020b\5\u00ecw\2\u020b\u020c\7\u00b0\2\2\u020c\u020d\7\u02d7"+
"\2\2\u020d\u020e\7\u01b0\2\2\u020e\u020f\7\u02c6\2\2\u020f\u0210\t\4\2"+
"\2\u0210\u0212\7\u02d8\2\2\u0211\u0213\7\u02da\2\2\u0212\u0211\3\2\2\2"+
"\u0212\u0213\3\2\2\2\u0213\u021d\3\2\2\2\u0214\u0215\7\r\2\2\u0215\u0216"+
"\7\u00b8\2\2\u0216\u0217\5\u00ecw\2\u0217\u0218\7\13\2\2\u0218\u021a\5"+
"J&\2\u0219\u021b\7\u02da\2\2\u021a\u0219\3\2\2\2\u021a\u021b\3\2\2\2\u021b"+
"\u021d\3\2\2\2\u021c\u0208\3\2\2\2\u021c\u0214\3\2\2\2\u021d\63\3\2\2"+
"\2\u021e\u021f\7\r\2\2\u021f\u0222\7\66\2\2\u0220\u0223\5\u0110\u0089"+
"\2\u0221\u0223\7\60\2\2\u0222\u0220\3\2\2\2\u0222\u0221\3\2\2\2\u0223"+
"\u0224\3\2\2\2\u0224\u0225\7\u01cd\2\2\u0225\u0226\7\u01d6\2\2\u0226\u0227"+
"\7\u02c6\2\2\u0227\u0229\5\u0110\u0089\2\u0228\u022a\7\u02da\2\2\u0229"+
"\u0228\3\2\2\2\u0229\u022a\3\2\2\2\u022a\65\3\2\2\2\u022b\u022c\7C\2\2"+
"\u022c\u022f\7\u00b8\2\2\u022d\u022e\7c\2\2\u022e\u0230\7L\2\2\u022f\u022d"+
"\3\2\2\2\u022f\u0230\3\2\2\2\u0230\u0231\3\2\2\2\u0231\u0233\5\u00ecw"+
"\2\u0232\u0234\7\u02da\2\2\u0233\u0232\3\2\2\2\u0233\u0234\3\2\2\2\u0234"+
"\67\3\2\2\2\u0235\u0236\7C\2\2\u0236\u0239\7\u00cf\2\2\u0237\u0238\7c"+
"\2\2\u0238\u023a\7L\2\2\u0239\u0237\3\2\2\2\u0239\u023a\3\2\2\2\u023a"+
"\u023b\3\2\2\2\u023b\u0240\5\u00eex\2\u023c\u023d\7\u02d9\2\2\u023d\u023f"+
"\5\u00eex\2\u023e\u023c\3\2\2\2\u023f\u0242\3\2\2\2\u0240\u023e\3\2\2"+
"\2\u0240\u0241\3\2\2\2\u0241\u0244\3\2\2\2\u0242\u0240\3\2\2\2\u0243\u0245"+
"\7\u02da\2\2\u0244\u0243\3\2\2\2\u0244\u0245\3\2\2\2\u02459\3\2\2\2\u0246"+
"\u0247\7\u00b0\2\2\u0247\u024a\7\u02bf\2\2\u0248\u0249\7\u02d2\2\2\u0249"+
"\u024b\5\u0110\u0089\2\u024a\u0248\3\2\2\2\u024a\u024b\3\2\2\2\u024b\u024c"+
"\3\2\2\2\u024c\u024d\7\u02c6\2\2\u024d\u024f\5T+\2\u024e\u0250\7\u02da"+
"\2\2\u024f\u024e\3\2\2\2\u024f\u0250\3\2\2\2\u0250\u025a\3\2\2\2\u0251"+
"\u0252\7\u00b0\2\2\u0252\u0253\7\u02bf\2\2\u0253\u0254\5\u0116\u008c\2"+
"\u0254\u0256\5T+\2\u0255\u0257\7\u02da\2\2\u0256\u0255\3\2\2\2\u0256\u0257"+
"\3\2\2\2\u0257\u025a\3\2\2\2\u0258\u025a\5R*\2\u0259\u0246\3\2\2\2\u0259"+
"\u0251\3\2\2\2\u0259\u0258\3\2\2\2\u025a;\3\2\2\2\u025b\u025c\7\u00cb"+
"\2\2\u025c\u025e\5\u0110\u0089\2\u025d\u025f\7\u02da\2\2\u025e\u025d\3"+
"\2\2\2\u025e\u025f\3\2\2\2\u025f=\3\2\2\2\u0260\u0261\7\5\2\2\u0261\u0264"+
"\7\u00b9\2\2\u0262\u0263\7d\2\2\u0263\u0265\5\u0110\u0089\2\u0264\u0262"+
"\3\2\2\2\u0264\u0265\3\2\2\2\u0265\u0267\3\2\2\2\u0266\u0268\7\u02da\2"+
"\2\u0267\u0266\3\2\2\2\u0267\u0268\3\2\2\2\u0268?\3\2\2\2\u0269\u026a"+
"\7\5\2\2\u026a\u026b\t\5\2\2\u026bA\3\2\2\2\u026c\u026d\7>\2\2\u026d\u026f"+
"\5\u00ecw\2\u026e\u0270\7\u02da\2\2\u026f\u026e\3\2\2\2\u026f\u0270\3"+
"\2\2\2\u0270C\3\2\2\2\u0271\u0273\7\u0215\2\2\u0272\u0274\5\u0110\u0089"+
"\2\u0273\u0272\3\2\2\2\u0273\u0274\3\2\2\2\u0274\u0276\3\2\2\2\u0275\u0277"+
"\7\u02da\2\2\u0276\u0275\3\2\2\2\u0276\u0277\3\2\2\2\u0277E\3\2\2\2\u0278"+
"\u0279\7\5\2\2\u0279\u027b\7\u0119\2\2\u027a\u027c\7\u02da\2\2\u027b\u027a"+
"\3\2\2\2\u027b\u027c\3\2\2\2\u027cG\3\2\2\2\u027d\u027e\7\u00b8\2\2\u027e"+
"\u027f\7\u02d7\2\2\u027f\u0286\5J&\2\u0280\u0282\7\u02d9\2\2\u0281\u0280"+
"\3\2\2\2\u0281\u0282\3\2\2\2\u0282\u0283\3\2\2\2\u0283\u0285\5J&\2\u0284"+
"\u0281\3\2\2\2\u0285\u0288\3\2\2\2\u0286\u0284\3\2\2\2\u0286\u0287\3\2"+
"\2\2\u0287\u0289\3\2\2\2\u0288\u0286\3\2\2\2\u0289\u028a\7\u02d8\2\2\u028a"+
"I\3\2\2\2\u028b\u028e\5L\'\2\u028c\u028e\5P)\2\u028d\u028b\3\2\2\2\u028d"+
"\u028c\3\2\2\2\u028eK\3\2\2\2\u028f\u0293\5\u00f8}\2\u0290\u0294\5\u0106"+
"\u0084\2\u0291\u0292\7\20\2\2\u0292\u0294\5T+\2\u0293\u0290\3\2\2\2\u0293"+
"\u0291\3\2\2\2\u0294\u0296\3\2\2\2\u0295\u0297\5\u0100\u0081\2\u0296\u0295"+
"\3\2\2\2\u0296\u0297\3\2\2\2\u0297M\3\2\2\2\u0298\u0299\7(\2\2\u0299\u029b"+
"\5\u0110\u0089\2\u029a\u0298\3\2\2\2\u029a\u029b\3\2\2\2\u029b\u029d\3"+
"\2\2\2\u029c\u029e\5\u0100\u0081\2\u029d\u029c\3\2\2\2\u029d\u029e\3\2"+
"\2\2\u029eO\3\2\2\2\u029f\u02a0\7(\2\2\u02a0\u02a2\5\u0110\u0089\2\u02a1"+
"\u029f\3\2\2\2\u02a1\u02a2\3\2\2\2\u02a2\u02a3\3\2\2\2\u02a3\u02a4\7\u02d7"+
"\2\2\u02a4\u02a5\5\u00f6|\2\u02a5\u02a6\7\u02d8\2\2\u02a6Q\3\2\2\2\u02a7"+
"\u02a8\7\u00b0\2\2\u02a8\u02ad\5\u0110\u0089\2\u02a9\u02ae\5\u0110\u0089"+
"\2\u02aa\u02ae\5\u010a\u0086\2\u02ab\u02ae\7\u02bf\2\2\u02ac\u02ae\5\u00fc"+
"\177\2\u02ad\u02a9\3\2\2\2\u02ad\u02aa\3\2\2\2\u02ad\u02ab\3\2\2\2\u02ad"+
"\u02ac\3\2\2\2\u02ae\u02b0\3\2\2\2\u02af\u02b1\7\u02da\2\2\u02b0\u02af"+
"\3\2\2\2\u02b0\u02b1\3\2\2\2\u02b1\u02cb\3\2\2\2\u02b2\u02b3\7\u00b0\2"+
"\2\u02b3\u02b4\7\u00c0\2\2\u02b4\u02b5\7\u0181\2\2\u02b5\u02be\7\u01a8"+
"\2\2\u02b6\u02b7\7\u0095\2\2\u02b7\u02bf\7\u028f\2\2\u02b8\u02b9\7\u0095"+
"\2\2\u02b9\u02bf\7\u0116\2\2\u02ba\u02bb\7\u0226\2\2\u02bb\u02bf\7\u0095"+
"\2\2\u02bc\u02bf\7\u024b\2\2\u02bd\u02bf\7\u023a\2\2\u02be\u02b6\3\2\2"+
"\2\u02be\u02b8\3\2\2\2\u02be\u02ba\3\2\2\2\u02be\u02bc\3\2\2\2\u02be\u02bd"+
"\3\2\2\2\u02bf\u02c1\3\2\2\2\u02c0\u02c2\7\u02da\2\2\u02c1\u02c0\3\2\2"+
"\2\u02c1\u02c2\3\2\2\2\u02c2\u02cb\3\2\2\2\u02c3\u02c4\7\u00b0\2\2\u02c4"+
"\u02c5\7b\2\2\u02c5\u02c6\5\u00ecw\2\u02c6\u02c8\5\u00fc\177\2\u02c7\u02c9"+
"\7\u02da\2\2\u02c8\u02c7\3\2\2\2\u02c8\u02c9\3\2\2\2\u02c9\u02cb\3\2\2"+
"\2\u02ca\u02a7\3\2\2\2\u02ca\u02b2\3\2\2\2\u02ca\u02c3\3\2\2\2\u02cbS"+
"\3\2\2\2\u02cc\u02cd\b+\1\2\u02cd\u02e5\7z\2\2\u02ce\u02e5\7\u02bf\2\2"+
"\u02cf\u02e5\5\u010a\u0086\2\u02d0\u02e5\5\u0102\u0082\2\u02d1\u02e5\5"+
"\u00b6\\\2\u02d2\u02e5\5\u00f4{\2\u02d3\u02d4\7\u02d7\2\2\u02d4\u02d5"+
"\5T+\2\u02d5\u02d6\7\u02d8\2\2\u02d6\u02e5\3\2\2\2\u02d7\u02d8\7\u02d7"+
"\2\2\u02d8\u02d9\5\\/\2\u02d9\u02da\7\u02d8\2\2\u02da\u02e5\3\2\2\2\u02db"+
"\u02dc\7\u02e1\2\2\u02dc\u02e5\5T+\r\u02dd\u02de\t\6\2\2\u02de\u02e5\5"+
"T+\13\u02df\u02e0\7y\2\2\u02e0\u02e5\5T+\b\u02e1\u02e5\5V,\2\u02e2\u02e5"+
"\5X-\2\u02e3\u02e5\5\u00a2R\2\u02e4\u02cc\3\2\2\2\u02e4\u02ce\3\2\2\2"+
"\u02e4\u02cf\3\2\2\2\u02e4\u02d0\3\2\2\2\u02e4\u02d1\3\2\2\2\u02e4\u02d2"+
"\3\2\2\2\u02e4\u02d3\3\2\2\2\u02e4\u02d7\3\2\2\2\u02e4\u02db\3\2\2\2\u02e4"+
"\u02dd\3\2\2\2\u02e4\u02df\3\2\2\2\u02e4\u02e1\3\2\2\2\u02e4\u02e2\3\2"+
"\2\2\u02e4\u02e3\3\2\2\2\u02e5\u02f8\3\2\2\2\u02e6\u02e7\f\f\2\2\u02e7"+
"\u02e8\t\7\2\2\u02e8\u02f7\5T+\r\u02e9\u02ea\f\n\2\2\u02ea\u02eb\t\b\2"+
"\2\u02eb\u02f7\5T+\13\u02ec\u02ed\f\t\2\2\u02ed\u02ee\5\u0114\u008b\2"+
"\u02ee\u02ef\5T+\n\u02ef\u02f7\3\2\2\2\u02f0\u02f1\f\7\2\2\u02f1\u02f2"+
"\7k\2\2\u02f2\u02f7\5\u0100\u0081\2\u02f3\u02f4\f\3\2\2\u02f4\u02f5\7"+
"$\2\2\u02f5\u02f7\5\u0110\u0089\2\u02f6\u02e6\3\2\2\2\u02f6\u02e9\3\2"+
"\2\2\u02f6\u02ec\3\2\2\2\u02f6\u02f0\3\2\2\2\u02f6\u02f3\3\2\2\2\u02f7"+
"\u02fa\3\2\2\2\u02f8\u02f6\3\2\2\2\u02f8\u02f9\3\2\2\2\u02f9U\3\2\2\2"+
"\u02fa\u02f8\3\2\2\2\u02fb\u02fc\7\u0179\2\2\u02fc\u02fd\5Z.\2\u02fd\u02fe"+
"\t\t\2\2\u02feW\3\2\2\2\u02ff\u0300\7\u0128\2\2\u0300\u0301\5Z.\2\u0301"+
"Y\3\2\2\2\u0302\u030a\7z\2\2\u0303\u030a\5\u010a\u0086\2\u0304\u030a\7"+
"\u02bf\2\2\u0305\u0306\7\u02d7\2\2\u0306\u0307\5Z.\2\u0307\u0308\7\u02d8"+
"\2\2\u0308\u030a\3\2\2\2\u0309\u0302\3\2\2\2\u0309\u0303\3\2\2\2\u0309"+
"\u0304\3\2\2\2\u0309\u0305\3\2\2\2\u030a[\3\2\2\2\u030b\u030c\5$\23\2"+
"\u030c]\3\2\2\2\u030d\u030e\5t;\2\u030e_\3\2\2\2\u030f\u0312\7\u00d4\2"+
"\2\u0310\u0311\7\u02af\2\2\u0311\u0313\7\u02d9\2\2\u0312\u0310\3\2\2\2"+
"\u0312\u0313\3\2\2\2\u0313\u0314\3\2\2\2\u0314\u0319\5b\62\2\u0315\u0316"+
"\7\u02d9\2\2\u0316\u0318\5b\62\2\u0317\u0315\3\2\2\2\u0318\u031b\3\2\2"+
"\2\u0319\u0317\3\2\2\2\u0319\u031a\3\2\2\2\u031aa\3\2\2\2\u031b\u0319"+
"\3\2\2\2\u031c\u0321\5\u0110\u0089\2\u031d\u031e\7\u02d7\2\2\u031e\u031f"+
"\5\u00f6|\2\u031f\u0320\7\u02d8\2\2\u0320\u0322\3\2\2\2\u0321\u031d\3"+
"\2\2\2\u0321\u0322\3\2\2\2\u0322\u0323\3\2\2\2\u0323\u0324\7\20\2\2\u0324"+
"\u0325\7\u02d7\2\2\u0325\u0326\5$\23\2\u0326\u0327\7\u02d8\2\2\u0327c"+
"\3\2\2\2\u0328\u032b\5\u00f4{\2\u0329\u032b\7\u02bf\2\2\u032a\u0328\3"+
"\2\2\2\u032a\u0329\3\2\2\2\u032b\u032e\3\2\2\2\u032c\u032f\7\u02c6\2\2"+
"\u032d\u032f\5\u0116\u008c\2\u032e\u032c\3\2\2\2\u032e\u032d\3\2\2\2\u032f"+
"\u0330\3\2\2\2\u0330\u0339\5T+\2\u0331\u0332\5\u0110\u0089\2\u0332\u0333"+
"\7\u02d2\2\2\u0333\u0334\5\u0110\u0089\2\u0334\u0335\7\u02d7\2\2\u0335"+
"\u0336\5\u00b4[\2\u0336\u0337\7\u02d8\2\2\u0337\u0339\3\2\2\2\u0338\u032a"+
"\3\2\2\2\u0338\u0331\3\2\2\2\u0339e\3\2\2\2\u033a\u033f\5h\65\2\u033b"+
"\u033c\7\u02d9\2\2\u033c\u033e\5h\65\2\u033d\u033b\3\2\2\2\u033e\u0341"+
"\3\2\2\2\u033f\u033d\3\2\2\2\u033f\u0340\3\2\2\2\u0340g\3\2\2\2\u0341"+
"\u033f\3\2\2\2\u0342\u0347\5j\66\2\u0343\u0344\7\16\2\2\u0344\u0346\5"+
"j\66\2\u0345\u0343\3\2\2\2\u0346\u0349\3\2\2\2\u0347\u0345\3\2\2\2\u0347"+
"\u0348\3\2\2\2\u0348i\3\2\2\2\u0349\u0347\3\2\2\2\u034a\u034f\5l\67\2"+
"\u034b\u034c\7\u0087\2\2\u034c\u034e\5l\67\2\u034d\u034b\3\2\2\2\u034e"+
"\u0351\3\2\2\2\u034f\u034d\3\2\2\2\u034f\u0350\3\2\2\2\u0350k\3\2\2\2"+
"\u0351\u034f\3\2\2\2\u0352\u0354\7y\2\2\u0353\u0352\3\2\2\2\u0353\u0354"+
"\3\2\2\2\u0354\u0355\3\2\2\2\u0355\u0356\5n8\2\u0356m\3\2\2\2\u0357\u0358"+
"\b8\1\2\u0358\u0359\7L\2\2\u0359\u035a\7\u02d7\2\2\u035a\u035b\5\\/\2"+
"\u035b\u035c\7\u02d8\2\2\u035c\u0391\3\2\2\2\u035d\u035e\7\u02d7\2\2\u035e"+
"\u035f\5h\65\2\u035f\u0360\7\u02d8\2\2\u0360\u0391\3\2\2\2\u0361\u0362"+
"\5T+\2\u0362\u0363\5\u0114\u008b\2\u0363\u0364\5T+\2\u0364\u0391\3\2\2"+
"\2\u0365\u0366\5T+\2\u0366\u0367\5\u0114\u008b\2\u0367\u0368\t\n\2\2\u0368"+
"\u0369\7\u02d7\2\2\u0369\u036a\5\\/\2\u036a\u036b\7\u02d8\2\2\u036b\u0391"+
"\3\2\2\2\u036c\u036e\5T+\2\u036d\u036f\7y\2\2\u036e\u036d\3\2\2\2\u036e"+
"\u036f\3\2\2\2\u036f\u0370\3\2\2\2\u0370\u0371\7\26\2\2\u0371\u0372\5"+
"T+\2\u0372\u0373\7\16\2\2\u0373\u0374\5T+\2\u0374\u0391\3\2\2\2\u0375"+
"\u0377\5T+\2\u0376\u0378\7y\2\2\u0377\u0376\3\2\2\2\u0377\u0378\3\2\2"+
"\2\u0378\u0379\3\2\2\2\u0379\u037a\7d\2\2\u037a\u037d\7\u02d7\2\2\u037b"+
"\u037e\5\\/\2\u037c\u037e\5\u00b4[\2\u037d\u037b\3\2\2\2\u037d\u037c\3"+
"\2\2\2\u037e\u037f\3\2\2\2\u037f\u0380\7\u02d8\2\2\u0380\u0391\3\2\2\2"+
"\u0381\u0383\5T+\2\u0382\u0384\7y\2\2\u0383\u0382\3\2\2\2\u0383\u0384"+
"\3\2\2\2\u0384\u0385\3\2\2\2\u0385\u0386\t\13\2\2\u0386\u0389\5T+\2\u0387"+
"\u0388\7H\2\2\u0388\u038a\5T+\2\u0389\u0387\3\2\2\2\u0389\u038a\3\2\2"+
"\2\u038a\u0391\3\2\2\2\u038b\u038c\5T+\2\u038c\u038d\7k\2\2\u038d\u038e"+
"\5\u0100\u0081\2\u038e\u0391\3\2\2\2\u038f\u0391\5\u00d2j\2\u0390\u0357"+
"\3\2\2\2\u0390\u035d\3\2\2\2\u0390\u0361\3\2\2\2\u0390\u0365\3\2\2\2\u0390"+
"\u036c\3\2\2\2\u0390\u0375\3\2\2\2\u0390\u0381\3\2\2\2\u0390\u038b\3\2"+
"\2\2\u0390\u038f\3\2\2\2\u0391\u0398\3\2\2\2\u0392\u0393\f\n\2\2\u0393"+
"\u0394\5\u0114\u008b\2\u0394\u0395\5T+\2\u0395\u0397\3\2\2\2\u0396\u0392"+
"\3\2\2\2\u0397\u039a\3\2\2\2\u0398\u0396\3\2\2\2\u0398\u0399\3\2\2\2\u0399"+
"o\3\2\2\2\u039a\u0398\3\2\2\2\u039b\u03a1\5t;\2\u039c\u039d\7\u02d7\2"+
"\2\u039d\u039e\5p9\2\u039e\u039f\7\u02d8\2\2\u039f\u03a1\3\2\2\2\u03a0"+
"\u039b\3\2\2\2\u03a0\u039c\3\2\2\2\u03a1\u03a5\3\2\2\2\u03a2\u03a4\5r"+
":\2\u03a3\u03a2\3\2\2\2\u03a4\u03a7\3\2\2\2\u03a5\u03a3\3\2\2\2\u03a5"+
"\u03a6\3\2\2\2\u03a6q\3\2\2\2\u03a7\u03a5\3\2\2\2\u03a8\u03aa\7\u00c6"+
"\2\2\u03a9\u03ab\7\f\2\2\u03aa\u03a9\3\2\2\2\u03aa\u03ab\3\2\2\2\u03ab"+
"\u03af\3\2\2\2\u03ac\u03af\7I\2\2\u03ad\u03af\7i\2\2\u03ae\u03a8\3\2\2"+
"\2\u03ae\u03ac\3\2\2\2\u03ae\u03ad\3\2\2\2\u03af\u03b9\3\2\2\2\u03b0\u03ba"+
"\5t;\2\u03b1\u03b2\7\u02d7\2\2\u03b2\u03b3\5p9\2\u03b3\u03b4\7\u02d8\2"+
"\2\u03b4\u03b6\3\2\2\2\u03b5\u03b1\3\2\2\2\u03b6\u03b7\3\2\2\2\u03b7\u03b5"+
"\3\2\2\2\u03b7\u03b8\3\2\2\2\u03b8\u03ba\3\2\2\2\u03b9\u03b0\3\2\2\2\u03b9"+
"\u03b5\3\2\2\2\u03bas\3\2\2\2\u03bb\u03bd\7\u00aa\2\2\u03bc\u03be\t\f"+
"\2\2\u03bd\u03bc\3\2\2\2\u03bd\u03be\3\2\2\2\u03be\u03c0\3\2\2\2\u03bf"+
"\u03c1\5v<\2\u03c0\u03bf\3\2\2\2\u03c0\u03c1\3\2\2\2\u03c1\u03c2\3\2\2"+
"\2\u03c2\u03c5\5\u008aF\2\u03c3\u03c4\7j\2\2\u03c4\u03c6\5\u00ecw\2\u03c5"+
"\u03c3\3\2\2\2\u03c5\u03c6\3\2\2\2\u03c6\u03d0\3\2\2\2\u03c7\u03c8\7X"+
"\2\2\u03c8\u03cd\5\u0090I\2\u03c9\u03ca\7\u02d9\2\2\u03ca\u03cc\5\u0090"+
"I\2\u03cb\u03c9\3\2\2\2\u03cc\u03cf\3\2\2\2\u03cd\u03cb\3\2\2\2\u03cd"+
"\u03ce\3\2\2\2\u03ce\u03d1\3\2\2\2\u03cf\u03cd\3\2\2\2\u03d0\u03c7\3\2"+
"\2\2\u03d0\u03d1\3\2\2\2\u03d1\u03d4\3\2\2\2\u03d2\u03d3\7\u00d2\2\2\u03d3"+
"\u03d5\5h\65\2\u03d4\u03d2\3\2\2\2\u03d4\u03d5\3\2\2\2\u03d5\u03f2\3\2"+
"\2\2\u03d6\u03d7\7]\2\2\u03d7\u03d8\7\32\2\2\u03d8\u03dd\5\u0082B\2\u03d9"+
"\u03da\7\u02d9\2\2\u03da\u03dc\5\u0082B\2\u03db\u03d9\3\2\2\2\u03dc\u03df"+
"\3\2\2\2\u03dd\u03db\3\2\2\2\u03dd\u03de\3\2\2\2\u03de\u03e2\3\2\2\2\u03df"+
"\u03dd\3\2\2\2\u03e0\u03e1\7\u00d4\2\2\u03e1\u03e3\7\u0229\2\2\u03e2\u03e0"+
"\3\2\2\2\u03e2\u03e3\3\2\2\2\u03e3\u03f3\3\2\2\2\u03e4\u03e5\7]\2\2\u03e5"+
"\u03e6\7\32\2\2\u03e6\u03e7\7\u0229\2\2\u03e7\u03e8\7\u02d7\2\2\u03e8"+
"\u03ed\5\u0082B\2\u03e9\u03ea\7\u02d9\2\2\u03ea\u03ec\5\u0082B\2\u03eb"+
"\u03e9\3\2\2\2\u03ec\u03ef\3\2\2\2\u03ed\u03eb\3\2\2\2\u03ed\u03ee\3\2"+
"\2\2\u03ee\u03f0\3\2\2\2\u03ef\u03ed\3\2\2\2\u03f0\u03f1\7\u02d8\2\2\u03f1"+
"\u03f3\3\2\2\2\u03f2\u03d6\3\2\2\2\u03f2\u03e4\3\2\2\2\u03f2\u03f3\3\2"+
"\2\2\u03f3\u03f6\3\2\2\2\u03f4\u03f5\7_\2\2\u03f5\u03f7\5h\65\2\u03f6"+
"\u03f4\3\2\2\2\u03f6\u03f7\3\2\2\2\u03f7u\3\2\2\2\u03f8\u03f9\7\u00be"+
"\2\2\u03f9\u03fa\5\u010c\u0087\2\u03faw\3\2\2\2\u03fb\u03fc\7q\2\2\u03fc"+
"\u03fd\5\u010c\u0087\2\u03fdy\3\2\2\2\u03fe\u03ff\7\u0088\2\2\u03ff\u0400"+
"\7\32\2\2\u0400\u0405\5\u0080A\2\u0401\u0402\7\u02d9\2\2\u0402\u0404\5"+
"\u0080A\2\u0403\u0401\3\2\2\2\u0404\u0407\3\2\2\2\u0405\u0403\3\2\2\2"+
"\u0405\u0406\3\2\2\2\u0406\u0413\3\2\2\2\u0407\u0405\3\2\2\2\u0408\u0409"+
"\7\u01e7\2\2\u0409\u040a\5T+\2\u040a\u0411\t\r\2\2\u040b\u040c\7P\2\2"+
"\u040c\u040d\t\16\2\2\u040d\u040e\5T+\2\u040e\u040f\t\r\2\2\u040f\u0410"+
"\7\u01e8\2\2\u0410\u0412\3\2\2\2\u0411\u040b\3\2\2\2\u0411\u0412\3\2\2"+
"\2\u0412\u0414\3\2\2\2\u0413\u0408\3\2\2\2\u0413\u0414\3\2\2\2\u0414{"+
"\3\2\2\2\u0415\u0416\7S\2\2\u0416\u0429\7\30\2\2\u0417\u0418\7S\2\2\u0418"+
"\u0419\7\u02a9\2\2\u0419\u041b\7\u00f7\2\2\u041a\u041c\5~@\2\u041b\u041a"+
"\3\2\2\2\u041b\u041c\3\2\2\2\u041c\u0429\3\2\2\2\u041d\u041e\7S\2\2\u041e"+
"\u041f\7\u02a9\2\2\u041f\u0423\7\u01f0\2\2\u0420\u0421\7\u02d7\2\2\u0421"+
"\u0422\7\u02c2\2\2\u0422\u0424\7\u02d8\2\2\u0423\u0420\3\2\2\2\u0423\u0424"+
"\3\2\2\2\u0424\u0426\3\2\2\2\u0425\u0427\5~@\2\u0426\u0425\3\2\2\2\u0426"+
"\u0427\3\2\2\2\u0427\u0429\3\2\2\2\u0428\u0415\3\2\2\2\u0428\u0417\3\2"+
"\2\2\u0428\u041d\3\2\2\2\u0429}\3\2\2\2\u042a\u042f\7\u02d9\2\2\u042b"+
"\u042c\7\u02c3\2\2\u042c\u0430\7\u00f9\2\2\u042d\u0430\7\u028b\2\2\u042e"+
"\u0430\7\u022a\2\2\u042f\u042b\3\2\2\2\u042f\u042d\3\2\2\2\u042f\u042e"+
"\3\2\2\2\u0430\177\3\2\2\2\u0431\u0433\5T+\2\u0432\u0434\t\17\2\2\u0433"+
"\u0432\3\2\2\2\u0433\u0434\3\2\2\2\u0434\u0439\3\2\2\2\u0435\u0436\7|"+
"\2\2\u0436\u043a\7\u0157\2\2\u0437\u0438\7|\2\2\u0438\u043a\7\u01a0\2"+
"\2\u0439\u0435\3\2\2\2\u0439\u0437\3\2\2\2\u0439\u043a\3\2\2\2\u043a\u0081"+
"\3\2\2\2\u043b\u043c\5T+\2\u043c\u0083\3\2\2\2\u043d\u043e\7\u0086\2\2"+
"\u043e\u043f\7\u02d7\2\2\u043f\u0444\5\u0086D\2\u0440\u0441\7\u02d9\2"+
"\2\u0441\u0443\5\u0086D\2\u0442\u0440\3\2\2\2\u0443\u0446\3\2\2\2\u0444"+
"\u0442\3\2\2\2\u0444\u0445\3\2\2\2\u0445\u0447\3\2\2\2\u0446\u0444\3\2"+
"\2\2\u0447\u0448\7\u02d8\2\2\u0448\u0085\3\2\2\2\u0449\u044a\7\u0152\2"+
"\2\u044a\u0462\7\u02c0\2\2\u044b\u044c\t\20\2\2\u044c\u0462\7]\2\2\u044d"+
"\u044e\t\21\2\2\u044e\u0462\7\u00c6\2\2\u044f\u0450\7\u019e\2\2\u0450"+
"\u0462\7\u008d\2\2\u0451\u0452\7\u01ea\2\2\u0452\u0453\7S\2\2\u0453\u0454"+
"\7\u02d7\2\2\u0454\u0459\5\u0088E\2\u0455\u0456\7\u02d9\2\2\u0456\u0458"+
"\5\u0088E\2\u0457\u0455\3\2\2\2\u0458\u045b\3\2\2\2\u0459\u0457\3\2\2"+
"\2\u0459\u045a\3\2\2\2\u045a\u045c\3\2\2\2\u045b\u0459\3\2\2\2\u045c\u045d"+
"\7\u02d8\2\2\u045d\u0462\3\2\2\2\u045e\u045f\7\u01ea\2\2\u045f\u0460\7"+
"S\2\2\u0460\u0462\7\u0294\2\2\u0461\u0449\3\2\2\2\u0461\u044b\3\2\2\2"+
"\u0461\u044d\3\2\2\2\u0461\u044f\3\2\2\2\u0461\u0451\3\2\2\2\u0461\u045e"+
"\3\2\2\2\u0462\u0087\3\2\2\2\u0463\u0467\7\u02bf\2\2\u0464\u0468\7\u0294"+
"\2\2\u0465\u0466\7\u02c6\2\2\u0466\u0468\5\u010a\u0086\2\u0467\u0464\3"+
"\2\2\2\u0467\u0465\3\2\2\2\u0468\u0089\3\2\2\2\u0469\u046e\5\u008cG\2"+
"\u046a\u046b\7\u02d9\2\2\u046b\u046d\5\u008cG\2\u046c\u046a\3\2\2\2\u046d"+
"\u0470\3\2\2\2\u046e\u046c\3\2\2\2\u046e\u046f\3\2\2\2\u046f\u008b\3\2"+
"\2\2\u0470\u046e\3\2\2\2\u0471\u0472\5\u00ecw\2\u0472\u0473\7\u02d2\2"+
"\2\u0473\u0475\3\2\2\2\u0474\u0471\3\2\2\2\u0474\u0475\3\2\2\2\u0475\u0479"+
"\3\2\2\2\u0476\u047a\7\u02dc\2\2\u0477\u0478\7\u02d6\2\2\u0478\u047a\t"+
"\22\2\2\u0479\u0476\3\2\2\2\u0479\u0477\3\2\2\2\u047a\u0487\3\2\2\2\u047b"+
"\u047c\5\u00b0Y\2\u047c\u047d\7\u02c6\2\2\u047d\u047e\5T+\2\u047e\u0487"+
"\3\2\2\2\u047f\u0484\5T+\2\u0480\u0482\7\20\2\2\u0481\u0480\3\2\2\2\u0481"+
"\u0482\3\2\2\2\u0482\u0483\3\2\2\2\u0483\u0485\5\u00b0Y\2\u0484\u0481"+
"\3\2\2\2\u0484\u0485\3\2\2\2\u0485\u0487\3\2\2\2\u0486\u0474\3\2\2\2\u0486"+
"\u047b\3\2\2\2\u0486\u047f\3\2\2\2\u0487\u008d\3\2\2\2\u0488\u0489\7\u01ef"+
"\2\2\u0489\u048a\7\32\2\2\u048a\u048b\5\u00b4[\2\u048b\u008f\3\2\2\2\u048c"+
"\u0492\5\u0092J\2\u048d\u048e\7\u02d7\2\2\u048e\u048f\5\u0092J\2\u048f"+
"\u0490\7\u02d8\2\2\u0490\u0492\3\2\2\2\u0491\u048c\3\2\2\2\u0491\u048d"+
"\3\2\2\2\u0492\u0091\3\2\2\2\u0493\u0497\5\u0094K\2\u0494\u0496\5\u0098"+
"M\2\u0495\u0494\3\2\2\2\u0496\u0499\3\2\2\2\u0497\u0495\3\2\2\2\u0497"+
"\u0498\3\2\2\2\u0498\u0093\3\2\2\2\u0499\u0497\3\2\2\2\u049a\u049c\5\u009a"+
"N\2\u049b\u049d\5\u00a6T\2\u049c\u049b\3\2\2\2\u049c\u049d\3\2\2\2\u049d"+
"\u04a6\3\2\2\2\u049e\u04a3\5\u00a0Q\2\u049f\u04a1\5\u00a6T\2\u04a0\u04a2"+
"\5\u00aeX\2\u04a1\u04a0\3\2\2\2\u04a1\u04a2\3\2\2\2\u04a2\u04a4\3\2\2"+
"\2\u04a3\u049f\3\2\2\2\u04a3\u04a4\3\2\2\2\u04a4\u04a6\3\2\2\2\u04a5\u049a"+
"\3\2\2\2\u04a5\u049e\3\2\2\2\u04a6\u0095\3\2\2\2\u04a7\u04a8\7\35\2\2"+
"\u04a8\u04a9\7\u02d7\2\2\u04a9\u04aa\7\36\2\2\u04aa\u04ab\5\u00ecw\2\u04ab"+
"\u04ac\7\u02d9\2\2\u04ac\u04ad\t\23\2\2\u04ad\u04ae\7\u02d8\2\2\u04ae"+
"\u0097\3\2\2\2\u04af\u04b1\7f\2\2\u04b0\u04af\3\2\2\2\u04b0\u04b1\3\2"+
"\2\2\u04b1\u04b7\3\2\2\2\u04b2\u04b4\t\24\2\2\u04b3\u04b5\7\u0089\2\2"+
"\u04b4\u04b3\3\2\2\2\u04b4\u04b5\3\2\2\2\u04b5\u04b7\3\2\2\2\u04b6\u04b0"+
"\3\2\2\2\u04b6\u04b2\3\2\2\2\u04b7\u04b9\3\2\2\2\u04b8\u04ba\t\25\2\2"+
"\u04b9\u04b8\3\2\2\2\u04b9\u04ba\3\2\2\2\u04ba\u04bb\3\2\2\2\u04bb\u04bc"+
"\7l\2\2\u04bc\u04bf\5\u0090I\2\u04bd\u04be\7\u0080\2\2\u04be\u04c0\5h"+
"\65\2\u04bf\u04bd\3\2\2\2\u04bf\u04c0\3\2\2\2\u04c0\u04d7\3\2\2\2\u04c1"+
"\u04c2\7/\2\2\u04c2\u04c3\7\u00e2\2\2\u04c3\u04d7\5\u0090I\2\u04c4\u04c5"+
"\7/\2\2\u04c5\u04c6\7l\2\2\u04c6\u04d7\5\u0090I\2\u04c7\u04c8\7\u0089"+
"\2\2\u04c8\u04c9\7\u00e2\2\2\u04c9\u04d7\5\u0090I\2\u04ca\u04cb\7\u01a4"+
"\2\2\u04cb\u04cc\7\u00cf\2\2\u04cc\u04ce\5\u00d6l\2\u04cd\u04cf\5\u00a8"+
"U\2\u04ce\u04cd\3\2\2\2\u04ce\u04cf\3\2\2\2\u04cf\u04d4\3\2\2\2\u04d0"+
"\u04d2\7\20\2\2\u04d1\u04d0\3\2\2\2\u04d1\u04d2\3\2\2\2\u04d2\u04d3\3"+
"\2\2\2\u04d3\u04d5\5\u00b0Y\2\u04d4\u04d1\3\2\2\2\u04d4\u04d5\3\2\2\2"+
"\u04d5\u04d7\3\2\2\2\u04d6\u04b6\3\2\2\2\u04d6\u04c1\3\2\2\2\u04d6\u04c4"+
"\3\2\2\2\u04d6\u04c7\3\2\2\2\u04d6\u04ca\3\2\2\2\u04d7\u0099\3\2\2\2\u04d8"+
"\u04d9\5\u00ecw\2\u04d9\u009b\3\2\2\2\u04da\u04db\7\u0084\2\2\u04db\u04dc"+
"\7\u02d7\2\2\u04dc\u04dd\7\31\2\2\u04dd\u04de\7\u02c2\2\2\u04de\u04e8"+
"\7\u02d9\2\2\u04df\u04e4\5\u009eP\2\u04e0\u04e1\7\u02d9\2\2\u04e1\u04e3"+
"\5\u009eP\2\u04e2\u04e0\3\2\2\2\u04e3\u04e6\3\2\2\2\u04e4\u04e2\3\2\2"+
"\2\u04e4\u04e5\3\2\2\2\u04e5\u04e9\3\2\2\2\u04e6\u04e4\3\2\2\2\u04e7\u04e9"+
"\5\u0110\u0089\2\u04e8\u04df\3\2\2\2\u04e8\u04e7\3\2\2\2\u04e9\u04ea\3"+
"\2\2\2\u04ea\u04eb\7\u02d8\2\2\u04eb\u009d\3\2\2\2\u04ec\u04ed\5\u0110"+
"\u0089\2\u04ed\u04ee\7\u02c6\2\2\u04ee\u04ef\t\26\2\2\u04ef\u009f\3\2"+
"\2\2\u04f0\u04f1\7\u02d7\2\2\u04f1\u04f2\5\\/\2\u04f2\u04f3\7\u02d8\2"+
"\2\u04f3\u04f6\3\2\2\2\u04f4\u04f6\5\u00b2Z\2\u04f5\u04f0\3\2\2\2\u04f5"+
"\u04f4\3\2\2\2\u04f6\u00a1\3\2\2\2\u04f7\u04fb\5\u00b8]\2\u04f8\u04fb"+
"\5\u00ba^\2\u04f9\u04fb\5\u00d8m\2\u04fa\u04f7\3\2\2\2\u04fa\u04f8\3\2"+
"\2\2\u04fa\u04f9\3\2\2\2\u04fb\u00a3\3\2\2\2\u04fc\u04fd\7\u02c1\2\2\u04fd"+
"\u00a5\3\2\2\2\u04fe\u0500\7\20\2\2\u04ff\u04fe\3\2\2\2\u04ff\u0500\3"+
"\2\2\2\u0500\u0501\3\2\2\2\u0501\u0502\5\u00a8U\2\u0502\u00a7\3\2\2\2"+
"\u0503\u0504\5\u0110\u0089\2\u0504\u00a9\3\2\2\2\u0505\u0506\7\u02c1\2"+
"\2\u0506\u00ab\3\2\2\2\u0507\u0508\t\27\2\2\u0508\u00ad\3\2\2\2\u0509"+
"\u050a\7\u02d7\2\2\u050a\u050f\5\u00b0Y\2\u050b\u050c\7\u02d9\2\2\u050c"+
"\u050e\5\u00b0Y\2\u050d\u050b\3\2\2\2\u050e\u0511\3\2\2\2\u050f\u050d"+
"\3\2\2\2\u050f\u0510\3\2\2\2\u0510\u0512\3\2\2\2\u0511\u050f\3\2\2\2\u0512"+
"\u0513\7\u02d8\2\2\u0513\u00af\3\2\2\2\u0514\u0517\5\u0110\u0089\2\u0515"+
"\u0517\7\u02c2\2\2\u0516\u0514\3\2\2\2\u0516\u0515\3\2\2\2\u0517\u00b1"+
"\3\2\2\2\u0518\u0519\7\u00cd\2\2\u0519\u051a\7\u02d7\2\2\u051a\u051b\5"+
"\u00b4[\2\u051b\u0523\7\u02d8\2\2\u051c\u051d\7\u02d9\2\2\u051d\u051e"+
"\7\u02d7\2\2\u051e\u051f\5\u00b4[\2\u051f\u0520\7\u02d8\2\2\u0520\u0522"+
"\3\2\2\2\u0521\u051c\3\2\2\2\u0522\u0525\3\2\2\2\u0523\u0521\3\2\2\2\u0523"+
"\u0524\3\2\2\2\u0524\u00b3\3\2\2\2\u0525\u0523\3\2\2\2\u0526\u052b\5T"+
"+\2\u0527\u0528\7\u02d9\2\2\u0528\u052a\5T+\2\u0529\u0527\3\2\2\2\u052a"+
"\u052d\3\2\2\2\u052b\u0529\3\2\2\2\u052b\u052c\3\2\2\2\u052c\u00b5\3\2"+
"\2\2\u052d\u052b\3\2\2\2\u052e\u052f\7\34\2\2\u052f\u0535\5T+\2\u0530"+
"\u0531\7\u00d1\2\2\u0531\u0532\5T+\2\u0532\u0533\7\u00bc\2\2\u0533\u0534"+
"\5T+\2\u0534\u0536\3\2\2\2\u0535\u0530\3\2\2\2\u0536\u0537\3\2\2\2\u0537"+
"\u0535\3\2\2\2\u0537\u0538\3\2\2\2\u0538\u053b\3\2\2\2\u0539\u053a\7E"+
"\2\2\u053a\u053c\5T+\2\u053b\u0539\3\2\2\2\u053b\u053c\3\2\2\2\u053c\u053d"+
"\3\2\2\2\u053d\u053e\7F\2\2\u053e\u0550\3\2\2\2\u053f\u0545\7\34\2\2\u0540"+
"\u0541\7\u00d1\2\2\u0541\u0542\5h\65\2\u0542\u0543\7\u00bc\2\2\u0543\u0544"+
"\5T+\2\u0544\u0546\3\2\2\2\u0545\u0540\3\2\2\2\u0546\u0547\3\2\2\2\u0547"+
"\u0545\3\2\2\2\u0547\u0548\3\2\2\2\u0548\u054b\3\2\2\2\u0549\u054a\7E"+
"\2\2\u054a\u054c\5T+\2\u054b\u0549\3\2\2\2\u054b\u054c\3\2\2\2\u054c\u054d"+
"\3\2\2\2\u054d\u054e\7F\2\2\u054e\u0550\3\2\2\2\u054f\u052e\3\2\2\2\u054f"+
"\u053f\3\2\2\2\u0550\u00b7\3\2\2\2\u0551\u0552\7\u0210\2\2\u0552\u0553"+
"\7\u02d7\2\2\u0553\u0554\7\u02d8\2\2\u0554\u0564\5\u00dep\2\u0555\u0556"+
"\7\u013f\2\2\u0556\u0557\7\u02d7\2\2\u0557\u0558\7\u02d8\2\2\u0558\u0564"+
"\5\u00dep\2\u0559\u055a\7\u01e0\2\2\u055a\u055b\7\u02d7\2\2\u055b\u055c"+
"\5T+\2\u055c\u055d\7\u02d8\2\2\u055d\u055e\5\u00dep\2\u055e\u0564\3\2"+
"\2\2\u055f\u0560\7\u0230\2\2\u0560\u0561\7\u02d7\2\2\u0561\u0562\7\u02d8"+
"\2\2\u0562\u0564\5\u00dep\2\u0563\u0551\3\2\2\2\u0563\u0555\3\2\2\2\u0563"+
"\u0559\3\2\2\2\u0563\u055f\3\2\2\2\u0564\u00b9\3\2\2\2\u0565\u0571\5\u00cc"+
"g\2\u0566\u0571\5\u00d4k\2\u0567\u0571\5\u00caf\2\u0568\u0571\5\u00c8"+
"e\2\u0569\u0571\5\u00c6d\2\u056a\u0571\5\u00d2j\2\u056b\u0571\5\u00ce"+
"h\2\u056c\u0571\5\u00d0i\2\u056d\u0571\5\u00bc_\2\u056e\u0571\5\u00c2"+
"b\2\u056f\u0571\5\u00c4c\2\u0570\u0565\3\2\2\2\u0570\u0566\3\2\2\2\u0570"+
"\u0567\3\2\2\2\u0570\u0568\3\2\2\2\u0570\u0569\3\2\2\2\u0570\u056a\3\2"+
"\2\2\u0570\u056b\3\2\2\2\u0570\u056c\3\2\2\2\u0570\u056d\3\2\2\2\u0570"+
"\u056e\3\2\2\2\u0570\u056f\3\2\2\2\u0571\u00bb\3\2\2\2\u0572\u0573\7\u014e"+
"\2\2\u0573\u0574\7\u02d7\2\2\u0574\u0575\5\u00be`\2\u0575\u0576\7X\2\2"+
"\u0576\u0577\5T+\2\u0577\u0578\7\u02d8\2\2\u0578\u00bd\3\2\2\2\u0579\u0580"+
"\7\u02b5\2\2\u057a\u0580\7\u01cf\2\2\u057b\u0580\7\u0135\2\2\u057c\u0580"+
"\7\u0171\2\2\u057d\u0580\7\u01cb\2\2\u057e\u0580\5T+\2\u057f\u0579\3\2"+
"\2\2\u057f\u057a\3\2\2\2\u057f\u057b\3\2\2\2\u057f\u057c\3\2\2\2\u057f"+
"\u057d\3\2\2\2\u057f\u057e\3\2\2\2\u0580\u00bf\3\2\2\2\u0581\u0588\7\u02b5"+
"\2\2\u0582\u0588\7\u01cf\2\2\u0583\u0588\7\u0135\2\2\u0584\u0588\7\u0171"+
"\2\2\u0585\u0588\7\u01cb\2\2\u0586\u0588\5T+\2\u0587\u0581\3\2\2\2\u0587"+
"\u0582\3\2\2\2\u0587\u0583\3\2\2\2\u0587\u0584\3\2\2\2\u0587\u0585\3\2"+
"\2\2\u0587\u0586\3\2\2\2\u0588\u00c1\3\2\2\2\u0589\u058a\7\u01ed\2\2\u058a"+
"\u058b\7\u02d7\2\2\u058b\u058c\5T+\2\u058c\u058d\7\u01f9\2\2\u058d\u058e"+
"\5T+\2\u058e\u058f\7X\2\2\u058f\u0592\5T+\2\u0590\u0591\7S\2\2\u0591\u0593"+
"\5T+\2\u0592\u0590\3\2\2\2\u0592\u0593\3\2\2\2\u0593\u0594\3\2\2\2\u0594"+
"\u0595\7\u02d8\2\2\u0595\u00c3\3\2\2\2\u0596\u0597\7\u00b5\2\2\u0597\u0598"+
"\7\u02d7\2\2\u0598\u0599\5T+\2\u0599\u059a\7X\2\2\u059a\u059d\5T+\2\u059b"+
"\u059c\7S\2\2\u059c\u059e\5T+\2\u059d\u059b\3\2\2\2\u059d\u059e\3\2\2"+
"\2\u059e\u059f\3\2\2\2\u059f\u05a0\7\u02d8\2\2\u05a0\u00c5\3\2\2\2\u05a1"+
"\u05a2\t\30\2\2\u05a2\u05a3\7\u02d7\2\2\u05a3\u05a8\5T+\2\u05a4\u05a5"+
"\7\u02d9\2\2\u05a5\u05a7\5T+\2\u05a6\u05a4\3\2\2\2\u05a7\u05aa\3\2\2\2"+
"\u05a8\u05a6\3\2\2\2\u05a8\u05a9\3\2\2\2\u05a9\u05ab\3\2\2\2\u05aa\u05a8"+
"\3\2\2\2\u05ab\u05ac\7\u02d8\2\2\u05ac\u00c7\3\2\2\2\u05ad\u05ae\t\31"+
"\2\2\u05ae\u05af\7\u02d7\2\2\u05af\u05b0\5T+\2\u05b0\u05b1\7\u02d9\2\2"+
"\u05b1\u05b2\5T+\2\u05b2\u05b3\7\u02d9\2\2\u05b3\u05b4\5T+\2\u05b4\u05b5"+
"\7\u02d8\2\2\u05b5\u00c9\3\2\2\2\u05b6\u05b7\t\32\2\2\u05b7\u05b8\7\u02d7"+
"\2\2\u05b8\u05b9\5T+\2\u05b9\u05ba\7\u02d9\2\2\u05ba\u05bb\5T+\2\u05bb"+
"\u05bc\7\u02d8\2\2\u05bc\u00cb\3\2\2\2\u05bd\u05be\t\33\2\2\u05be\u05bf"+
"\7\u02d7\2\2\u05bf\u05c0\5T+\2\u05c0\u05c1\7\u02d8\2\2\u05c1\u05c8\3\2"+
"\2\2\u05c2\u05c3\7\u0108\2\2\u05c3\u05c4\7\u02d7\2\2\u05c4\u05c5\5\u00dc"+
"o\2\u05c5\u05c6\7\u02d8\2\2\u05c6\u05c8\3\2\2\2\u05c7\u05bd\3\2\2\2\u05c7"+
"\u05c2\3\2\2\2\u05c8\u00cd\3\2\2\2\u05c9\u05ca\7\u026d\2\2\u05ca\u05cb"+
"\5T+\2\u05cb\u00cf\3\2\2\2\u05cc\u05cd\7\u0129\2\2\u05cd\u05ce\7\u02d7"+
"\2\2\u05ce\u05cf\5\u00c0a\2\u05cf\u05d0\7\u02d9\2\2\u05d0\u05d1\5T+\2"+
"\u05d1\u05d2\7\u02d9\2\2\u05d2\u05d3\5T+\2\u05d3\u05d4\7\u02d8\2\2\u05d4"+
"\u00d1\3\2\2\2\u05d5\u05d7\7y\2\2\u05d6\u05d5\3\2\2\2\u05d6\u05d7\3\2"+
"\2\2\u05d7\u05d8\3\2\2\2\u05d8\u05d9\7\u0180\2\2\u05d9\u05da\7\u02d7\2"+
"\2\u05da\u05db\5T+\2\u05db\u05dc\7\u02d8\2\2\u05dc\u00d3\3\2\2\2\u05dd"+
"\u05de\t\34\2\2\u05de\u05df\7\u02d7\2\2\u05df\u05e0\7\u02d8\2\2\u05e0"+
"\u00d5\3\2\2\2\u05e1\u05e2\7\u014d\2\2\u05e2\u05e3\7\u02d7\2\2\u05e3\u05e4"+
"\5T+\2\u05e4\u05e5\7\u02d8\2\2\u05e5\u00d7\3\2\2\2\u05e6\u05e7\7\u00f8"+
"\2\2\u05e7\u05e8\7\u02d7\2\2\u05e8\u05e9\5\u00dan\2\u05e9\u05eb\7\u02d8"+
"\2\2\u05ea\u05ec\5\u00dep\2\u05eb\u05ea\3\2\2\2\u05eb\u05ec\3\2\2\2\u05ec"+
"\u0650\3\2\2\2\u05ed\u05ee\7\u0112\2\2\u05ee\u05ef\7\u02d7\2\2\u05ef\u05f0"+
"\5\u00dan\2\u05f0\u05f1\7\u02d8\2\2\u05f1\u0650\3\2\2\2\u05f2\u05f3\7"+
"\u016a\2\2\u05f3\u05f4\7\u02d7\2\2\u05f4\u05f5\5T+\2\u05f5\u05f6\7\u02d8"+
"\2\2\u05f6\u0650\3\2\2\2\u05f7\u05f8\7\u016b\2\2\u05f8\u05f9\7\u02d7\2"+
"\2\u05f9\u05fa\5\u00b4[\2\u05fa\u05fb\7\u02d8\2\2\u05fb\u0650\3\2\2\2"+
"\u05fc\u05fd\7\u01c5\2\2\u05fd\u05fe\7\u02d7\2\2\u05fe\u05ff\5\u00dan"+
"\2\u05ff\u0601\7\u02d8\2\2\u0600\u0602\5\u00dep\2\u0601\u0600\3\2\2\2"+
"\u0601\u0602\3\2\2\2\u0602\u0650\3\2\2\2\u0603\u0604\7\u01c9\2\2\u0604"+
"\u0605\7\u02d7\2\2\u0605\u0606\5\u00dan\2\u0606\u0608\7\u02d8\2\2\u0607"+
"\u0609\5\u00dep\2\u0608\u0607\3\2\2\2\u0608\u0609\3\2\2\2\u0609\u0650"+
"\3\2\2\2\u060a\u060b\7\u0260\2\2\u060b\u060c\7\u02d7\2\2\u060c\u060d\5"+
"\u00dan\2\u060d\u060f\7\u02d8\2\2\u060e\u0610\5\u00dep\2\u060f\u060e\3"+
"\2\2\2\u060f\u0610\3\2\2\2\u0610\u0650\3\2\2\2\u0611\u0612\7\u0254\2\2"+
"\u0612\u0613\7\u02d7\2\2\u0613\u0614\5\u00dan\2\u0614\u0616\7\u02d8\2"+
"\2\u0615\u0617\5\u00dep\2\u0616\u0615\3\2\2\2\u0616\u0617\3\2\2\2\u0617"+
"\u0650\3\2\2\2\u0618\u0619\7\u0256\2\2\u0619\u061a\7\u02d7\2\2\u061a\u061b"+
"\5\u00dan\2\u061b\u061d\7\u02d8\2\2\u061c\u061e\5\u00dep\2\u061d\u061c"+
"\3\2\2\2\u061d\u061e\3\2\2\2\u061e\u0650\3\2\2\2\u061f\u0620\7\u0257\2"+
"\2\u0620\u0621\7\u02d7\2\2\u0621\u0622\5\u00dan\2\u0622\u0624\7\u02d8"+
"\2\2\u0623\u0625\5\u00dep\2\u0624\u0623\3\2\2\2\u0624\u0625\3\2\2\2\u0625"+
"\u0650\3\2\2\2\u0626\u0627\7\u029a\2\2\u0627\u0628\7\u02d7\2\2\u0628\u0629"+
"\5\u00dan\2\u0629\u062b\7\u02d8\2\2\u062a\u062c\5\u00dep\2\u062b\u062a"+
"\3\2\2\2\u062b\u062c\3\2\2\2\u062c\u0650\3\2\2\2\u062d\u062e\7\u02a0\2"+
"\2\u062e\u062f\7\u02d7\2\2\u062f\u0630\5\u00dan\2\u0630\u0632\7\u02d8"+
"\2\2\u0631\u0633\5\u00dep\2\u0632\u0631\3\2\2\2\u0632\u0633\3\2\2\2\u0633"+
"\u0650\3\2\2\2\u0634\u0635\7\u0122\2\2\u0635\u0638\7\u02d7\2\2\u0636\u0639"+
"\7\u02dc\2\2\u0637\u0639\5\u00dan\2\u0638\u0636\3\2\2\2\u0638\u0637\3"+
"\2\2\2\u0639\u063a\3\2\2\2\u063a\u063c\7\u02d8\2\2\u063b\u063d\5\u00de"+
"p\2\u063c\u063b\3\2\2\2\u063c\u063d\3\2\2\2\u063d\u0650\3\2\2\2\u063e"+
"\u063f\7\u01d8\2\2\u063f\u0640\7\u02d7\2\2\u0640\u0641\5\u00dan\2\u0641"+
"\u0643\7\u02d8\2\2\u0642\u0644\5\u00dep\2\u0643\u0642\3\2\2\2\u0643\u0644"+
"\3\2\2\2\u0644\u0650\3\2\2\2\u0645\u0646\7\u0123\2\2\u0646\u0649\7\u02d7"+
"\2\2\u0647\u064a\7\u02dc\2\2\u0648\u064a\5\u00dan\2\u0649\u0647\3\2\2"+
"\2\u0649\u0648\3\2\2\2\u064a\u064b\3\2\2\2\u064b\u064d\7\u02d8\2\2\u064c"+
"\u064e\5\u00dep\2\u064d\u064c\3\2\2\2\u064d\u064e\3\2\2\2\u064e\u0650"+
"\3\2\2\2\u064f\u05e6\3\2\2\2\u064f\u05ed\3\2\2\2\u064f\u05f2\3\2\2\2\u064f"+
"\u05f7\3\2\2\2\u064f\u05fc\3\2\2\2\u064f\u0603\3\2\2\2\u064f\u060a\3\2"+
"\2\2\u064f\u0611\3\2\2\2\u064f\u0618\3\2\2\2\u064f\u061f\3\2\2\2\u064f"+
"\u0626\3\2\2\2\u064f\u062d\3\2\2\2\u064f\u0634\3\2\2\2\u064f\u063e\3\2"+
"\2\2\u064f\u0645\3\2\2\2\u0650\u00d9\3\2\2\2\u0651\u0653\t\f\2\2\u0652"+
"\u0651\3\2\2\2\u0652\u0653\3\2\2\2\u0653\u0654\3\2\2\2\u0654\u0655\5T"+
"+\2\u0655\u00db\3\2\2\2\u0656\u0657\5T+\2\u0657\u0658\7\20\2\2\u0658\u0659"+
"\5\u0106\u0084\2\u0659\u00dd\3\2\2\2\u065a\u065b\7\u008a\2\2\u065b\u065d"+
"\7\u02d7\2\2\u065c\u065e\5\u008eH\2\u065d\u065c\3\2\2\2\u065d\u065e\3"+
"\2\2\2\u065e\u0660\3\2\2\2\u065f\u0661\5z>\2\u0660\u065f\3\2\2\2\u0660"+
"\u0661\3\2\2\2\u0661\u0663\3\2\2\2\u0662\u0664\5\u00e0q\2\u0663\u0662"+
"\3\2\2\2\u0663\u0664\3\2\2\2\u0664\u0665\3\2\2\2\u0665\u0666\7\u02d8\2"+
"\2\u0666\u00df\3\2\2\2\u0667\u0668\t\35\2\2\u0668\u0669\5\u00e2r\2\u0669"+
"\u00e1\3\2\2\2\u066a\u0671\5\u00e6t\2\u066b\u066c\7\26\2\2\u066c\u066d"+
"\5\u00e4s\2\u066d\u066e\7\16\2\2\u066e\u066f\5\u00e4s\2\u066f\u0671\3"+
"\2\2\2\u0670\u066a\3\2\2\2\u0670\u066b\3\2\2\2\u0671\u00e3\3\2\2\2\u0672"+
"\u0675\5\u00e6t\2\u0673\u0675\5\u00e8u\2\u0674\u0672\3\2\2\2\u0674\u0673"+
"\3\2\2\2\u0675\u00e5\3\2\2\2\u0676\u0677\7\u028e\2\2\u0677\u067d\7\u0202"+
"\2\2\u0678\u0679\7\u02c0\2\2\u0679\u067d\7\u0202\2\2\u067a\u067b\7\60"+
"\2\2\u067b\u067d\7\u022c\2\2\u067c\u0676\3\2\2\2\u067c\u0678\3\2\2\2\u067c"+
"\u067a\3\2\2\2\u067d\u00e7\3\2\2\2\u067e\u067f\7\u028e\2\2\u067f\u0683"+
"\7\u0159\2\2\u0680\u0681\7\u02c0\2\2\u0681\u0683\7\u0159\2\2\u0682\u067e"+
"\3\2\2\2\u0682\u0680\3\2\2\2\u0683\u00e9\3\2\2\2\u0684\u0685\5\u0110\u0089"+
"\2\u0685\u0686\7\u02d2\2\2\u0686\u0687\5\u0110\u0089\2\u0687\u0688\7\u02d2"+
"\2\2\u0688\u0689\5\u0110\u0089\2\u0689\u068a\7\u02d2\2\2\u068a\u0696\3"+
"\2\2\2\u068b\u068c\5\u0110\u0089\2\u068c\u068e\7\u02d2\2\2\u068d\u068f"+
"\5\u0110\u0089\2\u068e\u068d\3\2\2\2\u068e\u068f\3\2\2\2\u068f\u0690\3"+
"\2\2\2\u0690\u0691\7\u02d2\2\2\u0691\u0696\3\2\2\2\u0692\u0693\5\u0110"+
"\u0089\2\u0693\u0694\7\u02d2\2\2\u0694\u0696\3\2\2\2\u0695\u0684\3\2\2"+
"\2\u0695\u068b\3\2\2\2\u0695\u0692\3\2\2\2\u0695\u0696\3\2\2\2\u0696\u0697"+
"\3\2\2\2\u0697\u0698\5\u0110\u0089\2\u0698\u00eb\3\2\2\2\u0699\u069a\5"+
"\u0110\u0089\2\u069a\u069b\7\u02d2\2\2\u069b\u069d\3\2\2\2\u069c\u0699"+
"\3\2\2\2\u069c\u069d\3\2\2\2\u069d\u069e\3\2\2\2\u069e\u069f\5\u0110\u0089"+
"\2\u069f\u00ed\3\2\2\2\u06a0\u06a1\5\u0110\u0089\2\u06a1\u06a2\7\u02d2"+
"\2\2\u06a2\u06a4\3\2\2\2\u06a3\u06a0\3\2\2\2\u06a3\u06a4\3\2\2\2\u06a4"+
"\u06a5\3\2\2\2\u06a5\u06a6\5\u0110\u0089\2\u06a6\u00ef\3\2\2\2\u06a7\u06a8"+
"\5\u0110\u0089\2\u06a8\u06aa\7\u02d2\2\2\u06a9\u06ab\5\u0110\u0089\2\u06aa"+
"\u06a9\3\2\2\2\u06aa\u06ab\3\2\2\2\u06ab\u06ac\3\2\2\2\u06ac\u06ad\7\u02d2"+
"\2\2\u06ad\u06b2\3\2\2\2\u06ae\u06af\5\u0110\u0089\2\u06af\u06b0\7\u02d2"+
"\2\2\u06b0\u06b2\3\2\2\2\u06b1\u06a7\3\2\2\2\u06b1\u06ae\3\2\2\2\u06b1"+
"\u06b2\3\2\2\2\u06b2\u06b3\3\2\2\2\u06b3\u06b4\5\u0110\u0089\2\u06b4\u00f1"+
"\3\2\2\2\u06b5\u06b8\5\u00eav\2\u06b6\u06b8\7\u02bf\2\2\u06b7\u06b5\3"+
"\2\2\2\u06b7\u06b6\3\2\2\2\u06b8\u00f3\3\2\2\2\u06b9\u06ba\5\u00ecw\2"+
"\u06ba\u06bb\7\u02d2\2\2\u06bb\u06bd\3\2\2\2\u06bc\u06b9\3\2\2\2\u06bc"+
"\u06bd\3\2\2\2\u06bd\u06be\3\2\2\2\u06be\u06bf\5\u00f8}\2\u06bf\u00f5"+
"\3\2\2\2\u06c0\u06c5\5\u00f8}\2\u06c1\u06c2\7\u02d9\2\2\u06c2\u06c4\5"+
"\u00f8}\2\u06c3\u06c1\3\2\2\2\u06c4\u06c7\3\2\2\2\u06c5\u06c3\3\2\2\2"+
"\u06c5\u06c6\3\2\2\2\u06c6\u00f7\3\2\2\2\u06c7\u06c5\3\2\2\2\u06c8\u06c9"+
"\5\u0110\u0089\2\u06c9\u00f9\3\2\2\2\u06ca\u06cd\5\u0110\u0089\2\u06cb"+
"\u06cd\7\u02bf\2\2\u06cc\u06ca\3\2\2\2\u06cc\u06cb\3\2\2\2\u06cd\u00fb"+
"\3\2\2\2\u06ce\u06cf\t\36\2\2\u06cf\u00fd\3\2\2\2\u06d0\u06d1\t\37\2\2"+
"\u06d1\u00ff\3\2\2\2\u06d2\u06d4\7y\2\2\u06d3\u06d2\3\2\2\2\u06d3\u06d4"+
"\3\2\2\2\u06d4\u06d5\3\2\2\2\u06d5\u06d6\7z\2\2\u06d6\u0101\3\2\2\2\u06d7"+
"\u06d8\t \2\2\u06d8\u0103\3\2\2\2\u06d9\u06df\5\u00f0y\2\u06da\u06df\7"+
"\u009f\2\2\u06db\u06df\7o\2\2\u06dc\u06df\7\u00fc\2\2\u06dd\u06df\7\u0111"+
"\2\2\u06de\u06d9\3\2\2\2\u06de\u06da\3\2\2\2\u06de\u06db\3\2\2\2\u06de"+
"\u06dc\3\2\2\2\u06de\u06dd\3\2\2\2\u06df\u0105\3\2\2\2\u06e0\u073d\7\u00fa"+
"\2\2\u06e1\u06e2\7\u02c3\2\2\u06e2\u06e3\7\u02d7\2\2\u06e3\u06e4\7\u02c0"+
"\2\2\u06e4\u073d\7\u02d8\2\2\u06e5\u073d\7\u00fd\2\2\u06e6\u073d\7\u010e"+
"\2\2\u06e7\u06e8\7\u010e\2\2\u06e8\u06e9\7\u02d7\2\2\u06e9\u06ea\7\u02c0"+
"\2\2\u06ea\u073d\7\u02d8\2\2\u06eb\u073d\7\u0128\2\2\u06ec\u073d\7\u0132"+
"\2\2\u06ed\u073d\7\u0133\2\2\u06ee\u06ef\7\u0134\2\2\u06ef\u06f0\7\u02d7"+
"\2\2\u06f0\u06f1\7\u02c0\2\2\u06f1\u073d\7\u02d8\2\2\u06f2\u06f3\7\u02c0"+
"\2\2\u06f3\u06f4\7\u02d7\2\2\u06f4\u06f5\7\u02c0\2\2\u06f5\u06f6\7\u02d9"+
"\2\2\u06f6\u06f7\7\u02c0\2\2\u06f7\u073d\7\u02d8\2\2\u06f8\u06fa\7B\2"+
"\2\u06f9\u06fb\7\u008e\2\2\u06fa\u06f9\3\2\2\2\u06fa\u06fb\3\2\2\2\u06fb"+
"\u073d\3\2\2\2\u06fc\u073d\7\u02c4\2\2\u06fd\u073d\7\u0161\2\2\u06fe\u073d"+
"\7\u0162\2\2\u06ff\u073d\7\u016e\2\2\u0700\u073d\7\u0173\2\2\u0701\u073d"+
"\7\u0174\2\2\u0702\u073d\7\u01ce\2\2\u0703\u0704\7\u01d7\2\2\u0704\u0705"+
"\7\u02d7\2\2\u0705\u0706\7\u02c0\2\2\u0706\u073d\7\u02d8\2\2\u0707\u073d"+
"\7\u01df\2\2\u0708\u0709\7\u01e3\2\2\u0709\u070a\7\u02d7\2\2\u070a\u070b"+
"\7\u02c0\2\2\u070b\u070c\7\u02d9\2\2\u070c\u070d\7\u02c0\2\2\u070d\u073d"+
"\7\u02d8\2\2\u070e\u070f\7\u01e4\2\2\u070f\u0710\7\u02d7\2\2\u0710\u073d"+
"\7\u02c0\2\2\u0711\u0712\7\u01c5\2\2\u0712\u073d\7\u02d8\2\2\u0713\u073d"+
"\7\u02c5\2\2\u0714\u073d\7\u0248\2\2\u0715\u073d\7\u0249\2\2\u0716\u073d"+
"\7\u024a\2\2\u0717\u073d\7\u0250\2\2\u0718\u073d\7\u0267\2\2\u0719\u071a"+
"\7\u026a\2\2\u071a\u071b\7\u02d7\2\2\u071b\u071c\7\u02c0\2\2\u071c\u073d"+
"\7\u02d8\2\2\u071d\u073d\7\u026d\2\2\u071e\u071f\7\u026d\2\2\u071f\u0720"+
"\7\u00d6\2\2\u0720\u0721\7\u026a\2\2\u0721\u073d\7\u00d8\2\2\u0722\u073d"+
"\7\u0270\2\2\u0723\u073d\7\u0291\2\2\u0724\u0725\7\u029b\2\2\u0725\u0726"+
"\7\u02d7\2\2\u0726\u073d\7\u02c0\2\2\u0727\u0728\7\u01c5\2\2\u0728\u073d"+
"\7\u02d8\2\2\u0729\u072a\7\u029c\2\2\u072a\u072b\7\u02d7\2\2\u072b\u073d"+
"\7\u02c0\2\2\u072c\u072d\7\u01c5\2\2\u072d\u073d\7\u02d8\2\2\u072e\u073d"+
"\7\u02a9\2\2\u072f\u0731\5\u0110\u0089\2\u0730\u0732\7`\2\2\u0731\u0730"+
"\3\2\2\2\u0731\u0732\3\2\2\2\u0732\u073a\3\2\2\2\u0733\u0734\7\u02d7\2"+
"\2\u0734\u0737\t!\2\2\u0735\u0736\7\u02d9\2\2\u0736\u0738\7\u02c0\2\2"+
"\u0737\u0735\3\2\2\2\u0737\u0738\3\2\2\2\u0738\u0739\3\2\2\2\u0739\u073b"+
"\7\u02d8\2\2\u073a\u0733\3\2\2\2\u073a\u073b\3\2\2\2\u073b\u073d\3\2\2"+
"\2\u073c\u06e0\3\2\2\2\u073c\u06e1\3\2\2\2\u073c\u06e5\3\2\2\2\u073c\u06e6"+
"\3\2\2\2\u073c\u06e7\3\2\2\2\u073c\u06eb\3\2\2\2\u073c\u06ec\3\2\2\2\u073c"+
"\u06ed\3\2\2\2\u073c\u06ee\3\2\2\2\u073c\u06f2\3\2\2\2\u073c\u06f8\3\2"+
"\2\2\u073c\u06fc\3\2\2\2\u073c\u06fd\3\2\2\2\u073c\u06fe\3\2\2\2\u073c"+
"\u06ff\3\2\2\2\u073c\u0700\3\2\2\2\u073c\u0701\3\2\2\2\u073c\u0702\3\2"+
"\2\2\u073c\u0703\3\2\2\2\u073c\u0707\3\2\2\2\u073c\u0708\3\2\2\2\u073c"+
"\u070e\3\2\2\2\u073c\u0711\3\2\2\2\u073c\u0713\3\2\2\2\u073c\u0714\3\2"+
"\2\2\u073c\u0715\3\2\2\2\u073c\u0716\3\2\2\2\u073c\u0717\3\2\2\2\u073c"+
"\u0718\3\2\2\2\u073c\u0719\3\2\2\2\u073c\u071d\3\2\2\2\u073c\u071e\3\2"+
"\2\2\u073c\u0722\3\2\2\2\u073c\u0723\3\2\2\2\u073c\u0724\3\2\2\2\u073c"+
"\u0727\3\2\2\2\u073c\u0729\3\2\2\2\u073c\u072c\3\2\2\2\u073c\u072e\3\2"+
"\2\2\u073c\u072f\3\2\2\2\u073d\u0107\3\2\2\2\u073e\u0741\7z\2\2\u073f"+
"\u0741\5\u010a\u0086\2\u0740\u073e\3\2\2\2\u0740\u073f\3\2\2\2\u0741\u0109"+
"\3\2\2\2\u0742\u074f\7\u02c2\2\2\u0743\u074f\7\u02c3\2\2\u0744\u074f\5"+
"\u010c\u0087\2\u0745\u0747\5\u010e\u0088\2\u0746\u0745\3\2\2\2\u0746\u0747"+
"\3\2\2\2\u0747\u0748\3\2\2\2\u0748\u074f\t\"\2\2\u0749\u074b\5\u010e\u0088"+
"\2\u074a\u0749\3\2\2\2\u074a\u074b\3\2\2\2\u074b\u074c\3\2\2\2\u074c\u074d"+
"\7\u02d6\2\2\u074d\u074f\t\2\2\2\u074e\u0742\3\2\2\2\u074e\u0743\3\2\2"+
"\2\u074e\u0744\3\2\2\2\u074e\u0746\3\2\2\2\u074e\u074a\3\2\2\2\u074f\u010b"+
"\3\2\2\2\u0750\u0752\5\u010e\u0088\2\u0751\u0750\3\2\2\2\u0751\u0752\3"+
"\2\2\2\u0752\u0753\3\2\2\2\u0753\u0754\7\u02c0\2\2\u0754\u010d\3\2\2\2"+
"\u0755\u0756\t\6\2\2\u0756\u010f\3\2\2\2\u0757\u075c\5\u0112\u008a\2\u0758"+
"\u075c\7\u02bc\2\2\u0759\u075c\7\u02be\2\2\u075a\u075c\7\u02bd\2\2\u075b"+
"\u0757\3\2\2\2\u075b\u0758\3\2\2\2\u075b\u0759\3\2\2\2\u075b\u075a\3\2"+
"\2\2\u075c\u0111\3\2\2\2\u075d\u075e\t#\2\2\u075e\u0113\3\2\2\2\u075f"+
"\u076f\7\u02c6\2\2\u0760\u076f\7\u02c7\2\2\u0761\u076f\7\u02c8\2\2\u0762"+
"\u0763\7\u02c8\2\2\u0763\u076f\7\u02c6\2\2\u0764\u0765\7\u02c7\2\2\u0765"+
"\u076f\7\u02c6\2\2\u0766\u0767\7\u02c8\2\2\u0767\u076f\7\u02c7\2\2\u0768"+
"\u0769\7\u02c9\2\2\u0769\u076f\7\u02c6\2\2\u076a\u076b\7\u02c9\2\2\u076b"+
"\u076f\7\u02c7\2\2\u076c\u076d\7\u02c9\2\2\u076d\u076f\7\u02c8\2\2\u076e"+
"\u075f\3\2\2\2\u076e\u0760\3\2\2\2\u076e\u0761\3\2\2\2\u076e\u0762\3\2"+
"\2\2\u076e\u0764\3\2\2\2\u076e\u0766\3\2\2\2\u076e\u0768\3\2\2\2\u076e"+
"\u076a\3\2\2\2\u076e\u076c\3\2\2\2\u076f\u0115\3\2\2\2\u0770\u0771\t$"+
"\2\2\u0771\u0117\3\2\2\2\u00da\u0123\u012a\u0131\u0136\u0140\u014c\u0156"+
"\u0160\u0175\u0178\u017d\u0184\u018c\u018f\u0192\u0196\u0199\u019c\u01a4"+
"\u01aa\u01b0\u01b2\u01b6\u01b9\u01bc\u01c1\u01c6\u01c9\u01d1\u01d6\u01da"+
"\u01e3\u01e7\u01ec\u01f7\u01fc\u0203\u0206\u0212\u021a\u021c\u0222\u0229"+
"\u022f\u0233\u0239\u0240\u0244\u024a\u024f\u0256\u0259\u025e\u0264\u0267"+
"\u026f\u0273\u0276\u027b\u0281\u0286\u028d\u0293\u0296\u029a\u029d\u02a1"+
"\u02ad\u02b0\u02be\u02c1\u02c8\u02ca\u02e4\u02f6\u02f8\u0309\u0312\u0319"+
"\u0321\u032a\u032e\u0338\u033f\u0347\u034f\u0353\u036e\u0377\u037d\u0383"+
"\u0389\u0390\u0398\u03a0\u03a5\u03aa\u03ae\u03b7\u03b9\u03bd\u03c0\u03c5"+
"\u03cd\u03d0\u03d4\u03dd\u03e2\u03ed\u03f2\u03f6\u0405\u0411\u0413\u041b"+
"\u0423\u0426\u0428\u042f\u0433\u0439\u0444\u0459\u0461\u0467\u046e\u0474"+
"\u0479\u0481\u0484\u0486\u0491\u0497\u049c\u04a1\u04a3\u04a5\u04b0\u04b4"+
"\u04b6\u04b9\u04bf\u04ce\u04d1\u04d4\u04d6\u04e4\u04e8\u04f5\u04fa\u04ff"+
"\u050f\u0516\u0523\u052b\u0537\u053b\u0547\u054b\u054f\u0563\u0570\u057f"+
"\u0587\u0592\u059d\u05a8\u05c7\u05d6\u05eb\u0601\u0608\u060f\u0616\u061d"+
"\u0624\u062b\u0632\u0638\u063c\u0643\u0649\u064d\u064f\u0652\u065d\u0660"+
"\u0663\u0670\u0674\u067c\u0682\u068e\u0695\u069c\u06a3\u06aa\u06b1\u06b7"+
"\u06bc\u06c5\u06cc\u06d3\u06de\u06fa\u0731\u0737\u073a\u073c\u0740\u0746"+
"\u074a\u074e\u0751\u075b\u076e";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy